@numa-tech/numa 1.13.0 → 1.13.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 (53) hide show
  1. package/README.md +87 -7
  2. package/dist/application-onboarding/client.d.ts +37 -3
  3. package/dist/application-onboarding/client.js +31 -2
  4. package/dist/application-onboarding/client.js.map +1 -1
  5. package/dist/application-onboarding/commands.d.ts +2 -0
  6. package/dist/application-onboarding/commands.js +208 -8
  7. package/dist/application-onboarding/commands.js.map +1 -1
  8. package/dist/application-onboarding/schemas.d.ts +773 -1
  9. package/dist/application-onboarding/schemas.js +316 -4
  10. package/dist/application-onboarding/schemas.js.map +1 -1
  11. package/dist/application-onboarding/tui-model.d.ts +2 -0
  12. package/dist/application-onboarding/tui-model.js +150 -20
  13. package/dist/application-onboarding/tui-model.js.map +1 -1
  14. package/dist/application-onboarding/tui.d.ts +6 -1
  15. package/dist/application-onboarding/tui.js +87 -4
  16. package/dist/application-onboarding/tui.js.map +1 -1
  17. package/dist/cli.js +6 -1
  18. package/dist/cli.js.map +1 -1
  19. package/dist/command-catalog.js +171 -4
  20. package/dist/command-catalog.js.map +1 -1
  21. package/dist/gitops/schemas.js +2 -1
  22. package/dist/gitops/schemas.js.map +1 -1
  23. package/dist/jenkins-jobs/client.d.ts +319 -0
  24. package/dist/jenkins-jobs/client.js +136 -0
  25. package/dist/jenkins-jobs/client.js.map +1 -0
  26. package/dist/jenkins-jobs/commands.d.ts +6 -0
  27. package/dist/jenkins-jobs/commands.js +239 -0
  28. package/dist/jenkins-jobs/commands.js.map +1 -0
  29. package/dist/jenkins-jobs/schemas.d.ts +359 -0
  30. package/dist/jenkins-jobs/schemas.js +119 -0
  31. package/dist/jenkins-jobs/schemas.js.map +1 -0
  32. package/dist/publications/client.d.ts +181 -0
  33. package/dist/publications/client.js +147 -0
  34. package/dist/publications/client.js.map +1 -0
  35. package/dist/publications/commands.d.ts +8 -0
  36. package/dist/publications/commands.js +202 -0
  37. package/dist/publications/commands.js.map +1 -0
  38. package/dist/publications/scanner.d.ts +23 -0
  39. package/dist/publications/scanner.js +247 -0
  40. package/dist/publications/scanner.js.map +1 -0
  41. package/dist/publications/schemas.d.ts +164 -0
  42. package/dist/publications/schemas.js +90 -0
  43. package/dist/publications/schemas.js.map +1 -0
  44. package/dist/repositories/client.d.ts +36 -18
  45. package/dist/repositories/commands.d.ts +3 -0
  46. package/dist/repositories/commands.js +27 -6
  47. package/dist/repositories/commands.js.map +1 -1
  48. package/dist/repositories/errors.js +1 -1
  49. package/dist/repositories/errors.js.map +1 -1
  50. package/dist/repositories/schemas.d.ts +96 -64
  51. package/dist/repositories/schemas.js +9 -3
  52. package/dist/repositories/schemas.js.map +1 -1
  53. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/jenkins-jobs/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Command } from "commander";
