@dotrino/vaultd 0.76.0 → 0.77.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotrino/vaultd",
3
- "version": "0.76.0",
3
+ "version": "0.77.0",
4
4
  "type": "module",
5
5
  "description": "Certificador personal de Dotrino: daemon headless que custodia la clave maestra y delega capacidades a tus dispositivos por el proxy. Tu CA propia.",
6
6
  "bin": {
package/src/ctl.js CHANGED
@@ -419,7 +419,14 @@ async function cmdJoin (rest) {
419
419
  process.exit(2)
420
420
  }
421
421
  const qr = parseInvite(texto)
422
- if (!qr?.sn || !qr?.iss || !qr?.proxy) {
422
+ // QUÉ HACE FALTA DE VERDAD: el nonce de la sesión (`sn`) y una forma de alcanzar a la
423
+ // otra bóveda — la CITA del proxio (`conn`) en la invitación corta, o su llave (`iss`)
424
+ // en la larga. Quien la consume es `enrollDevice`, que sabe canjear la cita.
425
+ //
426
+ // Esto exigía `iss` SIEMPRE, y la invitación corta no lo lleva (la llave dejó de viajar
427
+ // cuando el QR se acortó, `lib/src/invite.js`). O sea que `join` rechazaba todas las
428
+ // invitaciones que emite `pair` hoy: el multivault entero no se podía montar.
429
+ if (!qr?.sn || !(qr?.conn || qr?.iss)) {
423
430
  console.error('Esa invitación no se entiende. Pega la línea completa que imprime «dotrino-vault pair».')
424
431
  process.exit(2)
425
432
  }
package/src/daemon.js CHANGED
@@ -791,7 +791,10 @@ export async function runDaemon () {
791
791
 
792
792
  let qr = null
793
793
  try { qr = parseInvite(texto) } catch (_) {}
794
- if (!qr?.sn || !qr?.iss || !qr?.proxy) {
794
+ // Lo mismo que `dotrino-vault join` (ver `ctl.js`): basta `sn` + la cita del proxio o
795
+ // la llave. Exigir `iss` dejaba fuera a la invitación corta, que es la única que emite
796
+ // `pair` hoy — así que este camino de despliegue no había forma de que funcionara.
797
+ if (!qr?.sn || !(qr?.conn || qr?.iss)) {
795
798
  console.error('[vault] the invitation in DOTRINO_JOIN is not valid; ignoring it')
796
799
  return
797
800
  }
@@ -799,7 +802,7 @@ export async function runDaemon () {
799
802
  const hecho = readJsonSafe(marca)
800
803
  if (hecho?.sn === qr.sn) return // ya se usó: un reinicio no vuelve a pedir entrar
801
804
 
802
- writeJson(marca, { at: Date.now(), sn: qr.sn, iss: qr.iss })
805
+ writeJson(marca, { at: Date.now(), sn: qr.sn, ...(qr.iss ? { iss: qr.iss } : {}) })
803
806
  writeJson(path.join(dir, 'join-request.json'), {
804
807
  qr,
805
808
  label: 'bóveda',