@dotrino/vaultd 0.85.0 → 0.86.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/ctl.js +19 -11
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotrino/vaultd",
3
- "version": "0.85.0",
3
+ "version": "0.86.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
@@ -960,7 +960,9 @@ function problemWith (key, value) {
960
960
  }
961
961
 
962
962
  async function cmdSecret (rest) {
963
- // --public / --private: si el VALOR puede salir de esta máquina hacia la consola remota.
963
+ // --public / --private: si al entregarla se pide APROBACIÓN. NO cambia cómo se guarda —
964
+ // desde 2026-09-02 las dos van selladas igual (dueño: «la única diferencia es si se
965
+ // despachan o no, son políticas; dales el mismo tratamiento de seguridad»).
964
966
  // Se sacan de la línea antes de partirla, para que puedan ir en cualquier posición y no
965
967
  // se cuelen dentro del valor (que es lo último y puede llevar espacios).
966
968
  let isPublic
@@ -1054,8 +1056,8 @@ async function cmdSecret (rest) {
1054
1056
  'la bóveda la aplica entera y avisa UNA sola vez. De una en una, cada variable es un',
1055
1057
  'cambio de configuración y el servicio se reinicia a media carga.',
1056
1058
  '',
1057
- 'Pública o privada dice UNA cosa: si el VALOR puede salir de esta máquina hacia la',
1058
- 'consola remota (vault.dotrino.com). Se nace privada. El servicio recibe las dos igual.'
1059
+ 'Pública o privada dice UNA cosa: si al entregarla se te pide APROBACIÓN. Las dos se',
1060
+ 'guardan cifradas igual y ninguna enseña su valor en la consola. Se nace privada.'
1059
1061
  ].join('\n')
1060
1062
 
1061
1063
  /**
@@ -1108,11 +1110,14 @@ async function cmdSecret (rest) {
1108
1110
  }
1109
1111
 
1110
1112
  /**
1111
- * Una variable en la lista: su nombre y su valor. La PÚBLICA enseña el suyo (pública
1112
- * quiere decir que ese valor puede salir de esta máquina: taparlo aquí, delante de su
1113
- * dueño, era lo único que la marca no significaba). La privada no se muestra.
1113
+ * Una variable en la lista: su nombre, y que TIENE valor. Ninguna lo enseña.
1114
+ *
1115
+ * La pública lo enseñaba, porque se guardaba en claro. Desde 2026-09-02 las dos van
1116
+ * selladas igual y `pública` solo dice que se entrega sin pedir aprobación (dueño: «la
1117
+ * única diferencia es si se despachan o no, son políticas»). Enseñar el hueco vacío de
1118
+ * una pública era peor que no enseñar nada: parecía que se había perdido.
1114
1119
  */
1115
- const printVar = (k) => console.log(' · %s %s', k.key, k.public ? `${k.value ?? ''} (pública)` : '••••••')
1120
+ const printVar = (k) => console.log(' · %s ••••••%s', k.key, k.public ? ' (pública)' : '')
1116
1121
  /**
1117
1122
  * Por qué no se aplicó. El daemon deja el motivo en el volcado siguiente; sin él lo
1118
1123
  * único que se podía decir era «revisa los logs», que no ayuda a quien acaba de
@@ -1179,7 +1184,10 @@ async function cmdSecret (rest) {
1179
1184
  console.log('%s%s%s%s', B, x.id, Z, who ? ' ' + who : '')
1180
1185
  for (const k of x.keys) printVar(k)
1181
1186
  }
1182
- console.log('\n(pública) = su valor se puede ver desde la consola remota. Las demás no salen de aquí.\n')
1187
+ // QUÉ SIGNIFICA HOY (dueño, 2026-09-02): todas se guardan selladas igual, y `pública`
1188
+ // solo dice a quién se le entrega SIN APROBACIÓN. Decir «su valor se puede ver» era
1189
+ // verdad cuando se guardaba en claro; dejarlo ahí sería prometer algo que ya no pasa.
1190
+ console.log('\n(pública) = se entrega sin pedirte aprobación. Todas se guardan cifradas igual.\n')
1183
1191
  printPending(d)
1184
1192
  await printNoPassword()
1185
1193
  return
@@ -1534,9 +1542,9 @@ function help () {
1534
1542
  vuelve a una versión anterior
1535
1543
  secret settle salda lo pendiente: hereda lo ya guardado a un
1536
1544
  aparato nuevo y rota de verdad el cajón del que se fue
1537
- --public | --private (al hacer un set) si el VALOR puede salir de esta
1538
- máquina hacia la consola remota. Se nace privada,
1539
- y una privada NO se vuelve pública (bórrala y créala).
1545
+ --public | --private (al hacer un set) si al entregarla se te pide
1546
+ APROBACIÓN. Las dos se guardan cifradas igual. Se nace
1547
+ privada, y una privada NO se vuelve pública.
1540
1548
  secret visibility <ns> <CLAVE> private tapa una pública sin tocar el valor
1541
1549
  secret device visibility <ID> <CLAVE> private
1542
1550
  join <invitación> [--name <n>] [--kms <config.json>]