generated from coulomb/repo-seed
Add guide-board pilot ingestion
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user