| Authentication, authorization, ForwardAuth target | ADR-020 |
| Tenant model, site isolation, cross-site sharing | ADR-020 |
Forwarded X-Auth-* headers contract | ADR-020 |
| Keycloak realm, clients, roles, groups | ADR-020 |
| Public-route allowlist | ADR-020 |
| Environment topology (local / prod / local-prod), feature testing on prod test sites | ADR-050 (supersedes ADR-021) |
| Preview environments per PR (dropped) | ADR-050 (supersedes ADR-021) |
| Staging gate before CD (ephemeral stack on the CI runner, CD triggers on Staging) | ADR-049 |
| Secrets management, OVHcloud Secret Manager → Dokploy UI | ADR-022 |
| Secret rotation procedure | ADR-022 |
| API gateway, Traefik | ADR-005 |
| Runtime hosting, Dokploy, single VPS | ADR-019 |
No repo bind mounts in deployed containers, config baked into images, images.json env var → image map | ADR-032 |
| FastAPI as backend stack, Alembic migrations | ADR-012 |
| Schema registry (Apicurio) | ADR-001 |
| Data quality (Great Expectations, GX+OpenMetadata strategy) | ADR-002, ADR-023 |
| Iceberg compaction strategy | ADR-003 |
| Iceberg catalog (Lakekeeper) | ADR-004 |
| Field-activity event log | ADR-006 |
| Service mesh / Kubernetes deferral | ADR-007 (superseded by ADR-019) |
| Derived asset invalidation | ADR-008 |
| Observability stack | ADR-009 |
| Schema registration from the sample file, column additions on ACTIVE sources | ADR-010 (Path B superseded by ADR-041) |
| One schema path (Path B dropped), held uploads, Zentra Z6 registry exception and per-port column keys | ADR-041 |
| Documentation platform | ADR-011 |
| Local object storage (Silo, MinIO-compatible) | ADR-015 |
Iceberg partition strategy, site_code partitioning | ADR-016 |
| Table format selection (Iceberg vs Hudi/Delta) | ADR-017 |
| Cross-source harmonization, BADM tiers | ADR-018 |
| ICOS export pipeline | ADR-014 |
| Site map editor (Leaflet, PostGIS, spatial schema) | ADR-013 |
| Treatment, Trial, TrialSeries, ExperimentalLocation (experimental design model) | ADR-013 |
| Device, Sensor, Channel (measurement infrastructure model) | ADR-013 |
Import validity (no dates on import, correction vs new-feature rule), site.established_on, CHAMBER as Point marker | ADR-030 |
Inlet, SENSOR marker placement, channel location resolution (marker → platform.sensors) | ADR-034 (Proposed) |
Zentra sensor serial/depth on Sensor rows, port moves (SENSOR_SWAP, location follows serial), logger GPS as fallback Z6 placement | ADR-047 (Proposed) |
Column → channel derivation, column role, local variable codes (X_ prefix), promotion to BADM | ADR-038 |
| File layout (header row, data start row), column position, positional matching for headerless files | ADR-039 |
| Headerless layout variants (column count → names, width-based pick, superset registration, wizard instrument profiles) | ADR-045 |
Live QGIS editing (OGC API – Features router), QGIS edit keys, /api/v1/ogc/ ForwardAuth bypass | ADR-031 |
| Observation data model | ADR-025 |
Observation table naming (observation_data.observations), tall-row identity (source_row), value_text, overwrite-by-upload writes, data source template, sample context as ordinary columns | ADR-037 (writes for continuous sources superseded by ADR-042) |
Upload deduplication (sha256, 409 with existing ingestion ID), agnue-push S3 fallback pickup (fallback_uploads), continuous observations merge across uploads | ADR-042 |
Raw object encoding (gzip, Content-Encoding, magic-byte decode), agnue-push compression, no client-side Parquet conversion | ADR-043 |
| Lineage tooling (Marquez vs OpenMetadata, dual HTTP POST) | ADR-024 (OM endpoint and event translation superseded by ADR-044) |
OpenMetadata lineage resolution (/openlineage/lineage, upload keys → per-data-source Containers, openlineage pipeline service), OM table FQN | ADR-044 |
| AI/LLM service architecture, external LLM dependency, onboarding/event-classification assistance | ADR-026 |
| Vector search, Qdrant, retrieval-augmented AI features | ADR-027 |
Agent CLI (agnue sources), server-assigned data source IDs, domain enum, create ?dry_run=true, skill in the SDK wheel | ADR-048 |
Flux footprint met data provider (CDS vs Open-Meteo), MetProvider abstraction | ADR-028 |
| Self-hosted Grafana stack, Grafana Keycloak OIDC login, LGTM retention | ADR-029 |