This commit is contained in:
yumoqing 2026-04-17 11:00:42 +08:00
parent d70824198b
commit a28cd7dedf
8 changed files with 417 additions and 575 deletions

View File

@ -1,166 +0,0 @@
{
"hermes_memory": {
"summary": "Enhanced memory storage with intelligent filtering and user isolation",
"fields": {
"id": {"type": "string", "primary_key": true, "description": "Unique memory identifier"},
"user_id": {"type": "string", "required": true, "description": "User ID for multi-user isolation"},
"target": {"type": "string", "required": true, "description": "Memory target: 'memory' or 'user'"},
"content": {"type": "text", "required": true, "description": "Memory content"},
"priority": {"type": "integer", "default": 50, "description": "Priority score (0-100) for intelligent filtering"},
"access_count": {"type": "integer", "default": 0, "description": "Number of times this memory has been accessed"},
"last_accessed": {"type": "datetime", "nullable": true, "description": "Last access timestamp for relevance ranking"},
"created_at": {"type": "datetime", "required": true, "description": "Creation timestamp"},
"updated_at": {"type": "datetime", "required": true, "description": "Last update timestamp"}
},
"indexes": [
["user_id", "target"],
["user_id", "priority", "last_accessed"],
["user_id", "created_at"]
],
"codes": {}
},
"hermes_skills": {
"summary": "User-isolated skills storage with full CRUD operations",
"fields": {
"id": {"type": "string", "primary_key": true, "description": "Unique skill identifier"},
"user_id": {"type": "string", "required": true, "description": "User ID for multi-user isolation"},
"name": {"type": "string", "required": true, "description": "Skill name"},
"description": {"type": "text", "nullable": true, "description": "Skill description"},
"category": {"type": "string", "nullable": true, "description": "Skill category"},
"version": {"type": "string", "default": "1.0.0", "description": "Skill version"},
"content": {"type": "text", "required": true, "description": "Skill content (SKILL.md format)"},
"created_at": {"type": "datetime", "required": true, "description": "Creation timestamp"},
"updated_at": {"type": "datetime", "required": true, "description": "Last update timestamp"}
},
"indexes": [
["user_id", "name"],
["user_id", "category"],
["user_id", "created_at"]
],
"codes": {}
},
"hermes_sessions": {
"summary": "Session metadata with user isolation for conversation history",
"fields": {
"id": {"type": "string", "primary_key": true, "description": "Unique session identifier"},
"user_id": {"type": "string", "required": true, "description": "User ID for multi-user isolation"},
"title": {"type": "string", "nullable": true, "description": "Session title"},
"preview": {"type": "text", "nullable": true, "description": "Session preview text"},
"tags": {"type": "string", "nullable": true, "description": "Comma-separated session tags"},
"started_at": {"type": "datetime", "required": true, "description": "Session start timestamp"},
"ended_at": {"type": "datetime", "nullable": true, "description": "Session end timestamp"},
"duration_seconds": {"type": "integer", "nullable": true, "description": "Session duration in seconds"}
},
"indexes": [
["user_id", "started_at"],
["user_id", "title"],
["user_id", "tags"]
],
"codes": {}
},
"hermes_remote_skills": {
"summary": "SSH remote skills configuration with deployment tracking",
"fields": {
"id": {"type": "string", "primary_key": true, "description": "Unique remote skill identifier"},
"user_id": {"type": "string", "required": true, "description": "User ID for multi-user isolation"},
"name": {"type": "string", "required": true, "description": "Remote skill name"},
"host": {"type": "string", "required": true, "description": "SSH host address"},
"port": {"type": "integer", "default": 22, "description": "SSH port"},
"username": {"type": "string", "required": true, "description": "SSH username"},
"remote_path": {"type": "string", "default": "~/.skills", "description": "Remote skills directory path"},
"auth_method": {"type": "string", "default": "key", "description": "Authentication method: 'key' or 'password'"},
"ssh_key_path": {"type": "string", "nullable": true, "description": "Path to SSH private key file"},
"description": {"type": "text", "nullable": true, "description": "Remote skill description"},
"category": {"type": "string", "nullable": true, "description": "Remote skill category"},
"version": {"type": "string", "default": "1.0.0", "description": "Remote skill version"},
"enabled": {"type": "boolean", "default": true, "description": "Whether the remote skill is enabled"},
"last_deployed": {"type": "datetime", "nullable": true, "description": "Last deployment timestamp"},
"last_executed": {"type": "datetime", "nullable": true, "description": "Last execution timestamp"},
"created_at": {"type": "datetime", "required": true, "description": "Creation timestamp"},
"updated_at": {"type": "datetime", "required": true, "description": "Last update timestamp"}
},
"indexes": [
["user_id", "name"],
["user_id", "host", "username"],
["user_id", "enabled"],
["user_id", "created_at"]
],
"codes": {}
},
"hermes_workflows": {
"summary": "Workflow definitions with orchestration parameters",
"fields": {
"id": {"type": "string", "primary_key": true, "description": "Unique workflow identifier"},
"user_id": {"type": "string", "required": true, "description": "User ID for multi-user isolation"},
"name": {"type": "string", "required": true, "description": "Workflow name"},
"description": {"type": "text", "nullable": true, "description": "Workflow description"},
"workflow_type": {"type": "string", "default": "sequential", "description": "Workflow type: sequential, parallel, or hybrid"},
"max_concurrent_tasks": {"type": "integer", "default": 3, "description": "Maximum concurrent tasks for parallel workflows"},
"timeout_seconds": {"type": "integer", "default": 1800, "description": "Workflow timeout in seconds"},
"retry_count": {"type": "integer", "default": 2, "description": "Default retry count for tasks"},
"status": {"type": "string", "default": "active", "description": "Workflow status: active, inactive, archived"},
"created_at": {"type": "datetime", "required": true, "description": "Creation timestamp"},
"updated_at": {"type": "datetime", "required": true, "description": "Last update timestamp"}
},
"indexes": [
["user_id", "name"],
["user_id", "workflow_type"],
["user_id", "status"],
["user_id", "created_at"]
],
"codes": {}
},
"hermes_tasks": {
"summary": "Task definitions with dependencies and execution parameters",
"fields": {
"id": {"type": "string", "primary_key": true, "description": "Unique task identifier"},
"user_id": {"type": "string", "required": true, "description": "User ID for multi-user isolation"},
"workflow_id": {"type": "string", "required": true, "description": "Associated workflow ID"},
"task_name": {"type": "string", "required": true, "description": "Task name"},
"task_type": {"type": "string", "required": true, "description": "Task type: skill, tool, memory, session_search, custom"},
"skill_name": {"type": "string", "nullable": true, "description": "Skill name (for skill tasks)"},
"tool_name": {"type": "string", "nullable": true, "description": "Tool name (for tool tasks)"},
"parameters_json": {"type": "text", "nullable": true, "description": "JSON-encoded task parameters"},
"depends_on": {"type": "string", "nullable": true, "description": "ID of task this depends on"},
"parallel_group": {"type": "string", "nullable": true, "description": "Parallel group identifier for hybrid workflows"},
"timeout_seconds": {"type": "integer", "default": 300, "description": "Task timeout in seconds"},
"retry_count": {"type": "integer", "default": 2, "description": "Task-specific retry count"},
"order_index": {"type": "integer", "default": 0, "description": "Execution order index"},
"created_at": {"type": "datetime", "required": true, "description": "Creation timestamp"},
"updated_at": {"type": "datetime", "required": true, "description": "Last update timestamp"}
},
"indexes": [
["user_id", "workflow_id"],
["user_id", "task_type"],
["user_id", "parallel_group"],
["user_id", "order_index"],
["depends_on"]
],
"codes": {}
},
"hermes_executions": {
"summary": "Execution records with status tracking and results",
"fields": {
"id": {"type": "string", "primary_key": true, "description": "Unique execution identifier"},
"user_id": {"type": "string", "required": true, "description": "User ID for multi-user isolation"},
"workflow_id": {"type": "string", "required": true, "description": "Associated workflow ID"},
"task_id": {"type": "string", "nullable": true, "description": "Associated task ID (null for workflow executions)"},
"execution_status": {"type": "string", "default": "pending", "description": "Execution status: pending, running, completed, failed, cancelled"},
"start_time": {"type": "datetime", "nullable": true, "description": "Execution start timestamp"},
"end_time": {"type": "datetime", "nullable": true, "description": "Execution end timestamp"},
"duration_seconds": {"type": "integer", "nullable": true, "description": "Execution duration in seconds"},
"result_json": {"type": "text", "nullable": true, "description": "JSON-encoded execution result"},
"error_message": {"type": "text", "nullable": true, "description": "Error message if execution failed"},
"retry_count": {"type": "integer", "default": 0, "description": "Number of retries attempted"},
"created_at": {"type": "datetime", "required": true, "description": "Creation timestamp"},
"updated_at": {"type": "datetime", "required": true, "description": "Last update timestamp"}
},
"indexes": [
["user_id", "workflow_id"],
["user_id", "execution_status"],
["user_id", "start_time"],
["user_id", "created_at"]
],
"codes": {}
}
}

