Update dependencies in go.mod and go.sum to latest versions for improved stability and performance

This commit is contained in:
Max 2025-07-13 09:15:54 +08:00
parent d6b44730e6
commit a13fe36aa6
17 changed files with 1377 additions and 0 deletions

1
audit/README.md Normal file
View file

@ -0,0 +1 @@
# Audit Log

1
kb/README.md Normal file
View file

@ -0,0 +1 @@
# Knowledge Base

1
mcp/README.md Normal file
View file

@ -0,0 +1 @@
# MCP Client

9
openapi/README.md Normal file
View file

@ -0,0 +1,9 @@
# Yao OpenAPI
## OAuth
## Agent
## Knowledge Base
## Audit Log

1
openapi/agent/agent.go Normal file
View file

@ -0,0 +1 @@
package agent

3
openapi/audit/audit.go Normal file
View file

@ -0,0 +1,3 @@
package audit
// Audit Log

1
openapi/job/job.go Normal file
View file

@ -0,0 +1 @@
package job

1
openapi/kb/kb.go Normal file
View file

@ -0,0 +1 @@
package kb

1
openapi/oauth/oauth.go Normal file
View file

@ -0,0 +1 @@
package oauth

View file

@ -0,0 +1,224 @@
{
"name": "assistant",
"label": "Assistant",
"description": "Assistant table for storing AI assistant configurations and metadata",
"table": {
"name": "assistant",
"comment": "Assistant table"
},
"columns": [
{
"name": "id",
"type": "ID",
"label": "Assistant ID",
"comment": "Unique assistant identifier"
},
{
"name": "assistant_id",
"type": "string",
"label": "Assistant ID",
"comment": "Assistant identifier",
"length": 200,
"nullable": false,
"unique": true,
"index": true
},
{
"name": "type",
"type": "string",
"label": "Type",
"comment": "Assistant type",
"length": 200,
"default": "assistant",
"index": true
},
{
"name": "name",
"type": "string",
"label": "Name",
"comment": "Assistant name",
"length": 200,
"nullable": true
},
{
"name": "avatar",
"type": "string",
"label": "Avatar",
"comment": "Assistant avatar URL",
"length": 200,
"nullable": true
},
{
"name": "connector",
"type": "string",
"label": "Connector",
"comment": "Assistant connector",
"length": 200,
"nullable": false
},
{
"name": "description",
"type": "string",
"label": "Description",
"comment": "Assistant description",
"length": 600,
"nullable": true,
"index": true
},
{
"name": "path",
"type": "string",
"label": "Path",
"comment": "Assistant storage path",
"length": 200,
"nullable": true
},
{
"name": "sort",
"type": "integer",
"label": "Sort",
"comment": "Assistant sort order",
"default": 9999,
"index": true
},
{
"name": "built_in",
"type": "boolean",
"label": "Built In",
"comment": "Whether this is a built-in assistant",
"default": false,
"index": true
},
{
"name": "placeholder",
"type": "json",
"label": "Placeholder",
"comment": "Assistant placeholder",
"nullable": true
},
{
"name": "options",
"type": "json",
"label": "Options",
"comment": "Assistant options",
"nullable": true
},
{
"name": "prompts",
"type": "json",
"label": "Prompts",
"comment": "Assistant prompts",
"nullable": true
},
{
"name": "workflow",
"type": "json",
"label": "Workflow",
"comment": "Assistant workflow",
"nullable": true
},
{
"name": "knowledge",
"type": "json",
"label": "Knowledge",
"comment": "Assistant knowledge",
"nullable": true
},
{
"name": "tools",
"type": "json",
"label": "Tools",
"comment": "Assistant tools",
"nullable": true
},
{
"name": "tags",
"type": "json",
"label": "Tags",
"comment": "Assistant tags",
"nullable": true
},
{
"name": "readonly",
"type": "boolean",
"label": "Readonly",
"comment": "Assistant readonly status",
"default": false,
"index": true
},
{
"name": "permissions",
"type": "json",
"label": "Permissions",
"comment": "Assistant permissions",
"nullable": true
},
{
"name": "locales",
"type": "json",
"label": "Locales",
"comment": "Assistant i18n locales",
"nullable": true
},
{
"name": "automated",
"type": "boolean",
"label": "Automated",
"comment": "Assistant automated status",
"default": true,
"index": true
},
{
"name": "mentionable",
"type": "boolean",
"label": "Mentionable",
"comment": "Whether this assistant can appear in @ mention list",
"default": true,
"index": true
}
],
"relations": {},
"indexes": [
{
"name": "idx_assistant_id",
"columns": ["assistant_id"],
"type": "unique"
},
{
"name": "idx_type",
"columns": ["type"],
"type": "index"
},
{
"name": "idx_description",
"columns": ["description"],
"type": "index"
},
{
"name": "idx_sort",
"columns": ["sort"],
"type": "index"
},
{
"name": "idx_built_in",
"columns": ["built_in"],
"type": "index"
},
{
"name": "idx_readonly",
"columns": ["readonly"],
"type": "index"
},
{
"name": "idx_automated",
"columns": ["automated"],
"type": "index"
},
{
"name": "idx_mentionable",
"columns": ["mentionable"],
"type": "index"
}
],
"option": { "timestamps": true, "soft_deletes": false }
}

