app.routers.records¶
HTTP routes for searching and viewing catalog records.
Thin: query-parameter validation and status codes only; all assembly
logic lives in app.services.search and
app.services.record_detail. These routes only use the
storage provider (app.composition.get_store_provider()) and the
catalog configuration loaded at startup
(app.composition.get_catalog_runtime()) – never a source
adapter, so normal browse/search requests make no source calls (see
docs/developer/decisions/0004-reads-from-local-index.rst).
- app.routers.records.list_records(q=Query(None), source=Query(None), project=Query(None), state=Query(None), needs_approval=Query(False), record_type=Query(decision), sort=Query(None), page=Query(1), page_size=Query(20), provider=Depends(dependency=<function get_store_provider>, use_cache=True, scope=None), runtime=Depends(dependency=<function get_catalog_runtime>, use_cache=True, scope=None))¶
Search the catalog with the Phase 1 filters.
- Parameters:
q (
str|None) – Free text (titles, bodies, UUIDs, paths); blank or omitted matches everything.state (
RecordState|None) – Restrict topublishedorcandidate.needs_approval (
bool) – Restrict to records that need approval.record_type (
RecordTypeFilter) – Decisions (default), errata, or both.sort (
SearchSort|None) – Result order, or omitted for the default.page (
int) – 1-based page number.page_size (
int) – Page size, 1 toMAX_PAGE_SIZE.provider (
CatalogStoreProvider) – Storage provider (overridden by tests).runtime (
CatalogRuntime|None) – Startup configuration state.
- Return type:
- Returns:
The page.
- app.routers.records.get_record(record_id, provider=Depends(dependency=<function get_store_provider>, use_cache=True, scope=None), runtime=Depends(dependency=<function get_catalog_runtime>, use_cache=True, scope=None), settings=Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), principal=Depends(dependency=<function require_permission.<locals>._check>, use_cache=True, scope=None))¶
Fetch one record’s detail page.
approval.can_decide(and the blocked reason) is evaluated for the caller.- Parameters:
record_id (
UUID) – Record id.provider (
CatalogStoreProvider) – Storage provider (overridden by tests).runtime (
CatalogRuntime|None) – Startup configuration state.settings (
Settings) – Application settings (for the stale threshold).principal (
Principal) – The authenticated caller.
- Return type:
- Returns:
The detail.
- Raises:
app.errors.NotFoundError – If the record does not exist.
- app.routers.records.get_record_diff(record_id, from_digest=Query(None), to_digest=Query(None), provider=Depends(dependency=<function get_store_provider>, use_cache=True, scope=None))¶
Diff two stored snapshots of the record’s identity.
Only digests related to the record are accepted (404
unknown_revisionotherwise); seeapp.services.diff.- Parameters:
- Return type:
- Returns:
The diff, or
base: nullwithreason: "no_prior_revision".