Saltar a contenido

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