@dotrino/vault 0.19.0 → 0.20.0
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.
- package/package.json +1 -1
- package/src/env.js +8 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dotrino/vault",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
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
|
@@ -172,7 +172,7 @@ export function applyEnv (secrets, override = overrideByDefault()) {
|
|
|
172
172
|
* @param {Object} [opts]
|
|
173
173
|
* @param {string} [opts.ns]
|
|
174
174
|
* @param {string} [opts.dir]
|
|
175
|
-
* @param {(info:{ns:string, ts:number,
|
|
175
|
+
* @param {(info:{ns:string, ts:number, reason:'changed'|'revoked'})=>void} [opts.onUpdate]
|
|
176
176
|
* Reemplaza la salida por defecto. Úsalo cuando terminar el proceso no sea una
|
|
177
177
|
* opción — el caso del proxio, cuyo reinicio corta el transporte de todos.
|
|
178
178
|
* @param {number} [opts.exitCode=0] Salida LIMPIA: systemd con `Restart=on-failure`
|
|
@@ -183,24 +183,24 @@ export function applyEnv (secrets, override = overrideByDefault()) {
|
|
|
183
183
|
export async function watchEnv ({ ns, dir, onUpdate, exitCode = 0, quiet = false, ...resto } = {}) {
|
|
184
184
|
ns = resolveNs(ns)
|
|
185
185
|
dir = dir || serviceDir(ns)
|
|
186
|
-
const
|
|
186
|
+
const say = (m) => { if (!quiet) console.error(m) }
|
|
187
187
|
|
|
188
|
-
const
|
|
189
|
-
|
|
188
|
+
const exitNow = (reason) => {
|
|
189
|
+
say(`[dotrino-env] ${reason === 'revoked'
|
|
190
190
|
? 'la bóveda REVOCÓ este agente: terminando (no volverá a arrancar)'
|
|
191
191
|
: 'configuración nueva en la bóveda: terminando para que el supervisor lo levante limpio'}`)
|
|
192
|
-
process.exit(
|
|
192
|
+
process.exit(reason === 'revoked' ? 1 : exitCode)
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
return watchSecretsChanges({
|
|
196
196
|
dir,
|
|
197
197
|
ns,
|
|
198
|
-
log:
|
|
199
|
-
onChange: ({ ts }) => (onUpdate ? onUpdate({ ns, ts,
|
|
198
|
+
log: say,
|
|
199
|
+
onChange: ({ ts }) => (onUpdate ? onUpdate({ ns, ts, reason: 'changed' }) : exitNow('changed')),
|
|
200
200
|
// Un cert revocado sale con código de FALLO a propósito: si el supervisor lo
|
|
201
201
|
// levanta, va a morir otra vez al no poder leer sus secretos, y el contador de
|
|
202
202
|
// reinicios fallidos es lo que hace que se note en vez de girar en silencio.
|
|
203
|
-
onRevoked: () => (onUpdate ? onUpdate({ ns, ts: Date.now(),
|
|
203
|
+
onRevoked: () => (onUpdate ? onUpdate({ ns, ts: Date.now(), reason: 'revoked' }) : exitNow('revoked')),
|
|
204
204
|
...resto
|
|
205
205
|
})
|
|
206
206
|
}
|