Skip to main content

Architecture decision records

The ADRs in this directory are the current architectural truth for Baleia. CR documents remain the change history; when an ADR and a CR disagree, the ADR wins.

Format: MADR, one decision per file, numbered in order. Start from template.md.

Index​

ADRTitleStatus
0001Baleia is a control plane, never a data planeAccepted
0002Connections, engines, catalogs and bindingsAccepted
0003How a catalog reaches Trino (the Trino binder)Accepted
0004Catalog-store plugin distributionAccepted
0005Trino security modelAccepted
0006Multi-engine scopeAccepted
0007Adapters are constructed only at the wiring sitesAccepted
0008Error and secret boundariesAccepted
0009Recurring jobs run on Temporal SchedulesAccepted
0010Development environmentsProposed
0011Security of direct connections to user-supplied hostsAccepted
0012Semantic layer roadmap (no dbt)Accepted
0013Saved content modelAccepted

Owner decisions​

The owner decisions referenced across the backlog and where each one is recorded:

DecisionSummaryRecorded in
D1 (revised)Baleia is multi-engine: federated engines and direct engines0006
D2Compose stays as the quickstart; minikube/Helm for dev parity0010 (Proposed)
D3Managed-only authority: adopted catalogs are reported, never mutated0003
D4Registry secrets: Phase A by default (env/file refs stored as references)0003, #31
D5Connection test topology: metadata, direct engine and bind:<engine> checks0011, #12
D6The workspace role matrix lives in #16#16
D7Refresh token in an HttpOnly cookie; no tokens in URLs#51, #55
D8User SQL runs as a per-user Trino identity0005
D9Semantic layer: simple metrics in v1, Lightdash-level in v2, no dbt0012
D10The four-concept model: connections, engines, catalogs, bindings0002
D11v1 provider scope0002

Superseding an ADR​

Never edit the decision of an accepted ADR in place. To change it:

  1. Add a new ADR with the next number and a Supersedes: NNNN line under its status.
  2. Change the old ADR's status to Superseded by NNNN (the only edit an accepted ADR receives, besides its "Current compliance" section).
  3. Update the index above.

Each ADR has a Current compliance section that says where the code does not follow the decision yet and which issue fixes it. Update that section as those issues land.