SOURCE Secrets Preflight 001 - APV¶
Fecha: 2026-06-05
Estado: PREFLIGHT SEGURO
Scope: tenant
tenant_id: alpuntodeventa
Owner: Gabi / Carlos Canu
Fuente de verdad:
docs/tenants/alpuntodeventa/business-observer/sources/SOURCE-SECRETS-PREFLIGHT-001.md
1. Objetivo¶
Preparar la migracion segura de credenciales necesarias para SOURCE-002 SGC
Productos y SOURCE-002B WooCommerce Imagenes hacia OpenClaw local y VPS,
sin exponer secretos en Git, en Markdown ni en logs.
2. Safe point inicial¶
- repo destino:
C:\APV\openclawai - branch observada:
main - commit base observado:
17d7cd66606b3d6b1e6c001a309f5a24487ba8cd - runtime productivo:
no tocado - sync real:
no ejecutado - conexiones reales:
no ejecutadas
3. Evidencia revisada¶
Repos y archivos inspeccionados sin revelar valores:
C:\APV\gestor-de-negocios\backend\app\plugins\alpuntodeventa\scheduler_jobs.pyC:\APV\gestor-de-negocios\backend\app\utils\connections_helper.pyC:\APV\gestor-de-negocios\backend\app\core\connections_registry.pyC:\APV\gestor-de-negocios\docs\CODEX-SCHEDULER-CONEXIONES.mdC:\APV\gestor-de-negocios\tools\diag_connection_secrets.pyC:\APV\gestor-de-negocios\.env.devC:\APV\gestor-de-negocios\.env.prodC:\APV\gestor-de-negocios\.env.localC:\APV\gestor-de-negocios\.gitignore
4. Conexiones necesarias¶
SOURCE-002 - SGC Productos¶
- tipo:
mssql - alias canonico APV observado:
mssql:mssql-sgc-ecommerce - alias legacy observado en material historico:
mssql:mssqlserver-sgc-ecommerce - destino funcional: lectura de maestro de productos desde
SGC - claves esperadas por tipo:
host,port,database,user,password,encrypt,trustServerCertificate,driver,timeout
SOURCE-002B - WooCommerce Imagenes¶
- tipo:
woo_api - alias canonico APV observado:
woo_api:woo-alpuntodeventa - destino funcional: lookup de imagen destacada por
SKU - claves esperadas por tipo:
base_url,consumer_key,consumer_secret,version,timeout
Destino Postgres esperado para wiring APV¶
- tipo:
postgres - alias canonico APV observado:
postgres:postgres-alpuntodeventa-dev-env - alias legacy general observado:
postgres:postgres-vps-app-de-negocios - destino funcional: escritura/control de datos APV en entorno destino
- claves esperadas por tipo:
host,port,database,user,password,sslmode
5. Origen actual de secretos¶
Se observaron dos capas vigentes en gestor-de-negocios:
Capa A - system_connections¶
- ubicación:
public.system_connections - uso: source of truth operativa por
tag - protección observada: secretos cifrados y/o
password_enc - resolución observada:
connections_helper.resolve_connection_by_tag(...) - descifrado observado: mediante
SECRET_KEY_FERNET, con fallbacks documentados
Capa B - archivos locales ignorados por Git¶
C:\APV\gestor-de-negocios\.env.devC:\APV\gestor-de-negocios\.env.prodC:\APV\gestor-de-negocios\.env.local
Observaciones seguras:
- esos archivos contienen nombres de claves para
MSSQL,Postgresy material de cifrado .env.dev,.env.prody.env.localestan ignorados por Git.envdel repo origen esta trackeado, pero en la revisión hecha solo se observaron flags basicas no sensibles
6. Qué credenciales existen sin revelar valores¶
MSSQL SGC¶
- existe evidencia fuerte de wiring canonico APV por tag
mssql:mssql-sgc-ecommerce - existen nombres de variables locales para
MSSQL_HOST,MSSQL_DB,MSSQL_USER,MSSQL_PASSWORD,MSSQL_DRIVER,MSSQL_SERVER - parece completo a nivel de forma
- falta validar en una etapa posterior que el secreto vigente en
system_connectionscorresponda al mismo servidor y base que se quieren usar enOpenClaw
WooCommerce API¶
- existe evidencia fuerte de wiring canonico APV por tag
woo_api:woo-alpuntodeventa - el tipo
woo_apiesperabase_url,consumer_key,consumer_secret - parece completo a nivel de forma
- falta validar vigencia funcional del sitio y si el cruce por
SKUsigue siendo estable
Postgres destino¶
- existe evidencia documental del alias
postgres:postgres-alpuntodeventa-dev-env - existe alias legacy general
postgres:postgres-vps-app-de-negocios - existen nombres de variables locales para
PGHOST,PGPORT,PGDATABASE,PGUSER,PGPASSWORD,DATABASE_URL - parece completo a nivel de forma
- falta decidir si
OpenClawusará este mismo destino, un destino clonado o un destino nuevo dedicado
7. Alias y tags relevantes¶
Confirmados para APV¶
mssql:mssql-sgc-ecommercewoo_api:woo-alpuntodeventapostgres:postgres-alpuntodeventa-dev-envapi:catalogo-pedidos-whatsapp-import-alpuntodeventa
Legacy observados y a no reutilizar por comodidad¶
mssql:mssqlserver-sgc-ecommercepostgres:postgres-vps-app-de-negocios
Regla recomendada:
- en
OpenClaw, documentar siempre el alias canonico APV y conservar los legacy solo como referencia historica
8. Destino esperado en OpenClaw¶
Local¶
- archivo previsto:
.envlocal no trackeado - referencia segura:
.env.example - alcance: placeholders y checklist, sin secretos reales en Git
VPS¶
- carga prevista: manual por
SSH - archivo sugerido:
/srv/openclaw/.envo equivalente operativo decidido para el stack - copia ahora:
no autorizada en esta etapa
9. Qué falta validar¶
- si el alias
postgres:postgres-alpuntodeventa-dev-envdebe migrarse tal cual o renombrarse paraOpenClaw - si existe un secreto vigente real en
system_connectionspara cada uno de los tags APV observados - si
env_scopede cada conexión coincide con el futuro entorno local/VPS - si el destino Postgres debe ser compartido, clonado o nuevo
- si la API de publicación APV queda fuera de este alcance o debe incluirse en una segunda preflight
10. Riesgos¶
- reutilizar tags legacy y mezclar
APVconLa Directa - copiar secretos a Markdown, commits o logs por error
- mover solo valores parciales y dejar alias inconsistentes
- cargar secretos correctos en archivo equivocado
- asumir que el destino Postgres APV actual sirve para
OpenClawsin decisión explícita
11. Pasos seguros para migración¶
Preparación local¶
- Crear
.envlocal a partir de.env.example. - Pegar solo valores reales en el
.envlocal no trackeado. - Conservar los tags de referencia como metadatos, no como fuente de verdad del valor.
- Validar con revisión humana que
git status -sbno muestre archivos con secretos trackeados.
Carga segura en VPS¶
- Abrir sesión
SSHal host. - Crear el archivo de entorno local del servicio en el VPS.
- Cargar valores manualmente dentro del editor remoto, sin pegarlos en documentación del repo.
- Ajustar permisos restrictivos del archivo.
- Validar presencia de claves por nombre, nunca por valor visible.
12. Runbook SSH propuesto sin secretos¶
bash
ssh -p <PUERTO_SSH> <USUARIO>@<HOST_VPS>
install -m 700 -d /srv/openclaw
install -m 600 /dev/null /srv/openclaw/.env
editor /srv/openclaw/.env
chmod 600 /srv/openclaw/.env
Claves a cargar en esa etapa:
APV_SOURCE_002_MSSQL_HOSTAPV_SOURCE_002_MSSQL_PORTAPV_SOURCE_002_MSSQL_DATABASEAPV_SOURCE_002_MSSQL_USERAPV_SOURCE_002_MSSQL_PASSWORDAPV_SOURCE_002_MSSQL_DRIVERAPV_SOURCE_002_MSSQL_TRUST_SERVER_CERTIFICATEAPV_SOURCE_002_MSSQL_TIMEOUT_SECONDSAPV_SOURCE_002B_WOO_BASE_URLAPV_SOURCE_002B_WOO_CONSUMER_KEYAPV_SOURCE_002B_WOO_CONSUMER_SECRETAPV_SOURCE_002B_WOO_VERSIONAPV_SOURCE_002B_WOO_TIMEOUT_SECONDSAPV_DESTINATION_POSTGRES_HOSTAPV_DESTINATION_POSTGRES_PORTAPV_DESTINATION_POSTGRES_DATABASEAPV_DESTINATION_POSTGRES_USERAPV_DESTINATION_POSTGRES_PASSWORDAPV_DESTINATION_POSTGRES_SSLMODE
Validación segura sugerida:
bash
grep -E '^(APV_SOURCE_002_|APV_SOURCE_002B_|APV_DESTINATION_POSTGRES_)' /srv/openclaw/.env | cut -d= -f1
La validación anterior debe confirmar solo nombres de claves.
13. Confirmación documental¶
- no se escribieron passwords, tokens ni API keys en este documento
- no se copiaron secretos al repo
openclawai - no se ejecutaron conexiones reales
- no se ejecutó sync real
- no se tocó runtime productivo