feat: add missing schema API methods (list_schemas, get_schema_form, enum value CRUD) #4

Open
opened 2026-02-16 15:54:36 +00:00 by forbes · 0 comments
Owner

Summary

The server provides 6 schema endpoints but the client only implements 2 (get_schema and get_property_schema).

Missing Methods

Server Endpoint Proposed Method
GET /api/schemas list_schemas()
GET /api/schemas/{name}/form get_schema_form(name)
POST /api/schemas/{name}/segments/{segment}/values add_schema_enum_value(schema, segment, code, description)
PUT /api/schemas/{name}/segments/{segment}/values/{code} update_schema_enum_value(schema, segment, code, description)
DELETE /api/schemas/{name}/segments/{segment}/values/{code} delete_schema_enum_value(schema, segment, code)

Context

This is critical for resolving #3 (removing hardcoded CATEGORY_NAMES). Consumers need list_schemas() and get_schema() to dynamically fetch category codes instead of relying on a hardcoded dict.

The form endpoint (get_schema_form) returns field groups, widgets, and a category picker descriptor -- needed by silo-mod and silo-calc to render dynamic create-item forms.

References

  • SPECIFICATION.md Section 11.1 (Schema endpoints)
  • SPECIFICATION.md Section 4 (YAML Configuration System)
## Summary The server provides 6 schema endpoints but the client only implements 2 (`get_schema` and `get_property_schema`). ## Missing Methods | Server Endpoint | Proposed Method | |---|---| | `GET /api/schemas` | `list_schemas()` | | `GET /api/schemas/{name}/form` | `get_schema_form(name)` | | `POST /api/schemas/{name}/segments/{segment}/values` | `add_schema_enum_value(schema, segment, code, description)` | | `PUT /api/schemas/{name}/segments/{segment}/values/{code}` | `update_schema_enum_value(schema, segment, code, description)` | | `DELETE /api/schemas/{name}/segments/{segment}/values/{code}` | `delete_schema_enum_value(schema, segment, code)` | ## Context This is critical for resolving #3 (removing hardcoded CATEGORY_NAMES). Consumers need `list_schemas()` and `get_schema()` to dynamically fetch category codes instead of relying on a hardcoded dict. The form endpoint (`get_schema_form`) returns field groups, widgets, and a category picker descriptor -- needed by silo-mod and silo-calc to render dynamic create-item forms. ## References - SPECIFICATION.md Section 11.1 (Schema endpoints) - SPECIFICATION.md Section 4 (YAML Configuration System)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/silo-client#4