Skip to content

Commit 485f144

Browse files
docs: describe the published catalog API
1 parent d437c87 commit 485f144

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

README.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,25 @@ scripts/
4646

4747
### Packages
4848

49-
- **`packages/dxdata`** — Annotated maimai DX song and sheet metadata as JSON, with TypeScript enums for versions, categories, and difficulty levels. Generated by `scripts/annotator`.
49+
- **`packages/dxdata`** — The legacy compatibility snapshot and TypeScript
50+
helpers. New native clients read the published catalog API; this package
51+
remains while existing web and renderer consumers migrate.
5052

5153
- **`packages/tsconfig`** — Shared TypeScript configuration used across all apps and packages.
5254

55+
### Published catalog API
56+
57+
`GET /api/v1/dxdata` returns the complete current catalog and its metadata in
58+
one schema-versioned, null-free document. The producer stores immutable bodies
59+
in PostgreSQL and atomically advances the `production-v1` pointer; the API never
60+
reconstructs the document per request or exposes stored provenance.
61+
62+
The endpoint supports `GET`, metadata-only `HEAD`, strong `ETag` validators,
63+
and `If-None-Match`. Successful responses are public and use separate browser
64+
and CDN stale-while-revalidate policies. Errors are `no-store`. The Cloudflare
65+
Cache Rules workflow manages only the queryless catalog and arcade-catalog
66+
paths, leaving unrelated zone rules untouched.
67+
5368
## Tech Stack
5469

5570
| Layer | Technology |

0 commit comments

Comments
 (0)