# IMPLEMENTATION_PLAN

## Plan vigente despues de etapa D

Implementado: adaptador de creacion conectado pero bloqueado, centros remitentes,
trabajador acotado de GetExpCli, importador revisable y pausado, cuotas, evidencia,
conciliacion y nueva navegacion administrativa. Todo probado con mocks.

Orden siguiente, sujeto a autorizacion:
1. Revision humana del puerto 80, remitente/cuenta y confirmacion de datos.
2. Autorizar una prueba real y activar de forma controlada los bloqueos y
   permisos minimos del servicio, sin alterar contratos ni secretos.
3. Una llamada de creacion y revision de respuesta, sin acciones auxiliares.
4. Autorizar un lote pequeno de conocidas/importacion, con cuota y resultados
   revisados antes de ampliar. Meses recientes primero, objetivo agosto de 2025.
5. Validar proyeccion de estados/incidencias y calidad de busqueda local.
6. Preparar sincronizacion regular solo tras delimitar cobertura y costes.
7. POD progresivo bajo autorizacion separada, nunca descarga indiscriminada.
8. Cerrar dia solo cuando exista contrato suficientemente validado.

La enumeracion por fechas sigue pendiente de GLS. El importador no es un
sustituto completo ni demuestra cobertura de toda la cuenta.

## Plan historico previo

## Etapa C entregada

1. JSON documental disponible sobre copias sanitizadas, con limites y hashes.
2. Interfaz local 80: borradores, validacion, revision y resultado simulado.
3. Busqueda PostgreSQL, filtros combinables, paginacion y ficha documental.
4. Administracion 88 inventariada, menu preservado, preparacion de importacion,
   sincronizacion y POD; edicion de cuotas con permisos y auditoria.
5. Migracion 017, backup restaurado y pruebas sinteticas sin GLS.

## Revision humana inmediata

- Comprobar el formulario, las combinaciones habituales de servicio y la
  presentacion de remitente/destinatario en escritorio y movil.
- Crear un borrador con datos ficticios, revisarlo y confirmar SOLO simulacion.
- Revisar resultado, ficha y etiqueta no operativa. No imprimirla.
- Buscar en Datos simulados y combinar filtros. Datos operativos permanece
  vacio hasta que haya persistencia/importacion real autorizada.
- Revisar ADMIN88_INVENTORY y aprobar/rechazar la propuesta de navegacion.

No compartir passwords ni cookies para esa revision. El puerto 80 usa las
cuentas existentes, pero requiere su propia sesion. No hay cuenta nueva.

## Siguiente incremento: preparacion real controlada

El bloqueo real sigue activo. Antes de levantarlo, con nueva autorizacion:

1. Revisar datos y casos habituales, incluyendo centros remitentes persistentes
   configurables; no convertir destinatarios de pruebas en configuracion.
2. Implementar el adaptador de sender sobre IClientesSoapClient existente,
   conservando timeout, TLS, una llamada, sin redirecciones ni retry.
3. Mapear SoapCapture a recibo duradero y normalizador; no duplicar protocolos.
4. Resolver UID solo internamente por cuenta/entorno, nunca en borrador/HTML.
5. Asociar ambitos de cuota correctos para proveedor/API/credencial/cuenta.
6. Exigir permiso, CSRF, revision vigente y confirmacion EXPEDICION REAL.
7. Mantener intento unico y conciliacion de resultados ambiguos sin reenvio.
8. Primera prueba real independiente, autorizada, con contador y evidencia.

La tabla y el coordinador no requieren redisenarse para conectar ese sender.
No se promete activar la produccion mediante un checkbox de esta entrega.

## Importacion y sincronizacion

Continuar con lotes recientes pequenos previamente revisados. Implementar
el worker de lecturas solo tras autorizar su consumo, con pausa/reanudacion,
presupuesto, prioridad interactiva y checkpoints idempotentes. GetExpCli
recupera conocidos; no demuestra enumeracion ni integridad de un periodo.

Actualizar acontecimientos de activos/incidencias, conservar revisiones,
fechas y fuente, y mostrar ultima sincronizacion y cobertura. Usar PostgreSQL
al buscar, incluso sin conexion GLS. No ocultar fallos parciales.

