Propósito: explicar de forma simple las decisiones principales de diseño para Promotions, incluyendo runtime cloud y runtime on-premise.
Alcance: v1 enfocada en VTQA para cloud/conectados y despliegue BAP on-premise desde VT-FULL.
Fuera de alcance inicial: VTPROD, reemplazo total de Jenkins, cancelación de ejecuciones, links efímeros, sincronización automática on-premise -> Veritran, runners genéricos y rollback equivalente a VT Wizard.
Hay dos realidades operativas:
Clientes conectados
VT-FULL y/o ejecuta en ambientes accesibles.Clientes on-premise / bancarios aislados
VT-FULL.bapProps y los envía al componente que hoy conocemos como BAP Deployer.Problemas actuales:
La iniciativa Promotions ordena esto con dos runtimes:
Promotions Cloud Runtime
Promotions On-Premise Runtime
Ambos se conectan por el contrato portable:
VT-FULL-<IMPLENAME>.tar.gz
Promotions es una iniciativa para orquestar implementaciones de forma controlada.
No es solo una pantalla cloud. Tendrá dos runtimes:
1. Promotions Cloud / Veritran-side
- corre dentro de Workspace del lado Veritran
- integra BAR, Nextcloud y Jenkins
- crea implementación
- genera VT-FULL
- ejecuta en clientes conectados
- permite descargar VT-FULL
2. Promotions On-Premise
- corre dentro del banco, instalado por ambiente
- incluye UI propia
- incluye backend on-premise propio
- el backend actual/provisional es BAP Deployer
- incluye DB SQL local
- importa VT-FULL
- extrae BAP + bapProps
- permite revisar BAP
- permite ajustar variables de entorno de bapProps
- despliega localmente
- guarda historial local
Porque los clientes conectados y on-premise tienen restricciones distintas.
En clientes conectados, Promotions puede orquestar:
BAR -> Nextcloud -> Jenkins -> VTQA
En on-premise, asumimos aislamiento bancario:
sin entrada desde Veritran
sin salida confiable a internet
infraestructura cerrada
Decisión: Promotions tendrá dos runtimes unidos por VT-FULL.
El paquete portable:
VT-FULL-<IMPLENAME>.tar.gz
Decisión: VT-FULL es la frontera entre ambos mundos.
Cloud Runtime no necesita entrar al banco.
On-Premise Runtime no necesita salir a Veritran.
Porque Jenkins debe ser backend técnico, no la experiencia principal.
Decisión: Promotions Cloud será la interfaz de orquestación. Jenkins queda como motor técnico.
Porque generar y ejecutar son responsabilidades distintas.
Nuevo modelo:
Generate VT-FULL Job
-> toma carpeta fuente
-> genera VT-FULL
Execute VT-FULL Job
-> toma VT-FULL ya generado
-> ejecuta ese paquete
Decisión: la ejecución debe apuntar a un paquete ya generado.
VT-FULL.Desde BAR.
BAR devuelve:
BAP .tar.gz
bapProps
Promotions Cloud copia ambos a:
<CLIENTE>/VTQA-PACKAGES/<IMPLENAME>/IMPLE_VTNET_OBJECTS/
El usuario solo puede editar steps2run.vt.
Es la variante local de Promotions que corre dentro del banco.
Incluye:
Promotions On-Premise UI
Promotions On-Premise Backend
actual/provisional: BAP Deployer
DB SQL local
implementación inicial: SQLite
diseño conceptual: agnóstico al motor
Decisión: el componente que hoy llamamos BAP Deployer debe entenderse como el backend de Promotions On-Premise, aunque probablemente se renombre.
No necesariamente.
Nueva premisa:
Promotions On-Premise se instalará por ambiente.
Cada ambiente tendrá su propia instancia:
Ambiente A:
UI + Backend + DB local
Ambiente B:
UI + Backend + DB local
Esto implica:
bapProps resuelto por ambiente.Permite desplegar solo el BAP con una UI local, sin pasar por todo VT Wizard.
Flujo:
Importar VT-FULL
Ver contenido BAP relevante
Ver overview del BAP
Editar variables de entorno de bapProps
Desplegar directo con Promotions On-Premise Backend
Guardar historial local
Solo importa:
VT-FULL-<IMPLENAME>.tar.gz
No importa BAP suelto en v1.
Contenido relevante:
BAP .tar.gz
múltiples bapProps
manifest del BAP
bapProps correcto?El VT-FULL puede contener múltiples bapProps.
Promotions On-Premise Backend resolverá cuál corresponde según:
ambiente
variables de entorno locales
configuración runtime del ambiente
La UI mostrará el bapProps efectivo o la sección editable una vez resuelto.
bapProps edita el usuario?Solo la sección de variables de entorno, como formulario:
clave: valor
No habrá editor JSON libre.
VT-FULL se modifica?No.
El artefacto importado es inmutable.
Se guarda:
VT-FULL.bapProps original.effective bapProps.En DB SQL local por ambiente.
Diseño:
Agnóstico al motor SQL.
Implementación inicial: SQLite.
Mínimo recomendado:
packageName
packageHash
bapName
bapVersion
bapHash
selectedBapProps
effectiveBapPropsHash
modifiedEnvVars
status
startedAt
finishedAt
deployedBy
logs
resultSummary
rollbackMetadata, si se define estrategia futura
Este es un punto crítico.
VT Wizard actualmente cubre rollback. Si Promotions On-Premise despliega directamente, no debemos perder esa capacidad a largo plazo.
Decisión v1: rollback equivalente a VT Wizard queda fuera de alcance inicial, salvo decisión explícita.
Implicación: Promotions On-Premise puede aportar valor para despliegues BAP directos, pero no debe presentarse como reemplazo completo de VT Wizard en escenarios donde rollback robusto sea obligatorio.
La UI on-premise vive dentro de Workspace on-premise.
Permisos sugeridos:
promotion-onprem:view
promotion-onprem:import-package
promotion-onprem:edit-env-vars
promotion-onprem:deploy
promotion-onprem:view-history
promotion-onprem:view-logs
Como solución instalable por ambiente.
Incluye:
Promotions On-Premise UI
Promotions On-Premise Backend
actual/provisional: BAP Deployer
DB SQL local
SQLite inicial
No asumimos que BAP Deployer ya existe en todos los ambientes.
| Pregunta | Decisión |
|---|---|
| ¿Promotions es solo cloud? | No. Tiene runtime cloud y runtime on-premise. |
| ¿Qué une ambos mundos? | VT-FULL-<IMPLENAME>.tar.gz. |
| ¿Dónde vive Promotions Cloud? | En Workspace/Veritran-side. |
| ¿Dónde vive Promotions On-Premise? | Dentro del banco, instalado por ambiente. |
| ¿Qué incluye On-Premise? | UI + Backend + DB SQL local. |
| ¿Cómo se llama el backend on-premise hoy? | BAP Deployer, pero probablemente será renombrado. |
| ¿DB local? | SQL agnóstica; implementación inicial SQLite. |
| ¿Se reemplaza Jenkins? | No en v1. |
| ¿Cuántos jobs Jenkins nuevos habrá? | Dos: Generate VT-FULL y Execute VT-FULL. |
| ¿Qué edita el usuario cloud? | Solo steps2run.vt. |
| ¿Qué importa on-premise? | Solo VT-FULL. |
| ¿Qué edita el usuario on-premise? | Variables de entorno dentro de bapProps. |
| ¿Se modifica el artefacto original? | No, se trata como inmutable. |
| ¿Cómo despliega on-premise? | Directo contra Promotions On-Premise Backend. |
| ¿Dónde queda historial on-premise? | DB SQL local por ambiente. |
| ¿Rollback? | Pendiente crítico; fuera de alcance v1 salvo decisión explícita. |
| ¿Integridad/firma? | Mejora recomendada; mínimo hashes si es viable. |
IMPLENAME.Generate VT-FULL Job.Execute VT-FULL Job.packagePath, packageName + repoClient, etc.bapProps.Promotions tiene dos modos de operación:
Promotions Cloud Runtime
Promotions On-Premise Runtime
El runtime cloud automatiza creación, empaquetado y ejecución para clientes conectados.
El runtime on-premise vive dentro del banco, instalado por ambiente, e incluye UI, backend y DB SQL local. El backend actual/provisional es BAP Deployer, pero conceptualmente será el backend de Promotions On-Premise y probablemente será renombrado.
El contrato entre ambos mundos es:
VT-FULL-<IMPLENAME>.tar.gz
La arquitectura mejora la experiencia cloud y on-premise sin romper el aislamiento bancario, dejando claro que rollback equivalente a VT Wizard queda como pendiente crítico antes de reemplazar completamente ese flujo.