View file

@ -0,0 +1,202 @@
{
"name": "attachment",
"label": "Attachment",
"description": "Attachment table for storing file attachments with metadata and access control",
"table": {
"name": "attachment",
"comment": "Attachment table"
},
"columns": [
{
"name": "id",
"type": "ID",
"label": "Attachment ID",
"comment": "Unique attachment identifier"
},
{
"name": "file_id",
"type": "string",
"label": "File ID",
"comment": "File identifier",
"length": 255,
"nullable": false,
"unique": true,
"index": true
},
{
"name": "uid",
"type": "string",
"label": "User ID",
"comment": "User identifier",
"length": 255,
"nullable": false,
"index": true
},
{
"name": "guest",
"type": "boolean",
"label": "Guest",
"comment": "Whether uploaded by guest user",
"default": false,
"index": true
},
{
"name": "manager",
"type": "string",
"label": "Manager",
"comment": "File manager type",
"length": 200,
"nullable": false,
"index": true
},
{
"name": "content_type",
"type": "string",
"label": "Content Type",
"comment": "File content type",
"length": 200,
"nullable": false,
"index": true
},
{
"name": "name",
"type": "string",
"label": "Name",
"comment": "File name",
"length": 500,
"nullable": false,
"index": true
},
{
"name": "public",
"type": "boolean",
"label": "Public",
"comment": "Whether file is public",
"default": false,
"index": true
},
{
"name": "scope",
"type": "json",
"label": "Scope",
"comment": "File access scope",
"nullable": true
},
{
"name": "gzip",
"type": "boolean",
"label": "Gzip",
"comment": "Whether file is gzipped",
"default": false,
"index": true
},
{
"name": "bytes",
"type": "bigInteger",
"label": "Bytes",
"comment": "File size in bytes",
"nullable": false,
"index": true
},
{
"name": "collection_id",
"type": "string",
"label": "Collection ID",
"comment": "Knowledge collection identifier",
"length": 200,
"nullable": true,
"index": true
},
{
"name": "status",
"type": "enum",
"label": "Status",
"comment": "File processing status",
"option": [
"uploading",
"uploaded",
"indexing",
"indexed",
"upload_failed",
"index_failed"
],
"default": "uploading",
"index": true
},
{
"name": "progress",
"type": "string",
"label": "Progress",
"comment": "Processing progress information",
"length": 200,
"nullable": true
},
{
"name": "error",
"type": "string",
"label": "Error",
"comment": "Error information",
"length": 600,
"nullable": true
}
],
"relations": {},
"indexes": [
{
"name": "idx_file_id",
"columns": ["file_id"],
"type": "unique"
},
{
"name": "idx_uid",
"columns": ["uid"],
"type": "index"
},
{
"name": "idx_guest",
"columns": ["guest"],
"type": "index"
},
{
"name": "idx_manager",
"columns": ["manager"],
"type": "index"
},
{
"name": "idx_content_type",
"columns": ["content_type"],
"type": "index"
},
{
"name": "idx_name",
"columns": ["name"],
"type": "index"
},
{
"name": "idx_public",
"columns": ["public"],
"type": "index"
},
{
"name": "idx_gzip",
"columns": ["gzip"],
"type": "index"
},
{
"name": "idx_bytes",
"columns": ["bytes"],
"type": "index"
},
{
"name": "idx_collection_id",
"columns": ["collection_id"],
"type": "index"
},
{
"name": "idx_status",
"columns": ["status"],
"type": "index"
}
],
"option": { "timestamps": true, "soft_deletes": false }
}