POD: solo conocidos entregados, sin copia existente vigente y con permiso/
cuota. Mantener original cifrado y metadatos, sin descarga masiva automatica.

La investigacion de GetEnvios sigue paralela: pedir contrato IN/OUT y
garantia de lectura, filtros, paginacion, cobertura e historico. No lanzar
payloads inventados ni detener por ello el desarrollo local.

## Administracion

Tras revisar el inventario, reagrupar navegacion sin eliminar rutas ni
capacidades: Panel, Transportistas, Sincronizacion, Administracion,
Diagnostico y Documentacion. Homogeneizar permisos legacy antes de ampliar
usuarios de lectura. No crear una segunda administracion.

## Cerrar dia

No implementado. Requiere contrato oficial y efectos validados. No equiparar
GetManifiesto con un cierre ni inferir semantica por nombre del WSDL.
No se ejecuta una operacion desconocida para descubrirla.


## Referencia historica

# IMPLEMENTATION_PLAN

## Etapa C entregada

1. JSON documental disponible sobre copias sanitizadas, con limites y hashes.
2. Interfaz local 80: borradores, validacion, revision y resultado simulado.
3. Busqueda PostgreSQL, filtros combinables, paginacion y ficha documental.
4. Administracion 88 inventariada, menu preservado, preparacion de importacion,
   sincronizacion y POD; edicion de cuotas con permisos y auditoria.
5. Migracion 017, backup restaurado y pruebas sinteticas sin GLS.

## Revision humana inmediata

- Comprobar el formulario, las combinaciones habituales de servicio y la
  presentacion de remitente/destinatario en escritorio y movil.
- Crear un borrador con datos ficticios, revisarlo y confirmar SOLO simulacion.
- Revisar resultado, ficha y etiqueta no operativa. No imprimirla.
- Buscar en Datos simulados y combinar filtros. Datos operativos permanece
  vacio hasta que haya persistencia/importacion real autorizada.
- Revisar ADMIN88_INVENTORY y aprobar/rechazar la propuesta de navegacion.

No compartir passwords ni cookies para esa revision. El puerto 80 usa las
cuentas existentes, pero requiere su propia sesion. No hay cuenta nueva.

## Siguiente incremento: preparacion real controlada

El bloqueo real sigue activo. Antes de levantarlo, con nueva autorizacion:

1. Revisar datos y casos habituales, incluyendo centros remitentes persistentes
   configurables; no convertir destinatarios de pruebas en configuracion.
2. Implementar el adaptador de sender sobre IClientesSoapClient existente,
   conservando timeout, TLS, una llamada, sin redirecciones ni retry.
3. Mapear SoapCapture a recibo duradero y normalizador; no duplicar protocolos.
4. Resolver UID solo internamente por cuenta/entorno, nunca en borrador/HTML.
5. Asociar ambitos de cuota correctos para proveedor/API/credencial/cuenta.
6. Exigir permiso, CSRF, revision vigente y confirmacion EXPEDICION REAL.
7. Mantener intento unico y conciliacion de resultados ambiguos sin reenvio.
8. Primera prueba real independiente, autorizada, con contador y evidencia.

La tabla y el coordinador no requieren redisenarse para conectar ese sender.
No se promete activar la produccion mediante un checkbox de esta entrega.

## Importacion y sincronizacion

Continuar con lotes recientes pequenos previamente revisados. Implementar
el worker de lecturas solo tras autorizar su consumo, con pausa/reanudacion,
presupuesto, prioridad interactiva y checkpoints idempotentes. GetExpCli
recupera conocidos; no demuestra enumeracion ni integridad de un periodo.

Actualizar acontecimientos de activos/incidencias, conservar revisiones,
fechas y fuente, y mostrar ultima sincronizacion y cobertura. Usar PostgreSQL
al buscar, incluso sin conexion GLS. No ocultar fallos parciales.

POD: solo conocidos entregados, sin copia existente vigente y con permiso/
cuota. Mantener original cifrado y metadatos, sin descarga masiva automatica.

