Skip to Content
Guía de pantallasConexiones y credenciales

Conexiones y credenciales

Conexiones Externas — /external-connections

Conexiones reutilizables, por tipo de protocolo
Conexiones reutilizables, por tipo de protocolo

Datos de conexión reutilizables, registrados una vez y referenciados por varias Recolecciones y Entregas:

TipoUsado por
MQTT BrokerRecolección MQTT_TOPIC_SUBSCRIBER, entrega MQTT_PUBLISH
SQL Server / OracleRecolección SQL_SERVER / ORACLE, entrega SQL_SERVER_EXEC / ORACLE_EXEC
PostgreSQLRecolección POSTGRES, entrega POSTGRES_EXEC
SQLiteRecolección SQLITE, entrega SQLITE_EXEC — sin host ni usuario: la conexión es la ruta del archivo .db
InfluxDBRecolección INFLUXDB, entrega INFLUXDB_WRITE — base de series temporales; una conexión atiende las versiones 1.8, 2.x y 3.x
SAP RFCRecolección SAP_RFC, entrega SAP_RFC_CALL
SAP IDocRecolección SAP_IDOC
SAP Gateway (OData)Aplicaciones SAP Gateway: recolecciones HTTP_GET/HTTP_POST y entregas HTTP_POST/PUT/PATCH/DELETE — ver SAP Gateway
SAP CPI (Cloud Integration)Aplicaciones SAP CPI: recolecciones HTTP_GET/HTTP_POST y entregas HTTP_POST/PUT/PATCH/DELETE/SOAP — ver SAP CPI
MongoDBRecolección MONGODB, entrega MONGODB_WRITE — incluye Atlas, Cosmos DB y DocumentDB
OPC UARecolección OPC_UA_TRIGGER, entrega OPC_UA_WRITE
Modbus TCPRecolección MODBUS_TRIGGER / MODBUS_POLL, entrega MODBUS_WRITE
PI Web APIRecolección PI_WEB_API, entrega PI_WEB_API_WRITE
Archivo (directorio)Recolección FILE_WATCH, entrega FILE_WRITE
HTTPAplicaciones HTTP que hablan con el mismo servidor — ver Conexión HTTP

Toda conexión tiene probar conexión en la propia pantalla — úselo antes de crear la Recolección, para separar un problema de red/credencial de un problema de configuración.

Guardar una conexión reinicia las sesiones que dependen de ella. Las Recolecciones y Entregas con sesión persistente — MQTT, Sparkplug, OPC UA, Modbus, SAP IDoc, carpeta observada y los gates de escritura en equipo — se reconectan con los datos nuevos en el momento. Antes, la sesión abierta seguía con la dirección anterior, y una conexión corregida podía seguir “desconectada” hasta que se reiniciara la API.

El tipo de una conexión no cambia después de creada: para otro tipo, registre una conexión nueva. La pantalla siempre bloqueó el campo, y desde la Conexión HTTP el servidor también rechaza el cambio hecho por la API, el MCP o la importación. En una conexión InfluxDB, la versión (1.8, 2.x, 3.x) también queda bloqueada mientras alguna Recolección o Entrega InfluxDB dependa de ella: cada versión habla un lenguaje de consulta y graba por una dirección distinta, y el cambio rompería esas integraciones en la siguiente ejecución. El campo muestra cuántas son.

Conexión HTTP

Cuando varias Aplicaciones hablan con el mismo servidor HTTP, registre el servidor una vez aquí y vincule las Aplicaciones a él. Cambiar la dirección, la URL de Keep Alive o el certificado pasa a hacerse en un solo lugar.

CampoPara qué sirve
URL baseDirección del servidor. La ruta de cada integración sigue en la Recolección o en la Entrega
URL de Keep AliveSe prueba en cada ciclo, una vez para todas las Aplicaciones vinculadas. Solo HTTP 200 cuenta como en línea
Certificado CA (PEM)Solo para servidores con CA privada o certificado autofirmado
  • El usuario y la contraseña no se guardan aquí. La Credencial sigue en cada Aplicación, porque Aplicaciones del mismo servidor pueden entrar con usuarios distintos.
  • Las Aplicaciones vinculadas quedan ON y OFF juntas. El Keep Alive es del servidor, no de cada una.
  • Guardar una conexión en uso pide confirmación. Cuando cambian la URL, el Keep Alive o el certificado, la pantalla lista las Aplicaciones vinculadas antes de grabar: la dirección de todas ellas, y la de sus Entregas HTTP, cambia junta.
  • Desactivar la conexión retiene las Entregas de las Aplicaciones vinculadas y las deja OFF, como en los demás tipos.
  • Una conexión HTTP en uso no se puede eliminar. Pase antes las Aplicaciones a URL propia o a otra conexión.

Para vincular una Aplicación, elija Conexión Externa en el campo Dirección de su registro. Para crear la conexión a partir de una Aplicación existente, use Convertir en Conexión Externa — ver URL propia o Conexión Externa.

El listado también dice de dónde vino cada conexión: dos columnas muestran quién la creó y quién la modificó por última vez. El autor es siempre quien estaba autenticado en el momento — nunca un campo enviado en el formulario — y queda guardado como e-mail, así que el registro sobrevive a la eliminación de aquel usuario.

La autoría no viaja en el archivo de importación/exportación: quien importa firma el registro en el destino. De lo contrario, una conexión restaurada de un respaldo aparecería sin autor alguno, o con el e-mail de alguien que ni siquiera tiene cuenta en este ambiente. “Creado por” solo se graba en la creación — reimportar por encima no reescribe quién la creó aquí.

Los campos de una conexión también se pueden consultar desde dentro de la Recolección y de la Entrega que la usan, sin pasar por esta pantalla — ver Detalles de la conexión.

Las conexiones de base de datos y de archivo ganan un segundo botón: Ver catálogo. Navega por la estructura real — esquemas, tablas, columnas y clave; o carpetas y archivos — sin generar nada.

Vale por sí mismo: después de registrar una base de datos, lo primero que se quiere saber es si esa credencial ve lo que debería. Y desde ahí se abre el asistente que genera la Recolección y la Entrega listas — ver Catálogo de base de datos y Catálogo de carpetas.

Las conexiones de los Simuladores aparecen aquí automáticamente cuando el simulador correspondiente se habilita — “OPC Simulator (interno)”, “Modbus Simulator (interno)” y “PI Simulator (interno)”. No hay dirección que escribir.

Credenciales — /credentials

Credenciales de autenticación de las llamadas de salida
Credenciales de autenticación de las llamadas de salida

Autenticación de las llamadas HTTP/SOAP. Se almacenan cifradas en reposo y nunca son reexhibidas por la API.

TipoCómo funciona
Basic AuthUsuario y contraseña en el header Authorization: Basic
API KeyUn valor fijo, en el header o en la query, con el nombre que el destino exija
Login → TokenEl CMS hace un POST de login, extrae el token de la respuesta y lo usa en las llamadas siguientes
OAuth2 client credentialsFlujo máquina a máquina estándar, con renovación automática

Login → Token cubre las APIs corporativas que inventaron su propio login: el token puede venir anidado en la respuesta (data.session.token), el cuerpo del login acepta parámetros extra además de usuario y contraseña, y la contraseña puede ir hasheada antes del envío, cuando es eso lo que la API espera.

OAuth2 soporta scope, parámetros extra y las dos formas de enviar el client_id / client_secret: en el header Basic (el preferido por la RFC, estándar de Keycloak y Auth0) o en el cuerpo del form, exigido por parte de los proveedores. Solo existe client_credentials — el CMS es máquina a máquina, no tiene navegador para el redirect ni usuario para consentir.

Entrada y salida

La Credencial tiene una dirección:

  • Salida — usada por el CMS al llamar a la Aplicación. Es el caso de las cuatro anteriores.
  • Entrada — un login y contraseña que una aplicación externa usa para enviar mensajes al CMS, como alternativa al API Token. Tiene usuario responsable e Interfaces permitidas.

Las Credenciales de Entrada tienen también el botón Conectar vía MCP: el mismo login y contraseña autentican a un agente de IA en el Servidor MCP de integraciones de la Aplicación, y el popup muestra la dirección y el fragmento de configuración del cliente, en Basic Auth.

Para una integración REST común, la combinación HTTP_GET/HTTP_POST + Credencial + Transformador cubre el caso. Los adaptadores nativos existen solo para protocolos que no son HTTP.

API Tokens — /api-tokens

Tokens por aplicación, con historial de copias
Tokens por aplicación, con historial de copias

Tokens que autentican a quien envía mensajes al CMS, emitidos por aplicación. Aceptados como:

  • header x-api-token: <token>
  • header Authorization: Bearer <token>
  • header Authorization: Basic con el token en la posición de la contraseña

Cada copia del token se registra en un historial de copias — quién copió y cuándo.

El botón Conectar vía MCP, en la fila de cada clave, muestra cómo usar la misma API Key en un agente de IA: la dirección del Servidor MCP de integraciones de la Aplicación y un ejemplo de configuración del cliente. El valor de la clave no aparece allí — el ejemplo trae un marcador, y el valor real sigue saliendo solo por el Copiar, con registro.

El valor completo sale únicamente por el botón Copiar. El listado muestra la clave enmascarada (••••1a2b), y crear una clave nueva también devuelve solo la enmascarada — el valor no aparece en la pantalla de creación. Es lo que garantiza que toda divulgación pase por el historial de copias: una clave devuelta junto con la respuesta de creación saldría sin ningún registro.

Entregar la credencial a quien va a usarla