View File

@ -1,138 +0,0 @@
{
"summary": [
{
"name": "hermes_executions",
"title": "Hermes Agent Executions",
"primary": "id",
"catelog": "entity"
}
],
"fields": [
{
"name": "id",
"title": "Execution ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Primary key - UUID format"
},
{
"name": "user_id",
"title": "User ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Owner user ID for multi-user isolation"
},
{
"name": "workflow_id",
"title": "Workflow ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Parent workflow ID"
},
{
"name": "task_id",
"title": "Task ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Executed task ID"
},
{
"name": "execution_status",
"title": "Execution Status",
"type": "str",
"length": 16,
"nullable": "no",
"default": "pending",
"comments": "Status: pending, running, completed, failed, cancelled"
},
{
"name": "start_time",
"title": "Start Time",
"type": "timestamp",
"nullable": "yes",
"comments": "Execution start timestamp"
},
{
"name": "end_time",
"title": "End Time",
"type": "timestamp",
"nullable": "yes",
"comments": "Execution end timestamp"
},
{
"name": "duration_seconds",
"title": "Duration Seconds",
"type": "long",
"nullable": "yes",
"comments": "Total execution duration in seconds"
},
{
"name": "result_json",
"title": "Result JSON",
"type": "text",
"nullable": "yes",
"comments": "JSON result of task execution"
},
{
"name": "error_message",
"title": "Error Message",
"type": "text",
"nullable": "yes",
"comments": "Error message if execution failed"
},
{
"name": "retry_count",
"title": "Retry Count",
"type": "short",
"length": 2,
"nullable": "no",
"default": "0",
"comments": "Number of retries attempted"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "no",
"comments": "Last update timestamp"
}
],
"indexes": [
{
"name": "idx_executions_user_id",
"idxtype": "index",
"idxfields": ["user_id"]
},
{
"name": "idx_executions_workflow_id",
"idxtype": "index",
"idxfields": ["workflow_id"]
},
{
"name": "idx_executions_task_id",
"idxtype": "index",
"idxfields": ["task_id"]
},
{
"name": "idx_executions_status",
"idxtype": "index",
"idxfields": ["execution_status"]
},
{
"name": "idx_executions_created",
"idxtype": "index",
"idxfields": ["created_at"]
}
]
}

