@numa-tech/numa 1.13.1 → 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.
- package/README.md +59 -5
- package/dist/application-onboarding/client.d.ts +37 -3
- package/dist/application-onboarding/client.js +31 -2
- package/dist/application-onboarding/client.js.map +1 -1
- package/dist/application-onboarding/commands.d.ts +2 -0
- package/dist/application-onboarding/commands.js +202 -6
- package/dist/application-onboarding/commands.js.map +1 -1
- package/dist/application-onboarding/schemas.d.ts +772 -0
- package/dist/application-onboarding/schemas.js +315 -3
- package/dist/application-onboarding/schemas.js.map +1 -1
- package/dist/cli.js +6 -1
- package/dist/cli.js.map +1 -1
- package/dist/command-catalog.js +154 -2
- package/dist/command-catalog.js.map +1 -1
- package/dist/gitops/schemas.js +2 -1
- package/dist/gitops/schemas.js.map +1 -1
- package/dist/jenkins-jobs/client.d.ts +319 -0
- package/dist/jenkins-jobs/client.js +136 -0
- package/dist/jenkins-jobs/client.js.map +1 -0
- package/dist/jenkins-jobs/commands.d.ts +6 -0
- package/dist/jenkins-jobs/commands.js +239 -0
- package/dist/jenkins-jobs/commands.js.map +1 -0
- package/dist/jenkins-jobs/schemas.d.ts +359 -0
- package/dist/jenkins-jobs/schemas.js +119 -0
- package/dist/jenkins-jobs/schemas.js.map +1 -0
- package/dist/publications/client.d.ts +181 -0
- package/dist/publications/client.js +147 -0
- package/dist/publications/client.js.map +1 -0
- package/dist/publications/commands.d.ts +8 -0
- package/dist/publications/commands.js +202 -0
- package/dist/publications/commands.js.map +1 -0
- package/dist/publications/scanner.d.ts +23 -0
- package/dist/publications/scanner.js +247 -0
- package/dist/publications/scanner.js.map +1 -0
- package/dist/publications/schemas.d.ts +164 -0
- package/dist/publications/schemas.js +90 -0
- package/dist/publications/schemas.js.map +1 -0
- package/package.json +4 -4
|
@@ -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>;
|