Logo de Oktanet Oktanet

Documentación de Oktavia · Referencia

Referencia técnica

APIs del Engine y de la UI, capas del inventario, variables de entorno, artefactos que deja cada job y todos los formatos CSV, YAML y JSON que la plataforma importa o exporta.

  • Referencia
  • Para integradores y desarrolladores
  • Sin pasos: sólo contratos

API del Engine

El motor expone una API REST autenticada con credenciales de integración: la credencial maestra de la instalación o claves por organización con acceso de lectura o escritura y un conjunto acotado de operaciones. La especificación OpenAPI completa, con interfaz interactiva, se consulta dentro de la instalación y es la referencia exacta de la versión instalada. Las operaciones de auditoría son asíncronas: devuelven el identificador y el estado de un job, y el resultado se consulta después.

Errores comunes

  • No autorizado: credencial ausente o inválida.
  • Petición inválida: cuerpo incompleto, por ejemplo scope=site sin site.
  • Servicio no disponible: la organización no tiene reglas de intención sincronizadas.

Áreas de la API

ÁreaQué permiteNotas
Salud y metadatosVerificación de salud; catálogo de tipos de check con el esquema de su expected; carriles de remediación y si el apply está habilitado; estado del programador—
AuditoríasAuditoría completa; compliance en seco; cada paso por separado; verificación de acceso; sincronización de Telegraf; medición de latencia; exportables CSV; discovery y compliance de Meraki y SD-WANTodas reciben la petición de auditoría y devuelven un job
JobsListar jobs por estado y organización; detalle de un job con pasos, tiempos y errores; estado por equipo; lista y descarga de artefactosEstados: queued, running, completed, completed_with_errors, failed, timeout
Inventario y discoveryInventario canónico vigente; reconstruirlo desde el caché; alta y baja de un equipo; importar y exportar CSV; resolver nombres; snapshot vigente de un equipo; resumen de incorporaciónEl alta acepta los campos de Inventario base
Operaciones en vivoLimpiar contadores, verificar un servicio y comprobar acceso (las usa Argos); gestión de llaves SSH conocidas por organizaciónDevuelven un job consultable
Compliance e intenciónResultados y resumen por sitio; leer y escribir el archivo de reglas completo, con validación; reglas en CSV; mapa servicio → plantilla y checks; análisis de vulnerabilidadesEl archivo de reglas se describe en Compliance / Intended
Config GeneratorLeer y escribir los archivos de variables (service_vars.json, device_inventory.json, etiquetas); CSV del generador; generar configuración por sitio, equipo, rol, plataforma o tipo de sitio; registrar un equipo de día 0; descargar la configuración deseada por equipo o por sitio en ZIP—
RespaldosRunning config por equipo o por sitio en ZIP; respaldo estructurado; respaldo lógico de FortiGate; propuesta de variables de servicio a partir del respaldoLa propuesta no aplica a SD-WAN
TopologíaSnapshot de topología y reconstrucción; vecinos e impacto de un equipo; puntos únicos de falla; inconsistencias (por ejemplo áreas OSPF)—
Métricas y telemetríaCPU, memoria, interfaces, salud, latencia y ambiente del plano de datos; vecinos BGP, OSPF y EIGRP y tabla de rutas del plano de control; anomalías y consulta genérica; túneles y eventos SD-WAN; vista previa y sincronización de TelegrafAceptan equipo, sitio, ventana de tiempo, agregación y organización
Digital TwinCrear y listar snapshots; diff de un equipo contra un snapshot; crear, consultar y actualizar cambios; vista previa, aprobación, ejecución, confirmación y reversión; vigilante de cambios sin confirmarFlujo en Digital Twin
ProgramadorLeer y escribir la configuración de tareas programadasFormato en Scheduler
IntegracionesFortiGate (snapshot, prueba de conexión, rotación de token); Meraki (estado, validación, sincronización, sondeo de cámaras, registro y bitácora de webhooks); SD-WAN (validación, sincronización, aprovisionamiento, telemetría); red de pruebas en CML (estado, laboratorio, operaciones, sincronización, respaldos)—
InsightsResumen compacto por categoría para asistentesPrueba de concepto

API de la UI

La UI expone sus propias rutas, con sesión de usuario, para todo lo que sus vistas hacen, y un conjunto aparte para el motor, autenticado con la credencial de integración compartida. Su especificación OpenAPI se genera de las rutas y se consulta dentro de la instalación, junto con la del motor.

Lo que consume el motor

  • La fuente de verdad de cada organización: inventario, topología, IPAM, resultados de compliance, variables de servicio y estado de los servicios del catálogo.
  • La ingesta: el motor o el programador entregan el identificador de un job terminado y la UI lo importa.
  • La verificación de salud, que resume el estado de la UI, del motor y del programador.

Lo que usan las vistas (con sesión)

ÁreaOperaciones
JobsLanzar, consultar estado, listar y descargar artefactos; verificación de acceso; limpiar contadores; configuración del programador
InventarioExportar e importar CSV (con opción de reemplazo), alta manual, sincronización con el motor, datos y autocompletado para las vistas, vista previa de equipos
IntenciónLeer, exportar (JSON y tres variantes CSV) e importar variables de servicio; registro de alcances; catálogo del Configurador; estado de los servicios; generar configuración
ReglasReglas de cumplimiento con exportación e importación CSV (vista previa y aplicación), derivación desde el Configurador, catálogo de reglas de estado y plantillas
GemeloCambios con aprobación, ejecución, reintento, confirmación, reversión y vista previa por equipo
ReportesPuertos, capacidad, topología, riesgo, salud y drift en JSON y CSV; recolección bajo demanda; sincronización de la línea base
AutomatizaciónReglas, eventos, notificaciones y carga de reglas por omisión
Argos e IAChat del asistente, conversaciones, ciclos y las operaciones de análisis asistido (explicar diff, revisar cambio, resumir cumplimiento, redactar remediación, analizar enrutamiento o camino, proponer variables, correlacionar eventos)
IntegracionesConfiguración y pruebas de SMTP, proveedor de IA y SSO; credenciales; Meraki; SD-WAN; CML
Provisioning y organizaciónOrganizaciones, tipos de sitio, roles, sitios y equipos; paquetes y versiones de organización
Red de pruebasEstado, laboratorio, agregar, reemplazar y quitar equipos, auditoría, sincronización, configuración de nodos y respaldos
Eventos push de MerakiRutas de ingreso para webhooks, ubicación y MV Sense, con token propio por organización y límites de tamaño y tasa; se obtienen al registrar la integración

Campos de inventario

El inventario tiene tres capas y cada una tiene su tabla de campos en la Referencia de datos.

CapaDónde viveQuién la escribeTabla
Base (declarada)CSV de equipos e inventario interno del Engine; inventario de la organización en la UIUna persona, por CSV o en la UIInventario base
Canónica (construida)device_inventory.json más device_tags.json e interface_tags.jsonEl Engine, tras el discovery; editable por APIDevice Inventory
Observada (espejo)Modelo, serie, versión, interfaces, vecinos LLDP y telemetría por interfaz en la UILa ingesta de cada jobResumen en Device Inventory

Los catálogos globales que validan esos campos: tipos de sitio (slug, label, default_services), roles (slug, category en router, switch, firewall u otro, compliance_groups) y plataformas con su fabricante y método de acceso (ios, iosxe, nxos, meraki, sdwan, fortigate, fortiswitch, junos).

Variables de entorno

La referencia completa de variables, con nombres y valores por omisión, está en la configuración de ejemplo de cada componente y se entrega con el software. Por política de publicación, este sitio no documenta los nombres de las variables que contienen secretos ni los valores por omisión relacionados con autenticación. Lo que sigue es el mapa de qué se configura dónde.

Motor (Engine)

GrupoQué configuraNotas
AutenticaciónClave de API maestra; archivo de claves con alcance; token hacia la fuente de verdadSecretos. Sin la clave maestra el Engine no arranca fuera de un entorno de desarrollo
Fuente de verdadURL de la UI; tenant por omisión—
BóvedaClave de cifrado; ubicación de la bóveda; modo «sólo bóveda»La clave es secreta e idéntica a la de la UI
Intención y artefactosUbicación del archivo de reglas compartido; directorio de exportación; temporalesEn el almacenamiento compartido
RenderActivación de las plantillas por servicio (v2)Apagada por omisión
Discovery y jobsTimeout por equipo; paralelismo de la API y del ejecutor de jobs; umbral de job estancado—
ProgramadorURL del motor; URL de ingesta de la UI—
Inventario legadoUbicación del inventario interno; credenciales legadasLas credenciales legadas son secretos y sólo existen como ruta de migración
TelemetríaCredencial SNMP (v2c o v3); conexión, retención y token de InfluxDB; recarga de TelegrafEl token de InfluxDB se fija antes del primer arranque; retención configurable
Carriles por fabricanteBandera de remediación de FortiGate, FortiSwitch, Junos, Meraki y SD-WAN; verificación TLS y timeouts de FortiGate; minutos del commit confirmed, antigüedad máxima del respaldo e intervalo del vigilante en Junos; registro de webhooks en Meraki; intervalo de telemetría en SD-WANTodas las remediaciones apagadas por omisión
VulnerabilidadesClave de la API de NVD (opcional); directorio de caché de catálogosCon clave, NVD admite más consultas por minuto
Servidor MCPOrganizaciones permitidas; transporte; registro de evidencia; etiqueta del cliente—
VariosLista blanca de acceso; zona horaria—

Interfaz (UI)

GrupoQué configuraNotas
MotorURL del motor; credenciales de integración en ambos sentidos; timeouts de salud, lectura, job, artefacto y operación largaLas credenciales son secretas
BóvedaClave de cifradoSecreta; obligatoria en producción
Aplicación webSecreto de la aplicación; modo de depuración; hosts permitidos; orígenes CSRF; política de sesión y cabeceras de seguridadEl secreto no se versiona; en producción los hosts se declaran explícitamente
Base de datos y cachéConexión a PostgreSQL (modo TLS, pooling); conexión, prefijo y tiempo de la cachéSin caché externa, se usa memoria local
ArranqueTenant por omisión; importaciones automáticas de inventario y compliance; siembra del laboratorio de demostraciónSiembra apagada en producción
ArtefactosUbicación de inventario, resultados y resumen; línea base de reportes; archivo de reglasEn el almacenamiento compartido
Auditoría por omisiónCuerpo del botón «Run Audit»{"scope":"all","max_workers":6,"output_format":"both"}
IdentidadEmisor, cliente, secreto, redirección, scopes y claims de OIDC; exigencias de MFA; login local de emergenciaEl secreto del cliente no se documenta
AccesoRedes siempre permitidas; desactivación de la lista blanca; proxies de confianza—
ServidorWorkers, hilos y timeout del servidor de aplicación—
WorkersIntervalo del evaluador de reglas; intervalo del worker de Argos; límite de tokens del modelo; frescura de la ingesta—
IAProveedor (Anthropic u Ollama); clave de API; modelo; conexión y timeout de Ollama; servidor, herramientas permitidas y timeout del cliente MCPLa configuración por organización en la UI gana sobre el entorno; la clave es secreta
CorreoBackend, host, puerto, TLS, usuario, contraseña y remitente SMTPRespaldo; lo normal es configurar SMTP por organización en la UI
Eventos push de MerakiURL pública; tasa de ingreso; retención de eventos, ubicación y cámaras; reintentos de recolección; clave de hash de clientesRetención configurable
VariosPassphrase de paquetes de organización; clave de administración de tokens; URL pública; laboratorio CML; zona horariaLas dos primeras son secretas

Artefactos generados

Todo job deja archivos en su propio espacio de trabajo, listados en su detalle con ruta relativa, tamaño, fecha y formato (json, csv, cfg). Al terminar, se fusionan con la copia vigente de la organización, por equipo y por sitio. El motor no genera XLSX, HTML ni Markdown.

PasoArtefactoFormatoContenido
discoverySalida cruda y snapshot normalizado por equipoJSONLo recolectado, en bruto y con forma común
backup_configRespaldo por equipoCFG, JSONRunning config; respaldo estructurado; respaldo lógico de FortiGate
build_inventorydevice_inventory.jsonJSONInventario canónico
build_topologySnapshot de topologíaJSONNodos, enlaces CDP y LLDP, vecinos BGP, OSPF y EIGRP, HSRP y VRRP, rutas, túneles, circuitos WAN, BFD de SD-WAN
render_configsConfiguración deseada por equipoCFGEl resultado de aplicar las plantillas a la intención
compliancecompliance_results.json, summary_by_site.json, resultado por equipoJSONResultados por sitio y equipo, resúmenes por categoría y tipo de prueba, puntajes
vulnerabilitiesReporte de vulnerabilidadesJSONCruce de versiones con NVD, KEV y EPSS
export_*_csvdevice_inventory.csv, compliance_tests.csv, device_summary.csv, site_summary.csvCSVExportables para evidencia
ping_ssh_checkTabla de alcanceCSVICMP y TCP/22 por equipo
intended_from_csv · csv_to_varsReglas y variables convertidasJSON, CSV—
meraki_* · sdwan_*Snapshots normalizados y resumen de discoveryJSONDiscovery por API
telegraf_syncConfiguración SNMP por organizaciónTOMLEntradas SNMP más un reporte de objetivos incluidos y omitidos
GemeloSnapshots congelados y solicitudes de cambioJSON—
MCP · red de pruebasRegistro de evidencia; bitácora y respaldos del laboratorioJSONL, YAMLCada llamada MCP; actividad del laboratorio y sus respaldos con historial
ExportaciónCopia por jobJSON, CFGInventario, resumen, resultados y configuraciones cuando se pide output_path o existe un directorio de exportación configurado