307
yao/models/audit.mod.yao Normal file
View file

@ -0,0 +1,307 @@
{
"name": "audit",
"label": "Audit Log",
"description": "Audit log table for storing system operation audit records",
"table": {
"name": "audit_log",
"comment": "Audit log table"
},
"columns": [
{
"name": "id",
"type": "ID",
"label": "Audit ID",
"comment": "Unique audit record identifier"
},
{
"name": "event_id",
"type": "string",
"label": "Event ID",
"comment": "Unique event identifier for correlation",
"length": 100,
"nullable": true,
"index": true
},
{
"name": "operation",
"type": "string",
"label": "Operation",
"comment": "Operation name (login, delete, modify, etc.)",
"length": 100,
"nullable": false,
"index": true
},
{
"name": "category",
"type": "string",
"label": "Category",
"comment": "Audit category (authentication, authorization, data, system)",
"length": 50,
"nullable": true,
"index": true
},
{
"name": "severity",
"type": "enum",
"label": "Severity",
"comment": "Event severity level",
"option": ["low", "medium", "high", "critical"],
"default": "medium",
"index": true
},
{
"name": "user_id",
"type": "string",
"label": "User ID",
"comment": "User or service account identifier",
"length": 255,
"nullable": false,
"index": true
},
{
"name": "user_name",
"type": "string",
"label": "User Name",
"comment": "User display name",
"length": 200,
"nullable": true
},
{
"name": "session_id",
"type": "string",
"label": "Session ID",
"comment": "Session identifier",
"length": 255,
"nullable": true,
"index": true
},
{
"name": "client_ip",
"type": "string",
"label": "Client IP",
"comment": "Client IP address",
"length": 45,
"nullable": true,
"index": true
},
{
"name": "user_agent",
"type": "string",
"label": "User Agent",
"comment": "Client user agent information",
"length": 500,
"nullable": true
},
{
"name": "target_resource",
"type": "string",
"label": "Target Resource",
"comment": "Target resource being operated on",
"length": 500,
"nullable": true,
"index": true
},
{
"name": "resource_type",
"type": "string",
"label": "Resource Type",
"comment": "Type of resource (file, table, config, etc.)",
"length": 100,
"nullable": true,
"index": true
},
{
"name": "source",
"type": "string",
"label": "Source",
"comment": "Operation source (UI, API, CLI, system)",
"length": 100,
"nullable": true,
"index": true
},
{
"name": "application",
"type": "string",
"label": "Application",
"comment": "Application or service name",
"length": 100,
"nullable": true,
"index": true
},
{
"name": "hostname",
"type": "string",
"label": "Hostname",
"comment": "Hostname of the operation source",
"length": 255,
"nullable": true
},
{
"name": "success",
"type": "boolean",
"label": "Success",
"comment": "Whether the operation was successful",
"nullable": false,
"index": true
},
{
"name": "exit_code",
"type": "integer",
"label": "Exit Code",
"comment": "System call return code",
"nullable": true
},
{
"name": "response_time",
"type": "integer",
"label": "Response Time",
"comment": "Operation response time in milliseconds",
"nullable": true
},
{
"name": "request_id",
"type": "string",
"label": "Request ID",
"comment": "HTTP request identifier",
"length": 100,
"nullable": true,
"index": true
},
{
"name": "trace_id",
"type": "string",
"label": "Trace ID",
"comment": "Distributed tracing identifier",
"length": 100,
"nullable": true,
"index": true
},
{
"name": "data_before",
"type": "json",
"label": "Data Before",
"comment": "Data state before operation",
"nullable": true
},
{
"name": "data_after",
"type": "json",
"label": "Data After",
"comment": "Data state after operation",
"nullable": true
},
{
"name": "details",
"type": "json",
"label": "Details",
"comment": "Additional operation details and parameters",
"nullable": true
},
{
"name": "error_message",
"type": "text",
"label": "Error Message",
"comment": "Error message if operation failed",
"nullable": true
},
{
"name": "tags",
"type": "json",
"label": "Tags",
"comment": "Additional tags for categorization",
"nullable": true
}
],
"relations": {},
"indexes": [
{
"name": "idx_event_id",
"columns": ["event_id"],
"type": "index"
},
{
"name": "idx_operation",
"columns": ["operation"],
"type": "index"
},
{
"name": "idx_category",
"columns": ["category"],
"type": "index"
},
{
"name": "idx_severity",
"columns": ["severity"],
"type": "index"
},
{
"name": "idx_user_id",
"columns": ["user_id"],
"type": "index"
},
{
"name": "idx_session_id",
"columns": ["session_id"],
"type": "index"
},
{
"name": "idx_client_ip",
"columns": ["client_ip"],
"type": "index"
},
{
"name": "idx_target_resource",
"columns": ["target_resource"],
"type": "index"
},
{
"name": "idx_resource_type",
"columns": ["resource_type"],
"type": "index"
},
{
"name": "idx_source",
"columns": ["source"],
"type": "index"
},
{
"name": "idx_application",
"columns": ["application"],
"type": "index"
},
{
"name": "idx_success",
"columns": ["success"],
"type": "index"
},
{
"name": "idx_request_id",
"columns": ["request_id"],
"type": "index"
},
{
"name": "idx_trace_id",
"columns": ["trace_id"],
"type": "index"
},
{
"name": "idx_user_operation",
"columns": ["user_id", "operation"],
"type": "index"
},
{
"name": "idx_resource_operation",
"columns": ["target_resource", "operation"],
"type": "index"
},
{
"name": "idx_time_user",
"columns": ["created_at", "user_id"],
"type": "index"
}
],
"option": {
"timestamps": true,
"soft_deletes": false
}
}