Credencial, API Key y token MCP tienen el mismo problema práctico: alguien necesita recibir el secreto para configurar el otro lado, y el camino fácil — copiar de la pantalla y pegarlo en el chat del equipo — es el peor posible. Por eso las tres pantallas tienen el botón Enviar por e-mail.

Qué hace, y por qué así:

DecisiónMotivo
El cuerpo del e-mail se arma en el servidorEl valor descifrado nunca pasa por el navegador de quien apretó el botón
El destinatario se elige en una lista de usuarios del CMS, no se escribeUn campo de dirección libre convertiría el botón en un relay capaz de mandar la contraseña a cualquier lado
La lista trae solo a quien es elegible para esa AplicaciónMisma convención de las alertas: administrador siempre, y usuario sin Interfaz restringida es elegible para todo
Éxito y fallo van a la auditoría“Intentó mandar y el SMTP lo rechazó” es información tan relevante como el envío
El secreto nunca entra en el detalle del logEl Log de Auditoría lo lee mucha gente

El e-mail llega con el contexto junto al valor — Aplicación, Aplicación usuaria, dirección, Interfaces permitidas y la dirección de esta instalación — para que quien lo recibe pueda configurar sin tener que volver a preguntar.

Depende del SMTP configurado en Configuraciones › E-mail. Sin él el botón falla de forma explícita, y el fallo también queda registrado.

En el caso del token MCP hay una diferencia: el destinatario no se elige. Es siempre el usuario de servicio dueño del token, porque es su acceso el que la IA va a usar.

Variables — /global-variables y /application-variables

Valores reutilizables en las configuraciones
Valores reutilizables en las configuraciones

Pares nombre/valor con descripción opcional, reutilizables en las configuraciones. Sirven para no repetir (ni desparramar) valores que cambian por ambiente — URL base, códigos de planta, prefijos.

Son dos pantallas, una por alcance — con Herramientas separadas, así que el permiso de una no da acceso a la otra:

PantallaRutaMenúAlcance
Variables Globales/global-variablesConfiguracionesValen en todo el sistema
Variables de Aplicación/application-variablesConfig. de IntegraciónValen solo en las Recolecciones, Entregas y Transformadores de la Aplicación donde fueron registradas
Variables en el contexto de cada aplicación
Variables en el contexto de cada aplicación

Donde se puede usar una variable, ambas aparecen juntas — en el selector {} de los campos de Recolección y Entrega, en el panel de placeholders del Comando SQL y de la Plantilla de Contenido, y como global.NOMBRE en el script del Transformador. La variable de la Aplicación tiene prioridad: si existe una Global con el mismo nombre, se usa el valor de la Aplicación.

Una variable de Aplicación solo se resuelve cuando la configuración pertenece a esa Aplicación. En un Transformador con Alcance en más de una Aplicación, el selector Contexto de la pantalla decide de cuál vienen las variables durante la prueba.

Dónde se usa la variable

Cada fila trae la columna Dónde se usa, con el conteo de referencias y un popup que lista cada una: la Recolección, la Entrega o el Transformer que la menciona, con la Aplicación, el campo y el fragmento donde aparece. El barrido cubre tres formas de uso: Template ({{VAR}}), Bind SQL (:VAR) y Script (global.VAR).

Es lo que se consulta antes de renombrar o eliminar. Eliminar una variable referenciada no da error: las referencias pasan a resolver a vacío, en silencio — y la pantalla lo avisa en la confirmación.

Un Transformer puede armar el nombre de la variable en tiempo de ejecución (global['PLANT_' + uf]). Usos así no aparecen en la lista, porque solo existen cuando el script corre. El conteo es un piso, no una garantía.

En las Globales hay además Sobrepuesta en: las Aplicaciones que tienen una Variable de Aplicación con ese mismo nombre. Dentro de ellas el valor global no vale.

Ambos alcances entran juntos en el import/export de la Danger Zone, bajo el mismo ítem Variables (Globales y de Aplicación) — las de Aplicación se referencian por la sigla de la Aplicación, así que importe Aplicaciones junto con ellas.

Las dos pantallas también muestran quién creó y quién modificó por última vez cada variable, con fecha, bajo la misma regla de las Conexiones: el autor es quien estaba autenticado en el momento, guardado como correo electrónico. Una variable creada por import o por Pack, sin nadie conduciendo, aparece con un guion.

Encontrar un registro entre muchos

Estas pantallas, como las demás agrupadas por Aplicación, tienen un campo de búsqueda que filtra por Aplicación, Interfaz y Definición a la vez — y también por lo que identifica al propio registro. En Credenciales y API Keys, eso incluye las dos Aplicaciones involucradas: la dueña y la usuaria.

El mismo campo existe en Errores de Negocio (por el código del error), en Reglas de Cifrado (por el texto comodín), en Alertas (por el login del destinatario) y en Claves de Cifrado.