- Bun 1.3.6 server setup - MariaDB schema (projects, agents, tasks) - Auto-migrations on startup - WebSocket support - Health check endpoint Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
420 lines
11 KiB
JSON
420 lines
11 KiB
JSON
{
|
|
"version": "5",
|
|
"dialect": "mysql",
|
|
"id": "3f9067f3-0e1d-440b-917e-e2c879a5e283",
|
|
"prevId": "00000000-0000-0000-0000-000000000000",
|
|
"tables": {
|
|
"agents": {
|
|
"name": "agents",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "varchar(36)",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"autoincrement": false
|
|
},
|
|
"pod_name": {
|
|
"name": "pod_name",
|
|
"type": "varchar(253)",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"autoincrement": false
|
|
},
|
|
"k8s_namespace": {
|
|
"name": "k8s_namespace",
|
|
"type": "varchar(63)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "'agents'"
|
|
},
|
|
"status": {
|
|
"name": "status",
|
|
"type": "enum('idle','busy','error','offline')",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "'idle'"
|
|
},
|
|
"current_task_id": {
|
|
"name": "current_task_id",
|
|
"type": "varchar(36)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"tasks_completed": {
|
|
"name": "tasks_completed",
|
|
"type": "int",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": 0
|
|
},
|
|
"last_heartbeat": {
|
|
"name": "last_heartbeat",
|
|
"type": "timestamp",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "(now())"
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"onUpdate": true,
|
|
"default": "(now())"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"idx_status": {
|
|
"name": "idx_status",
|
|
"columns": [
|
|
"status"
|
|
],
|
|
"isUnique": false
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {
|
|
"agents_id": {
|
|
"name": "agents_id",
|
|
"columns": [
|
|
"id"
|
|
]
|
|
}
|
|
},
|
|
"uniqueConstraints": {
|
|
"agents_pod_name_unique": {
|
|
"name": "agents_pod_name_unique",
|
|
"columns": [
|
|
"pod_name"
|
|
]
|
|
}
|
|
},
|
|
"checkConstraint": {}
|
|
},
|
|
"projects": {
|
|
"name": "projects",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "varchar(36)",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"autoincrement": false
|
|
},
|
|
"name": {
|
|
"name": "name",
|
|
"type": "varchar(255)",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"autoincrement": false
|
|
},
|
|
"description": {
|
|
"name": "description",
|
|
"type": "text",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"gitea_repo_id": {
|
|
"name": "gitea_repo_id",
|
|
"type": "int",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"gitea_repo_url": {
|
|
"name": "gitea_repo_url",
|
|
"type": "varchar(512)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"gitea_owner": {
|
|
"name": "gitea_owner",
|
|
"type": "varchar(100)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"gitea_repo_name": {
|
|
"name": "gitea_repo_name",
|
|
"type": "varchar(100)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"default_branch": {
|
|
"name": "default_branch",
|
|
"type": "varchar(100)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "'main'"
|
|
},
|
|
"k8s_namespace": {
|
|
"name": "k8s_namespace",
|
|
"type": "varchar(63)",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"autoincrement": false
|
|
},
|
|
"docker_image": {
|
|
"name": "docker_image",
|
|
"type": "varchar(512)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"env_vars": {
|
|
"name": "env_vars",
|
|
"type": "json",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"replicas": {
|
|
"name": "replicas",
|
|
"type": "int",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": 1
|
|
},
|
|
"cpu_limit": {
|
|
"name": "cpu_limit",
|
|
"type": "varchar(20)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "'500m'"
|
|
},
|
|
"memory_limit": {
|
|
"name": "memory_limit",
|
|
"type": "varchar(20)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "'512Mi'"
|
|
},
|
|
"status": {
|
|
"name": "status",
|
|
"type": "enum('active','paused','archived')",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "'active'"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "(now())"
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"onUpdate": true,
|
|
"default": "(now())"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"idx_status": {
|
|
"name": "idx_status",
|
|
"columns": [
|
|
"status"
|
|
],
|
|
"isUnique": false
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {
|
|
"projects_id": {
|
|
"name": "projects_id",
|
|
"columns": [
|
|
"id"
|
|
]
|
|
}
|
|
},
|
|
"uniqueConstraints": {
|
|
"projects_k8s_namespace_unique": {
|
|
"name": "projects_k8s_namespace_unique",
|
|
"columns": [
|
|
"k8s_namespace"
|
|
]
|
|
}
|
|
},
|
|
"checkConstraint": {}
|
|
},
|
|
"tasks": {
|
|
"name": "tasks",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "varchar(36)",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"autoincrement": false
|
|
},
|
|
"project_id": {
|
|
"name": "project_id",
|
|
"type": "varchar(36)",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"autoincrement": false
|
|
},
|
|
"title": {
|
|
"name": "title",
|
|
"type": "varchar(255)",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"autoincrement": false
|
|
},
|
|
"description": {
|
|
"name": "description",
|
|
"type": "text",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"priority": {
|
|
"name": "priority",
|
|
"type": "enum('low','medium','high','urgent')",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "'medium'"
|
|
},
|
|
"state": {
|
|
"name": "state",
|
|
"type": "enum('backlog','in_progress','needs_input','ready_to_test','approved','staging','production')",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "'backlog'"
|
|
},
|
|
"assigned_agent_id": {
|
|
"name": "assigned_agent_id",
|
|
"type": "varchar(36)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"branch_name": {
|
|
"name": "branch_name",
|
|
"type": "varchar(255)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"pr_url": {
|
|
"name": "pr_url",
|
|
"type": "varchar(512)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"preview_url": {
|
|
"name": "preview_url",
|
|
"type": "varchar(512)",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"default": "(now())"
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"autoincrement": false,
|
|
"onUpdate": true,
|
|
"default": "(now())"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"idx_project_state": {
|
|
"name": "idx_project_state",
|
|
"columns": [
|
|
"project_id",
|
|
"state"
|
|
],
|
|
"isUnique": false
|
|
}
|
|
},
|
|
"foreignKeys": {
|
|
"tasks_project_id_projects_id_fk": {
|
|
"name": "tasks_project_id_projects_id_fk",
|
|
"tableFrom": "tasks",
|
|
"tableTo": "projects",
|
|
"columnsFrom": [
|
|
"project_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"tasks_assigned_agent_id_agents_id_fk": {
|
|
"name": "tasks_assigned_agent_id_agents_id_fk",
|
|
"tableFrom": "tasks",
|
|
"tableTo": "agents",
|
|
"columnsFrom": [
|
|
"assigned_agent_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "set null",
|
|
"onUpdate": "no action"
|
|
}
|
|
},
|
|
"compositePrimaryKeys": {
|
|
"tasks_id": {
|
|
"name": "tasks_id",
|
|
"columns": [
|
|
"id"
|
|
]
|
|
}
|
|
},
|
|
"uniqueConstraints": {},
|
|
"checkConstraint": {}
|
|
}
|
|
},
|
|
"views": {},
|
|
"_meta": {
|
|
"schemas": {},
|
|
"tables": {},
|
|
"columns": {}
|
|
},
|
|
"internal": {
|
|
"tables": {},
|
|
"indexes": {}
|
|
}
|
|
} |