fix: Correct database table definitions according to specification

- Fix hermes_services.json with proper four-section format (summary/fields/indexes/codes)
- Fix hermes_service_sessions.json with proper four-section format
- Update CRUD definitions to match actual table fields
- Remove non-existent fields (user_id, api_key) from service table
- Add proper indexes and field constraints
- Follow database-table-definition-spec exactly
This commit is contained in:
yumoqing 2026-04-21 16:22:22 +08:00
parent d229138adc
commit 8ba95106e7
4 changed files with 182 additions and 31 deletions

View File

@ -3,18 +3,18 @@
"table": "hermes_service_sessions", "table": "hermes_service_sessions",
"operations": { "operations": {
"create": { "create": {
"fields": ["user_id", "service_id", "local_session_id", "session_name", "status"], "fields": ["service_id", "user_id", "session_data", "status"],
"required": ["user_id", "service_id", "local_session_id"] "required": ["service_id", "user_id"]
}, },
"read": { "read": {
"filters": ["user_id", "service_id", "status", "id"] "filters": ["service_id", "user_id", "status", "id"]
}, },
"update": { "update": {
"fields": ["session_name", "status"] "fields": ["session_data", "status"]
}, },
"delete": { "delete": {
"soft_delete": true, "soft_delete": true,
"field": "status", "field": "status",
"deleted_value": "closed" "deleted_value": "closed"
} }
} }

View File

@ -3,14 +3,14 @@
"table": "hermes_services", "table": "hermes_services",
"operations": { "operations": {
"create": { "create": {
"fields": ["user_id", "name", "service_url", "api_key", "description", "status"], "fields": ["name", "service_url", "description", "status"],
"required": ["user_id", "name", "service_url"] "required": ["name", "service_url"]
}, },
"read": { "read": {
"filters": ["user_id", "status", "id"] "filters": ["status", "id", "name"]
}, },
"update": { "update": {
"fields": ["name", "service_url", "api_key", "description", "status"] "fields": ["name", "service_url", "description", "status"]
}, },
"delete": { "delete": {
"soft_delete": true, "soft_delete": true,

View File

@ -1,12 +1,96 @@
{ {
"tablename": "hermes_service_sessions", "summary": [
"fields": [ {
{ "name": "hermes_service_sessions",
"name": "id", "title": "Hermes Service Sessions",
"type": "uuid", "primary": "id",
"primary_key": true, "catelog": "relation"
"nullable": false }
}, ],
{ "fields": [
"name": "user_id", {
"...[truncated] "name": "id",
"title": "Session ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Primary key - UUID format"
},
{
"name": "service_id",
"title": "Service ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Foreign key to hermes_services.id"
},
{
"name": "user_id",
"title": "User ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "User who created the session"
},
{
"name": "session_data",
"title": "Session Data",
"type": "text",
"nullable": "yes",
"comments": "Serialized session state or metadata"
},
{
"name": "status",
"title": "Status",
"type": "str",
"length": 32,
"nullable": "no",
"default": "active",
"comments": "Session status: active, closed, expired"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Session creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "yes",
"comments": "Session last activity timestamp"
},
{
"name": "closed_at",
"title": "Closed At",
"type": "timestamp",
"nullable": "yes",
"comments": "Session closure timestamp"
}
],
"indexes": [
{
"name": "idx_hermes_sessions_service_id",
"idxtype": "index",
"idxfields": ["service_id"]
},
{
"name": "idx_hermes_sessions_user_id",
"idxtype": "index",
"idxfields": ["user_id"]
},
{
"name": "idx_hermes_sessions_status",
"idxtype": "index",
"idxfields": ["status"]
},
{
"name": "idx_hermes_sessions_created_at",
"idxtype": "index",
"idxfields": ["created_at"]
}
],
"codes": []
}

View File

@ -1,12 +1,79 @@
{ {
"tablename": "hermes_services", "summary": [
"fields": [ {
{ "name": "hermes_services",
"name": "id", "title": "Hermes Services",
"type": "uuid", "primary": "id",
"primary_key": true, "catelog": "entity"
"nullable": false }
}, ],
{ "fields": [
"name": "user_id", {
"type": "...[truncated] "name": "id",
"title": "Service ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Primary key - UUID format"
},
{
"name": "name",
"title": "Service Name",
"type": "str",
"length": 255,
"nullable": "no",
"comments": "Hermes service display name"
},
{
"name": "service_url",
"title": "Service URL",
"type": "str",
"length": 512,
"nullable": "no",
"comments": "Base URL of the Hermes service endpoint"
},
{
"name": "description",
"title": "Description",
"type": "text",
"nullable": "yes",
"comments": "Service description"
},
{
"name": "status",
"title": "Status",
"type": "str",
"length": 32,
"nullable": "no",
"default": "pending",
"comments": "Service status: pending, active, inactive, error"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Record creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "yes",
"comments": "Record last update timestamp"
}
],
"indexes": [
{
"name": "idx_hermes_services_name",
"idxtype": "index",
"idxfields": ["name"]
},
{
"name": "idx_hermes_services_status",
"idxtype": "index",
"idxfields": ["status"]
}
],
"codes": []
}