正式页面以 8766 为主线路,旧接口只作故障备用;compose 钉死全部 DATAHUB_READ_*,避免现网残留 0 造成假完成。 Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>
2.0 KiB
2.0 KiB
Governance Registries
These registries describe the approved product surface of the standalone application.
pages.config.json: primary page identity, navigation group, access expectation, scrolling, and mobile composition policy.features.config.json: feature ownership, backend access class, data scope, and availability.api.config.json: current routes generated from the preservedserver.pyAPI surface, with one feature owner and backend access class per route. Its dispatcher implementation lives inbackend/application.py.architecture-inventory.json: generated inventory of current pages, routes, tables, providers, model entry points, CSS layers, and remaining code hotspots.data-fields.config.json: canonical data products, provider eligibility, intended use, and known blocked datasets.datahub.config.json: official read-only client forxiaobai-datahub. Each dataset has its ownread/shadowflag; official reads default on.compose.yamlpins everyDATAHUB_READ_*to"1"so a leftover.env=0cannot silently keep official pages on the old APIs. Environment variables can still override a singleDATAHUB_SHADOW_*without a master switch. The old website APIs stay as emergency fallback only.data-quality.config.json: freshness, coverage, units, adjustment, point-in-time, and fail-closed rules for every canonical data product.jobs.config.json: background schedules, dependencies, lock keys, retry policy, timeouts, and output versions.
The registries are governance contracts, not substitutes for runtime authorization. Backend
access in backend/http/routes.py is authoritative; frontend visibility is only a presentation
concern and never grants access.
Regenerate the transitional API inventory after a route change:
python tools/build_api_registry.py
python tools/build_api_registry.py --check
python tools/build_architecture_inventory.py
python tools/build_architecture_inventory.py --check