Sistema completo de gestión de tokens para subagentes NEXUS v4.0: Nuevas directivas SIMCO: - SIMCO-SUBAGENTE.md: Protocolo para agentes en modo subagente - SIMCO-CCA-SUBAGENTE.md: CCA ligero para subagentes (~1,500 tokens) - SIMCO-CONTROL-TOKENS.md: Gestión de límites de tokens - SIMCO-DELEGACION-PARALELA.md: Delegación paralela Perfiles compact (~250 tokens cada uno): - PERFIL-BACKEND-COMPACT.md - PERFIL-FRONTEND-COMPACT.md - PERFIL-DATABASE-COMPACT.md - PERFIL-DEVOPS-COMPACT.md - PERFIL-ML-COMPACT.md - PERFIL-GENERIC-SUBAGENT.md Templates de delegación escalonados: - TEMPLATE-DELEGACION-MINIMA.md (~250 tokens) - TEMPLATE-DELEGACION-ESTANDAR.md (~600 tokens) - TEMPLATE-DELEGACION-COMPLETA.md (~1,800 tokens) Nuevos perfiles especializados: - PERFIL-MCP-ARCHITECT.md - PERFIL-MCP-DEVELOPER.md - PERFIL-RAG-ENGINEER.md - PERFIL-CICD-SPECIALIST.md - PERFIL-PRODUCTION-MANAGER.md - PERFIL-MONITORING-AGENT.md - PERFIL-SECRETS-MANAGER.md - PERFIL-PROPAGATION-TRACKER.md Checklists y documentación: - CHECKLIST-PRE-DELEGACION.md - Análisis y planes de implementación Métricas de mejora: - ~59% reducción de tokens por delegación - Perfiles compact: 69% más ligeros - CCA subagente: 85% más ligero 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
456 lines
15 KiB
YAML
456 lines
15 KiB
YAML
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# INVENTARIO DE VARIABLES DE ENTORNO - NEXUS WORKSPACE
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
#
|
|
# Version: 1.0.0
|
|
# Fecha: 2026-01-04
|
|
# Responsable: @PERFIL_SECRETS_MANAGER
|
|
# Proposito: Documentacion centralizada de variables de entorno por proyecto
|
|
#
|
|
# IMPORTANTE: Este archivo NO contiene valores reales, solo documentacion
|
|
# de las variables requeridas por cada proyecto
|
|
#
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
version: "1.0.0"
|
|
fecha_actualizacion: "2026-01-04"
|
|
responsable: "@PERFIL_SECRETS_MANAGER"
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# GAMILIT
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
gamilit:
|
|
ubicacion_env: "projects/gamilit/apps/backend/.env"
|
|
ubicacion_ejemplo: "projects/gamilit/apps/backend/.env.example"
|
|
|
|
variables:
|
|
# Base de datos
|
|
database:
|
|
- nombre: "DATABASE_URL"
|
|
descripcion: "Connection string PostgreSQL"
|
|
formato: "postgresql://user:pass@host:port/db"
|
|
requerido: true
|
|
sensible: true
|
|
ejemplo: "postgresql://gamilit:***@localhost:5432/gamilit_platform"
|
|
|
|
- nombre: "DB_HOST"
|
|
descripcion: "Host de PostgreSQL"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "localhost"
|
|
|
|
- nombre: "DB_PORT"
|
|
descripcion: "Puerto de PostgreSQL"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "5432"
|
|
|
|
- nombre: "DB_USERNAME"
|
|
descripcion: "Usuario de base de datos"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "DB_PASSWORD"
|
|
descripcion: "Password de base de datos"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "DB_DATABASE"
|
|
descripcion: "Nombre de la base de datos"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "gamilit_platform"
|
|
|
|
# Autenticacion
|
|
auth:
|
|
- nombre: "JWT_SECRET"
|
|
descripcion: "Secreto para firmar JWT"
|
|
requerido: true
|
|
sensible: true
|
|
longitud_minima: 32
|
|
|
|
- nombre: "JWT_EXPIRATION"
|
|
descripcion: "Tiempo de expiracion de tokens"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "7d"
|
|
|
|
- nombre: "REFRESH_TOKEN_SECRET"
|
|
descripcion: "Secreto para refresh tokens"
|
|
requerido: true
|
|
sensible: true
|
|
longitud_minima: 32
|
|
|
|
- nombre: "REFRESH_TOKEN_EXPIRATION"
|
|
descripcion: "Expiracion de refresh tokens"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "30d"
|
|
|
|
# OAuth Providers
|
|
oauth:
|
|
google:
|
|
- nombre: "GOOGLE_CLIENT_ID"
|
|
descripcion: "Client ID de Google OAuth"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "GOOGLE_CLIENT_SECRET"
|
|
descripcion: "Client Secret de Google OAuth"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "GOOGLE_CALLBACK_URL"
|
|
descripcion: "URL de callback para OAuth"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "https://api.gamilit.com/auth/google/callback"
|
|
|
|
facebook:
|
|
- nombre: "FACEBOOK_APP_ID"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "FACEBOOK_APP_SECRET"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
apple:
|
|
- nombre: "APPLE_CLIENT_ID"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "APPLE_TEAM_ID"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "APPLE_KEY_ID"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "APPLE_PRIVATE_KEY"
|
|
requerido: false
|
|
sensible: true
|
|
notas: "Contenido del archivo .p8"
|
|
|
|
# Aplicacion
|
|
app:
|
|
- nombre: "NODE_ENV"
|
|
descripcion: "Entorno de ejecucion"
|
|
requerido: true
|
|
sensible: false
|
|
valores_validos: ["development", "staging", "production"]
|
|
|
|
- nombre: "PORT"
|
|
descripcion: "Puerto del servidor"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "3006"
|
|
|
|
- nombre: "API_PREFIX"
|
|
descripcion: "Prefijo de la API"
|
|
requerido: false
|
|
sensible: false
|
|
ejemplo: "api/v1"
|
|
|
|
- nombre: "CORS_ORIGINS"
|
|
descripcion: "Origenes permitidos para CORS"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "https://gamilit.com,https://app.gamilit.com"
|
|
|
|
# Email
|
|
email:
|
|
- nombre: "SMTP_HOST"
|
|
requerido: true
|
|
sensible: false
|
|
|
|
- nombre: "SMTP_PORT"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "587"
|
|
|
|
- nombre: "SMTP_USER"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "SMTP_PASSWORD"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "EMAIL_FROM"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "noreply@gamilit.com"
|
|
|
|
# Storage
|
|
storage:
|
|
- nombre: "S3_BUCKET"
|
|
requerido: false
|
|
sensible: false
|
|
|
|
- nombre: "S3_ACCESS_KEY"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "S3_SECRET_KEY"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "S3_REGION"
|
|
requerido: false
|
|
sensible: false
|
|
ejemplo: "us-east-1"
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# TRADING-PLATFORM
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
trading_platform:
|
|
ubicacion_env: "projects/trading-platform/.env"
|
|
estructura: "monorepo con .env en raiz"
|
|
|
|
variables:
|
|
# Base de datos
|
|
database:
|
|
- nombre: "DATABASE_URL"
|
|
descripcion: "PostgreSQL connection string"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
# APIs de Trading
|
|
trading_apis:
|
|
- nombre: "BINANCE_API_KEY"
|
|
descripcion: "API Key de Binance"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "BINANCE_SECRET_KEY"
|
|
descripcion: "Secret Key de Binance"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "ALPACA_API_KEY"
|
|
descripcion: "API Key de Alpaca"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "ALPACA_SECRET_KEY"
|
|
descripcion: "Secret Key de Alpaca"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "POLYGON_API_KEY"
|
|
descripcion: "API Key de Polygon.io"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
# ML Services
|
|
ml:
|
|
- nombre: "MLFLOW_TRACKING_URI"
|
|
descripcion: "URI de MLflow"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "http://localhost:5000"
|
|
|
|
- nombre: "MODEL_REGISTRY_PATH"
|
|
descripcion: "Path para modelos"
|
|
requerido: true
|
|
sensible: false
|
|
|
|
# Servicios
|
|
services:
|
|
- nombre: "TRADING_API_PORT"
|
|
ejemplo: "4000"
|
|
requerido: true
|
|
sensible: false
|
|
|
|
- nombre: "ML_SERVICE_PORT"
|
|
ejemplo: "5000"
|
|
requerido: true
|
|
sensible: false
|
|
|
|
- nombre: "FRONTEND_PORT"
|
|
ejemplo: "3200"
|
|
requerido: true
|
|
sensible: false
|
|
|
|
# Redis (si aplica)
|
|
redis:
|
|
- nombre: "REDIS_URL"
|
|
descripcion: "URL de Redis para cache/queues"
|
|
requerido: false
|
|
sensible: true
|
|
ejemplo: "redis://localhost:6379"
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# ERP-SUITE (CORE)
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
erp_suite:
|
|
ubicacion_env: "projects/erp-suite/apps/erp-core/.env"
|
|
notas: "Verticales heredan de core y agregan propias"
|
|
|
|
variables:
|
|
database:
|
|
- nombre: "DATABASE_URL"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "TENANT_DATABASE_PREFIX"
|
|
descripcion: "Prefijo para DBs de tenants"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "erp_tenant_"
|
|
|
|
auth:
|
|
- nombre: "JWT_SECRET"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "SESSION_SECRET"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
multi_tenancy:
|
|
- nombre: "DEFAULT_TENANT_ID"
|
|
descripcion: "Tenant por defecto"
|
|
requerido: true
|
|
sensible: false
|
|
|
|
- nombre: "TENANT_HEADER"
|
|
descripcion: "Header para identificar tenant"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "X-Tenant-ID"
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# PLATFORM MARKETING CONTENT
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
platform_marketing_content:
|
|
ubicacion_env: "projects/platform_marketing_content/.env"
|
|
|
|
variables:
|
|
database:
|
|
- nombre: "DATABASE_URL"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
ai_services:
|
|
- nombre: "OPENAI_API_KEY"
|
|
descripcion: "API Key de OpenAI"
|
|
requerido: true
|
|
sensible: true
|
|
|
|
- nombre: "ANTHROPIC_API_KEY"
|
|
descripcion: "API Key de Anthropic (Claude)"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
social_media:
|
|
- nombre: "TWITTER_API_KEY"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "TWITTER_API_SECRET"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "INSTAGRAM_ACCESS_TOKEN"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "LINKEDIN_CLIENT_ID"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
- nombre: "LINKEDIN_CLIENT_SECRET"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# VARIABLES COMPARTIDAS (WORKSPACE LEVEL)
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
shared:
|
|
descripcion: "Variables que podrian compartirse entre proyectos"
|
|
|
|
variables:
|
|
# Logging
|
|
logging:
|
|
- nombre: "LOG_LEVEL"
|
|
valores_validos: ["debug", "info", "warn", "error"]
|
|
default: "info"
|
|
|
|
- nombre: "LOG_FORMAT"
|
|
valores_validos: ["json", "pretty"]
|
|
default: "json"
|
|
|
|
# Sentry (error tracking)
|
|
sentry:
|
|
- nombre: "SENTRY_DSN"
|
|
descripcion: "DSN de Sentry para error tracking"
|
|
requerido: false
|
|
sensible: true
|
|
|
|
# Analytics
|
|
analytics:
|
|
- nombre: "GA_TRACKING_ID"
|
|
descripcion: "Google Analytics tracking ID"
|
|
requerido: false
|
|
sensible: false
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# POLITICAS DE GESTION
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
politicas:
|
|
almacenamiento:
|
|
desarrollo:
|
|
metodo: "archivo .env local"
|
|
seguridad: "gitignore obligatorio"
|
|
|
|
staging:
|
|
metodo: "archivo .env en servidor"
|
|
seguridad: "permisos 600, usuario deploy"
|
|
|
|
produccion:
|
|
metodo: "archivo .env + considerar vault"
|
|
seguridad: "permisos 600, acceso restringido"
|
|
backup: "copia en vault/1password"
|
|
|
|
rotacion:
|
|
jwt_secrets: "trimestral"
|
|
api_keys: "semestral o ante compromiso"
|
|
database_passwords: "anual o ante compromiso"
|
|
oauth_secrets: "segun proveedor"
|
|
|
|
auditoria:
|
|
frecuencia: "mensual"
|
|
checklist:
|
|
- "Verificar que .env no esta en git"
|
|
- "Verificar permisos de archivos"
|
|
- "Verificar variables no usadas"
|
|
- "Verificar variables faltantes vs .env.example"
|
|
|
|
documentacion:
|
|
obligatorio:
|
|
- "Mantener .env.example actualizado"
|
|
- "Documentar nuevas variables en este inventario"
|
|
- "Notificar a equipo de cambios"
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# REFERENCIAS
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
referencias:
|
|
perfil_responsable: "@PERFIL_SECRETS_MANAGER"
|
|
directiva_secretos: "orchestration/directivas/simco/SIMCO-SECRETS.md"
|
|
produccion_inventory: "orchestration/inventarios/PRODUCTION-INVENTORY.yml"
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# FIN DE INVENTARIO
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|