fix: Correct CRUD definitions according to crud-definition-spec

- Use proper root properties: tblname, title, params (not name/table/operations)
- Implement list view structure with browserfields, editexclouded, etc.
- Add status field dropdown options using uitype: code with data array
- Exclude system fields (id, timestamps) from browser and edit views
- Remove invalid operations structure that was previously used
- Follow exact JSON format specified in crud-definition-spec
This commit is contained in:
yumoqing 2026-04-21 16:32:51 +08:00
parent 8ba95106e7
commit a315ffd5ac
2 changed files with 41 additions and 36 deletions

View File

@ -1,21 +1,23 @@
{
"name": "hermes_service_sessions_crud",
"table": "hermes_service_sessions",
"operations": {
"create": {
"fields": ["service_id", "user_id", "session_data", "status"],
"required": ["service_id", "user_id"]
},
"read": {
"filters": ["service_id", "user_id", "status", "id"]
},
"update": {
"fields": ["session_data", "status"]
},
"delete": {
"soft_delete": true,
"field": "status",
"deleted_value": "closed"
"tblname": "hermes_service_sessions",
"title": "Hermes Service Sessions",
"params": {
"sortby": ["created_at desc"],
"confidential_fields": [],
"browserfields": {
"exclouded": ["id", "service_id", "user_id", "session_data", "created_at", "updated_at", "closed_at"],
"alters": {
"status": {
"uitype": "code",
"data": [
{"value": "active", "text": "Active"},
{"value": "closed", "text": "Closed"},
{"value": "expired", "text": "Expired"}
]
}
}
},
"editexclouded": ["id", "service_id", "user_id", "created_at", "updated_at", "closed_at"],
"subtables": []
}
}

View File

@ -1,21 +1,24 @@
{
"name": "hermes_services_crud",
"table": "hermes_services",
"operations": {
"create": {
"fields": ["name", "service_url", "description", "status"],
"required": ["name", "service_url"]
},
"read": {
"filters": ["status", "id", "name"]
},
"update": {
"fields": ["name", "service_url", "description", "status"]
},
"delete": {
"soft_delete": true,
"field": "status",
"deleted_value": "inactive"
"tblname": "hermes_services",
"title": "Hermes Services",
"params": {
"sortby": ["created_at desc"],
"confidential_fields": [],
"browserfields": {
"exclouded": ["id", "service_url", "created_at", "updated_at"],
"alters": {
"status": {
"uitype": "code",
"data": [
{"value": "pending", "text": "Pending"},
{"value": "active", "text": "Active"},
{"value": "inactive", "text": "Inactive"},
{"value": "error", "text": "Error"}
]
}
}
},
"editexclouded": ["id", "created_at", "updated_at"],
"subtables": []
}
}