Skip to content

Configuration

Configuration is split between environment variables, dbt variables, fixed security names, and one bundle variable.

dbt variables

Variable Default Consumer Contract
schema_prefix Value of DBT_SCHEMA_PREFIX, otherwise empty Schema-name macro and metadata tests Prefixes the six data schemas; does not prefix priva_internal
as_of_date 2026-03-01 int_invoices_resolved and due-state test An unpaid invoice is due when due_date <= as_of_date
date_dimension_start 2025-01-01 dim_date and dimension-count test Inclusive first calendar date
date_dimension_end 2028-12-31 dim_date and dimension-count test Inclusive last calendar date
personal_data_hash_version v1 Versioned pseudonymization function Fixed invariant; any other value raises a compiler error
personal_data_secret_scope bricksgdpr Versioned pseudonymization function Fixed invariant; any other value raises a compiler error
personal_data_secret_key pepper_v1 Versioned pseudonymization function Fixed invariant; any other value raises a compiler error

The three personal_data_* entries are compile-time pins, not supported customization points.

Source: dbt_project.yml:20-27, functions/pseudonymize_personal_data_v1.sql.

Local dbt connection variables

Environment variable Required Default Meaning
DATABRICKS_HOST Yes None Databricks workspace hostname used by the dbt adapter
DATABRICKS_HTTP_PATH Yes None SQL warehouse HTTP path
DBT_CONTROL_CATALOG Yes None Connection-default catalog for local dbt commands
DBT_CONTROL_SCHEMA No default Connection-default schema
DBT_PROJECT_CATALOG No bricksgdpr Catalog receiving seeds, functions, and models
DBT_SCHEMA_PREFIX No Empty Prefix applied to data schemas

DBT_CONTROL_CATALOG and DBT_CONTROL_SCHEMA establish the adapter connection context. They do not change the governed output catalog, which is set by DBT_PROJECT_CATALOG.

Source: profiles.yml, dbt_project.yml:29-73.

Identity and acceptance variables

Environment variable Provisioning Persona validation Contract
DATABRICKS_CONFIG_PROFILE Required Required Explicit Databricks CLI profile
DATABRICKS_WAREHOUSE_ID Required Required Exact warehouse ID; group permission must be direct CAN_USE
DATABRICKS_ACCOUNT_ID Not used Required Exact account ID verified against authenticated configuration
DATABRICKS_EXPECTED_HOST Required Required Exact https:// workspace host
DATABRICKS_EXPECTED_CALLER Required Required Expected authenticated operator email
DATABRICKS_IDENTITY_MODE Required Required synthetic or human
PRIVACY_ADMIN_EMAIL Required Required Persistent privacy-administrator identity
RESTRICTED_USER_EMAIL Required Required Persistent restricted-user identity
CASE_USER_EMAIL Required Required Persistent case-user identity
PRIVACY_ADMIN_GROUP_ID Optional until groups exist Required Pinned privacy_admins account-group ID
RESTRICTED_USER_GROUP_ID Optional until groups exist Required Pinned restricted_users account-group ID
CASE_USER_GROUP_ID Optional until groups exist Required Pinned case_users account-group ID

On a first account deployment, all three group-ID variables must be empty together. Existing groups require their exact pinned IDs. Account-specific fields are intentionally blank in .env.example; populate only the ignored .env copy.

.env.example groups the values by consumer: shared provisioning/validation variables first, validation-only DATABRICKS_ACCOUNT_ID second, and the three group IDs with their different first-provisioning and validation requirements last.

Source: .env.example, scripts/provision_identities.sh:10-24, scripts/validate_personas.sh:10-21.

Bundle variable

Variable Default Meaning
warehouse_id None SQL warehouse used by the bundle's dbt task

Sourcing .env exports BUNDLE_VAR_warehouse_id from the reviewed DATABRICKS_WAREHOUSE_ID. The bundle does not set a connection catalog or schema; Databricks uses the selected workspace and warehouse defaults for the generated run-scoped dbt profile. Governed outputs still use the dbt project's catalog and schema configurations.

Source: databricks.yml:9-12, resources/bricksgdpr.job.yml:16-27.

Fixed names

Name Value Status
Privacy group privacy_admins Hardcoded security-contract name
Restricted group restricted_users Hardcoded security-contract name
Case group case_users Hardcoded security-contract name
Internal schema priva_internal Never schema-prefixed
Version-one wrapper pseudonymize_personal_data_v1 Fixed function name
Version-one secret reference bricksgdpr/pepper_v1 Fixed scope/key name

The repository pins the secret reference, not the secret value. It does not inspect secret-scope ACLs or prevent an operator from replacing pepper_v1; value immutability and ACL restriction are operator-enforced invariants.

Persona validation namespace

The dbt model graph supports DBT_PROJECT_CATALOG and DBT_SCHEMA_PREFIX. Persona acceptance SQL does not: files under acceptance/personas/ hardcode the bricksgdpr catalog and unprefixed schema names. scripts/validate_personas.sh therefore supports only the canonical catalog with an empty schema prefix.