99
models/hermes_memory.json Normal file
View File

@ -0,0 +1,99 @@
{
"summary": [
{
"name": "hermes_memory",
"title": "Persistent memory storage with user isolation and intelligent filtering",
"primary": "id",
"catelog": "entity"
}
],
"fields": [
{
"name": "id",
"title": "Memory ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Unique memory entry identifier"
},
{
"name": "user_id",
"title": "User ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "User who owns this memory entry"
},
{
"name": "target",
"title": "Memory Target",
"type": "str",
"length": 20,
"nullable": "no",
"comments": "Target: memory or user"
},
{
"name": "content",
"title": "Memory Content",
"type": "text",
"nullable": "no",
"comments": "Actual memory content"
},
{
"name": "priority",
"title": "Priority",
"type": "short",
"length": 3,
"nullable": "no",
"default": "50",
"comments": "Memory priority (0-100) for intelligent filtering"
},
{
"name": "access_count",
"title": "Access Count",
"type": "long",
"nullable": "no",
"default": "0",
"comments": "Usage statistics for optimization"
},
{
"name": "last_accessed",
"title": "Last Accessed",
"type": "timestamp",
"nullable": "yes",
"comments": "Last access timestamp for relevance ranking"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "no",
"comments": "Last update timestamp"
}
],
"indexes": [
{
"name": "idx_hermes_memory_user",
"idxtype": "index",
"idxfields": ["user_id", "priority"]
},
{
"name": "idx_hermes_memory_target",
"idxtype": "index",
"idxfields": ["target"]
},
{
"name": "idx_hermes_memory_priority",
"idxtype": "index",
"idxfields": ["priority", "last_accessed"]
}
],
"codes": []
}

