Skip to content

feat(registry): map every Presentation route and state where a frame refusal lands - #39

Merged
jm-rivera merged 6 commits into
devfrom
fix/presentation-read-endpoints
Oct 31, 2026
Merged

jm-rivera merged 6 commits into
devfrom
fix/presentation-read-endpoints

Conversation

@jm-rivera

Copy link
Copy Markdown
Contributor

The Presentation API now maps every route it serves. presentation.frames covers both frames routes, presentation.component_read the component GET, and presentation.component_data the revision data route. Until now these routes had no endpoint, so apis checked them against presentation.write as a stand-in. Meta routes stay unmapped.

unsupported_schema_version maps at 422 on presentation.render and presentation.shares, where a request body carrying schema_version already answers that code.

Three definitions now state where a frame refusal lands. A store that fails to answer is service_unavailable at 503. A pin of a derived frame with no recipe yet is frame_unavailable at 404, retryable, with cause.code recipe_pending. A pin of a derived frame whose recipe cannot be read is internal_error at 500, since recipes are write-once. release_mismatch adds a read of a stored payload whose shape the release does not recognise. The [Unreleased] changelog text that put a failed store read under frame_unavailable at 503 is corrected.

No code is added, so the apis bijection holds. DevelopmentFinanceObservatory/apis#75 moves its pin to this commit and reads every Presentation status from the registry.

Testing: tools 618, spec-kit 259, components 314, and client-contract 244 passed, and all 8 validators report OK. Dropping the endpoints from the schema's doors-forbidden list fails three new rows in tools/tests/test_validate_registry.py.

@jm-rivera
jm-rivera merged commit b3ac9b0 into dev Oct 31, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant