@numa-tech/numa 1.19.0 → 1.20.1
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 +57 -3
- package/dist/ai-registry/bridge.js +3 -2
- package/dist/ai-registry/bridge.js.map +1 -1
- package/dist/ai-registry/client.d.ts +8 -1
- package/dist/ai-registry/client.js +11 -1
- package/dist/ai-registry/client.js.map +1 -1
- package/dist/ai-registry/commands.d.ts +3 -0
- package/dist/ai-registry/commands.js +48 -36
- package/dist/ai-registry/commands.js.map +1 -1
- package/dist/ai-registry/mcp-management.d.ts +2 -0
- package/dist/ai-registry/mcp-management.js +74 -0
- package/dist/ai-registry/mcp-management.js.map +1 -0
- package/dist/ai-registry/mcp-runtime-commands.d.ts +15 -0
- package/dist/ai-registry/mcp-runtime-commands.js +101 -0
- package/dist/ai-registry/mcp-runtime-commands.js.map +1 -0
- package/dist/ai-registry/mcp-runtime.d.ts +37 -0
- package/dist/ai-registry/mcp-runtime.js +134 -0
- package/dist/ai-registry/mcp-runtime.js.map +1 -0
- package/dist/ai-registry/mcp-stdio.d.ts +2 -0
- package/dist/ai-registry/mcp-stdio.js +18 -0
- package/dist/ai-registry/mcp-stdio.js.map +1 -0
- package/dist/authorization/application-client.d.ts +1271 -0
- package/dist/authorization/application-client.js +391 -0
- package/dist/authorization/application-client.js.map +1 -0
- package/dist/authorization/application-commands.d.ts +15 -0
- package/dist/authorization/application-commands.js +240 -0
- package/dist/authorization/application-commands.js.map +1 -0
- package/dist/authorization/application-schemas.d.ts +731 -0
- package/dist/authorization/application-schemas.js +521 -0
- package/dist/authorization/application-schemas.js.map +1 -0
- package/dist/authorization/{client.d.ts → bootstrap-client.d.ts} +5 -26
- package/dist/authorization/{client.js → bootstrap-client.js} +4 -27
- package/dist/authorization/bootstrap-client.js.map +1 -0
- package/dist/authorization/commands.d.ts +6 -21
- package/dist/authorization/commands.js +8 -130
- package/dist/authorization/commands.js.map +1 -1
- package/dist/authorization/enrollment-client.d.ts +40 -0
- package/dist/authorization/enrollment-client.js +56 -0
- package/dist/authorization/enrollment-client.js.map +1 -0
- package/dist/authorization/enrollment-commands.d.ts +5 -0
- package/dist/authorization/enrollment-commands.js +30 -0
- package/dist/authorization/enrollment-commands.js.map +1 -0
- package/dist/authorization/enrollment.d.ts +2 -2
- package/dist/authorization/enrollment.js +2 -2
- package/dist/authorization/enrollment.js.map +1 -1
- package/dist/authorization/schemas.d.ts +0 -90
- package/dist/authorization/schemas.js +0 -48
- package/dist/authorization/schemas.js.map +1 -1
- package/dist/backend.d.ts +1 -0
- package/dist/backend.js +4 -1
- package/dist/backend.js.map +1 -1
- package/dist/business-issuer.d.ts +4 -0
- package/dist/business-issuer.js +30 -0
- package/dist/business-issuer.js.map +1 -0
- package/dist/cli.js +61 -30
- package/dist/cli.js.map +1 -1
- package/dist/cloud/bootstrap.js +1 -1
- package/dist/cloud/bootstrap.js.map +1 -1
- package/dist/command-catalog.js +11 -36
- package/dist/command-catalog.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +15 -6
- package/dist/config.js.map +1 -1
- package/dist/login-configuration.d.ts +8 -0
- package/dist/login-configuration.js +17 -0
- package/dist/login-configuration.js.map +1 -0
- package/dist/login-recovery.d.ts +2 -0
- package/dist/login-recovery.js +15 -0
- package/dist/login-recovery.js.map +1 -0
- package/dist/mcp/commands.js +12 -2
- package/dist/mcp/commands.js.map +1 -1
- package/dist/mcp-gateway/commands.d.ts +2 -0
- package/dist/mcp-gateway/commands.js +11 -0
- package/dist/mcp-gateway/commands.js.map +1 -1
- package/dist/oss/commands.d.ts +2 -1
- package/dist/oss/commands.js +55 -37
- package/dist/oss/commands.js.map +1 -1
- package/dist/oss/file-operations.d.ts +57 -0
- package/dist/oss/file-operations.js +269 -0
- package/dist/oss/file-operations.js.map +1 -0
- package/dist/oss/local-picker.d.ts +2 -0
- package/dist/oss/local-picker.js +6 -0
- package/dist/oss/local-picker.js.map +1 -1
- package/dist/oss/tools.js +1 -1
- package/dist/oss/tools.js.map +1 -1
- package/dist/oss/transfer-queue.js +1 -1
- package/dist/oss/transfer-queue.js.map +1 -1
- package/dist/oss/transfers.d.ts +7 -0
- package/dist/oss/transfers.js +87 -0
- package/dist/oss/transfers.js.map +1 -1
- package/dist/oss/web-page.js +365 -30
- package/dist/oss/web-page.js.map +1 -1
- package/dist/oss/web-service.d.ts +45 -0
- package/dist/oss/web-service.js +107 -0
- package/dist/oss/web-service.js.map +1 -0
- package/dist/oss/web.d.ts +10 -0
- package/dist/oss/web.js +117 -15
- package/dist/oss/web.js.map +1 -1
- package/dist/platform-profile.d.ts +22 -2
- package/dist/platform-profile.js +67 -6
- package/dist/platform-profile.js.map +1 -1
- package/docs/application-default-groups.md +73 -0
- package/examples/cloud-bootstrap/README.md +1 -1
- package/examples/mcp/README.md +108 -0
- package/examples/mcp/management-smoke.py +154 -0
- package/examples/mcp/runtime-smoke.mjs +187 -0
- package/examples/mcp/server.json +17 -0
- package/examples/oss/README.md +78 -0
- package/examples/oss/__pycache__/roundtrip.cpython-314.pyc +0 -0
- package/examples/oss/__pycache__/test_roundtrip.cpython-314.pyc +0 -0
- package/examples/oss/roundtrip.py +84 -0
- package/examples/oss/test_roundtrip.py +66 -0
- package/package.json +6 -5
- package/dist/authorization/client.js.map +0 -1
- package/dist/authorization/group-client.d.ts +0 -169
- package/dist/authorization/group-client.js +0 -129
- package/dist/authorization/group-client.js.map +0 -1
- package/dist/authorization/group-commands.d.ts +0 -25
- package/dist/authorization/group-commands.js +0 -155
- package/dist/authorization/group-commands.js.map +0 -1
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
|
-
import { type
|
|
3
|
-
import type { KeycloakBootstrapRun, KeycloakBootstrapStart
|
|
2
|
+
import { type BootstrapApi, type StartKeycloakBootstrapInput } from "./bootstrap-client.js";
|
|
3
|
+
import type { KeycloakBootstrapRun, KeycloakBootstrapStart } from "./schemas.js";
|
|
4
4
|
import { type AccessRequestApi } from "./access-request-client.js";
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import { type ApplicationCommandDependencies } from "./application-commands.js";
|
|
6
|
+
export interface AuthorizationCommandDependencies extends ApplicationCommandDependencies {
|
|
7
|
+
clientFactory?: () => BootstrapApi;
|
|
7
8
|
accessRequestClientFactory?: () => AccessRequestApi;
|
|
8
9
|
openBrowser?: (url: string) => Promise<void>;
|
|
9
10
|
sleep?: (milliseconds: number) => Promise<void>;
|
|
10
11
|
}
|
|
11
|
-
interface ProvisionOptions {
|
|
12
|
-
apply?: boolean;
|
|
13
|
-
expectedRemoteDigest?: string;
|
|
14
|
-
idempotencyKey?: string;
|
|
15
|
-
}
|
|
16
12
|
interface BootstrapOptions {
|
|
17
13
|
noOpen?: boolean;
|
|
18
14
|
}
|
|
@@ -22,19 +18,8 @@ interface BootstrapApplyOptions extends BootstrapOptions {
|
|
|
22
18
|
confirmRealm: string;
|
|
23
19
|
}
|
|
24
20
|
export declare function stableAuthorizationOutput(value: unknown): unknown;
|
|
25
|
-
export declare function parseAuthorizationRoleId(value: string): number;
|
|
26
21
|
export declare function parseProvisioningRunId(value: string): number;
|
|
27
22
|
export declare function parseBootstrapApplyInput(options: BootstrapApplyOptions): StartKeycloakBootstrapInput;
|
|
28
|
-
export declare function waitForKeycloakBootstrap(client: Pick<
|
|
29
|
-
export declare function parseRoleCreateInput(options: {
|
|
30
|
-
code: string;
|
|
31
|
-
name: string;
|
|
32
|
-
description?: string;
|
|
33
|
-
}): CreateAuthorizationRoleInput;
|
|
34
|
-
export declare function parseProvisionOptions(preview: RoleProvisionPreview | undefined, options: ProvisionOptions): ApplyRoleProvisionInput | undefined;
|
|
35
|
-
export declare function provisionAuthorizationRole(client: Pick<AuthorizationApi, "previewRole" | "applyRole">, roleId: number, options: ProvisionOptions): Promise<{
|
|
36
|
-
preview: RoleProvisionPreview;
|
|
37
|
-
run?: RoleProvisionRun;
|
|
38
|
-
}>;
|
|
23
|
+
export declare function waitForKeycloakBootstrap(client: Pick<BootstrapApi, "getKeycloakBootstrapRun">, started: KeycloakBootstrapStart, sleep?: (milliseconds: number) => Promise<void>): Promise<KeycloakBootstrapRun>;
|
|
39
24
|
export declare function registerAuthorizationCommands(program: Command, dependencies?: AuthorizationCommandDependencies): void;
|
|
40
25
|
export {};
|
|
@@ -3,12 +3,12 @@ import { setTimeout as delay } from "node:timers/promises";
|
|
|
3
3
|
import open from "open";
|
|
4
4
|
import { loadAppConfig } from "../app-config.js";
|
|
5
5
|
import { loadConfig } from "../config.js";
|
|
6
|
-
import {
|
|
6
|
+
import { BootstrapClient } from "./bootstrap-client.js";
|
|
7
7
|
import { AuthorizationError, sanitizeAuthorizationOutput } from "./errors.js";
|
|
8
8
|
import { AccessRequestClient } from "./access-request-client.js";
|
|
9
9
|
import { registerAccessRequestCommands } from "./access-request-commands.js";
|
|
10
|
-
import {
|
|
11
|
-
|
|
10
|
+
import { registerEnrollmentCommands } from "./enrollment-commands.js";
|
|
11
|
+
import { registerApplicationCommands } from "./application-commands.js";
|
|
12
12
|
const CONTROL_CHARACTERS = /[\u0000-\u001f\u007f]/u;
|
|
13
13
|
const IDEMPOTENCY_KEY = /^[A-Za-z0-9][A-Za-z0-9._:-]{7,199}$/u;
|
|
14
14
|
function addExamples(command, examples, notes = []) {
|
|
@@ -48,13 +48,6 @@ function boundedText(value, label, maximum) {
|
|
|
48
48
|
}
|
|
49
49
|
return trimmed;
|
|
50
50
|
}
|
|
51
|
-
export function parseAuthorizationRoleId(value) {
|
|
52
|
-
const parsed = Number(value);
|
|
53
|
-
if (!Number.isSafeInteger(parsed) || parsed < 1 || String(parsed) !== value.trim()) {
|
|
54
|
-
throw new AuthorizationError("role-id must be a positive integer.", "authorization_input_invalid");
|
|
55
|
-
}
|
|
56
|
-
return parsed;
|
|
57
|
-
}
|
|
58
51
|
export function parseProvisioningRunId(value) {
|
|
59
52
|
const parsed = Number(value);
|
|
60
53
|
if (!Number.isSafeInteger(parsed) || parsed < 1 || String(parsed) !== value.trim()) {
|
|
@@ -92,144 +85,29 @@ export async function waitForKeycloakBootstrap(client, started, sleep = (millise
|
|
|
92
85
|
await sleep(1_000);
|
|
93
86
|
}
|
|
94
87
|
}
|
|
95
|
-
export function parseRoleCreateInput(options) {
|
|
96
|
-
const code = boundedText(options.code, "code", 80);
|
|
97
|
-
if (!code.startsWith(ROLE_PREFIX)
|
|
98
|
-
|| code.includes("..")
|
|
99
|
-
|| !/^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(code)) {
|
|
100
|
-
throw new AuthorizationError(`code must start with '${ROLE_PREFIX}', use only letters, numbers, '.', '_' or '-', and must not contain '..'.`, "authorization_input_invalid");
|
|
101
|
-
}
|
|
102
|
-
const name = boundedText(options.name, "name", 160);
|
|
103
|
-
const description = options.description == null
|
|
104
|
-
? undefined
|
|
105
|
-
: boundedText(options.description, "description", 2_000);
|
|
106
|
-
return { code, name, ...(description ? { description } : {}), status: "ACTIVE" };
|
|
107
|
-
}
|
|
108
|
-
export function parseProvisionOptions(preview, options) {
|
|
109
|
-
if (!options.apply) {
|
|
110
|
-
if (options.expectedRemoteDigest != null || options.idempotencyKey != null) {
|
|
111
|
-
throw new AuthorizationError("--expected-remote-digest and --idempotency-key are only valid together with --apply.", "authorization_input_invalid");
|
|
112
|
-
}
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
if (!options.expectedRemoteDigest || !options.idempotencyKey) {
|
|
116
|
-
throw new AuthorizationError("--apply requires both --expected-remote-digest and --idempotency-key.", "authorization_input_invalid");
|
|
117
|
-
}
|
|
118
|
-
const expectedRemoteDigest = boundedText(options.expectedRemoteDigest, "expected-remote-digest", 256);
|
|
119
|
-
if (!/^[a-f0-9]{64}$/u.test(expectedRemoteDigest)) {
|
|
120
|
-
throw new AuthorizationError("expected-remote-digest must be the 64-character lowercase SHA-256 value returned by preview.", "authorization_input_invalid");
|
|
121
|
-
}
|
|
122
|
-
const idempotencyKey = options.idempotencyKey.trim();
|
|
123
|
-
if (!IDEMPOTENCY_KEY.test(idempotencyKey)) {
|
|
124
|
-
throw new AuthorizationError("idempotency-key must be 8-200 characters, start with a letter or number, and use only letters, numbers, . _ : or -.", "authorization_input_invalid");
|
|
125
|
-
}
|
|
126
|
-
if (!preview) {
|
|
127
|
-
throw new AuthorizationError("A fresh provisioning preview is required before apply.", "authorization_input_invalid");
|
|
128
|
-
}
|
|
129
|
-
if (preview.remoteDigest !== expectedRemoteDigest) {
|
|
130
|
-
throw new AuthorizationError("expected-remote-digest does not match the fresh preview; review the new plan before applying.", "authorization_conflict", 409);
|
|
131
|
-
}
|
|
132
|
-
return {
|
|
133
|
-
expectedRoleVersion: preview.roleVersion,
|
|
134
|
-
expectedRemoteDigest,
|
|
135
|
-
idempotencyKey
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
export async function provisionAuthorizationRole(client, roleId, options) {
|
|
139
|
-
const preview = await client.previewRole(roleId);
|
|
140
|
-
const applyInput = parseProvisionOptions(preview, options);
|
|
141
|
-
if (!applyInput)
|
|
142
|
-
return { preview };
|
|
143
|
-
return { preview, run: await client.applyRole(roleId, applyInput) };
|
|
144
|
-
}
|
|
145
|
-
function roleLine(role) {
|
|
146
|
-
return `${role.id}\t${role.status}\t${role.code}\t${role.name}\tv${role.version}`;
|
|
147
|
-
}
|
|
148
|
-
function previewLine(preview) {
|
|
149
|
-
return `${preview.roleId}\t${preview.remoteState}\t${preview.action}\t${preview.roleClientId}/${preview.roleName}\t${preview.remoteDigest}`;
|
|
150
|
-
}
|
|
151
|
-
function runLine(run) {
|
|
152
|
-
return `${run.runId}\t${run.status}\t${run.action}\t${run.roleClientId}/${run.roleName}`;
|
|
153
|
-
}
|
|
154
88
|
function bootstrapRunLine(run) {
|
|
155
89
|
const digest = run.planDigest ?? "-";
|
|
156
90
|
return `${run.runId}\t${run.mode}\t${run.status}\t${digest}`;
|
|
157
91
|
}
|
|
158
92
|
export function registerAuthorizationCommands(program, dependencies = {}) {
|
|
159
93
|
const client = () => dependencies.clientFactory?.()
|
|
160
|
-
?? new
|
|
94
|
+
?? new BootstrapClient(loadConfig("platform"));
|
|
161
95
|
const openBrowser = dependencies.openBrowser ?? (async (url) => { await open(url); });
|
|
162
96
|
const sleep = dependencies.sleep ?? ((milliseconds) => delay(milliseconds));
|
|
163
97
|
const authorization = program.command("authorization")
|
|
164
|
-
.description("
|
|
98
|
+
.description("应用定义、身份草稿及逐阶段统一发布")
|
|
165
99
|
.addHelpText("after", `
|
|
166
100
|
安全边界:
|
|
167
101
|
CLI 只使用当前 Numa PKCE 用户身份访问 DevOps 同源 API。
|
|
168
102
|
realm、client、Keycloak URL 和 service-account secret 均由服务端固定,不能通过本命令覆盖。
|
|
169
|
-
|
|
103
|
+
应用环境选择已登记身份源。草稿不产生远端效果;显式 publication apply 只执行一个阶段。
|
|
170
104
|
`);
|
|
171
105
|
registerAccessRequestCommands(authorization, {
|
|
172
106
|
clientFactory: dependencies.accessRequestClientFactory
|
|
173
107
|
?? (() => new AccessRequestClient(loadConfig("platform")))
|
|
174
108
|
});
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
.description("管理平台 auth_role 并执行受控的 Keycloak Client Role 制备");
|
|
178
|
-
addExamples(role.command("list")
|
|
179
|
-
.description("列出平台角色及其版本;不直接访问 Keycloak")
|
|
180
|
-
.action(async (_options, command) => {
|
|
181
|
-
const roles = await client().listRoles();
|
|
182
|
-
await output(command, { ok: true, roles }, roles.map(roleLine).join("\n") || "没有找到平台角色");
|
|
183
|
-
}), ["numa authorization role list", "numa authorization role list --json"]);
|
|
184
|
-
addExamples(role.command("create")
|
|
185
|
-
.description("只创建 ACTIVE 平台角色;不会自动制备 Keycloak Client Role")
|
|
186
|
-
.requiredOption("--code <prefixed-role>", `带固定应用前缀的角色标识(${ROLE_PREFIX}...)`)
|
|
187
|
-
.requiredOption("--name <display-name>", "角色显示名称")
|
|
188
|
-
.option("--description <text>", "角色说明")
|
|
189
|
-
.action(async (options, command) => {
|
|
190
|
-
const created = await client().createRole(parseRoleCreateInput(options));
|
|
191
|
-
const nextCommand = `numa authorization role provision ${created.id}`;
|
|
192
|
-
await output(command, { ok: true, role: created, next_step: { command: nextCommand, mode: "preview" } }, `${roleLine(created)}\n下一步(仅预览): ${nextCommand}`);
|
|
193
|
-
}), [
|
|
194
|
-
"numa authorization role create --code mci-devops-platform-auditor --name '审计员' --json",
|
|
195
|
-
"numa authorization role provision 42"
|
|
196
|
-
], [
|
|
197
|
-
"请求体由 CLI 构造且 status 固定为 ACTIVE;服务端仍会校验并规范化角色标识。",
|
|
198
|
-
"创建成功后必须先执行 provision 预览,不会自动写入 Keycloak。"
|
|
199
|
-
]);
|
|
200
|
-
addExamples(role.command("provision <role-id>")
|
|
201
|
-
.description("默认预览固定 Client Role 的 CREATE/UPDATE/NOOP;显式 --apply 才执行")
|
|
202
|
-
.option("--apply", "按新鲜预览执行 Keycloak Client Role 制备")
|
|
203
|
-
.option("--expected-remote-digest <digest>", "必须与本次新鲜预览一致的远端摘要")
|
|
204
|
-
.option("--idempotency-key <key>", "同一次执行重试必须复用的稳定键")
|
|
205
|
-
.action(async (roleIdValue, options, command) => {
|
|
206
|
-
const roleId = parseAuthorizationRoleId(roleIdValue);
|
|
207
|
-
// Validate flag combinations before authentication, then fetch a fresh preview.
|
|
208
|
-
if (!options.apply)
|
|
209
|
-
parseProvisionOptions(undefined, options);
|
|
210
|
-
else if (!options.expectedRemoteDigest || !options.idempotencyKey)
|
|
211
|
-
parseProvisionOptions(undefined, options);
|
|
212
|
-
const result = await provisionAuthorizationRole(client(), roleId, options);
|
|
213
|
-
await output(command, result.run
|
|
214
|
-
? { ok: result.run.status !== "FAILED", preview: result.preview, provisioning_run: result.run }
|
|
215
|
-
: { ok: true, preview: result.preview, apply_required: result.preview.action !== "NOOP" }, result.run ? runLine(result.run) : previewLine(result.preview));
|
|
216
|
-
if (result.run?.status === "FAILED")
|
|
217
|
-
process.exitCode = 1;
|
|
218
|
-
}), [
|
|
219
|
-
"numa authorization role provision 42 --json",
|
|
220
|
-
`numa authorization role provision 42 --apply --expected-remote-digest ${"a".repeat(64)} --idempotency-key role-42-20260820 --json`
|
|
221
|
-
], [
|
|
222
|
-
"每次 apply 都会先重新预览;摘要不一致时本地拒绝执行,服务端仍会再次校验 role version 和远端摘要。",
|
|
223
|
-
"非交互和 JSON 模式不读取 prompt;缺少显式 apply 参数会稳定失败。"
|
|
224
|
-
]);
|
|
225
|
-
addExamples(role.command("provisioning-run <run-id>")
|
|
226
|
-
.description("查询角色制备运行记录及安全错误摘要")
|
|
227
|
-
.action(async (runIdValue, _options, command) => {
|
|
228
|
-
const run = await client().getProvisioningRun(parseProvisioningRunId(runIdValue));
|
|
229
|
-
await output(command, { ok: run.status !== "FAILED", provisioning_run: run }, runLine(run));
|
|
230
|
-
if (run.status === "FAILED")
|
|
231
|
-
process.exitCode = 1;
|
|
232
|
-
}), ["numa authorization role provisioning-run 123 --json"]);
|
|
109
|
+
registerEnrollmentCommands(authorization);
|
|
110
|
+
registerApplicationCommands(authorization, dependencies);
|
|
233
111
|
const bootstrap = authorization.command("bootstrap")
|
|
234
112
|
.description("通过一次新鲜管理员网页登录,在 DevOps 内存中远程制备 Keycloak 权限")
|
|
235
113
|
.addHelpText("after", `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/authorization/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/authorization/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AuthConfig } from "../config.js";
|
|
3
|
+
import { type KeycloakTokenProvider } from "../oauth.js";
|
|
4
|
+
export declare const EnrollmentSchema: z.ZodObject<{
|
|
5
|
+
membershipStatus: z.ZodEnum<{
|
|
6
|
+
ACTIVE: "ACTIVE";
|
|
7
|
+
NOT_ENROLLED: "NOT_ENROLLED";
|
|
8
|
+
REVOKED: "REVOKED";
|
|
9
|
+
SUSPENDED: "SUSPENDED";
|
|
10
|
+
}>;
|
|
11
|
+
syncStatus: z.ZodEnum<{
|
|
12
|
+
APPLIED: "APPLIED";
|
|
13
|
+
DISABLED: "DISABLED";
|
|
14
|
+
FAILED: "FAILED";
|
|
15
|
+
PENDING: "PENDING";
|
|
16
|
+
UNKNOWN: "UNKNOWN";
|
|
17
|
+
}>;
|
|
18
|
+
tokenRefreshRequired: z.ZodBoolean;
|
|
19
|
+
policyRevision: z.ZodNumber;
|
|
20
|
+
blocked: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
+
policyEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
clientId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
23
|
+
groupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
24
|
+
blockReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
25
|
+
expectedClientRoles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export type Enrollment = z.infer<typeof EnrollmentSchema>;
|
|
28
|
+
export interface EnrollmentApi {
|
|
29
|
+
enrollment(initialize?: boolean): Promise<Enrollment>;
|
|
30
|
+
}
|
|
31
|
+
export declare class EnrollmentClient implements EnrollmentApi {
|
|
32
|
+
private readonly config;
|
|
33
|
+
private readonly dependencies;
|
|
34
|
+
constructor(config: AuthConfig, dependencies?: {
|
|
35
|
+
fetch?: typeof fetch;
|
|
36
|
+
tokenProvider?: KeycloakTokenProvider;
|
|
37
|
+
});
|
|
38
|
+
enrollment(initialize?: boolean): Promise<Enrollment>;
|
|
39
|
+
private json;
|
|
40
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveBackendUrl } from "../backend.js";
|
|
3
|
+
import { ensureAccessToken, fetchWithKeycloakIdentity, } from "../oauth.js";
|
|
4
|
+
import { AuthorizationError, authorizationHttpErrorCode } from "./errors.js";
|
|
5
|
+
export const EnrollmentSchema = z.object({
|
|
6
|
+
membershipStatus: z.enum(["NOT_ENROLLED", "ACTIVE", "SUSPENDED", "REVOKED"]),
|
|
7
|
+
syncStatus: z.enum(["DISABLED", "PENDING", "APPLIED", "FAILED", "UNKNOWN"]),
|
|
8
|
+
tokenRefreshRequired: z.boolean(),
|
|
9
|
+
policyRevision: z.number().int().nonnegative(),
|
|
10
|
+
blocked: z.boolean().optional(),
|
|
11
|
+
policyEnabled: z.boolean().optional(),
|
|
12
|
+
clientId: z.string().nullable().optional(),
|
|
13
|
+
groupId: z.string().nullable().optional(),
|
|
14
|
+
blockReason: z.string().nullable().optional(),
|
|
15
|
+
expectedClientRoles: z.record(z.string(), z.array(z.string())).optional(),
|
|
16
|
+
});
|
|
17
|
+
export class EnrollmentClient {
|
|
18
|
+
config;
|
|
19
|
+
dependencies;
|
|
20
|
+
constructor(config, dependencies = {}) {
|
|
21
|
+
this.config = config;
|
|
22
|
+
this.dependencies = dependencies;
|
|
23
|
+
}
|
|
24
|
+
enrollment(initialize = false) {
|
|
25
|
+
if (this.config.authenticationMode === "client_credentials")
|
|
26
|
+
throw new AuthorizationError("Enrollment requires a human session.", "authorization_input_invalid");
|
|
27
|
+
return this.json("/api/v1/me/enrollment", EnrollmentSchema, initialize ? {} : undefined);
|
|
28
|
+
}
|
|
29
|
+
async json(path, schema, body) {
|
|
30
|
+
const method = body === undefined ? "GET" : "POST";
|
|
31
|
+
const response = await fetchWithKeycloakIdentity(this.config, resolveBackendUrl(this.config, { path, method }), () => ({
|
|
32
|
+
method,
|
|
33
|
+
redirect: "error",
|
|
34
|
+
signal: AbortSignal.timeout(20_000),
|
|
35
|
+
headers: {
|
|
36
|
+
Accept: "application/json",
|
|
37
|
+
...(body === undefined ? {} : { "Content-Type": "application/json" }),
|
|
38
|
+
},
|
|
39
|
+
...(body === undefined ? {} : { body: JSON.stringify(body) }),
|
|
40
|
+
}), {
|
|
41
|
+
fetch: this.dependencies.fetch ?? fetch,
|
|
42
|
+
tokenProvider: this.dependencies.tokenProvider ?? ensureAccessToken,
|
|
43
|
+
retryUnauthorized: method === "GET",
|
|
44
|
+
});
|
|
45
|
+
if (!response.ok) {
|
|
46
|
+
// Never echo credential-bearing upstream errors or HTML. After write timeouts,
|
|
47
|
+
// operators must inspect the same plan instead of submitting a new operation.
|
|
48
|
+
throw new AuthorizationError(`Enrollment API returned HTTP ${response.status}. Inspect the same plan before retrying a write.`, authorizationHttpErrorCode(response.status), response.status);
|
|
49
|
+
}
|
|
50
|
+
const parsed = schema.safeParse(await response.json().catch(() => undefined));
|
|
51
|
+
if (!parsed.success)
|
|
52
|
+
throw new AuthorizationError("Enrollment API response does not match the CLI contract.", "authorization_invalid_response");
|
|
53
|
+
return parsed.data;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=enrollment-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrollment-client.js","sourceRoot":"","sources":["../../src/authorization/enrollment-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import { loadConfig } from "../config.js";
|
|
3
|
+
import { EnrollmentClient } from "./enrollment-client.js";
|
|
4
|
+
import { initializeApplicationMembership } from "./enrollment.js";
|
|
5
|
+
import { sanitizeAuthorizationOutput } from "./errors.js";
|
|
6
|
+
export function registerEnrollmentCommands(authorization, dependencies = {}) {
|
|
7
|
+
const client = dependencies.clientFactory ?? (() => new EnrollmentClient(loadConfig()));
|
|
8
|
+
const enrollment = authorization
|
|
9
|
+
.command("enrollment")
|
|
10
|
+
.description("本人应用成员资格与默认组同步(不操作 realm 默认组)");
|
|
11
|
+
enrollment
|
|
12
|
+
.command("status")
|
|
13
|
+
.description("只读查询本人入组状态,不触发授权")
|
|
14
|
+
.action(async (_options, command) => output(command, { ok: true, enrollment: await client().enrollment() }));
|
|
15
|
+
enrollment
|
|
16
|
+
.command("initialize")
|
|
17
|
+
.description("显式初始化本人默认组;机器、暂停和已撤销成员不可自动入组")
|
|
18
|
+
.action(async (_options, command) => {
|
|
19
|
+
const result = await initializeApplicationMembership(loadConfig(), {
|
|
20
|
+
client: client(),
|
|
21
|
+
});
|
|
22
|
+
await output(command, { ok: result.status === "READY", ...result });
|
|
23
|
+
if (result.status !== "READY")
|
|
24
|
+
process.exitCode = 1;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
async function output(_command, value) {
|
|
28
|
+
process.stdout.write(`${JSON.stringify(sanitizeAuthorizationOutput(value), null, 2)}\n`);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=enrollment-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrollment-commands.js","sourceRoot":"","sources":["../../src/authorization/enrollment-commands.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAsB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,MAAM,UAAU,0BAA0B,CACxC,aAAsB,EACtB,YAAY,GAA4C,EAAE;IAE1D,MAAM,MAAM,GACV,YAAY,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,aAAa;SAC7B,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAChD,UAAU;SACP,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE,CACpD,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CACvE,CAAC;IACJ,UAAU;SACP,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,UAAU,EAAE,EAAE;YACjE,MAAM,EAAE,MAAM,EAAE;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC;AACD,KAAK,UAAU,MAAM,CAAC,QAAiB,EAAE,KAAc;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACnE,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AuthConfig } from "../config.js";
|
|
2
2
|
import { type UserIdentity } from "../identity.js";
|
|
3
|
-
import { type
|
|
3
|
+
import { type EnrollmentApi, type Enrollment } from "./enrollment-client.js";
|
|
4
4
|
export interface LoginEnrollmentResult {
|
|
5
5
|
status: "READY" | "PENDING" | "FAILED" | "UNKNOWN" | "SKIPPED" | "BLOCKED" | "DISABLED" | "REFRESH_REQUIRED";
|
|
6
6
|
message: string;
|
|
@@ -8,7 +8,7 @@ export interface LoginEnrollmentResult {
|
|
|
8
8
|
}
|
|
9
9
|
/** Called only after an explicit successful login / initialize action, never by GET or status. */
|
|
10
10
|
export declare function initializeApplicationMembership(config: AuthConfig, dependencies?: {
|
|
11
|
-
client?: Pick<
|
|
11
|
+
client?: Pick<EnrollmentApi, "enrollment">;
|
|
12
12
|
refreshIdentity?: (config: AuthConfig, forceRefresh: boolean) => Promise<UserIdentity>;
|
|
13
13
|
expectedSubject?: string;
|
|
14
14
|
}): Promise<LoginEnrollmentResult>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { currentIdentity } from "../identity.js";
|
|
2
|
-
import {
|
|
2
|
+
import { EnrollmentClient } from "./enrollment-client.js";
|
|
3
3
|
/** Called only after an explicit successful login / initialize action, never by GET or status. */
|
|
4
4
|
export async function initializeApplicationMembership(config, dependencies = {}) {
|
|
5
5
|
if (config.authenticationMode === "client_credentials")
|
|
@@ -8,7 +8,7 @@ export async function initializeApplicationMembership(config, dependencies = {})
|
|
|
8
8
|
};
|
|
9
9
|
if (!config.backendBaseUrl)
|
|
10
10
|
return { status: "SKIPPED", message: "登录成功;尚未配置应用 API,未同步基础权限。" };
|
|
11
|
-
const client = dependencies.client ?? new
|
|
11
|
+
const client = dependencies.client ?? new EnrollmentClient(config);
|
|
12
12
|
const identityProvider = dependencies.refreshIdentity ?? currentIdentity;
|
|
13
13
|
let enrollment;
|
|
14
14
|
let subject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrollment.js","sourceRoot":"","sources":["../../src/authorization/enrollment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAqB,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"enrollment.js","sourceRoot":"","sources":["../../src/authorization/enrollment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,91 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const AuthorizationRoleStatusSchema: z.ZodString;
|
|
3
|
-
export declare const AuthorizationRoleSchema: z.ZodObject<{
|
|
4
|
-
id: z.ZodNumber;
|
|
5
|
-
version: z.ZodNumber;
|
|
6
|
-
code: z.ZodString;
|
|
7
|
-
name: z.ZodString;
|
|
8
|
-
keycloakRoleId: z.ZodString;
|
|
9
|
-
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
10
|
-
status: z.ZodString;
|
|
11
|
-
createdDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12
|
-
lastModifiedDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13
|
-
}, z.core.$strip>;
|
|
14
|
-
export declare const AuthorizationRoleListSchema: z.ZodArray<z.ZodObject<{
|
|
15
|
-
id: z.ZodNumber;
|
|
16
|
-
version: z.ZodNumber;
|
|
17
|
-
code: z.ZodString;
|
|
18
|
-
name: z.ZodString;
|
|
19
|
-
keycloakRoleId: z.ZodString;
|
|
20
|
-
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
21
|
-
status: z.ZodString;
|
|
22
|
-
createdDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
23
|
-
lastModifiedDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
24
|
-
}, z.core.$strip>>;
|
|
25
|
-
export declare const RoleRemoteStateSchema: z.ZodEnum<{
|
|
26
|
-
DRIFTED: "DRIFTED";
|
|
27
|
-
MATCHED: "MATCHED";
|
|
28
|
-
MISSING: "MISSING";
|
|
29
|
-
}>;
|
|
30
|
-
export declare const RoleProvisionActionSchema: z.ZodEnum<{
|
|
31
|
-
CREATE: "CREATE";
|
|
32
|
-
NOOP: "NOOP";
|
|
33
|
-
UPDATE: "UPDATE";
|
|
34
|
-
}>;
|
|
35
|
-
export declare const RoleProvisionRunStatusSchema: z.ZodEnum<{
|
|
36
|
-
APPLIED: "APPLIED";
|
|
37
|
-
APPLYING: "APPLYING";
|
|
38
|
-
FAILED: "FAILED";
|
|
39
|
-
PREPARED: "PREPARED";
|
|
40
|
-
}>;
|
|
41
|
-
export declare const RoleProvisionPreviewSchema: z.ZodObject<{
|
|
42
|
-
roleId: z.ZodNumber;
|
|
43
|
-
roleVersion: z.ZodNumber;
|
|
44
|
-
roleClientId: z.ZodString;
|
|
45
|
-
roleName: z.ZodString;
|
|
46
|
-
remoteState: z.ZodEnum<{
|
|
47
|
-
DRIFTED: "DRIFTED";
|
|
48
|
-
MATCHED: "MATCHED";
|
|
49
|
-
MISSING: "MISSING";
|
|
50
|
-
}>;
|
|
51
|
-
action: z.ZodEnum<{
|
|
52
|
-
CREATE: "CREATE";
|
|
53
|
-
NOOP: "NOOP";
|
|
54
|
-
UPDATE: "UPDATE";
|
|
55
|
-
}>;
|
|
56
|
-
remoteDigest: z.ZodString;
|
|
57
|
-
differences: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
58
|
-
field: z.ZodString;
|
|
59
|
-
remoteValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
60
|
-
expectedValue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
61
|
-
}, z.core.$strip>>>;
|
|
62
|
-
}, z.core.$strip>;
|
|
63
|
-
export declare const RoleProvisionRunSchema: z.ZodObject<{
|
|
64
|
-
runId: z.ZodNumber;
|
|
65
|
-
actor: z.ZodString;
|
|
66
|
-
roleId: z.ZodNumber;
|
|
67
|
-
roleVersion: z.ZodNumber;
|
|
68
|
-
roleClientId: z.ZodString;
|
|
69
|
-
roleName: z.ZodString;
|
|
70
|
-
action: z.ZodEnum<{
|
|
71
|
-
CREATE: "CREATE";
|
|
72
|
-
NOOP: "NOOP";
|
|
73
|
-
UPDATE: "UPDATE";
|
|
74
|
-
}>;
|
|
75
|
-
status: z.ZodEnum<{
|
|
76
|
-
APPLIED: "APPLIED";
|
|
77
|
-
APPLYING: "APPLYING";
|
|
78
|
-
FAILED: "FAILED";
|
|
79
|
-
PREPARED: "PREPARED";
|
|
80
|
-
}>;
|
|
81
|
-
beforeDigest: z.ZodString;
|
|
82
|
-
expectedRemoteDigest: z.ZodString;
|
|
83
|
-
afterDigest: z.ZodNullable<z.ZodString>;
|
|
84
|
-
errorCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
85
|
-
errorSummary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
86
|
-
preparedAt: z.ZodString;
|
|
87
|
-
completedAt: z.ZodNullable<z.ZodString>;
|
|
88
|
-
}, z.core.$strip>;
|
|
89
2
|
export declare const KeycloakBootstrapModeSchema: z.ZodEnum<{
|
|
90
3
|
APPLY: "APPLY";
|
|
91
4
|
INTEGRATION_INIT: "INTEGRATION_INIT";
|
|
@@ -217,8 +130,5 @@ export declare const AuthorizationApiErrorSchema: z.ZodObject<{
|
|
|
217
130
|
requestId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
218
131
|
runId: z.ZodOptional<z.ZodNumber>;
|
|
219
132
|
}, z.core.$strip>;
|
|
220
|
-
export type AuthorizationRole = z.infer<typeof AuthorizationRoleSchema>;
|
|
221
|
-
export type RoleProvisionPreview = z.infer<typeof RoleProvisionPreviewSchema>;
|
|
222
|
-
export type RoleProvisionRun = z.infer<typeof RoleProvisionRunSchema>;
|
|
223
133
|
export type KeycloakBootstrapStart = z.infer<typeof KeycloakBootstrapStartSchema>;
|
|
224
134
|
export type KeycloakBootstrapRun = z.infer<typeof KeycloakBootstrapRunSchema>;
|
|
@@ -1,52 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export const AuthorizationRoleStatusSchema = z.string().trim().min(1).max(64);
|
|
3
|
-
export const AuthorizationRoleSchema = z.object({
|
|
4
|
-
id: z.number().int().positive().max(Number.MAX_SAFE_INTEGER),
|
|
5
|
-
version: z.number().int().nonnegative(),
|
|
6
|
-
code: z.string().trim().min(1).max(80),
|
|
7
|
-
name: z.string().trim().min(1).max(160),
|
|
8
|
-
keycloakRoleId: z.string().trim().min(1).max(80),
|
|
9
|
-
description: z.string().nullable().optional(),
|
|
10
|
-
status: AuthorizationRoleStatusSchema,
|
|
11
|
-
createdDate: z.string().nullable().optional(),
|
|
12
|
-
lastModifiedDate: z.string().nullable().optional()
|
|
13
|
-
});
|
|
14
|
-
export const AuthorizationRoleListSchema = z.array(AuthorizationRoleSchema);
|
|
15
|
-
export const RoleRemoteStateSchema = z.enum(["MISSING", "MATCHED", "DRIFTED"]);
|
|
16
|
-
export const RoleProvisionActionSchema = z.enum(["CREATE", "UPDATE", "NOOP"]);
|
|
17
|
-
export const RoleProvisionRunStatusSchema = z.enum(["PREPARED", "APPLYING", "APPLIED", "FAILED"]);
|
|
18
|
-
const RoleProvisionDifferenceSchema = z.object({
|
|
19
|
-
field: z.string().trim().min(1).max(128),
|
|
20
|
-
remoteValue: z.string().nullable().optional(),
|
|
21
|
-
expectedValue: z.string().nullable().optional()
|
|
22
|
-
});
|
|
23
|
-
export const RoleProvisionPreviewSchema = z.object({
|
|
24
|
-
roleId: z.number().int().positive().max(Number.MAX_SAFE_INTEGER),
|
|
25
|
-
roleVersion: z.number().int().nonnegative(),
|
|
26
|
-
roleClientId: z.string().trim().min(1),
|
|
27
|
-
roleName: z.string().trim().min(1).max(80),
|
|
28
|
-
remoteState: RoleRemoteStateSchema,
|
|
29
|
-
action: RoleProvisionActionSchema,
|
|
30
|
-
remoteDigest: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
31
|
-
differences: z.array(RoleProvisionDifferenceSchema).default([])
|
|
32
|
-
});
|
|
33
|
-
export const RoleProvisionRunSchema = z.object({
|
|
34
|
-
runId: z.number().int().positive().max(Number.MAX_SAFE_INTEGER),
|
|
35
|
-
actor: z.string().trim().min(1).max(320),
|
|
36
|
-
roleId: z.number().int().positive().max(Number.MAX_SAFE_INTEGER),
|
|
37
|
-
roleVersion: z.number().int().nonnegative(),
|
|
38
|
-
roleClientId: z.string().trim().min(1),
|
|
39
|
-
roleName: z.string().trim().min(1).max(80),
|
|
40
|
-
action: RoleProvisionActionSchema,
|
|
41
|
-
status: RoleProvisionRunStatusSchema,
|
|
42
|
-
beforeDigest: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
43
|
-
expectedRemoteDigest: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
44
|
-
afterDigest: z.string().regex(/^[a-f0-9]{64}$/u).nullable(),
|
|
45
|
-
errorCode: z.string().nullable().optional(),
|
|
46
|
-
errorSummary: z.string().nullable().optional(),
|
|
47
|
-
preparedAt: z.string().trim().min(1),
|
|
48
|
-
completedAt: z.string().nullable()
|
|
49
|
-
});
|
|
50
2
|
export const KeycloakBootstrapModeSchema = z.enum([
|
|
51
3
|
"PLAN",
|
|
52
4
|
"APPLY",
|