kelp.models.project_config¶
Reference for the project_config configuration model.
kelp.models.project_config.QuarantineConfig
pydantic-model
¶
Bases: BaseModel
Configuration for table quarantine and validation.
Attributes:
| Name | Type | Description |
|---|---|---|
quarantine_catalog |
str | None
|
Catalog name for quarantined data (defaults to project catalog). |
quarantine_schema |
str | None
|
Schema name for quarantined data (defaults to project schema). |
quarantine_prefix |
str
|
Prefix for quarantine table names. |
quarantine_suffix |
str
|
Suffix for quarantine table names. |
validation_prefix |
str
|
Prefix for validation table names. |
validation_suffix |
str
|
Suffix for validation table names. |
Show JSON schema:
{
"description": "Configuration for table quarantine and validation.\n\nAttributes:\n quarantine_catalog: Catalog name for quarantined data (defaults to project catalog).\n quarantine_schema: Schema name for quarantined data (defaults to project schema).\n quarantine_prefix: Prefix for quarantine table names.\n quarantine_suffix: Suffix for quarantine table names.\n validation_prefix: Prefix for validation table names.\n validation_suffix: Suffix for validation table names.",
"properties": {
"quarantine_catalog": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Catalog for quarantined data",
"title": "Quarantine Catalog"
},
"quarantine_schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Schema for quarantined data",
"title": "Quarantine Schema"
},
"quarantine_prefix": {
"default": "",
"description": "Prefix for quarantine table names",
"title": "Quarantine Prefix",
"type": "string"
},
"quarantine_suffix": {
"default": "_quarantine",
"description": "Suffix for quarantine table names",
"title": "Quarantine Suffix",
"type": "string"
},
"validation_prefix": {
"default": "",
"description": "Prefix for validation table names",
"title": "Validation Prefix",
"type": "string"
},
"validation_suffix": {
"default": "_validation",
"description": "Suffix for validation table names",
"title": "Validation Suffix",
"type": "string"
}
},
"title": "QuarantineConfig",
"type": "object"
}
Fields:
-
quarantine_catalog(str | None) -
quarantine_schema(str | None) -
quarantine_prefix(str) -
quarantine_suffix(str) -
validation_prefix(str) -
validation_suffix(str)
kelp.models.project_config.RemoteCatalogConfig
pydantic-model
¶
Bases: BaseModel
Configuration for remote Databricks catalog synchronization.
Attributes:
| Name | Type | Description |
|---|---|---|
table_tag_mode |
Literal['append', 'replace', 'managed']
|
How to apply table tags ("append", "replace", "managed"). |
managed_table_tags |
list[str]
|
List of tag keys to manage on tables. |
column_tag_mode |
Literal['append', 'replace', 'managed']
|
How to apply column tags ("append", "replace", "managed"). |
managed_column_tags |
list[str]
|
List of tag keys to manage on columns. |
table_property_mode |
Literal['append', 'managed']
|
How to apply table properties ("append" or "managed"). |
managed_table_properties |
list[str]
|
List of property keys to manage on tables. |
Show JSON schema:
{
"description": "Configuration for remote Databricks catalog synchronization.\n\nAttributes:\n table_tag_mode: How to apply table tags (\"append\", \"replace\", \"managed\").\n managed_table_tags: List of tag keys to manage on tables.\n column_tag_mode: How to apply column tags (\"append\", \"replace\", \"managed\").\n managed_column_tags: List of tag keys to manage on columns.\n table_property_mode: How to apply table properties (\"append\" or \"managed\").\n managed_table_properties: List of property keys to manage on tables.",
"properties": {
"table_tag_mode": {
"default": "replace",
"description": "How to apply table tags to remote catalog",
"enum": [
"append",
"replace",
"managed"
],
"title": "Table Tag Mode",
"type": "string"
},
"managed_table_tags": {
"description": "List of tag keys to manage on tables",
"items": {
"type": "string"
},
"title": "Managed Table Tags",
"type": "array"
},
"column_tag_mode": {
"default": "replace",
"description": "How to apply column tags to remote catalog",
"enum": [
"append",
"replace",
"managed"
],
"title": "Column Tag Mode",
"type": "string"
},
"managed_column_tags": {
"description": "List of tag keys to manage on columns",
"items": {
"type": "string"
},
"title": "Managed Column Tags",
"type": "array"
},
"table_property_mode": {
"default": "append",
"description": "How to apply table properties to remote catalog",
"enum": [
"append",
"managed"
],
"title": "Table Property Mode",
"type": "string"
},
"managed_table_properties": {
"description": "List of property keys to manage on tables",
"items": {
"type": "string"
},
"title": "Managed Table Properties",
"type": "array"
}
},
"title": "RemoteCatalogConfig",
"type": "object"
}
Fields:
-
table_tag_mode(Literal['append', 'replace', 'managed']) -
managed_table_tags(list[str]) -
column_tag_mode(Literal['append', 'replace', 'managed']) -
managed_column_tags(list[str]) -
table_property_mode(Literal['append', 'managed']) -
managed_table_properties(list[str])
table_tag_mode
pydantic-field
¶
How to apply table tags to remote catalog
column_tag_mode
pydantic-field
¶
How to apply column tags to remote catalog
table_property_mode
pydantic-field
¶
How to apply table properties to remote catalog
managed_table_properties
pydantic-field
¶
List of property keys to manage on tables
kelp.models.project_config.VarsOverwriteConfig
pydantic-model
¶
Bases: BaseModel
Configuration for variable overrides.
Attributes:
| Name | Type | Description |
|---|---|---|
vars |
dict
|
Dictionary of variables to override. |
Show JSON schema:
{
"description": "Configuration for variable overrides.\n\nAttributes:\n vars: Dictionary of variables to override.",
"properties": {
"vars": {
"additionalProperties": true,
"description": "Variables to override in the project",
"title": "Vars",
"type": "object"
}
},
"title": "VarsOverwriteConfig",
"type": "object"
}
Fields:
-
vars(dict)
kelp.models.project_config.ProjectConfig
pydantic-model
¶
Bases: BaseModel
Project-level configuration for a kelp project.
Attributes:
| Name | Type | Description |
|---|---|---|
models_path |
str | None
|
Path to table/model definitions. |
models |
dict
|
Configuration hierarchy for models. |
metrics_path |
str | None
|
Path to metric view definitions. |
metric_views |
dict
|
Configuration hierarchy for metric views. |
functions_path |
str | None
|
Path to function definitions. |
functions |
dict
|
Configuration hierarchy for functions. |
abacs_path |
str | None
|
Path to ABAC policy definitions. |
abacs |
dict
|
Configuration hierarchy for ABAC policies. |
sources_path |
str | None
|
Path to source definitions. |
sources |
dict
|
Configuration hierarchy for sources. |
quarantine_config |
QuarantineConfig
|
Configuration for table quarantine and validation. |
remote_catalog_config |
RemoteCatalogConfig
|
Configuration for remote catalog synchronization. |
runtime_vars |
SkipJsonSchema[dict]
|
Runtime variables (internal use). |
project_file_path |
SkipJsonSchema[str]
|
Path to the project configuration file (internal use). |
Show JSON schema:
{
"$defs": {
"PolicyConfig": {
"description": "Top-level policy execution switch.\n\nPolicy rules are authored in policy files (``kelp_policies``). This model\nintentionally keeps only the global enable/disable flag for applying policy\nchecks during context initialization and via the ``check-policies`` CLI.\n\nAttributes:\n enabled: Master switch to activate policy checks (default: False).\n fast_exit: Stop policy evaluation on first violating policy per model.",
"properties": {
"enabled": {
"default": false,
"description": "Master switch to activate policy checks",
"title": "Enabled",
"type": "boolean"
},
"fast_exit": {
"default": false,
"description": "Stop policy evaluation on first violating policy per model",
"title": "Fast Exit",
"type": "boolean"
}
},
"title": "PolicyConfig",
"type": "object"
},
"QuarantineConfig": {
"description": "Configuration for table quarantine and validation.\n\nAttributes:\n quarantine_catalog: Catalog name for quarantined data (defaults to project catalog).\n quarantine_schema: Schema name for quarantined data (defaults to project schema).\n quarantine_prefix: Prefix for quarantine table names.\n quarantine_suffix: Suffix for quarantine table names.\n validation_prefix: Prefix for validation table names.\n validation_suffix: Suffix for validation table names.",
"properties": {
"quarantine_catalog": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Catalog for quarantined data",
"title": "Quarantine Catalog"
},
"quarantine_schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Schema for quarantined data",
"title": "Quarantine Schema"
},
"quarantine_prefix": {
"default": "",
"description": "Prefix for quarantine table names",
"title": "Quarantine Prefix",
"type": "string"
},
"quarantine_suffix": {
"default": "_quarantine",
"description": "Suffix for quarantine table names",
"title": "Quarantine Suffix",
"type": "string"
},
"validation_prefix": {
"default": "",
"description": "Prefix for validation table names",
"title": "Validation Prefix",
"type": "string"
},
"validation_suffix": {
"default": "_validation",
"description": "Suffix for validation table names",
"title": "Validation Suffix",
"type": "string"
}
},
"title": "QuarantineConfig",
"type": "object"
},
"RemoteCatalogConfig": {
"description": "Configuration for remote Databricks catalog synchronization.\n\nAttributes:\n table_tag_mode: How to apply table tags (\"append\", \"replace\", \"managed\").\n managed_table_tags: List of tag keys to manage on tables.\n column_tag_mode: How to apply column tags (\"append\", \"replace\", \"managed\").\n managed_column_tags: List of tag keys to manage on columns.\n table_property_mode: How to apply table properties (\"append\" or \"managed\").\n managed_table_properties: List of property keys to manage on tables.",
"properties": {
"table_tag_mode": {
"default": "replace",
"description": "How to apply table tags to remote catalog",
"enum": [
"append",
"replace",
"managed"
],
"title": "Table Tag Mode",
"type": "string"
},
"managed_table_tags": {
"description": "List of tag keys to manage on tables",
"items": {
"type": "string"
},
"title": "Managed Table Tags",
"type": "array"
},
"column_tag_mode": {
"default": "replace",
"description": "How to apply column tags to remote catalog",
"enum": [
"append",
"replace",
"managed"
],
"title": "Column Tag Mode",
"type": "string"
},
"managed_column_tags": {
"description": "List of tag keys to manage on columns",
"items": {
"type": "string"
},
"title": "Managed Column Tags",
"type": "array"
},
"table_property_mode": {
"default": "append",
"description": "How to apply table properties to remote catalog",
"enum": [
"append",
"managed"
],
"title": "Table Property Mode",
"type": "string"
},
"managed_table_properties": {
"description": "List of property keys to manage on tables",
"items": {
"type": "string"
},
"title": "Managed Table Properties",
"type": "array"
}
},
"title": "RemoteCatalogConfig",
"type": "object"
}
},
"description": "Project-level configuration for a kelp project.\n\nAttributes:\n models_path: Path to table/model definitions.\n models: Configuration hierarchy for models.\n metrics_path: Path to metric view definitions.\n metric_views: Configuration hierarchy for metric views.\n functions_path: Path to function definitions.\n functions: Configuration hierarchy for functions.\n abacs_path: Path to ABAC policy definitions.\n abacs: Configuration hierarchy for ABAC policies.\n sources_path: Path to source definitions.\n sources: Configuration hierarchy for sources.\n quarantine_config: Configuration for table quarantine and validation.\n remote_catalog_config: Configuration for remote catalog synchronization.\n runtime_vars: Runtime variables (internal use).\n project_file_path: Path to the project configuration file (internal use).",
"properties": {
"models_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to table/model definitions",
"title": "Models Path"
},
"models": {
"additionalProperties": true,
"description": "Configuration hierarchy for models",
"title": "Models",
"type": "object"
},
"metrics_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to metric view definitions",
"title": "Metrics Path"
},
"metric_views": {
"additionalProperties": true,
"description": "Configuration hierarchy for metric views",
"title": "Metric Views",
"type": "object"
},
"functions_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to function definitions",
"title": "Functions Path"
},
"functions": {
"additionalProperties": true,
"description": "Configuration hierarchy for functions",
"title": "Functions",
"type": "object"
},
"abacs_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to ABAC policy definitions",
"title": "Abacs Path"
},
"abacs": {
"additionalProperties": true,
"description": "Configuration hierarchy for ABAC policies",
"title": "Abacs",
"type": "object"
},
"sources_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to source definitions",
"title": "Sources Path"
},
"sources": {
"additionalProperties": true,
"description": "Configuration hierarchy for sources",
"title": "Sources",
"type": "object"
},
"policies_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to policy definitions",
"title": "Policies Path"
},
"quarantine_config": {
"$ref": "#/$defs/QuarantineConfig",
"description": "Configuration for table quarantine and validation"
},
"remote_catalog_config": {
"$ref": "#/$defs/RemoteCatalogConfig",
"description": "Configuration for remote catalog synchronization"
},
"policy_config": {
"$ref": "#/$defs/PolicyConfig",
"description": "Metadata governance policy configuration"
}
},
"title": "ProjectConfig",
"type": "object"
}
Fields:
-
models_path(str | None) -
models(dict) -
metrics_path(str | None) -
metric_views(dict) -
functions_path(str | None) -
functions(dict) -
abacs_path(str | None) -
abacs(dict) -
sources_path(str | None) -
sources(dict) -
policies_path(str | None) -
quarantine_config(QuarantineConfig) -
remote_catalog_config(RemoteCatalogConfig) -
policy_config(PolicyConfig) -
runtime_vars(SkipJsonSchema[dict]) -
project_file_path(SkipJsonSchema[str])