@dotrino/vault 0.15.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +19 -0
  2. package/package.json +1 -1
  3. package/src/env.js +13 -4
package/README.md CHANGED
@@ -91,6 +91,25 @@ que los secretos estén. Si el vault no está disponible, **espera** (reintento
91
91
  backoff) — un servicio sin vault no arranca, no opera con secretos viejos ni vacíos.
92
92
  Un fallo NO transitorio (sin enrolar, cert revocado, scope equivocado) sí aborta.
93
93
 
94
+ #### Esperar al vault es la REGLA. La excepción es una sola
95
+
96
+ Un agente enrolado **espera**. No es una preferencia: arrancar igual significaría
97
+ operar con la configuración vieja del `.env`, que es justo lo que el vault vino a
98
+ dejar de ser. Y la espera casi nunca duele, porque estos agentes no son críticos:
99
+ que un bot o un firmador tarden en levantar no rompe a nadie.
100
+
101
+ La **única** excepción conocida es **el proxio**, y no por importancia sino por una
102
+ razón estructural: el vault habla con sus servicios **por el proxio**. Un proxio que
103
+ espera al vault espera a alguien que necesita que el proxio ya esté escuchando —
104
+ abrazo mortal, y con él se cae el vault de todo el mundo. Por eso el proxio arranca
105
+ con lo que tenga y aplica la configuración cuando llega, con `applyEnv`.
106
+
107
+ > `applyEnv` existe **para ese caso**, no como alternativa cómoda al bloqueo. Si tu
108
+ > agente no está en el camino por el que viaja el propio vault, usa
109
+ > `import '@dotrino/vault/config'` y deja que espere. El precio de la excepción es
110
+ > real: lo que sólo se lee al arrancar llega tarde y no toma efecto hasta reiniciar,
111
+ > así que hay que avisarlo en el log — el proxio lo hace.
112
+
94
113
  Para procesos que no son Node, el CLI los inyecta en el entorno de un hijo:
95
114
 
96
115
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotrino/vault",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "description": "Usa ESTE dispositivo (navegador) como bóveda/CA del ecosistema Dotrino: atiende enrolamientos por el proxy y firma certificados de delegación a tus máquinas. Incluye el cliente de SERVICIO (Node): un proyecto se enrola una vez y jala sus credenciales del vault en vez del .env (`import '@dotrino/vault/config'`).",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
package/src/env.js CHANGED
@@ -113,10 +113,19 @@ export async function loadEnv ({ ns, dir, override, wait = true, required = [],
113
113
  /**
114
114
  * Vuelca un bundle de secretos en `process.env` y cuenta qué cambió.
115
115
  *
116
- * Separado de `loadEnv` porque un servicio que NO puede bloquear su arranque
117
- * esperando al vault (el proxy: el vault le habla POR el proxy, así que
118
- * esperarlo sería un abrazo mortal) igual necesita aplicar el bundle cuando
119
- * llegue, tarde y por su cuenta.
116
+ * ESTO NO ES LA FORMA NORMAL. Un agente enrolado ESPERA al vault
117
+ * (`loadEnv` / `import '@dotrino/vault/config'`): arrancar igual sería operar con
118
+ * la configuración vieja del `.env`, que es justo lo que el vault vino a dejar de
119
+ * ser, y la espera casi nunca duele porque estos agentes no son críticos.
120
+ *
121
+ * `applyEnv` existe para la ÚNICA excepción estructural: **el proxio**. El vault
122
+ * habla con sus servicios POR el proxio, así que un proxio que espera al vault
123
+ * espera a alguien que necesita el proxio escuchando — abrazo mortal, y con él se
124
+ * cae el vault de todos. Ese caso arranca con lo que tenga y aplica el bundle
125
+ * cuando llega, tarde y por su cuenta.
126
+ *
127
+ * Si tu agente no está en el camino por el que viaja el propio vault, no uses
128
+ * esto: usa `loadEnv` y deja que espere.
120
129
  *
121
130
  * @returns {{injected:string[], overridden:string[], skipped:string[]}}
122
131
  */