Add guide-board pilot ingestion

This commit is contained in:
2026-05-17 00:09:11 +02:00
parent 1f379ba321
commit 91bb08c8e5
22 changed files with 1074 additions and 12 deletions

View File

@@ -52,6 +52,12 @@ class PackageCreate(BaseModel):
subject: str = Field(min_length=1)
retention_class: str = Field(min_length=1)
metadata: dict[str, Any] = Field(default_factory=dict)
metadata_schema_slug: str | None = None
class MetadataSchemaCreate(BaseModel):
slug: str = Field(min_length=1)
json_schema: dict[str, Any]
class UploadCreate(BaseModel):
@@ -224,6 +230,24 @@ def create_app(settings: Settings | None = None) -> FastAPI:
classes = await registry.list_retention_classes()
return {"retention_classes": [_retention_class_dict(c) for c in classes]}
@application.post("/metadata-schemas", status_code=status.HTTP_201_CREATED)
async def register_metadata_schema(
body: MetadataSchemaCreate,
_actor: str = Depends(require_write_auth),
registry: Registry = Depends(get_registry),
) -> dict[str, Any]:
schema_id = await registry.register_metadata_schema(
slug=body.slug,
json_schema=body.json_schema,
)
schema = await registry.get_metadata_schema(body.slug)
return {
"id": str(schema_id),
"slug": schema.slug,
"json_schema": schema.json_schema,
"created_at": _iso(schema.created_at),
}
@application.post("/packages", status_code=status.HTTP_201_CREATED)
async def create_package(
body: PackageCreate,
@@ -238,6 +262,7 @@ def create_app(settings: Settings | None = None) -> FastAPI:
retention_class=body.retention_class,
actor=actor,
metadata=body.metadata,
metadata_schema_slug=body.metadata_schema_slug,
)
return _package_dict(await registry.get_package(package_id))
except ValueError as exc: