Referencia de comandos¶
Los comandos buscan el .taiapiproject desde el directorio actual, y los que leen schemas, también
el proyecto de tai-sql: lo cómodo es ejecutarlos desde el directorio que contiene a los dos. Ver
El proyecto por dentro.
Si la API está más abajo de lo que alcanza esa búsqueda, -P, --project-dir PATH (o la variable
TAI_API_PROJECT_DIR) indica la carpeta de su .taiapiproject. Va antes del comando
(tai-api -P chatbot/api generate) y no cambia de directorio: tai-sql sigue buscando su proyecto
desde el actual. init no la admite.
Un error que el desarrollador puede arreglar sale con su mensaje, su solución y código de salida 1, sin traza. Los códigos están en Códigos de error.
tai-api init PROJECT¶
Crea el proyecto: el .taiapiproject, el pyproject.toml, el paquete de la API con su
config.py y resources/, el dockerfile y el entrypoint.sh.
| Opción | |
|---|---|
-n, --namespace TEXT |
El paquete Python de la API. Por defecto, api |
-p, --path PATH |
El directorio padre donde se crea. Por defecto, el actual |
-a, --app-dir TEXT |
Dónde va el paquete dentro del proyecto. Por defecto, . (la raíz) |
--install / --no-install |
Instalar las dependencias al terminar |
El proyecto se crea en <path>/<namespace>: tai-api init mi-api deja ./api/, con el paquete
api/api/ dentro. PROJECT es el nombre (name).
tai-api install¶
Instala las dependencias del proyecto —poetry install con su pyproject.toml— en el entorno
virtual activo. Necesita Poetry ≥ 2.2.1.
| Opción | |
|---|---|
-y, --yes |
No pedir confirmación |
--dev |
En vez de eso, instala en el entorno del CLI lo que necesita tai-api dev para ejecutar la API (FastAPI, uvicorn, el driver, tai-keycloak…), según la autenticación |
tai-api generate¶
Regenera la API desde los schemas de tai-sql: el cliente de tai-sql, los endpoints, la
autenticación, el arranque, los diagramas y, si hay bloque frontend, el
cliente TypeScript. Al terminar avisa —sin tocar nada— si las
reglas para asistentes se quedaron atrás o si resources/ es de una
revisión anterior.
Con bloque frontend, antes de escribir nada lee el package.json más cercano a su
output_dir (sin ejecutar npm): si el bloque activa algo que el frontend no tiene —react,
svelte, zod—, falla (A012) y dice qué instalar o qué quitar. Y con la sesión con cookie avisa de
lo que el config.py de la API haría perder la sesión: un ROOT_PATH distinto del base_path y
ALLOWED_ORIGINS = ["*"] (ver Desplegar el frontend).
| Opción | |
|---|---|
-s, --schema TEXT |
Solo ese schema |
--all |
Todos los schemas del proyecto de tai-sql |
Sin opciones, regenera los de generated_schemas; la primera vez, pregunta cuáles. El schema
auth no se genera así: es de tai-api auth init. Un schema que ya no existe en tai-sql se retira
de la API.
tai-api dev¶
Arranca la API con recarga (fastapi dev), sin autorización: todo endpoint responde sin
token, y cada respuesta lo dice con la cabecera X-Tai-Auth: off. Si faltan dependencias, dice cuáles e indica tai-api install --dev. No arranca si la
autenticación generada lee otra variable que secret_key_name (A041): se cambió sin regenerar.
| Opción | |
|---|---|
-w, --auth |
Con la autorización activa, como en producción |
tai-api auth¶
| Comando | Qué hace |
|---|---|
auth init |
Elige el modo —Database o Keycloak—, pregunta su configuración, crea rbac/main.py y regenera. Con Database, crea además schemas/auth.py en el proyecto de tai-sql |
auth status |
La autenticación configurada, y si la generada ya no corresponde a secret_key_name |
auth switch |
Cambia de un modo al otro y regenera la autenticación, el arranque y los endpoints. La política de sesión (auth.session) se conserva. Después, tai-api rbac push |
Ver Autenticación.
tai-api rbac¶
| Comando | Qué hace |
|---|---|
rbac show |
Lo declarado en rbac/<realm>.py y lo que cambiaría en el backend, sin tocar nada |
rbac push |
Lo aplica: crea el realm si no existe, sincroniza permisos, roles y reglas de RLS, y prepara la sesión con cookie en Keycloak. Pide confirmación, y avisa antes de borrar algo con usuarios |
rbac new-realm |
Crea el fichero rbac/<realm>.py de un realm nuevo |
show y push aceptan -r, --realm TEXT (solo ese realm) y -v, --verbose (el detalle de
cada permiso). Ver Permisos y roles.
tai-api rules¶
| Comando | Qué hace |
|---|---|
rules install [--force] |
Instala las reglas para asistentes de IA en <raíz del repositorio>/.claude/rules/_platform/tai-api/: las de esta versión y las derivadas del proyecto. Sin --force, no pisa lo editado a mano |
rules check |
Sale con código distinto de cero si no están al día: para el CI |
rules diff |
En qué se diferencian las instaladas de las de esta versión |
Ver Reglas para asistentes de IA.
tai-api set-mcp¶
Expone las lecturas de la API como herramientas MCP en /mcp: añade fastapi-mcp al proyecto,
marca mcp en el .taiapiproject y regenera. Necesita un schema por defecto en tai-sql
(tai-sql set-default-schema <nombre>).