@numa-tech/numa 1.20.0 → 1.20.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.
Files changed (107) hide show
  1. package/README.md +31 -2
  2. package/dist/ai-registry/bridge.js +3 -2
  3. package/dist/ai-registry/bridge.js.map +1 -1
  4. package/dist/ai-registry/client.d.ts +8 -1
  5. package/dist/ai-registry/client.js +11 -1
  6. package/dist/ai-registry/client.js.map +1 -1
  7. package/dist/ai-registry/commands.d.ts +3 -0
  8. package/dist/ai-registry/commands.js +48 -36
  9. package/dist/ai-registry/commands.js.map +1 -1
  10. package/dist/ai-registry/mcp-management.d.ts +2 -0
  11. package/dist/ai-registry/mcp-management.js +74 -0
  12. package/dist/ai-registry/mcp-management.js.map +1 -0
  13. package/dist/ai-registry/mcp-runtime-commands.d.ts +15 -0
  14. package/dist/ai-registry/mcp-runtime-commands.js +101 -0
  15. package/dist/ai-registry/mcp-runtime-commands.js.map +1 -0
  16. package/dist/ai-registry/mcp-runtime.d.ts +37 -0
  17. package/dist/ai-registry/mcp-runtime.js +134 -0
  18. package/dist/ai-registry/mcp-runtime.js.map +1 -0
  19. package/dist/ai-registry/mcp-stdio.d.ts +2 -0
  20. package/dist/ai-registry/mcp-stdio.js +18 -0
  21. package/dist/ai-registry/mcp-stdio.js.map +1 -0
  22. package/dist/authorization/application-client.d.ts +1271 -0
  23. package/dist/authorization/application-client.js +391 -0
  24. package/dist/authorization/application-client.js.map +1 -0
  25. package/dist/authorization/application-commands.d.ts +15 -0
  26. package/dist/authorization/application-commands.js +240 -0
  27. package/dist/authorization/application-commands.js.map +1 -0
  28. package/dist/authorization/application-schemas.d.ts +731 -0
  29. package/dist/authorization/application-schemas.js +521 -0
  30. package/dist/authorization/application-schemas.js.map +1 -0
  31. package/dist/authorization/{client.d.ts → bootstrap-client.d.ts} +5 -26
  32. package/dist/authorization/{client.js → bootstrap-client.js} +4 -27
  33. package/dist/authorization/bootstrap-client.js.map +1 -0
  34. package/dist/authorization/commands.d.ts +6 -21
  35. package/dist/authorization/commands.js +8 -130
  36. package/dist/authorization/commands.js.map +1 -1
  37. package/dist/authorization/enrollment-client.d.ts +40 -0
  38. package/dist/authorization/enrollment-client.js +56 -0
  39. package/dist/authorization/enrollment-client.js.map +1 -0
  40. package/dist/authorization/enrollment-commands.d.ts +5 -0
  41. package/dist/authorization/enrollment-commands.js +30 -0
  42. package/dist/authorization/enrollment-commands.js.map +1 -0
  43. package/dist/authorization/enrollment.d.ts +2 -2
  44. package/dist/authorization/enrollment.js +2 -2
  45. package/dist/authorization/enrollment.js.map +1 -1
  46. package/dist/authorization/schemas.d.ts +0 -90
  47. package/dist/authorization/schemas.js +0 -48
  48. package/dist/authorization/schemas.js.map +1 -1
  49. package/dist/backend.d.ts +1 -0
  50. package/dist/backend.js +4 -1
  51. package/dist/backend.js.map +1 -1
  52. package/dist/business-issuer.d.ts +4 -0
  53. package/dist/business-issuer.js +30 -0
  54. package/dist/business-issuer.js.map +1 -0
  55. package/dist/cli.js +61 -30
  56. package/dist/cli.js.map +1 -1
  57. package/dist/cloud/bootstrap.js +1 -1
  58. package/dist/cloud/bootstrap.js.map +1 -1
  59. package/dist/command-catalog.js +11 -36
  60. package/dist/command-catalog.js.map +1 -1
  61. package/dist/config.d.ts +1 -1
  62. package/dist/config.js +15 -6
  63. package/dist/config.js.map +1 -1
  64. package/dist/login-configuration.d.ts +8 -0
  65. package/dist/login-configuration.js +17 -0
  66. package/dist/login-configuration.js.map +1 -0
  67. package/dist/login-recovery.d.ts +2 -0
  68. package/dist/login-recovery.js +15 -0
  69. package/dist/login-recovery.js.map +1 -0
  70. package/dist/mcp/commands.js +12 -2
  71. package/dist/mcp/commands.js.map +1 -1
  72. package/dist/mcp-gateway/commands.d.ts +2 -0
  73. package/dist/mcp-gateway/commands.js +11 -0
  74. package/dist/mcp-gateway/commands.js.map +1 -1
  75. package/dist/oss/commands.js +15 -15
  76. package/dist/oss/commands.js.map +1 -1
  77. package/dist/oss/file-operations.d.ts +11 -1
  78. package/dist/oss/file-operations.js +61 -5
  79. package/dist/oss/file-operations.js.map +1 -1
  80. package/dist/oss/tools.js +1 -1
  81. package/dist/oss/tools.js.map +1 -1
  82. package/dist/oss/web-page.js +58 -14
  83. package/dist/oss/web-page.js.map +1 -1
  84. package/dist/oss/web.js +1 -1
  85. package/dist/oss/web.js.map +1 -1
  86. package/dist/platform-profile.d.ts +22 -2
  87. package/dist/platform-profile.js +67 -6
  88. package/dist/platform-profile.js.map +1 -1
  89. package/docs/application-default-groups.md +73 -0
  90. package/examples/cloud-bootstrap/README.md +1 -1
  91. package/examples/mcp/README.md +108 -0
  92. package/examples/mcp/management-smoke.py +154 -0
  93. package/examples/mcp/runtime-smoke.mjs +187 -0
  94. package/examples/mcp/server.json +17 -0
  95. package/examples/oss/README.md +78 -0
  96. package/examples/oss/__pycache__/roundtrip.cpython-314.pyc +0 -0
  97. package/examples/oss/__pycache__/test_roundtrip.cpython-314.pyc +0 -0
  98. package/examples/oss/roundtrip.py +84 -0
  99. package/examples/oss/test_roundtrip.py +66 -0
  100. package/package.json +5 -4
  101. package/dist/authorization/client.js.map +0 -1
  102. package/dist/authorization/group-client.d.ts +0 -169
  103. package/dist/authorization/group-client.js +0 -129
  104. package/dist/authorization/group-client.js.map +0 -1
  105. package/dist/authorization/group-commands.d.ts +0 -25
  106. package/dist/authorization/group-commands.js +0 -155
  107. package/dist/authorization/group-commands.js.map +0 -1
