@centient/secrets 0.3.0 → 0.5.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 (44) hide show
  1. package/README.md +70 -0
  2. package/dist/cli/secrets-cli.d.ts +7 -2
  3. package/dist/cli/secrets-cli.d.ts.map +1 -1
  4. package/dist/cli/secrets-cli.js +49 -2
  5. package/dist/cli/secrets-cli.js.map +1 -1
  6. package/dist/crypto/vault-common.d.ts +27 -0
  7. package/dist/crypto/vault-common.d.ts.map +1 -1
  8. package/dist/crypto/vault-common.js +81 -0
  9. package/dist/crypto/vault-common.js.map +1 -1
  10. package/dist/index.d.ts +3 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/vault/policy.d.ts +50 -0
  15. package/dist/vault/policy.d.ts.map +1 -0
  16. package/dist/vault/policy.js +68 -0
  17. package/dist/vault/policy.js.map +1 -0
  18. package/dist/vault/types.d.ts +23 -1
  19. package/dist/vault/types.d.ts.map +1 -1
  20. package/dist/vault/vault-env.d.ts +11 -0
  21. package/dist/vault/vault-env.d.ts.map +1 -1
  22. package/dist/vault/vault-env.js +17 -0
  23. package/dist/vault/vault-env.js.map +1 -1
  24. package/dist/vault/vault-gpg.d.ts +9 -0
  25. package/dist/vault/vault-gpg.d.ts.map +1 -1
  26. package/dist/vault/vault-gpg.js +35 -1
  27. package/dist/vault/vault-gpg.js.map +1 -1
  28. package/dist/vault/vault-libsecret.d.ts +34 -0
  29. package/dist/vault/vault-libsecret.d.ts.map +1 -1
  30. package/dist/vault/vault-libsecret.js +109 -0
  31. package/dist/vault/vault-libsecret.js.map +1 -1
  32. package/dist/vault/vault-utils.d.ts +12 -2
  33. package/dist/vault/vault-utils.d.ts.map +1 -1
  34. package/dist/vault/vault-utils.js +21 -4
  35. package/dist/vault/vault-utils.js.map +1 -1
  36. package/dist/vault/vault-windows.d.ts +14 -0
  37. package/dist/vault/vault-windows.d.ts.map +1 -1
  38. package/dist/vault/vault-windows.js +41 -0
  39. package/dist/vault/vault-windows.js.map +1 -1
  40. package/dist/vault/vault.d.ts +25 -0
  41. package/dist/vault/vault.d.ts.map +1 -1
  42. package/dist/vault/vault.js +110 -3
  43. package/dist/vault/vault.js.map +1 -1
  44. package/package.json +24 -2
@@ -15,11 +15,12 @@
15
15
  *
16
16
  * Error handling: all functions return null/false on failure — never throw.
17
17
  */
18
- import { storeStringInKeychain, getStringFromKeychain, deleteFromKeychain, } from "../crypto/vault-common.js";
18
+ import { storeStringInKeychain, getStringFromKeychain, deleteFromKeychain, listAccountsInKeychain, } from "../crypto/vault-common.js";
19
19
  import { WindowsVault } from "./vault-windows.js";
20
20
  import { LibsecretVault } from "./vault-libsecret.js";
21
21
  import { GpgVault } from "./vault-gpg.js";
22
22
  import { EnvVault } from "./vault-env.js";
23
+ import { runBeforeHooks, runAfterHooks } from "./policy.js";
23
24
  // =============================================================================
24
25
  // Constants
25
26
  // =============================================================================
@@ -45,6 +46,9 @@ class KeychainVault {
45
46
  delete(key) {
46
47
  return deleteFromKeychain(AUTH_KEYCHAIN_SERVICE, key);
47
48
  }
49
+ async listKeys(prefix) {
50
+ return listAccountsInKeychain(AUTH_KEYCHAIN_SERVICE, prefix);
51
+ }
48
52
  }
49
53
  // =============================================================================
50
54
  // Cascade initialization
@@ -85,6 +89,13 @@ function touchSession() {
85
89
  }
86
90
  // =============================================================================
87
91
  // Public API
92
+ //
93
+ // Known limitation (0.5.0): when a `before` policy hook rejects an
94
+ // operation by throwing, the rejection propagates to the caller but no
95
+ // `after` event is emitted. This means policy-rejected operations are
96
+ // invisible to the audit trail. The full onion model — where `after`
97
+ // hooks on already-entered policies still fire on abort — ships in 1.0
98
+ // as part of `createSecretsClient`. See ADR-002 §1.0.0.
88
99
  // =============================================================================
89
100
  /**
90
101
  * Returns the type identifier for the active vault backend.
@@ -103,9 +114,18 @@ export function getActiveVaultType() {
103
114
  * @returns true on success, false if the backend write fails
104
115
  */
105
116
  export async function storeCredential(key, value) {
117
+ const start = performance.now();
118
+ await runBeforeHooks({ type: "write", key });
106
119
  const success = activeBackend.store(key, value);
107
120
  if (success)
108
121
  touchSession();
122
+ runAfterHooks({
123
+ type: success ? "credential_written" : "credential_write_failed",
124
+ timestamp: new Date().toISOString(),
125
+ backend: activeVaultType,
126
+ key,
127
+ durationMs: performance.now() - start,
128
+ });
109
129
  return success;
110
130
  }