View File

@ -0,0 +1,123 @@
{
"summary": [
{
"name": "hermes_remote_skills",
"title": "Remote skills SSH configuration with user isolation",
"primary": "id",
"catelog": "entity"
}
],
"fields": [
{
"name": "id",
"title": "Remote Skill ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Unique remote skill identifier"
},
{
"name": "user_id",
"title": "User ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "User who owns this remote skill configuration"
},
{
"name": "host",
"title": "SSH Host",
"type": "str",
"length": 255,
"nullable": "no",
"comments": "SSH server hostname or IP address"
},
{
"name": "port",
"title": "SSH Port",
"type": "long",
"nullable": "no",
"default": "22",
"comments": "SSH server port"
},
{
"name": "username",
"title": "Username",
"type": "str",
"length": 100,
"nullable": "no",
"comments": "SSH username"
},
{
"name": "auth_method",
"title": "Authentication Method",
"type": "str",
"length": 20,
"nullable": "no",
"default": "key",
"comments": "Authentication method: key or password"
},
{
"name": "ssh_key_path",
"title": "SSH Key Path",
"type": "str",
"length": 255,
"nullable": "yes",
"comments": "Path to SSH private key file (for key auth)"
},
{
"name": "description",
"title": "Description",
"type": "text",
"nullable": "yes",
"comments": "Description of the remote host"
},
{
"name": "is_active",
"title": "Is Active",
"type": "short",
"nullable": "no",
"default": "1",
"comments": "Whether configuration is active (1=true, 0=false)"
},
{
"name": "last_connected",
"title": "Last Connected",
"type": "timestamp",
"nullable": "yes",
"comments": "Last successful connection timestamp"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "no",
"comments": "Last update timestamp"
}
],
"indexes": [
{
"name": "idx_hermes_remote_skills_user",
"idxtype": "index",
"idxfields": ["user_id", "host"]
},
{
"name": "idx_hermes_remote_skills_host",
"idxtype": "unique",
"idxfields": ["user_id", "host", "port", "username"]
},
{
"name": "idx_hermes_remote_skills_active",
"idxtype": "index",
"idxfields": ["is_active"]
}
],
"codes": []
}

View File