2
+ import { JenkinsJobClient } from "./client.js";
3
+ export interface JenkinsJobCommandDependencies {
4
+ clientFactory?: () => JenkinsJobClient;
5
+ }
6
+ export declare function registerJenkinsJobCommands(program: Command, dependencies?: JenkinsJobCommandDependencies): void;
@@ -0,0 +1,239 @@
1
+ import process from "node:process";
2
+ import { loadAppConfig } from "../app-config.js";
3
+ import { loadConfig } from "../config.js";
4
+ import { PipelineError, sanitizePipelineOutput } from "../pipeline/errors.js";
5
+ import { JenkinsJobClient } from "./client.js";
6
+ import { JenkinsScanModeSchema, JenkinsTierSchema } from "./schemas.js";
7
+ const SAFE_IDENTIFIER = /^[A-Za-z0-9][A-Za-z0-9._:+%~-]*$/u;
8
+ const SAFE_REQUEST_ID = /^[A-Za-z0-9][A-Za-z0-9._:/+-]*$/u;
9
+ const PLAN_HASH = /^[0-9a-f]{64}$/u;
10
+ function stableIdentifier(value, label) {
11
+ const trimmed = value?.trim() ?? "";
12
+ if (!trimmed || trimmed.length > 256 || !SAFE_IDENTIFIER.test(trimmed) || /%(?![0-9A-Fa-f]{2})/u.test(trimmed)) {
13
+ throw new PipelineError(`${label} must be a stable identifier.`, "JENKINS_JOB_CLI_INPUT_INVALID");
14
+ }
15
+ return trimmed;
16
+ }
17
+ function safeRequestId(value, label) {
18
+ const trimmed = value?.trim() ?? "";
19
+ if (!trimmed || trimmed.length > 200 || !SAFE_REQUEST_ID.test(trimmed)) {
20
+ throw new PipelineError(`${label} must be 1-200 safe opaque characters.`, "JENKINS_JOB_IDEMPOTENCY_INVALID");
21
+ }
22
+ return trimmed;
23
+ }
24
+ function positiveNumber(value, label, maximum = Number.MAX_SAFE_INTEGER) {
25
+ const parsed = Number(value);
26
+ if (!Number.isSafeInteger(parsed) || parsed < 1 || parsed > maximum) {
27
+ throw new PipelineError(`${label} must be a positive integer.`, "JENKINS_JOB_CLI_INPUT_INVALID");
28
+ }
29
+ return parsed;
30
+ }
31
+ function nonNegativeNumber(value, label, fallback, maximum) {
32
+ if (value == null)
33
+ return fallback;
34
+ const parsed = Number(value);
35
+ if (!Number.isSafeInteger(parsed) || parsed < 0 || parsed > maximum) {
36
+ throw new PipelineError(`${label} must be an integer between 0 and ${maximum}.`, "JENKINS_JOB_CLI_INPUT_INVALID");
37
+ }
38
+ return parsed;
39
+ }
40
+ function safeJobName(value) {
41
+ const trimmed = value?.trim() ?? "";
42
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u.test(trimmed)) {
43
+ throw new PipelineError("job-name must be a single safe Jenkins path segment.", "JENKINS_JOB_CLI_INPUT_INVALID");
44
+ }
45
+ return trimmed;
46
+ }
47
+ function safeFolder(value) {
48
+ if (value == null || value.trim() === "")
49
+ return undefined;
50
+ const trimmed = value.trim();
51
+ if (trimmed.length > 512 || trimmed.includes("\\") || /[\u0000-\u001f\u007f]/u.test(trimmed)
52
+ || trimmed.split("/").some((part) => !part || part === "." || part === ".." || !/^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(part))) {
53
+ throw new PipelineError("parent-full-name must be a normalized Jenkins folder path.", "JENKINS_JOB_CLI_INPUT_INVALID");
54
+ }
55
+ return trimmed;
56
+ }
57
+ function safeRelativePath(value) {
58
+ if (value == null || value.trim() === "")
59
+ return undefined;
60
+ const trimmed = value.trim();
61
+ if (trimmed.length > 256 || trimmed.startsWith("/") || trimmed.includes("\\") || /[\u0000-\u001f\u007f]/u.test(trimmed)
62
+ || trimmed.split("/").some((part) => !part || part === "." || part === "..")) {
63
+ throw new PipelineError("jenkinsfile-path must be a normalized relative path.", "JENKINS_JOB_CLI_INPUT_INVALID");
64
+ }
65
+ return trimmed;
66
+ }
67
+ function safeBranch(value) {
68
+ if (value == null || value.trim() === "")
69
+ return undefined;
70
+ const trimmed = value.trim();
71
+ if (trimmed.length > 200 || trimmed.startsWith("-") || trimmed.endsWith(".") || trimmed.endsWith("/")
72
+ || trimmed.includes("..") || trimmed.includes("@{") || /[\s~^:?*\[\\\u0000-\u001f\u007f]/u.test(trimmed)) {
73
+ throw new PipelineError("default-branch is not a safe Git branch.", "JENKINS_JOB_CLI_INPUT_INVALID");
74
+ }
75
+ return trimmed;
76
+ }
77
+ function tier(value) {
78
+ const parsed = JenkinsTierSchema.safeParse(value?.trim().toUpperCase());
79
+ if (!parsed.success)
80
+ throw new PipelineError("tier must be develop, staging, production, or unknown.", "JENKINS_JOB_CLI_INPUT_INVALID");
81
+ return parsed.data;
82
+ }
83
+ function scanMode(value) {
84
+ const parsed = JenkinsScanModeSchema.safeParse((value ?? "NONE").trim().toUpperCase().replace(/-/gu, "_"));
85
+ if (!parsed.success)
86
+ throw new PipelineError("scan-mode must be none or index-only.", "JENKINS_JOB_CLI_INPUT_INVALID");
87
+ return parsed.data;
88
+ }
89
+ function exactPlanHash(value) {
90
+ const trimmed = value?.trim() ?? "";
91
+ if (!PLAN_HASH.test(trimmed))
92
+ throw new PipelineError("plan-hash must be the exact lower-case SHA-256 from the server.", "JENKINS_JOB_PLAN_HASH_MISMATCH");
93
+ return trimmed;
94
+ }
95
+ function requireYes(value) {
96
+ if (!value)
97
+ throw new PipelineError("Mutation requires --yes after reviewing the immutable Jenkins Job plan.", "JENKINS_JOB_CONFIRMATION_REQUIRED");
98
+ }
99
+ function snakeCase(key) { return key.replace(/([a-z0-9])([A-Z])/gu, "$1_$2").toLowerCase(); }
100
+ function stableOutput(value) {
101
+ const safe = sanitizePipelineOutput(value);
102
+ if (Array.isArray(safe))
103
+ return safe.map(stableOutput);
104
+ if (safe && typeof safe === "object")
105
+ return Object.fromEntries(Object.entries(safe).map(([key, item]) => [snakeCase(key), stableOutput(item)]));
106
+ return safe;
107
+ }
108
+ async function jsonEnabled(command) {
109
+ return Boolean(command.optsWithGlobals().json || (await loadAppConfig()).output === "json");
110
+ }
111
+ async function output(command, payload, textValue) {
112
+ if (await jsonEnabled(command))
113
+ process.stdout.write(`${JSON.stringify(stableOutput(payload), null, 2)}\n`);
114
+ else
115
+ process.stdout.write(`${String(sanitizePipelineOutput(textValue))}\n`);
116
+ }
117
+ function addExamples(command, examples, notes = []) {
118
+ const noteSection = notes.length ? `\n说明:\n${notes.map((item) => ` - ${item}`).join("\n")}\n` : "";
119
+ return command.addHelpText("after", `${noteSection}\nExamples:\n${examples.map((item) => ` ${item}`).join("\n")}\n`);
120
+ }
121
+ function runLine(run) {
122
+ return `${String(run.runNo ?? "-")}\t${String(run.state ?? "UNKNOWN")}\t${String(run.stepCode ?? "-")}\t${String(run.errorCode ?? "-")}`;
123
+ }
124
+ function planInput(operation, options) {
125
+ return {
126
+ operation,
127
+ ownerTeamId: positiveNumber(options.ownerTeamId, "owner-team-id"),
128
+ applicationId: positiveNumber(options.applicationId, "application-id"),
129
+ instanceCode: stableIdentifier(options.instance, "instance"),
130
+ ...(safeFolder(options.parentFullName) ? { parentFullName: safeFolder(options.parentFullName) } : {}),
131
+ jobName: safeJobName(options.jobName),
132
+ repositoryKey: stableIdentifier(options.repositoryKey, "repository-key"),
133
+ tier: tier(options.tier),
134
+ ...(safeBranch(options.defaultBranch) ? { defaultBranch: safeBranch(options.defaultBranch) } : {}),
135
+ ...(safeRelativePath(options.jenkinsfilePath) ? { jenkinsfilePath: safeRelativePath(options.jenkinsfilePath) } : {}),
136
+ scanMode: scanMode(options.scanMode)
137
+ };
138
+ }
139
+ function addPlanOptions(command) {
140
+ return command
141
+ .requiredOption("--owner-team-id <id>", "owner team stable ID")
142
+ .requiredOption("--application-id <id>", "已登记 Application ID")
143
+ .requiredOption("--instance <code>", "平台 Jenkins instance code")
144
+ .option("--parent-full-name <path>", "受管 folder fullName")
145
+ .requiredOption("--job-name <name>", "single multibranch job segment")
146
+ .requiredOption("--repository-key <key>", "受管 Source Repository key")
147
+ .requiredOption("--tier <tier>", "develop|staging|production|unknown")
148
+ .option("--default-branch <branch>", "预期默认分支")
149
+ .option("--jenkinsfile-path <path>", "仓库内 Jenkinsfile 相对路径")
150
+ .option("--scan-mode <mode>", "none|index-only,默认 none", "none");
151
+ }
152
+ export function registerJenkinsJobCommands(program, dependencies = {}) {
153
+ const client = () => dependencies.clientFactory?.() ?? new JenkinsJobClient(loadConfig());
154
+ const jenkins = program.command("jenkins").description("管理 Jenkins Job Control Plane(与 pipeline build/deploy 分离)");
155
+ const job = jenkins.command("job").description("规划、创建/接管、验证和恢复 multibranch Job")
156
+ .addHelpText("after", `
157
+ 安全边界:
158
+ CLI 不接受 Jenkins URL、credential ID、raw XML 或 clone URL。
159
+ run 默认 scanMode=NONE;INDEX_ONLY 只允许索引且服务端验证 NoTrigger,永不触发 build。
160
+ 创建 Job 与首次 build/deploy 是两个独立授权动作。
161
+ `);
162
+ const plan = job.command("plan").description("创建或读取不可变 Jenkins Job plan");
163
+ addExamples(plan.command("get").argument("<plan-no>").description("读取不可变 Job plan")
164
+ .action(async (planNo, _options, command) => {
165
+ const result = await client().getPlan(stableIdentifier(planNo, "plan-no"));
166
+ await output(command, { ok: true, plan: result }, `${result.planNo}\t${result.operation}\t${result.state}\t${result.planHash}`);
167
+ }), ["numa jenkins job plan get jplan_01 --json"]);
168
+ for (const [name, operation] of [["create", "CREATE_MULTIBRANCH"], ["use-existing", "USE_EXISTING"]]) {
169
+ addExamples(addPlanOptions(plan.command(name).description(operation === "CREATE_MULTIBRANCH" ? "规划创建受管 multibranch Job" : "规划接管并验证已有 multibranch Job")).action(async (options, command) => {
170
+ const result = await client().createPlan(planInput(operation, options));
171
+ await output(command, { ok: true, plan: result }, `${result.planNo}\t${result.operation}\t${result.state}\t${result.blockers.length} blocker(s)`);
172
+ }), [
173
+ `numa jenkins job plan ${name} --owner-team-id 7 --application-id 42 --instance production --parent-full-name mci/production --job-name code-index --repository-key codeup-numa:143926:code-index --tier production --default-branch main --jenkinsfile-path Jenkinsfile --scan-mode none --json`
174
+ ]);
175
+ }
176
+ addExamples(job.command("apply").description("执行已审阅 Job plan;绝不构建")
177
+ .requiredOption("--plan-no <number>", "服务端 plan 编号")
178
+ .requiredOption("--plan-hash <hash>", "服务端精确 plan hash")
179
+ .requiredOption("--client-request-id <id>", "稳定请求 ID")
180
+ .requiredOption("--idempotency-key <key>", "必须与 client-request-id 完全相同")
181
+ .option("--yes", "确认创建/接管 Job")
182
+ .action(async (options, command) => {
183
+ requireYes(options.yes);
184
+ const clientRequestId = safeRequestId(options.clientRequestId, "client-request-id");
185
+ const idempotencyKey = safeRequestId(options.idempotencyKey, "idempotency-key");
186
+ if (clientRequestId !== idempotencyKey)
187
+ throw new PipelineError("idempotency-key must exactly match client-request-id.", "JENKINS_JOB_IDEMPOTENCY_INVALID");
188
+ const planNo = stableIdentifier(options.planNo, "plan-no");
189
+ const hash = exactPlanHash(options.planHash);
190
+ const current = await client().getPlan(planNo);
191
+ if (current.planHash !== hash)
192
+ throw new PipelineError("The supplied plan-hash does not match the server plan.", "JENKINS_JOB_PLAN_HASH_MISMATCH");
193
+ if (current.state !== "READY" || current.blockers.length)
194
+ throw new PipelineError("The Jenkins Job plan is not READY or contains blockers.", "JENKINS_JOB_PLAN_NOT_READY");
195
+ const result = await client().createRun({ planNo, planHash: hash, clientRequestId }, idempotencyKey);
196
+ await output(command, { ok: true, run: result }, runLine(result));
197
+ }), ["numa jenkins job apply --plan-no jplan_01 --plan-hash <64hex> --client-request-id code-index-job-1 --idempotency-key code-index-job-1 --yes --json"]);
198
+ addExamples(job.command("status").description("查询、列出或按 clientRequestId 恢复 Job run")
199
+ .argument("[run-no]")
200
+ .option("--client-request-id <id>", "结果未知时的原稳定请求 ID")
201
+ .option("--state <state>", "列表状态过滤")
202
+ .option("--consumer-type <type>", "列表 consumer 过滤")
203
+ .option("--page <number>", "1-based page", "1")
204
+ .option("--size <number>", "1-100", "20")
205
+ .action(async (runNo, options, command) => {
206
+ if (runNo && options.clientRequestId)
207
+ throw new PipelineError("Use run-no or --client-request-id, not both.", "JENKINS_JOB_CLI_INPUT_INVALID");
208
+ const result = runNo ? await client().getRun(stableIdentifier(runNo, "run-no"))
209
+ : options.clientRequestId ? await client().resolveRun(safeRequestId(options.clientRequestId, "client-request-id"))
210
+ : await client().listRuns({
211
+ state: options.state?.trim().toUpperCase(), consumerType: options.consumerType?.trim().toUpperCase(),
212
+ page: positiveNumber(options.page, "page"), size: positiveNumber(options.size, "size", 100)
213
+ });
214
+ const textValue = "items" in result ? result.items.map((item) => runLine(item)).join("\n") || "没有 Job runs" : runLine(result);
215
+ await output(command, { ok: true, result }, textValue);
216
+ }), ["numa jenkins job status --client-request-id code-index-job-1 --json"]);
217
+ addExamples(job.command("events").description("按单调 sequence 查询 Job run 事件")
218
+ .argument("<run-no>")
219
+ .option("--after-sequence <number>", "0-based sequence", "0")
220
+ .option("--limit <number>", "1-200", "100")
221
+ .action(async (runNo, options, command) => {
222
+ const result = await client().events(stableIdentifier(runNo, "run-no"), nonNegativeNumber(options.afterSequence, "after-sequence", 0, Number.MAX_SAFE_INTEGER), positiveNumber(options.limit, "limit", 200));
223
+ await output(command, { ok: true, events: result }, result.items.map((event) => `${event.sequenceNo}\t${event.eventType}\t${event.state ?? "-"}`).join("\n") || "没有新事件");
224
+ }), ["numa jenkins job events jrun_01 --after-sequence 0 --json"]);
225
+ for (const action of ["retry", "reconcile"]) {
226
+ addExamples(job.command(action).description(action === "retry" ? "重试可恢复 Job run" : "调和结果未知的 Job run")
227
+ .argument("<run-no>")
228
+ .requiredOption("--idempotency-key <key>", "稳定恢复请求 ID")
229
+ .option("--yes", "确认恢复动作")
230
+ .action(async (runNo, options, command) => {
231
+ requireYes(options.yes);
232
+ const result = action === "retry"
233
+ ? await client().retry(stableIdentifier(runNo, "run-no"), safeRequestId(options.idempotencyKey, "idempotency-key"))
234
+ : await client().reconcile(stableIdentifier(runNo, "run-no"), safeRequestId(options.idempotencyKey, "idempotency-key"));
235
+ await output(command, { ok: true, run: result }, runLine(result));
236
+ }), [`numa jenkins job ${action} jrun_01 --idempotency-key ${action}-jrun-01 --yes --json`]);
237
+ }
238
+ }
239
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/jenkins-jobs/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
1
+ import { z } from "zod";
2
+ export declare const JenkinsJobOperationSchema: z.ZodEnum<{
3
+ CREATE_MULTIBRANCH: "CREATE_MULTIBRANCH";
4
+ USE_EXISTING: "USE_EXISTING";
5
+ }>;
6
+ export declare const JenkinsTierSchema: z.ZodEnum<{
7
+ DEVELOP: "DEVELOP";
8
+ PRODUCTION: "PRODUCTION";
9
+ STAGING: "STAGING";
10
+ UNKNOWN: "UNKNOWN";
11
+ }>;
12
+ export declare const JenkinsScanModeSchema: z.ZodEnum<{
13
+ INDEX_ONLY: "INDEX_ONLY";
14
+ NONE: "NONE";
15
+ }>;
16
+ export declare const JenkinsJobPlanStateSchema: z.ZodEnum<{
17
+ BLOCKED: "BLOCKED";
18
+ CONSUMED: "CONSUMED";
19
+ EXPIRED: "EXPIRED";
20
+ READY: "READY";
21
+ SUPERSEDED: "SUPERSEDED";
22
+ }>;
23
+ export declare const JenkinsJobRunStateSchema: z.ZodEnum<{
24
+ ACCEPTED: "ACCEPTED";
25
+ BINDING: "BINDING";
26
+ CREATING_JOB: "CREATING_JOB";
27
+ FAILED: "FAILED";
28
+ NEEDS_ATTENTION: "NEEDS_ATTENTION";
29
+ RECONCILING: "RECONCILING";
30
+ SCANNING: "SCANNING";
31
+ SUCCEEDED: "SUCCEEDED";
32
+ SYNCING_INVENTORY: "SYNCING_INVENTORY";
33
+ VERIFYING_CONFIGURATION: "VERIFYING_CONFIGURATION";
34
+ WAITING_RETRY: "WAITING_RETRY";
35
+ }>;
36
+ export declare const JenkinsJobPlanRequestSchema: z.ZodObject<{
37
+ operation: z.ZodEnum<{
38
+ CREATE_MULTIBRANCH: "CREATE_MULTIBRANCH";
39
+ USE_EXISTING: "USE_EXISTING";
40
+ }>;
41
+ ownerTeamId: z.ZodNumber;
42
+ applicationId: z.ZodNumber;
43
+ instanceCode: z.ZodString;
44
+ parentFullName: z.ZodOptional<z.ZodString>;
45
+ jobName: z.ZodString;
46
+ repositoryKey: z.ZodString;
47
+ tier: z.ZodEnum<{
48
+ DEVELOP: "DEVELOP";
49
+ PRODUCTION: "PRODUCTION";
50
+ STAGING: "STAGING";
51
+ UNKNOWN: "UNKNOWN";
52
+ }>;
53
+ defaultBranch: z.ZodOptional<z.ZodString>;
54
+ jenkinsfilePath: z.ZodOptional<z.ZodString>;
55
+ scanMode: z.ZodOptional<z.ZodEnum<{
56
+ INDEX_ONLY: "INDEX_ONLY";
57
+ NONE: "NONE";
58
+ }>>;
59
+ }, z.core.$strict>;
60
+ export declare const JenkinsJobNormalizedSpecSchema: z.ZodObject<{
61
+ applicationId: z.ZodNumber;
62
+ applicationCode: z.ZodString;
63
+ instanceCode: z.ZodString;
64
+ parentFullName: z.ZodNullable<z.ZodString>;
65
+ jobName: z.ZodString;
66
+ fullName: z.ZodString;
67
+ repositoryKey: z.ZodString;
68
+ tier: z.ZodEnum<{
69
+ DEVELOP: "DEVELOP";
70
+ PRODUCTION: "PRODUCTION";
71
+ STAGING: "STAGING";
72
+ UNKNOWN: "UNKNOWN";
73
+ }>;
74
+ defaultBranch: z.ZodString;
75
+ jenkinsfilePath: z.ZodString;
76
+ scanMode: z.ZodEnum<{
77
+ INDEX_ONLY: "INDEX_ONLY";
78
+ NONE: "NONE";
79
+ }>;
80
+ expectedConfigDigest: z.ZodString;
81
+ credentialReferenceDigest: z.ZodString;
82
+ }, z.core.$strict>;
83
+ export declare const JenkinsJobPlanSchema: z.ZodObject<{
84
+ planNo: z.ZodString;
85
+ operation: z.ZodEnum<{
86
+ CREATE_MULTIBRANCH: "CREATE_MULTIBRANCH";
87
+ USE_EXISTING: "USE_EXISTING";
88
+ }>;
89
+ state: z.ZodEnum<{
90
+ BLOCKED: "BLOCKED";
91
+ CONSUMED: "CONSUMED";
92
+ EXPIRED: "EXPIRED";
93
+ READY: "READY";
94
+ SUPERSEDED: "SUPERSEDED";
95
+ }>;
96
+ planHash: z.ZodString;
97
+ ownerTeamId: z.ZodNumber;
98
+ consumerType: z.ZodString;
99
+ consumerRef: z.ZodString;
100
+ normalizedSpec: z.ZodObject<{
101
+ applicationId: z.ZodNumber;
102
+ applicationCode: z.ZodString;
103
+ instanceCode: z.ZodString;
104
+ parentFullName: z.ZodNullable<z.ZodString>;
105
+ jobName: z.ZodString;
106
+ fullName: z.ZodString;
107
+ repositoryKey: z.ZodString;
108
+ tier: z.ZodEnum<{
109
+ DEVELOP: "DEVELOP";
110
+ PRODUCTION: "PRODUCTION";
111
+ STAGING: "STAGING";
112
+ UNKNOWN: "UNKNOWN";
113
+ }>;
114
+ defaultBranch: z.ZodString;
115
+ jenkinsfilePath: z.ZodString;
116
+ scanMode: z.ZodEnum<{
117
+ INDEX_ONLY: "INDEX_ONLY";
118
+ NONE: "NONE";
119
+ }>;
120
+ expectedConfigDigest: z.ZodString;
121
+ credentialReferenceDigest: z.ZodString;
122
+ }, z.core.$strict>;
123
+ sideEffects: z.ZodDefault<z.ZodArray<z.ZodString>>;
124
+ warnings: z.ZodDefault<z.ZodArray<z.ZodString>>;
125
+ blockers: z.ZodDefault<z.ZodArray<z.ZodString>>;
126
+ expiresAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
127
+ }, z.core.$strict>;
128
+ export declare const JenkinsJobViewSchema: z.ZodObject<{
129
+ id: z.ZodNumber;
130
+ instanceId: z.ZodNumber;
131
+ instanceCode: z.ZodString;
132
+ fullName: z.ZodString;
133
+ displayName: z.ZodString;
134
+ jobType: z.ZodEnum<{
135
+ BRANCH: "BRANCH";
136
+ FOLDER: "FOLDER";
137
+ FREESTYLE: "FREESTYLE";
138
+ MULTIBRANCH: "MULTIBRANCH";
139
+ OTHER: "OTHER";
140
+ PIPELINE: "PIPELINE";
141
+ }>;
142
+ tier: z.ZodEnum<{
143
+ DEVELOP: "DEVELOP";
144
+ PRODUCTION: "PRODUCTION";
145
+ STAGING: "STAGING";
146
+ UNKNOWN: "UNKNOWN";
147
+ }>;
148
+ syncStatus: z.ZodEnum<{
149
+ CURRENT: "CURRENT";
150
+ ERROR: "ERROR";
151
+ STALE: "STALE";
152
+ }>;
153
+ inventoryGeneration: z.ZodNumber;
154
+ configDigest: z.ZodString;
155
+ managedByControlPlane: z.ZodBoolean;
156
+ lastSeenAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
157
+ }, z.core.$strict>;
158
+ export declare const JenkinsBindingViewSchema: z.ZodObject<{
159
+ id: z.ZodNumber;
160
+ applicationId: z.ZodNumber;
161
+ applicationCode: z.ZodString;
162
+ jobId: z.ZodNumber;
163
+ tier: z.ZodEnum<{
164
+ DEVELOP: "DEVELOP";
165
+ PRODUCTION: "PRODUCTION";
166
+ STAGING: "STAGING";
167
+ UNKNOWN: "UNKNOWN";
168
+ }>;
169
+ confirmationStatus: z.ZodEnum<{
170
+ CANDIDATE: "CANDIDATE";
171
+ CONFIRMED: "CONFIRMED";
172
+ REJECTED: "REJECTED";
173
+ }>;
174
+ productionLocked: z.ZodBoolean;
175
+ version: z.ZodNumber;
176
+ }, z.core.$strict>;
177
+ export declare const JenkinsJobRunSchema: z.ZodObject<{
178
+ runNo: z.ZodString;
179
+ planNo: z.ZodString;
180
+ state: z.ZodEnum<{
181
+ ACCEPTED: "ACCEPTED";
182
+ BINDING: "BINDING";
183
+ CREATING_JOB: "CREATING_JOB";
184
+ FAILED: "FAILED";
185
+ NEEDS_ATTENTION: "NEEDS_ATTENTION";
186
+ RECONCILING: "RECONCILING";
187
+ SCANNING: "SCANNING";
188
+ SUCCEEDED: "SUCCEEDED";
189
+ SYNCING_INVENTORY: "SYNCING_INVENTORY";
190
+ VERIFYING_CONFIGURATION: "VERIFYING_CONFIGURATION";
191
+ WAITING_RETRY: "WAITING_RETRY";
192
+ }>;
193
+ stepCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
194
+ job: z.ZodOptional<z.ZodObject<{
195
+ id: z.ZodNumber;
196
+ instanceId: z.ZodNumber;
197
+ instanceCode: z.ZodString;
198
+ fullName: z.ZodString;
199
+ displayName: z.ZodString;
200
+ jobType: z.ZodEnum<{
201
+ BRANCH: "BRANCH";
202
+ FOLDER: "FOLDER";
203
+ FREESTYLE: "FREESTYLE";
204
+ MULTIBRANCH: "MULTIBRANCH";
205
+ OTHER: "OTHER";
206
+ PIPELINE: "PIPELINE";
207
+ }>;
208
+ tier: z.ZodEnum<{
209
+ DEVELOP: "DEVELOP";
210
+ PRODUCTION: "PRODUCTION";
211
+ STAGING: "STAGING";
212
+ UNKNOWN: "UNKNOWN";
213
+ }>;
214
+ syncStatus: z.ZodEnum<{
215
+ CURRENT: "CURRENT";
216
+ ERROR: "ERROR";
217
+ STALE: "STALE";
218
+ }>;
219
+ inventoryGeneration: z.ZodNumber;
220
+ configDigest: z.ZodString;
221
+ managedByControlPlane: z.ZodBoolean;
222
+ lastSeenAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
223
+ }, z.core.$strict>>;
224
+ binding: z.ZodOptional<z.ZodObject<{
225
+ id: z.ZodNumber;
226
+ applicationId: z.ZodNumber;
227
+ applicationCode: z.ZodString;
228
+ jobId: z.ZodNumber;
229
+ tier: z.ZodEnum<{
230
+ DEVELOP: "DEVELOP";
231
+ PRODUCTION: "PRODUCTION";
232
+ STAGING: "STAGING";
233
+ UNKNOWN: "UNKNOWN";
234
+ }>;
235
+ confirmationStatus: z.ZodEnum<{
236
+ CANDIDATE: "CANDIDATE";
237
+ CONFIRMED: "CONFIRMED";
238
+ REJECTED: "REJECTED";
239
+ }>;
240
+ productionLocked: z.ZodBoolean;
241
+ version: z.ZodNumber;
242
+ }, z.core.$strict>>;
243
+ retryable: z.ZodDefault<z.ZodBoolean>;
244
+ errorCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
245
+ errorMessage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
246
+ createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
247
+ startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
248
+ completedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
249
+ }, z.core.$strict>;
250
+ export declare const JenkinsJobRunCreateSchema: z.ZodObject<{
251
+ planNo: z.ZodString;
252
+ planHash: z.ZodString;
253
+ clientRequestId: z.ZodString;
254
+ }, z.core.$strict>;
255
+ export declare const JenkinsJobRunPageSchema: z.ZodObject<{
256
+ items: z.ZodArray<z.ZodObject<{
257
+ runNo: z.ZodString;
258
+ planNo: z.ZodString;
259
+ state: z.ZodEnum<{
260
+ ACCEPTED: "ACCEPTED";
261
+ BINDING: "BINDING";
262
+ CREATING_JOB: "CREATING_JOB";
263
+ FAILED: "FAILED";
264
+ NEEDS_ATTENTION: "NEEDS_ATTENTION";
265
+ RECONCILING: "RECONCILING";
266
+ SCANNING: "SCANNING";
267
+ SUCCEEDED: "SUCCEEDED";
268
+ SYNCING_INVENTORY: "SYNCING_INVENTORY";
269
+ VERIFYING_CONFIGURATION: "VERIFYING_CONFIGURATION";
270
+ WAITING_RETRY: "WAITING_RETRY";
271
+ }>;
272
+ stepCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
273
+ job: z.ZodOptional<z.ZodObject<{
274
+ id: z.ZodNumber;
275
+ instanceId: z.ZodNumber;
276
+ instanceCode: z.ZodString;
277
+ fullName: z.ZodString;
278
+ displayName: z.ZodString;
279
+ jobType: z.ZodEnum<{
280
+ BRANCH: "BRANCH";
281
+ FOLDER: "FOLDER";
282
+ FREESTYLE: "FREESTYLE";
283
+ MULTIBRANCH: "MULTIBRANCH";
284
+ OTHER: "OTHER";
285
+ PIPELINE: "PIPELINE";
286
+ }>;
287
+ tier: z.ZodEnum<{
288
+ DEVELOP: "DEVELOP";
289
+ PRODUCTION: "PRODUCTION";
290
+ STAGING: "STAGING";
291
+ UNKNOWN: "UNKNOWN";
292
+ }>;
293
+ syncStatus: z.ZodEnum<{
294
+ CURRENT: "CURRENT";
295
+ ERROR: "ERROR";
296
+ STALE: "STALE";
297
+ }>;
298
+ inventoryGeneration: z.ZodNumber;
299
+ configDigest: z.ZodString;
300
+ managedByControlPlane: z.ZodBoolean;
301
+ lastSeenAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
302
+ }, z.core.$strict>>;
303
+ binding: z.ZodOptional<z.ZodObject<{
304
+ id: z.ZodNumber;
305
+ applicationId: z.ZodNumber;
306
+ applicationCode: z.ZodString;
307
+ jobId: z.ZodNumber;
308
+ tier: z.ZodEnum<{
309
+ DEVELOP: "DEVELOP";
310
+ PRODUCTION: "PRODUCTION";
311
+ STAGING: "STAGING";
312
+ UNKNOWN: "UNKNOWN";
313
+ }>;
314
+ confirmationStatus: z.ZodEnum<{
315
+ CANDIDATE: "CANDIDATE";
316
+ CONFIRMED: "CONFIRMED";
317
+ REJECTED: "REJECTED";
318
+ }>;
319
+ productionLocked: z.ZodBoolean;
320
+ version: z.ZodNumber;
321
+ }, z.core.$strict>>;
322
+ retryable: z.ZodDefault<z.ZodBoolean>;
323
+ errorCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
324
+ errorMessage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
325
+ createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
326
+ startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
327
+ completedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
328
+ }, z.core.$strict>>;
329
+ page: z.ZodNumber;
330
+ size: z.ZodNumber;
331
+ total: z.ZodNumber;
332
+ totalPages: z.ZodNumber;
333
+ }, z.core.$strict>;
334
+ export declare const JenkinsJobRunEventSchema: z.ZodObject<{
335
+ sequenceNo: z.ZodNumber;
336
+ eventType: z.ZodString;
337
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
338
+ stepCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
339
+ message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
340
+ errorCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
341
+ retryable: z.ZodOptional<z.ZodBoolean>;
342
+ occurredAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
343
+ }, z.core.$strict>;
344
+ export declare const JenkinsJobRunEventPageSchema: z.ZodObject<{
345
+ items: z.ZodArray<z.ZodObject<{
346
+ sequenceNo: z.ZodNumber;
347
+ eventType: z.ZodString;
348
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
349
+ stepCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
350
+ message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
351
+ errorCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
352
+ retryable: z.ZodOptional<z.ZodBoolean>;
353
+ occurredAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
354
+ }, z.core.$strict>>;
355
+ nextSequence: z.ZodNullable<z.ZodNumber>;
356
+ }, z.core.$strict>;
357
+ export type JenkinsJobPlanRequest = z.infer<typeof JenkinsJobPlanRequestSchema>;
358
+ export type JenkinsJobPlan = z.infer<typeof JenkinsJobPlanSchema>;
359
+ export type JenkinsJobRun = z.infer<typeof JenkinsJobRunSchema>;