SOURCE-003 Mart Local Dev Runtime Readonly Audit 001¶
Fecha local: 2026-06-17 00:00:00 -03:00
Estado: PASS / READ-ONLY RUNTIME AUDIT
portal_visible = yes
Scope: tenant
tenant_id: alpuntodeventa
Owner: Gabi / Carlos Canu
1. Objetivo¶
Confirmar en PostgreSQL local-dev, con ejecucion read-only, que el estado
runtime de SOURCE-003 MART sigue consistente despues del DDL MART forward.
Destino autorizado:
text
database: openclaw_business_observer_dev
schema: business_observer
Restricciones respetadas:
- solo
SELECT - sin
CREATE,ALTER,DROP - sin
INSERT,COPY,UPDATE,DELETE - sin rollback
- sin cambios en Python
- sin tocar VPS, Docker, OpenClaw, NPM, Portainer, push ni deploy
2. Safe point¶
| Control | Resultado |
|---|---|
| rama | main |
git status --short inicial |
sin salida |
git rev-parse HEAD inicial |
aa6d9551b4826bdceca4936f7bfaa36aab5d93c5 |
git rev-parse origin/main inicial |
aa6d9551b4826bdceca4936f7bfaa36aab5d93c5 |
| ultimo commit observado | aa6d955 docs: fix safe point 040 ladirecta observability runbook |
| decision | SAFE POINT PASS |
3. Herramienta y conexion¶
Herramienta validada y usada:
text
C:\Program Files\PostgreSQL\15\bin\psql.exe
Comando operativo de referencia sin secretos:
powershell
C:\Program Files\PostgreSQL\15\bin\psql.exe -X -w -v ON_ERROR_STOP=1 -P pager=off -F "|" -A -t -d openclaw_business_observer_dev -c "<SELECT_AUTORIZADOS>"
Notas:
| Control | Resultado |
|---|---|
psql 15 disponible |
SI |
psql 16 requerido |
NO |
| DB verificada | openclaw_business_observer_dev |
| credenciales impresas | NO |
| passwords/tokens impresos | NO |
login usado para psql |
login administrativo local existente de PostgreSQL |
roles openclaw_bo_* |
siguen documentados como NOLOGIN |
4. SELECT ejecutados¶
Se ejecutaron unicamente estos controles SELECT:
```sql SELECT current_database();
SELECT to_regclass('business_observer.raw_source_003_sales_items') AS raw_final; SELECT to_regclass('business_observer.core_source_003_sales_items') AS core_final; SELECT to_regclass('business_observer.source_003_sales_items') AS pilot_table; SELECT to_regclass('business_observer.mart_source_003_sales_daily') AS mart_daily; SELECT to_regclass('business_observer.mart_source_003_sales_by_seller') AS mart_seller; SELECT to_regclass('business_observer.mart_source_003_sales_by_customer') AS mart_customer; SELECT to_regclass('business_observer.mart_source_003_sales_by_sku') AS mart_sku;
SELECT count() FROM business_observer.raw_source_003_sales_items; SELECT count() FROM business_observer.core_source_003_sales_items; SELECT count() FROM business_observer.mart_source_003_sales_daily; SELECT count() FROM business_observer.mart_source_003_sales_by_seller; SELECT count() FROM business_observer.mart_source_003_sales_by_customer; SELECT count() FROM business_observer.mart_source_003_sales_by_sku; ```
5. Tablas verificadas¶
| Control | Observado | Esperado | Resultado |
|---|---|---|---|
current_database() |
openclaw_business_observer_dev |
openclaw_business_observer_dev |
PASS |
raw_final |
business_observer.raw_source_003_sales_items |
existe | PASS |
core_final |
business_observer.core_source_003_sales_items |
existe | PASS |
pilot_table |
business_observer.source_003_sales_items |
existe | PASS |
mart_daily |
business_observer.mart_source_003_sales_daily |
existe | PASS |
mart_seller |
business_observer.mart_source_003_sales_by_seller |
existe | PASS |
mart_customer |
business_observer.mart_source_003_sales_by_customer |
existe | PASS |
mart_sku |
business_observer.mart_source_003_sales_by_sku |
existe | PASS |
6. Row counts¶
| Tabla | Row count | Esperado | Resultado |
|---|---|---|---|
business_observer.raw_source_003_sales_items |
1886 |
1886 |
PASS |
business_observer.core_source_003_sales_items |
1886 |
1886 |
PASS |
business_observer.mart_source_003_sales_daily |
0 |
0 |
PASS |
business_observer.mart_source_003_sales_by_seller |
0 |
0 |
PASS |
business_observer.mart_source_003_sales_by_customer |
0 |
0 |
PASS |
business_observer.mart_source_003_sales_by_sku |
0 |
0 |
PASS |
7. RAW final vs tabla piloto¶
| Control | Observado | Resultado |
|---|---|---|
| RAW final oficial | business_observer.raw_source_003_sales_items con 1886 filas |
PASS |
| CORE final oficial | business_observer.core_source_003_sales_items con 1886 filas |
PASS |
| tabla piloto distinguible | business_observer.source_003_sales_items existe separada de RAW y CORE |
PASS |
| clasificacion piloto | PILOTO |
PASS |
8. No hubo escrituras¶
La auditoria se ejecuto unicamente con SELECT via psql. No hubo
escrituras, no se ejecuto rollback y no se modificaron objetos ni datos en
openclaw_business_observer_dev.
9. Conclusion¶
text
MART LOCAL-DEV RUNTIME READONLY AUDIT PASS
APTO PARA CONTINUAR CON REVIEW POST-FORWARD MART
NO APTO PARA PRODUCCION
NO APTO PARA SYNC DIARIA