La investigacion de GetEnvios sigue paralela: pedir contrato IN/OUT y
garantia de lectura, filtros, paginacion, cobertura e historico. No lanzar
payloads inventados ni detener por ello el desarrollo local.

## Administracion

Tras revisar el inventario, reagrupar navegacion sin eliminar rutas ni
capacidades: Panel, Transportistas, Sincronizacion, Administracion,
Diagnostico y Documentacion. Homogeneizar permisos legacy antes de ampliar
usuarios de lectura. No crear una segunda administracion.

## Cerrar dia

No implementado. Requiere contrato oficial y efectos validados. No equiparar
GetManifiesto con un cierre ni inferir semantica por nombre del WSDL.
No se ejecuta una operacion desconocida para descubrirla.


## Referencia historica de preparacion

# Preparacion de etapa C: Grabar envios

Estado: preparada para implementar, no activada. No se ha iniciado el
servicio operativo 80 ni se ha creado ninguna expedicion en esta etapa.

## Secuencia tecnica propuesta

1. Formulario autenticado del puerto 80, transportista/cuenta explicitos,
   remitente seleccionado y datos revisables de destinatario y servicio.
2. Validacion local con el contrato GLS preservado. No inventar campos ni
   hacer llamadas para validar un borrador al abrir una pagina.
3. Guardar borrador de negocio cifrado mediante prepare_operation; generar
   clave idempotente y referencia unica por cuenta. Nunca incluir UID en
   ese borrador. Separar permiso de grabacion del de consulta/auditoria.
4. Pantalla de confirmacion: PRODUCCION - EXPEDICION REAL, cuenta, servicio,
   bultos, peso, reembolso, seguro y cualquier adicional. CSRF y nonce.
5. Resolucion de secreto solo dentro del adaptador de transporte. Comprobar
   entorno de cuenta y referencias TEST/PRODUCCION, sin devolver secreto.
6. Seleccionar todos los ambitos de cuota y actor. La cuenta no puede
   elegir ambitos ajenos para evitar limites. Operacion interactiva P0.
7. Confirmar flags explicitos y reservar; escribir diario/dispatch cifrado.
8. Enviar GrabaServicios exactamente una vez, timeout y TLS verificados,
   sin redirecciones ni retry. Reutilizar cliente SOAP validado, no otro.
9. Convertir la captura HTTP completa existente a RemoteReceipt, conservando
   request_sent, complete, errores de lectura, timestamp y headers.
10. Guardar original cifrado, contabilizar una vez y normalizar en un
    adaptador GLS con codigos y fechas de su contrato, no en el nucleo.
11. Ingestar expedicion, identificadores, referencias, bultos, partes,
    eventos y etiquetas de la misma respuesta en la transaccion local.
12. Si la persistencia falla, mostrar conciliacion requerida. Replay local
    del recibo conservado, sin invocar GLS. Si no existe recibo recuperable,
    revisar manualmente la consulta contractual por identificador/referencia
    y solicitar permiso para una lectura separada. Nunca repetir el alta.

## Validaciones antes de activar

- Adaptador de respuesta probado con fixtures sinteticos de SOAP 1.2,
  fault, errores de negocio, HTML/500, body incompleto y exito con etiqueta.
- Compatibilidad con el laboratorio anterior, sin modificar originales.
- Ambitos de cuotas mapeados a credencial/familia real, no solo a usuario.
- Control editable de limites y excepciones en 88, permiso especifico y
  auditoria. No aceptar un booleano de bypass enviado por el navegador.
- Reconciliacion visible y autorizada, sin accion de reenvio automatica.
- Rutas del puerto 80 autenticadas y revisadas antes de publicarlas.
- Nueva autorizacion humana para la primera ejecucion del flujo nuevo.

## Etapas paralelas y posteriores

Buscar envios: leer PostgreSQL, sin GLS al buscar; paginacion y filtros
combinables de fechas, estado, incidencias, COD, cuenta y transportista.
El nucleo ya ofrece una consulta acotada por fecha/estado/destinatario,
pero no sustituye todavia el buscador operativo completo.

