Saltar a contenido

PDF-004C Staging Postgres Real Target Read-Only Preflight

Fecha local: 2026-06-19

Estado: READ-ONLY PREFLIGHT COMPLETADO / GO PARA BACKUP-RESTORE BASELINE / NO-GO PARA DDL NEGOCIO / NO SECRETS / NO DDL-DML / SANDBOX INTACTO

portal_visible = yes

Scope: tenant

tenant_id: alpuntodeventa

Owner: Gabi / Carlos Canu

Fuente de verdad: docs/tenants/alpuntodeventa/business-observer/production/PDF-004C-STAGING-POSTGRES-REAL-TARGET-READONLY-PREFLIGHT.md

1. Objetivo

Validar en modo estrictamente read-only el PostgreSQL staging-vps real ya provisionado para Business Observer, sin ejecutar DDL, sin crear objetos de negocio, sin tocar datos y sin exponer secretos.

2. Safe point

Control Valor
workspace C:\APV\openclawai
rama main
HEAD/origin observado al iniciar 04feb71ce2d1523e613bbf1ca678493648c95585
ultimo commit observado al iniciar ops: provision business observer staging postgres stack
decision SAFE POINT PASS / READ-ONLY ONLY

3. Validacion local de arranque

Control Resultado
git status -sb PASS ## main...origin/main
git rev-parse HEAD PASS 04feb71ce2d1523e613bbf1ca678493648c95585
git diff --check PASS limpio al iniciar

4. Preflight VPS read-only

Comandos remotos ejecutados solo por inspeccion o catalogo:

  • ssh -o BatchMode=yes openclaw-vps "hostname"
  • docker ps, docker inspect, docker volume inspect, docker network inspect
  • stat del secret file sin leer contenido
  • docker exec -u postgres ... psql ... por socket local dentro del contenedor

Controles observados:

Control Observado
hostname srv977009
contenedor target openclaw-business-observer-postgres-staging
estado running
health healthy
imagen postgres:16.14-alpine
network openclaw-bo-staging-internal internal=true
volume openclaw_bo_postgres_staging_data
host port binding {}
listener host 5432 NO PUBLICADO por diseño
secret file /opt/secrets/openclaw/business-observer-staging/postgres_bootstrap_password
secret file owner/perms root:root 600
sandbox guardrail openclaw-postgres-sandbox sigue healthy e intocado

5. Fingerprint no sensible real

Campo Valor
hostname srv977009
container openclaw-business-observer-postgres-staging
network openclaw-bo-staging-internal
volume openclaw_bo_postgres_staging_data
host port binding no-host-port-binding
bootstrap DB visible postgres
bootstrap user visible postgres
PostgreSQL version PostgreSQL 16.14

Resumen fingerprint:

text srv977009|openclaw-business-observer-postgres-staging|openclaw-bo-staging-internal|openclaw_bo_postgres_staging_data|no-host-port-binding|postgres|postgres|PostgreSQL 16.14

6. Evidencia PostgreSQL read-only

Metodo de acceso validado:

  • docker exec -u postgres openclaw-business-observer-postgres-staging psql -X -d postgres
  • transaccion explicitamente marcada como READ ONLY
  • transaction_read_only = on
  • sin password inline
  • sin leer ni imprimir el secret file

Consultas de catalogo observadas:

Control Resultado
version() PostgreSQL 16.14 on x86_64-pc-linux-musl ...
current_database() postgres
current_user postgres
DBs visibles postgres, template0, template1
DB openclaw_business_observer_staging ABSENT
DB openclaw_business_observer_prod ABSENT
schema business_observer ABSENT en el catalog bootstrap observado
roles openclaw_bo_staging_owner ABSENT
roles openclaw_bo_staging_writer ABSENT
roles openclaw_bo_staging_reader ABSENT
roles openclaw_bo_staging_reporting_ro ABSENT
matches adicionales %business_observer% en DB names 0
matches adicionales openclaw_bo_staging% o %business_observer% en roles 0

Interpretacion:

  • el target real validado es el contenedor openclaw-business-observer-postgres-staging;
  • no es openclaw-postgres-sandbox;
  • la infraestructura real existe y esta sana;
  • la DB/schema/roles de negocio todavia no fueron creados.

7. Confirmacion explicita de no cambios

Confirmado en esta tarea:

  • no se ejecuto CREATE DATABASE
  • no se ejecuto CREATE ROLE
  • no se ejecuto CREATE SCHEMA
  • no se ejecuto CREATE TABLE
  • no se ejecuto ALTER
  • no se ejecuto GRANT
  • no se ejecuto REVOKE
  • no se ejecuto DROP
  • no se ejecuto INSERT
  • no se ejecuto UPDATE
  • no se ejecuto DELETE
  • no se ejecuto COPY
  • no se ejecuto TRUNCATE
  • no se tocaron datos
  • no se imprimieron passwords
  • no se leyo el contenido del secret file

Resultado:

text NO DDL NO DML NO SECRET CONTENT READ-ONLY EVIDENCE ONLY

8. Riesgos vigentes

  • el stack esta listo como target real, pero sigue sin baseline real de backup/restore;
  • ejecutar PDF-004 DDL sin backup baseline y restore drill agregaria riesgo operativo evitable;
  • el acceso actual de catalogo usa el bootstrap postgres, por lo que el siguiente gate debe separar claramente operacion de backup/restore y luego autorizacion explicita para roles/DB/schema de negocio;
  • openclaw-postgres-sandbox sigue conviviendo en el mismo VPS y no debe confundirse con este target real.

9. GO / NO-GO

text GO = PLANIFICAR Y EJECUTAR PDF-004D BACKUP BASELINE GO = PLANIFICAR Y EJECUTAR PDF-004E RESTORE DRILL NO-GO = PDF-004 DDL NEGOCIO NO-GO = CREAR DB/ROLES/SCHEMA/TABLAS HASTA TENER BACKUP-RESTORE REAL Y AUTORIZACION EXPLICITA

10. Proximos safe points

  1. PDF-004D backup baseline execution
  2. PDF-004E restore drill
  3. PDF-004F DDL execution candidate/preflight

11. Conclusion

text PDF-004C PASS REAL TARGET = VERIFIED CONTAINER HEALTH = HEALTHY HOST PORT BINDING = {} SECRET FILE = VERIFIED BY STAT ONLY BUSINESS DB = ABSENT BUSINESS SCHEMA = ABSENT BUSINESS ROLES = ABSENT SANDBOX = INTACT / NOT TARGET GO = BACKUP/RESTORE BASELINE NO-GO = BUSINESS DDL NO DDL/DML EXECUTED NO SECRETS EXPOSED