@numa-tech/numa 1.23.1 → 1.25.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 +4 -0
- package/dist/authorization/application-client.d.ts +608 -6
- package/dist/authorization/application-client.js +1 -1
- package/dist/authorization/application-client.js.map +1 -1
- package/dist/authorization/application-schemas.d.ts +171 -0
- package/dist/authorization/application-schemas.js +14 -1
- package/dist/authorization/application-schemas.js.map +1 -1
- package/dist/authorization/commands.d.ts +2 -1
- package/dist/authorization/commands.js +2 -0
- package/dist/authorization/commands.js.map +1 -1
- package/dist/authorization/managed-keycloak-client.d.ts +863 -0
- package/dist/authorization/managed-keycloak-client.js +182 -0
- package/dist/authorization/managed-keycloak-client.js.map +1 -0
- package/dist/authorization/managed-keycloak-commands.d.ts +10 -0
- package/dist/authorization/managed-keycloak-commands.js +113 -0
- package/dist/authorization/managed-keycloak-commands.js.map +1 -0
- package/dist/authorization/managed-keycloak-schemas.d.ts +178 -0
- package/dist/authorization/managed-keycloak-schemas.js +55 -0
- package/dist/authorization/managed-keycloak-schemas.js.map +1 -0
- package/dist/business-issuer.js +3 -5
- package/dist/business-issuer.js.map +1 -1
- package/dist/command-catalog.js +2 -0
- package/dist/command-catalog.js.map +1 -1
- package/dist/kb/client.js +10 -5
- package/dist/kb/client.js.map +1 -1
- package/dist/kb/commands.js +2 -2
- package/dist/kb/commands.js.map +1 -1
- package/dist/kb/config.d.ts +3 -3
- package/dist/kb/config.js +25 -20
- package/dist/kb/config.js.map +1 -1
- package/dist/login-recovery.js +2 -2
- package/dist/login-recovery.js.map +1 -1
- package/dist/mcp-gateway/profile.d.ts +4 -0
- package/dist/mcp-gateway/profile.js +6 -3
- package/dist/mcp-gateway/profile.js.map +1 -1
- package/dist/mcp-gateway/runtime.js +14 -0
- package/dist/mcp-gateway/runtime.js.map +1 -1
- package/docs/design/kb-cli.md +4 -4
- package/docs/kb-access.md +14 -7
- package/docs/keycloak-managed-import.md +41 -0
- package/examples/jev/README.md +65 -0
- package/examples/jev/platform-client.test.ts +136 -0
- package/examples/jev/platform-client.ts +122 -0
- package/package.json +6 -5
- package/skills/numa-jev/LICENSE +21 -0
- package/skills/numa-jev/SKILL.md +54 -0
- package/skills/numa-jev/assets/decision.json +37 -0
- package/skills/numa-jev/numa-skill.json +8 -0
- package/skills/numa-jev/references/application-integration.md +36 -0
- package/skills/numa-jev/references/mcp-usage.md +53 -0
- package/skills/numa-jev/references/upstream.md +13 -0
package/README.md
CHANGED
|
@@ -36,6 +36,10 @@ numa notion page create --grant 41 --file page.json --json
|
|
|
36
36
|
|
|
37
37
|
写入使用 JSON 文件,归档必须提供 `--yes`。所有 Notion 命令输出 `{ok,data}`,`data` 保留 Notion 字段与用户属性名;写请求不会因 401、限流或网络中断自动重放。机器模式通过环境变量 `NUMA_KEYCLOAK_AUTH_MODE=client_credentials`、`NUMA_KEYCLOAK_CLIENT_ID` 与 `NUMA_KEYCLOAK_CLIENT_SECRET` 启用,短期 JWT 仅存进程内存,运行 `numa profile --json` 可查看身份,无需浏览器登录。
|
|
38
38
|
|
|
39
|
+
## Jev 企业决策(开发中)
|
|
40
|
+
|
|
41
|
+
Jev 企业接入已开始实施:定制 Skill 指导 Agent 调用平台原生 MCP,平台统一授权并经指定代理访问 OpenRouter。终端 Agent、ChatGPT 和 K8s Agent 的接口、身份及验收边界见 [Jev 详细设计](docs/design/jev-integration.md),源码包见 [numa-jev Skill](skills/numa-jev/SKILL.md) 和 [应用示例](examples/jev/README.md)。当前是未发布源码;ChatGPT 远程 OAuth 仍按设计待实施,Skill 安装不等于 MCP 已连接。
|
|
42
|
+
|
|
39
43
|
## 应用默认组
|
|
40
44
|
|
|
41
45
|
支持该 API 的 DevOps 后端部署后,普通用户 CLI 登录成功会显式初始化本人应用成员资格和默认组;不是给全部 realm 用户授权。`auth status` 和以下 status 命令均只读,机器及已暂停/撤销成员不自动入组:
|
|
@@ -487,6 +487,92 @@ export declare class ApplicationClient {
|
|
|
487
487
|
subjectAccess(subject: string, environmentId: string, ownerClientId?: string): Promise<Record<string, unknown>>;
|
|
488
488
|
private validatePublicationProtocol;
|
|
489
489
|
plan(input: unknown): Promise<{
|
|
490
|
+
[x: string]: unknown;
|
|
491
|
+
id: string;
|
|
492
|
+
applicationId: number;
|
|
493
|
+
status: string;
|
|
494
|
+
version: number;
|
|
495
|
+
planDigest: string;
|
|
496
|
+
predecessorId: string | null;
|
|
497
|
+
createdAt: string;
|
|
498
|
+
updatedAt: string;
|
|
499
|
+
steps: {
|
|
500
|
+
[x: string]: unknown;
|
|
501
|
+
ordinal: number;
|
|
502
|
+
kind: string;
|
|
503
|
+
targetId: string;
|
|
504
|
+
status: string;
|
|
505
|
+
version: number;
|
|
506
|
+
stepDigest: string;
|
|
507
|
+
childEvidence?: Record<string, unknown> | null | undefined;
|
|
508
|
+
}[];
|
|
509
|
+
execution?: {
|
|
510
|
+
[x: string]: unknown;
|
|
511
|
+
status: "QUEUED" | "RETRY_WAIT" | "RUNNING" | "SUCCEEDED" | "TERMINATED" | "WAITING_MANUAL";
|
|
512
|
+
currentStep?: number | null | undefined;
|
|
513
|
+
attempts?: number | undefined;
|
|
514
|
+
errorCode?: string | null | undefined;
|
|
515
|
+
errorDetails?: Record<string, unknown> | null | undefined;
|
|
516
|
+
javascriptPolicyDeletionConfirmed?: boolean | undefined;
|
|
517
|
+
verifiedAt?: string | null | undefined;
|
|
518
|
+
observedBundleDigest?: string | null | undefined;
|
|
519
|
+
} | undefined;
|
|
520
|
+
collaboration: {
|
|
521
|
+
[x: string]: unknown;
|
|
522
|
+
state: string;
|
|
523
|
+
allowedActions: string[];
|
|
524
|
+
};
|
|
525
|
+
operation: "MANAGED_KEYCLOAK_IMPORT";
|
|
526
|
+
plan: {
|
|
527
|
+
[x: string]: unknown;
|
|
528
|
+
applicationId: number;
|
|
529
|
+
configurationBundle: {
|
|
530
|
+
[x: string]: unknown;
|
|
531
|
+
status: "BLOCKED" | "READY";
|
|
532
|
+
bundleDigest: string;
|
|
533
|
+
javascriptPolicyDeletionRequired?: boolean | undefined;
|
|
534
|
+
objects: {
|
|
535
|
+
[x: string]: unknown;
|
|
536
|
+
key: string;
|
|
537
|
+
kind: string;
|
|
538
|
+
logicalId: string;
|
|
539
|
+
action: string;
|
|
540
|
+
dependencies: string[];
|
|
541
|
+
desired?: unknown;
|
|
542
|
+
observed?: unknown;
|
|
543
|
+
baseline?: unknown;
|
|
544
|
+
}[];
|
|
545
|
+
differences: {
|
|
546
|
+
[x: string]: unknown;
|
|
547
|
+
objectKey: string;
|
|
548
|
+
field: string;
|
|
549
|
+
action: string;
|
|
550
|
+
current?: unknown;
|
|
551
|
+
desired?: unknown;
|
|
552
|
+
baseline?: unknown;
|
|
553
|
+
}[];
|
|
554
|
+
blockers: {
|
|
555
|
+
[x: string]: unknown;
|
|
556
|
+
code: string;
|
|
557
|
+
objectKey?: string | undefined;
|
|
558
|
+
message?: string | undefined;
|
|
559
|
+
}[];
|
|
560
|
+
};
|
|
561
|
+
managedConfiguration: {
|
|
562
|
+
[x: string]: unknown;
|
|
563
|
+
configuration: {
|
|
564
|
+
[x: string]: unknown;
|
|
565
|
+
schemaVersion: "1";
|
|
566
|
+
kind: "KEYCLOAK_API_KEY_CONFIGURATION";
|
|
567
|
+
target: {
|
|
568
|
+
issuerId: string;
|
|
569
|
+
applicationId: number;
|
|
570
|
+
platformEnvironmentId: number;
|
|
571
|
+
};
|
|
572
|
+
};
|
|
573
|
+
};
|
|
574
|
+
};
|
|
575
|
+
} | {
|
|
490
576
|
[x: string]: unknown;
|
|
491
577
|
id: string;
|
|
492
578
|
applicationId: number;
|
|
@@ -769,6 +855,92 @@ export declare class ApplicationClient {
|
|
|
769
855
|
credentialOperation: Record<string, unknown>;
|
|
770
856
|
}>;
|
|
771
857
|
preview(input: unknown): Promise<{
|
|
858
|
+
[x: string]: unknown;
|
|
859
|
+
id: string;
|
|
860
|
+
applicationId: number;
|
|
861
|
+
status: string;
|
|
862
|
+
version: number;
|
|
863
|
+
planDigest: string;
|
|
864
|
+
predecessorId: string | null;
|
|
865
|
+
createdAt: string;
|
|
866
|
+
updatedAt: string;
|
|
867
|
+
steps: {
|
|
868
|
+
[x: string]: unknown;
|
|
869
|
+
ordinal: number;
|
|
870
|
+
kind: string;
|
|
871
|
+
targetId: string;
|
|
872
|
+
status: string;
|
|
873
|
+
version: number;
|
|
874
|
+
stepDigest: string;
|
|
875
|
+
childEvidence?: Record<string, unknown> | null | undefined;
|
|
876
|
+
}[];
|
|
877
|
+
execution?: {
|
|
878
|
+
[x: string]: unknown;
|
|
879
|
+
status: "QUEUED" | "RETRY_WAIT" | "RUNNING" | "SUCCEEDED" | "TERMINATED" | "WAITING_MANUAL";
|
|
880
|
+
currentStep?: number | null | undefined;
|
|
881
|
+
attempts?: number | undefined;
|
|
882
|
+
errorCode?: string | null | undefined;
|
|
883
|
+
errorDetails?: Record<string, unknown> | null | undefined;
|
|
884
|
+
javascriptPolicyDeletionConfirmed?: boolean | undefined;
|
|
885
|
+
verifiedAt?: string | null | undefined;
|
|
886
|
+
observedBundleDigest?: string | null | undefined;
|
|
887
|
+
} | undefined;
|
|
888
|
+
collaboration: {
|
|
889
|
+
[x: string]: unknown;
|
|
890
|
+
state: string;
|
|
891
|
+
allowedActions: string[];
|
|
892
|
+
};
|
|
893
|
+
operation: "MANAGED_KEYCLOAK_IMPORT";
|
|
894
|
+
plan: {
|
|
895
|
+
[x: string]: unknown;
|
|
896
|
+
applicationId: number;
|
|
897
|
+
configurationBundle: {
|
|
898
|
+
[x: string]: unknown;
|
|
899
|
+
status: "BLOCKED" | "READY";
|
|
900
|
+
bundleDigest: string;
|
|
901
|
+
javascriptPolicyDeletionRequired?: boolean | undefined;
|
|
902
|
+
objects: {
|
|
903
|
+
[x: string]: unknown;
|
|
904
|
+
key: string;
|
|
905
|
+
kind: string;
|
|
906
|
+
logicalId: string;
|
|
907
|
+
action: string;
|
|
908
|
+
dependencies: string[];
|
|
909
|
+
desired?: unknown;
|
|
910
|
+
observed?: unknown;
|
|
911
|
+
baseline?: unknown;
|
|
912
|
+
}[];
|
|
913
|
+
differences: {
|
|
914
|
+
[x: string]: unknown;
|
|
915
|
+
objectKey: string;
|
|
916
|
+
field: string;
|
|
917
|
+
action: string;
|
|
918
|
+
current?: unknown;
|
|
919
|
+
desired?: unknown;
|
|
920
|
+
baseline?: unknown;
|
|
921
|
+
}[];
|
|
922
|
+
blockers: {
|
|
923
|
+
[x: string]: unknown;
|
|
924
|
+
code: string;
|
|
925
|
+
objectKey?: string | undefined;
|
|
926
|
+
message?: string | undefined;
|
|
927
|
+
}[];
|
|
928
|
+
};
|
|
929
|
+
managedConfiguration: {
|
|
930
|
+
[x: string]: unknown;
|
|
931
|
+
configuration: {
|
|
932
|
+
[x: string]: unknown;
|
|
933
|
+
schemaVersion: "1";
|
|
934
|
+
kind: "KEYCLOAK_API_KEY_CONFIGURATION";
|
|
935
|
+
target: {
|
|
936
|
+
issuerId: string;
|
|
937
|
+
applicationId: number;
|
|
938
|
+
platformEnvironmentId: number;
|
|
939
|
+
};
|
|
940
|
+
};
|
|
941
|
+
};
|
|
942
|
+
};
|
|
943
|
+
} | {
|
|
772
944
|
[x: string]: unknown;
|
|
773
945
|
id: string;
|
|
774
946
|
applicationId: number;
|
|
@@ -1056,6 +1228,92 @@ export declare class ApplicationClient {
|
|
|
1056
1228
|
page: number;
|
|
1057
1229
|
size: number;
|
|
1058
1230
|
items: ({
|
|
1231
|
+
[x: string]: unknown;
|
|
1232
|
+
id: string;
|
|
1233
|
+
applicationId: number;
|
|
1234
|
+
status: string;
|
|
1235
|
+
version: number;
|
|
1236
|
+
planDigest: string;
|
|
1237
|
+
predecessorId: string | null;
|
|
1238
|
+
createdAt: string;
|
|
1239
|
+
updatedAt: string;
|
|
1240
|
+
steps: {
|
|
1241
|
+
[x: string]: unknown;
|
|
1242
|
+
ordinal: number;
|
|
1243
|
+
kind: string;
|
|
1244
|
+
targetId: string;
|
|
1245
|
+
status: string;
|
|
1246
|
+
version: number;
|
|
1247
|
+
stepDigest: string;
|
|
1248
|
+
childEvidence?: Record<string, unknown> | null | undefined;
|
|
1249
|
+
}[];
|
|
1250
|
+
execution?: {
|
|
1251
|
+
[x: string]: unknown;
|
|
1252
|
+
status: "QUEUED" | "RETRY_WAIT" | "RUNNING" | "SUCCEEDED" | "TERMINATED" | "WAITING_MANUAL";
|
|
1253
|
+
currentStep?: number | null | undefined;
|
|
1254
|
+
attempts?: number | undefined;
|
|
1255
|
+
errorCode?: string | null | undefined;
|
|
1256
|
+
errorDetails?: Record<string, unknown> | null | undefined;
|
|
1257
|
+
javascriptPolicyDeletionConfirmed?: boolean | undefined;
|
|
1258
|
+
verifiedAt?: string | null | undefined;
|
|
1259
|
+
observedBundleDigest?: string | null | undefined;
|
|
1260
|
+
} | undefined;
|
|
1261
|
+
collaboration: {
|
|
1262
|
+
[x: string]: unknown;
|
|
1263
|
+
state: string;
|
|
1264
|
+
allowedActions: string[];
|
|
1265
|
+
};
|
|
1266
|
+
operation: "MANAGED_KEYCLOAK_IMPORT";
|
|
1267
|
+
plan: {
|
|
1268
|
+
[x: string]: unknown;
|
|
1269
|
+
applicationId: number;
|
|
1270
|
+
configurationBundle: {
|
|
1271
|
+
[x: string]: unknown;
|
|
1272
|
+
status: "BLOCKED" | "READY";
|
|
1273
|
+
bundleDigest: string;
|
|
1274
|
+
javascriptPolicyDeletionRequired?: boolean | undefined;
|
|
1275
|
+
objects: {
|
|
1276
|
+
[x: string]: unknown;
|
|
1277
|
+
key: string;
|
|
1278
|
+
kind: string;
|
|
1279
|
+
logicalId: string;
|
|
1280
|
+
action: string;
|
|
1281
|
+
dependencies: string[];
|
|
1282
|
+
desired?: unknown;
|
|
1283
|
+
observed?: unknown;
|
|
1284
|
+
baseline?: unknown;
|
|
1285
|
+
}[];
|
|
1286
|
+
differences: {
|
|
1287
|
+
[x: string]: unknown;
|
|
1288
|
+
objectKey: string;
|
|
1289
|
+
field: string;
|
|
1290
|
+
action: string;
|
|
1291
|
+
current?: unknown;
|
|
1292
|
+
desired?: unknown;
|
|
1293
|
+
baseline?: unknown;
|
|
1294
|
+
}[];
|
|
1295
|
+
blockers: {
|
|
1296
|
+
[x: string]: unknown;
|
|
1297
|
+
code: string;
|
|
1298
|
+
objectKey?: string | undefined;
|
|
1299
|
+
message?: string | undefined;
|
|
1300
|
+
}[];
|
|
1301
|
+
};
|
|
1302
|
+
managedConfiguration: {
|
|
1303
|
+
[x: string]: unknown;
|
|
1304
|
+
configuration: {
|
|
1305
|
+
[x: string]: unknown;
|
|
1306
|
+
schemaVersion: "1";
|
|
1307
|
+
kind: "KEYCLOAK_API_KEY_CONFIGURATION";
|
|
1308
|
+
target: {
|
|
1309
|
+
issuerId: string;
|
|
1310
|
+
applicationId: number;
|
|
1311
|
+
platformEnvironmentId: number;
|
|
1312
|
+
};
|
|
1313
|
+
};
|
|
1314
|
+
};
|
|
1315
|
+
};
|
|
1316
|
+
} | {
|
|
1059
1317
|
[x: string]: unknown;
|
|
1060
1318
|
id: string;
|
|
1061
1319
|
applicationId: number;
|
|
@@ -1331,14 +1589,100 @@ export declare class ApplicationClient {
|
|
|
1331
1589
|
};
|
|
1332
1590
|
steps: {
|
|
1333
1591
|
[x: string]: unknown;
|
|
1334
|
-
kind: "CREDENTIAL_ROTATE";
|
|
1335
|
-
targetId: string;
|
|
1592
|
+
kind: "CREDENTIAL_ROTATE";
|
|
1593
|
+
targetId: string;
|
|
1594
|
+
}[];
|
|
1595
|
+
};
|
|
1596
|
+
credentialOperation: Record<string, unknown>;
|
|
1597
|
+
})[];
|
|
1598
|
+
}>;
|
|
1599
|
+
job(jobId: string): Promise<{
|
|
1600
|
+
[x: string]: unknown;
|
|
1601
|
+
id: string;
|
|
1602
|
+
applicationId: number;
|
|
1603
|
+
status: string;
|
|
1604
|
+
version: number;
|
|
1605
|
+
planDigest: string;
|
|
1606
|
+
predecessorId: string | null;
|
|
1607
|
+
createdAt: string;
|
|
1608
|
+
updatedAt: string;
|
|
1609
|
+
steps: {
|
|
1610
|
+
[x: string]: unknown;
|
|
1611
|
+
ordinal: number;
|
|
1612
|
+
kind: string;
|
|
1613
|
+
targetId: string;
|
|
1614
|
+
status: string;
|
|
1615
|
+
version: number;
|
|
1616
|
+
stepDigest: string;
|
|
1617
|
+
childEvidence?: Record<string, unknown> | null | undefined;
|
|
1618
|
+
}[];
|
|
1619
|
+
execution?: {
|
|
1620
|
+
[x: string]: unknown;
|
|
1621
|
+
status: "QUEUED" | "RETRY_WAIT" | "RUNNING" | "SUCCEEDED" | "TERMINATED" | "WAITING_MANUAL";
|
|
1622
|
+
currentStep?: number | null | undefined;
|
|
1623
|
+
attempts?: number | undefined;
|
|
1624
|
+
errorCode?: string | null | undefined;
|
|
1625
|
+
errorDetails?: Record<string, unknown> | null | undefined;
|
|
1626
|
+
javascriptPolicyDeletionConfirmed?: boolean | undefined;
|
|
1627
|
+
verifiedAt?: string | null | undefined;
|
|
1628
|
+
observedBundleDigest?: string | null | undefined;
|
|
1629
|
+
} | undefined;
|
|
1630
|
+
collaboration: {
|
|
1631
|
+
[x: string]: unknown;
|
|
1632
|
+
state: string;
|
|
1633
|
+
allowedActions: string[];
|
|
1634
|
+
};
|
|
1635
|
+
operation: "MANAGED_KEYCLOAK_IMPORT";
|
|
1636
|
+
plan: {
|
|
1637
|
+
[x: string]: unknown;
|
|
1638
|
+
applicationId: number;
|
|
1639
|
+
configurationBundle: {
|
|
1640
|
+
[x: string]: unknown;
|
|
1641
|
+
status: "BLOCKED" | "READY";
|
|
1642
|
+
bundleDigest: string;
|
|
1643
|
+
javascriptPolicyDeletionRequired?: boolean | undefined;
|
|
1644
|
+
objects: {
|
|
1645
|
+
[x: string]: unknown;
|
|
1646
|
+
key: string;
|
|
1647
|
+
kind: string;
|
|
1648
|
+
logicalId: string;
|
|
1649
|
+
action: string;
|
|
1650
|
+
dependencies: string[];
|
|
1651
|
+
desired?: unknown;
|
|
1652
|
+
observed?: unknown;
|
|
1653
|
+
baseline?: unknown;
|
|
1654
|
+
}[];
|
|
1655
|
+
differences: {
|
|
1656
|
+
[x: string]: unknown;
|
|
1657
|
+
objectKey: string;
|
|
1658
|
+
field: string;
|
|
1659
|
+
action: string;
|
|
1660
|
+
current?: unknown;
|
|
1661
|
+
desired?: unknown;
|
|
1662
|
+
baseline?: unknown;
|
|
1663
|
+
}[];
|
|
1664
|
+
blockers: {
|
|
1665
|
+
[x: string]: unknown;
|
|
1666
|
+
code: string;
|
|
1667
|
+
objectKey?: string | undefined;
|
|
1668
|
+
message?: string | undefined;
|
|
1336
1669
|
}[];
|
|
1337
1670
|
};
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1671
|
+
managedConfiguration: {
|
|
1672
|
+
[x: string]: unknown;
|
|
1673
|
+
configuration: {
|
|
1674
|
+
[x: string]: unknown;
|
|
1675
|
+
schemaVersion: "1";
|
|
1676
|
+
kind: "KEYCLOAK_API_KEY_CONFIGURATION";
|
|
1677
|
+
target: {
|
|
1678
|
+
issuerId: string;
|
|
1679
|
+
applicationId: number;
|
|
1680
|
+
platformEnvironmentId: number;
|
|
1681
|
+
};
|
|
1682
|
+
};
|
|
1683
|
+
};
|
|
1684
|
+
};
|
|
1685
|
+
} | {
|
|
1342
1686
|
[x: string]: unknown;
|
|
1343
1687
|
id: string;
|
|
1344
1688
|
applicationId: number;
|
|
@@ -1621,6 +1965,92 @@ export declare class ApplicationClient {
|
|
|
1621
1965
|
credentialOperation: Record<string, unknown>;
|
|
1622
1966
|
}>;
|
|
1623
1967
|
jobAction(jobId: string, action: "validate" | "cancel" | "prepare" | "review" | "apply" | "recheck" | "terminate" | "repreview" | "execute" | "resume" | "abandon", input: unknown): Promise<{
|
|
1968
|
+
[x: string]: unknown;
|
|
1969
|
+
id: string;
|
|
1970
|
+
applicationId: number;
|
|
1971
|
+
status: string;
|
|
1972
|
+
version: number;
|
|
1973
|
+
planDigest: string;
|
|
1974
|
+
predecessorId: string | null;
|
|
1975
|
+
createdAt: string;
|
|
1976
|
+
updatedAt: string;
|
|
1977
|
+
steps: {
|
|
1978
|
+
[x: string]: unknown;
|
|
1979
|
+
ordinal: number;
|
|
1980
|
+
kind: string;
|
|
1981
|
+
targetId: string;
|
|
1982
|
+
status: string;
|
|
1983
|
+
version: number;
|
|
1984
|
+
stepDigest: string;
|
|
1985
|
+
childEvidence?: Record<string, unknown> | null | undefined;
|
|
1986
|
+
}[];
|
|
1987
|
+
execution?: {
|
|
1988
|
+
[x: string]: unknown;
|
|
1989
|
+
status: "QUEUED" | "RETRY_WAIT" | "RUNNING" | "SUCCEEDED" | "TERMINATED" | "WAITING_MANUAL";
|
|
1990
|
+
currentStep?: number | null | undefined;
|
|
1991
|
+
attempts?: number | undefined;
|
|
1992
|
+
errorCode?: string | null | undefined;
|
|
1993
|
+
errorDetails?: Record<string, unknown> | null | undefined;
|
|
1994
|
+
javascriptPolicyDeletionConfirmed?: boolean | undefined;
|
|
1995
|
+
verifiedAt?: string | null | undefined;
|
|
1996
|
+
observedBundleDigest?: string | null | undefined;
|
|
1997
|
+
} | undefined;
|
|
1998
|
+
collaboration: {
|
|
1999
|
+
[x: string]: unknown;
|
|
2000
|
+
state: string;
|
|
2001
|
+
allowedActions: string[];
|
|
2002
|
+
};
|
|
2003
|
+
operation: "MANAGED_KEYCLOAK_IMPORT";
|
|
2004
|
+
plan: {
|
|
2005
|
+
[x: string]: unknown;
|
|
2006
|
+
applicationId: number;
|
|
2007
|
+
configurationBundle: {
|
|
2008
|
+
[x: string]: unknown;
|
|
2009
|
+
status: "BLOCKED" | "READY";
|
|
2010
|
+
bundleDigest: string;
|
|
2011
|
+
javascriptPolicyDeletionRequired?: boolean | undefined;
|
|
2012
|
+
objects: {
|
|
2013
|
+
[x: string]: unknown;
|
|
2014
|
+
key: string;
|
|
2015
|
+
kind: string;
|
|
2016
|
+
logicalId: string;
|
|
2017
|
+
action: string;
|
|
2018
|
+
dependencies: string[];
|
|
2019
|
+
desired?: unknown;
|
|
2020
|
+
observed?: unknown;
|
|
2021
|
+
baseline?: unknown;
|
|
2022
|
+
}[];
|
|
2023
|
+
differences: {
|
|
2024
|
+
[x: string]: unknown;
|
|
2025
|
+
objectKey: string;
|
|
2026
|
+
field: string;
|
|
2027
|
+
action: string;
|
|
2028
|
+
current?: unknown;
|
|
2029
|
+
desired?: unknown;
|
|
2030
|
+
baseline?: unknown;
|
|
2031
|
+
}[];
|
|
2032
|
+
blockers: {
|
|
2033
|
+
[x: string]: unknown;
|
|
2034
|
+
code: string;
|
|
2035
|
+
objectKey?: string | undefined;
|
|
2036
|
+
message?: string | undefined;
|
|
2037
|
+
}[];
|
|
2038
|
+
};
|
|
2039
|
+
managedConfiguration: {
|
|
2040
|
+
[x: string]: unknown;
|
|
2041
|
+
configuration: {
|
|
2042
|
+
[x: string]: unknown;
|
|
2043
|
+
schemaVersion: "1";
|
|
2044
|
+
kind: "KEYCLOAK_API_KEY_CONFIGURATION";
|
|
2045
|
+
target: {
|
|
2046
|
+
issuerId: string;
|
|
2047
|
+
applicationId: number;
|
|
2048
|
+
platformEnvironmentId: number;
|
|
2049
|
+
};
|
|
2050
|
+
};
|
|
2051
|
+
};
|
|
2052
|
+
};
|
|
2053
|
+
} | {
|
|
1624
2054
|
[x: string]: unknown;
|
|
1625
2055
|
id: string;
|
|
1626
2056
|
applicationId: number;
|
|
@@ -2002,6 +2432,92 @@ export declare class ApplicationClient {
|
|
|
2002
2432
|
createdAt: string;
|
|
2003
2433
|
updatedAt: string;
|
|
2004
2434
|
publicationJob: {
|
|
2435
|
+
[x: string]: unknown;
|
|
2436
|
+
id: string;
|
|
2437
|
+
applicationId: number;
|
|
2438
|
+
status: string;
|
|
2439
|
+
version: number;
|
|
2440
|
+
planDigest: string;
|
|
2441
|
+
predecessorId: string | null;
|
|
2442
|
+
createdAt: string;
|
|
2443
|
+
updatedAt: string;
|
|
2444
|
+
steps: {
|
|
2445
|
+
[x: string]: unknown;
|
|
2446
|
+
ordinal: number;
|
|
2447
|
+
kind: string;
|
|
2448
|
+
targetId: string;
|
|
2449
|
+
status: string;
|
|
2450
|
+
version: number;
|
|
2451
|
+
stepDigest: string;
|
|
2452
|
+
childEvidence?: Record<string, unknown> | null | undefined;
|
|
2453
|
+
}[];
|
|
2454
|
+
execution?: {
|
|
2455
|
+
[x: string]: unknown;
|
|
2456
|
+
status: "QUEUED" | "RETRY_WAIT" | "RUNNING" | "SUCCEEDED" | "TERMINATED" | "WAITING_MANUAL";
|
|
2457
|
+
currentStep?: number | null | undefined;
|
|
2458
|
+
attempts?: number | undefined;
|
|
2459
|
+
errorCode?: string | null | undefined;
|
|
2460
|
+
errorDetails?: Record<string, unknown> | null | undefined;
|
|
2461
|
+
javascriptPolicyDeletionConfirmed?: boolean | undefined;
|
|
2462
|
+
verifiedAt?: string | null | undefined;
|
|
2463
|
+
observedBundleDigest?: string | null | undefined;
|
|
2464
|
+
} | undefined;
|
|
2465
|
+
collaboration: {
|
|
2466
|
+
[x: string]: unknown;
|
|
2467
|
+
state: string;
|
|
2468
|
+
allowedActions: string[];
|
|
2469
|
+
};
|
|
2470
|
+
operation: "MANAGED_KEYCLOAK_IMPORT";
|
|
2471
|
+
plan: {
|
|
2472
|
+
[x: string]: unknown;
|
|
2473
|
+
applicationId: number;
|
|
2474
|
+
configurationBundle: {
|
|
2475
|
+
[x: string]: unknown;
|
|
2476
|
+
status: "BLOCKED" | "READY";
|
|
2477
|
+
bundleDigest: string;
|
|
2478
|
+
javascriptPolicyDeletionRequired?: boolean | undefined;
|
|
2479
|
+
objects: {
|
|
2480
|
+
[x: string]: unknown;
|
|
2481
|
+
key: string;
|
|
2482
|
+
kind: string;
|
|
2483
|
+
logicalId: string;
|
|
2484
|
+
action: string;
|
|
2485
|
+
dependencies: string[];
|
|
2486
|
+
desired?: unknown;
|
|
2487
|
+
observed?: unknown;
|
|
2488
|
+
baseline?: unknown;
|
|
2489
|
+
}[];
|
|
2490
|
+
differences: {
|
|
2491
|
+
[x: string]: unknown;
|
|
2492
|
+
objectKey: string;
|
|
2493
|
+
field: string;
|
|
2494
|
+
action: string;
|
|
2495
|
+
current?: unknown;
|
|
2496
|
+
desired?: unknown;
|
|
2497
|
+
baseline?: unknown;
|
|
2498
|
+
}[];
|
|
2499
|
+
blockers: {
|
|
2500
|
+
[x: string]: unknown;
|
|
2501
|
+
code: string;
|
|
2502
|
+
objectKey?: string | undefined;
|
|
2503
|
+
message?: string | undefined;
|
|
2504
|
+
}[];
|
|
2505
|
+
};
|
|
2506
|
+
managedConfiguration: {
|
|
2507
|
+
[x: string]: unknown;
|
|
2508
|
+
configuration: {
|
|
2509
|
+
[x: string]: unknown;
|
|
2510
|
+
schemaVersion: "1";
|
|
2511
|
+
kind: "KEYCLOAK_API_KEY_CONFIGURATION";
|
|
2512
|
+
target: {
|
|
2513
|
+
issuerId: string;
|
|
2514
|
+
applicationId: number;
|
|
2515
|
+
platformEnvironmentId: number;
|
|
2516
|
+
};
|
|
2517
|
+
};
|
|
2518
|
+
};
|
|
2519
|
+
};
|
|
2520
|
+
} | {
|
|
2005
2521
|
[x: string]: unknown;
|
|
2006
2522
|
id: string;
|
|
2007
2523
|
applicationId: number;
|
|
@@ -2335,6 +2851,92 @@ export declare class ApplicationClient {
|
|
|
2335
2851
|
createdAt: string;
|
|
2336
2852
|
updatedAt: string;
|
|
2337
2853
|
publicationJob: {
|
|
2854
|
+
[x: string]: unknown;
|
|
2855
|
+
id: string;
|
|
2856
|
+
applicationId: number;
|
|
2857
|
+
status: string;
|
|
2858
|
+
version: number;
|
|
2859
|
+
planDigest: string;
|
|
2860
|
+
predecessorId: string | null;
|
|
2861
|
+
createdAt: string;
|
|
2862
|
+
updatedAt: string;
|
|
2863
|
+
steps: {
|
|
2864
|
+
[x: string]: unknown;
|
|
2865
|
+
ordinal: number;
|
|
2866
|
+
kind: string;
|
|
2867
|
+
targetId: string;
|
|
2868
|
+
status: string;
|
|
2869
|
+
version: number;
|
|
2870
|
+
stepDigest: string;
|
|
2871
|
+
childEvidence?: Record<string, unknown> | null | undefined;
|
|
2872
|
+
}[];
|
|
2873
|
+
execution?: {
|
|
2874
|
+
[x: string]: unknown;
|
|
2875
|
+
status: "QUEUED" | "RETRY_WAIT" | "RUNNING" | "SUCCEEDED" | "TERMINATED" | "WAITING_MANUAL";
|
|
2876
|
+
currentStep?: number | null | undefined;
|
|
2877
|
+
attempts?: number | undefined;
|
|
2878
|
+
errorCode?: string | null | undefined;
|
|
2879
|
+
errorDetails?: Record<string, unknown> | null | undefined;
|
|
2880
|
+
javascriptPolicyDeletionConfirmed?: boolean | undefined;
|
|
2881
|
+
verifiedAt?: string | null | undefined;
|
|
2882
|
+
observedBundleDigest?: string | null | undefined;
|
|
2883
|
+
} | undefined;
|
|
2884
|
+
collaboration: {
|
|
2885
|
+
[x: string]: unknown;
|
|
2886
|
+
state: string;
|
|
2887
|
+
allowedActions: string[];
|
|
2888
|
+
};
|
|
2889
|
+
operation: "MANAGED_KEYCLOAK_IMPORT";
|
|
2890
|
+
plan: {
|
|
2891
|
+
[x: string]: unknown;
|
|
2892
|
+
applicationId: number;
|
|
2893
|
+
configurationBundle: {
|
|
2894
|
+
[x: string]: unknown;
|
|
2895
|
+
status: "BLOCKED" | "READY";
|
|
2896
|
+
bundleDigest: string;
|
|
2897
|
+
javascriptPolicyDeletionRequired?: boolean | undefined;
|
|
2898
|
+
objects: {
|
|
2899
|
+
[x: string]: unknown;
|
|
2900
|
+
key: string;
|
|
2901
|
+
kind: string;
|
|
2902
|
+
logicalId: string;
|
|
2903
|
+
action: string;
|
|
2904
|
+
dependencies: string[];
|
|
2905
|
+
desired?: unknown;
|
|
2906
|
+
observed?: unknown;
|
|
2907
|
+
baseline?: unknown;
|
|
2908
|
+
}[];
|
|
2909
|
+
differences: {
|
|
2910
|
+
[x: string]: unknown;
|
|
2911
|
+
objectKey: string;
|
|
2912
|
+
field: string;
|
|
2913
|
+
action: string;
|
|
2914
|
+
current?: unknown;
|
|
2915
|
+
desired?: unknown;
|
|
2916
|
+
baseline?: unknown;
|
|
2917
|
+
}[];
|
|
2918
|
+
blockers: {
|
|
2919
|
+
[x: string]: unknown;
|
|
2920
|
+
code: string;
|
|
2921
|
+
objectKey?: string | undefined;
|
|
2922
|
+
message?: string | undefined;
|
|
2923
|
+
}[];
|
|
2924
|
+
};
|
|
2925
|
+
managedConfiguration: {
|
|
2926
|
+
[x: string]: unknown;
|
|
2927
|
+
configuration: {
|
|
2928
|
+
[x: string]: unknown;
|
|
2929
|
+
schemaVersion: "1";
|
|
2930
|
+
kind: "KEYCLOAK_API_KEY_CONFIGURATION";
|
|
2931
|
+
target: {
|
|
2932
|
+
issuerId: string;
|
|
2933
|
+
applicationId: number;
|
|
2934
|
+
platformEnvironmentId: number;
|
|
2935
|
+
};
|
|
2936
|
+
};
|
|
2937
|
+
};
|
|
2938
|
+
};
|
|
2939
|
+
} | {
|
|
2338
2940
|
[x: string]: unknown;
|
|
2339
2941
|
id: string;
|
|
2340
2942
|
applicationId: number;
|
|
@@ -344,7 +344,7 @@ export class ApplicationClient {
|
|
|
344
344
|
if (action === "repreview")
|
|
345
345
|
this.validatePublicationProtocol(result, body);
|
|
346
346
|
if ((action === "execute" || action === "resume") &&
|
|
347
|
-
(result.operation !== "IDENTITY_PUBLICATION" || !result.plan.configurationBundle || !result.execution ||
|
|
347
|
+
((result.operation !== "IDENTITY_PUBLICATION" && result.operation !== "MANAGED_KEYCLOAK_IMPORT") || !result.plan.configurationBundle || !result.execution ||
|
|
348
348
|
result.planDigest !== body.expectedDigest ||
|
|
349
349
|
result.plan.configurationBundle.bundleDigest !== body.expectedBundleDigest))
|
|
350
350
|
invalid("Configuration execution response lacks bundle or readback evidence.");
|