@@ -0,0 +1,521 @@
1
+ import { z } from "zod";
2
+ import { AuthorizationError, redactAuthorizationText } from "./errors.js";
3
+ export const uuid = z.string().uuid();
4
+ export const version = z
5
+ .number()
6
+ .int()
7
+ .nonnegative()
8
+ .max(Number.MAX_SAFE_INTEGER);
9
+ export const positive = version.min(1);
10
+ export const digest = z.string().regex(/^[a-f0-9]{64}$/);
11
+ const text = z
12
+ .string()
13
+ .min(1)
14
+ .max(2000)
15
+ .regex(/^[^\u0000-\u001f\u007f]+$/);
16
+ export const document = z.record(z.string(), z.unknown());
17
+ export const source = z
18
+ .object({
19
+ environmentId: uuid,
20
+ environmentCode: z.string(),
21
+ environmentName: z.string(),
22
+ identityKey: text,
23
+ issuerUrl: z.string().url(),
24
+ realm: z.string(),
25
+ issuerId: uuid.nullable(),
26
+ })
27
+ .passthrough();
28
+ export const page = z
29
+ .object({
30
+ items: z.array(document),
31
+ total: version,
32
+ page: positive,
33
+ size: positive,
34
+ })
35
+ .passthrough();
36
+ export const directoryPage = page.extend({
37
+ total: version.optional(),
38
+ hasMore: z.boolean(),
39
+ });
40
+ export const relationPage = z
41
+ .object({
42
+ revision: version,
43
+ relations: z.array(document),
44
+ total: version,
45
+ hasMore: z.boolean(),
46
+ page: positive,
47
+ size: positive,
48
+ })
49
+ .passthrough();
50
+ // Definition is the extensible business document. Only the transport envelope is closed;
51
+ // retaining nested fields is required for functions, PAGE/API and legacy projection metadata.
52
+ export const definitionSave = z
53
+ .object({
54
+ expectedDraftVersion: version,
55
+ defaultRoleClientId: text,
56
+ definition: document,
57
+ })
58
+ .strict();
59
+ export const freezeInput = z.object({ expectedDraftVersion: version }).strict();
60
+ export const environmentInput = z
61
+ .object({
62
+ code: text,
63
+ name: text,
64
+ enforcementMode: z.enum(["GATEWAY", "APPLICATION"]),
65
+ identitySource: z.enum(["PLATFORM", "REGISTERED"]),
66
+ issuerId: uuid.nullable().optional(),
67
+ resourceClientId: text,
68
+ roleClientId: text,
69
+ pathRoot: text,
70
+ objectNamespace: text,
71
+ definitionVersion: positive,
72
+ status: z.enum(["ACTIVE", "DISABLED"]),
73
+ version,
74
+ gatewayId: uuid.nullable().optional(),
75
+ gatewayBindingId: uuid.nullable().optional(),
76
+ })
77
+ .strict();
78
+ const authoring = {
79
+ mode: z.enum(["CREATE", "IMPORT", "REFERENCE"]),
80
+ environmentId: uuid,
81
+ definitionId: uuid.optional(),
82
+ remoteId: text.optional(),
83
+ status: z.enum(["ACTIVE", "DISABLED"]),
84
+ expectedDefinitionVersion: version,
85
+ expectedReferenceVersion: version,
86
+ expectedInstanceVersion: version,
87
+ expectedTargetVersion: version,
88
+ };
89
+ const addresses = z
90
+ .object({
91
+ redirectUris: z.array(z.string()).optional(),
92
+ webOrigins: z.array(z.string()).optional(),
93
+ })
94
+ .strict();
95
+ const configuration = addresses.extend({
96
+ enabled: z.boolean().optional(),
97
+ publicClient: z.boolean().optional(),
98
+ standardFlowEnabled: z.boolean().optional(),
99
+ serviceAccountsEnabled: z.boolean().optional(),
100
+ authorizationServicesEnabled: z.boolean().optional(),
101
+ defaultGroupEnabled: z.boolean().optional(),
102
+ defaultGroupDefinitionId: uuid.nullable().optional(),
103
+ });
104
+ export const clientInput = z
105
+ .object({
106
+ ...authoring,
107
+ clientId: text,
108
+ definition: z
109
+ .object({
110
+ code: text,
111
+ name: text,
112
+ kind: z.enum(["PROVIDER", "LOGIN", "MACHINE"]),
113
+ configuration,
114
+ })
115
+ .strict()
116
+ .optional(),
117
+ demand: z
118
+ .object({
119
+ roles: z.array(text).optional(),
120
+ audience: z.boolean().optional(),
121
+ machineRoles: z.array(text).optional(),
122
+ })
123
+ .strict()
124
+ .optional(),
125
+ environment: addresses.optional(),
126
+ enrollmentTrusted: z.boolean().optional(),
127
+ expectedEnrollmentTrustVersion: version.optional(),
128
+ })
129
+ .strict()
130
+ .refine((v) => (v.enrollmentTrusted === undefined) ===
131
+ (v.expectedEnrollmentTrustVersion === undefined), "Trust intent requires both observed version and desired trust");
132
+ export const groupInput = z
133
+ .object({
134
+ ...authoring,
135
+ remoteName: text.optional(),
136
+ definition: z
137
+ .object({
138
+ code: text,
139
+ name: text,
140
+ description: z.string(),
141
+ defaultEligible: z.boolean(),
142
+ status: z.enum(["ACTIVE", "DISABLED"]),
143
+ })
144
+ .strict()
145
+ .optional(),
146
+ roles: z.array(text),
147
+ })
148
+ .strict();
149
+ const change = z
150
+ .object({
151
+ id: uuid.optional(),
152
+ kind: z.enum([
153
+ "ROLE_GRANT",
154
+ "GROUP_MEMBER",
155
+ "GROUP_BLOCK",
156
+ "BLOCK_SOURCE_RELEASE",
157
+ ]),
158
+ subjectType: z.enum(["USER", "SERVICE_ACCOUNT", "GROUP"]),
159
+ subjectId: text.optional(),
160
+ clientInstanceId: uuid.optional(),
161
+ groupInstanceId: uuid.optional(),
162
+ roleName: text.optional(),
163
+ desired: z.enum(["PRESENT", "ABSENT"]),
164
+ blockReason: z.string().max(2000).optional(),
165
+ releaseSource: z.enum(["ADMIN_BLOCK", "LEGACY_REMOVE"]).optional(),
166
+ expectedBlockVersion: version.optional(),
167
+ expectedBlockGeneration: uuid.optional(),
168
+ })
169
+ .strict()
170
+ .superRefine((v, c) => {
171
+ const bad = () => c.addIssue({
172
+ code: "custom",
173
+ message: "Relation fields do not match kind and subject",
174
+ });
175
+ if (v.kind === "BLOCK_SOURCE_RELEASE") {
176
+ if (v.subjectType !== "USER" ||
177
+ v.desired !== "ABSENT" ||
178
+ !v.subjectId ||
179
+ !v.groupInstanceId ||
180
+ !v.releaseSource ||
181
+ v.expectedBlockVersion === undefined ||
182
+ !v.expectedBlockGeneration ||
183
+ v.clientInstanceId ||
184
+ v.roleName ||
185
+ v.blockReason !== undefined)
186
+ bad();
187
+ return;
188
+ }
189
+ if (v.releaseSource !== undefined ||
190
+ v.expectedBlockVersion !== undefined ||
191
+ v.expectedBlockGeneration !== undefined)
192
+ bad();
193
+ if (v.subjectType === "USER" && (!v.subjectId || v.clientInstanceId))
194
+ bad();
195
+ if (v.subjectType === "SERVICE_ACCOUNT" &&
196
+ (!v.clientInstanceId || v.subjectId))
197
+ bad();
198
+ if (v.subjectType === "GROUP" &&
199
+ (v.kind !== "ROLE_GRANT" ||
200
+ !v.groupInstanceId ||
201
+ v.subjectId ||
202
+ v.clientInstanceId))
203
+ bad();
204
+ if (v.kind === "ROLE_GRANT" &&
205
+ (!v.roleName || (v.subjectType !== "GROUP" && v.groupInstanceId)))
206
+ bad();
207
+ if (v.kind !== "ROLE_GRANT" && (!v.groupInstanceId || v.roleName))
208
+ bad();
209
+ if (v.kind !== "GROUP_BLOCK" && v.blockReason !== undefined)
210
+ bad();
211
+ });
212
+ export const relationsInput = z
213
+ .object({ expectedRevision: version, changes: z.array(change).max(500) })
214
+ .strict();
215
+ export const planInput = z
216
+ .object({
217
+ requestId: uuid,
218
+ definitionVersion: positive,
219
+ environmentIds: z
220
+ .array(uuid)
221
+ .min(1)
222
+ .max(100)
223
+ .refine((v) => new Set(v).size === v.length),
224
+ clientModes: z
225
+ .record(uuid, z.enum(["CREATE", "ADOPT", "UPDATE", "REPAIR"]))
226
+ .refine((v) => Object.keys(v).length <= 500)
227
+ .optional(),
228
+ })
229
+ .strict();
230
+ export const confirmation = z
231
+ .object({ expectedVersion: version, expectedDigest: digest })
232
+ .strict();
233
+ export const stepConfirmation = confirmation.extend({
234
+ expectedStepDigest: digest,
235
+ });
236
+ export const recheckInput = stepConfirmation.extend({
237
+ note: z.string().max(2000).optional(),
238
+ });
239
+ export const terminateInput = confirmation.extend({
240
+ note: z.string().max(2000).optional(),
241
+ });
242
+ export const repreviewInput = planInput.extend(confirmation.shape);
243
+ export const downloadInput = z
244
+ .object({
245
+ requestId: uuid,
246
+ expectedInstanceVersion: version,
247
+ expectedContextDigest: digest,
248
+ })
249
+ .strict();
250
+ export const rotateInput = downloadInput.extend({
251
+ confirmClientId: text,
252
+ acknowledgeImpact: z.literal(true),
253
+ });
254
+ export const credentialContext = z
255
+ .object({
256
+ schemaVersion: z.literal(1),
257
+ applicationId: positive,
258
+ environmentId: uuid,
259
+ referenceId: uuid,
260
+ definitionId: uuid,
261
+ instanceId: uuid,
262
+ identityKey: text,
263
+ issuerId: uuid.nullable(),
264
+ issuerUrl: z.string().url(),
265
+ issuerVersion: version,
266
+ environmentVersion: version,
267
+ gatewayId: uuid.nullable(),
268
+ gatewayVersion: version.nullable(),
269
+ gatewayBindingId: uuid.nullable(),
270
+ gatewayBindingVersion: version.nullable(),
271
+ referenceVersion: version,
272
+ targetVersion: version,
273
+ definitionVersion: version,
274
+ publishedRevision: version.nullable(),
275
+ appliedRevision: version.nullable(),
276
+ instanceVersion: version,
277
+ clientId: text,
278
+ remoteUuid: z.string().nullable(),
279
+ credentialState: text,
280
+ publicClient: z.boolean(),
281
+ enabled: z.boolean(),
282
+ verified: z.boolean(),
283
+ locked: z.boolean(),
284
+ affectedApplications: z.array(z
285
+ .object({
286
+ applicationId: positive,
287
+ code: text,
288
+ name: text,
289
+ referenceId: uuid,
290
+ referenceVersion: version,
291
+ targetVersion: version,
292
+ })
293
+ .passthrough()),
294
+ })
295
+ .passthrough();
296
+ const iso = z.string().datetime({ offset: true });
297
+ const step = z
298
+ .object({
299
+ ordinal: version,
300
+ kind: text,
301
+ targetId: text,
302
+ status: text,
303
+ version,
304
+ stepDigest: digest,
305
+ childEvidence: document.nullable().optional(),
306
+ })
307
+ .passthrough();
308
+ const jobBase = {
309
+ id: uuid,
310
+ applicationId: positive,
311
+ status: text,
312
+ version,
313
+ planDigest: digest,
314
+ predecessorId: uuid.nullable(),
315
+ createdAt: iso,
316
+ updatedAt: iso,
317
+ steps: z.array(step),
318
+ collaboration: z
319
+ .object({ state: text, allowedActions: z.array(z.string()) })
320
+ .passthrough(),
321
+ };
322
+ export const publicationJob = z
323
+ .discriminatedUnion("operation", [
324
+ z
325
+ .object({
326
+ ...jobBase,
327
+ operation: z.literal("IDENTITY_PUBLICATION"),
328
+ plan: z
329
+ .object({
330
+ applicationId: positive,
331
+ definitionVersion: positive,
332
+ definitionDigest: digest,
333
+ targets: z.array(document),
334
+ instances: z.record(uuid, document),
335
+ steps: z.array(document),
336
+ })
337
+ .passthrough(),
338
+ })
339
+ .passthrough(),
340
+ z
341
+ .object({
342
+ ...jobBase,
343
+ operation: z.literal("CREDENTIAL_ROTATION"),
344
+ plan: z
345
+ .object({
346
+ operation: z.literal("CREDENTIAL_ROTATION"),
347
+ schemaVersion: z.literal(1),
348
+ applicationId: positive,
349
+ credentialContext,
350
+ steps: z
351
+ .array(z
352
+ .object({
353
+ kind: z.literal("CREDENTIAL_ROTATE"),
354
+ targetId: uuid,
355
+ })
356
+ .passthrough())
357
+ .length(1),
358
+ })
359
+ .passthrough(),
360
+ credentialOperation: document,
361
+ })
362
+ .passthrough(),
363
+ ])
364
+ .superRefine((v, c) => {
365
+ if (v.plan.applicationId !== v.applicationId ||
366
+ (v.operation === "CREDENTIAL_ROTATION" &&
367
+ (v.steps.length !== 1 ||
368
+ v.steps[0]?.kind !== "CREDENTIAL_ROTATE" ||
369
+ v.plan.credentialContext.applicationId !== v.applicationId ||
370
+ v.steps[0]?.targetId !== v.plan.credentialContext.instanceId)))
371
+ c.addIssue({
372
+ code: "custom",
373
+ message: "Publication scope or operation mismatch",
374
+ });
375
+ });
376
+ export const credentialTarget = z
377
+ .object({
378
+ context: credentialContext,
379
+ contextDigest: digest,
380
+ available: z.boolean(),
381
+ unavailableCode: z.string().nullable(),
382
+ allowedActions: z.array(z.enum(["download", "rotate"])),
383
+ })
384
+ .passthrough();
385
+ export const credentialOperation = z
386
+ .object({
387
+ requestId: uuid,
388
+ action: z.enum(["DOWNLOAD", "ROTATE"]),
389
+ status: z.enum(["RUNNING", "SUCCEEDED", "UNKNOWN", "RECOVERED"]),
390
+ context: credentialContext,
391
+ recoveredBy: uuid.nullable(),
392
+ recoveryBasis: z.string().nullable(),
393
+ errorCode: z.string().nullable(),
394
+ createdAt: iso,
395
+ updatedAt: iso,
396
+ publicationJob: publicationJob.nullable(),
397
+ })
398
+ .passthrough();
399
+ export function parse(schema, value) {
400
+ const result = schema.safeParse(value);
401
+ if (!result.success)
402
+ throw new AuthorizationError("Invalid application authorization input or response shape.", "authorization_input_invalid");
403
+ return result.data;
404
+ }
405
+ // Preserve nonsecret evidence (including credentialContext/UUID/digests). Never echo secret
406
+ // properties or credential-bearing upstream error strings.
407
+ export function safeEvidence(value) {
408
+ if (typeof value === "string")
409
+ return redactAuthorizationText(value);
410
+ if (Array.isArray(value))
411
+ return value.map(safeEvidence);
412
+ if (value && typeof value === "object")
413
+ return Object.fromEntries(Object.entries(value)
414
+ .filter(([key]) => !/(?:secret|password|passwd|access.?token|refresh.?token|session.?cookie|^token$|^cookie$|authorization$)/i.test(key))
415
+ .map(([key, v]) => [key, safeEvidence(v)]));
416
+ return value;
417
+ }
418
+ export const draftDefinition = z
419
+ .object({
420
+ applicationId: positive,
421
+ applicationCode: text,
422
+ name: text,
423
+ kind: z.enum(["CATALOG", "DOCUMENT"]),
424
+ editable: z.boolean(),
425
+ defaultRoleClientId: text,
426
+ draftVersion: version,
427
+ definition: document,
428
+ versions: z.array(z.object({ version: positive, createdAt: iso, digest }).passthrough()),
429
+ })
430
+ .passthrough();
431
+ export const immutableDefinition = z
432
+ .object({
433
+ applicationId: positive,
434
+ version: positive,
435
+ default_role_client_id: text,
436
+ created_at: iso,
437
+ definition: document,
438
+ digest,
439
+ kind: text,
440
+ })
441
+ .passthrough();
442
+ export const environmentView = environmentInput
443
+ .extend({
444
+ id: uuid,
445
+ applicationId: positive,
446
+ issuerUrl: z.string().url(),
447
+ ready: z.boolean().optional(),
448
+ })
449
+ .passthrough();
450
+ export const instanceTarget = z
451
+ .object({
452
+ instanceId: uuid,
453
+ identityKey: text,
454
+ issuerUrl: z.string().url(),
455
+ instanceVersion: version,
456
+ targetVersion: version,
457
+ targetStatus: text,
458
+ instanceStatus: text,
459
+ appliedRevision: version.nullable(),
460
+ mode: text.nullable(),
461
+ })
462
+ .passthrough();
463
+ export const draftView = z
464
+ .object({
465
+ referenceId: uuid,
466
+ definitionId: uuid,
467
+ applicationId: positive,
468
+ definitionVersion: version,
469
+ referenceVersion: version,
470
+ status: text,
471
+ referenceStatus: text,
472
+ publishedRevision: version.nullable(),
473
+ ownerApplicationId: positive.nullable(),
474
+ ownership: text,
475
+ configurationReadOnly: z.boolean(),
476
+ draftStatus: text,
477
+ definition: document,
478
+ affectedApplications: z.array(document),
479
+ instances: z.array(instanceTarget),
480
+ })
481
+ .passthrough();
482
+ export const registeredView = z
483
+ .object({
484
+ applicationId: positive,
485
+ source,
486
+ definitionId: uuid,
487
+ definition: z
488
+ .object({
489
+ id: uuid,
490
+ version,
491
+ status: text,
492
+ ownerApplicationId: positive.nullable(),
493
+ })
494
+ .passthrough(),
495
+ ownerApplicationId: positive.nullable(),
496
+ configurationReadOnly: z.boolean(),
497
+ instance: z
498
+ .object({
499
+ id: uuid,
500
+ definitionId: uuid,
501
+ identityKey: text,
502
+ issuerUrl: z.string().url(),
503
+ version,
504
+ status: text,
505
+ })
506
+ .passthrough()
507
+ .nullable(),
508
+ reference: z
509
+ .object({ referenceId: uuid, referenceVersion: version, status: text })
510
+ .passthrough()
511
+ .nullable(),
512
+ target: instanceTarget.nullable(),
513
+ association: z.enum([
514
+ "NO_INSTANCE",
515
+ "UNREFERENCED",
516
+ "REFERENCE_WITHOUT_TARGET",
517
+ "BOUND",
518
+ ]),
519
+ })
520
+ .passthrough();
521
+ //# sourceMappingURL=application-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-schemas.js","sourceRoot":"","sources":["../../src/authorization/application-schemas.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,10 @@
1
1
  import type { AuthConfig } from "../config.js";
