Storage Contracts
Context
This page defines practical storage contracts so contributors know what can change, what must be retained, and what is considered operational evidence.
Details
Contract summary:
- data/*.csv: input data, versioned, manually curated or imported.
- data_fixtures/*.csv: test fixtures, deterministic, must remain stable for tests.
- logs/marketstack_quota_usage.json: mutable state, updated by quota-aware workflows.
- logs/fx_rate_state.json: mutable FX state containing the last successful USD-to-CAD rate, retrieval timestamp, and source.
- logs/github_issue_bridge_state.json: mutable state for GitHub issue bridge continuity.
- logs/github_issue_audit.jsonl: append-only audit log.
- logs/archives/*.gz: compressed historical logs under retention policy.
Retention and lifecycle:
- active log/state files keep recent operational history;
- old log data is archived as .gz under logs/archives/;
- old archives are purged by retention policy automation.
Change rules:
- update contracts and runbooks in the same PR when behavior changes;
- avoid renaming log/state files without updating workflows and wiki links.
- keep an_haut/an_bas faithful to source values; do not introduce converted 52-week thresholds into the data contract.
- treat valeur/devise as the only source for native prices and 52-week comparisons; cad_value is reserved for consolidated CAD reporting and historical charting.