El camino A es la ruta más corta a un primer éxito. Empieza ahí si solo quieres evaluar el producto.
Camino A — Ejecuta el Engine sin infraestructura
El Engine incluye un arnés en memoria en
pkg/engine/memory. Cubre los puertos de almacenamiento: el registro de conectores, el connection store, la caché de esquemas, el result sink y el execution store. No necesitas MongoDB, ni RabbitMQ, ni almacenamiento de objetos. No incluye un CredentialProtector, así que si activas la persistencia cifrada debes aportar el tuyo.
1
Agrega el módulo
2
Construye, planifica, ejecuta
3
Lee el resultado
Aquí no hay ningún sink de resultados conectado, así que el Engine corre en modo directo. Devuelve las filas en línea como JSON indentado, más un digest SHA-256 sobre esos bytes exactos. Los bytes son deterministas: la misma entrada siempre produce el mismo digest.
Camino B — Ejecuta los servicios independientes
Este camino te da la API REST y los jobs asíncronos. Todo corre localmente con Docker Compose.
Prerrequisitos
- Docker y Docker Compose
- Make
- Go, solo para desarrollo. La versión del toolchain está en el
go.moddel repositorio.
Configura y ejecuta
1
Clona el repositorio
2
Crea los archivos de entorno
.env.example de cada componente a .env.3
Genera la clave maestra de cifrado
APP_ENC_KEY en ambos components/manager/.env y components/worker/.env. Los dos servicios necesitan el mismo valor. El Worker la usa para descifrar credenciales y para verificar firmas de mensajes.4
Levanta todo
5
Verifica que la API responde
- API REST:
http://localhost:4006 - Referencia de API en Scalar, cuando
SWAGGER_ENABLED=true:http://localhost:4006/swagger/docs - Gestión de RabbitMQ:
http://localhost:3008
Ejecuta tu primera extracción
Una extracción tiene tres movimientos. Registra una conexión, crea un job y después consulta el job.1. Registra una conexión de base de datos
X-Product-Name nombra el producto dueño de la conexión. Usa el mismo valor en metadata.source del job en el paso 2, porque Fetcher compara los dos.
Fetcher cifra la contraseña antes de guardar el registro. Prueba la conexión antes de usarla:
2. Crea un job de extracción
Nombra los campos que quieres, por tabla y por datasource:202 Accepted con un ID de job. Si envías la misma petición dos veces dentro de 5 minutos, recibes 200 OK con el primer job en lugar de un segundo. Un job fallido no bloquea un reintento.
3. Consulta el job
completed o failed. Al completarse, el Worker ya cifró el resultado en el almacenamiento de objetos y publicó un evento job.completed. Los dos estados anteriores son pending y processing. Jobs de extracción trae el ciclo de vida completo de cuatro estados.
Activa la autenticación con
PLUGIN_AUTH_ENABLED=true. Las peticiones llevan entonces un header Authorization: Bearer <token>. Este quickstart corre con la autenticación desactivada.Próximos pasos
Conceptos centrales
Conexiones, descubrimiento de esquema, jobs, filtros y resultados.
Configuración
Todas las variables de entorno, por componente.
Despliegue
Dependencias, colas, escalado y las verificaciones de arranque que fallan cerrado.
Seguridad
Derivación de claves, rotación, firma de mensajes y validación de host.

