143 lines
5.1 KiB
Markdown
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`
|