Loading documentation...
Single index of authoritative docs for taxonomy, ingestion, Postgres contract, schema history, and application routes. Use this when adding prose or resolving conflicts.
Use this file when deciding where new prose belongs or which file is authoritative for a topic. Browse the live tree in-app at /docs.
flowchart LR subgraph narrative [Semantics] Taxonomy[taxonomy] Categories[category_values] end subgraph ingest [Ingestion] Pipe[pipeline] Maps[adapter_mappings] end subgraph fds [Fire_data_schema] Concept[conceptual] Contract[postgres_contract] SchemaHist[schema_history] end subgraph appLayer [Application] Explore[explore_slice] ReadPath[read_path_rpc] end narrative --> ingest narrative --> fds ingest --> fds fds --> appLayer classDef folder fill:#f1f5f9,stroke:#64748b,stroke-width:1px,stroke-dasharray:4 3,color:#334155 class Maps,SchemaHist folder
| Location | Role | Authority |
|---|---|---|
semantics-and-sources/ | ||
semantics-and-sources/eu-firestat-final-report.md | EU FIRESTAT final report (July 2022): cleaned English text — tiers, §4 definitions, value lists, annexes. | Authoritative EU harmonisation source; not Norwegian adapter logic. |
semantics-and-sources/progress-report-1.md | EU FIRESTAT progress report 1 (March 2021): Task 0 diagnostic + Task 1 terminology (culled to DK/FI/NO/SE/UK/USA). Challenges + risk analysis. | Background to final report; figures omitted in markdown edition. |
semantics-and-sources/eu-firestat-variable-cheatsheet.md | EU Firestat quick reference: Tier 1/2 #1–#14, fire-incident threshold, HeatWaves dim_code mapping. | Lookup; full prose in eu-firestat-final-report.md. |
semantics-and-sources/taxonomy-and-eu-firestat-alignment.md | Domain narrative: Norwegian source capabilities, EU-aligned chart dims, ambiguous boundaries. | Prose "why / what exists where" for SSB/BRASK/BRIS. |
semantics-and-sources/category-values-by-source.md | Reference tables: category values per source, cross-source ✓ / ≈ / ✗ mappings. | Human-readable values; not adapter ID rules. |
semantics-and-sources/glossary.md | Term index: short definitions with links to owners (not a second taxonomy). | Lookup only; defer narrative to taxonomy doc. |
design-rationale.md | Stack rationale: Next.js, Supabase, shadcn, chart libraries. | Product/engineering context; schema grain defers to fire-data-schema/schema-history/v2-design-rationale-overview.md. |
ingestion/ | ||
ingestion/adapter-mappings/building-type-buckets.md | ETL note: BRIS Matrikkel native_code → four standard_code buckets for building_type. | Complements filter-axes mapping; see linked SQL script. |
ingestion/adapter-mappings/category-native-to-cat-code.md | ETL contract: cat_code, native_api_code, BRIS question ids, x00 rules. | Implementation for adapters + seed alignment. |
ingestion/adapter-mappings/filter-axes-native-to-filter-id.md | ETL contract: filter axes, BRASK/BRIS parameter names, native_value. | Same tier as category mapping. |
ingestion/adapter-mappings/regions-and-cresta.md | Region spine: canonical 2024 counties, BRASK Cresta → canonical, cross-source rules for maps. | Single owner for county code ↔ name tables used in viz and normalization. |
ingestion/adapter-mappings/ssb-pxwebapi-tables.md | SSB PxWebApi reference: table 12058 variables, KOSTRA codes, cross-source age notes. | Pair with ssb.ts adapter and dataset 10 in source-api examples. |
ingestion/adapter-mappings/source-api-request-examples.md | Verified request matrix (datasets 1–12) + smoke-test narrative; tracked adapter-mappings/.live_responses/ holds pinned JSON/HTML for doc links and manual diffing. BRIS pre-2024 fylke ids for counties.ids live in the appendix there; post-2024 ids defer to regions-and-cresta.md (no duplicate table). | Pair with pipeline §4–§10 when changing slice templates; regen captures when upstream changes. |
ingestion/catalog-governance-and-reconciliation.md | Operations / governance: catalog completeness, ingest routing, quality signals, reconciliation vs upstream totals. | Complements pipeline + Postgres contract; not normative for trigger atomicity. |
ingestion/pipeline-slices-idempotency-and-triggers.md | Pipeline: ingest flow, slices, idempotency, triggers. §10.3–§10.4 = daily four-tier probes (BRASK + BRIS Police), shared prefetch RPCs, dual phase_detail.kind values (brask_daily_fanout | bris_police_daily_fanout), and slice_hash generated column. | Orchestration; links to maps + Postgres contract. |
ingestion/typescript-entrypoints-dispatcher-and-registry.md | Ingestion TS entrypoints: dispatcher, registry, per-source functions. | Code map for lib/data-model/adapters. |
fire-data-schema/ | ||
fire-data-schema/postgres-contract-rls-and-keys.md | Live PostgreSQL contract: RLS, keys, indexes, triggers. | Wins over narrative when SQL disagrees. |
fire-data-schema/conceptual-tables-and-grain.md | Conceptual schema (names, intent). | Non-executable; pair with Postgres contract for DDL truth. |
fire-data-schema/schema-history/ | DB design narrative (under fire-data-schema): migrations, rationales, adapter notes. | Must link to Postgres contract for executable truth. |
application-architecture/ | ||
application-architecture/read-path-get-fire-data-and-catalog-caching.md | Read path: get_fire_data, catalog cache, generated RPC types. | Chart read wiring in lib/data-model. |
application-architecture/app-routes.md | App routes: shipped app/(main) surfaces and nav labels. | Route inventory. |
application-architecture/atlas-route.md | /atlas: scrollytelling chapters, URL ↔ FireDataQuery, fetchAtlas* reads. | Product behavior; pair with read-path doc. |
application-architecture/dashboard-route.md | /dashboard: configurable block playground (react-grid-layout), chart registry + adapters, per-user persisted layouts, query overrides. | Product behavior; route inventory defers here for dashboard detail. |
application-architecture/explore-fire-data-slice-probe-and-ingest.md | /explore: URL → slice, coverage (probe_slice_coverage on fact_yearly when granularity=year; probe_slice_coverage_daily on fact_daily when sub-year, aligned with get_fire_data), branch to charts vs partial heal vs cold ingest (auth) vs login prompt (anon), grain dispatch, polling. | Product behavior; must stay consistent with read-path RPC branch. |
application-architecture/charts-correlation-crosstab.md | /analytics: discontinued chart surface (presentation-only page). | Route status; future reintroduction via read path. |
application-architecture/charts-libraries-by-area.md | UI / stack inventory: Recharts vs ECharts by area, shadcn Progress. | Component-level inventory; pair with analytics behavior doc. |
Implementation files under app/, lib/, components/, and supabase/migrations/ should link back to the map owner for the behavior they implement:
/** * … * @see docs/<owner-from-artifact-table-above>.md — what this file implements */
In SQL migrations, use a leading comment on the same line or block:
-- @see docs/application-architecture/explore-fire-data-slice-probe-and-ingest.md
Rules:
§10, §10.3–§10.4, or a short phrase — npm run verify:docs checks that the file exists and that section anchors resolve when present.cat_code, native_api_code) for code/ETL.ingestion/adapter-mappings/regions-and-cresta.md. source-api-request-examples.md keeps pre-2024 BRIS counties.ids (klass 104 historical window) plus narrative; it links to the canonical doc for post-2024 — do not paste a second full county table there.app/(main)/…/page.tsx yet, e.g. /risk): do not add a map row or canonical app-arch doc until the route ships. Draft specs may stay in local docs/_archive/ (gitignored; not linked from this tree)./docs for diagrams and links beside each area.npm run verify:docs — link graph, @see targets, map coverage, _archive refs (CI runs this after lint).../../README.md.