Variable: LixSchemaDefinition
const LixSchemaDefinition: { $schema: "http://json-schema.org/draft-07/schema#"; allOf: readonly [{ $ref: "http://json-schema.org/draft-07/schema#"; }, { properties: { additionalProperties: { const: false; description: "Objects describing Lix schemas must not allow arbitrary additional properties; set this explicitly to false."; type: "boolean"; }; properties: { additionalProperties: { allOf: readonly [{ $ref: "http://json-schema.org/draft-07/schema#"; }, { properties: { x-lix-default: { description: "CEL expression evaluated to produce the default value when the property is omitted."; format: "cel"; type: "string"; }; }; type: "object"; }]; }; type: "object"; }; x-lix-entity-views: { description: "Restricts which SQL entity views (state/state_by_version/state_history) are generated. When omitted, all views are created."; items: { enum: readonly ["state", "state_by_version", "state_history"]; type: "string"; }; type: "array"; uniqueItems: true; }; x-lix-foreign-keys: { items: { properties: { mode: { description: "Validation mode: immediate (default) or materialized (defer insert/update existence checks)"; enum: readonly ["immediate", "materialized"]; type: "string"; }; properties: { description: "Local JSON-schema property names that participate in the FK"; items: { description: "JSON Pointer referencing the local field."; format: "json-pointer"; type: "string"; }; minItems: 1; type: "array"; uniqueItems: true; }; references: { properties: { properties: { description: "Remote property names (same length as local properties)"; items: { description: ...; format: ...; type: ...; }; minItems: 1; type: "array"; uniqueItems: true; }; schemaKey: { description: "The x-lix-key of the referenced schema"; type: "string"; }; schemaVersion: { description: "Optional version of the referenced schema"; pattern: "^\d+\.\d+$"; type: "string"; }; }; required: readonly ["schemaKey", "properties"]; type: "object"; }; scope: { description: "Implicit columns (version_id and/or file_id) used to scope the foreign key relationship"; items: { enum: readonly ["version_id", "file_id"]; type: "string"; }; type: "array"; uniqueItems: true; }; }; required: readonly ["properties", "references"]; type: "object"; }; type: "array"; }; x-lix-immutable: { description: "When true, entities for this schema cannot be updated after creation."; type: "boolean"; }; x-lix-key: { description: "The schema identifier. Must be snake_case (lowercase, underscores) to safely embed in SQL identifiers."; examples: readonly ["csv_plugin_cell"]; pattern: "^[a-z][a-z0-9_]*$"; type: "string"; }; x-lix-override-lixcols: { additionalProperties: { format: "cel"; type: "string"; }; description: "Default metadata column values (such as lixcol_file_id). Does not affect JSON property defaults."; type: "object"; }; x-lix-primary-key: { items: { description: "JSON Pointer referencing a property that participates in the primary key."; format: "json-pointer"; type: "string"; }; minItems: 1; type: "array"; uniqueItems: true; }; x-lix-unique: { items: { items: { description: "JSON Pointer referencing a property"; format: "json-pointer"; type: "string"; }; minItems: 1; type: "array"; uniqueItems: true; }; type: "array"; }; x-lix-version: { description: "The version of the schema. Use the major version to signal breaking changes. Use the minor version to signal non-breaking changes."; examples: readonly ["1.0"]; pattern: "^\d+\.\d+$"; type: "string"; }; }; required: readonly ["x-lix-key", "x-lix-version", "additionalProperties"]; type: "object"; }]; description: "A JSON schema document that also includes custom x-key and x-version properties for identification and versioning."; title: "Lix Change Schema"; }
Type Declaration
$schema
readonly $schema: "http://json-schema.org/draft-07/schema#" = "http://json-schema.org/draft-07/schema#"
allOf
readonly allOf: readonly [{ $ref: "http://json-schema.org/draft-07/schema#"; }, { properties: { additionalProperties: { const: false; description: "Objects describing Lix schemas must not allow arbitrary additional properties; set this explicitly to false."; type: "boolean"; }; properties: { additionalProperties: { allOf: readonly [{ $ref: "http://json-schema.org/draft-07/schema#"; }, { properties: { x-lix-default: { description: "CEL expression evaluated to produce the default value when the property is omitted."; format: "cel"; type: "string"; }; }; type: "object"; }]; }; type: "object"; }; x-lix-entity-views: { description: "Restricts which SQL entity views (state/state_by_version/state_history) are generated. When omitted, all views are created."; items: { enum: readonly ["state", "state_by_version", "state_history"]; type: "string"; }; type: "array"; uniqueItems: true; }; x-lix-foreign-keys: { items: { properties: { mode: { description: "Validation mode: immediate (default) or materialized (defer insert/update existence checks)"; enum: readonly ["immediate", "materialized"]; type: "string"; }; properties: { description: "Local JSON-schema property names that participate in the FK"; items: { description: "JSON Pointer referencing the local field."; format: "json-pointer"; type: "string"; }; minItems: 1; type: "array"; uniqueItems: true; }; references: { properties: { properties: { description: "Remote property names (same length as local properties)"; items: { description: ...; format: ...; type: ...; }; minItems: 1; type: "array"; uniqueItems: true; }; schemaKey: { description: "The x-lix-key of the referenced schema"; type: "string"; }; schemaVersion: { description: "Optional version of the referenced schema"; pattern: "^\d+\.\d+$"; type: "string"; }; }; required: readonly ["schemaKey", "properties"]; type: "object"; }; scope: { description: "Implicit columns (version_id and/or file_id) used to scope the foreign key relationship"; items: { enum: readonly ["version_id", "file_id"]; type: "string"; }; type: "array"; uniqueItems: true; }; }; required: readonly ["properties", "references"]; type: "object"; }; type: "array"; }; x-lix-immutable: { description: "When true, entities for this schema cannot be updated after creation."; type: "boolean"; }; x-lix-key: { description: "The schema identifier. Must be snake_case (lowercase, underscores) to safely embed in SQL identifiers."; examples: readonly ["csv_plugin_cell"]; pattern: "^[a-z][a-z0-9_]*$"; type: "string"; }; x-lix-override-lixcols: { additionalProperties: { format: "cel"; type: "string"; }; description: "Default metadata column values (such as lixcol_file_id). Does not affect JSON property defaults."; type: "object"; }; x-lix-primary-key: { items: { description: "JSON Pointer referencing a property that participates in the primary key."; format: "json-pointer"; type: "string"; }; minItems: 1; type: "array"; uniqueItems: true; }; x-lix-unique: { items: { items: { description: "JSON Pointer referencing a property"; format: "json-pointer"; type: "string"; }; minItems: 1; type: "array"; uniqueItems: true; }; type: "array"; }; x-lix-version: { description: "The version of the schema. Use the major version to signal breaking changes. Use the minor version to signal non-breaking changes."; examples: readonly ["1.0"]; pattern: "^\d+\.\d+$"; type: "string"; }; }; required: readonly ["x-lix-key", "x-lix-version", "additionalProperties"]; type: "object"; }]
description
readonly description: "A JSON schema document that also includes custom x-key and x-version properties for identification and versioning." = "A JSON schema document that also includes custom x-key and x-version properties for identification and versioning."
title
readonly title: "Lix Change Schema" = "Lix Change Schema"