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 inspectstatdel secret file sin leer contenidodocker 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-004DDL 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-sandboxsigue 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¶
PDF-004D backup baseline executionPDF-004E restore drillPDF-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