api/v1.0 renders its reference page from docs/assets/beamable-oapi.json, a 990 KB file committed by hand. Its entire history is one commit — 81db6e4ad "api temp", 2025-10-23 — and no workflow in this repo or in BeamableAPI touches it.
The upstream source is BeamableGateway/Setup/SwaggerSetup.cs, which builds the document at runtime via Swashbuckle (SwaggerDoc("platform", …)). The committed file's info block matches it exactly, so the file is a dump of a running gateway's swagger output. It is not reachable from production — /swagger/platform/swagger.json and friends 404 on api.beamable.com, which is correct for a public host.
We need a repeatable way to refresh it, usable two ways:
- By GitHub Actions, so the spec can be updated on a schedule or on demand without a person in the loop
- By a Beamable developer, manually, when someone needs to pull a fresh spec while working on API docs
Until then the published reference is a ten-month-old snapshot with no reproducible provenance. One concrete staleness marker: its operations carry "security":[{"auth":[],"scope":[]}], while the current SwaggerSetup.cs defines schemes named user and server — the scheme names in the file no longer exist in the code that generates it.
api/v1.0renders its reference page fromdocs/assets/beamable-oapi.json, a 990 KB file committed by hand. Its entire history is one commit —81db6e4ad "api temp", 2025-10-23 — and no workflow in this repo or inBeamableAPItouches it.The upstream source is
BeamableGateway/Setup/SwaggerSetup.cs, which builds the document at runtime via Swashbuckle (SwaggerDoc("platform", …)). The committed file'sinfoblock matches it exactly, so the file is a dump of a running gateway's swagger output. It is not reachable from production —/swagger/platform/swagger.jsonand friends 404 onapi.beamable.com, which is correct for a public host.We need a repeatable way to refresh it, usable two ways:
Until then the published reference is a ten-month-old snapshot with no reproducible provenance. One concrete staleness marker: its operations carry
"security":[{"auth":[],"scope":[]}], while the currentSwaggerSetup.csdefines schemes nameduserandserver— the scheme names in the file no longer exist in the code that generates it.