feat(api): admin set flexible fields + field-definition listing

- GET /api/admin/field-definitions (ViewInternal) — lists all registered
  field definitions with key, data_type, vocabulary_id, authority_kind,
  required, group, and localized labels
- PUT /api/admin/objects/{id}/fields (EditCatalogue) — replaces an
  object's flexible-field values with replace semantics; validates every
  key against the registry (UnknownField → 422, TypeMismatch → 422,
  Unresolved → 422, ObjectNotFound → 404, Db → 500)
- FieldDefinitionView DTO added; both handlers registered in OpenAPI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 22:09:43 +02:00
parent 34e5754815
commit b6a30c3995
3 changed files with 217 additions and 4 deletions
+5 -2
View File
@@ -19,7 +19,9 @@ use crate::{AppState, admin, admin_objects, health, public};
admin_objects::get_object,
admin_objects::create_object,
admin_objects::update_object,
admin_objects::delete_object
admin_objects::delete_object,
admin_objects::list_field_definitions,
admin_objects::set_fields
),
components(schemas(
health::Live,
@@ -34,7 +36,8 @@ use crate::{AppState, admin, admin_objects, health, public};
admin_objects::LabelView,
admin_objects::ObjectCreateRequest,
admin_objects::ObjectUpdateRequest,
admin_objects::CreatedObject
admin_objects::CreatedObject,
admin_objects::FieldDefinitionView
)),
info(title = "Collection Management System", version = "0.0.0")
)]