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",
"operations": {
"create": {
"fields": ["user_id", "service_id", "local_session_id", "session_name", "status"],
"required": ["user_id", "service_id", "local_session_id"]
"fields": ["service_id", "user_id", "session_data", "status"],
"required": ["service_id", "user_id"]
},
"read": {
"filters": ["user_id", "service_id", "status", "id"]
"filters": ["service_id", "user_id", "status", "id"]
},
"update": {
"fields": ["session_name", "status"]
"fields": ["session_data", "status"]
},
"delete": {
"soft_delete": true,
"field": "status",
"field": "status",
"deleted_value": "closed"
}
}

View File

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

View File

@ -1,12 +1,96 @@
{
"tablename": "hermes_service_sessions",
"fields": [
{
"name": "id",
"type": "uuid",
"primary_key": true,
"nullable": false
},
{
"name": "user_id",
"...[truncated]
"summary": [
{
"name": "hermes_service_sessions",
"title": "Hermes Service Sessions",
"primary": "id",
"catelog": "relation"
}
],
"fields": [
{
"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",
"fields": [
{
"name": "id",
"type": "uuid",
"primary_key": true,
"nullable": false
},
{
"name": "user_id",
"type": "...[truncated]
"summary": [
{
"name": "hermes_services",
"title": "Hermes Services",
"primary": "id",
"catelog": "entity"
}
],
"fields": [
{
"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": []
}