Adds workspace-scoped provider registry schema, relations, migration 0010, and seedDefaultRoleRoutes() for pipeline defaults when aliases exist. Co-authored-by: Cursor <cursoragent@cursor.com>
60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
---
|
|
kind: task
|
|
slug: db-model-providers-migration
|
|
title: Drizzle schema and migration for model_providers and role_model_routes
|
|
plan_slug: automation-foundation
|
|
epic_slug: model-provider-registry
|
|
status: done
|
|
priority: P1
|
|
tenant_id: global
|
|
owner: unassigned
|
|
cursor_todo_id: null
|
|
updated_at: "2026-07-03"
|
|
agent_prompt: |
|
|
Read docs/adr-model-routing.md and packages/shared model-routing types from
|
|
Task-shared-schemas-resolve-model. packages/database only. Generate migration
|
|
with pnpm db:generate — do not hand-edit SQL. claim_task before work.
|
|
---
|
|
|
|
# Task summary
|
|
|
|
Add `model_providers` and `role_model_routes` tables with workspace scoping and indexes per the ADR.
|
|
|
|
## Description
|
|
|
|
### Schema (`packages/database/src/schema/`)
|
|
|
|
- `model_providers.ts` — columns from ADR; unique `(workspace_id, alias)`
|
|
- `role_model_routes.ts` — FK to `model_providers`; unique `(workspace_id, role_id)`
|
|
- Re-export from `schema/index.ts`; add relations if needed
|
|
|
|
### Migration
|
|
|
|
- `pnpm db:generate` from repo root after schema edit
|
|
- Commit generated SQL under `packages/database/migrations/`
|
|
|
|
### Optional seed helper
|
|
|
|
- `seedDefaultRoleRoutes(workspaceId)` in database package or web server — inserts pipeline default role_ids pointing at aliases **only if** matching aliases exist (no auto-create of providers)
|
|
|
|
## Subtasks
|
|
|
|
- [x] Define Drizzle tables
|
|
- [x] Generate and commit migration
|
|
- [x] Verify `workspace_id` index on both tables
|
|
|
|
## Estimation
|
|
|
|
S
|
|
|
|
## Acceptance criteria
|
|
|
|
- [x] Migration applies cleanly with `pnpm db:migrate`
|
|
- [x] Every query example in epic doc filters by `workspace_id`
|
|
- [x] Types align with `packages/shared` zod schemas
|
|
|
|
## Links
|
|
|
|
- Epic: `./Epic-model-provider-registry.md`
|
|
- ADR: `../../../docs/adr-model-routing.md`
|
|
- Depends on: `Task-shared-schemas-resolve-model.md`
|