Skip to content

docs(api): añadir .env.example y desbloquearlo en .gitignore (#4) - #27

Merged
ericmt-98 merged 1 commit into
mainfrom
docs/bridge-01-env-example
Aug 24, 2026
Merged

docs(api): añadir .env.example y desbloquearlo en .gitignore (#4)#27
ericmt-98 merged 1 commit into
mainfrom
docs/bridge-01-env-example

Conversation

@ericmt-98

Copy link
Copy Markdown
Contributor

Closes #4

Qué había

config.ts y el README referencian un .env.example que no existía. Un clon limpio no tenía forma de saber qué configurar, y el fallo era mudo: las rutas devuelven 503 o degradan en silencio en vez de decir qué falta.

Qué trae

apps/api/.env.example con las 59 variables que apps/api/src/ lee de verdad — no las ~33 que listaba el issue como mínimo. La lista se sacó recorriendo process.env. y está verificada en las dos direcciones:

usadas en src: 59 | documentadas: 59
FALTAN  (usadas sin documentar): —
SOBRAN  (documentadas sin usar): —

Cada variable lleva para qué sirve y si es obligatoria u opcional, con el valor por defecto real cuando lo tiene. Las que firman o mueven fondos van marcadas [SECRETO]. Todos los valores son placeholders.

El detalle que casi lo deja inútil

.gitignore tenía .env.*, que se traga .env.example. El archivo se habría escrito y no habría llegado nunca al repo:

$ git check-ignore -v apps/api/.env.example
.gitignore:3:.env.*   apps/api/.env.example

Va con una negación explícita y un comentario que dice por qué está ahí. Es el último criterio del issue y era real, no hipotético.

apps/api/README.md

No existía, así que la "sección de configuración" que pedía el issue se añade con él. Recoge las tres cosas que no son obvias: que el .env solo se lee cuando NODE_ENV != production, que una variable ya presente en el entorno gana sobre la del archivo, y que la API arranca sin configurar nada — pero degradada y en silencio, que es justo el fallo que motivó el issue.

Verificación

  • Los 59/59 de arriba, comprobados con comm en ambas direcciones.
  • git check-ignore ya no lo ignora; git add lo acepta.
  • Un placeholder inválido no tumba el arranque: getPlatformAddress() envuelve Keypair.fromSecret en try/catch y cae al valor por defecto. Lo comprobé antes de elegir el estilo de placeholder.
  • No hay cambios de código, así que la suite no se toca.

Criterios

  • apps/api/.env.example existe y cubre todo process.env.X de apps/api/src/
  • Cada variable con una línea de qué hace y si es obligatoria
  • Los secretos marcados como tales
  • Ninguna clave, semilla, endpoint ni credencial real
  • .gitignore sigue ignorando .env y ya no ignora .env.example

`config.ts` y el README referencian un `.env.example` que no existía. Un clon
limpio no tenía forma de saber qué configurar, y el fallo era mudo: las rutas
devuelven 503 o degradan en silencio en vez de decir qué falta.

Se documentan las 59 variables que `apps/api/src/` lee de verdad — no las ~33
que listaba el issue: la lista se sacó recorriendo `process.env.` y está
verificada en las dos direcciones, ninguna usada sin documentar y ninguna
documentada sin usar. Cada una lleva para qué sirve y si es obligatoria, y las
que firman o mueven fondos van marcadas [SECRETO].

El detalle que casi lo deja inútil: `.gitignore` tenía `.env.*`, que se traga
`.env.example`. El archivo se habría escrito y no habría llegado nunca al repo.
Va con una negación explícita y un comentario que dice por qué está ahí.

Placeholders en todas partes, ningún valor real. Se comprobó que una clave
inválida no tumba el arranque: `getPlatformAddress()` envuelve
`Keypair.fromSecret` en try/catch y cae al valor por defecto.

Se añade también `apps/api/README.md` con la sección de configuración que
pedía el issue: que el `.env` solo se lee fuera de producción, que el entorno
gana sobre el archivo, y que arrancar sin configurar nada funciona pero
degradado.

Closes #4

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J2txyR4THyCdW3x5V9yfzK
@ericmt-98
ericmt-98 merged commit 5d94f6c into main Aug 24, 2026
3 checks passed
@ericmt-98
ericmt-98 deleted the docs/bridge-01-env-example branch August 24, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BRIDGE-01] Add .env.example — the API cannot be started from a clean clone

1 participant