Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // WithGlobalUniqueID sets the universal ids options to the migration. // If this option is enabled, ent migration will allocate a 1<<32 range // for the ids of each entity (table). // Note that this option cannot be applied on tables that already exist. WithGlobalUniqueID = schema.WithGlobalUniqueID // WithDropColumn sets the drop column option to the migration. // If this option is enabled, ent migration will drop old columns // that were used for both fields and edges. This defaults to false. WithDropColumn = schema.WithDropColumn // WithDropIndex sets the drop index option to the migration. // If this option is enabled, ent migration will drop old indexes // that were defined in the schema. This defaults to false. // Note that unique constraints are defined using `UNIQUE INDEX`, // and therefore, it's recommended to enable this option to get more // flexibility in the schema changes. WithDropIndex = schema.WithDropIndex // WithForeignKeys enables creating foreign-key in schema DDL. This defaults to true. WithForeignKeys = schema.WithForeignKeys )
View Source
var ( // AuditLogsColumns holds the columns for the "audit_logs" table. AuditLogsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "session_key", Type: field.TypeString, Nullable: true}, {Name: "action", Type: field.TypeEnum, Enums: []string{"tool_call", "knowledge_save", "learning_save", "skill_create", "skill_execute", "skill_import", "skill_import_bulk", "knowledge_search", "approval_request", "approval_response"}}, {Name: "actor", Type: field.TypeString}, {Name: "target", Type: field.TypeString, Nullable: true}, {Name: "details", Type: field.TypeJSON, Nullable: true}, {Name: "timestamp", Type: field.TypeTime}, } // AuditLogsTable holds the schema information for the "audit_logs" table. AuditLogsTable = &schema.Table{ Name: "audit_logs", Columns: AuditLogsColumns, PrimaryKey: []*schema.Column{AuditLogsColumns[0]}, Indexes: []*schema.Index{ { Name: "auditlog_session_key", Unique: false, Columns: []*schema.Column{AuditLogsColumns[1]}, }, { Name: "auditlog_action", Unique: false, Columns: []*schema.Column{AuditLogsColumns[2]}, }, { Name: "auditlog_timestamp", Unique: false, Columns: []*schema.Column{AuditLogsColumns[6]}, }, }, } // ConfigProfilesColumns holds the columns for the "config_profiles" table. ConfigProfilesColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "encrypted_data", Type: field.TypeBytes}, {Name: "active", Type: field.TypeBool, Default: false}, {Name: "version", Type: field.TypeInt, Default: 1}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, } // ConfigProfilesTable holds the schema information for the "config_profiles" table. ConfigProfilesTable = &schema.Table{ Name: "config_profiles", Columns: ConfigProfilesColumns, PrimaryKey: []*schema.Column{ConfigProfilesColumns[0]}, Indexes: []*schema.Index{ { Name: "configprofile_name", Unique: false, Columns: []*schema.Column{ConfigProfilesColumns[1]}, }, { Name: "configprofile_active", Unique: false, Columns: []*schema.Column{ConfigProfilesColumns[3]}, }, }, } // CronJobsColumns holds the columns for the "cron_jobs" table. CronJobsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "schedule_type", Type: field.TypeEnum, Enums: []string{"at", "every", "cron"}}, {Name: "schedule", Type: field.TypeString}, {Name: "prompt", Type: field.TypeString, Size: 2147483647}, {Name: "session_mode", Type: field.TypeString, Default: "isolated"}, {Name: "deliver_to", Type: field.TypeJSON, Nullable: true}, {Name: "timezone", Type: field.TypeString, Default: "UTC"}, {Name: "enabled", Type: field.TypeBool, Default: true}, {Name: "last_run_at", Type: field.TypeTime, Nullable: true}, {Name: "next_run_at", Type: field.TypeTime, Nullable: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, } // CronJobsTable holds the schema information for the "cron_jobs" table. CronJobsTable = &schema.Table{ Name: "cron_jobs", Columns: CronJobsColumns, PrimaryKey: []*schema.Column{CronJobsColumns[0]}, Indexes: []*schema.Index{ { Name: "cronjob_enabled", Unique: false, Columns: []*schema.Column{CronJobsColumns[8]}, }, { Name: "cronjob_next_run_at", Unique: false, Columns: []*schema.Column{CronJobsColumns[10]}, }, }, } // CronJobHistoriesColumns holds the columns for the "cron_job_histories" table. CronJobHistoriesColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "job_id", Type: field.TypeUUID}, {Name: "job_name", Type: field.TypeString}, {Name: "status", Type: field.TypeEnum, Enums: []string{"running", "completed", "failed"}, Default: "running"}, {Name: "prompt", Type: field.TypeString, Size: 2147483647}, {Name: "result", Type: field.TypeString, Nullable: true, Size: 2147483647}, {Name: "error_message", Type: field.TypeString, Nullable: true}, {Name: "tokens_used", Type: field.TypeInt, Default: 0}, {Name: "started_at", Type: field.TypeTime}, {Name: "completed_at", Type: field.TypeTime, Nullable: true}, } // CronJobHistoriesTable holds the schema information for the "cron_job_histories" table. CronJobHistoriesTable = &schema.Table{ Name: "cron_job_histories", Columns: CronJobHistoriesColumns, PrimaryKey: []*schema.Column{CronJobHistoriesColumns[0]}, Indexes: []*schema.Index{ { Name: "cronjobhistory_job_id", Unique: false, Columns: []*schema.Column{CronJobHistoriesColumns[1]}, }, { Name: "cronjobhistory_status", Unique: false, Columns: []*schema.Column{CronJobHistoriesColumns[3]}, }, { Name: "cronjobhistory_started_at", Unique: false, Columns: []*schema.Column{CronJobHistoriesColumns[8]}, }, }, } // ExternalRefsColumns holds the columns for the "external_refs" table. ExternalRefsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "ref_type", Type: field.TypeEnum, Enums: []string{"url", "file", "mcp"}}, {Name: "location", Type: field.TypeString}, {Name: "summary", Type: field.TypeString, Nullable: true, Size: 2147483647}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, } // ExternalRefsTable holds the schema information for the "external_refs" table. ExternalRefsTable = &schema.Table{ Name: "external_refs", Columns: ExternalRefsColumns, PrimaryKey: []*schema.Column{ExternalRefsColumns[0]}, Indexes: []*schema.Index{ { Name: "externalref_ref_type", Unique: false, Columns: []*schema.Column{ExternalRefsColumns[2]}, }, }, } // InquiriesColumns holds the columns for the "inquiries" table. InquiriesColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "session_key", Type: field.TypeString}, {Name: "topic", Type: field.TypeString}, {Name: "question", Type: field.TypeString, Size: 2147483647}, {Name: "context", Type: field.TypeString, Nullable: true, Size: 2147483647}, {Name: "priority", Type: field.TypeEnum, Enums: []string{"low", "medium", "high"}, Default: "medium"}, {Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "resolved", "dismissed"}, Default: "pending"}, {Name: "answer", Type: field.TypeString, Nullable: true, Size: 2147483647}, {Name: "knowledge_key", Type: field.TypeString, Nullable: true}, {Name: "source_observation_id", Type: field.TypeString, Nullable: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "resolved_at", Type: field.TypeTime, Nullable: true}, } // InquiriesTable holds the schema information for the "inquiries" table. InquiriesTable = &schema.Table{ Name: "inquiries", Columns: InquiriesColumns, PrimaryKey: []*schema.Column{InquiriesColumns[0]}, Indexes: []*schema.Index{ { Name: "inquiry_session_key_status", Unique: false, Columns: []*schema.Column{InquiriesColumns[1], InquiriesColumns[6]}, }, { Name: "inquiry_status", Unique: false, Columns: []*schema.Column{InquiriesColumns[6]}, }, }, } // KeysColumns holds the columns for the "keys" table. KeysColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "remote_key_id", Type: field.TypeString}, {Name: "type", Type: field.TypeEnum, Enums: []string{"encryption", "signing"}, Default: "encryption"}, {Name: "created_at", Type: field.TypeTime}, {Name: "last_used_at", Type: field.TypeTime, Nullable: true}, } // KeysTable holds the schema information for the "keys" table. KeysTable = &schema.Table{ Name: "keys", Columns: KeysColumns, PrimaryKey: []*schema.Column{KeysColumns[0]}, Indexes: []*schema.Index{ { Name: "key_name", Unique: false, Columns: []*schema.Column{KeysColumns[1]}, }, { Name: "key_type", Unique: false, Columns: []*schema.Column{KeysColumns[3]}, }, }, } // KnowledgesColumns holds the columns for the "knowledges" table. KnowledgesColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "key", Type: field.TypeString, Unique: true}, {Name: "category", Type: field.TypeEnum, Enums: []string{"rule", "definition", "preference", "fact", "pattern", "correction"}}, {Name: "content", Type: field.TypeString, Size: 2147483647}, {Name: "tags", Type: field.TypeJSON, Nullable: true}, {Name: "source", Type: field.TypeString, Nullable: true}, {Name: "use_count", Type: field.TypeInt, Default: 0}, {Name: "relevance_score", Type: field.TypeFloat64, Default: 1}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, } // KnowledgesTable holds the schema information for the "knowledges" table. KnowledgesTable = &schema.Table{ Name: "knowledges", Columns: KnowledgesColumns, PrimaryKey: []*schema.Column{KnowledgesColumns[0]}, Indexes: []*schema.Index{ { Name: "knowledge_category", Unique: false, Columns: []*schema.Column{KnowledgesColumns[2]}, }, }, } // LearningsColumns holds the columns for the "learnings" table. LearningsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "trigger", Type: field.TypeString}, {Name: "error_pattern", Type: field.TypeString, Nullable: true, Size: 2147483647}, {Name: "diagnosis", Type: field.TypeString, Nullable: true, Size: 2147483647}, {Name: "fix", Type: field.TypeString, Nullable: true, Size: 2147483647}, {Name: "category", Type: field.TypeEnum, Enums: []string{"tool_error", "provider_error", "user_correction", "timeout", "permission", "general"}}, {Name: "tags", Type: field.TypeJSON, Nullable: true}, {Name: "occurrence_count", Type: field.TypeInt, Default: 1}, {Name: "success_count", Type: field.TypeInt, Default: 0}, {Name: "confidence", Type: field.TypeFloat64, Default: 0.5}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, } // LearningsTable holds the schema information for the "learnings" table. LearningsTable = &schema.Table{ Name: "learnings", Columns: LearningsColumns, PrimaryKey: []*schema.Column{LearningsColumns[0]}, Indexes: []*schema.Index{ { Name: "learning_category", Unique: false, Columns: []*schema.Column{LearningsColumns[5]}, }, { Name: "learning_confidence", Unique: false, Columns: []*schema.Column{LearningsColumns[9]}, }, }, } // MessagesColumns holds the columns for the "messages" table. MessagesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "role", Type: field.TypeString}, {Name: "content", Type: field.TypeString, Size: 2147483647}, {Name: "timestamp", Type: field.TypeTime}, {Name: "tool_calls", Type: field.TypeJSON, Nullable: true}, {Name: "author", Type: field.TypeString, Nullable: true, Default: ""}, {Name: "session_messages", Type: field.TypeInt, Nullable: true}, } // MessagesTable holds the schema information for the "messages" table. MessagesTable = &schema.Table{ Name: "messages", Columns: MessagesColumns, PrimaryKey: []*schema.Column{MessagesColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { Symbol: "messages_sessions_messages", Columns: []*schema.Column{MessagesColumns[6]}, RefColumns: []*schema.Column{SessionsColumns[0]}, OnDelete: schema.SetNull, }, }, } // ObservationsColumns holds the columns for the "observations" table. ObservationsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "session_key", Type: field.TypeString}, {Name: "content", Type: field.TypeString, Size: 2147483647}, {Name: "token_count", Type: field.TypeInt, Default: 0}, {Name: "source_start_index", Type: field.TypeInt, Default: 0}, {Name: "source_end_index", Type: field.TypeInt, Default: 0}, {Name: "created_at", Type: field.TypeTime}, } // ObservationsTable holds the schema information for the "observations" table. ObservationsTable = &schema.Table{ Name: "observations", Columns: ObservationsColumns, PrimaryKey: []*schema.Column{ObservationsColumns[0]}, Indexes: []*schema.Index{ { Name: "observation_session_key", Unique: false, Columns: []*schema.Column{ObservationsColumns[1]}, }, { Name: "observation_created_at", Unique: false, Columns: []*schema.Column{ObservationsColumns[6]}, }, }, } // PaymentTxesColumns holds the columns for the "payment_txes" table. PaymentTxesColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "tx_hash", Type: field.TypeString, Nullable: true}, {Name: "from_address", Type: field.TypeString}, {Name: "to_address", Type: field.TypeString}, {Name: "amount", Type: field.TypeString}, {Name: "chain_id", Type: field.TypeInt64}, {Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "submitted", "confirmed", "failed"}, Default: "pending"}, {Name: "session_key", Type: field.TypeString, Nullable: true}, {Name: "purpose", Type: field.TypeString, Nullable: true}, {Name: "x402_url", Type: field.TypeString, Nullable: true}, {Name: "payment_method", Type: field.TypeEnum, Enums: []string{"direct_transfer", "x402_v2"}, Default: "direct_transfer"}, {Name: "error_message", Type: field.TypeString, Nullable: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, } // PaymentTxesTable holds the schema information for the "payment_txes" table. PaymentTxesTable = &schema.Table{ Name: "payment_txes", Columns: PaymentTxesColumns, PrimaryKey: []*schema.Column{PaymentTxesColumns[0]}, Indexes: []*schema.Index{ { Name: "paymenttx_tx_hash", Unique: false, Columns: []*schema.Column{PaymentTxesColumns[1]}, }, { Name: "paymenttx_from_address", Unique: false, Columns: []*schema.Column{PaymentTxesColumns[2]}, }, { Name: "paymenttx_status", Unique: false, Columns: []*schema.Column{PaymentTxesColumns[6]}, }, { Name: "paymenttx_created_at", Unique: false, Columns: []*schema.Column{PaymentTxesColumns[12]}, }, { Name: "paymenttx_session_key", Unique: false, Columns: []*schema.Column{PaymentTxesColumns[7]}, }, }, } // PeerReputationsColumns holds the columns for the "peer_reputations" table. PeerReputationsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "peer_did", Type: field.TypeString, Unique: true}, {Name: "successful_exchanges", Type: field.TypeInt, Default: 0}, {Name: "failed_exchanges", Type: field.TypeInt, Default: 0}, {Name: "timeout_count", Type: field.TypeInt, Default: 0}, {Name: "trust_score", Type: field.TypeFloat64, Default: 0}, {Name: "first_seen", Type: field.TypeTime}, {Name: "last_interaction", Type: field.TypeTime}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, } // PeerReputationsTable holds the schema information for the "peer_reputations" table. PeerReputationsTable = &schema.Table{ Name: "peer_reputations", Columns: PeerReputationsColumns, PrimaryKey: []*schema.Column{PeerReputationsColumns[0]}, Indexes: []*schema.Index{ { Name: "peerreputation_trust_score", Unique: false, Columns: []*schema.Column{PeerReputationsColumns[5]}, }, { Name: "peerreputation_last_interaction", Unique: false, Columns: []*schema.Column{PeerReputationsColumns[7]}, }, }, } // ReflectionsColumns holds the columns for the "reflections" table. ReflectionsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "session_key", Type: field.TypeString}, {Name: "content", Type: field.TypeString, Size: 2147483647}, {Name: "token_count", Type: field.TypeInt, Default: 0}, {Name: "generation", Type: field.TypeInt, Default: 1}, {Name: "created_at", Type: field.TypeTime}, } // ReflectionsTable holds the schema information for the "reflections" table. ReflectionsTable = &schema.Table{ Name: "reflections", Columns: ReflectionsColumns, PrimaryKey: []*schema.Column{ReflectionsColumns[0]}, Indexes: []*schema.Index{ { Name: "reflection_session_key", Unique: false, Columns: []*schema.Column{ReflectionsColumns[1]}, }, { Name: "reflection_created_at", Unique: false, Columns: []*schema.Column{ReflectionsColumns[5]}, }, }, } // SecretsColumns holds the columns for the "secrets" table. SecretsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "encrypted_value", Type: field.TypeBytes}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "access_count", Type: field.TypeInt, Default: 0}, {Name: "key_secrets", Type: field.TypeUUID}, } // SecretsTable holds the schema information for the "secrets" table. SecretsTable = &schema.Table{ Name: "secrets", Columns: SecretsColumns, PrimaryKey: []*schema.Column{SecretsColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { Symbol: "secrets_keys_secrets", Columns: []*schema.Column{SecretsColumns[6]}, RefColumns: []*schema.Column{KeysColumns[0]}, OnDelete: schema.NoAction, }, }, Indexes: []*schema.Index{ { Name: "secret_name", Unique: false, Columns: []*schema.Column{SecretsColumns[1]}, }, { Name: "secret_created_at", Unique: false, Columns: []*schema.Column{SecretsColumns[3]}, }, }, } // SessionsColumns holds the columns for the "sessions" table. SessionsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "key", Type: field.TypeString, Unique: true}, {Name: "agent_id", Type: field.TypeString, Nullable: true}, {Name: "channel_type", Type: field.TypeString, Nullable: true}, {Name: "channel_id", Type: field.TypeString, Nullable: true}, {Name: "model", Type: field.TypeString, Nullable: true}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, } // SessionsTable holds the schema information for the "sessions" table. SessionsTable = &schema.Table{ Name: "sessions", Columns: SessionsColumns, PrimaryKey: []*schema.Column{SessionsColumns[0]}, Indexes: []*schema.Index{ { Name: "session_updated_at", Unique: false, Columns: []*schema.Column{SessionsColumns[8]}, }, }, } // WorkflowRunsColumns holds the columns for the "workflow_runs" table. WorkflowRunsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "workflow_name", Type: field.TypeString}, {Name: "description", Type: field.TypeString, Nullable: true}, {Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "running", "completed", "failed", "cancelled"}, Default: "pending"}, {Name: "total_steps", Type: field.TypeInt, Default: 0}, {Name: "completed_steps", Type: field.TypeInt, Default: 0}, {Name: "error_message", Type: field.TypeString, Nullable: true}, {Name: "started_at", Type: field.TypeTime}, {Name: "completed_at", Type: field.TypeTime, Nullable: true}, } // WorkflowRunsTable holds the schema information for the "workflow_runs" table. WorkflowRunsTable = &schema.Table{ Name: "workflow_runs", Columns: WorkflowRunsColumns, PrimaryKey: []*schema.Column{WorkflowRunsColumns[0]}, Indexes: []*schema.Index{ { Name: "workflowrun_status", Unique: false, Columns: []*schema.Column{WorkflowRunsColumns[3]}, }, { Name: "workflowrun_workflow_name", Unique: false, Columns: []*schema.Column{WorkflowRunsColumns[1]}, }, { Name: "workflowrun_started_at", Unique: false, Columns: []*schema.Column{WorkflowRunsColumns[7]}, }, }, } // WorkflowStepRunsColumns holds the columns for the "workflow_step_runs" table. WorkflowStepRunsColumns = []*schema.Column{ {Name: "id", Type: field.TypeUUID}, {Name: "run_id", Type: field.TypeUUID}, {Name: "step_id", Type: field.TypeString}, {Name: "agent", Type: field.TypeString, Nullable: true}, {Name: "prompt", Type: field.TypeString, Size: 2147483647}, {Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "running", "completed", "failed", "skipped"}, Default: "pending"}, {Name: "result", Type: field.TypeString, Nullable: true, Size: 2147483647}, {Name: "error_message", Type: field.TypeString, Nullable: true}, {Name: "started_at", Type: field.TypeTime, Nullable: true}, {Name: "completed_at", Type: field.TypeTime, Nullable: true}, } // WorkflowStepRunsTable holds the schema information for the "workflow_step_runs" table. WorkflowStepRunsTable = &schema.Table{ Name: "workflow_step_runs", Columns: WorkflowStepRunsColumns, PrimaryKey: []*schema.Column{WorkflowStepRunsColumns[0]}, Indexes: []*schema.Index{ { Name: "workflowsteprun_run_id", Unique: false, Columns: []*schema.Column{WorkflowStepRunsColumns[1]}, }, { Name: "workflowsteprun_status", Unique: false, Columns: []*schema.Column{WorkflowStepRunsColumns[5]}, }, { Name: "workflowsteprun_run_id_step_id", Unique: false, Columns: []*schema.Column{WorkflowStepRunsColumns[1], WorkflowStepRunsColumns[2]}, }, }, } // Tables holds all the tables in the schema. Tables = []*schema.Table{ AuditLogsTable, ConfigProfilesTable, CronJobsTable, CronJobHistoriesTable, ExternalRefsTable, InquiriesTable, KeysTable, KnowledgesTable, LearningsTable, MessagesTable, ObservationsTable, PaymentTxesTable, PeerReputationsTable, ReflectionsTable, SecretsTable, SessionsTable, WorkflowRunsTable, WorkflowStepRunsTable, } )
Functions ¶
Types ¶
type Schema ¶
type Schema struct {
// contains filtered or unexported fields
}
Schema is the API for creating, migrating and dropping a schema.
Click to show internal directories.
Click to hide internal directories.