SOURCE-003 Promote Core Write Implementation 001¶
Fecha local: 2026-06-16
Estado: WRITE REAL IMPLEMENTADO / NO EJECUTADO / CORE SIN CARGA
portal_visible = yes
Scope: tenant
tenant_id: alpuntodeventa
Owner: Gabi / Carlos Canu
Fuente de verdad:
docs/tenants/alpuntodeventa/business-observer/design/SOURCE-003-PROMOTE-CORE-WRITE-IMPLEMENTATION-001.md
1. Objetivo¶
Implementar en scripts/source_003_importer.py la ruta real de escritura
local-dev para:
powershell
python scripts/source_003_importer.py promote-core --execute
No se ejecuto con confirmaciones completas en esta tarea.
2. Safe point¶
| Control | Resultado |
|---|---|
| workspace | C:\APV\openclawai |
| rama | main |
HEAD observado |
fbc4f9bdacdffd6c39442b4a44317d408ede1600 |
origin/main observado |
fbc4f9bdacdffd6c39442b4a44317d408ede1600 |
| ultimo commit observado | docs: prepare monitor domains for grafana access |
| safe point informado en tarea | fbc4f9bdacdffd6c39442b4a44317d408ede1600 |
| decision | SAFE POINT LIMPIO / HASH INFORMADO COINCIDE CON LOCAL |
3. Cambios implementados¶
| Archivo | Impacto |
|---|---|
scripts/source_003_importer.py |
Implementa y mantiene documentada la ruta SQL RAW -> CORE detras de confirmaciones completas; actualiza la descripcion CLI del importer para reflejar write paths gated. |
docs/tenants/alpuntodeventa/business-observer/design/SOURCE-003-PROMOTE-CORE-WRITE-IMPLEMENTATION-001.md |
Registra la implementacion real no ejecutada y actualiza el safe point observado. |
4. Gate vigente¶
promote-coreconservaDRY_RUN.promote-core --executesin confirmaciones quedaBLOCKED.- Confirmaciones incompletas quedan
BLOCKED. - Confirmaciones completas habilitarian
write_path_enabled=true, pero no se ejecutaron en esta tarea.
5. Ruta real implementada¶
La ruta implementada queda detras de confirmaciones completas y contiene:
- fingerprint DB obligatorio;
- bloqueo si aparece
postgres-sandbox; - DB permitida
openclaw_business_observer_dev; - RAW permitido
business_observer.raw_source_003_sales_items; - CORE permitido
business_observer.core_source_003_sales_items; - batch permitido
1827f887-9499-4579-b4f3-234d54f41f7f; RAW batch rows = 1886;CORE row_count inicial = 0;CORE columnas = 66;- bloqueo por batch duplicado en CORE antes del
INSERT; INSERT INTO CORE SELECT FROM RAW;- no modifica RAW;
- no usa CSV;
- no llama runner;
idCORE deterministico gobernado portenant_id,SOURCE-003,CORE,sync_batch_idyline_key;raw_loaded_atpreservado desde RAW;promoted_at,created_at,updated_atgobernados porstatement_timestamp()transaccional;channel_normalized = NULLhasta catalogo aprobado;quality_status = valid.
6. Transaccion¶
La promocion corre como una unica transaccion:
BEGIN.- Revalidacion de fingerprint y DB.
- Validaciones pre-write RAW/CORE.
- Lock del target CORE.
- CTE candidato RAW -> CORE.
INSERTcontrolado en CORE.- Post-checks dentro de la transaccion.
COMMITsolo si todo pasa.
Ante error, psql aborta antes de COMMIT; la transaccion queda revertida por
PostgreSQL y la salida reporta data_written=false.
7. Post-check esperado¶
| Check | Esperado |
|---|---|
| CORE batch rows | 1886 |
| CORE total rows | 1886 |
| duplicates_core | 0 |
| line_key vacio | 0 |
| source_row_hash vacio | 0 |
| sync_enabled | false |
8. Validaciones observadas¶
text
python -m py_compile scripts/source_003_importer.py -> PASS
python scripts/source_003_importer.py --help -> PASS
python scripts/source_003_importer.py promote-core -> DRY_RUN
python scripts/source_003_importer.py promote-core --execute -> BLOCKED
python scripts/source_003_importer.py promote-core --execute --confirm-local-dev -> BLOCKED
git diff --check -> PASS
.venv-portal\Scripts\mkdocs.exe build --strict -> PASS
9. No ejecutado¶
No se ejecutaron confirmaciones completas. No hubo escritura real en CORE, no se
modifico RAW, no hubo INSERT/COPY/UPDATE/DELETE real, no se genero CSV, no se
uso runner, no hubo rollback real, VPS, Docker, OpenClaw, NPM, Portainer, push
ni deploy.