Changelog
Phase 3 — Developer portal
- New portal at
bocurrencyprice.techina.science — landing page, currency detail pages with 30/90/365-day charts, API reference.
- Data CDN moved to
data-bocurrencyprice.techina.science; legacy URLs preserved via Pages-Function reverse proxy.
- OpenAPI spec at /openapi.yaml; rendered with Scalar.
Phase 2 — Query API
- Cloudflare Worker exposing
/v1/currencies, /v1/latest, /v1/latest/:ccy, /v1/historical/:ccy.
- Configurable
?tz=, weekend/holiday fallback, weak ETag, CORS open, range cap 365 days.
- 21 vitest tests, GitHub Actions deploy via wrangler-action.
Phase 1 — Data layer fixes
- Row-level dedup by price 5-tuple — collapses contiguous identical-price runs to a single row at the start.
- New ISO 8601 fields
publish_at_utc / publish_at_local on every newly-written row; legacy publish_date preserved verbatim.
- Currency list expanded from 7 → 40 (full BOC live set); fixed BRL Chinese name.
- Monthly drift-detection workflow against BOC's live currency list.
- 21 unit tests for parsing / dedup / timestamp conversion.
Earlier history (data archive only, 2023-11-23 onward) is in the
archive repo's commit log.