@dotrino/vaultd 0.135.0 → 0.136.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/vault.js +12 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dotrino/vaultd",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.136.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/vault.js
CHANGED
|
@@ -2080,10 +2080,20 @@ export async function startVault ({ dir = dataDir(), proxyUrl, log = console.log
|
|
|
2080
2080
|
needsApproval: async (pub) => needsApproval(pub, await refreshActa()),
|
|
2081
2081
|
// El teléfono: se apunta el pedido, se le avisa y esta promesa espera su firma.
|
|
2082
2082
|
// Es el mismo camino que ya recorren los cajones de secretos.
|
|
2083
|
-
|
|
2083
|
+
// EL PEDIDO DICE QUÉ SE QUIERE LEER (dueño, 2026-09-30: «es importante que se sepa el
|
|
2084
|
+
// porqué»). Antes salía como `read` sin contexto, y el teléfono enseñaba «pide tus claves
|
|
2085
|
+
// de passwords · no dice qué está ejecutando», que parece un servicio desconocido cuando
|
|
2086
|
+
// es tu extensión pidiendo una contraseña. Ahora es `kind: 'passwords'` con la operación y
|
|
2087
|
+
// los CAMPOS (`password`, `totp`…) — nunca la entrada ni el sitio, que no se ven aquí.
|
|
2088
|
+
// Va sellado al que aprueba, como el comando de un pedido de claves.
|
|
2089
|
+
approve: async ({ pubkey, op, payload }) => {
|
|
2084
2090
|
let resolve
|
|
2085
2091
|
const espera = new Promise((r) => { resolve = r })
|
|
2086
|
-
|
|
2092
|
+
const fields = Array.isArray(payload?.keys) ? payload.keys.slice(0, 12).map((k) => String(k).slice(0, 40)) : null
|
|
2093
|
+
await awaitApproval({
|
|
2094
|
+
device: pubkey, ns: 'passwords', kind: 'passwords', what: 'passwords', op,
|
|
2095
|
+
ctx: { op: String(op || '').replace(/^pm2\./, ''), fields }, onAnswer: resolve
|
|
2096
|
+
})
|
|
2087
2097
|
return espera
|
|
2088
2098
|
},
|
|
2089
2099
|
audit,
|