@ -0,0 +1,97 @@
{
"summary": [
{
"name": "hermes_sessions",
"title": "Session metadata with user isolation",
"primary": "id",
"catelog": "entity"
}
],
"fields": [
{
"name": "id",
"title": "Session ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Unique session identifier"
},
{
"name": "user_id",
"title": "User ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "User who owns this session"
},
{
"name": "session_title",
"title": "Session Title",
"type": "str",
"length": 200,
"nullable": "yes",
"comments": "Human-readable session title"
},
{
"name": "start_time",
"title": "Start Time",
"type": "timestamp",
"nullable": "no",
"comments": "Session start timestamp"
},
{
"name": "end_time",
"title": "End Time",
"type": "timestamp",
"nullable": "yes",
"comments": "Session end timestamp"
},
{
"name": "is_active",
"title": "Is Active",
"type": "short",
"nullable": "no",
"default": "1",
"comments": "Whether session is active (1=true, 0=false)"
},
{
"name": "metadata",
"title": "Metadata",
"type": "text",
"nullable": "yes",
"comments": "JSON metadata about the session"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "no",
"comments": "Last update timestamp"
}
],
"indexes": [
{
"name": "idx_hermes_sessions_user",
"idxtype": "index",
"idxfields": ["user_id", "start_time"]
},
{
"name": "idx_hermes_sessions_active",
"idxtype": "index",
"idxfields": ["user_id", "is_active"]
},
{
"name": "idx_hermes_sessions_time",
"idxtype": "index",
"idxfields": ["start_time", "end_time"]
}
],
"codes": []
}

98
models/hermes_skills.json Normal file
View File

@ -0,0 +1,98 @@
{
"summary": [
{
"name": "hermes_skills",
"title": "Skills repository with user isolation",
"primary": "id",
"catelog": "entity"
}
],
"fields": [
{
"name": "id",
"title": "Skill ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Unique skill identifier"
},
{
"name": "user_id",
"title": "User ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "User who owns this skill"
},
{
"name": "name",
"title": "Skill Name",
"type": "str",
"length": 100,
"nullable": "no",
"comments": "Skill name"
},
{
"name": "description",
"title": "Description",
"type": "text",
"nullable": "yes",
"comments": "Skill description"
},
{
"name": "content",
"title": "Skill Content",
"type": "text",
"nullable": "no",
"comments": "Full skill content (SKILL.md format)"
},
{
"name": "category",
"title": "Category",
"type": "str",
"length": 50,
"nullable": "yes",
"comments": "Skill category"
},
{
"name": "is_active",
"title": "Is Active",
"type": "short",
"nullable": "no",
"default": "1",
"comments": "Whether skill is active (1=true, 0=false)"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "no",
"comments": "Last update timestamp"
}
],
"indexes": [
{
"name": "idx_hermes_skills_user",
"idxtype": "index",
"idxfields": ["user_id", "name"]
},
{
"name": "idx_hermes_skills_name",
"idxtype": "unique",
"idxfields": ["user_id", "name"]
},
{
"name": "idx_hermes_skills_category",
"idxtype": "index",
"idxfields": ["category"]
}
],
"codes": []
}

View File