85
yao/models/chat.mod.yao Normal file
View file

@ -0,0 +1,85 @@
{
"name": "chat",
"label": "Chat",
"description": "Chat table for storing chat metadata and information",
"table": {
"name": "chat",
"comment": "Chat table"
},
"columns": [
{
"name": "id",
"type": "ID",
"label": "Chat ID",
"comment": "Unique chat identifier"
},
{
"name": "chat_id",
"type": "string",
"label": "Chat ID",
"comment": "Chat identifier",
"length": 200,
"nullable": false,
"unique": true,
"index": true
},
{
"name": "title",
"type": "string",
"label": "Title",
"comment": "Chat title",
"length": 200,
"nullable": true
},
{
"name": "assistant_id",
"type": "string",
"label": "Assistant ID",
"comment": "Assistant identifier",
"length": 200,
"nullable": true,
"index": true
},
{
"name": "sid",
"type": "string",
"label": "Session ID",
"comment": "Session identifier",
"length": 255,
"nullable": false,
"index": true
},
{
"name": "silent",
"type": "boolean",
"label": "Silent Mode",
"comment": "Whether this is a silent chat",
"default": false,
"index": true
}
],
"relations": {},
"indexes": [
{
"name": "idx_chat_id",
"columns": ["chat_id"],
"type": "unique"
},
{
"name": "idx_assistant_id",
"columns": ["assistant_id"],
"type": "index"
},
{
"name": "idx_sid",
"columns": ["sid"],
"type": "index"
},
{
"name": "idx_silent",
"columns": ["silent"],
"type": "index"
}
],
"option": { "timestamps": true, "soft_deletes": false }
}

92
yao/models/config.mod.yao Normal file
View file

@ -0,0 +1,92 @@
{
"name": "config",
"label": "Configuration",
"description": "Configuration table for storing system settings and parameters",
"table": {
"name": "config",
"comment": "Configuration table"
},
"columns": [
{
"name": "id",
"type": "ID",
"label": "Config ID",
"comment": "Unique configuration identifier"
},
{
"name": "key",
"type": "string",
"label": "Key",
"comment": "Configuration key",
"length": 255,
"nullable": false,
"unique": true,
"index": true
},
{
"name": "value",
"type": "json",
"label": "Value",
"comment": "Configuration value",
"nullable": true
},
{
"name": "description",
"type": "string",
"label": "Description",
"comment": "Configuration description",
"length": 500,
"nullable": true
},
{
"name": "category",
"type": "string",
"label": "Category",
"comment": "Configuration category",
"length": 100,
"nullable": true,
"index": true
},
{
"name": "type",
"type": "string",
"label": "Type",
"comment": "Configuration value type",
"length": 50,
"nullable": true,
"index": true
},
{
"name": "readonly",
"type": "boolean",
"label": "Readonly",
"comment": "Whether configuration is readonly",
"default": false,
"index": true
}
],
"relations": {},
"indexes": [
{
"name": "idx_key",
"columns": ["key"],
"type": "unique"
},
{
"name": "idx_category",
"columns": ["category"],
"type": "index"
},
{
"name": "idx_type",
"columns": ["type"],
"type": "index"
},
{
"name": "idx_readonly",
"columns": ["readonly"],
"type": "index"
}
],
"option": { "timestamps": true, "soft_deletes": false }
}