111
131
  /**
@@ -115,9 +135,32 @@ export async function storeCredential(key, value) {
115
135
  * @returns The stored value, or null if not found / backend unavailable
116
136
  */
117
137
  export async function getCredential(key) {
118
- const value = activeBackend.retrieve(key);
138
+ const start = performance.now();
139
+ await runBeforeHooks({ type: "read", key });
140
+ let value;
141
+ try {
142
+ value = activeBackend.retrieve(key);
143
+ }
144
+ catch (err) {
145
+ runAfterHooks({
146
+ type: "credential_read_failed",
147
+ timestamp: new Date().toISOString(),
148
+ backend: activeVaultType,
149
+ key,
150
+ error: err instanceof Error ? err.message : String(err),
151
+ durationMs: performance.now() - start,
152
+ });
153
+ throw err;
154
+ }
119
155
  if (value !== null)
120
156
  touchSession();
157
+ runAfterHooks({
158
+ type: value !== null ? "credential_read" : "credential_read_missing",
159
+ timestamp: new Date().toISOString(),
160
+ backend: activeVaultType,
161
+ key,
162
+ durationMs: performance.now() - start,
163
+ });
121
164
  return value;
122
165
  }
123
166
  /**
@@ -127,6 +170,70 @@ export async function getCredential(key) {
127
170
  * @returns true on success (including "already deleted"), false on unexpected error
128
171
  */
129
172
  export async function deleteCredential(key) {
130
- return activeBackend.delete(key);
173
+ const start = performance.now();
174
+ await runBeforeHooks({ type: "delete", key });
175
+ const success = activeBackend.delete(key);
176
+ runAfterHooks({
177
+ type: success ? "credential_deleted" : "credential_delete_failed",
178
+ timestamp: new Date().toISOString(),
179
+ backend: activeVaultType,
180
+ key,
181
+ durationMs: performance.now() - start,
182
+ });
183
+ return success;
184
+ }
185
+ /**
186
+ * Enumerate credential keys in the active vault backend, optionally
187
+ * filtered by a key prefix.
188
+ *
189
+ * Returns only the keys — credential values are retrieved via
190
+ * `getCredential(key)` on demand. This keeps listing cheap and avoids
191
+ * pulling secret material into memory.
192
+ *
193
+ * @param prefix - optional key prefix filter. When omitted, all keys are
194
+ * returned.
195
+ *
196
+ * Note: credential keys must match `isValidKey` — lowercase alphanumeric
197
+ * plus hyphen and dot, first and last character alphanumeric, <=64 chars.
198
+ * Both `-` and `.` work as namespace separators; pick whichever convention
199
+ * reads best.
200
+ *
201
+ * @example
202
+ * // Enumerate all soma-owned Anthropic credentials
203
+ * const keys = await listCredentials("soma.anthropic.");
204
+ * for (const key of keys) {
205
+ * const value = await getCredential(key);
206
+ * // ... round-robin rotation, etc.
207
+ * }
208
+ */
209
+ export async function listCredentials(prefix) {
210
+ const start = performance.now();
211
+ await runBeforeHooks({ type: "enumerate", prefix });
212
+ let keys;
213
+ try {
214
+ keys = await activeBackend.listKeys(prefix);
215
+ }
216
+ catch (err) {
217
+ runAfterHooks({
218
+ type: "credential_enumerate_failed",
219
+ timestamp: new Date().toISOString(),
220
+ backend: activeVaultType,
221
+ prefix,
222
+ error: err instanceof Error ? err.message : String(err),
223
+ durationMs: performance.now() - start,
224
+ });
225
+ throw err;
226
+ }
227
+ if (keys.length > 0)
228
+ touchSession();
229
+ runAfterHooks({
230
+ type: "credential_enumerated",
231
+ timestamp: new Date().toISOString(),
232
+ backend: activeVaultType,
233
+ prefix,
234
+ keyCount: keys.length,
235
+ durationMs: performance.now() - start,
236
+ });
237
+ return keys;
131
238
  }
132
239
  //# sourceMappingURL=vault.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/vault/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/vault/vault.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,25 @@
1
1
  {
2
2
  "name": "@centient/secrets",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Cross-platform secrets vault with AES-256-GCM encryption and platform-native key storage",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/centient-labs/centient-sdk.git",
8
+ "directory": "packages/secrets"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/centient-labs/centient-sdk/issues"
12
+ },
13
+ "homepage": "https://github.com/centient-labs/centient-sdk/tree/main/packages/secrets#readme",
14
+ "author": "Owen Johnson",
15
+ "keywords": [
16
+ "centient",
17
+ "secrets",
18
+ "vault",
19
+ "encryption",
20
+ "aes-256-gcm",
21
+ "keychain"
22
+ ],
5
23
  "type": "module",
6
24
  "main": "./dist/index.js",
7
25
  "types": "./dist/index.d.ts",
@@ -20,12 +38,16 @@
20
38
  "vitest": "^4.0.17"
21
39
  },
22
40
  "files": [
23
- "dist"
41
+ "dist",
42
+ "README.md"
24
43
  ],
25
44
  "engines": {
26
45
  "node": ">=18.0.0"
27
46
  },
28
47
  "license": "MIT",
48
+ "dependencies": {
49
+ "dbus-next": "^0.10.2"
50
+ },
29
51
  "scripts": {
30
52
  "build": "tsc",
31
53
  "dev": "tsc --watch",