@the-ai-company/cbio-node-runtime 1.72.0 → 1.74.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 +20 -35
- package/dist/clients/agent/client.d.ts +7 -6
- package/dist/clients/agent/client.js +32 -16
- package/dist/clients/agent/client.js.map +1 -1
- package/dist/clients/agent/contracts.d.ts +9 -4
- package/dist/clients/agent/index.d.ts +1 -1
- package/dist/clients/owner/client.js +19 -19
- package/dist/clients/owner/client.js.map +1 -1
- package/dist/clients/owner/contracts.d.ts +2 -2
- package/dist/public-types.d.ts +3 -3
- package/dist/public-types.js +1 -1
- package/dist/public-types.js.map +1 -1
- package/dist/runtime/bootstrap.js +30 -14
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/index.d.ts +3 -3
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/storage/prefix.d.ts +1 -1
- package/dist/storage/prefix.js +2 -2
- package/dist/storage/prefix.js.map +1 -1
- package/dist/vault-core/contracts.d.ts +30 -142
- package/dist/vault-core/contracts.js +0 -20
- package/dist/vault-core/contracts.js.map +1 -1
- package/dist/vault-core/core.d.ts +17 -9
- package/dist/vault-core/core.js +85 -225
- package/dist/vault-core/core.js.map +1 -1
- package/dist/vault-core/defaults.d.ts +2 -4
- package/dist/vault-core/defaults.js +50 -47
- package/dist/vault-core/defaults.js.map +1 -1
- package/dist/vault-core/index.d.ts +2 -2
- package/dist/vault-core/index.js +1 -1
- package/dist/vault-core/index.js.map +1 -1
- package/dist/vault-core/persistence.d.ts +2 -4
- package/dist/vault-core/persistence.js +82 -85
- package/dist/vault-core/persistence.js.map +1 -1
- package/dist/vault-core/ports.d.ts +2 -4
- package/dist/vault-ingress/defaults.d.ts +3 -2
- package/dist/vault-ingress/defaults.js +6 -3
- package/dist/vault-ingress/defaults.js.map +1 -1
- package/dist/vault-ingress/index.d.ts +14 -5
- package/dist/vault-ingress/index.js +23 -29
- package/dist/vault-ingress/index.js.map +1 -1
- package/dist/vault-ingress/remote-transport.d.ts +3 -2
- package/dist/vault-ingress/remote-transport.js +19 -7
- package/dist/vault-ingress/remote-transport.js.map +1 -1
- package/dist/vault-ingress/server-utils.d.ts +1 -2
- package/dist/vault-ingress/server-utils.js +1 -1
- package/dist/vault-ingress/server-utils.js.map +1 -1
- package/docs/ARCHITECTURE.md +16 -14
- package/docs/REFERENCE.md +20 -37
- package/docs/api/README.md +6 -9
- package/docs/api/classes/IdentityError.md +1 -1
- package/docs/api/classes/OwnerClientError.md +1 -1
- package/docs/api/classes/PersistentVaultAgentIdentityRegistry.md +3 -3
- package/docs/api/classes/PersistentVaultAgentSecretGrantRegistry.md +6 -6
- package/docs/api/classes/PersistentVaultAuditLog.md +2 -2
- package/docs/api/classes/PersistentVaultSecretCustody.md +4 -4
- package/docs/api/classes/PersistentVaultSecretDestinationGrantRegistry.md +7 -7
- package/docs/api/classes/PersistentVaultSecretRepository.md +4 -6
- package/docs/api/classes/VaultCore.md +55 -21
- package/docs/api/classes/VaultCoreError.md +1 -1
- package/docs/api/enumerations/DispatchStatus.md +1 -1
- package/docs/api/enumerations/IdentityErrorCode.md +1 -1
- package/docs/api/enumerations/OwnerClientErrorCode.md +1 -1
- package/docs/api/functions/createAgentClient.md +1 -3
- package/docs/api/functions/createIdentity.md +1 -1
- package/docs/api/functions/createOwnerClient.md +1 -1
- package/docs/api/functions/createPersistentVaultCoreDependencies.md +1 -1
- package/docs/api/functions/createVault.md +1 -1
- package/docs/api/functions/createVaultCore.md +1 -1
- package/docs/api/functions/createVaultCoreDependencies.md +1 -1
- package/docs/api/functions/createVaultService.md +1 -1
- package/docs/api/functions/createWorkspaceStorage.md +1 -1
- package/docs/api/functions/deriveRootAgentId.md +1 -1
- package/docs/api/functions/deriveVaultWorkingKeyFromPassword.md +1 -1
- package/docs/api/functions/getDefaultWorkspaceDir.md +1 -1
- package/docs/api/functions/handleVaultAgentControlHttp.md +1 -1
- package/docs/api/functions/handleVaultAuditSse.md +1 -1
- package/docs/api/functions/handleVaultHttpDispatch.md +1 -1
- package/docs/api/functions/handleVaultPendingDispatchSse.md +1 -1
- package/docs/api/functions/initializeVaultCustody.md +1 -1
- package/docs/api/functions/listVaults.md +1 -1
- package/docs/api/functions/openOwnerSession.md +1 -1
- package/docs/api/functions/readVaultProfile.md +1 -1
- package/docs/api/functions/recoverVault.md +1 -1
- package/docs/api/functions/recoverVaultWorkingKey.md +1 -1
- package/docs/api/functions/restoreIdentity.md +1 -1
- package/docs/api/functions/updateVaultMetadata.md +1 -1
- package/docs/api/functions/writeVaultProfile.md +1 -1
- package/docs/api/interfaces/AgentAuditTestPingInput.md +17 -0
- package/docs/api/interfaces/AgentClient.md +23 -5
- package/docs/api/interfaces/AgentDispatchIntent.md +1 -1
- package/docs/api/interfaces/AgentDispatchTransport.md +21 -5
- package/docs/api/interfaces/AgentIdentity.md +1 -1
- package/docs/api/interfaces/AgentIdentityRecord.md +2 -2
- package/docs/api/interfaces/AgentRequestRecord.md +93 -11
- package/docs/api/interfaces/AgentRuntimeManifest.md +1 -1
- package/docs/api/interfaces/AgentSecretGrant.md +3 -3
- package/docs/api/interfaces/AgentSigner.md +1 -1
- package/docs/api/interfaces/AuditEntry.md +9 -59
- package/docs/api/interfaces/CbioRuntime.md +1 -3
- package/docs/api/interfaces/CreateAgentClientOptions.md +1 -1
- package/docs/api/interfaces/CreateIdentityOptions.md +1 -1
- package/docs/api/interfaces/CreateOwnerClientOptions.md +1 -1
- package/docs/api/interfaces/CreatePersistentVaultCoreDependenciesOptions.md +1 -1
- package/docs/api/interfaces/CreateVaultOptions.md +1 -1
- package/docs/api/interfaces/CreatedVault.md +1 -1
- package/docs/api/interfaces/DefaultPolicyEngineOptions.md +1 -1
- package/docs/api/interfaces/DispatchAuthorization.md +3 -3
- package/docs/api/interfaces/DispatchInstruction.md +3 -3
- package/docs/api/interfaces/DispatchRequest.md +4 -4
- package/docs/api/interfaces/DispatchResult.md +2 -2
- package/docs/api/interfaces/IStorageProvider.md +1 -1
- package/docs/api/interfaces/InitializeVaultCustodyOptions.md +1 -1
- package/docs/api/interfaces/InitializedVaultCustody.md +1 -1
- package/docs/api/interfaces/OpenOwnerSessionOptions.md +1 -1
- package/docs/api/interfaces/OwnerAgentProvisionResult.md +1 -1
- package/docs/api/interfaces/OwnerAuditSubscription.md +3 -3
- package/docs/api/interfaces/OwnerClient.md +5 -5
- package/docs/api/interfaces/OwnerCreateSecretInput.md +1 -1
- package/docs/api/interfaces/OwnerPendingDispatchSubscription.md +1 -1
- package/docs/api/interfaces/OwnerRemoveSecretInput.md +1 -1
- package/docs/api/interfaces/OwnerRequestRecord.md +73 -11
- package/docs/api/interfaces/OwnerSensitiveActionConfirmation.md +1 -1
- package/docs/api/interfaces/OwnerSensitiveActionContext.md +1 -1
- package/docs/api/interfaces/OwnerSession.md +1 -1
- package/docs/api/interfaces/OwnerUpdateSecretInput.md +1 -1
- package/docs/api/interfaces/PendingDispatchEvent.md +1 -1
- package/docs/api/interfaces/RecoverVaultOptions.md +1 -1
- package/docs/api/interfaces/RecoveredVault.md +1 -1
- package/docs/api/interfaces/RequestRecord.md +8 -7
- package/docs/api/interfaces/RestoreIdentityOptions.md +1 -1
- package/docs/api/interfaces/SecretDestinationGrant.md +3 -3
- package/docs/api/interfaces/SecretRecord.md +7 -7
- package/docs/api/interfaces/Signer.md +1 -1
- package/docs/api/interfaces/VaultApproveDispatchInput.md +1 -1
- package/docs/api/interfaces/VaultAuditQueryInput.md +1 -1
- package/docs/api/interfaces/VaultCoreDependenciesOptions.md +1 -1
- package/docs/api/interfaces/VaultCreateAgentInput.md +1 -1
- package/docs/api/interfaces/VaultExportSecretInput.md +1 -1
- package/docs/api/interfaces/VaultGetRequestInput.md +1 -1
- package/docs/api/interfaces/VaultGrantAgentSecretInput.md +1 -1
- package/docs/api/interfaces/VaultGrantSecretDestinationInput.md +1 -1
- package/docs/api/interfaces/VaultImportAgentInput.md +1 -1
- package/docs/api/interfaces/VaultIssueSessionTokenInput.md +1 -1
- package/docs/api/interfaces/VaultListAgentsInput.md +1 -1
- package/docs/api/interfaces/VaultListGrantsInput.md +1 -1
- package/docs/api/interfaces/VaultListRequestsInput.md +1 -1
- package/docs/api/interfaces/VaultListSecretsInput.md +1 -1
- package/docs/api/interfaces/VaultMetadata.md +1 -1
- package/docs/api/interfaces/VaultObject.md +1 -1
- package/docs/api/interfaces/VaultPrincipal.md +1 -1
- package/docs/api/interfaces/VaultProfile.md +1 -1
- package/docs/api/interfaces/VaultReadAgentPrivateKeyInput.md +1 -1
- package/docs/api/interfaces/VaultReadSecretPlaintextInput.md +1 -1
- package/docs/api/interfaces/VaultRevokeAgentSecretInput.md +1 -1
- package/docs/api/interfaces/VaultRevokeSecretDestinationInput.md +1 -1
- package/docs/api/interfaces/VaultRevokeSessionTokenInput.md +1 -1
- package/docs/api/interfaces/VaultService.md +28 -12
- package/docs/api/interfaces/VaultUpdateAgentInput.md +1 -1
- package/docs/api/type-aliases/AgentId.md +1 -1
- package/docs/api/type-aliases/AgentRequestResult.md +1 -1
- package/docs/api/type-aliases/CbioRuntimeModule.md +1 -1
- package/docs/api/type-aliases/DispatchApprovalDecision.md +1 -1
- package/docs/api/type-aliases/GrantStatus.md +1 -1
- package/docs/api/type-aliases/SecretAlias.md +7 -0
- package/docs/api/type-aliases/SecretId.md +7 -0
- package/docs/api/type-aliases/SecretLifecycleStatus.md +1 -1
- package/docs/api/type-aliases/VaultId.md +7 -0
- package/docs/api/type-aliases/VaultPrincipalKind.md +1 -1
- package/docs/api/variables/DEFAULT_VAULT_KEY_CUSTODY_BLOB_KEY.md +1 -1
- package/docs/zh/README.md +33 -66
- package/package.json +1 -1
- package/docs/api/enumerations/AuditOperation.md +0 -107
- package/docs/api/interfaces/AgentVisibleRequestRecord.md +0 -59
- package/docs/api/interfaces/AgentVisibleSecretRecord.md +0 -65
- package/docs/api/interfaces/OwnerVisibleRequestRecord.md +0 -79
- package/docs/api/interfaces/SecretAlias.md +0 -11
- package/docs/api/interfaces/SecretId.md +0 -11
- package/docs/api/interfaces/VaultId.md +0 -11
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
2
|
import * as crypto from "node:crypto";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
|
-
import
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
5
6
|
import { DispatchStatus, } from "./contracts.js";
|
|
6
7
|
import { DefaultPolicyEngine, HttpDispatchExecutor, InMemoryReplayGuard, RandomIdGenerator, SignatureAgentProofVerifier, SystemClock, } from "./defaults.js";
|
|
7
8
|
export class SqliteSecretRepository {
|
|
@@ -15,21 +16,21 @@ export class SqliteSecretRepository {
|
|
|
15
16
|
VALUES (?, ?, ?, ?)
|
|
16
17
|
ON CONFLICT(secret_id) DO UPDATE SET record = excluded.record, alias = excluded.alias
|
|
17
18
|
`);
|
|
18
|
-
stmt.run(record.secret_id
|
|
19
|
+
stmt.run(record.secret_id, record.vault_id, record.alias, JSON.stringify(record));
|
|
19
20
|
}
|
|
20
21
|
async delete(secret_id) {
|
|
21
|
-
this.db.prepare(`DELETE FROM secrets WHERE secret_id = ?`).run(secret_id
|
|
22
|
+
this.db.prepare(`DELETE FROM secrets WHERE secret_id = ?`).run(secret_id);
|
|
22
23
|
}
|
|
23
24
|
async getByAlias(alias) {
|
|
24
|
-
const row = this.db.prepare(`SELECT record FROM secrets WHERE alias = ?`).get(alias
|
|
25
|
+
const row = this.db.prepare(`SELECT record FROM secrets WHERE alias = ?`).get(alias);
|
|
25
26
|
return row ? JSON.parse(row.record) : null;
|
|
26
27
|
}
|
|
27
28
|
async list(vault_id) {
|
|
28
|
-
const rows = this.db.prepare(`SELECT record FROM secrets WHERE vault_id = ?`).all(vault_id
|
|
29
|
+
const rows = this.db.prepare(`SELECT record FROM secrets WHERE vault_id = ?`).all(vault_id);
|
|
29
30
|
return rows.map(r => JSON.parse(r.record));
|
|
30
31
|
}
|
|
31
32
|
async getById(secret_id) {
|
|
32
|
-
const row = this.db.prepare(`SELECT record FROM secrets WHERE secret_id = ?`).get(secret_id
|
|
33
|
+
const row = this.db.prepare(`SELECT record FROM secrets WHERE secret_id = ?`).get(secret_id);
|
|
33
34
|
return row ? JSON.parse(row.record) : null;
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -52,10 +53,10 @@ export class SqliteSecretCustody {
|
|
|
52
53
|
tag: tag.toString('hex'),
|
|
53
54
|
ciphertext: encrypted.toString('hex')
|
|
54
55
|
});
|
|
55
|
-
this.db.prepare(`INSERT INTO custody (secret_id, encrypted_payload) VALUES (?, ?) ON CONFLICT(secret_id) DO UPDATE SET encrypted_payload = excluded.encrypted_payload`).run(secret_id
|
|
56
|
+
this.db.prepare(`INSERT INTO custody (secret_id, encrypted_payload) VALUES (?, ?) ON CONFLICT(secret_id) DO UPDATE SET encrypted_payload = excluded.encrypted_payload`).run(secret_id, payload);
|
|
56
57
|
}
|
|
57
58
|
async load(secret_id) {
|
|
58
|
-
const row = this.db.prepare(`SELECT encrypted_payload FROM custody WHERE secret_id = ?`).get(secret_id
|
|
59
|
+
const row = this.db.prepare(`SELECT encrypted_payload FROM custody WHERE secret_id = ?`).get(secret_id);
|
|
59
60
|
if (!row)
|
|
60
61
|
return null;
|
|
61
62
|
try {
|
|
@@ -72,7 +73,7 @@ export class SqliteSecretCustody {
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
async delete(secret_id) {
|
|
75
|
-
this.db.prepare(`DELETE FROM custody WHERE secret_id = ?`).run(secret_id
|
|
76
|
+
this.db.prepare(`DELETE FROM custody WHERE secret_id = ?`).run(secret_id);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
export class SqliteAuditLog {
|
|
@@ -83,8 +84,8 @@ export class SqliteAuditLog {
|
|
|
83
84
|
this.db = db;
|
|
84
85
|
}
|
|
85
86
|
async append(entry) {
|
|
86
|
-
this.db.prepare(`INSERT INTO audit_logs (event_id, vault_id,
|
|
87
|
-
.run(entry.event_id, entry.vault_id, entry.
|
|
87
|
+
this.db.prepare(`INSERT INTO audit_logs (event_id, vault_id, function_name, actor_id, root_agent_id, secret_id, request_id, ts, entry) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
88
|
+
.run(entry.event_id, entry.vault_id, entry.function_name, entry.actor.id, entry.input?.root_agent_id || null, entry.input?.secret_id || null, entry.input?.request_id || null, entry.ts, JSON.stringify(entry));
|
|
88
89
|
const subs = this.subscribers.get(entry.vault_id);
|
|
89
90
|
if (subs) {
|
|
90
91
|
for (const cb of subs)
|
|
@@ -95,17 +96,13 @@ export class SqliteAuditLog {
|
|
|
95
96
|
let sql = `SELECT entry FROM audit_logs WHERE vault_id = ?`;
|
|
96
97
|
const params = [query.vault_id];
|
|
97
98
|
if (query.actor_id) {
|
|
98
|
-
sql += ` AND
|
|
99
|
-
params.push(
|
|
99
|
+
sql += ` AND actor_id = ?`;
|
|
100
|
+
params.push(query.actor_id);
|
|
100
101
|
}
|
|
101
102
|
if (query.root_agent_id) {
|
|
102
103
|
sql += ` AND root_agent_id = ?`;
|
|
103
104
|
params.push(query.root_agent_id);
|
|
104
105
|
}
|
|
105
|
-
if (query.secret_alias) {
|
|
106
|
-
sql += ` AND secret_alias = ?`;
|
|
107
|
-
params.push(query.secret_alias);
|
|
108
|
-
}
|
|
109
106
|
if (query.secret_id) {
|
|
110
107
|
sql += ` AND secret_id = ?`;
|
|
111
108
|
params.push(query.secret_id);
|
|
@@ -118,38 +115,57 @@ export class SqliteAuditLog {
|
|
|
118
115
|
sql += ` AND ts >= ?`;
|
|
119
116
|
params.push(query.since);
|
|
120
117
|
}
|
|
121
|
-
sql += ` ORDER BY ts ASC LIMIT 1000`;
|
|
118
|
+
sql += ` ORDER BY ts ASC LIMIT 1000`;
|
|
122
119
|
const rows = this.db.prepare(sql).all(...params);
|
|
123
120
|
return rows.map(r => JSON.parse(r.entry));
|
|
124
121
|
}
|
|
125
122
|
subscribe(vault_id, subscription) {
|
|
126
|
-
|
|
123
|
+
const replay = this.db.prepare(`SELECT entry FROM audit_logs WHERE vault_id = ? ORDER BY ts ASC LIMIT 1000`)
|
|
124
|
+
.all(vault_id);
|
|
125
|
+
for (const row of replay) {
|
|
126
|
+
const entry = JSON.parse(row.entry);
|
|
127
|
+
if (matchesAuditSubscription(entry, subscription)) {
|
|
128
|
+
subscription.onEvent(entry);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
let subs = this.subscribers.get(vault_id);
|
|
127
132
|
if (!subs) {
|
|
128
133
|
subs = new Set();
|
|
129
|
-
this.subscribers.set(vault_id
|
|
134
|
+
this.subscribers.set(vault_id, subs);
|
|
130
135
|
}
|
|
131
136
|
const callback = (entry) => {
|
|
132
137
|
if (subscription.afterEventId && entry.event_id <= subscription.afterEventId)
|
|
133
138
|
return;
|
|
134
|
-
if (subscription.
|
|
139
|
+
if (subscription.function_names && !subscription.function_names.includes(entry.function_name))
|
|
135
140
|
return;
|
|
136
|
-
if (subscription.root_agent_id && entry.root_agent_id !== subscription.root_agent_id)
|
|
141
|
+
if (subscription.root_agent_id && entry.input?.root_agent_id !== subscription.root_agent_id)
|
|
137
142
|
return;
|
|
138
|
-
if (subscription.request_id && entry.request_id !== subscription.request_id)
|
|
143
|
+
if (subscription.request_id && entry.input?.request_id !== subscription.request_id)
|
|
139
144
|
return;
|
|
140
145
|
subscription.onEvent(entry);
|
|
141
146
|
};
|
|
142
147
|
subs.add(callback);
|
|
143
148
|
return () => {
|
|
144
|
-
const current = this.subscribers.get(vault_id
|
|
149
|
+
const current = this.subscribers.get(vault_id);
|
|
145
150
|
if (current) {
|
|
146
151
|
current.delete(callback);
|
|
147
152
|
if (current.size === 0)
|
|
148
|
-
this.subscribers.delete(vault_id
|
|
153
|
+
this.subscribers.delete(vault_id);
|
|
149
154
|
}
|
|
150
155
|
};
|
|
151
156
|
}
|
|
152
157
|
}
|
|
158
|
+
function matchesAuditSubscription(entry, subscription) {
|
|
159
|
+
if (subscription.afterEventId && entry.event_id <= subscription.afterEventId)
|
|
160
|
+
return false;
|
|
161
|
+
if (subscription.function_names && !subscription.function_names.includes(entry.function_name))
|
|
162
|
+
return false;
|
|
163
|
+
if (subscription.root_agent_id && entry.input?.root_agent_id !== subscription.root_agent_id)
|
|
164
|
+
return false;
|
|
165
|
+
if (subscription.request_id && entry.input?.request_id !== subscription.request_id)
|
|
166
|
+
return false;
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
153
169
|
export class SqliteAgentIdentityRegistry {
|
|
154
170
|
db;
|
|
155
171
|
custody;
|
|
@@ -160,12 +176,12 @@ export class SqliteAgentIdentityRegistry {
|
|
|
160
176
|
async register(identity) {
|
|
161
177
|
const { private_key, ...metadata } = identity;
|
|
162
178
|
if (private_key) {
|
|
163
|
-
await this.custody.store(
|
|
179
|
+
await this.custody.store(identity.root_agent_id, private_key);
|
|
164
180
|
}
|
|
165
|
-
this.db.prepare(`INSERT INTO agents (vault_id, root_agent_id, record) VALUES (?, ?, ?) ON CONFLICT(vault_id, root_agent_id) DO UPDATE SET record = excluded.record`).run(identity.vault_id
|
|
181
|
+
this.db.prepare(`INSERT INTO agents (vault_id, root_agent_id, record) VALUES (?, ?, ?) ON CONFLICT(vault_id, root_agent_id) DO UPDATE SET record = excluded.record`).run(identity.vault_id, identity.root_agent_id, JSON.stringify(metadata));
|
|
166
182
|
}
|
|
167
183
|
async get(vault_id, root_agent_id) {
|
|
168
|
-
const row = this.db.prepare(`SELECT record FROM agents WHERE vault_id = ? AND root_agent_id = ?`).get(vault_id
|
|
184
|
+
const row = this.db.prepare(`SELECT record FROM agents WHERE vault_id = ? AND root_agent_id = ?`).get(vault_id, root_agent_id);
|
|
169
185
|
if (!row)
|
|
170
186
|
return null;
|
|
171
187
|
let record = JSON.parse(row.record);
|
|
@@ -173,28 +189,28 @@ export class SqliteAgentIdentityRegistry {
|
|
|
173
189
|
if (record.private_key) {
|
|
174
190
|
const pk = record.private_key;
|
|
175
191
|
delete record.private_key;
|
|
176
|
-
await this.custody.store(
|
|
177
|
-
this.db.prepare(`UPDATE agents SET record = ? WHERE vault_id = ? AND root_agent_id = ?`).run(JSON.stringify(record), vault_id
|
|
192
|
+
await this.custody.store(root_agent_id, pk);
|
|
193
|
+
this.db.prepare(`UPDATE agents SET record = ? WHERE vault_id = ? AND root_agent_id = ?`).run(JSON.stringify(record), vault_id, root_agent_id);
|
|
178
194
|
}
|
|
179
195
|
else {
|
|
180
|
-
const private_key = await this.custody.load(
|
|
196
|
+
const private_key = await this.custody.load(root_agent_id);
|
|
181
197
|
if (private_key)
|
|
182
198
|
record.private_key = private_key;
|
|
183
199
|
}
|
|
184
200
|
return record;
|
|
185
201
|
}
|
|
186
202
|
async list(vault_id) {
|
|
187
|
-
const rows = this.db.prepare(`SELECT record FROM agents WHERE vault_id = ?`).all(vault_id
|
|
203
|
+
const rows = this.db.prepare(`SELECT record FROM agents WHERE vault_id = ?`).all(vault_id);
|
|
188
204
|
return Promise.all(rows.map(async (r) => {
|
|
189
205
|
let record = JSON.parse(r.record);
|
|
190
206
|
if (record.private_key) {
|
|
191
207
|
const pk = record.private_key;
|
|
192
208
|
delete record.private_key;
|
|
193
|
-
await this.custody.store(
|
|
194
|
-
this.db.prepare(`UPDATE agents SET record = ? WHERE vault_id = ? AND root_agent_id = ?`).run(JSON.stringify(record), vault_id
|
|
209
|
+
await this.custody.store(record.root_agent_id, pk);
|
|
210
|
+
this.db.prepare(`UPDATE agents SET record = ? WHERE vault_id = ? AND root_agent_id = ?`).run(JSON.stringify(record), vault_id, record.root_agent_id);
|
|
195
211
|
}
|
|
196
212
|
else {
|
|
197
|
-
const private_key = await this.custody.load(
|
|
213
|
+
const private_key = await this.custody.load(record.root_agent_id);
|
|
198
214
|
if (private_key)
|
|
199
215
|
record.private_key = private_key;
|
|
200
216
|
}
|
|
@@ -208,15 +224,15 @@ export class SqliteAgentSecretGrantRegistry {
|
|
|
208
224
|
this.db = db;
|
|
209
225
|
}
|
|
210
226
|
async upsert(grant) {
|
|
211
|
-
this.db.prepare(`INSERT INTO grants (vault_id, root_agent_id, secret_id, record) VALUES (?, ?, ?, ?) ON CONFLICT(vault_id, root_agent_id, secret_id) DO UPDATE SET record = excluded.record`).run(grant.vault_id
|
|
227
|
+
this.db.prepare(`INSERT INTO grants (vault_id, root_agent_id, secret_id, record) VALUES (?, ?, ?, ?) ON CONFLICT(vault_id, root_agent_id, secret_id) DO UPDATE SET record = excluded.record`).run(grant.vault_id, grant.root_agent_id, grant.secret_id, JSON.stringify(grant));
|
|
212
228
|
}
|
|
213
229
|
async get(vault_id, root_agent_id, secret_id) {
|
|
214
|
-
const row = this.db.prepare(`SELECT record FROM grants WHERE vault_id = ? AND root_agent_id = ? AND secret_id = ?`).get(vault_id
|
|
230
|
+
const row = this.db.prepare(`SELECT record FROM grants WHERE vault_id = ? AND root_agent_id = ? AND secret_id = ?`).get(vault_id, root_agent_id, secret_id);
|
|
215
231
|
return row ? JSON.parse(row.record) : null;
|
|
216
232
|
}
|
|
217
233
|
async list(vault_id, root_agent_id) {
|
|
218
234
|
let sql = `SELECT record FROM grants WHERE vault_id = ?`;
|
|
219
|
-
const params = [vault_id
|
|
235
|
+
const params = [vault_id];
|
|
220
236
|
if (root_agent_id) {
|
|
221
237
|
sql += ` AND root_agent_id = ?`;
|
|
222
238
|
params.push(root_agent_id);
|
|
@@ -225,7 +241,7 @@ export class SqliteAgentSecretGrantRegistry {
|
|
|
225
241
|
return rows.map(r => JSON.parse(r.record));
|
|
226
242
|
}
|
|
227
243
|
async delete(vault_id, root_agent_id, secret_id) {
|
|
228
|
-
this.db.prepare(`DELETE FROM grants WHERE vault_id = ? AND root_agent_id = ? AND secret_id = ?`).run(vault_id
|
|
244
|
+
this.db.prepare(`DELETE FROM grants WHERE vault_id = ? AND root_agent_id = ? AND secret_id = ?`).run(vault_id, root_agent_id, secret_id);
|
|
229
245
|
}
|
|
230
246
|
}
|
|
231
247
|
export class SqliteSecretDestinationGrantRegistry {
|
|
@@ -234,24 +250,24 @@ export class SqliteSecretDestinationGrantRegistry {
|
|
|
234
250
|
this.db = db;
|
|
235
251
|
}
|
|
236
252
|
async upsert(grant) {
|
|
237
|
-
this.db.prepare(`INSERT INTO destination_grants (vault_id, secret_id, site_id, record) VALUES (?, ?, ?, ?) ON CONFLICT(vault_id, secret_id, site_id) DO UPDATE SET record = excluded.record`).run(grant.vault_id
|
|
253
|
+
this.db.prepare(`INSERT INTO destination_grants (vault_id, secret_id, site_id, record) VALUES (?, ?, ?, ?) ON CONFLICT(vault_id, secret_id, site_id) DO UPDATE SET record = excluded.record`).run(grant.vault_id, grant.secret_id, grant.site_id, JSON.stringify(grant));
|
|
238
254
|
}
|
|
239
255
|
async get(vault_id, secret_id, site_id) {
|
|
240
|
-
const row = this.db.prepare(`SELECT record FROM destination_grants WHERE vault_id = ? AND secret_id = ? AND site_id = ?`).get(vault_id
|
|
256
|
+
const row = this.db.prepare(`SELECT record FROM destination_grants WHERE vault_id = ? AND secret_id = ? AND site_id = ?`).get(vault_id, secret_id, site_id);
|
|
241
257
|
return row ? JSON.parse(row.record) : null;
|
|
242
258
|
}
|
|
243
259
|
async list(vault_id, secret_id) {
|
|
244
260
|
let sql = `SELECT record FROM destination_grants WHERE vault_id = ?`;
|
|
245
|
-
const params = [vault_id
|
|
261
|
+
const params = [vault_id];
|
|
246
262
|
if (secret_id) {
|
|
247
263
|
sql += ` AND secret_id = ?`;
|
|
248
|
-
params.push(secret_id
|
|
264
|
+
params.push(secret_id);
|
|
249
265
|
}
|
|
250
266
|
const rows = this.db.prepare(sql).all(...params);
|
|
251
267
|
return rows.map(r => JSON.parse(r.record));
|
|
252
268
|
}
|
|
253
269
|
async delete(vault_id, secret_id, site_id) {
|
|
254
|
-
this.db.prepare(`DELETE FROM destination_grants WHERE vault_id = ? AND secret_id = ? AND site_id = ?`).run(vault_id
|
|
270
|
+
this.db.prepare(`DELETE FROM destination_grants WHERE vault_id = ? AND secret_id = ? AND site_id = ?`).run(vault_id, secret_id, site_id);
|
|
255
271
|
}
|
|
256
272
|
}
|
|
257
273
|
export class SqliteRequestRecordRegistry {
|
|
@@ -262,20 +278,20 @@ export class SqliteRequestRecordRegistry {
|
|
|
262
278
|
this.db = db;
|
|
263
279
|
}
|
|
264
280
|
async save(record) {
|
|
265
|
-
this.db.prepare(`INSERT INTO requests (vault_id, request_id, root_agent_id, secret_id, record) VALUES (?, ?, ?, ?, ?) ON CONFLICT(request_id) DO UPDATE SET record = excluded.record, secret_id = excluded.secret_id`).run(record.vault_id
|
|
266
|
-
const subs = this.subscribers.get(record.vault_id
|
|
281
|
+
this.db.prepare(`INSERT INTO requests (vault_id, request_id, root_agent_id, secret_id, record) VALUES (?, ?, ?, ?, ?) ON CONFLICT(request_id) DO UPDATE SET record = excluded.record, secret_id = excluded.secret_id`).run(record.vault_id, record.request_id, record.root_agent_id, record.request.secret_id ?? null, JSON.stringify(record));
|
|
282
|
+
const subs = this.subscribers.get(record.vault_id);
|
|
267
283
|
if (subs) {
|
|
268
284
|
for (const cb of subs)
|
|
269
285
|
cb(record);
|
|
270
286
|
}
|
|
271
287
|
}
|
|
272
288
|
async get(vault_id, request_id) {
|
|
273
|
-
const row = this.db.prepare(`SELECT record FROM requests WHERE vault_id = ? AND request_id = ?`).get(vault_id
|
|
289
|
+
const row = this.db.prepare(`SELECT record FROM requests WHERE vault_id = ? AND request_id = ?`).get(vault_id, request_id);
|
|
274
290
|
return row ? JSON.parse(row.record) : null;
|
|
275
291
|
}
|
|
276
292
|
async list(vault_id, root_agent_id) {
|
|
277
293
|
let sql = `SELECT record FROM requests WHERE vault_id = ?`;
|
|
278
|
-
const params = [vault_id
|
|
294
|
+
const params = [vault_id];
|
|
279
295
|
if (root_agent_id) {
|
|
280
296
|
sql += ` AND root_agent_id = ?`;
|
|
281
297
|
params.push(root_agent_id);
|
|
@@ -284,7 +300,7 @@ export class SqliteRequestRecordRegistry {
|
|
|
284
300
|
return rows.map(r => JSON.parse(r.record));
|
|
285
301
|
}
|
|
286
302
|
subscribePending(vault_id, subscription) {
|
|
287
|
-
const rows = this.db.prepare(`SELECT record FROM requests WHERE vault_id = ?`).all(vault_id
|
|
303
|
+
const rows = this.db.prepare(`SELECT record FROM requests WHERE vault_id = ?`).all(vault_id);
|
|
288
304
|
const replay = rows.map(r => JSON.parse(r.record))
|
|
289
305
|
.filter((record) => record.execution.status === DispatchStatus.AWAITING_APPROVAL && !!record.pending_dispatch_event)
|
|
290
306
|
.map((record) => ({
|
|
@@ -296,10 +312,10 @@ export class SqliteRequestRecordRegistry {
|
|
|
296
312
|
.sort((a, b) => a.event_id.localeCompare(b.event_id));
|
|
297
313
|
for (const event of replay)
|
|
298
314
|
subscription.onEvent(event);
|
|
299
|
-
let subs = this.subscribers.get(vault_id
|
|
315
|
+
let subs = this.subscribers.get(vault_id);
|
|
300
316
|
if (!subs) {
|
|
301
317
|
subs = new Set();
|
|
302
|
-
this.subscribers.set(vault_id
|
|
318
|
+
this.subscribers.set(vault_id, subs);
|
|
303
319
|
}
|
|
304
320
|
const callback = (record) => {
|
|
305
321
|
if (record.execution.status !== DispatchStatus.AWAITING_APPROVAL || !record.pending_dispatch_event)
|
|
@@ -315,11 +331,11 @@ export class SqliteRequestRecordRegistry {
|
|
|
315
331
|
};
|
|
316
332
|
subs.add(callback);
|
|
317
333
|
return () => {
|
|
318
|
-
const current = this.subscribers.get(vault_id
|
|
334
|
+
const current = this.subscribers.get(vault_id);
|
|
319
335
|
if (current) {
|
|
320
336
|
current.delete(callback);
|
|
321
337
|
if (current.size === 0)
|
|
322
|
-
this.subscribers.delete(vault_id
|
|
338
|
+
this.subscribers.delete(vault_id);
|
|
323
339
|
}
|
|
324
340
|
};
|
|
325
341
|
}
|
|
@@ -376,43 +392,24 @@ const dbCache = new Map();
|
|
|
376
392
|
function initDb(baseDir) {
|
|
377
393
|
if (dbCache.has(baseDir))
|
|
378
394
|
return dbCache.get(baseDir);
|
|
395
|
+
const Database = require("better-sqlite3");
|
|
379
396
|
const dbPath = path.join(baseDir, "vault.sqlite");
|
|
380
397
|
const db = new Database(dbPath);
|
|
381
398
|
db.pragma('journal_mode = WAL');
|
|
382
|
-
// Check if we need to migrate from alias to id
|
|
383
|
-
const hasOldGrants = db.prepare("SELECT count(*) as count FROM sqlite_master WHERE type='table' AND name='grants' AND sql LIKE '%secret_alias%'").get();
|
|
384
|
-
if (hasOldGrants.count > 0) {
|
|
385
|
-
console.log("🛠️ Migrating Vault database from secret_alias to secret_id...");
|
|
386
|
-
db.transaction(() => {
|
|
387
|
-
// 1. Rename old tables
|
|
388
|
-
db.exec("ALTER TABLE grants RENAME TO grants_old");
|
|
389
|
-
db.exec("ALTER TABLE destination_grants RENAME TO destination_grants_old");
|
|
390
|
-
// 2. Create new tables
|
|
391
|
-
db.exec("CREATE TABLE grants (vault_id TEXT, root_agent_id TEXT, secret_id TEXT, record TEXT, PRIMARY KEY(vault_id, root_agent_id, secret_id))");
|
|
392
|
-
db.exec("CREATE TABLE destination_grants (vault_id TEXT, secret_id TEXT, site_id TEXT, record TEXT, PRIMARY KEY(vault_id, secret_id, site_id))");
|
|
393
|
-
// 3. Migrate data by joining with secrets table
|
|
394
|
-
db.exec(`
|
|
395
|
-
INSERT INTO grants (vault_id, root_agent_id, secret_id, record)
|
|
396
|
-
SELECT g.vault_id, g.root_agent_id, s.secret_id, g.record
|
|
397
|
-
FROM grants_old g
|
|
398
|
-
JOIN secrets s ON g.secret_alias = s.alias
|
|
399
|
-
`);
|
|
400
|
-
db.exec(`
|
|
401
|
-
INSERT INTO destination_grants (vault_id, secret_id, site_id, record)
|
|
402
|
-
SELECT dg.vault_id, s.secret_id, dg.site_id, dg.record
|
|
403
|
-
FROM destination_grants_old dg
|
|
404
|
-
JOIN secrets s ON dg.secret_alias = s.alias
|
|
405
|
-
`);
|
|
406
|
-
// 4. Drop old tables
|
|
407
|
-
db.exec("DROP TABLE grants_old");
|
|
408
|
-
db.exec("DROP TABLE destination_grants_old");
|
|
409
|
-
})();
|
|
410
|
-
console.log("✅ Migration complete.");
|
|
411
|
-
}
|
|
412
399
|
db.exec(`
|
|
413
400
|
CREATE TABLE IF NOT EXISTS secrets (secret_id TEXT PRIMARY KEY, vault_id TEXT, alias TEXT UNIQUE, record TEXT);
|
|
414
401
|
CREATE TABLE IF NOT EXISTS custody (secret_id TEXT PRIMARY KEY, encrypted_payload TEXT);
|
|
415
|
-
CREATE TABLE IF NOT EXISTS audit_logs (
|
|
402
|
+
CREATE TABLE IF NOT EXISTS audit_logs (
|
|
403
|
+
event_id TEXT PRIMARY KEY,
|
|
404
|
+
vault_id TEXT,
|
|
405
|
+
function_name TEXT,
|
|
406
|
+
actor_id TEXT,
|
|
407
|
+
root_agent_id TEXT,
|
|
408
|
+
secret_id TEXT,
|
|
409
|
+
request_id TEXT,
|
|
410
|
+
ts TEXT,
|
|
411
|
+
entry TEXT
|
|
412
|
+
);
|
|
416
413
|
CREATE TABLE IF NOT EXISTS agents (vault_id TEXT, root_agent_id TEXT, record TEXT, PRIMARY KEY(vault_id, root_agent_id));
|
|
417
414
|
CREATE TABLE IF NOT EXISTS grants (vault_id TEXT, root_agent_id TEXT, secret_id TEXT, record TEXT, PRIMARY KEY(vault_id, root_agent_id, secret_id));
|
|
418
415
|
CREATE TABLE IF NOT EXISTS destination_grants (vault_id TEXT, secret_id TEXT, site_id TEXT, record TEXT, PRIMARY KEY(vault_id, secret_id, site_id));
|
|
@@ -433,7 +430,7 @@ export function createPersistentVaultCoreDependencies(storage, options) {
|
|
|
433
430
|
const agentRecords = new SqliteAgentIdentityRegistry(db, custody);
|
|
434
431
|
const sessionTokenRegistry = new SqliteSessionTokenRegistry(db);
|
|
435
432
|
return {
|
|
436
|
-
vault_id:
|
|
433
|
+
vault_id: options.vault_id,
|
|
437
434
|
ids: new RandomIdGenerator(),
|
|
438
435
|
clock: new SystemClock(),
|
|
439
436
|
agentRecords,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/vault-core/persistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/vault-core/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentSecretGrant, SecretDestinationGrant, OwnerPendingDispatchSubscription, OwnerAuditSubscription, RequestRecord, AgentIdentityRecord, AuditEntry, AuditQuery, DispatchInstruction, DispatchRequest, DispatchResult, SessionTokenInspectionResult, SecretAlias, SecretId, SecretRecord, StoredSessionToken, VaultWriteSecretCommand, VaultId } from "./contracts.js";
|
|
1
|
+
import type { AgentSecretGrant, SecretDestinationGrant, OwnerPendingDispatchSubscription, OwnerAuditSubscription, RequestRecord, AgentIdentityRecord, AuditEntry, AuditQuery, DispatchInstruction, DispatchRequest, DispatchResult, SessionTokenInspectionResult, SecretAlias, SecretId, SecretVersion, SecretRecord, StoredSessionToken, VaultWriteSecretCommand, VaultId } from "./contracts.js";
|
|
2
2
|
export interface SecretRepository {
|
|
3
3
|
save(record: SecretRecord): Promise<void>;
|
|
4
4
|
delete(secret_id: SecretId): Promise<void>;
|
|
@@ -30,9 +30,7 @@ export interface Clock {
|
|
|
30
30
|
}
|
|
31
31
|
export interface IdGenerator {
|
|
32
32
|
newSecretId(): SecretId;
|
|
33
|
-
newVersion():
|
|
34
|
-
value: string;
|
|
35
|
-
};
|
|
33
|
+
newVersion(): SecretVersion;
|
|
36
34
|
newAuditEntryId(): string;
|
|
37
35
|
newRequestId(action?: string): string;
|
|
38
36
|
}
|
|
@@ -11,8 +11,9 @@ export declare class LocalVaultTransport implements AgentDispatchTransport {
|
|
|
11
11
|
agent_secrets: readonly import("../vault-core/contracts.js").AgentSecretGrant[];
|
|
12
12
|
secret_destinations: readonly import("../vault-core/contracts.js").SecretDestinationGrant[];
|
|
13
13
|
}>;
|
|
14
|
-
agentListSecrets(request: import("../vault-core/index.js").AgentListSecretsRequest): Promise<readonly import("../vault-core/contracts.js").
|
|
15
|
-
agentListRequests(request: import("../vault-core/index.js").AgentListRequestsRequest): Promise<readonly import("../vault-core/contracts.js").
|
|
14
|
+
agentListSecrets(request: import("../vault-core/index.js").AgentListSecretsRequest): Promise<readonly import("../vault-core/contracts.js").SecretRecord[]>;
|
|
15
|
+
agentListRequests(request: import("../vault-core/index.js").AgentListRequestsRequest): Promise<readonly import("../vault-core/contracts.js").AgentRequestRecord[]>;
|
|
16
16
|
agentGetRequest(request: import("../vault-core/index.js").AgentGetRequestRequest): Promise<import("../vault-core/contracts.js").AgentRequestRecord>;
|
|
17
17
|
agentGetRuntimeManifest(request: import("../vault-core/index.js").AgentGetRuntimeManifestRequest): Promise<import("../vault-core/contracts.js").AgentRuntimeManifest>;
|
|
18
|
+
agentAuditTestPing(request: import("../vault-core/index.js").AgentAuditTestPingRequest): Promise<import("../vault-core/contracts.js").AuditEntry>;
|
|
18
19
|
}
|
|
@@ -8,12 +8,12 @@ export class LocalVaultTransport {
|
|
|
8
8
|
}
|
|
9
9
|
async agentDispatch(request) {
|
|
10
10
|
const response = await this._vault.agentHandleDispatch({
|
|
11
|
-
vault_id: request.vault_id
|
|
11
|
+
vault_id: request.vault_id,
|
|
12
12
|
request_id: request.request_id,
|
|
13
13
|
requested_at: request.requested_at,
|
|
14
14
|
root_agent_id: request.agent.id,
|
|
15
15
|
reason: request.reason,
|
|
16
|
-
|
|
16
|
+
secret_id: request.secret_id,
|
|
17
17
|
target_url: request.target_url,
|
|
18
18
|
method: request.method,
|
|
19
19
|
headers: request.headers,
|
|
@@ -28,7 +28,7 @@ export class LocalVaultTransport {
|
|
|
28
28
|
async agentListGrants(request) {
|
|
29
29
|
const response = await this._vault.agentHandleControl({
|
|
30
30
|
action: "get_manifest",
|
|
31
|
-
vault_id: request.vault_id
|
|
31
|
+
vault_id: request.vault_id,
|
|
32
32
|
request_id: request.request_id,
|
|
33
33
|
requested_at: request.requested_at,
|
|
34
34
|
root_agent_id: request.agent.id,
|
|
@@ -50,5 +50,8 @@ export class LocalVaultTransport {
|
|
|
50
50
|
async agentGetRuntimeManifest(request) {
|
|
51
51
|
return this._vault.agentGetRuntimeManifest(request);
|
|
52
52
|
}
|
|
53
|
+
async agentAuditTestPing(request) {
|
|
54
|
+
return this._vault.agentAuditTestPing(request);
|
|
55
|
+
}
|
|
53
56
|
}
|
|
54
57
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/vault-ingress/defaults.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAErD,KAAK,CAAC,aAAa,CACjB,OAAyD;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;YACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/vault-ingress/defaults.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAErD,KAAK,CAAC,aAAa,CACjB,OAAyD;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;YACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;SAC1E,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAgE;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YACpD,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;SAC1E,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,OAAQ,QAAQ,CAAC,MAAgE,CAAC,MAAM,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAiE;QACtF,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAkE;QACxF,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAgE;QACpF,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAwE;QACpG,OAAO,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAmE;QAC1F,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -8,7 +8,7 @@ export interface VaultAgentDispatchRequest {
|
|
|
8
8
|
requested_at: string;
|
|
9
9
|
root_agent_id: string;
|
|
10
10
|
reason: string;
|
|
11
|
-
|
|
11
|
+
secret_id?: string;
|
|
12
12
|
target_url: string;
|
|
13
13
|
method: string;
|
|
14
14
|
headers?: Record<string, string>;
|
|
@@ -62,6 +62,14 @@ export type VaultAgentControlRequest = {
|
|
|
62
62
|
requested_at: string;
|
|
63
63
|
root_agent_id: string;
|
|
64
64
|
proof: VaultAgentControlProof;
|
|
65
|
+
} | {
|
|
66
|
+
action: "audit_test_ping";
|
|
67
|
+
vault_id: string;
|
|
68
|
+
request_id: string;
|
|
69
|
+
requested_at: string;
|
|
70
|
+
root_agent_id: string;
|
|
71
|
+
proof: VaultAgentControlProof;
|
|
72
|
+
label?: string;
|
|
65
73
|
};
|
|
66
74
|
export interface VaultAgentControlResponse {
|
|
67
75
|
ok: true;
|
|
@@ -147,13 +155,13 @@ export interface VaultService {
|
|
|
147
155
|
ownerReadAudit(request: OwnerAuditRequest): Promise<readonly import("../vault-core/index.js").AuditEntry[]>;
|
|
148
156
|
ownerExportSecret(request: OwnerExportSecretRequest): Promise<readonly OwnerSecretExport[]>;
|
|
149
157
|
ownerListAgents(request: OwnerListAgentsRequest): Promise<readonly AgentIdentityRecord[]>;
|
|
150
|
-
ownerListRequests(request: import("../vault-core/index.js").OwnerListRequestsRequest): Promise<readonly import("../vault-core/index.js").
|
|
158
|
+
ownerListRequests(request: import("../vault-core/index.js").OwnerListRequestsRequest): Promise<readonly import("../vault-core/index.js").OwnerRequestRecord[]>;
|
|
151
159
|
ownerGetRequest(request: import("../vault-core/index.js").OwnerGetRequestRequest): Promise<import("../vault-core/index.js").OwnerRequestRecord>;
|
|
152
160
|
ownerListSecrets(request: {
|
|
153
161
|
vault_id: VaultId;
|
|
154
162
|
owner: VaultPrincipal;
|
|
155
163
|
request_id?: string;
|
|
156
|
-
}): Promise<readonly import("../vault-core/index.js").
|
|
164
|
+
}): Promise<readonly import("../vault-core/index.js").SecretRecord[]>;
|
|
157
165
|
ownerGrantAgentSecret(request: import("../vault-core/index.js").OwnerGrantAgentSecretCommand): Promise<import("../vault-core/index.js").AgentSecretGrant>;
|
|
158
166
|
ownerGrantSecretDestination(request: import("../vault-core/index.js").OwnerGrantSecretDestinationCommand): Promise<import("../vault-core/index.js").SecretDestinationGrant>;
|
|
159
167
|
ownerRevokeAgentSecret(request: import("../vault-core/index.js").OwnerRevokeAgentSecretCommand): Promise<void>;
|
|
@@ -177,10 +185,11 @@ export interface VaultService {
|
|
|
177
185
|
ownerApproveDispatch(request: import("../vault-core/index.js").OwnerApproveDispatchCommand): Promise<DispatchResult | null>;
|
|
178
186
|
ownerOnPendingDispatch(subscription: import("../vault-core/index.js").OwnerPendingDispatchSubscription): () => void;
|
|
179
187
|
ownerOnAudit(subscription: import("../vault-core/index.js").OwnerAuditSubscription): () => void;
|
|
180
|
-
agentListSecrets(request: import("../vault-core/index.js").AgentListSecretsRequest): Promise<readonly import("../vault-core/index.js").
|
|
181
|
-
agentListRequests(request: import("../vault-core/index.js").AgentListRequestsRequest): Promise<readonly import("../vault-core/index.js").
|
|
188
|
+
agentListSecrets(request: import("../vault-core/index.js").AgentListSecretsRequest): Promise<readonly import("../vault-core/index.js").SecretRecord[]>;
|
|
189
|
+
agentListRequests(request: import("../vault-core/index.js").AgentListRequestsRequest): Promise<readonly import("../vault-core/index.js").AgentRequestRecord[]>;
|
|
182
190
|
agentGetRequest(request: import("../vault-core/index.js").AgentGetRequestRequest): Promise<import("../vault-core/index.js").AgentRequestResult>;
|
|
183
191
|
agentGetRuntimeManifest(request: import("../vault-core/index.js").AgentGetRuntimeManifestRequest): Promise<import("../vault-core/index.js").AgentRuntimeManifest>;
|
|
192
|
+
agentAuditTestPing(request: import("../vault-core/index.js").AgentAuditTestPingRequest): Promise<import("../vault-core/index.js").AuditEntry>;
|
|
184
193
|
agentHandleDispatch(request: VaultAgentDispatchRequest): Promise<VaultAgentDispatchResponse | VaultAgentDispatchErrorResponse>;
|
|
185
194
|
agentHandleControl(request: VaultAgentControlRequest): Promise<VaultAgentControlResponse | VaultAgentControlErrorResponse>;
|
|
186
195
|
ownerHandleControl(request: VaultOwnerControlRequest): Promise<VaultOwnerControlResponse | VaultOwnerControlErrorResponse>;
|