Files
dtic-DIIAA/docs/ambito/dtic-BITACORAs/P2603.00_Migracion-DB-First.md
T

143 lines
5.1 KiB
Markdown

# Plan: Migración a Bitácoras Web (DB-First)
> Manifiesto de Proyecto | Referencia: [`adn/07_proyectos.md`](../../../adn/07_proyectos.md)
## Identificación
| Campo | Valor |
| :--- | :--- |
| **Código** | P2603.00 |
| **Nombre** | Migración a Bitácoras Web (DB-First) |
| **Estado** | ✅ Completado |
| **Inicio** | 05/03/2026 |
| **Fin** | 12/03/2026 |
## Objetivo
Dejar de editar manualmente archivos `.md`. La Web y los comandos ADN escriben en la DB; el `.md` se genera automáticamente como respaldo.
## Stakeholders
| Rol | Persona | Visibilidad |
| :--- | :--- | :--- |
| **Responsable Técnico** | Lic. Ricardo MONLA | Operador directo |
| **Dirección de TIC** | (Jerárquico superior) | Dashboard asíncrono |
## Nodos Involucrados
### Nodos Exclusivos (Core)
| Nodo | IP | Rol en el Proyecto |
| :--- | :--- | :--- |
| [**srv-ns8**](../../../nodos/srv-ns8.md) | `10.0.10.8` | Servidor de la aplicación web (Docker) |
## Herramientas
| Herramienta | Uso |
| :--- | :--- |
| **React 18 + TypeScript** | Frontend SPA (bitácora web) |
| **Node.js + Express** | Backend API REST |
| **PostgreSQL 15** | Base de datos relacional |
| **Docker Compose** | Orquestación de servicios |
| **Ruby CLI (ADN)** | Comandos `db migrar:md`, `db exportar:md`, `db verificar` |
## Hitos Clave
| Fecha | ID | Estado | Hito |
| :--- | :--- | :---: | :--- |
| 05/03 | A1-A6 | ✅ | Etapa A: Web puede reemplazar al MD (esquema DB, API, UI gestión, formulario, rollover) |
| 08/03 | B1-B3 | ✅ | Etapa B: Comandos ADN hablan con DB (`inicio`, `cierre`, `backup` → DB-First) |
| 10/03 | C1-C2 | ✅ | Etapa C: MD se genera desde DB (`exportar:md`, exportación masiva) |
| 12/03 | D1-D3 | ✅ | Etapa D: Verificación y cierre (migración histórica, auditoría, header automático) |
---
## Progreso
```
Fase A: ██████████ 100% Web reemplaza al MD
Fase B: ██████████ 100% ADN habla con DB
Fase C: ██████████ 100% MD se genera desde DB
Fase D: ██████████ 100% Verificación y Cierre
```
---
---
## Detalle de Etapas
### Etapa A — La Web reemplaza al MD (Entrada de datos)
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| A1 | **Esquema DB: gestion + resumen_nodos** | Tablas para Pendientes, En Proceso y Resumen Integral | ✅ |
| A2 | **API: endpoints gestion y resumen** | Backend para crear/editar/eliminar desde la Web | ✅ |
| A3 | **UI: Panel de Gestión** | Editar Pendientes y En Proceso desde el Dashboard | ✅ |
| A4 | **UI: Editor Resumen Integral** | Editar resumen por nodo desde el Dashboard | ✅ |
| A5 | **UI: Formulario de Entradas** | Crear entradas I-F-D-E desde la Web | ✅ |
| A6 | **Rollover automático** | Pendientes activos pasan al día siguiente (vía `activo=true`) | ✅ |
### Etapa B — Comandos ADN hablan con la DB (Automatización)
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| B1 | **Refactor inicio.rb → DB-First** | `adn inicio de jornada` escribe en DB | ✅ |
| B2 | **Refactor cierre.rb → DB-First** | `adn cierre de jornada` escribe en DB | ✅ |
| B3 | **Refactor backup → DB** | Registrar eventos de backup como entradas en DB | ✅ |
### Etapa C — MD se genera desde la DB (Respaldo)
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| C1 | **Exportador Ruby: md_exporter.rb** | `adn db exportar:md FECHA` genera MD desde DB | ✅ |
| C2 | **Exportación masiva** | `adn db exportar:md --todo` regenera todos los MDs | ✅ |
### Etapa D — Verificación y cierre (Confianza)
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| D1 | **Migración histórica** | `adn db migrar:md --todo` importa historial | ✅ |
| D2 | **Verificación de cobertura** | `adn db verificar` audita MD ↔ DB | ✅ |
| D3 | **Desactivar edición manual** | Header `<!-- GENERADO AUTOMÁTICAMENTE -->` en MDs exportados | ✅ |
---
## Comandos ADN (Referencia)
```bash
# Flujo diario (DB-First)
./adn/tools/run db evento:crear --nodo NODO --inicio HH:MM --descripcion "..."
./adn/tools/run db evento:listar --desde FECHA --detalle
# Importar MD existente → DB
./adn/tools/run db migrar:md FECHA [--sobrescribir]
./adn/tools/run db migrar:md --todo [--sobrescribir]
# Exportar DB → MD (respaldo)
./adn/tools/run db exportar:md FECHA
./adn/tools/run db exportar:md --todo
# Auditoría
./adn/tools/run db verificar
./adn/tools/run db estadisticas
```
---
## Estado: COMPLETO ✅
| Etapa | Progreso |
| :--- | :---: |
| A — Web reemplaza al MD | 6/6 ✅ |
| B — ADN habla con DB | 3/3 ✅ |
| C — MD se genera desde DB | 2/2 ✅ |
| D — Verificación y cierre | 3/3 ✅ |
> **Cobertura de migración:** 88.9% (16/18 bitácoras con entradas). Las 2 restantes son días sin actividades detalladas.
## Referencias
- **ADN**: [Ontología](../../../adn/01_ontologia.md) | [Proyectos](../../../adn/07_proyectos.md) | [Bitácora](../../../adn/02_bitacora.md)
- **Proyecto relacionado**: [P2603 Bitácoras](../P2603_Bitacoras/P2603_bitacoras.md)
- **Bitácoras**: Consultar en DB vía `./adn/tools/run db evento:listar --detalle`