Los respaldos y las configuraciones deseadas se descargan también por sitio, en ZIP. Cada job conserva además su registro de ejecución.

CSV, YAML y JSON soportados

Todo lo que la plataforma importa o exporta, con sus columnas o claves. Las listas dentro de un CSV se separan con |; los booleanos aceptan true, 1, yes, y.

ArchivoFormatoColumnas o clavesDónde
Inventario baseCSVname, hostname, platform, group, os, type, site, site_type, role, vendor y opcionales ssh_options, ping_source; el motor lo convierte en su inventario internoMotor (herramienta de línea de comandos); UI: Inventario → Importar (acepta además model, serial_number, os_version)
Inventario exportadoCSVdevice, role, location, site_type, platform, vendor, ip_address, model, serial_number, os_version, bgp_asn, tagsUI: Inventario → Exportar; API del motor
Inventario canónicoJSON{devices: {nombre: {...}}}, ver Device Inventorydevice_inventory.json
EtiquetasJSON{device_tags: {equipo: [tag]}}; {rules: [{tag, match, mode, interfaces}]} con mode en prefix, contains o customdevice_tags.json, interface_tags.json
IntenciónJSON, CSVJSON por alcances (Service Vars); CSV scope, key, payload_json en tres variantes: csv, csv_detailed, csv_reviewservice_vars.json; UI: Configurador → exportar e importar
Reglas (archivo)JSON, YAMLversion, metadata, checks[], ver Compliance / Intendedintended.json, intended.yaml
Reglas (motor)CSVconfig_checks.csv: id, service_id, category, vendors, platforms, roles, devices, score, remediation_type, remediation_ticket, severity; network_checks.csv sin service_id; hardware_checks.csv añade max_percent, max_errors, include_discardsAPI del motor (reglas en CSV)
Reglas de estado (UI)CSVrule_id, test_type, check_type, category, service_id, label, severity, enabled, score, apply_to_all, description, remediation_type, roles, target_devices, target_site_types, target_vendors, target_platforms, required_lines, forbidden_lines, thresholdsCumplimiento → Reglas → importar y exportar
Catálogo de serviciosCSV, JSONCSV: service_id, label, category, severity, platforms, device_models, roles, apply_to_all, required_lines, forbidden_lines, description, enabled; JSON del catálogo con categories[] y services{}Configurador → Catálogo
ProgramadorYAMLversion, poll_interval, jobs[] {name, enabled, organization_slug, schedule{}, steps[]}, más la conexión al motor y a la ingesta de la UIOperaciones → Programación; API del motor
ResultadosJSONcompliance_results.json: sites[] {site, site_type, summary, summary_by_category, summary_by_test_type, devices[]}; summary_by_site.json: checks_total, checks_passed, checks_failed, score_awarded, score_total, status, severityArtefactos de compliance
Reportes de la UICSV, JSONports.csv (equipo, sitio, interfaz, estados, VLAN, modo, descripción, vecino LLDP, utilización, PoE, severidad, recomendación), health_findings.csv, risk_findings.csv, drift.csv, capacity_hotspots.csv, capacity_forecast.csv, topology.csvReportes
FinOpsCSVPor equipo: device, site, role, model, vendor, capex_mxn, license_mxn_year, support_mxn_year, lifecycle_years, avg_power_watts; por sitio: site, internet_mxn_month, noc_mxn_month, provider_support_mxn_month, notesFinOps → importar (descarga una plantilla)
Paquete de organizaciónZIPManifiesto con counts, secrets, state; passphrase opcional; con límite de tamañoExportar e importar organización
BóvedaJSON cifradoPor organización y tipo: alcance, valor de alcance, usuario, secreto cifrado y metadatosEntrega UI → motor
Laboratorio CMLYAMLTopología del laboratorio; respaldos con fecha e historialRed de pruebas