@numa-tech/numa 1.14.28 → 1.14.30
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 +35 -201
- package/dist/application-onboarding/client.d.ts +3 -17
- package/dist/application-onboarding/client.js +1 -14
- package/dist/application-onboarding/client.js.map +1 -1
- package/dist/application-onboarding/commands.d.ts +0 -2
- package/dist/application-onboarding/commands.js +5 -76
- package/dist/application-onboarding/commands.js.map +1 -1
- package/dist/application-onboarding/schemas.d.ts +28 -301
- package/dist/application-onboarding/schemas.js +13 -91
- package/dist/application-onboarding/schemas.js.map +1 -1
- package/dist/cli.js +0 -2
- package/dist/cli.js.map +1 -1
- package/dist/command-catalog.js +6 -336
- package/dist/command-catalog.js.map +1 -1
- package/dist/gitops/client.d.ts +0 -38
- package/dist/gitops/client.js +1 -9
- package/dist/gitops/client.js.map +1 -1
- package/dist/gitops/commands.js +1 -20
- package/dist/gitops/commands.js.map +1 -1
- package/dist/gitops/schemas.d.ts +0 -112
- package/dist/gitops/schemas.js +0 -38
- package/dist/gitops/schemas.js.map +1 -1
- package/dist/jenkins/commands.d.ts +0 -4
- package/dist/jenkins/commands.js +0 -10
- package/dist/jenkins/commands.js.map +1 -1
- package/dist/jenkins-jobs/commands.d.ts +0 -2
- package/dist/jenkins-jobs/commands.js +0 -2
- package/dist/jenkins-jobs/commands.js.map +1 -1
- package/dist/pipeline/commands.js +0 -2
- package/dist/pipeline/commands.js.map +1 -1
- package/dist/platform-profile.d.ts +2 -0
- package/dist/platform-profile.js +2 -1
- package/dist/platform-profile.js.map +1 -1
- package/package.json +4 -4
- package/skills/numa-create-application/SKILL.md +30 -163
- package/skills/numa-create-application/agents/openai.yaml +2 -2
- package/skills/numa-create-application/evals/evals.json +9 -150
- package/skills/numa-create-application/references/checklist.md +22 -139
- package/skills/numa-create-application/references/numa-cli.md +27 -257
- package/skills/numa-create-application/references/promote-workflows.md +22 -188
- package/skills/numa-create-application/scripts/inspect-project.mjs +1 -1
- package/skills/numa-jenkins-deployment/SKILL.md +21 -132
- package/skills/numa-jenkins-deployment/agents/openai.yaml +2 -2
- package/skills/numa-jenkins-deployment/evals/evals.json +9 -59
- package/skills/numa-jenkins-deployment/references/cli-contract.md +22 -101
- package/skills/numa-jenkins-deployment/references/diagnostics.md +2 -2
- package/skills/numa-jenkins-deployment/references/release-policy.md +19 -85
- package/skills/numa-local-flux-deploy/SKILL.md +1 -1
- package/skills/numa-local-flux-deploy/references/local-flux-release.md +1 -1
- package/dist/integration-bootstrap/client.d.ts +0 -61
- package/dist/integration-bootstrap/client.js +0 -293
- package/dist/integration-bootstrap/client.js.map +0 -1
- package/dist/integration-bootstrap/commands.d.ts +0 -86
- package/dist/integration-bootstrap/commands.js +0 -615
- package/dist/integration-bootstrap/commands.js.map +0 -1
- package/dist/integration-bootstrap/schemas.d.ts +0 -831
- package/dist/integration-bootstrap/schemas.js +0 -565
- package/dist/integration-bootstrap/schemas.js.map +0 -1
- package/dist/jenkins-gitops-rollouts/client.d.ts +0 -197
- package/dist/jenkins-gitops-rollouts/client.js +0 -126
- package/dist/jenkins-gitops-rollouts/client.js.map +0 -1
- package/dist/jenkins-gitops-rollouts/commands.d.ts +0 -50
- package/dist/jenkins-gitops-rollouts/commands.js +0 -358
- package/dist/jenkins-gitops-rollouts/commands.js.map +0 -1
- package/dist/jenkins-gitops-rollouts/schemas.d.ts +0 -217
- package/dist/jenkins-gitops-rollouts/schemas.js +0 -131
- package/dist/jenkins-gitops-rollouts/schemas.js.map +0 -1
- package/dist/platform-build-job-replans/client.d.ts +0 -291
- package/dist/platform-build-job-replans/client.js +0 -148
- package/dist/platform-build-job-replans/client.js.map +0 -1
- package/dist/platform-build-job-replans/commands.d.ts +0 -6
- package/dist/platform-build-job-replans/commands.js +0 -373
- package/dist/platform-build-job-replans/commands.js.map +0 -1
- package/dist/platform-build-job-replans/schemas.d.ts +0 -147
- package/dist/platform-build-job-replans/schemas.js +0 -151
- package/dist/platform-build-job-replans/schemas.js.map +0 -1
- package/dist/platform-build-rollouts/client.d.ts +0 -346
- package/dist/platform-build-rollouts/client.js +0 -153
- package/dist/platform-build-rollouts/client.js.map +0 -1
- package/dist/platform-build-rollouts/commands.d.ts +0 -98
- package/dist/platform-build-rollouts/commands.js +0 -465
- package/dist/platform-build-rollouts/commands.js.map +0 -1
- package/dist/platform-build-rollouts/schemas.d.ts +0 -348
- package/dist/platform-build-rollouts/schemas.js +0 -257
- package/dist/platform-build-rollouts/schemas.js.map +0 -1
- package/dist/platform-builds/client.d.ts +0 -147
- package/dist/platform-builds/client.js +0 -115
- package/dist/platform-builds/client.js.map +0 -1
- package/dist/platform-builds/commands.d.ts +0 -7
- package/dist/platform-builds/commands.js +0 -226
- package/dist/platform-builds/commands.js.map +0 -1
- package/dist/platform-builds/schemas.d.ts +0 -127
- package/dist/platform-builds/schemas.js +0 -66
- package/dist/platform-builds/schemas.js.map +0 -1
package/README.md
CHANGED
|
@@ -211,15 +211,12 @@ numa mail archive search kenneth.davis@mail.microconnect.com \
|
|
|
211
211
|
| `numa mcp list/inspect/install/bridge/...` | 需登录 | 通过企业 Router 安装/桥接 MCP,并维护版本、标签和工具状态 |
|
|
212
212
|
| `numa registry approvals/router/audit` | 需登录 | 两人制发布、Router 健康/对账和追加式审计 |
|
|
213
213
|
| `numa registry tui` | 需登录 | 打开 namespace、Skills、MCP、审批、Router、审计全屏工作台 |
|
|
214
|
-
| `numa app capabilities/begin/onboard/publication/jenkins-binding/
|
|
214
|
+
| `numa app capabilities/begin/onboard/publication/jenkins-binding/first-build/...` | 需登录 | 自述运行时能力,创建、接入并按独立 child gate Promote 应用 |
|
|
215
215
|
| `numa publication scan/plan/apply/status/events/...` | 公开扫描/需登录写入 | 把 clean Git HEAD 通过受控 bundle 发布到受管仓库;plan 可按原 request ID 只读恢复 |
|
|
216
216
|
| `numa jenkins job plan/apply/status/events/...` | 需登录 | 创建/校验 Jenkins Multibranch Job,默认不扫描、不构建 |
|
|
217
|
-
| `numa pipeline
|
|
217
|
+
| `numa pipeline build/builds/status/log/stop/retry` | 需登录 | 通过 canonical Multibranch Job 执行 `gitopsBuildEntry()`;首次运行或 `INIT=true` 初始化参数 |
|
|
218
218
|
| `numa app options` | 需登录 | 查询应用归属所需的团队、系统、业务域和环境 ID |
|
|
219
219
|
| `numa app candidate list/inspect/preview/review/adopt` | 需登录 | 审查应用发现候选并确认收录,服务端执行最终管理员授权和审计 |
|
|
220
|
-
| `numa integration bootstrap trust-anchor export` | 公开 | 导出导入 Keycloak `master` realm 的最小无密钥 PKCE 信任锚 |
|
|
221
|
-
| `numa integration bootstrap init` | 需角色 | 使用新鲜管理员浏览器授权,幂等初始化服务端固定集成;不轮换 secret |
|
|
222
|
-
| `numa integration secret rotate` | 需角色 | 使用新鲜管理员浏览器授权,显式轮换固定集成 secret 并同步 Jenkins |
|
|
223
220
|
| `numa media capabilities` | 需登录 | 查询媒体 API、Provider 和版本能力 |
|
|
224
221
|
| `numa media tts submit` | 需登录 | 提交 TTS 异步任务 |
|
|
225
222
|
| `numa media video submit` | 需登录 | 提交视频生成异步任务 |
|
|
@@ -233,6 +230,8 @@ numa mail archive search kenneth.davis@mail.microconnect.com \
|
|
|
233
230
|
| `numa codex admin accounts renew <account> --expires-at <ISO-8601>` | 需角色 | 续订已过期账号;新到期时间必须晚于当前时间和原到期时间 |
|
|
234
231
|
| `numa codex upload` | 需登录 | 批量上传 codex-multi-auth 管理的账号池 |
|
|
235
232
|
| `numa codex use` | 需登录 | 选择账号并写入官方 ChatGPT 登录 |
|
|
233
|
+
| `numa codex release` | 需登录 | 检查并清理本设备受管凭据,释放后保留原用户、原设备的再次领取资格 |
|
|
234
|
+
| `numa codex admin requests return-to-pool <bindingId> --idempotency-key <key>` | 需角色 | 将已释放的 Token Set 解除当前绑定并回到普通池;重试使用同一操作键 |
|
|
236
235
|
| `numa codex run` | 需登录 | 使用所选账号启动官方 Codex CLI |
|
|
237
236
|
| `numa codex app` | 需登录 | 使用官方 ChatGPT 登录启动桌面 App |
|
|
238
237
|
| `numa codex shortcut` | 公开 | 安装或删除 macOS/Windows/Linux 快捷命令与桌面入口 |
|
|
@@ -252,66 +251,18 @@ CLI 会返回稳定错误码 `codex_account_needs_reauth`,需要管理员通
|
|
|
252
251
|
管理员诊断、补录、旧客户端恢复和服务端状态迁移要求见
|
|
253
252
|
[`docs/codex-account-credential-repair.md`](docs/codex-account-credential-repair.md)。
|
|
254
253
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
Integration bootstrap 分为“建立信任”和“执行 profile”两个安全边界。信任锚不具有
|
|
260
|
-
Keycloak 管理员权限;它只允许已登录管理员通过 Authorization Code + S256 PKCE 将一次性
|
|
261
|
-
授权安全地送回当前 DevOps 服务。realm、client、callback、目标资源和写入顺序均由服务端
|
|
262
|
-
固定,CLI 不接受用户名、密码、client secret、任意 Keycloak URL 或任意资源路径。
|
|
263
|
-
|
|
264
|
-
### 1. 每个 DevOps/Keycloak 信任域导入一次信任锚
|
|
265
|
-
|
|
266
|
-
```bash
|
|
267
|
-
numa integration bootstrap trust-anchor export \
|
|
268
|
-
--output ./mci-devops-platform-bootstrap-master.json
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
CLI 从当前 platform profile 指向的公开端点读取 JSON,校验响应声明 `master` realm、固定
|
|
272
|
-
callback、public client、S256 PKCE、禁用 Direct Access Grants 且不含任何 secret,再以 `0600`
|
|
273
|
-
权限原子写入。已有文件默认拒绝覆盖;明确替换时使用 `--force`。
|
|
274
|
-
|
|
275
|
-
也可用浏览器访问当前 DevOps 基址下的
|
|
276
|
-
`/public/v1/keycloak-bootstrap/client-configuration` 下载同一 JSON。在 Keycloak Admin Console 选择
|
|
277
|
-
`master` realm,进入 **Clients → Import client** 导入文件。不要导入到目标业务 realm,也不要
|
|
278
|
-
手工添加 secret 或开启 password/direct grant。
|
|
279
|
-
|
|
280
|
-
### 2. 启动服务端固定 bootstrap profile
|
|
281
|
-
|
|
282
|
-
```bash
|
|
283
|
-
# 交互模式:新鲜管理员登录 → 实时检查 → 幂等校正 → 分步骤输出结果
|
|
284
|
-
numa integration bootstrap init
|
|
285
|
-
|
|
286
|
-
# 远程/无头环境:只返回一次性 URL 和 run ID,不打开或轮询浏览器
|
|
287
|
-
numa integration bootstrap init --no-open --json
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
当前 profile 是服务端锁定的 Jenkins GitOps writer。每次执行都从 Keycloak 与 Jenkins 实时状态
|
|
291
|
-
重新检查,逐步输出“成功、失败、无变更、跳过、等待”。失败后可直接重新运行;CLI 不再要求
|
|
292
|
-
operation key,也不暴露 plan、apply、reconcile、recover 或 reapply。bootstrap 只读取 Keycloak
|
|
293
|
-
当前 secret 并同步到 Jenkins,不会隐式轮换 secret。
|
|
294
|
-
|
|
295
|
-
### 3. 显式轮换固定集成 secret
|
|
296
|
-
|
|
297
|
-
```bash
|
|
298
|
-
numa integration secret rotate
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
secret 轮换是独立高级权限操作:重新完成一次新鲜管理员登录,轮换固定 Keycloak service client
|
|
302
|
-
secret,随后重新读取当前值、覆盖 Jenkins credential,并验证 client-credentials token claims。
|
|
303
|
-
secret、管理员 token 和 Jenkins 管理凭据均不会进入 CLI 输出或持久化步骤结果。
|
|
304
|
-
|
|
305
|
-
如果 Keycloak 已完成轮换但 Jenkins 同步失败,重新运行 `numa integration bootstrap init` 即可把
|
|
306
|
-
Keycloak 当前 secret 同步到 Jenkins;不要再次轮换。
|
|
254
|
+
支持设备释放能力的服务端允许原设备释放后再次领取。切换账号时,先保存工作并自行退出相关
|
|
255
|
+
Codex 会话,按提示重新检查;Numa 不自动退出或强杀进程。确认后,客户端先将最新完整凭据
|
|
256
|
+
同步到服务端,再清理受管凭据并登记释放,最后安装新账号。清理或登记中断时,在独立终端
|
|
257
|
+
运行 `numa codex release` 恢复;新账号安装失败不会自动恢复旧凭据。
|
|
307
258
|
|
|
308
|
-
|
|
259
|
+
释放后的 Token Set 为“待领取,仅限原设备”,可以按释放命令输出的 Binding ID 用
|
|
260
|
+
`numa codex use <bindingId>` 领回。需要迁移到另一设备时,管理员在账号详情的 Token Set
|
|
261
|
+
明细中执行“解绑并回池”,或使用上述管理员命令,然后按正常流程重新分配。仅在原设备
|
|
262
|
+
执行释放不会解除用户和设备绑定。设备清理确认只涵盖 Numa 可管理的范围,不代表上游撤销。
|
|
263
|
+
设计与中断恢复规则见[设备 Token Set 释放设计](docs/superpowers/specs/2026-09-05-device-token-release-reclaim-design.md)。
|
|
309
264
|
|
|
310
|
-
|
|
311
|
-
同一个临时 master realm PKCE 登录通道。只要仍属于同一 DevOps/Keycloak 信任域且 callback 未变,
|
|
312
|
-
不需要重复执行第 1 步。每个高级操作必须在服务端注册固定 mode、固定目标与最小动作集合;不得
|
|
313
|
-
放宽为由 CLI 传入任意 realm、client、path 或 Admin REST 请求。管理员 token 仅在单次服务端执行
|
|
314
|
-
内存中存在,用完立即销毁。
|
|
265
|
+
CLI 的本地角色检查用于快速反馈和隐藏无权限入口,不能替代服务端授权。内部平台 API 必须继续在服务端校验访问令牌、资源和角色。
|
|
315
266
|
|
|
316
267
|
## 配置
|
|
317
268
|
|
|
@@ -608,47 +559,14 @@ numa app jenkins-binding confirm <session-no> \
|
|
|
608
559
|
--binding-id <id> --expected-version <version> \
|
|
609
560
|
--idempotency-key confirm-code-index-binding --yes --json
|
|
610
561
|
|
|
611
|
-
numa app writer-bootstrap ensure <session-no> \
|
|
612
|
-
--idempotency-key bootstrap-code-index-prd --yes --json
|
|
613
|
-
|
|
614
|
-
numa app observer-scope configure <session-no> \
|
|
615
|
-
--service-binding-id <id> \
|
|
616
|
-
--kustomization-namespace flux-system --kustomization-name prd \
|
|
617
|
-
--helm-release-namespace prd --helm-release-name code-index \
|
|
618
|
-
--workload-namespace prd --workload-kind Deployment --workload-name code-index \
|
|
619
|
-
--expected-version <version> --idempotency-key scope-code-index-prd --yes --json
|
|
620
|
-
|
|
621
562
|
# DEFER 永不触发构建;TRIGGER 是独立授权,生产仍由服务端强制审批证据
|
|
622
563
|
numa app first-build decide <session-no> --decision defer \
|
|
623
564
|
--idempotency-key defer-code-index-first-build --yes --json
|
|
624
565
|
```
|
|
625
566
|
|
|
626
|
-
onboarding v3
|
|
627
|
-
`
|
|
628
|
-
|
|
629
|
-
base release、exact overlay values、overlay kustomization 三个服务文件。CLI 不能提交
|
|
630
|
-
repository、path、branch、YAML、binding、target 或 secret;它只提交原 session 与稳定
|
|
631
|
-
Idempotency-Key,并通过 `app inspect <session-no> [--watch] [--after-sequence]` 读取
|
|
632
|
-
`GITOPS_V2_WRITER_BOOTSTRAP` 事件。只有 exact contract/identity/revision/digest 匹配的
|
|
633
|
-
成功事件才能继续;`PENDING` 只继续等待原 session,`UNKNOWN` 或 drift 均 fail closed。
|
|
634
|
-
该阶段不调用 v1 `legacy-image-migration`,不枚举、读取或改写 Secret,也不新建
|
|
635
|
-
Application、session、binding 或 target。
|
|
636
|
-
|
|
637
|
-
若初始 POST 响应未知,先只读检查原 session,再以同一 session 和原 Idempotency-Key 精确重放
|
|
638
|
-
`writer-bootstrap ensure`;不得生成新 key。若已持久 child 本身进入 `UNKNOWN`,普通 status/inspect
|
|
639
|
-
和 first-build 的未知结果恢复都不会重启 bootstrap,只有显式通用会话恢复命令可以让服务端恢复
|
|
640
|
-
原 run/key,不创建新的 bootstrap child 或业务身份:
|
|
641
|
-
|
|
642
|
-
```bash
|
|
643
|
-
numa app inspect <session-no> --after-sequence <last-sequence> --json
|
|
644
|
-
numa app writer-bootstrap ensure <session-no> --idempotency-key <original-key> --yes --json
|
|
645
|
-
numa app retry <session-no> --json
|
|
646
|
-
numa app inspect <session-no> --watch --after-sequence <last-sequence> --json
|
|
647
|
-
```
|
|
648
|
-
|
|
649
|
-
`app retry` 不接受 SCM、path、Secret、binding、target 或 first-build 参数;调用后仍须等到
|
|
650
|
-
同一 `GITOPS_V2_WRITER_BOOTSTRAP` 的 exact 成功证据。若状态仍为 `UNKNOWN` 或出现 drift,继续阻断
|
|
651
|
-
Observer/first-build,禁止重放 first-build POST、手工修改 SCM 或改用新 session/identity。
|
|
567
|
+
onboarding v3 直接锁定 Repository、Jenkins Job、GitOps target 和首次构建决定。GitOps 结构由
|
|
568
|
+
平台计划写入,镜像版本由 canonical Jenkins `gitopsBuildEntry()` 直接提交到受管 Flux 仓库;
|
|
569
|
+
不再存在独立 writer bootstrap 或 Observer gate。
|
|
652
570
|
|
|
653
571
|
`app publication attach --json` 只返回 session/plan 标识、manifest 计数和 tree digest 摘要,不返回
|
|
654
572
|
完整 session draft/plan、manifest path、本地绝对路径或文件内容。若写响应在网关处变成结果未知,
|
|
@@ -758,7 +676,7 @@ provider 身份;此类记录完成迁移前禁止执行 `repository reconcile
|
|
|
758
676
|
|
|
759
677
|
## GitOps 服务导入、legacy image writer 迁移、结构计划与执行
|
|
760
678
|
|
|
761
|
-
GitOps 开放 `service import/plan/apply/status/events
|
|
679
|
+
GitOps 开放 `service import/plan/apply/status/events`。导入从 target
|
|
762
680
|
锁定的 SCM revision 读取现有 `MCI_FLUX_V1` 文件并登记 binding;计划通过服务端唯一的
|
|
763
681
|
`MCI_FLUX_V1` renderer 生成并持久化受管文件快照。导入和计划都不会写 SCM,只有显式确认的
|
|
764
682
|
`apply` 会执行服务端锁定的文件变更。
|
|
@@ -795,8 +713,6 @@ numa gitops service apply gplan_01 \
|
|
|
795
713
|
numa gitops service status gplan_01 --json
|
|
796
714
|
numa gitops service events gplan_01 --json
|
|
797
715
|
|
|
798
|
-
# 只读查看 Jenkins image writer 与独立 Flux observer 的运行证据
|
|
799
|
-
numa gitops service evidence 77 --json
|
|
800
716
|
```
|
|
801
717
|
|
|
802
718
|
最小结构 spec 示例:
|
|
@@ -814,12 +730,9 @@ spec 不得包含整个 `image`,也不得包含应用、环境、namespace、r
|
|
|
814
730
|
`GITOPS_IMAGE_REPOSITORY_UNRESOLVED` 阻断,不会猜测镜像地址。返回的 `canonicalSpecHash`、
|
|
815
731
|
`planHash`、`baseRevision` 和 `sideEffects` 是后续审阅的锁定证据。
|
|
816
732
|
|
|
817
|
-
`legacy-image-migration plan`
|
|
733
|
+
`legacy-image-migration plan` 只适用于迁移旧版镜像布局的存量应用,严格只提交
|
|
818
734
|
`applicationCode/targetKey/profileCode/profileVersion/serviceId`。新应用 v2 不调用该接口;它在
|
|
819
|
-
onboarding v3 GitOps structural apply
|
|
820
|
-
`gitops-platform-writer-bootstrap/v2`,且只读写该服务的 base release、exact overlay values 和
|
|
821
|
-
overlay kustomization 三个受管文件。CLI 不接受仓库/path/YAML/branch/secret 输入,只从原 session events 读取
|
|
822
|
-
`GITOPS_V2_WRITER_BOOTSTRAP`;不枚举或修改同一 overlay 的 sibling Secret。
|
|
735
|
+
onboarding v3 GitOps structural apply 后由 canonical Jenkins 流水线直接更新镜像版本。
|
|
823
736
|
路径、image pointers 和文件变更由服务端派生;CLI 只输出 `READY/BLOCKED`、plan number/hash、
|
|
824
737
|
changed file count、blocker/recovery、warnings 和 side effects,不输出 path/diff/pointer。`READY` 后复用
|
|
825
738
|
`gitops service apply`。该 plan API 没有 Idempotency-Key 或 resolve-by-key,因此响应不明时必须
|
|
@@ -830,107 +743,28 @@ fail closed,不自动重放;只有获得 plan number 后才可用 status/eve
|
|
|
830
743
|
`REVIEWED_CHANGE` 会进入 `WAITING_REVIEW` 并返回审查地址。apply 请求只包含 `planNumber`、
|
|
831
744
|
`planHash` 和 `Idempotency-Key`,不接受任意 repository/path/image 输入。
|
|
832
745
|
|
|
833
|
-
##
|
|
746
|
+
## Canonical pipeline v2
|
|
834
747
|
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
`Idempotency-Key` 和 `--yes`,且保持 backend `jenkins-gitops-rollout/v1` 的 strict DTO 和行为。
|
|
838
|
-
该命令族不包含 automatic configure;新应用不应通过它隐式升级。
|
|
748
|
+
新应用和已迁移应用统一使用 canonical Multibranch Job 与仓库中的 `gitopsBuildEntry()`。
|
|
749
|
+
旧的签名快照入口及其独立触发、rollout 和 provenance 命令已移除,不能再作为部署路径。
|
|
839
750
|
|
|
840
751
|
```bash
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
--
|
|
844
|
-
--
|
|
845
|
-
--
|
|
846
|
-
|
|
847
|
-
numa jenkins gitops-rollout plan get <plan-no> --json
|
|
848
|
-
|
|
849
|
-
# apply 只持久化 fail-closed rollout gate,不写 Jenkins 或触发 build
|
|
850
|
-
numa jenkins gitops-rollout apply \
|
|
851
|
-
--plan-no <plan-no> --plan-hash <64hex> \
|
|
852
|
-
--idempotency-key legacy-order-v1-rollout-apply-1 --yes --json
|
|
853
|
-
|
|
854
|
-
numa jenkins gitops-rollout list --application legacy-order-service --instance numa --json
|
|
855
|
-
numa jenkins gitops-rollout get <rollout-no> --json
|
|
856
|
-
|
|
857
|
-
# 旧 v1 readiness 是人工证明,不是 live-read
|
|
858
|
-
numa jenkins gitops-rollout readiness <legacy-rollout-no> \
|
|
859
|
-
--desired-mode legacy --expected-version <version> \
|
|
860
|
-
--operator-action-reference CHG-20260824-001 \
|
|
861
|
-
--idempotency-key legacy-order-readiness-1 --yes --json
|
|
862
|
-
```
|
|
863
|
-
|
|
864
|
-
`readiness` 固定是 `MANUAL_OPERATOR_ATTESTED`,不是 Jenkins live-read。CLI 从当前
|
|
865
|
-
rollout 回传 exact public tuple 和固定 credential reference names,不接受 secret value、raw XML、env map
|
|
866
|
-
或 credential value。响应不明时,apply 只有在 list 中发现 exact application/instance/plan mode 且 durable
|
|
867
|
-
version 增长才恢复;readiness 只有 GET 同 rollout 显示 exact reference/mode/status/identity
|
|
868
|
-
且 version 增长才恢复。其余情况均返回 result unknown,不自动重放。
|
|
869
|
-
|
|
870
|
-
## Platform build rollout v2
|
|
871
|
-
|
|
872
|
-
新应用的 Jenkins 配置门禁位于独立 `numa jenkins platform-build-rollout`,与 v1
|
|
873
|
-
`gitops-rollout` 的 API、DTO、表和状态机分离。v2 只支持 `ENABLE_PLATFORM`/
|
|
874
|
-
`DISABLE_PLATFORM`,没有 manual readiness,不要求 Jenkins 持有 Flux Git credential。
|
|
875
|
-
|
|
876
|
-
```bash
|
|
877
|
-
numa jenkins platform-build-rollout plan enable-platform \
|
|
878
|
-
--application code-index --instance numa \
|
|
879
|
-
--shared-library-revision <approved-v2-shared-library-revision> \
|
|
880
|
-
--idempotency-key code-index-v2-rollout-plan-1 --yes --json
|
|
881
|
-
|
|
882
|
-
numa jenkins platform-build-rollout plan get <plan-no> --json
|
|
883
|
-
numa jenkins platform-build-rollout apply \
|
|
884
|
-
--plan-no <plan-no> --plan-hash <64hex> \
|
|
885
|
-
--idempotency-key code-index-v2-rollout-apply-1 --yes --json
|
|
886
|
-
numa jenkins platform-build-rollout list --application code-index --instance numa --json
|
|
887
|
-
numa jenkins platform-build-rollout get <rollout-no> --json
|
|
888
|
-
numa jenkins platform-build-rollout configure <rollout-no> \
|
|
889
|
-
--expected-version <version> \
|
|
890
|
-
--idempotency-key code-index-v2-auto-configure-1 --yes --json
|
|
891
|
-
```
|
|
892
|
-
|
|
893
|
-
`configure` 的 strict body 只有 `expectedVersion`,不接收 public tuple、env、XML、Groovy、
|
|
894
|
-
token、credential ID/value 或 operator attestation。服务端只有在返回 exact
|
|
895
|
-
`READY/JENKINS_API_VERIFIED/VERIFIED`、writer credential readiness、observed shared-library/source
|
|
896
|
-
revision 以及 Jenkinsfile/profile/configuration digest 时才放行。响应不明时 CLI 只 GET
|
|
897
|
-
同一 rollout,不重放 POST。
|
|
898
|
-
|
|
899
|
-
automatic configure 之前,Project Publication CAS 必须发布 exact
|
|
900
|
-
`@Library('mciShareLib@<approvedSharedLibraryRevision>') _`、唯一 `platformBuildEntry()` 和 strict
|
|
901
|
-
`.mci/platform-build.yaml`。生产 snapshot 执行服务端固定 wrapper,不加载应用 Jenkinsfile;
|
|
902
|
-
Jenkins 只 checkout 锁定源码并构建/push 镜像,Flux SCM CAS 由 DevOps 服务端执行。
|
|
903
|
-
|
|
904
|
-
## Platform build v2
|
|
905
|
-
|
|
906
|
-
新应用使用独立 `pipeline platform-build` 表面;旧 `pipeline build/builds/status/log/stop/retry` 的 v1
|
|
907
|
-
请求和响应保持不变。v2 不接受任意 Jenkins 参数,生产审批依据只保留在平台审计中。镜像构建完成后,
|
|
908
|
-
Jenkins 只提交一次 image intent;DevOps 服务端持有 Flux writer credential,并按锁定 contract/HEAD
|
|
909
|
-
执行 SCM CAS。运行态完成证据仍来自独立 Observer。
|
|
752
|
+
numa pipeline build code-index \
|
|
753
|
+
--tier production --branch master \
|
|
754
|
+
--param INIT=true \
|
|
755
|
+
--production-reason '初始化生产流水线参数' \
|
|
756
|
+
--wait --json
|
|
910
757
|
|
|
911
|
-
|
|
912
|
-
numa pipeline platform-build trigger code-index \
|
|
758
|
+
numa pipeline build code-index \
|
|
913
759
|
--tier production --branch master \
|
|
914
|
-
--
|
|
915
|
-
--production-reason '
|
|
916
|
-
--
|
|
917
|
-
|
|
918
|
-
# trigger 响应未知时只读恢复,绝不重放 POST
|
|
919
|
-
numa pipeline platform-build resolve \
|
|
920
|
-
--client-request-id code-index-prd-first-v2 --json
|
|
921
|
-
numa pipeline platform-build status <request-id> --watch --json
|
|
922
|
-
numa pipeline platform-build log <request-id> --start 0 --json
|
|
923
|
-
|
|
924
|
-
# stop 同样只发送一次;未知后只读同一个 request
|
|
925
|
-
numa pipeline platform-build stop <request-id> \
|
|
926
|
-
--idempotency-key code-index-prd-stop-v2 \
|
|
927
|
-
--production-reason '停止异常的首次生产构建' \
|
|
928
|
-
--yes --json
|
|
760
|
+
--param ENV_ID=prd \
|
|
761
|
+
--production-reason '执行生产构建与部署' \
|
|
762
|
+
--wait --json
|
|
929
763
|
```
|
|
930
764
|
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
765
|
+
首次分支运行本身会初始化参数;`INIT=true` 可在以后强制重新初始化。初始化完成后使用新的
|
|
766
|
+
idempotency key 触发实际构建。任何结果不明都只按原 requestId 使用 `pipeline status/log` 对账,
|
|
767
|
+
不能换 key 重放,也不得新建第二 Application、Repository、session、binding 或 target。
|
|
934
768
|
|
|
935
769
|
SCM 管理接口位于 `/api/v1/admin/scm-connections`,最终权限始终由网关和后端按 canonical
|
|
936
770
|
Client Role 校验。metadata JSON 只允许 provider、URL、组织、auth type 以及服务端托管的
|
|
@@ -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 OnboardingFirstBuildActionRequest, type OnboardingFirstBuildActionResponse, type OnboardingJenkinsBindingActionRequest, type OnboardingJenkinsBindingActionResponse, type OnboardingMode, type OnboardingPreflight, type
|
|
3
|
+
import { OnboardingSessionSchema, type JsonValue, type OnboardingCapabilities, type OnboardingEvent, type OnboardingFirstBuildActionRequest, type OnboardingFirstBuildActionResponse, type OnboardingJenkinsBindingActionRequest, type OnboardingJenkinsBindingActionResponse, type OnboardingMode, type OnboardingPreflight, type OnboardingPublicationPlanActionRequest, type OnboardingPublicationPlanActionResponse, type OnboardingPublicationPlanResolutionResponse, 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;
|
|
@@ -100,8 +100,6 @@ export interface OnboardingApi {
|
|
|
100
100
|
attachPublicationPlan(sessionNo: string, input: OnboardingPublicationPlanActionRequest, idempotencyKey: string): Promise<OnboardingPublicationPlanActionResponse>;
|
|
101
101
|
resolvePublicationPlan(sessionNo: string, clientRequestId: string): Promise<OnboardingPublicationPlanResolutionResponse>;
|
|
102
102
|
confirmJenkinsBinding(sessionNo: string, input: OnboardingJenkinsBindingActionRequest, idempotencyKey: string): Promise<OnboardingJenkinsBindingActionResponse>;
|
|
103
|
-
configureObserverScope(sessionNo: string, input: OnboardingObserverScopeActionRequest, idempotencyKey: string): Promise<OnboardingObserverScopeActionResponse>;
|
|
104
|
-
ensureWriterBootstrap(sessionNo: string, idempotencyKey: string): Promise<OnboardingWriterBootstrapActionResponse>;
|
|
105
103
|
decideFirstBuild(sessionNo: string, input: OnboardingFirstBuildActionRequest, idempotencyKey: string): Promise<OnboardingFirstBuildActionResponse>;
|
|
106
104
|
getEvents(sessionNo: string, afterSequence?: number): Promise<{
|
|
107
105
|
items: OnboardingEvent[];
|
|
@@ -234,6 +232,8 @@ export declare class OnboardingClient implements OnboardingApi {
|
|
|
234
232
|
baseUrl: string;
|
|
235
233
|
organizationKey: string;
|
|
236
234
|
authType: "CODEUP_OPENAPI" | "GITHUB_APP" | "GITHUB_PAT";
|
|
235
|
+
jenkinsScmCredentialId?: string | null | undefined;
|
|
236
|
+
jenkinsScmProtocol?: "HTTPS" | "SSH" | undefined;
|
|
237
237
|
aliyunAccountId?: number | null | undefined;
|
|
238
238
|
aliyunAssumeRoleId?: number | null | undefined;
|
|
239
239
|
capabilities: Record<string, boolean>;
|
|
@@ -282,8 +282,6 @@ export declare class OnboardingClient implements OnboardingApi {
|
|
|
282
282
|
attachPublicationPlan(sessionNo: string, input: OnboardingPublicationPlanActionRequest, idempotencyKey: string): Promise<OnboardingPublicationPlanActionResponse>;
|
|
283
283
|
resolvePublicationPlan(sessionNo: string, clientRequestId: string): Promise<OnboardingPublicationPlanResolutionResponse>;
|
|
284
284
|
confirmJenkinsBinding(sessionNo: string, input: OnboardingJenkinsBindingActionRequest, idempotencyKey: string): Promise<OnboardingJenkinsBindingActionResponse>;
|
|
285
|
-
configureObserverScope(sessionNo: string, input: OnboardingObserverScopeActionRequest, idempotencyKey: string): Promise<OnboardingObserverScopeActionResponse>;
|
|
286
|
-
ensureWriterBootstrap(sessionNo: string, idempotencyKey: string): Promise<OnboardingWriterBootstrapActionResponse>;
|
|
287
285
|
decideFirstBuild(sessionNo: string, input: OnboardingFirstBuildActionRequest, idempotencyKey: string): Promise<OnboardingFirstBuildActionResponse>;
|
|
288
286
|
getEvents(sessionNo: string, afterSequence?: number): Promise<{
|
|
289
287
|
items: {
|
|
@@ -342,18 +340,6 @@ export declare class OnboardingClient implements OnboardingApi {
|
|
|
342
340
|
gitopsBaseRevision?: string | undefined;
|
|
343
341
|
gitopsResultRevision?: string | undefined;
|
|
344
342
|
gitopsReviewUrl?: string | undefined;
|
|
345
|
-
observerScopeNo?: string | undefined;
|
|
346
|
-
observerScopeStatus?: string | undefined;
|
|
347
|
-
observerEvidenceFreshness?: string | undefined;
|
|
348
|
-
observerLastDriftState?: string | undefined;
|
|
349
|
-
observerLastSequence?: number | undefined;
|
|
350
|
-
observerLastObservedAt?: string | undefined;
|
|
351
|
-
platformWriterBootstrapRunNo?: string | undefined;
|
|
352
|
-
platformWriterBootstrapPlanHash?: string | undefined;
|
|
353
|
-
platformWriterBootstrapState?: string | undefined;
|
|
354
|
-
platformWriterBootstrapBaseRevision?: string | undefined;
|
|
355
|
-
platformWriterBootstrapResultRevision?: string | undefined;
|
|
356
|
-
platformWriterBootstrapTaskVersion?: number | undefined;
|
|
357
343
|
firstBuildDecision?: string | undefined;
|
|
358
344
|
firstBuildRequestId?: string | undefined;
|
|
359
345
|
firstBuildState?: 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, OnboardingFirstBuildActionResponseSchema, OnboardingJenkinsBindingActionResponseSchema, OnboardingObjectListSchema,
|
|
4
|
+
import { OnboardingApiErrorSchema, OnboardingAssessmentSchema, OnboardingCapabilitiesSchema, OnboardingEventListSchema, OnboardingFirstBuildActionResponseSchema, OnboardingJenkinsBindingActionResponseSchema, OnboardingObjectListSchema, OnboardingPreflightSchema, OnboardingPublicationPlanActionResponseSchema, OnboardingPublicationPlanResolutionResponseSchema, 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";
|
|
@@ -230,19 +230,6 @@ export class OnboardingClient {
|
|
|
230
230
|
body: JSON.stringify(input)
|
|
231
231
|
});
|
|
232
232
|
}
|
|
233
|
-
configureObserverScope(sessionNo, input, idempotencyKey) {
|
|
234
|
-
return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/observer-scope`, OnboardingObserverScopeActionResponseSchema, {
|
|
235
|
-
method: "PUT",
|
|
236
|
-
headers: { "Idempotency-Key": idempotencyKey },
|
|
237
|
-
body: JSON.stringify(input)
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
ensureWriterBootstrap(sessionNo, idempotencyKey) {
|
|
241
|
-
return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/writer-bootstrap`, OnboardingWriterBootstrapActionResponseSchema, {
|
|
242
|
-
method: "POST",
|
|
243
|
-
headers: { "Idempotency-Key": idempotencyKey }
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
233
|
decideFirstBuild(sessionNo, input, idempotencyKey) {
|
|
247
234
|
return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/first-build-decision`, OnboardingFirstBuildActionResponseSchema, {
|
|
248
235
|
method: "POST",
|
|
@@ -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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"}
|
|
@@ -80,8 +80,6 @@ export declare function watchOnboardingEvents(client: Pick<OnboardingApi, "getEv
|
|
|
80
80
|
export declare function inspectOnboardingSession(client: Pick<OnboardingApi, "getEvents" | "getSession">, sessionNo: string, afterSequence?: number): Promise<OnboardingInspection>;
|
|
81
81
|
export declare function hasOnboardingApplyRecoveryEvidence(event: OnboardingEvent, planHash: string): boolean;
|
|
82
82
|
export declare function hasJenkinsBindingRecoveryEvidence(_event: OnboardingEvent, _bindingId: number): boolean;
|
|
83
|
-
export declare function hasObserverScopeRecoveryEvidence(_event: OnboardingEvent): boolean;
|
|
84
|
-
export declare function hasWriterBootstrapRecoveryEvidence(_event: OnboardingEvent): boolean;
|
|
85
83
|
export declare function hasFirstBuildRecoveryEvidence(_event: OnboardingEvent, _input: OnboardingFirstBuildActionRequest): boolean;
|
|
86
84
|
export declare function executeOnboardingSessionMutation<T>(client: Pick<OnboardingApi, "getEvents" | "getSession">, sessionNo: string, mutate: () => Promise<T>, hasNewEvidence: (event: OnboardingEvent, baseline: OnboardingInspection, recovered: OnboardingInspection) => boolean): Promise<OnboardingSessionMutationResult<T>>;
|
|
87
85
|
export declare function executePublicationAttachmentWithRecovery(client: Pick<OnboardingApi, "attachPublicationPlan" | "resolvePublicationPlan">, sessionNo: string, clientRequestId: string, mutate: () => Promise<OnboardingPublicationPlanActionResponse>, options?: PublicationAttachmentRecoveryOptions): Promise<PublicationAttachmentMutationResult>;
|
|
@@ -7,7 +7,7 @@ import { SourceRepositoryClient } from "../repositories/client.js";
|
|
|
7
7
|
import { scanProjectPublication } from "../publications/scanner.js";
|
|
8
8
|
import { OnboardingClient } from "./client.js";
|
|
9
9
|
import { OnboardingError, sanitizeOnboardingOutput } from "./errors.js";
|
|
10
|
-
import { OnboardingModeSchema, OnboardingEventOutputSchema, OnboardingFirstBuildActionRequestSchema, OnboardingJenkinsBindingActionRequestSchema,
|
|
10
|
+
import { OnboardingModeSchema, OnboardingEventOutputSchema, OnboardingFirstBuildActionRequestSchema, OnboardingJenkinsBindingActionRequestSchema, OnboardingPublicationPlanActionRequestSchema, OnboardingSessionStateSchema, OnboardingSpecSchema, ScmProviderSchema } from "./schemas.js";
|
|
11
11
|
import { readScmAdminConnectionInput, readScmCredentialBundle } from "./scm-credentials.js";
|
|
12
12
|
import { runOnboardingTui } from "./tui.js";
|
|
13
13
|
const TERMINAL_STATES = new Set(["COMPLETED", "FAILED", "CANCELLED"]);
|
|
@@ -425,17 +425,6 @@ export function hasJenkinsBindingRecoveryEvidence(_event, _bindingId) {
|
|
|
425
425
|
// optimistic-lock version; unknown confirmations therefore fail closed.
|
|
426
426
|
return false;
|
|
427
427
|
}
|
|
428
|
-
export function hasObserverScopeRecoveryEvidence(_event) {
|
|
429
|
-
// The reviewed event projection currently lacks serviceBindingId and exact
|
|
430
|
-
// observer coordinates, so no event can prove this request's full intent.
|
|
431
|
-
return false;
|
|
432
|
-
}
|
|
433
|
-
export function hasWriterBootstrapRecoveryEvidence(_event) {
|
|
434
|
-
// The action idempotency key is deliberately not projected into session events. A matching
|
|
435
|
-
// bootstrap run may predate this POST, so an unknown response must be resolved by inspect and
|
|
436
|
-
// an exact replay of the same action key rather than inferred from aggregate task output.
|
|
437
|
-
return false;
|
|
438
|
-
}
|
|
439
428
|
export function hasFirstBuildRecoveryEvidence(_event, _input) {
|
|
440
429
|
// Aggregated task output can repeat an older decision on an unrelated new
|
|
441
430
|
// event and does not carry the action idempotency key or full build intent.
|
|
@@ -682,7 +671,7 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
682
671
|
live probe 与连接变更由服务端校验平台管理员权限和乐观锁 version。
|
|
683
672
|
provider credential 只能来自隐藏终端提示、权限受限文件或重定向 stdin;禁止通过 argv、环境变量或普通 JSON 输出传递。
|
|
684
673
|
Codeup 云 AK/Role 只能引用已有 aliyunAccountId/aliyunAssumeRoleId,Numa 不读取或保存云 AK。
|
|
685
|
-
Codeup accessToken 只用于 OpenAPI
|
|
674
|
+
Codeup accessToken 只用于 OpenAPI;Jenkins/含 100755 文件的 Publication 另需 cloneUsername 与 HTTPS 密码或 SSH 私钥。
|
|
686
675
|
三者只从隐藏终端提示、chmod 600 文件或重定向 stdin 写入;未提供时使用服务端 Aliyun identity,不提交空 credential bundle。
|
|
687
676
|
`);
|
|
688
677
|
addExamples(scm.command("list")
|
|
@@ -861,7 +850,7 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
861
850
|
await output(command, { ok: true, connection }, `${connection.code}\t${connection.status}\tversion:${connection.version}`);
|
|
862
851
|
}), ["numa app scm update github-main --input github.json --revision 4 --yes --json"]);
|
|
863
852
|
addExamples(scm.command("rotate <code>")
|
|
864
|
-
.description("平台管理员轮换 GitHub 凭据或 Codeup OpenAPI/HTTPS clone 凭据;不会回显 credential")
|
|
853
|
+
.description("平台管理员轮换 GitHub 凭据或 Codeup OpenAPI/HTTPS/SSH clone 凭据;不会回显 credential")
|
|
865
854
|
.requiredOption("--revision <number>", "当前乐观锁 version")
|
|
866
855
|
.option("--credential-file <file>", "仅 owner 可读(chmod 600)的 provider credential JSON")
|
|
867
856
|
.option("--credential-stdin", "从重定向 stdin 读取 provider credential JSON")
|
|
@@ -884,7 +873,8 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
884
873
|
await output(command, { ok: true, connection }, `${connection.code}\tcredential:configured\tversion:${connection.version}`);
|
|
885
874
|
}), [
|
|
886
875
|
"numa app scm rotate github-main --revision 4 --credential-file github-app.private.json --yes --json",
|
|
887
|
-
"numa app scm rotate codeup-main --revision 2 --credential-prompt --yes --json"
|
|
876
|
+
"numa app scm rotate codeup-main --revision 2 --credential-prompt --yes --json",
|
|
877
|
+
"numa app scm rotate codeup-main --revision 2 --credential-file codeup-ssh.json --yes --json"
|
|
888
878
|
]);
|
|
889
879
|
addExamples(scm.command("disable <code>")
|
|
890
880
|
.description("平台管理员软禁用连接;服务端会阻止仍被非终态会话使用的连接")
|
|
@@ -1049,67 +1039,6 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
|
|
|
1049
1039
|
}), [
|
|
1050
1040
|
"numa app jenkins-binding confirm <session-no> --binding-id 42 --expected-version 0 --idempotency-key confirm-code-index-binding --yes --json"
|
|
1051
1041
|
], ["确认不会触发 scan 或 build;Job Control Plane 已独立验证配置和 inventory generation。"]);
|
|
1052
|
-
const observerScopeAction = app.command("observer-scope")
|
|
1053
|
-
.description("把服务绑定关联到 observer 可验证的精确 Flux/Kubernetes 坐标");
|
|
1054
|
-
addExamples(observerScopeAction.command("configure <session-no>")
|
|
1055
|
-
.requiredOption("--service-binding-id <id>", "会话锁定的 GitOps service binding ID")
|
|
1056
|
-
.requiredOption("--kustomization-namespace <name>", "Flux Kustomization namespace")
|
|
1057
|
-
.requiredOption("--kustomization-name <name>", "Flux Kustomization name")
|
|
1058
|
-
.requiredOption("--helm-release-namespace <name>", "HelmRelease namespace")
|
|
1059
|
-
.requiredOption("--helm-release-name <name>", "HelmRelease name")
|
|
1060
|
-
.requiredOption("--workload-namespace <name>", "最终 workload namespace")
|
|
1061
|
-
.requiredOption("--workload-kind <kind>", "最终 workload kind")
|
|
1062
|
-
.requiredOption("--workload-name <name>", "最终 workload name")
|
|
1063
|
-
.requiredOption("--expected-version <number>", "scope 当前版本;首次创建使用服务端事件给出的版本")
|
|
1064
|
-
.requiredOption("--idempotency-key <key>", "稳定 key;写响应未知时仅用于取证,不自动重发")
|
|
1065
|
-
.option("--yes", "确认精确运行态坐标")
|
|
1066
|
-
.action(async (sessionNo, options, command) => {
|
|
1067
|
-
requireConfirmation(options.yes, "Configuring an observer scope");
|
|
1068
|
-
const key = idempotencyKey(options.idempotencyKey, "observer scope configuration");
|
|
1069
|
-
const input = parsedActionInput(OnboardingObserverScopeActionRequestSchema, {
|
|
1070
|
-
serviceBindingId: positiveInteger(options.serviceBindingId, "service-binding-id"),
|
|
1071
|
-
kustomizationNamespace: stableActionText(options.kustomizationNamespace, "kustomization-namespace"),
|
|
1072
|
-
kustomizationName: stableActionText(options.kustomizationName, "kustomization-name"),
|
|
1073
|
-
helmReleaseNamespace: stableActionText(options.helmReleaseNamespace, "helm-release-namespace"),
|
|
1074
|
-
helmReleaseName: stableActionText(options.helmReleaseName, "helm-release-name"),
|
|
1075
|
-
workloadNamespace: stableActionText(options.workloadNamespace, "workload-namespace"),
|
|
1076
|
-
workloadKind: stableActionText(options.workloadKind, "workload-kind", 160),
|
|
1077
|
-
workloadName: stableActionText(options.workloadName, "workload-name"),
|
|
1078
|
-
expectedVersion: nonNegativeInteger(options.expectedVersion, "expected-version", 0)
|
|
1079
|
-
});
|
|
1080
|
-
const onboarding = client();
|
|
1081
|
-
const attempt = await executeOnboardingSessionMutation(onboarding, sessionNo, () => onboarding.configureObserverScope(sessionNo, input, key), hasObserverScopeRecoveryEvidence);
|
|
1082
|
-
if (!attempt.result) {
|
|
1083
|
-
await output(command, recoveredMutationPayload(attempt.inspection, key), `${String(attempt.inspection.execution.eventOutput.observerScopeNo)}\trecovered-from-status\t${attempt.inspection.session.state}`);
|
|
1084
|
-
return;
|
|
1085
|
-
}
|
|
1086
|
-
const result = attempt.result;
|
|
1087
|
-
await output(command, { ok: true, ...result, idempotencyKey: key }, `${result.scope.scopeNo}\t${result.scope.status}\t${result.scope.evidenceFreshness}\t${result.scope.lastDriftState ?? "-"}`);
|
|
1088
|
-
}), [
|
|
1089
|
-
"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"
|
|
1090
|
-
], ["服务端强制 serviceBindingId 属于该会话;CLI 不允许任意 cluster/path/YAML。"]);
|
|
1091
|
-
const writerBootstrapAction = app.command("writer-bootstrap")
|
|
1092
|
-
.description("创建会话锁定的 GitOps v2 writer bootstrap,不接受任意文件或路径");
|
|
1093
|
-
addExamples(writerBootstrapAction.command("ensure <session-no>")
|
|
1094
|
-
.requiredOption("--idempotency-key <key>", "稳定 key;结果未知时只检查同一会话,不自动重放")
|
|
1095
|
-
.option("--yes", "确认按服务端锁定拓扑写入受管 Flux overlay")
|
|
1096
|
-
.action(async (sessionNo, options, command) => {
|
|
1097
|
-
requireConfirmation(options.yes, "Creating the server-owned GitOps v2 writer bootstrap");
|
|
1098
|
-
const key = idempotencyKey(options.idempotencyKey, "writer bootstrap");
|
|
1099
|
-
const onboarding = client();
|
|
1100
|
-
const attempt = await executeOnboardingSessionMutation(onboarding, sessionNo, () => onboarding.ensureWriterBootstrap(sessionNo, key), hasWriterBootstrapRecoveryEvidence);
|
|
1101
|
-
if (!attempt.result) {
|
|
1102
|
-
await output(command, recoveredMutationPayload(attempt.inspection, key), `${String(attempt.inspection.execution.eventOutput.platformWriterBootstrapRunNo)}\trecovered-from-status\t${attempt.inspection.session.state}`);
|
|
1103
|
-
return;
|
|
1104
|
-
}
|
|
1105
|
-
const result = attempt.result;
|
|
1106
|
-
await output(command, { ok: true, ...result, idempotencyKey: key }, `${result.runNo}\t${result.state}\tbinding:${result.bindingId}@${result.bindingVersion}\treplayed:${result.replayed}`);
|
|
1107
|
-
}), [
|
|
1108
|
-
"numa app writer-bootstrap ensure <session-no> --idempotency-key bootstrap-active-code-inbox-prd --yes --json"
|
|
1109
|
-
], [
|
|
1110
|
-
"服务端从原 onboarding session 锁定 repository、binding、target 与固定三文件契约;CLI 不接受 YAML、Git path、branch 或 secret。",
|
|
1111
|
-
"该动作只写 GitOps 仓库,不调用 Keycloak、Jenkins build 或集群 API;UNKNOWN 只能用同一 session/action key 恢复。"
|
|
1112
|
-
]);
|
|
1113
1042
|
const firstBuildAction = app.command("first-build")
|
|
1114
1043
|
.description("在全部结构与运行证据就绪后,独立决定首次 Jenkins build");
|
|
1115
1044
|
addExamples(firstBuildAction.command("decide <session-no>")
|