2
2
  import { type KeycloakTokenProvider } from "../oauth.js";
3
- import { type AuthorizationRole, type KeycloakBootstrapRun, type KeycloakBootstrapStart, type RoleProvisionPreview, type RoleProvisionRun } from "./schemas.js";
4
- export interface AuthorizationClientDependencies {
3
+ import { type KeycloakBootstrapRun, type KeycloakBootstrapStart } from "./schemas.js";
4
+ export interface BootstrapClientDependencies {
5
5
  fetch?: typeof fetch;
6
6
  tokenProvider?: KeycloakTokenProvider;
7
7
  }
8
- export interface CreateAuthorizationRoleInput {
9
- code: string;
10
- name: string;
11
- description?: string;
12
- status: "ACTIVE";
13
- }
14
- export interface ApplyRoleProvisionInput {
15
- expectedRoleVersion: number;
16
- expectedRemoteDigest: string;
17
- idempotencyKey: string;
18
- }
19
8
  export type StartKeycloakBootstrapInput = {
20
9
  mode: "PLAN";
21
10
  } | {
@@ -33,29 +22,19 @@ export type StartPrivilegedOperationInput = {
33
22
  } | {
34
23
  mode: "SECRET_ROTATE";
35
24
  };
36
- export interface AuthorizationApi {
37
- listRoles(): Promise<AuthorizationRole[]>;
38
- createRole(input: CreateAuthorizationRoleInput): Promise<AuthorizationRole>;
39
- previewRole(roleId: number): Promise<RoleProvisionPreview>;
40
- applyRole(roleId: number, input: ApplyRoleProvisionInput): Promise<RoleProvisionRun>;
41
- getProvisioningRun(runId: number): Promise<RoleProvisionRun>;
25
+ export interface BootstrapApi {
42
26
  startKeycloakBootstrap(input: StartKeycloakBootstrapInput): Promise<KeycloakBootstrapStart>;
43
27
  getKeycloakBootstrapRun(runId: number): Promise<KeycloakBootstrapRun>;
44
28
  startPrivilegedOperation(input: StartPrivilegedOperationInput): Promise<KeycloakBootstrapStart>;
45
29
  getPrivilegedOperationRun(runId: number): Promise<KeycloakBootstrapRun>;
46
30
  }
47
- export declare class AuthorizationClient implements AuthorizationApi {
31
+ export declare class BootstrapClient implements BootstrapApi {
48
32
  private readonly config;
49
33
  private readonly fetchImpl;
50
34
  private readonly tokenProvider;
51
- constructor(config: AuthConfig, dependencies?: AuthorizationClientDependencies);
35
+ constructor(config: AuthConfig, dependencies?: BootstrapClientDependencies);
52
36
  private authenticatedFetch;
53
37
  private json;
54
- listRoles(): Promise<AuthorizationRole[]>;
55
- createRole(input: CreateAuthorizationRoleInput): Promise<AuthorizationRole>;
56
- previewRole(roleId: number): Promise<RoleProvisionPreview>;
57
- applyRole(roleId: number, input: ApplyRoleProvisionInput): Promise<RoleProvisionRun>;
58
- getProvisioningRun(runId: number): Promise<RoleProvisionRun>;
59
38
  startKeycloakBootstrap(input: StartKeycloakBootstrapInput): Promise<KeycloakBootstrapStart>;
60
39
  getKeycloakBootstrapRun(runId: number): Promise<KeycloakBootstrapRun>;
61
40
  startPrivilegedOperation(input: StartPrivilegedOperationInput): Promise<KeycloakBootstrapStart>;
@@ -1,10 +1,8 @@
1
1
  import { resolveBackendUrl } from "../backend.js";
2
2
  import { ensureAccessToken, fetchWithKeycloakIdentity } from "../oauth.js";
3
3
  import { AuthorizationError, authorizationHttpErrorCode } from "./errors.js";
4
- import { AuthorizationApiErrorSchema, AuthorizationRoleListSchema, AuthorizationRoleSchema, KeycloakBootstrapRunSchema, KeycloakBootstrapStartSchema, RoleProvisionPreviewSchema, RoleProvisionRunSchema } from "./schemas.js";
4
+ import { AuthorizationApiErrorSchema, KeycloakBootstrapRunSchema, KeycloakBootstrapStartSchema, } from "./schemas.js";
5
5
  const AUTHORIZATION_ROOT = "/api/v1/admin/authorization";
6
- const ROLE_ROOT = `${AUTHORIZATION_ROOT}/roles`;
7
- const RUN_ROOT = `${AUTHORIZATION_ROOT}/role-provisioning/runs`;
8
6
  const BOOTSTRAP_ROOT = `${AUTHORIZATION_ROOT}/bootstrap`;
9
7
  const PRIVILEGED_OPERATIONS_ROOT = `${AUTHORIZATION_ROOT}/privileged-operations`;
10
8
  async function responseBody(response) {
@@ -47,7 +45,7 @@ function apiFailure(response, body) {
47
45
  };
48
46
  return new AuthorizationError(`Authorization API HTTP ${response.status}: ${messages[response.status] ?? "Request failed."}`, code, response.status, requestIdFrom(response, body), parsed.success ? parsed.data.code : undefined, parsed.success ? parsed.data.runId : undefined);
49
47
  }
50
- export class AuthorizationClient {
48
+ export class BootstrapClient {
51
49
  config;
52
50
  fetchImpl;
53
51
  tokenProvider;
@@ -64,7 +62,7 @@ export class AuthorizationClient {
64
62
  headers.set("Accept", "application/json");
65
63
  if (init.body != null)
66
64
  headers.set("Content-Type", "application/json");
67
- return fetchWithKeycloakIdentity(this.config, url, () => ({ ...init, headers }), { fetch: this.fetchImpl, tokenProvider: this.tokenProvider });
65
+ return fetchWithKeycloakIdentity(this.config, url, () => ({ ...init, headers, redirect: "error" }), { fetch: this.fetchImpl, tokenProvider: this.tokenProvider, retryUnauthorized: !init.method || init.method === "GET" });
68
66
  }
69
67
  async json(path, schema, init = {}, expectedStatuses = [200]) {
70
68
  const response = await this.authenticatedFetch(path, init);
@@ -80,27 +78,6 @@ export class AuthorizationClient {
80
78
  }
81
79
  return parsed.data;
82
80
  }
83
- listRoles() {
84
- return this.json(ROLE_ROOT, AuthorizationRoleListSchema);
85
- }
86
- createRole(input) {
87
- return this.json(ROLE_ROOT, AuthorizationRoleSchema, {
88
- method: "POST",
89
- body: JSON.stringify(input)
90
- }, [201]);
91
- }
92
- previewRole(roleId) {
93
- return this.json(`${ROLE_ROOT}/${roleId}/provisioning/preview`, RoleProvisionPreviewSchema);
94
- }
95
- applyRole(roleId, input) {
96
- return this.json(`${ROLE_ROOT}/${roleId}/provisioning`, RoleProvisionRunSchema, {
97
- method: "POST",
98
- body: JSON.stringify(input)
99
- }, [200, 201]);
100
- }
101
- getProvisioningRun(runId) {
102
- return this.json(`${RUN_ROOT}/${runId}`, RoleProvisionRunSchema);
103
- }
104
81
  startKeycloakBootstrap(input) {
105
82
  return this.json(`${BOOTSTRAP_ROOT}/sessions`, KeycloakBootstrapStartSchema, {
106
83
  method: "POST",
@@ -120,4 +97,4 @@ export class AuthorizationClient {
120
97
  return this.json(`${PRIVILEGED_OPERATIONS_ROOT}/${runId}`, KeycloakBootstrapRunSchema);
121
98
  }
122
99
  }
123
- //# sourceMappingURL=client.js.map
100
+ //# sourceMappingURL=bootstrap-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-client.js","sourceRoot":"","sources":["../../src/authorization/bootstrap-client.ts"],"names":[],"mappings":"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"}