Skip to content

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 pydantic-field

quarantine_catalog = None

Catalog for quarantined data

quarantine_schema pydantic-field

quarantine_schema = None

Schema for quarantined data

quarantine_prefix pydantic-field

quarantine_prefix = ''

Prefix for quarantine table names

quarantine_suffix pydantic-field

quarantine_suffix = '_quarantine'

Suffix for quarantine table names

validation_prefix pydantic-field

validation_prefix = ''

Prefix for validation table names

validation_suffix pydantic-field

validation_suffix = '_validation'

Suffix for validation table names

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 pydantic-field

table_tag_mode = 'replace'

How to apply table tags to remote catalog

managed_table_tags pydantic-field

managed_table_tags

List of tag keys to manage on tables

column_tag_mode pydantic-field

column_tag_mode = 'replace'

How to apply column tags to remote catalog

managed_column_tags pydantic-field

managed_column_tags

List of tag keys to manage on columns

table_property_mode pydantic-field

table_property_mode = 'append'

How to apply table properties to remote catalog

managed_table_properties pydantic-field

managed_table_properties

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 pydantic-field

vars

Variables to override in the project

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 pydantic-field

models_path = None

Path to table/model definitions

models pydantic-field

models

Configuration hierarchy for models

metrics_path pydantic-field

metrics_path = None

Path to metric view definitions

metric_views pydantic-field

metric_views

Configuration hierarchy for metric views

functions_path pydantic-field

functions_path = None

Path to function definitions

functions pydantic-field

functions

Configuration hierarchy for functions

abacs_path pydantic-field

abacs_path = None

Path to ABAC policy definitions

abacs pydantic-field

abacs

Configuration hierarchy for ABAC policies

sources_path pydantic-field

sources_path = None

Path to source definitions

sources pydantic-field

sources

Configuration hierarchy for sources

policies_path pydantic-field

policies_path = None

Path to policy definitions

quarantine_config pydantic-field

quarantine_config

Configuration for table quarantine and validation

remote_catalog_config pydantic-field

remote_catalog_config

Configuration for remote catalog synchronization

policy_config pydantic-field

policy_config

Metadata governance policy configuration

runtime_vars pydantic-field

runtime_vars

Runtime variables

project_file_path pydantic-field

project_file_path = ''

Path to the project configuration file