162
yao/models/history.mod.yao Normal file
View file

@ -0,0 +1,162 @@
{
"name": "history",
"label": "Chat History",
"description": "Chat history table for storing detailed chat message information",
"table": {
"name": "history",
"comment": "Chat history table"
},
"columns": [
{
"name": "id",
"type": "ID",
"label": "Record ID",
"comment": "Unique record identifier"
},
{
"name": "sid",
"type": "string",
"label": "Session ID",
"comment": "Session identifier",
"length": 255,
"nullable": false,
"index": true
},
{
"name": "cid",
"type": "string",
"label": "Chat ID",
"comment": "Chat identifier",
"length": 200,
"nullable": true,
"index": true
},
{
"name": "uid",
"type": "string",
"label": "User ID",
"comment": "User identifier",
"length": 255,
"nullable": true,
"index": true
},
{
"name": "role",
"type": "string",
"label": "Role",
"comment": "Message role (user/assistant/system)",
"length": 200,
"nullable": true,
"index": true
},
{
"name": "name",
"type": "string",
"label": "Role Name",
"comment": "Role display name",
"length": 200,
"nullable": true
},
{
"name": "content",
"type": "text",
"label": "Message Content",
"comment": "Text content of the message",
"nullable": true
},
{
"name": "context",
"type": "json",
"label": "Context",
"comment": "Message context data",
"nullable": true
},
{
"name": "assistant_id",
"type": "string",
"label": "Assistant ID",
"comment": "Assistant identifier",
"length": 200,
"nullable": true,
"index": true
},
{
"name": "assistant_name",
"type": "string",
"label": "Assistant Name",
"comment": "Assistant display name",
"length": 200,
"nullable": true
},
{
"name": "assistant_avatar",
"type": "string",
"label": "Assistant Avatar",
"comment": "Assistant avatar URL",
"length": 200,
"nullable": true
},
{
"name": "mentions",
"type": "json",
"label": "Mentions",
"comment": "Mention information in the message",
"nullable": true
},
{
"name": "silent",
"type": "boolean",
"label": "Silent Mode",
"comment": "Whether this is a silent message",
"default": false,
"index": true
},
{
"name": "expired_at",
"type": "timestamp",
"label": "Expired At",
"comment": "Record expiration time",
"nullable": true,
"index": true
}
],
"relations": {},
"indexes": [
{
"name": "idx_sid",
"columns": ["sid"],
"type": "index"
},
{
"name": "idx_cid",
"columns": ["cid"],
"type": "index"
},
{
"name": "idx_uid",
"columns": ["uid"],
"type": "index"
},
{
"name": "idx_role",
"columns": ["role"],
"type": "index"
},
{
"name": "idx_assistant_id",
"columns": ["assistant_id"],
"type": "index"
},
{
"name": "idx_silent",
"columns": ["silent"],
"type": "index"
},
{
"name": "idx_expired_at",
"columns": ["expired_at"],
"type": "index"
}
],
"option": { "timestamps": true, "soft_deletes": false }
}

152
yao/models/kb.mod.yao Normal file
View file