Importador temporal 88: texto pegado de Extranet, candidatos validados,
revision de ambiguedades, lotes pequenos, recientes a antiguos. Jobs y
checkpoints disponibles; no hay importacion completa sin una fuente de
descubrimiento que demuestre cobertura. Un GetExpCli de conocido no lista.

POD: almacenar documento original cifrado y metadatos; descargar solo si
procede, falta o caduca, con cuota y permiso. No descargar masivamente.

Cerrar dia: bloqueado hasta disponer del contrato oficial y efectos
operativos acreditados. No sustituir por GetManifiesto ni inventar XML.

## Dependencias abiertas

Contrato de enumeracion por fechas, profundidad historica, cierre y cuotas
iClientes siguen pendientes de GLS. No impiden construir el repositorio,
pero si afirmar sincronizacion completa o cierre operativo validado.


## Plan historico completo

# Plan de implementacion, pendiente de aprobacion

No ejecutar al terminar la auditoria. Cada fase requiere alcance, backup,
tests, documentacion, configuracion externa, rollback y criterios de salida.
No nuevos transportistas, banca, facturacion o SMS en este plan inicial.

| Fase | Dependencias y trabajo propuesto | Criterio de aceptacion |
|---|---|---|
| 0. Cerrar incertidumbres | Recibir IN/OUT listado, alcance historico, POD y limites; aprobar R1 y luego bloques historicos si procede. | Capacidad documentada y prueba minima real por autorizacion, o limitacion/fallback oficial claramente aceptados. |
| 1. Proteccion y release | Backup consistente BD+activos+claves, restauracion de prueba autorizada, dependencias inventariadas y migraciones separadas del arranque. | Recuperacion verificada y rol/runtime definido sin cambiar otras VMs sin permiso. |
| 2. Modelo historico | Extender nucleo existente con cuentas, IDs, referencias, snapshots, eventos/revisiones, operaciones y documentos privados minimos. | Migraciones aprobadas/testadas, aislamiento cuenta/entorno, sin destruir laboratorio/originales. |
| 3. Ingesta offline | Reprocesar evidencias existentes autorizadas con parser versionado y cuatro ejes; no llamadas externas para reimportar. | Sin duplicados, PII autorizada completa, replay tras fallo BD, historial inmutable; TH-P-001 no termina ENTREGADA. |
| 4. Ejecutor y consumo | Cuenta/API/entorno, reservas P0-P3, captura de cada HTTP, errores y lease/backoff controlado. | No exceso de reserva, OAuth contado, fallo parcial sin retry de escritura, estado desconocido conciliable. |
| 5. Lectura/importacion inicial | Contrato/semillas oficiales; primer job20 configurable solo datos/referencias, sin POD. | Datos y todos los eventos persistidos, checkpoint/reanudacion, informe de cobertura y consumo real. |
| 6. API intranet y busqueda80 | Contratos v1/RBAC/contactos, API de lectura y UI PC sobre mismo repositorio; desplegar80 solo con aprobacion de red/HTTP/seguridad. | 88 intacto, ninguna ruta tecnica expuesta80, sin GLS al filtrar/paginar, funciona sin Internet con DB disponible. |
| 7. Seguimiento continuo | Cadencias/ventanas acordadas, activos/incidencias/incompletos, terminales y refresh manual. | Sincronizacion presupuestada, circuit breaker, sin perdida ni reinicio de contador. |
| 8. POD progresivo | Primera pasada completada, formato y alcance probados, politicas privadas y cuota aprobadas. | Descarga gradual, hash/validacion, sin duplicar verificados, control de enlaces y todos los HTTP auditados. |
| 9. Escritura operativa | Grabar envios/CrearExpedicion intranet, centros remitentes, revision/confirmacion e idempotencia; Anula reusable solo en subfase autorizada. | Un solo envio ante doble POST, respuesta ambigua no reintentada, produccion inequívoca y credenciales aisladas. |
| 10. Cerrar dia complementario | Contrato domestico de cierre/manifiesto y necesidad de negocio expresamente confirmados. | Ultimo modulo, no dependencia normal de alta/seguimiento; ninguna prueba de cierre sin permiso especifico. |

