@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
package/README.md
CHANGED
|
@@ -193,7 +193,9 @@ numa config \
|
|
|
193
193
|
| `numa mcp list/inspect/install/bridge/...` | 需登录 | 通过企业 Router 安装/桥接 MCP,并维护版本、标签和工具状态 |
|
|
194
194
|
| `numa registry approvals/router/audit` | 需登录 | 两人制发布、Router 健康/对账和追加式审计 |
|
|
195
195
|
| `numa registry tui` | 需登录 | 打开 namespace、Skills、MCP、审批、Router、审计全屏工作台 |
|
|
196
|
-
| `numa app onboard/
|
|
196
|
+
| `numa app begin/onboard/publication/jenkins-binding/observer-scope/first-build/...` | 需登录 | 创建、接入并按独立 child gate Promote 应用 |
|
|
197
|
+
| `numa publication scan/plan/apply/status/events/...` | 公开扫描/需登录写入 | 把 clean Git HEAD 通过受控 bundle 发布到受管仓库 |
|
|
198
|
+
| `numa jenkins job plan/apply/status/events/...` | 需登录 | 创建/校验 Jenkins Multibranch Job,默认不扫描、不构建 |
|
|
197
199
|
| `numa app options` | 需登录 | 查询应用归属所需的团队、系统、业务域和环境 ID |
|
|
198
200
|
| `numa app candidate list/inspect/preview/review/adopt` | 需登录 | 审查应用发现候选并确认收录,服务端执行最终管理员授权和审计 |
|
|
199
201
|
| `numa media capabilities` | 需登录 | 查询媒体 API、Provider 和版本能力 |
|
|
@@ -492,6 +494,44 @@ v2 顶层字段使用严格白名单;旧 `repository`、provider 管理字段
|
|
|
492
494
|
录入已有应用时改用 `repositoryStrategy: "ATTACH_EXISTING"`、`projectStrategy: "ASSESS_ONLY"` 和
|
|
493
495
|
`repositoryRef: { "repositoryKey": "...", "expectedHead": "<40-64-hex>" }`。
|
|
494
496
|
|
|
497
|
+
已有 clean Git 历史但没有 remote、并且需要完整 Promote 时使用 `schemaVersion: 3`。先幂等取得
|
|
498
|
+
`sessionNo`,再创建 consumer=`APPLICATION_ONBOARDING`、consumerRef=`sessionNo` 的 Repository
|
|
499
|
+
plan;Codeup 使用受管 README 初始化。parent 推进到 `ATTACH_PUBLICATION_PLAN` 后,CLI 才扫描
|
|
500
|
+
clean HEAD 并附加 session-scoped Publication child。不得改用独立 `STANDALONE` publication plan,
|
|
501
|
+
也不得直接 `git push`:
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
numa app begin --mode new --idempotency-key begin-code-index --yes --json
|
|
505
|
+
|
|
506
|
+
# 取得 consumer-bound Repository plan 后,把 planNo/planHash 写入 v3 spec
|
|
507
|
+
numa app onboard --session <session-no> --spec onboarding-v3.json --plan --json
|
|
508
|
+
numa app apply <session-no> --idempotency-key apply-code-index-parent --json
|
|
509
|
+
|
|
510
|
+
numa app publication attach <session-no> \
|
|
511
|
+
--source ./code-index --commit-message 'feat: publish code-index source' \
|
|
512
|
+
--client-request-id code-index-publication-1 \
|
|
513
|
+
--idempotency-key code-index-publication-1 --yes --json
|
|
514
|
+
|
|
515
|
+
numa app jenkins-binding confirm <session-no> \
|
|
516
|
+
--binding-id <id> --expected-version <version> \
|
|
517
|
+
--idempotency-key confirm-code-index-binding --yes --json
|
|
518
|
+
|
|
519
|
+
numa app observer-scope configure <session-no> \
|
|
520
|
+
--service-binding-id <id> \
|
|
521
|
+
--kustomization-namespace flux-system --kustomization-name prd \
|
|
522
|
+
--helm-release-namespace prd --helm-release-name code-index \
|
|
523
|
+
--workload-namespace prd --workload-kind Deployment --workload-name code-index \
|
|
524
|
+
--expected-version <version> --idempotency-key scope-code-index-prd --yes --json
|
|
525
|
+
|
|
526
|
+
# DEFER 永不触发构建;TRIGGER 是独立授权,生产仍由服务端强制审批证据
|
|
527
|
+
numa app first-build decide <session-no> --decision defer \
|
|
528
|
+
--idempotency-key defer-code-index-first-build --yes --json
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
v3 structural spec 只允许 MCI_FLUX_V1 结构字段,拒绝 image、仓库/分支/namespace/path、raw
|
|
532
|
+
Kubernetes Secret 和明文敏感环境变量。Job Control Plane 默认 `scanMode=NONE`;`INDEX_ONLY`
|
|
533
|
+
也必须通过服务端 NoTrigger 配置验证,不能等同于 build。
|
|
534
|
+
|
|
495
535
|
```bash
|
|
496
536
|
# 只保存草稿并预检,不产生仓库、分支或 Jenkins 等外部副作用
|
|
497
537
|
numa app onboard --spec onboarding.json --plan --json
|
|
@@ -544,7 +584,8 @@ numa repository namespace list --connection codeup-main --search 'numa/framework
|
|
|
544
584
|
numa repository remote list --connection codeup-main --search code-index --json
|
|
545
585
|
numa repository plan create \
|
|
546
586
|
--connection codeup-main --namespace 99 --name code-index \
|
|
547
|
-
--visibility private --initialization
|
|
587
|
+
--visibility private --initialization readme --owner-team-id 12 \
|
|
588
|
+
--consumer application-onboarding --consumer-ref <session-no> --json
|
|
548
589
|
|
|
549
590
|
# 重新读取并审阅已经生成的不可变计划
|
|
550
591
|
numa repository plan get <plan-no> --json
|
|
@@ -556,7 +597,7 @@ numa repository create \
|
|
|
556
597
|
--idempotency-key code-index-20260822 --yes --json
|
|
557
598
|
```
|
|
558
599
|
|
|
559
|
-
DevOps New 的 v2 spec 创建新仓库时,先以 `--consumer application-onboarding` 生成 CREATE plan,
|
|
600
|
+
DevOps New 的 v2/v3 spec 创建新仓库时,先以 `--consumer application-onboarding` 和真实 sessionNo 生成 CREATE plan,
|
|
560
601
|
再把其 `planNo/planHash` 写入 `repositoryPlanRef`;录入已有应用时只写受管 catalog 的
|
|
561
602
|
`repositoryKey` 和固定 `expectedHead`。旧 `numa app scm repository create` 已 fail-closed,不再调用
|
|
562
603
|
Provider;只读 list/inspect 在兼容期保留。
|
|
@@ -625,17 +666,30 @@ SCM 管理接口位于 `/api/v1/admin/scm-connections`,最终权限始终由
|
|
|
625
666
|
Client Role 校验。metadata JSON 只允许 provider、URL、组织、auth type 以及服务端托管的
|
|
626
667
|
`aliyunAccountId`/`aliyunAssumeRoleId` 引用;Numa 不接收云 AK。CODEUP 必须引用
|
|
627
668
|
`aliyunAccountId`,没有 access token 时直接使用服务端 Aliyun identity,不写入空 credential。
|
|
628
|
-
|
|
629
|
-
|
|
669
|
+
Codeup Personal AT 只用于 OpenAPI,不能当作 HTTPS Git 密码;包含 `100755` 文件的 Publication
|
|
670
|
+
另需 Codeup 的 HTTPS clone username/password。GitHub App/PAT 和这三项 Codeup credential 均为
|
|
671
|
+
WRITE_ONLY,只能从 owner-only 文件或重定向 stdin 读取,禁止放在 argv、环境变量和 metadata
|
|
672
|
+
JSON 中,且不会出现在输出或错误中。安全响应只返回 credential readiness boolean:
|
|
630
673
|
|
|
631
674
|
```bash
|
|
632
675
|
numa app scm create --input codeup.json --json
|
|
633
676
|
chmod 600 github-app.private.json
|
|
634
677
|
numa app scm create --input github.json --credential-file github-app.private.json --json
|
|
635
678
|
numa app scm rotate github-main --revision 4 --credential-stdin --yes --json < github-pat.private.json
|
|
679
|
+
numa app scm rotate codeup-main --revision 5 --credential-file codeup.private.json --yes --json
|
|
636
680
|
numa app scm disable old-codeup --revision 7 --yes --json
|
|
637
681
|
```
|
|
638
682
|
|
|
683
|
+
Codeup 凭据文件结构如下;文件必须先执行 `chmod 600`,占位符不能直接使用:
|
|
684
|
+
|
|
685
|
+
```json
|
|
686
|
+
{
|
|
687
|
+
"accessToken": "<Codeup Personal AT>",
|
|
688
|
+
"cloneUsername": "<Codeup HTTPS clone account>",
|
|
689
|
+
"clonePassword": "<Codeup HTTPS clone password>"
|
|
690
|
+
}
|
|
691
|
+
```
|
|
692
|
+
|
|
639
693
|
## 应用候选收录
|
|
640
694
|
|
|
641
695
|
Jenkins 发现任务只生成可审查的应用候选,不会直接创建正式应用。Numa 对外把后续动作称为
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AuthConfig } from "../config.js";
|
|
2
2
|
import { type KeycloakTokenProvider } from "../oauth.js";
|
|
3
|
-
import { OnboardingSessionSchema, type JsonValue, type OnboardingCapabilities, type OnboardingEvent, type OnboardingMode, type OnboardingPreflight, type OnboardingSession, type OnboardingSessionState, type OnboardingTask, type ScmAdminConnection, type ScmAdminConnectionInput, type ScmConnection, type ScmNamespace, type ScmRepositoryCreateInput, type ScmCredentialUpdate, type ScmProvider, type ScmRepository } from "./schemas.js";
|
|
3
|
+
import { OnboardingSessionSchema, type JsonValue, type OnboardingCapabilities, type OnboardingEvent, type OnboardingFirstBuildActionRequest, type OnboardingFirstBuildActionResponse, type OnboardingJenkinsBindingActionRequest, type OnboardingJenkinsBindingActionResponse, type OnboardingMode, type OnboardingPreflight, type OnboardingObserverScopeActionRequest, type OnboardingObserverScopeActionResponse, type OnboardingPublicationPlanActionRequest, type OnboardingPublicationPlanActionResponse, type OnboardingSession, type OnboardingSessionState, type OnboardingTask, type ScmAdminConnection, type ScmAdminConnectionInput, type ScmConnection, type ScmNamespace, type ScmRepositoryCreateInput, type ScmCredentialUpdate, type ScmProvider, type ScmRepository } from "./schemas.js";
|
|
4
4
|
export interface OnboardingClientDependencies {
|
|
5
5
|
fetch?: typeof fetch;
|
|
6
6
|
tokenProvider?: KeycloakTokenProvider;
|
|
@@ -77,7 +77,7 @@ export interface OnboardingApi {
|
|
|
77
77
|
version: number;
|
|
78
78
|
}): Promise<ScmAdminConnection>;
|
|
79
79
|
disableAdminScmConnection(connectionCode: string, version: number): Promise<void>;
|
|
80
|
-
createSession(mode: OnboardingMode): Promise<OnboardingSession>;
|
|
80
|
+
createSession(mode: OnboardingMode, idempotencyKey?: string): Promise<OnboardingSession>;
|
|
81
81
|
listSessions(options?: {
|
|
82
82
|
state?: OnboardingSessionState;
|
|
83
83
|
mine?: boolean;
|
|
@@ -97,6 +97,10 @@ export interface OnboardingApi {
|
|
|
97
97
|
planHash: string;
|
|
98
98
|
idempotencyKey: string;
|
|
99
99
|
}): Promise<OnboardingTask>;
|
|
100
|
+
attachPublicationPlan(sessionNo: string, input: OnboardingPublicationPlanActionRequest, idempotencyKey: string): Promise<OnboardingPublicationPlanActionResponse>;
|
|
101
|
+
confirmJenkinsBinding(sessionNo: string, input: OnboardingJenkinsBindingActionRequest, idempotencyKey: string): Promise<OnboardingJenkinsBindingActionResponse>;
|
|
102
|
+
configureObserverScope(sessionNo: string, input: OnboardingObserverScopeActionRequest, idempotencyKey: string): Promise<OnboardingObserverScopeActionResponse>;
|
|
103
|
+
decideFirstBuild(sessionNo: string, input: OnboardingFirstBuildActionRequest, idempotencyKey: string): Promise<OnboardingFirstBuildActionResponse>;
|
|
100
104
|
getEvents(sessionNo: string, afterSequence?: number): Promise<{
|
|
101
105
|
items: OnboardingEvent[];
|
|
102
106
|
nextSequence: number;
|
|
@@ -232,6 +236,8 @@ export declare class OnboardingClient implements OnboardingApi {
|
|
|
232
236
|
lastError?: string | null | undefined;
|
|
233
237
|
version: number;
|
|
234
238
|
credentialConfigured: boolean;
|
|
239
|
+
codeupAccessTokenConfigured: boolean;
|
|
240
|
+
codeupCloneCredentialConfigured: boolean;
|
|
235
241
|
credentialVersion?: number | undefined;
|
|
236
242
|
credentialUpdatedAt?: string | null | undefined;
|
|
237
243
|
}[];
|
|
@@ -247,7 +253,7 @@ export declare class OnboardingClient implements OnboardingApi {
|
|
|
247
253
|
version: number;
|
|
248
254
|
}): Promise<ScmAdminConnection>;
|
|
249
255
|
disableAdminScmConnection(connectionCode: string, version: number): Promise<void>;
|
|
250
|
-
createSession(mode: OnboardingMode): Promise<OnboardingSession>;
|
|
256
|
+
createSession(mode: OnboardingMode, idempotencyKey?: string): Promise<OnboardingSession>;
|
|
251
257
|
listSessions(options?: {
|
|
252
258
|
state?: OnboardingSessionState;
|
|
253
259
|
mine?: boolean;
|
|
@@ -267,6 +273,10 @@ export declare class OnboardingClient implements OnboardingApi {
|
|
|
267
273
|
planHash: string;
|
|
268
274
|
idempotencyKey: string;
|
|
269
275
|
}): Promise<OnboardingTask>;
|
|
276
|
+
attachPublicationPlan(sessionNo: string, input: OnboardingPublicationPlanActionRequest, idempotencyKey: string): Promise<OnboardingPublicationPlanActionResponse>;
|
|
277
|
+
confirmJenkinsBinding(sessionNo: string, input: OnboardingJenkinsBindingActionRequest, idempotencyKey: string): Promise<OnboardingJenkinsBindingActionResponse>;
|
|
278
|
+
configureObserverScope(sessionNo: string, input: OnboardingObserverScopeActionRequest, idempotencyKey: string): Promise<OnboardingObserverScopeActionResponse>;
|
|
279
|
+
decideFirstBuild(sessionNo: string, input: OnboardingFirstBuildActionRequest, idempotencyKey: string): Promise<OnboardingFirstBuildActionResponse>;
|
|
270
280
|
getEvents(sessionNo: string, afterSequence?: number): Promise<{
|
|
271
281
|
items: {
|
|
272
282
|
[x: string]: unknown;
|
|
@@ -296,6 +306,21 @@ export declare class OnboardingClient implements OnboardingApi {
|
|
|
296
306
|
warnCount?: number | undefined;
|
|
297
307
|
jenkinsCandidateBindingIds?: (string | number)[] | undefined;
|
|
298
308
|
jenkinsPendingTiers?: string[] | undefined;
|
|
309
|
+
publicationPlanNo?: string | undefined;
|
|
310
|
+
publicationPlanHash?: string | undefined;
|
|
311
|
+
publicationRunNo?: string | undefined;
|
|
312
|
+
publicationState?: string | undefined;
|
|
313
|
+
publicationRevision?: string | undefined;
|
|
314
|
+
publicationManifestDigest?: string | undefined;
|
|
315
|
+
publicationFilesWritten?: number | undefined;
|
|
316
|
+
jenkinsPlanNo?: string | undefined;
|
|
317
|
+
jenkinsPlanHash?: string | undefined;
|
|
318
|
+
jenkinsRunNo?: string | undefined;
|
|
319
|
+
jenkinsState?: string | undefined;
|
|
320
|
+
jenkinsJobId?: string | number | undefined;
|
|
321
|
+
jenkinsBindingId?: string | number | undefined;
|
|
322
|
+
jenkinsInventoryGeneration?: number | undefined;
|
|
323
|
+
jenkinsConfigDigest?: string | undefined;
|
|
299
324
|
gitopsPlanNumber?: string | undefined;
|
|
300
325
|
gitopsPlanHash?: string | undefined;
|
|
301
326
|
gitopsPlanFiles?: string[] | undefined;
|
|
@@ -309,6 +334,15 @@ export declare class OnboardingClient implements OnboardingApi {
|
|
|
309
334
|
gitopsBaseRevision?: string | undefined;
|
|
310
335
|
gitopsResultRevision?: string | undefined;
|
|
311
336
|
gitopsReviewUrl?: string | undefined;
|
|
337
|
+
observerScopeNo?: string | undefined;
|
|
338
|
+
observerScopeStatus?: string | undefined;
|
|
339
|
+
observerEvidenceFreshness?: string | undefined;
|
|
340
|
+
observerLastDriftState?: string | undefined;
|
|
341
|
+
observerLastSequence?: number | undefined;
|
|
342
|
+
observerLastObservedAt?: string | undefined;
|
|
343
|
+
firstBuildDecision?: string | undefined;
|
|
344
|
+
firstBuildRequestId?: string | undefined;
|
|
345
|
+
firstBuildState?: string | undefined;
|
|
312
346
|
retryAfterSeconds?: number | undefined;
|
|
313
347
|
recoveryAction?: string | undefined;
|
|
314
348
|
bundleDigest?: string | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveBackendUrl } from "../backend.js";
|
|
2
2
|
import { ensureAccessToken, fetchWithKeycloakIdentity } from "../oauth.js";
|
|
3
3
|
import { OnboardingError, redactOnboardingText } from "./errors.js";
|
|
4
|
-
import { OnboardingApiErrorSchema, OnboardingAssessmentSchema, OnboardingCapabilitiesSchema, OnboardingEventListSchema, OnboardingObjectListSchema, OnboardingPreflightSchema, OnboardingSessionListSchema, OnboardingSessionSchema, OnboardingTaskSchema, ScmAdminConnectionListSchema, ScmAdminConnectionSchema, ScmConnectionListSchema, ScmNamespacePageSchema, ScmRepositoryPageSchema, ScmRepositorySchema } from "./schemas.js";
|
|
4
|
+
import { OnboardingApiErrorSchema, OnboardingAssessmentSchema, OnboardingCapabilitiesSchema, OnboardingEventListSchema, OnboardingFirstBuildActionResponseSchema, OnboardingJenkinsBindingActionResponseSchema, OnboardingObjectListSchema, OnboardingObserverScopeActionResponseSchema, OnboardingPreflightSchema, OnboardingPublicationPlanActionResponseSchema, OnboardingSessionListSchema, OnboardingSessionSchema, OnboardingTaskSchema, ScmAdminConnectionListSchema, ScmAdminConnectionSchema, ScmConnectionListSchema, ScmNamespacePageSchema, ScmRepositoryPageSchema, ScmRepositorySchema } from "./schemas.js";
|
|
5
5
|
const API_ROOT = "/api/v1/application-onboarding";
|
|
6
6
|
const ADMIN_SCM_ROOT = "/api/v1/admin/scm-connections";
|
|
7
7
|
const SCM_ROOT = "/api/v1/scm/connections";
|
|
@@ -175,9 +175,10 @@ export class OnboardingClient {
|
|
|
175
175
|
throw new OnboardingError(`Application onboarding API returned HTTP ${response.status}; expected 200 or 204.`, "onboarding_invalid_response", response.status, requestIdFrom(response, body));
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
createSession(mode) {
|
|
178
|
+
createSession(mode, idempotencyKey) {
|
|
179
179
|
return this.json(`${API_ROOT}/sessions`, OnboardingSessionSchema, {
|
|
180
180
|
method: "POST",
|
|
181
|
+
headers: idempotencyKey ? { "Idempotency-Key": idempotencyKey } : undefined,
|
|
181
182
|
body: JSON.stringify({ mode })
|
|
182
183
|
}, [200, 201]);
|
|
183
184
|
}
|
|
@@ -205,6 +206,34 @@ export class OnboardingClient {
|
|
|
205
206
|
body: JSON.stringify({ planHash: input.planHash })
|
|
206
207
|
}, [200, 202]);
|
|
207
208
|
}
|
|
209
|
+
attachPublicationPlan(sessionNo, input, idempotencyKey) {
|
|
210
|
+
return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/publication-plan`, OnboardingPublicationPlanActionResponseSchema, {
|
|
211
|
+
method: "POST",
|
|
212
|
+
headers: { "Idempotency-Key": idempotencyKey },
|
|
213
|
+
body: JSON.stringify(input)
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
confirmJenkinsBinding(sessionNo, input, idempotencyKey) {
|
|
217
|
+
return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/jenkins-binding/confirm`, OnboardingJenkinsBindingActionResponseSchema, {
|
|
218
|
+
method: "POST",
|
|
219
|
+
headers: { "Idempotency-Key": idempotencyKey },
|
|
220
|
+
body: JSON.stringify(input)
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
configureObserverScope(sessionNo, input, idempotencyKey) {
|
|
224
|
+
return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/observer-scope`, OnboardingObserverScopeActionResponseSchema, {
|
|
225
|
+
method: "PUT",
|
|
226
|
+
headers: { "Idempotency-Key": idempotencyKey },
|
|
227
|
+
body: JSON.stringify(input)
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
decideFirstBuild(sessionNo, input, idempotencyKey) {
|
|
231
|
+
return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/first-build-decision`, OnboardingFirstBuildActionResponseSchema, {
|
|
232
|
+
method: "POST",
|
|
233
|
+
headers: { "Idempotency-Key": idempotencyKey },
|
|
234
|
+
body: JSON.stringify(input)
|
|
235
|
+
}, [200, 202]);
|
|
236
|
+
}
|
|
208
237
|
getEvents(sessionNo, afterSequence) {
|
|
209
238
|
return this.json(queryPath(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/events`, { afterSequence }), OnboardingEventListSchema);
|
|
210
239
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/application-onboarding/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/application-onboarding/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
|
+
import { type PublicationScanResult } from "../publications/scanner.js";
|
|
2
3
|
import { type OnboardingApi } from "./client.js";
|
|
3
4
|
import { OnboardingError } from "./errors.js";
|
|
4
5
|
import { type OnboardingEvent, type OnboardingEventOutput, type OnboardingMode, type OnboardingSession, type OnboardingSessionState, type OnboardingSpec, type ScmAuthType, type ScmConnection, type ScmCredentialBundle, type ScmCredentialUpdate } from "./schemas.js";
|
|
@@ -7,6 +8,7 @@ export interface ApplicationOnboardingCommandDependencies {
|
|
|
7
8
|
clientFactory?: () => OnboardingApi;
|
|
8
9
|
interactive?: () => boolean;
|
|
9
10
|
runTui?: typeof runOnboardingTui;
|
|
11
|
+
scanPublication?: (sourceDirectory: string) => Promise<PublicationScanResult>;
|
|
10
12
|
sleep?: (milliseconds: number, signal?: AbortSignal) => Promise<void>;
|
|
11
13
|
}
|
|
12
14
|
export interface OnboardingSpecExecutionResult {
|
|
@@ -4,9 +4,10 @@ import { loadAppConfig } from "../app-config.js";
|
|
|
4
4
|
import { loadConfig } from "../config.js";
|
|
5
5
|
import { registerApplicationCandidateCommands } from "../application-candidates/commands.js";
|
|
6
6
|
import { SourceRepositoryClient } from "../repositories/client.js";
|
|
7
|
+
import { publicationScanSummary, scanProjectPublication } from "../publications/scanner.js";
|
|
7
8
|
import { OnboardingClient } from "./client.js";
|
|
8
9
|
import { OnboardingError, sanitizeOnboardingOutput } from "./errors.js";
|
|
9
|
-
import { OnboardingModeSchema, OnboardingEventOutputSchema, OnboardingSessionStateSchema, OnboardingSpecSchema, ScmProviderSchema } from "./schemas.js";
|
|
10
|
+
import { OnboardingModeSchema, OnboardingEventOutputSchema, OnboardingFirstBuildActionRequestSchema, OnboardingJenkinsBindingActionRequestSchema, OnboardingObserverScopeActionRequestSchema, OnboardingPublicationPlanActionRequestSchema, OnboardingSessionStateSchema, OnboardingSpecSchema, ScmProviderSchema } from "./schemas.js";
|
|
10
11
|
import { readScmAdminConnectionInput, readScmCredentialBundle } from "./scm-credentials.js";
|
|
11
12
|
import { runOnboardingTui } from "./tui.js";
|
|
12
13
|
const TERMINAL_STATES = new Set(["COMPLETED", "FAILED", "CANCELLED"]);
|
|
@@ -211,6 +212,56 @@ function idempotencyKey(value, operation = "--apply") {
|
|
|
211
212
|
}
|
|
212
213
|
return candidate;
|
|
213
214
|
}
|
|
215
|
+
function stableActionText(value, label, maximum = 253) {
|
|
216
|
+
const candidate = value?.trim() ?? "";
|
|
217
|
+
if (!candidate || candidate.length > maximum || /[\u0000-\u001f\u007f]/u.test(candidate)) {
|
|
218
|
+
throw new OnboardingError(`${label} must be 1-${maximum} printable characters.`, "onboarding_input_invalid");
|
|
219
|
+
}
|
|
220
|
+
return candidate;
|
|
221
|
+
}
|
|
222
|
+
function sha256(value, label) {
|
|
223
|
+
const candidate = value?.trim() ?? "";
|
|
224
|
+
if (!/^[0-9a-f]{64}$/u.test(candidate)) {
|
|
225
|
+
throw new OnboardingError(`${label} must be the exact lower-case SHA-256 locked by the server.`, "onboarding_input_invalid");
|
|
226
|
+
}
|
|
227
|
+
return candidate;
|
|
228
|
+
}
|
|
229
|
+
function collectParameter(value, previous) {
|
|
230
|
+
return [...previous, value];
|
|
231
|
+
}
|
|
232
|
+
function buildParameters(values) {
|
|
233
|
+
if (!values?.length)
|
|
234
|
+
return undefined;
|
|
235
|
+
if (values.length > 100)
|
|
236
|
+
throw new OnboardingError("At most 100 first-build parameters are allowed.", "onboarding_input_invalid");
|
|
237
|
+
const result = {};
|
|
238
|
+
for (const value of values) {
|
|
239
|
+
const separator = value.indexOf("=");
|
|
240
|
+
const key = separator > 0 ? value.slice(0, separator).trim() : "";
|
|
241
|
+
const parameterValue = separator > 0 ? value.slice(separator + 1) : "";
|
|
242
|
+
if (!/^[A-Za-z_][A-Za-z0-9_.-]{0,127}$/u.test(key) || parameterValue.length > 2_000
|
|
243
|
+
|| /[\u0000-\u001f\u007f]/u.test(parameterValue)) {
|
|
244
|
+
throw new OnboardingError("Each --parameter must be printable KEY=VALUE with a stable key.", "onboarding_input_invalid");
|
|
245
|
+
}
|
|
246
|
+
const normalizedKey = key.replace(/[^A-Za-z0-9]/gu, "").toLowerCase();
|
|
247
|
+
if (["secret", "password", "passwd", "credential", "token", "privatekey", "apikey", "accesskey"].some((part) => normalizedKey.includes(part))
|
|
248
|
+
|| /\b(?:Bearer|Basic)\s+\S+/iu.test(parameterValue)
|
|
249
|
+
|| /\b(?:gh[pousr]_[A-Za-z0-9_]{20,}|LTAI[A-Za-z0-9]{12,})\b/u.test(parameterValue)
|
|
250
|
+
|| /\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\b/u.test(parameterValue)) {
|
|
251
|
+
throw new OnboardingError("First-build parameters cannot contain credential-like keys or values.", "onboarding_secret_not_allowed");
|
|
252
|
+
}
|
|
253
|
+
if (Object.hasOwn(result, key))
|
|
254
|
+
throw new OnboardingError(`Duplicate first-build parameter: ${key}`, "onboarding_input_invalid");
|
|
255
|
+
result[key] = parameterValue;
|
|
256
|
+
}
|
|
257
|
+
return result;
|
|
258
|
+
}
|
|
259
|
+
function parsedActionInput(schema, value) {
|
|
260
|
+
const parsed = schema.safeParse(value);
|
|
261
|
+
if (!parsed.success)
|
|
262
|
+
throw new OnboardingError(`Invalid onboarding action input: ${parsed.error.message}`, "onboarding_input_invalid");
|
|
263
|
+
return parsed.data;
|
|
264
|
+
}
|
|
214
265
|
export async function readOnboardingSpec(path) {
|
|
215
266
|
try {
|
|
216
267
|
const info = await stat(path);
|
|
@@ -353,6 +404,7 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
353
404
|
const client = () => dependencies.clientFactory?.() ?? new OnboardingClient(loadConfig("platform"));
|
|
354
405
|
const isInteractive = dependencies.interactive ?? (() => Boolean(process.stdin.isTTY && process.stdout.isTTY));
|
|
355
406
|
const tui = dependencies.runTui ?? runOnboardingTui;
|
|
407
|
+
const scanPublication = dependencies.scanPublication ?? scanProjectPublication;
|
|
356
408
|
const sleep = dependencies.sleep ?? defaultSleep;
|
|
357
409
|
const app = program.command("app")
|
|
358
410
|
.description("创建新应用或把存量代码库接入 DevOps 平台")
|
|
@@ -388,7 +440,8 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
388
440
|
live probe 与连接变更由服务端校验平台管理员权限和乐观锁 version。
|
|
389
441
|
provider credential 只能来自权限受限文件或重定向 stdin;禁止通过 argv、环境变量或普通 JSON 输出传递。
|
|
390
442
|
Codeup 云 AK/Role 只能引用已有 aliyunAccountId/aliyunAssumeRoleId,Numa 不读取或保存云 AK。
|
|
391
|
-
|
|
443
|
+
Codeup accessToken 只用于 OpenAPI;含 100755 文件的 Publication 另需 HTTPS cloneUsername/clonePassword。
|
|
444
|
+
三者只从 chmod 600 文件或重定向 stdin 写入;未提供时使用服务端 Aliyun identity,不提交空 credential bundle。
|
|
392
445
|
`);
|
|
393
446
|
addExamples(scm.command("list")
|
|
394
447
|
.description("列出当前用户可见的安全 SCM 连接摘要")
|
|
@@ -541,7 +594,7 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
541
594
|
if (credential) {
|
|
542
595
|
connection = await onboarding.rotateAdminScmCredential(connection.code, scmCredentialUpdate(connection.version, connection.authType, credential));
|
|
543
596
|
}
|
|
544
|
-
await output(command, { ok: true, connection }, `${connection.code}\t${connection.status}\tversion:${connection.version}\tcredential:${connection.credentialConfigured ? "configured" : "missing"}`);
|
|
597
|
+
await output(command, { ok: true, connection }, `${connection.code}\t${connection.status}\tversion:${connection.version}\tcredential:${connection.credentialConfigured ? "configured" : "missing"}\tcodeup-at:${connection.codeupAccessTokenConfigured ? "ready" : "missing"}\tcodeup-clone:${connection.codeupCloneCredentialConfigured ? "ready" : "missing"}`);
|
|
545
598
|
}), [
|
|
546
599
|
"numa app scm create --input github.json --credential-file github-app.private.json --json",
|
|
547
600
|
"numa app scm create --input codeup.json --json"
|
|
@@ -565,7 +618,7 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
565
618
|
await output(command, { ok: true, connection }, `${connection.code}\t${connection.status}\tversion:${connection.version}`);
|
|
566
619
|
}), ["numa app scm update github-main --input github.json --revision 4 --yes --json"]);
|
|
567
620
|
addExamples(scm.command("rotate <code>")
|
|
568
|
-
.description("
|
|
621
|
+
.description("平台管理员轮换 GitHub 凭据或 Codeup OpenAPI/HTTPS clone 凭据;不会回显 credential")
|
|
569
622
|
.requiredOption("--revision <number>", "当前乐观锁 version")
|
|
570
623
|
.option("--credential-file <file>", "仅 owner 可读(chmod 600)的 provider credential JSON")
|
|
571
624
|
.option("--credential-stdin", "从重定向 stdin 读取 provider credential JSON")
|
|
@@ -587,7 +640,7 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
587
640
|
await output(command, { ok: true, connection }, `${connection.code}\tcredential:configured\tversion:${connection.version}`);
|
|
588
641
|
}), [
|
|
589
642
|
"numa app scm rotate github-main --revision 4 --credential-file github-app.private.json --yes --json",
|
|
590
|
-
"numa app scm rotate codeup-main --revision 2 --credential-stdin --yes --json < codeup
|
|
643
|
+
"numa app scm rotate codeup-main --revision 2 --credential-stdin --yes --json < codeup.private.json"
|
|
591
644
|
]);
|
|
592
645
|
addExamples(scm.command("disable <code>")
|
|
593
646
|
.description("平台管理员软禁用连接;服务端会阻止仍被非终态会话使用的连接")
|
|
@@ -603,11 +656,27 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
603
656
|
await onboarding.disableAdminScmConnection(code, version);
|
|
604
657
|
await output(command, { ok: true, code, disabled: true, previousVersion: version }, `${code}\tDISABLED`);
|
|
605
658
|
}), ["numa app scm disable github-main --revision 5 --yes --json"]);
|
|
659
|
+
addExamples(app.command("begin")
|
|
660
|
+
.description("幂等创建空 onboarding session,为 consumer-bound Repository plan 获取 sessionNo")
|
|
661
|
+
.requiredOption("--mode <mode>", "new|existing")
|
|
662
|
+
.requiredOption("--idempotency-key <key>", "同一 actor/mode 结果未知时复用")
|
|
663
|
+
.option("--yes", "确认创建服务端草稿会话")
|
|
664
|
+
.action(async (options, command) => {
|
|
665
|
+
requireConfirmation(options.yes, "Beginning an onboarding session");
|
|
666
|
+
const key = idempotencyKey(options.idempotencyKey, "onboarding begin");
|
|
667
|
+
const session = await client().createSession(parseOnboardingMode(options.mode), key);
|
|
668
|
+
await output(command, { ok: true, session, idempotencyKey: key }, sessionLine(session));
|
|
669
|
+
}), [
|
|
670
|
+
"numa app begin --mode new --idempotency-key begin-code-index-onboarding --yes --json"
|
|
671
|
+
], [
|
|
672
|
+
"先取得 sessionNo,再创建 consumer=APPLICATION_ONBOARDING、consumerRef=sessionNo 的 Repository plan。",
|
|
673
|
+
"相同 actor/key/mode 安全返回原 session;不同 mode 冲突,不会创建第二个会话。"
|
|
674
|
+
]);
|
|
606
675
|
addExamples(app.command("onboard")
|
|
607
676
|
.description("启动入驻向导,或按 JSON spec 创建、预检和执行")
|
|
608
677
|
.option("--mode <mode>", "new|existing;如有 --spec 必须与文件一致")
|
|
609
678
|
.option("--session <session-no>", "更新已有草稿并跨 Web/CLI 恢复;不创建新会话")
|
|
610
|
-
.option("--spec <file>", "schemaVersion=1
|
|
679
|
+
.option("--spec <file>", "schemaVersion=1(兼容)、2(Repository CP)或 3(Promote 全链路)的 onboarding JSON 文件")
|
|
611
680
|
.option("--plan", "保存草稿并执行服务端预检,不产生外部副作用")
|
|
612
681
|
.option("--apply", "保存草稿、预检并提交服务端异步执行")
|
|
613
682
|
.option("--idempotency-key <key>", "apply 幂等键;结果不明时必须复用")
|
|
@@ -648,6 +717,133 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
648
717
|
"未指定 --plan/--apply 时只保存服务端草稿。",
|
|
649
718
|
"完整 spec 保存的 currentStep 为稳定字符串 REVIEW。"
|
|
650
719
|
]);
|
|
720
|
+
const publicationAction = app.command("publication")
|
|
721
|
+
.description("为 schemaVersion=3 会话附加受控本地源码 Publication 计划");
|
|
722
|
+
addExamples(publicationAction.command("attach <session-no>")
|
|
723
|
+
.description("扫描 clean Git HEAD 并创建绑定当前 onboarding planHash 的 child plan;不写远端 Git")
|
|
724
|
+
.requiredOption("--source <directory>", "本地 Git worktree 根目录")
|
|
725
|
+
.requiredOption("--commit-message <message>", "受审提交消息,1-500字符")
|
|
726
|
+
.requiredOption("--client-request-id <id>", "稳定 child request ID")
|
|
727
|
+
.requiredOption("--idempotency-key <key>", "结果未知时必须复用;须与 client-request-id 相同")
|
|
728
|
+
.option("--yes", "确认上传受限源码 bundle 并附加 child plan")
|
|
729
|
+
.action(async (sessionNo, options, command) => {
|
|
730
|
+
requireConfirmation(options.yes, "Attaching a project publication plan");
|
|
731
|
+
const key = idempotencyKey(options.idempotencyKey, "publication attach");
|
|
732
|
+
const clientRequestId = stableActionText(options.clientRequestId, "client-request-id", 200);
|
|
733
|
+
if (key !== clientRequestId) {
|
|
734
|
+
throw new OnboardingError("idempotency-key must exactly match client-request-id for publication attachment.", "onboarding_input_invalid");
|
|
735
|
+
}
|
|
736
|
+
const onboarding = client();
|
|
737
|
+
const session = await onboarding.getSession(sessionNo);
|
|
738
|
+
const source = await scanPublication(options.source);
|
|
739
|
+
const input = parsedActionInput(OnboardingPublicationPlanActionRequestSchema, {
|
|
740
|
+
parentPlanHash: sha256(session.planHash, "session planHash"),
|
|
741
|
+
clientRequestId,
|
|
742
|
+
sourceRevision: source.sourceRevision,
|
|
743
|
+
sourceTreeDigest: source.sourceTreeDigest,
|
|
744
|
+
clean: true,
|
|
745
|
+
commitMessage: options.commitMessage,
|
|
746
|
+
files: source.requestFiles
|
|
747
|
+
});
|
|
748
|
+
const result = await onboarding.attachPublicationPlan(sessionNo, input, key);
|
|
749
|
+
await output(command, {
|
|
750
|
+
ok: true,
|
|
751
|
+
session: result.session,
|
|
752
|
+
publicationPlan: result.publicationPlan,
|
|
753
|
+
replayed: result.replayed,
|
|
754
|
+
scan: publicationScanSummary(source),
|
|
755
|
+
idempotencyKey: key
|
|
756
|
+
}, `${result.publicationPlan.planNo}\t${result.publicationPlan.state}\t${result.publicationPlan.planHash}\treplayed:${result.replayed}`);
|
|
757
|
+
}), [
|
|
758
|
+
"numa app publication attach <session-no> --source ./code-index --commit-message 'feat: publish code-index source' --client-request-id onboarding-code-index-publication --idempotency-key onboarding-code-index-publication --yes --json"
|
|
759
|
+
], [
|
|
760
|
+
"只读取 clean Git HEAD;输出不含 sourceRoot、contentBase64 或 SCM credential。",
|
|
761
|
+
"该动作只创建 child plan;onboarding worker 仍会等待显式执行和验证。"
|
|
762
|
+
]);
|
|
763
|
+
const jenkinsBindingAction = app.command("jenkins-binding")
|
|
764
|
+
.description("确认 Job Control Plane 产生的候选 Jenkins binding");
|
|
765
|
+
addExamples(jenkinsBindingAction.command("confirm <session-no>")
|
|
766
|
+
.requiredOption("--binding-id <id>", "会话事件返回的候选 binding ID")
|
|
767
|
+
.requiredOption("--expected-version <number>", "候选 binding 当前乐观锁版本")
|
|
768
|
+
.requiredOption("--idempotency-key <key>", "结果未知时复用同一 key")
|
|
769
|
+
.option("--yes", "确认该 Jenkins job 与应用/tier 的绑定关系")
|
|
770
|
+
.action(async (sessionNo, options, command) => {
|
|
771
|
+
requireConfirmation(options.yes, "Confirming a Jenkins binding");
|
|
772
|
+
const key = idempotencyKey(options.idempotencyKey, "jenkins binding confirmation");
|
|
773
|
+
const input = parsedActionInput(OnboardingJenkinsBindingActionRequestSchema, {
|
|
774
|
+
bindingId: positiveInteger(options.bindingId, "binding-id"),
|
|
775
|
+
expectedVersion: nonNegativeInteger(options.expectedVersion, "expected-version", 0)
|
|
776
|
+
});
|
|
777
|
+
const result = await client().confirmJenkinsBinding(sessionNo, input, key);
|
|
778
|
+
await output(command, { ok: true, ...result, idempotencyKey: key }, `${result.binding.id}\t${result.binding.confirmationStatus}\tv${result.binding.version}\treplayed:${result.replayed}`);
|
|
779
|
+
}), [
|
|
780
|
+
"numa app jenkins-binding confirm <session-no> --binding-id 42 --expected-version 0 --idempotency-key confirm-code-index-binding --yes --json"
|
|
781
|
+
], ["确认不会触发 scan 或 build;Job Control Plane 已独立验证配置和 inventory generation。"]);
|
|
782
|
+
const observerScopeAction = app.command("observer-scope")
|
|
783
|
+
.description("把服务绑定关联到 observer 可验证的精确 Flux/Kubernetes 坐标");
|
|
784
|
+
addExamples(observerScopeAction.command("configure <session-no>")
|
|
785
|
+
.requiredOption("--service-binding-id <id>", "会话锁定的 GitOps service binding ID")
|
|
786
|
+
.requiredOption("--kustomization-namespace <name>", "Flux Kustomization namespace")
|
|
787
|
+
.requiredOption("--kustomization-name <name>", "Flux Kustomization name")
|
|
788
|
+
.requiredOption("--helm-release-namespace <name>", "HelmRelease namespace")
|
|
789
|
+
.requiredOption("--helm-release-name <name>", "HelmRelease name")
|
|
790
|
+
.requiredOption("--workload-namespace <name>", "最终 workload namespace")
|
|
791
|
+
.requiredOption("--workload-kind <kind>", "最终 workload kind")
|
|
792
|
+
.requiredOption("--workload-name <name>", "最终 workload name")
|
|
793
|
+
.requiredOption("--expected-version <number>", "scope 当前版本;首次创建使用服务端事件给出的版本")
|
|
794
|
+
.requiredOption("--idempotency-key <key>", "结果未知时复用同一 key")
|
|
795
|
+
.option("--yes", "确认精确运行态坐标")
|
|
796
|
+
.action(async (sessionNo, options, command) => {
|
|
797
|
+
requireConfirmation(options.yes, "Configuring an observer scope");
|
|
798
|
+
const key = idempotencyKey(options.idempotencyKey, "observer scope configuration");
|
|
799
|
+
const input = parsedActionInput(OnboardingObserverScopeActionRequestSchema, {
|
|
800
|
+
serviceBindingId: positiveInteger(options.serviceBindingId, "service-binding-id"),
|
|
801
|
+
kustomizationNamespace: stableActionText(options.kustomizationNamespace, "kustomization-namespace"),
|
|
802
|
+
kustomizationName: stableActionText(options.kustomizationName, "kustomization-name"),
|
|
803
|
+
helmReleaseNamespace: stableActionText(options.helmReleaseNamespace, "helm-release-namespace"),
|
|
804
|
+
helmReleaseName: stableActionText(options.helmReleaseName, "helm-release-name"),
|
|
805
|
+
workloadNamespace: stableActionText(options.workloadNamespace, "workload-namespace"),
|
|
806
|
+
workloadKind: stableActionText(options.workloadKind, "workload-kind", 160),
|
|
807
|
+
workloadName: stableActionText(options.workloadName, "workload-name"),
|
|
808
|
+
expectedVersion: nonNegativeInteger(options.expectedVersion, "expected-version", 0)
|
|
809
|
+
});
|
|
810
|
+
const result = await client().configureObserverScope(sessionNo, input, key);
|
|
811
|
+
await output(command, { ok: true, ...result, idempotencyKey: key }, `${result.scope.scopeNo}\t${result.scope.status}\t${result.scope.evidenceFreshness}\t${result.scope.lastDriftState ?? "-"}`);
|
|
812
|
+
}), [
|
|
813
|
+
"numa app observer-scope configure <session-no> --service-binding-id 17 --kustomization-namespace flux-system --kustomization-name prd --helm-release-namespace prd --helm-release-name code-index --workload-namespace prd --workload-kind Deployment --workload-name code-index --expected-version 0 --idempotency-key scope-code-index-prd --yes --json"
|
|
814
|
+
], ["服务端强制 serviceBindingId 属于该会话;CLI 不允许任意 cluster/path/YAML。"]);
|
|
815
|
+
const firstBuildAction = app.command("first-build")
|
|
816
|
+
.description("在全部结构与运行证据就绪后,独立决定首次 Jenkins build");
|
|
817
|
+
addExamples(firstBuildAction.command("decide <session-no>")
|
|
818
|
+
.requiredOption("--decision <decision>", "trigger|defer")
|
|
819
|
+
.option("--branch <branch>", "TRIGGER 的分支;缺省由服务端锁定配置决定")
|
|
820
|
+
.option("--parameter <KEY=VALUE>", "非敏感构建参数,可重复", collectParameter, [])
|
|
821
|
+
.option("--approve-id <id>", "生产 TRIGGER 的审批记录 ID")
|
|
822
|
+
.option("--production-reason <reason>", "生产 TRIGGER 的受审原因(至少10字符)")
|
|
823
|
+
.requiredOption("--idempotency-key <key>", "结果未知时复用同一 key")
|
|
824
|
+
.option("--yes", "确认记录决定;TRIGGER 会真正提交 Jenkins build")
|
|
825
|
+
.action(async (sessionNo, options, command) => {
|
|
826
|
+
requireConfirmation(options.yes, "Recording the first-build decision");
|
|
827
|
+
const decision = options.decision.trim().toUpperCase();
|
|
828
|
+
const input = parsedActionInput(OnboardingFirstBuildActionRequestSchema, {
|
|
829
|
+
decision,
|
|
830
|
+
branch: options.branch?.trim() || undefined,
|
|
831
|
+
parameters: buildParameters(options.parameter),
|
|
832
|
+
approveId: options.approveId?.trim() || undefined,
|
|
833
|
+
productionReason: options.productionReason?.trim() || undefined
|
|
834
|
+
});
|
|
835
|
+
const key = idempotencyKey(options.idempotencyKey, "first-build decision");
|
|
836
|
+
const result = await client().decideFirstBuild(sessionNo, input, key);
|
|
837
|
+
await output(command, { ok: true, ...result, idempotencyKey: key }, result.build
|
|
838
|
+
? `${result.decision}\t${result.build.requestId}\t${result.build.state}\treplayed:${result.replayed}`
|
|
839
|
+
: `${result.decision}\tno-build\treplayed:${result.replayed}`);
|
|
840
|
+
}), [
|
|
841
|
+
"numa app first-build decide <session-no> --decision defer --idempotency-key defer-code-index-first-build --yes --json",
|
|
842
|
+
"numa app first-build decide <session-no> --decision trigger --branch main --idempotency-key trigger-code-index-first-build --yes --json"
|
|
843
|
+
], [
|
|
844
|
+
"DEFER 永不触发 build,且会话保持 WAITING_EXTERNAL。",
|
|
845
|
+
"生产 TRIGGER 仍由服务端强制 ops-admin 与受审生产依据;参数禁止凭据式 key/value。"
|
|
846
|
+
]);
|
|
651
847
|
addExamples(app.command("resume <session-no>")
|
|
652
848
|
.description("让服务端重新检查外部等待条件,不在客户端推进状态")
|
|
653
849
|
.action(async (sessionNo, _options, command) => {
|