@opengeni/sdk 3.1.2 → 3.2.2
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/dist/artifacts.js +3 -3
- package/dist/browser.js +1 -1
- package/dist/chat/index.js +4 -4
- package/dist/{chunk-NEM5N6C6.js → chunk-JKG75TTU.js} +35 -1
- package/dist/chunk-JKG75TTU.js.map +1 -0
- package/dist/{chunk-YDVPI7WT.js → chunk-JP62FZSI.js} +2 -2
- package/dist/chunk-KGEABAID.js +71 -0
- package/dist/chunk-KGEABAID.js.map +1 -0
- package/dist/{chunk-S3D75WSQ.js → chunk-N2I422X4.js} +2 -2
- package/dist/{chunk-JXXCTW5W.js → chunk-PBVUAXSU.js} +2 -2
- package/dist/{chunk-OAKHWFSV.js → chunk-PDU6EU2M.js} +2 -2
- package/dist/{chunk-RJHCBZF7.js → chunk-VT4YM4XQ.js} +8 -68
- package/dist/{chunk-RJHCBZF7.js.map → chunk-VT4YM4XQ.js.map} +1 -1
- package/dist/core.js +2 -2
- package/dist/document-authority.js +2 -2
- package/dist/external-vault-receiver.d.ts +203 -0
- package/dist/external-vault-receiver.js +564 -0
- package/dist/external-vault-receiver.js.map +1 -0
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/site-bridge-host.js +2 -2
- package/dist/site-browser-runtime.gen.d.ts +1 -1
- package/dist/site-document.js +1 -1
- package/dist/site-document.js.map +1 -1
- package/dist/site.js +2 -2
- package/dist/vault-types.d.ts +91 -3
- package/dist/vaults-api.d.ts +9 -1
- package/dist/workspace-integrations.js +11 -9
- package/package.json +7 -3
- package/src/external-vault-receiver.ts +914 -0
- package/src/site-browser-runtime.gen.ts +1 -1
- package/src/vault-types.ts +88 -2
- package/src/vaults-api.ts +51 -0
- package/dist/chunk-NEM5N6C6.js.map +0 -1
- /package/dist/{chunk-YDVPI7WT.js.map → chunk-JP62FZSI.js.map} +0 -0
- /package/dist/{chunk-S3D75WSQ.js.map → chunk-N2I422X4.js.map} +0 -0
- /package/dist/{chunk-JXXCTW5W.js.map → chunk-PBVUAXSU.js.map} +0 -0
- /package/dist/{chunk-OAKHWFSV.js.map → chunk-PDU6EU2M.js.map} +0 -0
package/src/vault-types.ts
CHANGED
|
@@ -6,12 +6,44 @@ import type { VaultPolicy } from "./types";
|
|
|
6
6
|
export type { VaultPolicy };
|
|
7
7
|
|
|
8
8
|
export type VaultOwnerKind = "user" | "workspace" | "organization" | "task";
|
|
9
|
-
export type VaultSource =
|
|
9
|
+
export type VaultSource =
|
|
10
|
+
| "opengeni"
|
|
11
|
+
| "onepassword"
|
|
12
|
+
| "host"
|
|
13
|
+
| "external"
|
|
14
|
+
| "protonpass"
|
|
15
|
+
| "keeper"
|
|
16
|
+
| "bitwarden";
|
|
10
17
|
export type VaultMode = "read_write" | "read_only";
|
|
11
18
|
export type VaultSyncStatus = "ok" | "syncing" | "error" | "auth_expired" | "rate_limited";
|
|
12
19
|
export type VaultItemType = "login" | "api_key" | "note" | "file" | "passkey";
|
|
13
20
|
export type VaultFieldKind = "text" | "concealed" | "totp" | "file";
|
|
14
21
|
|
|
22
|
+
export type VaultProviderOperations = {
|
|
23
|
+
createItemTypes: VaultItemType[];
|
|
24
|
+
updateItem: boolean;
|
|
25
|
+
removeField: boolean;
|
|
26
|
+
archiveItem: boolean;
|
|
27
|
+
archiveKind: "archive" | "trash" | "none";
|
|
28
|
+
deleteItem: false;
|
|
29
|
+
restoreItem: boolean;
|
|
30
|
+
readFiles: boolean;
|
|
31
|
+
writeFiles: boolean;
|
|
32
|
+
createTotp: boolean;
|
|
33
|
+
updateTotp: boolean;
|
|
34
|
+
createVault: boolean;
|
|
35
|
+
restoreFieldHistory: boolean;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export type VaultProviderFreshness = {
|
|
39
|
+
state: "current" | "stale" | "refreshing" | "unavailable";
|
|
40
|
+
lastCheckedAt: string | null;
|
|
41
|
+
sourceSyncedAt: string | null;
|
|
42
|
+
source: "live" | "cache" | "unknown";
|
|
43
|
+
errorCode: string | null;
|
|
44
|
+
retryAt: string | null;
|
|
45
|
+
};
|
|
46
|
+
|
|
15
47
|
export type VaultAvailability = {
|
|
16
48
|
/** null = every workspace in the organization. */
|
|
17
49
|
allowedWorkspaceIds: string[] | null;
|
|
@@ -34,6 +66,8 @@ export type VaultSummary = {
|
|
|
34
66
|
lastSyncedAt: string | null;
|
|
35
67
|
rateLimitedUntil: string | null;
|
|
36
68
|
providerConnectionId: string | null;
|
|
69
|
+
providerOperations?: VaultProviderOperations | undefined;
|
|
70
|
+
freshness?: VaultProviderFreshness | undefined;
|
|
37
71
|
availability: VaultAvailability | null;
|
|
38
72
|
isDefault: boolean;
|
|
39
73
|
itemCount: number;
|
|
@@ -215,6 +249,8 @@ export type ProviderVaultMeta = {
|
|
|
215
249
|
name: string;
|
|
216
250
|
itemCount: number | null;
|
|
217
251
|
linkedVaultId: string | null;
|
|
252
|
+
writeAccess?: "read_only" | "read_write" | "unknown" | undefined;
|
|
253
|
+
operations?: VaultProviderOperations | undefined;
|
|
218
254
|
};
|
|
219
255
|
|
|
220
256
|
export type InstallOnePasswordResponse = {
|
|
@@ -252,7 +288,7 @@ export type DisconnectOnePasswordResponse = {
|
|
|
252
288
|
};
|
|
253
289
|
|
|
254
290
|
export type LinkProviderVaultRequest = {
|
|
255
|
-
provider:
|
|
291
|
+
provider: Exclude<VaultSource, "opengeni">;
|
|
256
292
|
connectionId?: string | undefined;
|
|
257
293
|
externalVaultId: string;
|
|
258
294
|
ownerKind: "user" | "workspace" | "organization";
|
|
@@ -285,9 +321,59 @@ export type VaultErrorCode =
|
|
|
285
321
|
| "provider_rate_limited"
|
|
286
322
|
| "provider_unavailable"
|
|
287
323
|
| "provider_conflict"
|
|
324
|
+
| "provider_locked"
|
|
325
|
+
| "provider_inventory_incomplete"
|
|
326
|
+
| "provider_outcome_unknown"
|
|
288
327
|
| "variable_sets_removed"
|
|
289
328
|
| "secret_save_forbidden"
|
|
290
329
|
| "invalid_secret_name"
|
|
291
330
|
| "secret_value_too_large"
|
|
292
331
|
| "human_auth_required"
|
|
293
332
|
| "secret_search_cursor_invalid";
|
|
333
|
+
|
|
334
|
+
export type ExternalVaultProviderKind = "external" | "protonpass" | "keeper" | "bitwarden";
|
|
335
|
+
export type VaultProviderCredentials =
|
|
336
|
+
| { provider: "external"; endpoint: string; signingSecret: string }
|
|
337
|
+
| { provider: "bitwarden"; endpoint: string; signingSecret: string }
|
|
338
|
+
| { provider: "protonpass"; token: string }
|
|
339
|
+
| { provider: "keeper"; oneTimeToken: string; hostname?: string | undefined };
|
|
340
|
+
export type InstallVaultProviderRequest = {
|
|
341
|
+
credentials: VaultProviderCredentials;
|
|
342
|
+
ownership: "user" | "workspace" | "organization";
|
|
343
|
+
label?: string | undefined;
|
|
344
|
+
};
|
|
345
|
+
export type ReplaceVaultProviderCredentialsRequest = { credentials: VaultProviderCredentials };
|
|
346
|
+
export type VaultProviderConnectionSummary = {
|
|
347
|
+
id: string;
|
|
348
|
+
provider: "onepassword" | ExternalVaultProviderKind;
|
|
349
|
+
ownership: "user" | "workspace" | "organization";
|
|
350
|
+
accountName: string | null;
|
|
351
|
+
label: string | null;
|
|
352
|
+
verifiedAt: string;
|
|
353
|
+
createdAt: string;
|
|
354
|
+
createdBySubjectId: string | null;
|
|
355
|
+
canManage: boolean;
|
|
356
|
+
operations: VaultProviderOperations;
|
|
357
|
+
planTier?: OnePasswordPlanTier | undefined;
|
|
358
|
+
available: boolean;
|
|
359
|
+
verificationStatus?: "ready" | "pending" | undefined;
|
|
360
|
+
};
|
|
361
|
+
export type ListVaultProviderConnectionsResponse = {
|
|
362
|
+
connections: VaultProviderConnectionSummary[];
|
|
363
|
+
providers?: VaultProviderAvailability[] | undefined;
|
|
364
|
+
};
|
|
365
|
+
export type VaultProviderAvailability = {
|
|
366
|
+
provider: VaultProviderConnectionSummary["provider"];
|
|
367
|
+
available: boolean;
|
|
368
|
+
reason: "not_enabled" | null;
|
|
369
|
+
};
|
|
370
|
+
export type InstallVaultProviderResponse = {
|
|
371
|
+
connectionId: string;
|
|
372
|
+
accountName: string | null;
|
|
373
|
+
provider: ExternalVaultProviderKind;
|
|
374
|
+
operations: VaultProviderOperations;
|
|
375
|
+
vaults: ProviderVaultMeta[];
|
|
376
|
+
discoveryPending?: boolean | undefined;
|
|
377
|
+
errorCode?: string | undefined;
|
|
378
|
+
};
|
|
379
|
+
export type DisconnectVaultProviderResponse = { unlinkedVaultIds: string[] };
|
package/src/vaults-api.ts
CHANGED
|
@@ -22,6 +22,12 @@ import type {
|
|
|
22
22
|
VaultItem,
|
|
23
23
|
VaultItemSummary,
|
|
24
24
|
VaultSummary,
|
|
25
|
+
InstallVaultProviderRequest,
|
|
26
|
+
InstallVaultProviderResponse,
|
|
27
|
+
ReplaceVaultProviderCredentialsRequest,
|
|
28
|
+
VaultProviderConnectionSummary,
|
|
29
|
+
ListVaultProviderConnectionsResponse,
|
|
30
|
+
DisconnectVaultProviderResponse,
|
|
25
31
|
} from "./vault-types";
|
|
26
32
|
|
|
27
33
|
/**
|
|
@@ -195,6 +201,48 @@ export function vaultsApi(client: VaultClientLike, workspaceId: string) {
|
|
|
195
201
|
signal,
|
|
196
202
|
)
|
|
197
203
|
).vaults,
|
|
204
|
+
installVaultProvider: (request: InstallVaultProviderRequest) =>
|
|
205
|
+
json<InstallVaultProviderResponse>("POST", `${base}/vault-providers/connections`, request),
|
|
206
|
+
/** Connections plus configured providers, even before the first connection. */
|
|
207
|
+
getVaultProviderCatalog: (signal?: AbortSignal) =>
|
|
208
|
+
json<ListVaultProviderConnectionsResponse>(
|
|
209
|
+
"GET",
|
|
210
|
+
`${base}/vault-providers/connections`,
|
|
211
|
+
undefined,
|
|
212
|
+
{},
|
|
213
|
+
signal,
|
|
214
|
+
),
|
|
215
|
+
listVaultProviderConnections: async (signal?: AbortSignal) =>
|
|
216
|
+
(
|
|
217
|
+
await json<{ connections: VaultProviderConnectionSummary[] }>(
|
|
218
|
+
"GET",
|
|
219
|
+
`${base}/vault-providers/connections`,
|
|
220
|
+
undefined,
|
|
221
|
+
{},
|
|
222
|
+
signal,
|
|
223
|
+
)
|
|
224
|
+
).connections,
|
|
225
|
+
replaceVaultProviderCredentials: (
|
|
226
|
+
connectionId: string,
|
|
227
|
+
request: ReplaceVaultProviderCredentialsRequest,
|
|
228
|
+
) =>
|
|
229
|
+
json<InstallVaultProviderResponse>(
|
|
230
|
+
"PUT",
|
|
231
|
+
`${base}/vault-providers/connections/${enc(connectionId)}/credentials`,
|
|
232
|
+
request,
|
|
233
|
+
),
|
|
234
|
+
disconnectVaultProvider: (connectionId: string) =>
|
|
235
|
+
json<DisconnectVaultProviderResponse>(
|
|
236
|
+
"DELETE",
|
|
237
|
+
`${base}/vault-providers/connections/${enc(connectionId)}`,
|
|
238
|
+
),
|
|
239
|
+
/** Continue verification using the saved credentials, without replaying setup tokens. */
|
|
240
|
+
verifyVaultProviderConnection: (connectionId: string) =>
|
|
241
|
+
json<InstallVaultProviderResponse>(
|
|
242
|
+
"POST",
|
|
243
|
+
`${base}/vault-providers/connections/${enc(connectionId)}/verify`,
|
|
244
|
+
{},
|
|
245
|
+
),
|
|
198
246
|
linkProviderVault: (request: LinkProviderVaultRequest) =>
|
|
199
247
|
json<VaultSummary>("POST", `${base}/vaults/link`, request),
|
|
200
248
|
createManagedProviderVault: (
|
|
@@ -229,6 +277,9 @@ const VAULT_ERROR_CODES: ReadonlySet<string> = new Set<VaultErrorCode>([
|
|
|
229
277
|
"provider_rate_limited",
|
|
230
278
|
"provider_unavailable",
|
|
231
279
|
"provider_conflict",
|
|
280
|
+
"provider_locked",
|
|
281
|
+
"provider_inventory_incomplete",
|
|
282
|
+
"provider_outcome_unknown",
|
|
232
283
|
"variable_sets_removed",
|
|
233
284
|
"secret_save_forbidden",
|
|
234
285
|
"invalid_secret_name",
|