@ -1,153 +0,0 @@
{
"summary": [
{
"name": "hermes_tasks",
"title": "Hermes Agent Tasks",
"primary": "id",
"catelog": "entity"
}
],
"fields": [
{
"name": "id",
"title": "Task ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Primary key - UUID format"
},
{
"name": "user_id",
"title": "User ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Owner user ID for multi-user isolation"
},
{
"name": "workflow_id",
"title": "Workflow ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Parent workflow ID"
},
{
"name": "task_name",
"title": "Task Name",
"type": "str",
"length": 128,
"nullable": "no",
"comments": "Human-readable task name"
},
{
"name": "task_type",
"title": "Task Type",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Type: skill, tool, memory, session_search, custom"
},
{
"name": "skill_name",
"title": "Skill Name",
"type": "str",
"length": 64,
"nullable": "yes",
"comments": "Referenced skill name (for skill type tasks)"
},
{
"name": "tool_name",
"title": "Tool Name",
"type": "str",
"length": 64,
"nullable": "yes",
"comments": "Referenced tool name (for tool type tasks)"
},
{
"name": "parameters_json",
"title": "Parameters JSON",
"type": "text",
"nullable": "yes",
"comments": "JSON parameters for task execution"
},
{
"name": "depends_on",
"title": "Depends On",
"type": "str",
"length": 32,
"nullable": "yes",
"comments": "Task ID this task depends on (for sequential workflows)"
},
{
"name": "parallel_group",
"title": "Parallel Group",
"type": "str",
"length": 32,
"nullable": "yes",
"comments": "Group ID for parallel execution"
},
{
"name": "timeout_seconds",
"title": "Timeout Seconds",
"type": "long",
"nullable": "no",
"default": "300",
"comments": "Task timeout in seconds"
},
{
"name": "retry_count",
"title": "Retry Count",
"type": "short",
"length": 2,
"nullable": "no",
"default": "2",
"comments": "Number of retries for failed task"
},
{
"name": "order_index",
"title": "Order Index",
"type": "short",
"length": 4,
"nullable": "no",
"default": "0",
"comments": "Execution order index"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "no",
"comments": "Last update timestamp"
}
],
"indexes": [
{
"name": "idx_tasks_user_id",
"idxtype": "index",
"idxfields": ["user_id"]
},
{
"name": "idx_tasks_workflow_id",
"idxtype": "index",
"idxfields": ["workflow_id"]
},
{
"name": "idx_tasks_task_type",
"idxtype": "index",
"idxfields": ["task_type"]
},
{
"name": "idx_tasks_order",
"idxtype": "index",
"idxfields": ["workflow_id", "order_index"]
}
]
}

View File

@ -1,118 +0,0 @@
{
"summary": [
{
"name": "hermes_workflows",
"title": "Hermes Agent Workflows",
"primary": "id",
"catelog": "entity"
}
],
"fields": [
{
"name": "id",
"title": "Workflow ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Primary key - UUID format"
},
{
"name": "user_id",
"title": "User ID",
"type": "str",
"length": 32,
"nullable": "no",
"comments": "Owner user ID for multi-user isolation"
},
{
"name": "name",
"title": "Workflow Name",
"type": "str",
"length": 128,
"nullable": "no",
"comments": "Human-readable workflow name"
},
{
"name": "description",
"title": "Description",
"type": "text",
"nullable": "yes",
"comments": "Workflow description"
},
{
"name": "workflow_type",
"title": "Workflow Type",
"type": "str",
"length": 32,
"nullable": "no",
"default": "sequential",
"comments": "Type: sequential, parallel, or hybrid"
},
{
"name": "max_concurrent_tasks",
"title": "Max Concurrent Tasks",
"type": "short",
"length": 3,
"nullable": "no",
"default": "3",
"comments": "Maximum number of concurrent tasks (1-10)"
},
{
"name": "timeout_seconds",
"title": "Timeout Seconds",
"type": "long",
"nullable": "no",
"default": "1800",
"comments": "Total workflow timeout in seconds"
},
{
"name": "retry_count",
"title": "Retry Count",
"type": "short",
"length": 2,
"nullable": "no",
"default": "2",
"comments": "Number of retries for failed tasks"
},
{
"name": "status",
"title": "Status",
"type": "str",
"length": 16,
"nullable": "no",
"default": "active",
"comments": "Workflow status: active, inactive, archived"
},
{
"name": "created_at",
"title": "Created At",
"type": "timestamp",
"nullable": "no",
"comments": "Creation timestamp"
},
{
"name": "updated_at",
"title": "Updated At",
"type": "timestamp",
"nullable": "no",
"comments": "Last update timestamp"
}
],
"indexes": [
{
"name": "idx_workflows_user_id",
"idxtype": "index",
"idxfields": ["user_id"]
},
{
"name": "idx_workflows_status",
"idxtype": "index",
"idxfields": ["status"]
},
{
"name": "idx_workflows_name",
"idxtype": "index",
"idxfields": ["name"]
}
]
}