Documentación pública · v1.0.0

05 · Roustix CLI

MSD-05-CLI · Roustix CLI

Automatizar la integración también forma parte de la experiencia del desarrollador.

Toda la operación. Una sola plataforma.


Objetivo del capítulo

Definir la interfaz oficial de línea de comandos (CLI) de Roustix, permitiendo a desarrolladores, administradores y pipelines de automatización interactuar con la plataforma sin construir solicitudes HTTP manualmente.

La CLI utiliza el mismo contrato definido en MAG v1.0 y el SDK oficial (MSD-04), ofreciendo una experiencia consistente para desarrollo, pruebas y automatización.


1 · Filosofía

La CLI es el puente entre la API y la automatización.

No reemplaza el SDK ni el Portal para Desarrolladores.

Cada comando ejecuta operaciones utilizando exactamente el mismo contrato REST.

Usuario
      │
      ▼
 roustix-cli
      │
      ▼
 SDK Oficial
      │
      ▼
   OpenAPI
      │
      ▼
 API Roustix

La CLI es un cliente oficial de Roustix.

RolHerramienta
Exploración humanaDeveloper Portal · Quick Start
Integración en códigoSDK
Scripts · CI/CDCLI

2 · Instalación

Python (PyPI)

pip install roustix-cli

Verificación

roustix --version

Salida esperada:

Roustix CLI 1.0.0
API MAG v1
Estado: paquete roustix-cli planificado · especificación MSD-05 entregada.

3 · Configuración

Primer inicio:

roustix login

El asistente solicita:

  • URL del servidor
  • Usuario
  • Contraseña
  • Empresa (empresa_slug)

Configuración almacenada localmente:

~/.roustix/config.yaml

Ejemplo:

server: https://api.roustix.app
empresa: empresa-demo
token: "************"

El token nunca se almacena en texto plano cuando el sistema operativo dispone de un almacén seguro de credenciales (Keychain · Credential Manager · Secret Service).

Variables de entorno alternativas para CI:

export ROUSTIX_TOKEN=<jwt>

4 · Autenticación

La CLI utiliza el endpoint oficial:

POST /api/v1/auth/login

→ MAG-02 · JWT

Una vez autenticado:

roustix whoami

Resultado:

Usuario : Ana García
Empresa : Empresa Demo
Rol     : Admin
Plan    : Grow

Equivalente a GET /api/v1/me con contexto enriquecido cuando el plan esté disponible en el token.


5 · Organización de comandos

roustix
│
├── login
├── logout
├── whoami
│
├── assets
│     ├── list
│     ├── get
│     ├── create
│     └── delete
│
├── work-orders
├── inventory
├── purchases
├── sales
├── admin
│
├── openapi
├── config
└── version

La estructura refleja exactamente los recursos definidos en MAG-04.

ComandoRecurso MAG
roustix assetsmaintenance/assets
roustix work-ordersmaintenance/work-orders
roustix inventoryinventory/*
roustix adminadmin/*

6 · Ejemplos

Listar activos:

roustix assets list

Obtener un activo:

roustix assets get 25

Crear una orden:

roustix work-orders create

Consultar inventario:

roustix inventory products list

Todos los comandos invocan el SDK internamente — no construyen HTTP manualmente.


7 · Formatos de salida

Formato por defecto — tabla legible en terminal:

┌────┬──────────┬─────────────┐
│ ID │ Código   │ Nombre      │
├────┼──────────┼─────────────┤
│ 25 │ CMP-025  │ Compresor B │
└────┴──────────┴─────────────┘

Salida JSON (automatización):

roustix assets list --json

Salida YAML:

roustix assets list --yaml

Salida CSV:

roustix assets list --csv
FlagUso
--jsonPipelines · jq · scripts
--yamlConfig · legibilidad
--csvExcel · reportes
(default)Operación interactiva humana

8 · Automatización

La CLI está diseñada para integrarse con:

  • GitHub Actions
  • GitLab CI
  • Azure DevOps
  • Jenkins
  • Scripts Bash
  • PowerShell

Ejemplo:

roustix inventory stock-low --json

Puede utilizarse directamente dentro de pipelines CI/CD.

# GitHub Actions (conceptual)
- name: Check low stock
  env:
    ROUSTIX_TOKEN: ${{ secrets.ROUSTIX_TOKEN }}
  run: roustix inventory stock-low --json

9 · OpenAPI

Descargar la especificación oficial:

roustix openapi download

Resultado: openapi.v1.yaml

Opciones:

roustix openapi validate
roustix openapi version

Basado en MSD-03 · OpenAPI 3.1.

ComandoAcción
openapi downloadGuarda spec desde /api/v1/openapi.yaml
openapi validateLint local (Spectral)
openapi versionMuestra info.version del contrato

10 · Buenas prácticas

#Regla
1Nunca almacenar tokens en scripts versionados
2Utilizar variables de entorno para automatización
3Mantener la CLI sincronizada con MAG
4Toda operación utiliza el SDK oficial
5Respetar los códigos de error definidos en MAG-06
6Mostrar mensajes legibles y códigos de salida estándar
7Preferir --json en CI · tabla en terminal interactiva

11 · Códigos de salida

CódigoSignificado
0Operación exitosa
1Error de ejecución genérico
2Error de autenticación
3Error de validación
4Error de conexión
5Error interno

Estos códigos facilitan la integración con scripts y pipelines.

Los errores API mapean desde MAG-06:

HTTP / error.codeExit code CLI
401 · UNAUTHORIZED2
422 · VALIDATION_ERROR3
Timeout · red4
500 · INTERNAL_ERROR5

12 · Roadmap

Próximas funcionalidades:

  • autocompletado para Bash, Zsh y PowerShell
  • actualización automática (roustix update)
  • plugins oficiales
  • modo interactivo (roustix shell)
  • gestión de múltiples perfiles (roustix config use staging)
  • diagnóstico (roustix doctor)
  • importación y exportación masiva

Filosofía del capítulo

La CLI convierte el contrato MAG en acciones ejecutables desde la terminal — sin fricción para DevOps, soporte y desarrolladores que automatizan Roustix.

Junto al SDK y al Portal para Desarrolladores, completa el triángulo de integración: explorar · codificar · automatizar.