@centient/secrets 0.10.0 → 0.11.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/README.md +355 -7
- package/dist/audit/hmac-chain.d.ts +117 -0
- package/dist/audit/hmac-chain.d.ts.map +1 -0
- package/dist/audit/hmac-chain.js +811 -0
- package/dist/audit/hmac-chain.js.map +1 -0
- package/dist/audit/ocsf.d.ts +108 -0
- package/dist/audit/ocsf.d.ts.map +1 -0
- package/dist/audit/ocsf.js +204 -0
- package/dist/audit/ocsf.js.map +1 -0
- package/dist/cli/hidden-prompt.d.ts.map +1 -1
- package/dist/cli/hidden-prompt.js +55 -10
- package/dist/cli/hidden-prompt.js.map +1 -1
- package/dist/cli/messages.d.ts +40 -8
- package/dist/cli/messages.d.ts.map +1 -1
- package/dist/cli/messages.js +34 -8
- package/dist/cli/messages.js.map +1 -1
- package/dist/client.d.ts +26 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +129 -0
- package/dist/client.js.map +1 -0
- package/dist/compatibility.d.ts +199 -0
- package/dist/compatibility.d.ts.map +1 -0
- package/dist/compatibility.js +419 -0
- package/dist/compatibility.js.map +1 -0
- package/dist/index.d.ts +19 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/policies/audit-trail.d.ts +25 -0
- package/dist/policies/audit-trail.d.ts.map +1 -0
- package/dist/policies/audit-trail.js +31 -0
- package/dist/policies/audit-trail.js.map +1 -0
- package/dist/sinks/index.d.ts +9 -0
- package/dist/sinks/index.d.ts.map +1 -0
- package/dist/sinks/index.js +5 -0
- package/dist/sinks/index.js.map +1 -0
- package/dist/sinks/jsonl.d.ts +16 -0
- package/dist/sinks/jsonl.d.ts.map +1 -0
- package/dist/sinks/jsonl.js +51 -0
- package/dist/sinks/jsonl.js.map +1 -0
- package/dist/sinks/otel.d.ts +22 -0
- package/dist/sinks/otel.d.ts.map +1 -0
- package/dist/sinks/otel.js +155 -0
- package/dist/sinks/otel.js.map +1 -0
- package/dist/sinks/queue.d.ts +12 -0
- package/dist/sinks/queue.d.ts.map +1 -0
- package/dist/sinks/queue.js +89 -0
- package/dist/sinks/queue.js.map +1 -0
- package/dist/sinks/syslog.d.ts +17 -0
- package/dist/sinks/syslog.d.ts.map +1 -0
- package/dist/sinks/syslog.js +103 -0
- package/dist/sinks/syslog.js.map +1 -0
- package/dist/sinks/types.d.ts +27 -0
- package/dist/sinks/types.d.ts.map +1 -0
- package/dist/sinks/types.js +18 -0
- package/dist/sinks/types.js.map +1 -0
- package/dist/vault/policy.d.ts +64 -34
- package/dist/vault/policy.d.ts.map +1 -1
- package/dist/vault/policy.js +109 -67
- package/dist/vault/policy.js.map +1 -1
- package/dist/vault/session-vault.d.ts +43 -0
- package/dist/vault/session-vault.d.ts.map +1 -1
- package/dist/vault/session-vault.js +323 -36
- package/dist/vault/session-vault.js.map +1 -1
- package/dist/vault/sidecar.d.ts +9 -0
- package/dist/vault/sidecar.d.ts.map +1 -1
- package/dist/vault/sidecar.js +72 -3
- package/dist/vault/sidecar.js.map +1 -1
- package/dist/vault/types.d.ts +16 -9
- package/dist/vault/types.d.ts.map +1 -1
- package/dist/vault/vault-env.d.ts +41 -62
- package/dist/vault/vault-env.d.ts.map +1 -1
- package/dist/vault/vault-env.js +139 -75
- package/dist/vault/vault-env.js.map +1 -1
- package/dist/vault/vault-gpg.d.ts +1 -0
- package/dist/vault/vault-gpg.d.ts.map +1 -1
- package/dist/vault/vault-gpg.js +1 -0
- package/dist/vault/vault-gpg.js.map +1 -1
- package/dist/vault/vault-libsecret.d.ts +1 -0
- package/dist/vault/vault-libsecret.d.ts.map +1 -1
- package/dist/vault/vault-libsecret.js +7 -6
- package/dist/vault/vault-libsecret.js.map +1 -1
- package/dist/vault/vault-onepassword.d.ts +1 -0
- package/dist/vault/vault-onepassword.d.ts.map +1 -1
- package/dist/vault/vault-onepassword.js +1 -0
- package/dist/vault/vault-onepassword.js.map +1 -1
- package/dist/vault/vault-utils.d.ts +7 -6
- package/dist/vault/vault-utils.d.ts.map +1 -1
- package/dist/vault/vault-utils.js +8 -7
- package/dist/vault/vault-utils.js.map +1 -1
- package/dist/vault/vault-windows.d.ts +2 -1
- package/dist/vault/vault-windows.d.ts.map +1 -1
- package/dist/vault/vault-windows.js +12 -8
- package/dist/vault/vault-windows.js.map +1 -1
- package/dist/vault/vault.d.ts +6 -7
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js +37 -193
- package/dist/vault/vault.js.map +1 -1
- package/package.json +8 -2
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
* Keychain access even if another process holds the vault open.
|
|
38
38
|
* Keychain ACLs are per-process, not per-vault-file.
|
|
39
39
|
*/
|
|
40
|
-
import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, writeFileSync, } from "node:fs";
|
|
41
|
-
import { dirname, join, resolve as pathResolve } from "node:path";
|
|
40
|
+
import { closeSync, existsSync, linkSync, mkdirSync, openSync, readFileSync, realpathSync, renameSync, statSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
41
|
+
import { basename, dirname, isAbsolute, join, relative, resolve as pathResolve, sep, } from "node:path";
|
|
42
42
|
import { homedir } from "node:os";
|
|
43
43
|
import { createHash, randomBytes } from "node:crypto";
|
|
44
|
-
import { encryptObject,
|
|
44
|
+
import { decryptObject, encryptObject, KEY_LENGTH, } from "../crypto/vault-common.js";
|
|
45
45
|
import { resolveKeyProvider } from "../key-providers/resolve.js";
|
|
46
46
|
import { runBeforeHooks, runAfterHooks, rejectedEventType, } from "./policy.js";
|
|
47
47
|
import { acquireWriteLock } from "./file-lock.js";
|
|
48
|
-
import { readSidecar, writeSidecar, checkSidecarPerms, VAULT_FILE_MODE, VAULT_DIR_MODE, } from "./sidecar.js";
|
|
48
|
+
import { createSidecar, readSidecar, writeSidecar, checkSidecarPerms, VAULT_FILE_MODE, VAULT_DIR_MODE, } from "./sidecar.js";
|
|
49
49
|
import { VaultError, VaultUnlockError, VaultDecryptError, VaultRollbackError, VaultClosedError, VaultLockError, VaultRestoreError, InvalidCredentialKeyError, } from "./session-vault-errors.js";
|
|
50
50
|
// Re-export errors so the public surface (index.ts) stays stable.
|
|
51
51
|
export { VaultError, VaultUnlockError, VaultDecryptError, VaultRollbackError, VaultClosedError, VaultLockError, VaultRestoreError,
|
|
@@ -99,6 +99,90 @@ function resolveVaultPath(rawPath) {
|
|
|
99
99
|
throw err;
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Resolve a path that may not exist yet through its nearest existing parent.
|
|
104
|
+
*
|
|
105
|
+
* `realpathSync(file)` cannot canonicalize a first-use path. Walking upward
|
|
106
|
+
* first preserves symlink-aware AAD binding without making callers duplicate
|
|
107
|
+
* the package's private path recipe.
|
|
108
|
+
*/
|
|
109
|
+
function resolveProspectiveVaultPath(rawPath) {
|
|
110
|
+
const resolved = pathResolve(rawPath);
|
|
111
|
+
let cursor = resolved;
|
|
112
|
+
const missing = [];
|
|
113
|
+
while (true) {
|
|
114
|
+
try {
|
|
115
|
+
return join(realpathSync(cursor), ...missing);
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
if (err.code !== "ENOENT")
|
|
119
|
+
throw err;
|
|
120
|
+
const parent = dirname(cursor);
|
|
121
|
+
if (parent === cursor)
|
|
122
|
+
return resolved;
|
|
123
|
+
missing.unshift(basename(cursor));
|
|
124
|
+
cursor = parent;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function inspectFileIdentity(path) {
|
|
129
|
+
try {
|
|
130
|
+
const { dev, ino } = statSync(path);
|
|
131
|
+
return { state: "found", identity: { dev, ino } };
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
if (err.code === "ENOENT") {
|
|
135
|
+
return { state: "absent" };
|
|
136
|
+
}
|
|
137
|
+
return { state: "unknown", cause: err };
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** True only when both pathnames can be proven to identify the same object. */
|
|
141
|
+
function sameFileIdentity(left, right) {
|
|
142
|
+
const leftResult = inspectFileIdentity(left);
|
|
143
|
+
const rightResult = inspectFileIdentity(right);
|
|
144
|
+
return leftResult.state === "found" &&
|
|
145
|
+
rightResult.state === "found" &&
|
|
146
|
+
leftResult.identity.dev === rightResult.identity.dev &&
|
|
147
|
+
leftResult.identity.ino === rightResult.identity.ino;
|
|
148
|
+
}
|
|
149
|
+
function isDescendantPath(parent, candidate) {
|
|
150
|
+
const rel = relative(parent, candidate);
|
|
151
|
+
return rel !== "" && rel !== ".." &&
|
|
152
|
+
!rel.startsWith(`..${sep}`) && !isAbsolute(rel);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Lock both transaction members in one stable order.
|
|
156
|
+
*
|
|
157
|
+
* Different vault names may intentionally or accidentally resolve to the same
|
|
158
|
+
* sidecar. Locking only the vault lets those creators race and couple their
|
|
159
|
+
* rollback high-water marks. The identity check deduplicates lock pathnames
|
|
160
|
+
* that alias on a case-insensitive filesystem.
|
|
161
|
+
*/
|
|
162
|
+
async function acquireCreateLocks(vaultPath, sidecarPath) {
|
|
163
|
+
const releases = [];
|
|
164
|
+
const heldLockPaths = [];
|
|
165
|
+
const targets = [...new Set([vaultPath, sidecarPath])].sort();
|
|
166
|
+
try {
|
|
167
|
+
for (const target of targets) {
|
|
168
|
+
const lockPath = `${target}.lock`;
|
|
169
|
+
if (heldLockPaths.some((held) => sameFileIdentity(held, lockPath))) {
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
releases.push(await acquireWriteLock(target));
|
|
173
|
+
heldLockPaths.push(lockPath);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
for (const release of releases.reverse())
|
|
178
|
+
release();
|
|
179
|
+
throw err;
|
|
180
|
+
}
|
|
181
|
+
return () => {
|
|
182
|
+
for (const release of releases.reverse())
|
|
183
|
+
release();
|
|
184
|
+
};
|
|
185
|
+
}
|
|
102
186
|
// =============================================================================
|
|
103
187
|
// AAD derivation
|
|
104
188
|
// =============================================================================
|
|
@@ -137,6 +221,178 @@ function checkVaultPerms(path) {
|
|
|
137
221
|
}
|
|
138
222
|
}
|
|
139
223
|
// =============================================================================
|
|
224
|
+
// createVault — first-use factory
|
|
225
|
+
// =============================================================================
|
|
226
|
+
/**
|
|
227
|
+
* Create an empty, AAD-bound session vault and its rollback sidecar.
|
|
228
|
+
*
|
|
229
|
+
* Creation is idempotent only for a complete pair: if both files already
|
|
230
|
+
* exist they are left byte-for-byte untouched and `created` is false. A
|
|
231
|
+
* vault-only or sidecar-only state is refused rather than "repaired" because
|
|
232
|
+
* replacing either half could erase rollback evidence or make existing
|
|
233
|
+
* ciphertext permanently unreadable.
|
|
234
|
+
*
|
|
235
|
+
* Both destinations use no-clobber publication: the completed vault temp is
|
|
236
|
+
* linked into place first, then the sidecar is the logical commit point. A
|
|
237
|
+
* successful return therefore means both public paths exist, and a competing
|
|
238
|
+
* destination is never replaced. This is temp-file/link crash safety, not an
|
|
239
|
+
* fsync or power-loss durability guarantee.
|
|
240
|
+
*
|
|
241
|
+
* The caller retains ownership of `opts.key`; this function snapshots it for
|
|
242
|
+
* the duration of the call, zeroes that private copy, and never mutates,
|
|
243
|
+
* zeroes, or stores the caller's buffer.
|
|
244
|
+
*/
|
|
245
|
+
export async function createVault(opts) {
|
|
246
|
+
if (!Buffer.isBuffer(opts.key) || opts.key.length !== KEY_LENGTH) {
|
|
247
|
+
throw new VaultError("VAULT_INVALID_KEY", `Vault creation requires a ${KEY_LENGTH}-byte AES-256 key.`);
|
|
248
|
+
}
|
|
249
|
+
// Snapshot before the first await. A caller may zero or reuse its Buffer as
|
|
250
|
+
// soon as this function yields while waiting for another creator's lock.
|
|
251
|
+
const creationKey = Buffer.from(opts.key);
|
|
252
|
+
const requestedVaultPath = opts.path ?? DEFAULT_VAULT_PATH;
|
|
253
|
+
// Retain a useful target even when canonicalization itself fails. Once
|
|
254
|
+
// resolution succeeds this becomes the canonical path used everywhere else.
|
|
255
|
+
let vaultPath = requestedVaultPath;
|
|
256
|
+
let release = null;
|
|
257
|
+
let tmpVault = null;
|
|
258
|
+
let vaultPublished = false;
|
|
259
|
+
try {
|
|
260
|
+
vaultPath = resolveProspectiveVaultPath(requestedVaultPath);
|
|
261
|
+
const sidecarPath = resolveProspectiveVaultPath(opts.sidecarPath ?? join(dirname(vaultPath), "vault.seen-version"));
|
|
262
|
+
if (sidecarPath === vaultPath) {
|
|
263
|
+
throw new VaultError("VAULT_CREATE_CONFLICT", "Vault and sidecar paths must be different files.");
|
|
264
|
+
}
|
|
265
|
+
if (isDescendantPath(vaultPath, sidecarPath) ||
|
|
266
|
+
isDescendantPath(sidecarPath, vaultPath)) {
|
|
267
|
+
throw new VaultError("VAULT_CREATE_CONFLICT", "Vault and sidecar paths must not contain one another.");
|
|
268
|
+
}
|
|
269
|
+
mkdirSync(dirname(vaultPath), { recursive: true, mode: VAULT_DIR_MODE });
|
|
270
|
+
mkdirSync(dirname(sidecarPath), { recursive: true, mode: VAULT_DIR_MODE });
|
|
271
|
+
release = await acquireCreateLocks(vaultPath, sidecarPath);
|
|
272
|
+
const vaultExists = existsSync(vaultPath);
|
|
273
|
+
const sidecarExists = existsSync(sidecarPath);
|
|
274
|
+
if (vaultExists && sidecarExists) {
|
|
275
|
+
if (sameFileIdentity(vaultPath, sidecarPath)) {
|
|
276
|
+
throw new VaultError("VAULT_CREATE_CONFLICT", "Vault and sidecar paths identify the same filesystem object.");
|
|
277
|
+
}
|
|
278
|
+
return { created: false, path: vaultPath };
|
|
279
|
+
}
|
|
280
|
+
if (vaultExists || sidecarExists) {
|
|
281
|
+
const present = vaultExists ? "vault" : "sidecar";
|
|
282
|
+
const missing = vaultExists ? "sidecar" : "vault";
|
|
283
|
+
throw new VaultError("VAULT_CREATE_CONFLICT", `Refusing to create vault: ${present} exists but ${missing} is missing. ` +
|
|
284
|
+
"Investigate the incomplete pair; first-use creation never repairs or overwrites it.");
|
|
285
|
+
}
|
|
286
|
+
const payload = {
|
|
287
|
+
schema: VAULT_SCHEMA_VERSION,
|
|
288
|
+
vaultVersion: 1,
|
|
289
|
+
secrets: {},
|
|
290
|
+
};
|
|
291
|
+
const encrypted = encryptObject(payload, creationKey, deriveAad(vaultPath, VAULT_SCHEMA_VERSION));
|
|
292
|
+
if (encrypted === null) {
|
|
293
|
+
throw new VaultError("VAULT_ENCRYPT_FAILED", "Encryption returned null; vault was not created.");
|
|
294
|
+
}
|
|
295
|
+
const tmpVaultCandidate = `${vaultPath}.${randomBytes(8).toString("hex")}.tmp`;
|
|
296
|
+
const tmpFd = openSync(tmpVaultCandidate, "wx", VAULT_FILE_MODE);
|
|
297
|
+
tmpVault = tmpVaultCandidate;
|
|
298
|
+
let tmpClosed = false;
|
|
299
|
+
try {
|
|
300
|
+
writeFileSync(tmpFd, encrypted);
|
|
301
|
+
closeSync(tmpFd);
|
|
302
|
+
tmpClosed = true;
|
|
303
|
+
}
|
|
304
|
+
finally {
|
|
305
|
+
if (!tmpClosed) {
|
|
306
|
+
try {
|
|
307
|
+
closeSync(tmpFd);
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
// Preserve the write/first-close failure; cleanup follows below.
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
linkSync(tmpVault, vaultPath);
|
|
315
|
+
vaultPublished = true;
|
|
316
|
+
createSidecar(sidecarPath, { highestSeenVersion: 1 });
|
|
317
|
+
// Both public paths are committed. link(2) keeps the source temp, so
|
|
318
|
+
// remove it without converting an otherwise successful creation into a
|
|
319
|
+
// false failure if cleanup itself is unavailable.
|
|
320
|
+
try {
|
|
321
|
+
unlinkSync(tmpVault);
|
|
322
|
+
tmpVault = null;
|
|
323
|
+
}
|
|
324
|
+
catch (cleanupErr) {
|
|
325
|
+
const detail = cleanupErr instanceof Error
|
|
326
|
+
? cleanupErr.message
|
|
327
|
+
: String(cleanupErr);
|
|
328
|
+
process.stderr.write(`[secrets] WARNING: vault created but temp file ${tmpVault} could not be removed: ${detail}.\n`);
|
|
329
|
+
}
|
|
330
|
+
return { created: true, path: vaultPath };
|
|
331
|
+
}
|
|
332
|
+
catch (err) {
|
|
333
|
+
let cleanupFailure = null;
|
|
334
|
+
// If the sidecar did not commit, remove only the vault inode published by
|
|
335
|
+
// this call. A non-cooperating writer may have replaced the pathname after
|
|
336
|
+
// publication; filesystem identity prevents us from deleting its file.
|
|
337
|
+
if (vaultPublished && tmpVault !== null) {
|
|
338
|
+
const tmpIdentity = inspectFileIdentity(tmpVault);
|
|
339
|
+
const vaultIdentity = inspectFileIdentity(vaultPath);
|
|
340
|
+
if (vaultIdentity.state === "found") {
|
|
341
|
+
if (tmpIdentity.state !== "found") {
|
|
342
|
+
cleanupFailure = tmpIdentity.state === "unknown"
|
|
343
|
+
? tmpIdentity.cause
|
|
344
|
+
: new Error(`Cannot verify ownership of published vault ${vaultPath}: its source temp is missing.`);
|
|
345
|
+
}
|
|
346
|
+
else if (tmpIdentity.identity.dev === vaultIdentity.identity.dev &&
|
|
347
|
+
tmpIdentity.identity.ino === vaultIdentity.identity.ino) {
|
|
348
|
+
try {
|
|
349
|
+
unlinkSync(vaultPath);
|
|
350
|
+
}
|
|
351
|
+
catch (cleanupErr) {
|
|
352
|
+
if (cleanupErr.code !== "ENOENT") {
|
|
353
|
+
cleanupFailure = cleanupErr;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
// A different identity means a non-cooperating writer replaced the
|
|
358
|
+
// pathname; it is not ours to remove.
|
|
359
|
+
}
|
|
360
|
+
else if (vaultIdentity.state === "unknown") {
|
|
361
|
+
cleanupFailure = vaultIdentity.cause;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
if (tmpVault !== null) {
|
|
365
|
+
try {
|
|
366
|
+
unlinkSync(tmpVault);
|
|
367
|
+
}
|
|
368
|
+
catch (cleanupErr) {
|
|
369
|
+
if (cleanupErr.code !== "ENOENT" &&
|
|
370
|
+
cleanupFailure === null) {
|
|
371
|
+
cleanupFailure = cleanupErr;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
if (cleanupFailure !== null) {
|
|
376
|
+
const createDetail = err instanceof Error ? err.message : String(err);
|
|
377
|
+
const cleanupDetail = cleanupFailure instanceof Error
|
|
378
|
+
? cleanupFailure.message
|
|
379
|
+
: String(cleanupFailure);
|
|
380
|
+
throw new VaultError("VAULT_CREATE_ROLLBACK_FAILED", `Vault creation failed (${createDetail}) and its temporary artifacts could not be removed: ${cleanupDetail}`);
|
|
381
|
+
}
|
|
382
|
+
if (err instanceof VaultError)
|
|
383
|
+
throw err;
|
|
384
|
+
if (err.code === "EEXIST") {
|
|
385
|
+
throw new VaultError("VAULT_CREATE_CONFLICT", "Refusing to create vault: a vault or sidecar destination appeared during creation and was not replaced.");
|
|
386
|
+
}
|
|
387
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
388
|
+
throw new VaultError("VAULT_CREATE_FAILED", `Failed to create vault at ${vaultPath}: ${detail}`);
|
|
389
|
+
}
|
|
390
|
+
finally {
|
|
391
|
+
creationKey.fill(0);
|
|
392
|
+
release?.();
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
// =============================================================================
|
|
140
396
|
// openVault — factory
|
|
141
397
|
// =============================================================================
|
|
142
398
|
/**
|
|
@@ -464,13 +720,22 @@ function buildVault(args) {
|
|
|
464
720
|
if (closed || key === null)
|
|
465
721
|
throw new VaultClosedError();
|
|
466
722
|
};
|
|
723
|
+
const assertVersionNotRolledBack = (candidateVersion) => {
|
|
724
|
+
const sidecar = readSidecar(args.sidecarPath);
|
|
725
|
+
const highestTrustedVersion = Math.max(vaultVersion, sidecar?.highestSeenVersion ?? vaultVersion);
|
|
726
|
+
if (candidateVersion < highestTrustedVersion) {
|
|
727
|
+
throw new VaultRollbackError(highestTrustedVersion, candidateVersion);
|
|
728
|
+
}
|
|
729
|
+
return sidecar;
|
|
730
|
+
};
|
|
467
731
|
/**
|
|
468
732
|
* Refresh in-memory state from disk if the coherence strategy says to and
|
|
469
|
-
* mtime
|
|
470
|
-
*
|
|
733
|
+
* mtime changed. Writers force a refresh after taking the lock because mtime
|
|
734
|
+
* equality is not a safe write-side freshness check. Throws VaultError on a
|
|
735
|
+
* missing vault file (M4) and VaultDecryptError on decrypt failure.
|
|
471
736
|
*/
|
|
472
|
-
const maybeReload = () => {
|
|
473
|
-
if (args.coherence === "best-effort")
|
|
737
|
+
const maybeReload = (forceFromDisk = false) => {
|
|
738
|
+
if (!forceFromDisk && args.coherence === "best-effort")
|
|
474
739
|
return;
|
|
475
740
|
// Drop existsSync — statSync already throws ENOENT. Translating the error
|
|
476
741
|
// gives us one clean code path and one fewer syscall (M4).
|
|
@@ -484,7 +749,7 @@ function buildVault(args) {
|
|
|
484
749
|
}
|
|
485
750
|
throw err;
|
|
486
751
|
}
|
|
487
|
-
if (st.mtimeMs === mtimeMs)
|
|
752
|
+
if (!forceFromDisk && st.mtimeMs === mtimeMs)
|
|
488
753
|
return;
|
|
489
754
|
if (args.coherence === "strict" && st.mtimeMs > mtimeMs) {
|
|
490
755
|
// `strict` means the caller wants an explicit reload(); block reads.
|
|
@@ -523,10 +788,19 @@ function buildVault(args) {
|
|
|
523
788
|
throw new VaultDecryptError("Decrypted payload has invalid shape after external change — possible corruption.");
|
|
524
789
|
}
|
|
525
790
|
}
|
|
791
|
+
const sidecar = assertVersionNotRolledBack(payload.vaultVersion);
|
|
792
|
+
// A same-mtime replacement is possible on fast or coarse filesystems.
|
|
793
|
+
// Writes force a disk read while holding the file lock, so strict mode
|
|
794
|
+
// must still reject a snapshot whose encrypted version advanced even when
|
|
795
|
+
// the timestamp could not distinguish the replacement.
|
|
796
|
+
if (forceFromDisk &&
|
|
797
|
+
args.coherence === "strict" &&
|
|
798
|
+
payload.vaultVersion !== vaultVersion) {
|
|
799
|
+
throw new VaultError("VAULT_STALE_SNAPSHOT", `Vault file version advanced externally (${payload.vaultVersion} vs session ${vaultVersion}); call reload() to continue.`);
|
|
800
|
+
}
|
|
526
801
|
secrets = { ...payload.secrets };
|
|
527
802
|
vaultVersion = payload.vaultVersion;
|
|
528
803
|
mtimeMs = st.mtimeMs;
|
|
529
|
-
const sidecar = readSidecar(args.sidecarPath);
|
|
530
804
|
if (sidecar === null || payload.vaultVersion > sidecar.highestSeenVersion) {
|
|
531
805
|
writeSidecar(args.sidecarPath, { highestSeenVersion: payload.vaultVersion });
|
|
532
806
|
}
|
|
@@ -544,9 +818,14 @@ function buildVault(args) {
|
|
|
544
818
|
// Re-check open after awaiting the lock — TTL or a sibling close()
|
|
545
819
|
// could have fired while we were queued (H2).
|
|
546
820
|
assertOpen();
|
|
547
|
-
|
|
821
|
+
// The lock serializes writers, but mtime alone cannot prove that the
|
|
822
|
+
// ciphertext is unchanged: two atomic replacements can share an mtime
|
|
823
|
+
// on fast or coarse filesystems. Re-read under the lock before applying
|
|
824
|
+
// the mutation so a later writer always merges the prior commit.
|
|
825
|
+
maybeReload(true);
|
|
548
826
|
const next = { ...secrets };
|
|
549
|
-
mutator(next)
|
|
827
|
+
if (!mutator(next))
|
|
828
|
+
return false;
|
|
550
829
|
const nextVersion = vaultVersion + 1;
|
|
551
830
|
const payload = {
|
|
552
831
|
schema: VAULT_SCHEMA_VERSION,
|
|
@@ -577,6 +856,7 @@ function buildVault(args) {
|
|
|
577
856
|
secrets = next;
|
|
578
857
|
vaultVersion = nextVersion;
|
|
579
858
|
mtimeMs = statSync(args.vaultPath).mtimeMs;
|
|
859
|
+
return true;
|
|
580
860
|
}
|
|
581
861
|
finally {
|
|
582
862
|
release();
|
|
@@ -623,44 +903,48 @@ function buildVault(args) {
|
|
|
623
903
|
*/
|
|
624
904
|
const withAudit = async (op, successType, missingType, failType, fn, extras) => {
|
|
625
905
|
assertOpen();
|
|
626
|
-
const
|
|
627
|
-
|
|
906
|
+
const wallStartedAt = Date.now();
|
|
907
|
+
const monotonicStartedAt = performance.now();
|
|
908
|
+
const policyFrame = await runBeforeHooks(op, (error) => ({
|
|
628
909
|
type: rejectedEventType(op),
|
|
629
|
-
timestamp: new Date(
|
|
910
|
+
timestamp: new Date(wallStartedAt).toISOString(),
|
|
630
911
|
backend: "session-vault",
|
|
912
|
+
operation: op,
|
|
631
913
|
key: op.key,
|
|
632
914
|
prefix: op.prefix,
|
|
633
915
|
error,
|
|
634
|
-
durationMs:
|
|
916
|
+
durationMs: performance.now() - monotonicStartedAt,
|
|
635
917
|
}));
|
|
636
|
-
// Re-check after the await — TTL or sibling close() could have fired
|
|
637
|
-
// while before-hooks awaited (H2).
|
|
638
|
-
assertOpen();
|
|
639
|
-
const start = Date.now();
|
|
640
918
|
try {
|
|
919
|
+
// Re-check after the await — TTL or sibling close() could have fired
|
|
920
|
+
// while before-hooks awaited (H2). Keep this inside the audited region
|
|
921
|
+
// so the captured policy frame observes the resulting failure.
|
|
922
|
+
assertOpen();
|
|
641
923
|
const value = await fn();
|
|
642
924
|
const isMissing = missingType !== null && (value === null || value === false);
|
|
643
925
|
runAfterHooks({
|
|
644
926
|
type: isMissing ? missingType : successType,
|
|
645
|
-
timestamp: new Date(
|
|
927
|
+
timestamp: new Date(wallStartedAt).toISOString(),
|
|
646
928
|
backend: "session-vault",
|
|
929
|
+
operation: op,
|
|
647
930
|
key: op.key,
|
|
648
931
|
prefix: op.prefix,
|
|
649
932
|
...(extras !== undefined ? extras(value) : {}),
|
|
650
|
-
durationMs:
|
|
651
|
-
});
|
|
933
|
+
durationMs: performance.now() - monotonicStartedAt,
|
|
934
|
+
}, policyFrame);
|
|
652
935
|
return value;
|
|
653
936
|
}
|
|
654
937
|
catch (err) {
|
|
655
938
|
runAfterHooks({
|
|
656
939
|
type: failType,
|
|
657
|
-
timestamp: new Date(
|
|
940
|
+
timestamp: new Date(wallStartedAt).toISOString(),
|
|
658
941
|
backend: "session-vault",
|
|
942
|
+
operation: op,
|
|
659
943
|
key: op.key,
|
|
660
944
|
prefix: op.prefix,
|
|
661
945
|
error: err instanceof Error ? err.message : String(err),
|
|
662
|
-
durationMs:
|
|
663
|
-
});
|
|
946
|
+
durationMs: performance.now() - monotonicStartedAt,
|
|
947
|
+
}, policyFrame);
|
|
664
948
|
throw err;
|
|
665
949
|
}
|
|
666
950
|
};
|
|
@@ -684,20 +968,22 @@ function buildVault(args) {
|
|
|
684
968
|
// `async` keyword ensures a sync throw from validateName surfaces as a
|
|
685
969
|
// promise rejection, matching the declared `Promise<void>` contract.
|
|
686
970
|
validateName(name);
|
|
687
|
-
return withAudit({ type: "write", key: name }, "credential_written", null, "credential_write_failed",
|
|
688
|
-
current[name] = value;
|
|
689
|
-
}));
|
|
690
|
-
},
|
|
691
|
-
delete(name) {
|
|
692
|
-
return withAudit({ type: "delete", key: name }, "credential_deleted", "credential_delete_failed", "credential_delete_failed", async () => {
|
|
693
|
-
if (!(name in secrets))
|
|
694
|
-
return false;
|
|
971
|
+
return withAudit({ type: "write", key: name }, "credential_written", null, "credential_write_failed", async () => {
|
|
695
972
|
await writeOp((current) => {
|
|
696
|
-
|
|
973
|
+
current[name] = value;
|
|
974
|
+
return true;
|
|
697
975
|
});
|
|
698
|
-
return true;
|
|
699
976
|
});
|
|
700
977
|
},
|
|
978
|
+
delete(name) {
|
|
979
|
+
return withAudit({ type: "delete", key: name }, "credential_deleted", "credential_delete_failed", "credential_delete_failed", () => writeOp((current) => {
|
|
980
|
+
if (name in current) {
|
|
981
|
+
delete current[name];
|
|
982
|
+
return true;
|
|
983
|
+
}
|
|
984
|
+
return false;
|
|
985
|
+
}));
|
|
986
|
+
},
|
|
701
987
|
async reload() {
|
|
702
988
|
assertOpen();
|
|
703
989
|
let st;
|
|
@@ -742,6 +1028,7 @@ function buildVault(args) {
|
|
|
742
1028
|
throw new VaultDecryptError("Decrypted payload has invalid shape during reload — possible corruption.");
|
|
743
1029
|
}
|
|
744
1030
|
}
|
|
1031
|
+
assertVersionNotRolledBack(payload.vaultVersion);
|
|
745
1032
|
secrets = { ...payload.secrets };
|
|
746
1033
|
vaultVersion = payload.vaultVersion;
|
|
747
1034
|
mtimeMs = st.mtimeMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-vault.js","sourceRoot":"","sources":["../../src/vault/session-vault.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-vault.js","sourceRoot":"","sources":["../../src/vault/session-vault.ts"],"names":[],"mappings":"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"}
|
package/dist/vault/sidecar.d.ts
CHANGED
|
@@ -27,6 +27,15 @@ export declare function readSidecar(path: string): SidecarContent | null;
|
|
|
27
27
|
* fail JSON parse on the next open.
|
|
28
28
|
*/
|
|
29
29
|
export declare function writeSidecar(path: string, content: SidecarContent): void;
|
|
30
|
+
/**
|
|
31
|
+
* Publish an initial sidecar without ever replacing an existing destination.
|
|
32
|
+
*
|
|
33
|
+
* A hard link is the portable Node filesystem primitive that combines an
|
|
34
|
+
* already-complete temp file with EEXIST-preserving publication. The temp and
|
|
35
|
+
* destination are in the same directory, so they necessarily share a
|
|
36
|
+
* filesystem. Existing sidecar updates continue to use {@link writeSidecar}.
|
|
37
|
+
*/
|
|
38
|
+
export declare function createSidecar(path: string, content: SidecarContent): void;
|
|
30
39
|
/**
|
|
31
40
|
* Check sidecar file mode; warn on stderr if not 0600.
|
|
32
41
|
* Symmetric to the vault-file permission check — a world-readable sidecar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../../src/vault/sidecar.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../../src/vault/sidecar.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,qDAAqD;AACrD,eAAO,MAAM,eAAe,MAAQ,CAAC;AAErC,qEAAqE;AACrE,eAAO,MAAM,cAAc,MAAQ,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAkCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAiC/D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAgBxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,IAAI,CAaN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAepD"}
|