docs(api): añadir .env.example y desbloquearlo en .gitignore (#4) - #27
Merged
Conversation
`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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #4
Qué había
config.tsy el README referencian un.env.exampleque 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.examplecon las 59 variables queapps/api/src/lee de verdad — no las ~33 que listaba el issue como mínimo. La lista se sacó recorriendoprocess.env.y está verificada en las dos direcciones: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
.gitignoretení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í. Es el último criterio del issue y era real, no hipotético.
apps/api/README.mdNo 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
.envsolo se lee cuandoNODE_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
commen ambas direcciones.git check-ignoreya no lo ignora;git addlo acepta.getPlatformAddress()envuelveKeypair.fromSecretentry/catchy cae al valor por defecto. Lo comprobé antes de elegir el estilo de placeholder.Criterios
apps/api/.env.exampleexiste y cubre todoprocess.env.Xdeapps/api/src/.gitignoresigue ignorando.envy ya no ignora.env.example