# Column-type-alignment exemptions.
#
# Format (matching the underscore-audit / cache-primitive convention):
#
#   # rationale: <specific reason>
#   <table>:<column>
#
# Every entry needs its own non-empty rationale line immediately above it.
#
# ---------------------------------------------------------------------------
# Tables whose DDL lives in the hub repo, not in 3tears.
#
# A pod never creates its own tables: the broker refuses DDL from a pod, and these tables are
# declared by an operator and created by the hub. So 3tears declares the Column and the hub owns
# the CREATE TABLE, and a gate walking only 3tears migration roots structurally cannot pair them.
# Exempting is right here; the alternative would be to stop walking these packages, which is what
# this gate's hand-written root list used to do by accident and hid six packages.
#
# Verified 2026-09-16 against 14-eng-ai-bot/src/aibots/hub/migrations, and 2026-10-24 for the
# datasource tables, columns, relations, schema digests and table templates (their collections
# declare a TableSchema since 0.78.0): every column below is declared `timestamp with time zone`
# there, which is what DATETIMETZ_TYPE renders to, so these 33 are an ownership boundary and NOT
# suppressed drift. Re-verify when the hub moves one.
#
# What is still caught: a type mismatch inside 3tears' own migration trees, and any NEW datetime
# column in these packages, which is not exempt until someone adds it here with its own rationale.
# What is NOT caught: the hub changing one of these columns out from under 3tears. Closing that
# needs a cross-repo check and is not this gate.
# ---------------------------------------------------------------------------

# rationale: platform.datasources is created by the hub (v001_initial_schema.sql:185), declared there as timestamp with time zone
datasources:date_created
# rationale: platform.datasources is created by the hub (v001_initial_schema.sql:185), declared there as timestamp with time zone
datasources:date_updated
# rationale: platform.datasource_tables is created by the hub (v001_initial_schema.sql:117), declared there as timestamp with time zone
datasource_tables:date_introspected
# rationale: platform.datasource_tables is created by the hub (v001_initial_schema.sql:117), declared there as timestamp with time zone
datasource_tables:date_described
# rationale: platform.datasource_tables is created by the hub (v001_initial_schema.sql:117), declared there as timestamp with time zone
datasource_tables:date_created
# rationale: platform.datasource_tables is created by the hub (v001_initial_schema.sql:117), declared there as timestamp with time zone
datasource_tables:date_updated
# rationale: platform.datasource_columns is created by the hub (v001_initial_schema.sql:73), declared there as timestamp with time zone
datasource_columns:date_introspected
# rationale: platform.datasource_columns is created by the hub (v001_initial_schema.sql:73), declared there as timestamp with time zone
datasource_columns:date_described
# rationale: platform.datasource_columns is created by the hub (v001_initial_schema.sql:73), declared there as timestamp with time zone
datasource_columns:date_created
# rationale: platform.datasource_columns is created by the hub (v001_initial_schema.sql:73), declared there as timestamp with time zone
datasource_columns:date_updated
# rationale: platform.datasource_relations is created by the hub (v001_initial_schema.sql:94), declared there as timestamp with time zone
datasource_relations:date_created
# rationale: platform.datasource_relations is created by the hub (v001_initial_schema.sql:94), declared there as timestamp with time zone
datasource_relations:date_updated
# rationale: platform.table_templates is created by the hub (v001_initial_schema.sql:134), declared there as timestamp with time zone
table_templates:date_created
# rationale: platform.table_templates is created by the hub (v001_initial_schema.sql:134), declared there as timestamp with time zone
table_templates:date_updated
# rationale: platform.datasource_schema_digests is created by the hub (v029_datasource_schema_digests.py), declared there as timestamp with time zone
datasource_schema_digests:date_created
# rationale: platform.datasource_schema_digests is created by the hub (v029_datasource_schema_digests.py), declared there as timestamp with time zone
datasource_schema_digests:date_updated

# rationale: platform.groups is created by the hub (v001_initial_schema.sql:294), declared there as timestamp with time zone
groups:date_created
# rationale: platform.groups is created by the hub (v001_initial_schema.sql:294), declared there as timestamp with time zone
groups:date_updated

# rationale: platform.group_members is created by the hub (v001_initial_schema.sql:283), declared there as timestamp with time zone
group_members:date_added

# rationale: platform.roles is created by the hub (v001_initial_schema.sql:364), declared there as timestamp with time zone
roles:date_created
# rationale: platform.roles is created by the hub (v001_initial_schema.sql:364), declared there as timestamp with time zone
roles:date_updated

# rationale: platform.role_assignments is created by the hub (v001_initial_schema.sql:345), declared there as timestamp with time zone
role_assignments:date_granted

# rationale: platform.namespaces is created by the hub (v001_initial_schema.sql:328), declared there as timestamp with time zone
namespaces:date_created
# rationale: platform.namespaces is created by the hub (v001_initial_schema.sql:328), declared there as timestamp with time zone
namespaces:date_updated

# rationale: platform.impersonation_gates is created by the hub (v049_impersonation_gate.py:104), declared there as timestamp with time zone
impersonation_gates:requested_at
# rationale: platform.impersonation_gates is created by the hub (v049_impersonation_gate.py:104), declared there as timestamp with time zone
impersonation_gates:granted_at
# rationale: platform.impersonation_gates is created by the hub (v049_impersonation_gate.py:104), declared there as timestamp with time zone
impersonation_gates:expires_at
# rationale: platform.impersonation_gates is created by the hub (v049_impersonation_gate.py:104), declared there as timestamp with time zone
impersonation_gates:date_created
# rationale: platform.impersonation_gates is created by the hub (v049_impersonation_gate.py:104), declared there as timestamp with time zone
impersonation_gates:date_updated

# rationale: platform.concepts is created by the hub (v013_concepts.py:64), declared there as timestamp with time zone
concepts:date_created
# rationale: platform.concepts is created by the hub (v013_concepts.py:64), declared there as timestamp with time zone
concepts:date_updated

# rationale: platform.playbook_entries is created by the hub (v012_playbooks.py:104), declared there as timestamp with time zone
playbook_entries:date_created
# rationale: platform.playbook_entries is created by the hub (v012_playbooks.py:104), declared there as timestamp with time zone
playbook_entries:date_updated