Fases 0 y preparacion de contratos/modelo pueden avanzar documentalmente
en paralelo. No bloquear todo el producto esperando ShipIT: queda fuera de
la ruta principal. El repositorio y la ingesta offline no inventan enumeracion;
el importador historico completo necesita realmente IDs o listado oficial.

## Que implementar primero, tras aprobar

Primero proteccion recuperable y diseno de identidad/estados/ingesta local,
mientras se obtiene el contrato de descubrimiento. No empezar por una UI
que llame GLS en cada filtro ni por descargas masivas de POD. El primer
incremento operativo debe demostrar persistencia de conocidos y consumo
correcto antes de automatizar historico o ampliar escrituras.

## Calidad transversal

Tests sinteticos para cifrado/permisos, parser robusto/500/Fault, scope de
cuenta, dedup/revisiones, referencias heredadas, estados cruzados, idempotencia,
backoff/cuota, doble worker, documentos inmutables, cookies por interfaz,
API consumidor y restauracion. Pruebas externas separadas y contadas.

No reutilizar UID real en unit tests ni versiones crudas de documentos con
credenciales. Validar datos completos en parser privado y solo vistas sanitizadas
en logs. Changelog/README y runbooks se actualizan al implementar, no mediante
afirmaciones de funcionalidades aun no construidas.

## Aprobaciones pendientes antes de actuar

Elegir bloque de pruebas (recomendado R1: una GetExpCli reciente), aprobar
politica de datos/contactos y autenticacion intranet, contrato historico,
plan backup/restore, schema y criterios de roles/puertos. Esta auditoria no
autoriza esas actuaciones ni genera tareas programadas.


# PROJECT_STATUS

Fecha: 06/11/2026. Etapa A: canal documental de auditoria.

## Alcance

Se prepara un servicio independiente en puerto 85 y su control administrativo
en puerto 88. Publicacion anonima autorizada expresamente para copias tecnicas
revisadas. No es un acceso anonimo a TRANSPORT HUB ni una cuenta de ChatGPT.

El canal estara deshabilitado al entregar. La habilitacion no solicita datos a GLS.
La publicacion externa th85.aeizoon.com corresponde al responsable del proxy.
No se ha modificado el proxy ni se han creado expediciones o descargado POD.

## Funciones de etapas posteriores

- B: evolucion del unico repositorio PostgreSQL, cuentas e identidad, eventos y normalizacion.
- C: Grabar, Buscar y ficha en puerto 80, reutilizando los conectores existentes.
- D: cuotas, importador por texto Extranet, trabajos y sincronizacion en puerto 88.
- E: recuperacion progresiva de documentos y POD con presupuesto validado.
- F: Cerrar dia visible pero bloqueado mientras falte contrato oficial.

El puerto 80 no se considera implementado con este hito. El importador no
se ha ejecutado y no existe aun enumeracion API por cuenta/fechas acreditada.
La busqueda futura sera local y diferenciara cobertura completa de parcial.

## Entrega incremental

El resultado de tests y las verificaciones reales de despliegue se registran
en TEST_RESULTS e IMPLEMENTATION_LOG antes de dar por aceptada esta etapa.
No se avanzara a llamadas GLS reales por el mero hecho de aprobar el desarrollo.

## Resultado tecnico del despliegue

Servicio documental activo en 85, deshabilitado al terminar. Panel 88
con health/ready HTTP 200. Doce documentos completos, 26 representaciones
y 29 archivos permitidos contando indice, manifiesto y CSS.

Activacion/desactivacion del motor comun comprobada realmente por HTTP;
el control web tiene pruebas de administradores, CSRF y renderizado. La
validacion con una sesion humana normal del 88 corresponde a Juan; no se
ha suplantado una sesion ni creado una cuenta para la prueba.

Preparado para configurar la publicacion externa por el responsable del
proxy. Esa publicacion HTTPS y la ausencia de cache intermedia todavia
deben comprobarse desde fuera; no se presentan como realizadas.