@ -0,0 +1,152 @@
{
"name": "knowledge",
"label": "Knowledge",
"description": "Knowledge table for storing knowledge collections for AI assistants",
"table": {
"name": "knowledge",
"comment": "Knowledge table"
},
"columns": [
{
"name": "id",
"type": "ID",
"label": "Knowledge ID",
"comment": "Unique knowledge identifier"
},
{
"name": "collection_id",
"type": "string",
"label": "Collection ID",
"comment": "Knowledge collection identifier",
"length": 200,
"nullable": false,
"unique": true,
"index": true
},
{
"name": "name",
"type": "string",
"label": "Name",
"comment": "Knowledge collection name",
"length": 200,
"nullable": false,
"index": true
},
{
"name": "description",
"type": "string",
"label": "Description",
"comment": "Knowledge collection description",
"length": 600,
"nullable": true,
"index": true
},
{
"name": "uid",
"type": "string",
"label": "User ID",
"comment": "User identifier",
"length": 255,
"nullable": false,
"index": true
},
{
"name": "public",
"type": "boolean",
"label": "Public",
"comment": "Whether knowledge is public",
"default": false,
"index": true
},
{
"name": "scope",
"type": "json",
"label": "Scope",
"comment": "Knowledge access scope",
"nullable": true
},
{
"name": "readonly",
"type": "boolean",
"label": "Readonly",
"comment": "Whether knowledge is readonly",
"default": false,
"index": true
},
{
"name": "option",
"type": "json",
"label": "Option",
"comment": "Knowledge options",
"nullable": true
},
{
"name": "system",
"type": "boolean",
"label": "System",
"comment": "Whether this is a system knowledge",
"default": false,
"index": true
},
{
"name": "sort",
"type": "integer",
"label": "Sort",
"comment": "Knowledge sort order",
"default": 9999,
"index": true
},
{
"name": "cover",
"type": "string",
"label": "Cover",
"comment": "Knowledge cover image URL",
"length": 500,
"nullable": true
}
],
"relations": {},
"indexes": [
{
"name": "idx_collection_id",
"columns": ["collection_id"],
"type": "unique"
},
{
"name": "idx_name",
"columns": ["name"],
"type": "index"
},
{
"name": "idx_description",
"columns": ["description"],
"type": "index"
},
{
"name": "idx_uid",
"columns": ["uid"],
"type": "index"
},
{
"name": "idx_public",
"columns": ["public"],
"type": "index"
},
{
"name": "idx_readonly",
"columns": ["readonly"],
"type": "index"
},
{
"name": "idx_system",
"columns": ["system"],
"type": "index"
},
{
"name": "idx_sort",
"columns": ["sort"],
"type": "index"
}
],
"option": { "timestamps": true, "soft_deletes": false }
}

134
yao/models/mcp.mod.yao Normal file
View file

@ -0,0 +1,134 @@
{
"name": "mcp",
"label": "MCP",
"description": "MCP table for storing MCP client configuration",
"table": {
"name": "mcp",
"comment": "MCP table"
},
"columns": [
{
"name": "id",
"type": "ID",
"label": "ID",
"comment": "Unique identifier"
},
{
"name": "mcp_id",
"type": "string",
"label": "MCP ID",
"comment": "MCP client identifier",
"length": 200,
"nullable": false,
"unique": true,
"index": true
},
{
"name": "name",
"type": "string",
"label": "Name",
"comment": "MCP client name",
"length": 200,
"nullable": false,
"index": true
},
{
"name": "description",
"type": "text",
"label": "Description",
"comment": "MCP client description",
"nullable": true
},
{
"name": "dsl",
"type": "json",
"label": "DSL",
"comment": "MCP client DSL configuration in JSON format",
"nullable": true
},
{
"name": "readonly",
"type": "boolean",
"label": "Readonly",
"comment": "MCP client readonly status",
"default": false,
"index": true
},
{
"name": "built_in",
"type": "boolean",
"label": "Built In",
"comment": "Whether this is a built-in MCP client",
"default": false,
"index": true
},
{
"name": "creator_id",
"type": "string",
"label": "Creator ID",
"comment": "Creator user ID",
"length": 255,
"nullable": true,
"index": true
},
{
"name": "creator_name",
"type": "string",
"label": "Creator Name",
"comment": "Creator user name",
"length": 200,
"nullable": true
},
{
"name": "updater_id",
"type": "string",
"label": "Updater ID",
"comment": "Last updater user ID",
"length": 255,
"nullable": true,
"index": true
},
{
"name": "updater_name",
"type": "string",
"label": "Updater Name",
"comment": "Last updater user name",
"length": 200,
"nullable": true
}
],
"relations": {},
"indexes": [
{
"name": "idx_mcp_id",
"columns": ["mcp_id"],
"type": "unique"
},
{
"name": "idx_name",
"columns": ["name"],
"type": "index"
},
{
"name": "idx_readonly",
"columns": ["readonly"],
"type": "index"
},
{
"name": "idx_built_in",
"columns": ["built_in"],
"type": "index"
},
{
"name": "idx_creator_id",
"columns": ["creator_id"],
"type": "index"
},
{
"name": "idx_updater_id",
"columns": ["updater_id"],
"type": "index"
}
],
"option": { "timestamps": true, "soft_deletes": false }
}