From af3b6ca42e0f7c5cac5cf950b6cfecc86fbd4129 Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Wed, 15 Jul 2026 17:23:11 +0200 Subject: [PATCH 01/13] =?UTF-8?q?fix:=20=E5=AF=B9=E9=BD=90=20Artificer=20r?= =?UTF-8?q?elease=20=E5=87=AD=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/aipods/artificer.yaml | 31 +++++---- src/selftest/cases/76-aipod-spec.ts | 66 +++++++++---------- .../cases/80-artificer-model-selection.ts | 24 +++---- 3 files changed, 62 insertions(+), 59 deletions(-) diff --git a/config/aipods/artificer.yaml b/config/aipods/artificer.yaml index 62ee2c7..8962830 100644 --- a/config/aipods/artificer.yaml +++ b/config/aipods/artificer.yaml @@ -3,15 +3,15 @@ kind: AipodSpec metadata: name: Artificer displayName: Artificer - description: UniDesk distributed development agent assembled from AgentRun v0.2 YAML. + description: UniDesk distributed development agent assembled for the AgentRun release lane. labels: - agentrun.pikastech.local/lane: v0.2 + agentrun.pikastech.local/lane: release agentrun.pikastech.local/purpose: distributed-development spec: tenantId: unidesk projectId: pikasTech/unidesk queue: commander - lane: v0.2 + lane: release priority: 50 providerId: NC01 upstreams: @@ -19,8 +19,8 @@ spec: backendProfile: gpt-pika providerCredential: secretRef: - namespace: agentrun-v02 - name: agentrun-v02-provider-gpt-pika + namespace: agentrun-release + name: agentrun-release-provider-gpt-pika keys: - auth.json - config.toml @@ -28,8 +28,8 @@ spec: backendProfile: grok providerCredential: secretRef: - namespace: agentrun-v02 - name: agentrun-v02-provider-grok + namespace: agentrun-release + name: agentrun-release-provider-grok keys: - auth.json - config.toml @@ -66,7 +66,8 @@ spec: - tool: github purpose: github-pr secretRef: - name: agentrun-v01-tool-github-pr + namespace: agentrun-release + name: agentrun-release-tool-github-pr keys: - GH_TOKEN projection: @@ -76,8 +77,8 @@ spec: - tool: github purpose: repository-override-pikainc-pikaoa secretRef: - namespace: agentrun-v02 - name: agentrun-v02-tool-github-repository-overrides + namespace: agentrun-release + name: agentrun-release-tool-github-repository-overrides keys: - PIKAINC_PIKAOA_GH_TOKEN projection: @@ -87,7 +88,8 @@ spec: - tool: unidesk-ssh purpose: ssh-passthrough secretRef: - name: agentrun-v01-tool-unidesk-ssh + namespace: agentrun-release + name: agentrun-release-tool-unidesk-ssh keys: - UNIDESK_SSH_CLIENT_TOKEN projection: @@ -97,7 +99,8 @@ spec: - tool: github purpose: github-ssh secretRef: - name: agentrun-v01-tool-github-ssh + namespace: agentrun-release + name: agentrun-release-tool-github-ssh keys: - id_ed25519 - known_hosts @@ -114,7 +117,7 @@ spec: targetPath: .agents/skills - name: agentrun-runner-tools repoUrl: git@github.com:pikasTech/agentrun.git - ref: v0.2 + ref: release subpath: tools targetPath: tools - name: dad-dev-skill @@ -170,4 +173,4 @@ spec: source: config/aipods/artificer.yaml dispatchDefaults: runnerJob: - namespace: agentrun-v02 + namespace: agentrun-release diff --git a/src/selftest/cases/76-aipod-spec.ts b/src/selftest/cases/76-aipod-spec.ts index 51ae72f..3b695c9 100644 --- a/src/selftest/cases/76-aipod-spec.ts +++ b/src/selftest/cases/76-aipod-spec.ts @@ -31,13 +31,13 @@ const selfTest: SelfTestCase = async (context) => { : { stdout: "{}", stderr: "", exitCode: 0 }, }, runnerJobDefaults: { - namespace: "agentrun-v02", - managerUrl: "http://agentrun-mgr.agentrun-v02.svc.cluster.local:8080", + namespace: "agentrun-release", + managerUrl: "http://agentrun-mgr.agentrun-release.svc.cluster.local:8080", image: "agentrun-selftest:latest", - serviceAccountName: "agentrun-v02-runner", - jobNamePrefix: "agentrun-v02-runner", - runnerApiKeySecretRef: { name: "agentrun-v02-api-key", key: "HWLAB_API_KEY" }, - lane: "v0.2", + serviceAccountName: "agentrun-release-runner", + jobNamePrefix: "agentrun-release-runner", + runnerApiKeySecretRef: { name: "agentrun-release-api-key", key: "HWLAB_API_KEY" }, + lane: "release", }, }); try { @@ -55,7 +55,7 @@ const selfTest: SelfTestCase = async (context) => { const shownItem = shown.item as JsonRecord; assert.equal(shownItem.backendProfile, "gpt-pika"); assert.equal(shownItem.providerId, "NC01"); - assert.equal(shownItem.lane, "v0.2"); + assert.equal(shownItem.lane, "release"); assert.equal(((shownItem.model as JsonRecord).model), "gpt-5.6-sol"); assert.equal(((shownItem.model as JsonRecord).reasoningEffort), "medium"); assert.deepEqual(shownItem.gitIdentity, { @@ -70,11 +70,11 @@ const selfTest: SelfTestCase = async (context) => { const shownProviderCredentials = shownItem.providerCredentials as JsonRecord; assert.equal(shownProviderCredentials.count, 2); const shownProviderCredential = (shownProviderCredentials.items as JsonRecord[]).find((item) => item.profile === "gpt-pika"); - assert.equal(shownProviderCredential?.name, "agentrun-v02-provider-gpt-pika"); - assert.equal(shownProviderCredential?.namespace, "agentrun-v02"); + assert.equal(shownProviderCredential?.name, "agentrun-release-provider-gpt-pika"); + assert.equal(shownProviderCredential?.namespace, "agentrun-release"); const shownGrokCredential = (shownProviderCredentials.items as JsonRecord[]).find((item) => item.profile === "grok"); - assert.equal(shownGrokCredential?.name, "agentrun-v02-provider-grok"); - assert.equal(shownGrokCredential?.namespace, "agentrun-v02"); + assert.equal(shownGrokCredential?.name, "agentrun-release-provider-grok"); + assert.equal(shownGrokCredential?.namespace, "agentrun-release"); const shownRouting = shownItem.modelRouting as JsonRecord; assert.deepEqual(shownRouting.default, { upstream: "pika", model: "gpt-5.6-sol", reasoningEffort: "medium", valuesPrinted: false }); assert.equal((shownRouting.exact as JsonRecord[]).some((item) => item.model === "grok" && item.upstream === "grok" && item.reasoningEffort === "xhigh"), true); @@ -85,8 +85,8 @@ const selfTest: SelfTestCase = async (context) => { assert.deepEqual(shownRepositoryOverride, { tool: "github", purpose: "repository-override-pikainc-pikaoa", - name: "agentrun-v02-tool-github-repository-overrides", - namespace: "agentrun-v02", + name: "agentrun-release-tool-github-repository-overrides", + namespace: "agentrun-release", keys: ["PIKAINC_PIKAOA_GH_TOKEN"], projection: { kind: "env", envName: "UNIDESK_GH_TOKEN_PIKAINC_PIKAOA", secretKey: "PIKAINC_PIKAOA_GH_TOKEN" }, valuesPrinted: false, @@ -103,7 +103,7 @@ const selfTest: SelfTestCase = async (context) => { const task = rendered.queueTask as JsonRecord; assert.equal(task.backendProfile, "gpt-pika"); assert.equal(task.providerId, "NC01"); - assert.equal(task.lane, "v0.2"); + assert.equal(task.lane, "release"); assert.equal(task.idempotencyKey, "selftest-aipod-artificer"); const workspaceRef = task.workspaceRef as JsonRecord; assert.deepEqual(workspaceRef, { kind: "opaque", path: "." }); @@ -116,7 +116,7 @@ const selfTest: SelfTestCase = async (context) => { const runnerDefaults = ((rendered.dispatchDefaults as JsonRecord).runnerJob as JsonRecord); assert.equal(((runnerDefaults.imageRef as JsonRecord).kind), "env-image-dockerfile"); assert.equal(((runnerDefaults.imageRef as JsonRecord).dockerfilePath), "deploy/container/Containerfile"); - assert.equal(runnerDefaults.namespace, "agentrun-v02"); + assert.equal(runnerDefaults.namespace, "agentrun-release"); const taskPayload = task.payload as JsonRecord; assert.equal(taskPayload.model, "gpt-5.6-sol"); assert.equal(taskPayload.reasoningEffort, "medium"); @@ -139,22 +139,22 @@ const selfTest: SelfTestCase = async (context) => { const secretScope = policy.secretScope as JsonRecord; const providerCredentials = secretScope.providerCredentials as JsonRecord[]; const providerCredential = providerCredentials.find((item) => item.profile === "gpt-pika") as JsonRecord | undefined; - assert.equal(((providerCredential?.secretRef as JsonRecord).name), "agentrun-v02-provider-gpt-pika"); - assert.equal(((providerCredential?.secretRef as JsonRecord).namespace), "agentrun-v02"); + assert.equal(((providerCredential?.secretRef as JsonRecord).name), "agentrun-release-provider-gpt-pika"); + assert.equal(((providerCredential?.secretRef as JsonRecord).namespace), "agentrun-release"); assert.deepEqual(((providerCredential?.secretRef as JsonRecord).keys), ["auth.json", "config.toml"]); assert.equal(runnerDefaults.namespace, (providerCredential?.secretRef as JsonRecord).namespace, "runner Pod and gpt-pika Secret must share a namespace"); const disclosedProviderCredential = modelResolution.providerCredential as JsonRecord; assert.equal(disclosedProviderCredential.profile, "gpt-pika"); - assert.deepEqual(disclosedProviderCredential.secretRef, { name: "agentrun-v02-provider-gpt-pika", namespace: "agentrun-v02", keys: ["auth.json", "config.toml"], valuesPrinted: false }); + assert.deepEqual(disclosedProviderCredential.secretRef, { name: "agentrun-release-provider-gpt-pika", namespace: "agentrun-release", keys: ["auth.json", "config.toml"], valuesPrinted: false }); const toolCredentials = secretScope.toolCredentials as JsonRecord[]; - assert.equal(toolCredentials.some((item) => item.tool === "github" && ((item.projection as JsonRecord).kind) === "env" && ((item.projection as JsonRecord).envName) === "GH_TOKEN" && ((item.secretRef as JsonRecord).name) === "agentrun-v01-tool-github-pr"), true); + assert.equal(toolCredentials.some((item) => item.tool === "github" && ((item.projection as JsonRecord).kind) === "env" && ((item.projection as JsonRecord).envName) === "GH_TOKEN" && ((item.secretRef as JsonRecord).name) === "agentrun-release-tool-github-pr"), true); const repositoryOverride = toolCredentials.find((item) => item.tool === "github" && item.purpose === "repository-override-pikainc-pikaoa") as JsonRecord | undefined; assert.deepEqual(repositoryOverride, { tool: "github", purpose: "repository-override-pikainc-pikaoa", secretRef: { - namespace: "agentrun-v02", - name: "agentrun-v02-tool-github-repository-overrides", + namespace: "agentrun-release", + name: "agentrun-release-tool-github-repository-overrides", keys: ["PIKAINC_PIKAOA_GH_TOKEN"], }, projection: { kind: "env", envName: "UNIDESK_GH_TOKEN_PIKAINC_PIKAOA", secretKey: "PIKAINC_PIKAOA_GH_TOKEN" }, @@ -169,7 +169,7 @@ const selfTest: SelfTestCase = async (context) => { const bundles = bundle.bundles as JsonRecord[]; const toolBundle = bundles.find((item) => item.name === "agentrun-runner-tools") as JsonRecord | undefined; assert.equal(toolBundle?.repoUrl, "git@github.com:pikasTech/agentrun.git"); - assert.equal(toolBundle?.ref, "v0.2"); + assert.equal(toolBundle?.ref, "release"); assert.equal(toolBundle?.subpath, "tools"); assert.equal(toolBundle?.targetPath, "tools"); assert.equal((bundle.requiredSkills as JsonRecord[]).some((item) => item.name === "dad-dev"), true); @@ -191,9 +191,9 @@ const selfTest: SelfTestCase = async (context) => { run: runnerRun, commandId: runnerCommand.id, managerUrl: server.baseUrl, - runnerApiKeySecretRef: { name: "agentrun-v02-api-key", key: "HWLAB_API_KEY" }, + runnerApiKeySecretRef: { name: "agentrun-release-api-key", key: "HWLAB_API_KEY" }, image: "agentrun-selftest:latest", - namespace: "agentrun-v02", + namespace: "agentrun-release", attemptId: "attempt_artificer_private_repository_override", sourceCommit: "self-test", }); @@ -201,11 +201,11 @@ const selfTest: SelfTestCase = async (context) => { assert.ok(overrideEnv, "Artificer runner Job must project the repository override credential"); assert.equal(overrideEnv.value, undefined); assert.deepEqual(((overrideEnv.valueFrom as JsonRecord).secretKeyRef), { - name: "agentrun-v02-tool-github-repository-overrides", + name: "agentrun-release-tool-github-repository-overrides", key: "PIKAINC_PIKAOA_GH_TOKEN", }); const defaultGithubEnv = runnerEnvEntry(runnerJob.manifest as JsonRecord, "GH_TOKEN"); - assert.deepEqual(((defaultGithubEnv?.valueFrom as JsonRecord).secretKeyRef), { name: "agentrun-v01-tool-github-pr", key: "GH_TOKEN" }); + assert.deepEqual(((defaultGithubEnv?.valueFrom as JsonRecord).secretKeyRef), { name: "agentrun-release-tool-github-pr", key: "GH_TOKEN" }); const runnerToolCredentialSummary = runnerJob.toolCredentials as JsonRecord; assert.equal(runnerToolCredentialSummary.count, 4); assert.equal(runnerToolCredentialSummary.valuesPrinted, false); @@ -239,7 +239,7 @@ const selfTest: SelfTestCase = async (context) => { assert.equal(grokResolution.backendProfileSource, "model-routing-exact"); assert.equal(grokCredentials.length, 1); assert.equal(grokCredentials[0]?.profile, "grok"); - assert.equal(((grokCredentials[0]?.secretRef as JsonRecord).name), "agentrun-v02-provider-grok"); + assert.equal(((grokCredentials[0]?.secretRef as JsonRecord).name), "agentrun-release-provider-grok"); assert.equal(grokCredentials.some((item) => item.profile === "gpt-pika"), false); assertNoSecretLeak(grokOverride); @@ -268,8 +268,8 @@ const selfTest: SelfTestCase = async (context) => { assert.throws(() => validateAipodSpec(missingCredentialDocument, "selftest-missing-grok-credential"), /providerCredential/u); const missingKeyDocument = structuredClone(originalSpecDocument); ((((missingKeyDocument.spec as JsonRecord).upstreams as JsonRecord).grok as JsonRecord).providerCredential as JsonRecord).secretRef = { - namespace: "agentrun-v02", - name: "agentrun-v02-provider-grok", + namespace: "agentrun-release", + name: "agentrun-release-provider-grok", keys: ["auth.json"], }; assert.throws(() => validateAipodSpec(missingKeyDocument, "selftest-missing-grok-key"), /missing required keys/u); @@ -290,7 +290,7 @@ const selfTest: SelfTestCase = async (context) => { legacySpec.model = { model: "gpt-5.6-sol", reasoningEffort: "medium" }; (((legacySpec.executionPolicy as JsonRecord).secretScope as JsonRecord).providerCredentials) = [{ profile: "gpt-pika", - secretRef: { namespace: "agentrun-v02", name: "agentrun-v02-provider-gpt-pika", keys: ["auth.json", "config.toml"] }, + secretRef: { namespace: "agentrun-release", name: "agentrun-release-provider-gpt-pika", keys: ["auth.json", "config.toml"] }, }]; assert.equal(validateAipodSpec(legacySingleUpstreamDocument, "selftest-legacy-single-upstream").spec.backendProfile, "gpt-pika"); const payloadDefaultsBypassDocument = structuredClone(originalSpecDocument); @@ -341,14 +341,14 @@ const selfTest: SelfTestCase = async (context) => { assert.equal(sendPlanData.profile, "gpt-pika"); assert.equal((sendPlanData.modelResolution as JsonRecord).model, "gpt-5.4"); assert.equal((sendPlanData.modelResolution as JsonRecord).reasoningEffort, "medium"); - assert.equal((((sendPlanData.modelResolution as JsonRecord).providerCredential as JsonRecord).secretRef as JsonRecord).name, "agentrun-v02-provider-gpt-pika"); + assert.equal((((sendPlanData.modelResolution as JsonRecord).providerCredential as JsonRecord).secretRef as JsonRecord).name, "agentrun-release-provider-gpt-pika"); const grokSendPlan = await runCliJson(context, server.baseUrl, ["sessions", "send", "--aipod", "Artificer", "--prompt", "dry-run grok session", "--model", "grok", "--no-runner-job", "--dry-run"]); const grokSendPlanData = grokSendPlan.data as JsonRecord; assert.equal(grokSendPlanData.profile, "grok"); assert.equal((grokSendPlanData.modelResolution as JsonRecord).upstreamId, "grok"); assert.equal((grokSendPlanData.modelResolution as JsonRecord).matchedBy, "exact"); - assert.equal((((grokSendPlanData.modelResolution as JsonRecord).providerCredential as JsonRecord).secretRef as JsonRecord).name, "agentrun-v02-provider-grok"); + assert.equal((((grokSendPlanData.modelResolution as JsonRecord).providerCredential as JsonRecord).secretRef as JsonRecord).name, "agentrun-release-provider-grok"); const cancelledSessionId = "sess_artificer_cancelled_cli_selftest"; const cancelledConversationId = "conv_artificer_cancelled_cli_selftest"; @@ -415,7 +415,7 @@ const selfTest: SelfTestCase = async (context) => { assert.equal((storedTask.payload as JsonRecord).model, "gpt-5.6-sol"); assert.equal((storedTask.payload as JsonRecord).reasoningEffort, "medium"); assert.deepEqual((storedTask.payload as JsonRecord).modelConfig, taskPayload.modelConfig); - return { name: "aipod-spec", tests: ["aipod-spec-yaml-parser-runtime-compatible", "aipod-spec-artificer-image-ref-render", "aipod-spec-artificer-v02-runtime-authority", "aipod-spec-multi-upstream-secret-summary", "aipod-spec-legacy-single-upstream-compatible", "aipod-spec-model-defaults", "aipod-spec-model-reasoning-overrides", "aipod-spec-model-default-fallback", "aipod-spec-grok-exact-route", "aipod-spec-selected-provider-only", "aipod-spec-invalid-route-fail-closed", "aipod-spec-control-override-fail-closed", "aipod-spec-payload-control-bypass-fail-closed", "aipod-spec-durable-task-model-snapshot", "aipod-spec-primary-workspace-contract", "aipod-spec-artificer-github-url-render", "aipod-spec-artificer-github-ssh-required-keys", "aipod-spec-artificer-private-repository-override", "aipod-spec-artificer-private-repository-override-runner-projection", "aipod-spec-git-mirror-url", "git-fetch-stderr-classification", "resource-bundle-source-authority-validation", "resource-bundle-target-conflict-validation", "queue-submit-aipod-dry-run", "session-send-aipod-model-dry-run", "session-send-aipod-grok-dry-run", "session-send-aipod-cancelled-durable-identity", "session-send-aipod-boundary-conflict-fail-closed", "aipod-cli-help"] }; + return { name: "aipod-spec", tests: ["aipod-spec-yaml-parser-runtime-compatible", "aipod-spec-artificer-image-ref-render", "aipod-spec-artificer-release-runtime-authority", "aipod-spec-multi-upstream-secret-summary", "aipod-spec-legacy-single-upstream-compatible", "aipod-spec-model-defaults", "aipod-spec-model-reasoning-overrides", "aipod-spec-model-default-fallback", "aipod-spec-grok-exact-route", "aipod-spec-selected-provider-only", "aipod-spec-invalid-route-fail-closed", "aipod-spec-control-override-fail-closed", "aipod-spec-payload-control-bypass-fail-closed", "aipod-spec-durable-task-model-snapshot", "aipod-spec-primary-workspace-contract", "aipod-spec-artificer-github-url-render", "aipod-spec-artificer-github-ssh-required-keys", "aipod-spec-artificer-private-repository-override", "aipod-spec-artificer-private-repository-override-runner-projection", "aipod-spec-git-mirror-url", "git-fetch-stderr-classification", "resource-bundle-source-authority-validation", "resource-bundle-target-conflict-validation", "queue-submit-aipod-dry-run", "session-send-aipod-model-dry-run", "session-send-aipod-grok-dry-run", "session-send-aipod-cancelled-durable-identity", "session-send-aipod-boundary-conflict-fail-closed", "aipod-cli-help"] }; } finally { await new Promise((resolve) => server.server.close(() => resolve())); } diff --git a/src/selftest/cases/80-artificer-model-selection.ts b/src/selftest/cases/80-artificer-model-selection.ts index 4c46041..ae017a9 100644 --- a/src/selftest/cases/80-artificer-model-selection.ts +++ b/src/selftest/cases/80-artificer-model-selection.ts @@ -17,13 +17,13 @@ const selfTest: SelfTestCase = async (context) => { store: new MemoryAgentRunStore(), aipodSpecDir: path.join(context.root, "config", "aipods"), runnerJobDefaults: { - namespace: "agentrun-v02", - managerUrl: "http://agentrun-mgr.agentrun-v02.svc.cluster.local:8080", + namespace: "agentrun-release", + managerUrl: "http://agentrun-mgr.agentrun-release.svc.cluster.local:8080", image: "agentrun-selftest:latest", - serviceAccountName: "agentrun-v02-runner", - jobNamePrefix: "agentrun-v02-runner", - runnerApiKeySecretRef: { name: "agentrun-v02-api-key", key: "HWLAB_API_KEY" }, - lane: "v0.2", + serviceAccountName: "agentrun-release-runner", + jobNamePrefix: "agentrun-release-runner", + runnerApiKeySecretRef: { name: "agentrun-release-api-key", key: "HWLAB_API_KEY" }, + lane: "release", }, }); try { @@ -176,14 +176,14 @@ console.log(JSON.stringify({ apiVersion: manifest.apiVersion, kind: manifest.kin taskId: task.id, input: { idempotencyKey: "artificer-model-retry", reason: "verify durable model payload" }, defaults: { - namespace: "agentrun-v02", - managerUrl: "http://agentrun-mgr.agentrun-v02.svc.cluster.local:8080", - runnerApiKeySecretRef: { name: "agentrun-v02-api-key", key: "HWLAB_API_KEY" }, + namespace: "agentrun-release", + managerUrl: "http://agentrun-mgr.agentrun-release.svc.cluster.local:8080", + runnerApiKeySecretRef: { name: "agentrun-release-api-key", key: "HWLAB_API_KEY" }, image: "127.0.0.1:5000/agentrun/agentrun-mgr@sha256:1111111111111111111111111111111111111111111111111111111111111111", sourceCommit: "self-test", - serviceAccountName: "agentrun-v02-runner", - jobNamePrefix: "agentrun-v02-runner", - lane: "v0.2", + serviceAccountName: "agentrun-release-runner", + jobNamePrefix: "agentrun-release-runner", + lane: "release", kubectlCommand: fakeKubectl, }, }); From 6e014f1fda17f475ec837b8dbf9c12205ccda93d Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Wed, 15 Jul 2026 17:44:16 +0200 Subject: [PATCH 02/13] =?UTF-8?q?chore:=20=E4=BD=BF=E7=94=A8=E4=B8=AD?= =?UTF-8?q?=E6=96=87=20Artificer=20=E9=BB=98=E8=AE=A4=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/aipods/artificer.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/aipods/artificer.yaml b/config/aipods/artificer.yaml index 8962830..48720b5 100644 --- a/config/aipods/artificer.yaml +++ b/config/aipods/artificer.yaml @@ -156,7 +156,7 @@ spec: submodules: false lfs: false payloadDefaults: - title: Artificer distributed development task + title: Artificer 分布式开发任务 prompt: |- 你就是当前已派发任务的 Artificer 执行者,必须按任务要求直接完成工作;仅在任务需要源码修改时,才在 primary workspace 完成修改、测试和 PR。 禁止通过 `agentrun create`、`agentrun apply`、`agentrun dispatch`、Code Queue 或任何等价入口创建或派发另一个 Artificer 来完成当前任务。 From 7ddb408e7b57fc56d07402f94fa497b1447df706 Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Wed, 15 Jul 2026 17:52:29 +0200 Subject: [PATCH 03/13] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=20AgentRun=20re?= =?UTF-8?q?lease=20PaC=20=E6=BA=90=E5=B7=A5=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tekton/agentrun-nc01-release.yaml | 328 +++++++++++++++++++++++++++++ 1 file changed, 328 insertions(+) create mode 100644 .tekton/agentrun-nc01-release.yaml diff --git a/.tekton/agentrun-nc01-release.yaml b/.tekton/agentrun-nc01-release.yaml new file mode 100644 index 0000000..bdad829 --- /dev/null +++ b/.tekton/agentrun-nc01-release.yaml @@ -0,0 +1,328 @@ +apiVersion: tekton.dev/v1 +kind: PipelineRun +metadata: + name: "agentrun-nc01-release-ci-{{ revision }}" + namespace: agentrun-ci + annotations: + pipelinesascode.tekton.dev/on-event: "[push]" + pipelinesascode.tekton.dev/on-target-branch: "[release]" + pipelinesascode.tekton.dev/on-cel-expression: "event == 'push' && target_branch == 'release' && node == 'NC01'" + pipelinesascode.tekton.dev/max-keep-runs: "8" + unidesk.ai/pac-admission-provenance: admission-pac-v2:agentrun-nc01-release + unidesk.ai/owning-config-ref: "config/agentrun.yaml#controlPlane.lanes.nc01-release" + unidesk.ai/effective-config-sha256: sha256:fd18c4cc55a03dda85f813a1ef8f5e4b397a22cb82bbca0d5a21da6e380de287 + unidesk.ai/source-artifact-renderer: agentrun-control-plane + unidesk.ai/source-artifact-mode: embedded-pipeline-spec + labels: + app.kubernetes.io/part-of: agentrun + agentrun.pikastech.local/lane: v0.2 + agentrun.pikastech.local/node: NC01 + agentrun.pikastech.local/source-commit: "{{ revision }}" + agentrun.pikastech.local/trigger: pipelines-as-code +spec: + pipelineSpec: + params: + - name: git-url + type: string + default: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-agentrun.git + - name: git-read-url + type: string + default: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/agentrun.git + - name: git-write-url + type: string + default: http://git-mirror-write.devops-infra.svc.cluster.local:8080/pikasTech/agentrun.git + - name: source-branch + type: string + default: release + - name: gitops-branch + type: string + default: nc01-release-gitops + - name: revision + type: string + - name: source-stage-ref + type: string + - name: registry-prefix + type: string + default: 127.0.0.1:5000/agentrun + - name: tools-image + type: string + default: 127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1 + - name: buildkit-image + type: string + default: 127.0.0.1:5000/hwlab/buildkit:rootless + - name: containerfile + type: string + default: deploy/container/Containerfile + - name: context-dir + type: string + default: "." + - name: image-repository + type: string + default: 127.0.0.1:5000/agentrun/agentrun-mgr-env + - name: build-network + type: string + default: host + - name: build-args-json + type: string + default: "[\"BUN_IMAGE=oven/bun:1-alpine\"]" + - name: build-http-proxy + type: string + default: http://127.0.0.1:10808 + - name: build-https-proxy + type: string + default: http://127.0.0.1:10808 + - name: build-no-proxy + type: string + default: "localhost,127.0.0.1,::1,127.0.0.1:5000,localhost:5000,.svc,.svc.cluster.local,.cluster.local,hyueapi.com,.hyueapi.com" + - name: container-http-proxy + type: string + default: http://127.0.0.1:10808 + - name: container-https-proxy + type: string + default: http://127.0.0.1:10808 + - name: container-no-proxy + type: string + default: "localhost,127.0.0.1,::1,127.0.0.1:5000,localhost:5000,.svc,.svc.cluster.local,.cluster.local,hyueapi.com,.hyueapi.com" + - name: env-identity-files-json + type: string + default: "[\"deploy/container/Containerfile\",\"deploy/runtime/boot/agentrun-boot.sh\",\"deploy/runtime/boot/agentrun-mgr.sh\",\"deploy/runtime/boot/agentrun-runner.sh\",\"src\",\"scripts\",\"package.json\",\"bun.lock\",\"tsconfig.json\"]" + - name: gitops-root + type: string + default: deploy/gitops/node/nc01 + - name: artifact-catalog + type: string + default: deploy/artifact-catalog.nc01-release.json + workspaces: + - name: source + tasks: + - name: plan-artifacts + workspaces: + - name: source + workspace: source + taskSpec: + params: + ¶ms + - name: git-read-url + - name: git-write-url + - name: source-branch + - name: gitops-branch + - name: revision + - name: source-stage-ref + - name: registry-prefix + - name: tools-image + - name: buildkit-image + - name: containerfile + - name: context-dir + - name: image-repository + - name: build-network + - name: build-args-json + - name: build-http-proxy + - name: build-https-proxy + - name: build-no-proxy + - name: container-http-proxy + - name: container-https-proxy + - name: container-no-proxy + - name: env-identity-files-json + - name: gitops-root + - name: artifact-catalog + workspaces: + - name: source + steps: + - name: source-checkout + image: $(params.tools-image) + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nrm -rf \"$root/repo\"\ngit clone --no-checkout \"$(params.git-read-url)\" \"$root/repo\"\ncd \"$root/repo\"\ngit fetch origin \"+$(params.source-stage-ref):refs/remotes/origin/unidesk-source-snapshot\"\ngit checkout --detach \"$(params.revision)\"\nactual=$(git rev-parse HEAD)\ntest \"$actual\" = \"$(params.revision)\"\nENV_IDENTITY_FILES='$(params.env-identity-files-json)' BUILD_ARGS_JSON='$(params.build-args-json)' CONTAINER_HTTP_PROXY='$(params.container-http-proxy)' CONTAINER_HTTPS_PROXY='$(params.container-https-proxy)' CONTAINER_NO_PROXY='$(params.container-no-proxy)' node <<'NODE' > \"$root/env-identity\"\nconst { createHash } = require('node:crypto');\nconst { existsSync, lstatSync, readdirSync, readFileSync } = require('node:fs');\nconst { join } = require('node:path');\nconst files = JSON.parse(process.env.ENV_IDENTITY_FILES || '[]');\nconst buildArgs = JSON.parse(process.env.BUILD_ARGS_JSON || '[]');\nconst proxy = [`HTTP_PROXY=${process.env.CONTAINER_HTTP_PROXY || ''}`, `HTTPS_PROXY=${process.env.CONTAINER_HTTPS_PROXY || ''}`, `NO_PROXY=${process.env.CONTAINER_NO_PROXY || ''}`];\nconst skip = new Set(['.git', '.worktree', '.state', 'node_modules', 'coverage', 'tmp', '.tmp']);\nconst hash = createHash('sha256');\nfunction collect(input) {\n if (!existsSync(input)) return [{ path: input, missing: true }];\n const stat = lstatSync(input);\n if (stat.isFile()) return [{ path: input, missing: false }];\n if (!stat.isDirectory()) return [{ path: input, missing: true }];\n const out = [];\n const stack = [input];\n while (stack.length) {\n const dir = stack.pop();\n for (const entry of readdirSync(dir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name))) {\n if (entry.isDirectory() && skip.has(entry.name)) continue;\n const child = join(dir, entry.name);\n if (entry.isDirectory()) stack.push(child);\n else if (entry.isFile()) out.push({ path: child, missing: false });\n }\n }\n return out.sort((a, b) => a.path.localeCompare(b.path));\n}\nfor (const item of buildArgs) { hash.update('build-arg\\0'); hash.update(item); hash.update('\\0'); }\nfor (const item of proxy) { hash.update('build-container-proxy\\0'); hash.update(item); hash.update('\\0'); }\nfor (const file of files) for (const entry of collect(file)) { hash.update(entry.path); hash.update('\\0'); if (!entry.missing) hash.update(readFileSync(entry.path)); hash.update('\\0'); }\nprocess.stdout.write(hash.digest('hex').slice(0, 24));\nNODE\nBUILD_ARGS='$(params.build-args-json)' node <<'NODE' > \"$root/build-args.txt\"\nconst values = JSON.parse(process.env.BUILD_ARGS || '[]');\nfor (const value of values) console.log(`build-arg:${value}`);\nNODE\nchmod -R a+rwX \"$root\"\nenv_identity=$(cat \"$root/env-identity\")\nprintf '{\"ok\":true,\"phase\":\"source-checkout\",\"sourceCommit\":\"%s\",\"sourceStageRef\":\"%s\",\"envIdentity\":\"%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$(params.source-stage-ref)\" \"$env_identity\"" + - name: probe-env-image + image: $(params.tools-image) + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nenv_identity=$(cat \"$root/env-identity\")\nimage_repository='$(params.image-repository)'\nmanifest_accept='application/vnd.oci.image.index.v1+json, application/vnd.oci.image.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json'\nrepo_path=${image_repository#127.0.0.1:5000/}\nheaders=$(mktemp)\ndigest=''\nif curl -fsSI -H \"Accept: $manifest_accept\" \"http://127.0.0.1:5000/v2/$repo_path/manifests/$env_identity\" >\"$headers\"; then\n digest=$(awk -F': ' 'tolower($1)==\"docker-content-digest\"{print $2}' \"$headers\" | tr -d '\\r' | head -n 1)\nfi\nrm -f \"$headers\"\nif [ -n \"$digest\" ]; then\n image=\"$image_repository:$env_identity\"\n printf '{\"ok\":true,\"status\":\"reused\",\"sourceCommit\":\"%s\",\"envIdentity\":\"%s\",\"image\":\"%s\",\"digest\":\"%s\",\"repositoryDigest\":\"%s@%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$env_identity\" \"$image\" \"$digest\" \"$image_repository\" \"$digest\" > \"$root/build-result.json\"\n touch \"$root/skip-build\"\nelse\n printf '{\"ok\":false,\"status\":\"cache-miss\",\"sourceCommit\":\"%s\",\"envIdentity\":\"%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$env_identity\" > \"$root/build-result.json\"\nfi\nif [ -f \"$root/skip-build\" ]; then build_services='[]'; reused_services='[\"agentrun-mgr\"]'; else build_services='[\"agentrun-mgr\"]'; reused_services='[]'; fi\nprintf '{\"event\":\"pac-delivery-plan\",\"schemaVersion\":\"v1\",\"sourceCommitId\":\"%s\",\"affectedServices\":[\"agentrun-mgr\"],\"rolloutServices\":[\"agentrun-mgr\"],\"buildServices\":%s,\"reusedServices\":%s,\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$build_services\" \"$reused_services\"\nchmod a+rw \"$root/build-result.json\"\ncat \"$root/build-result.json\"" + params: + ¶ms1 + - name: git-read-url + value: $(params.git-read-url) + - name: git-write-url + value: $(params.git-write-url) + - name: source-branch + value: $(params.source-branch) + - name: gitops-branch + value: $(params.gitops-branch) + - name: revision + value: $(params.revision) + - name: source-stage-ref + value: $(params.source-stage-ref) + - name: registry-prefix + value: $(params.registry-prefix) + - name: tools-image + value: $(params.tools-image) + - name: buildkit-image + value: $(params.buildkit-image) + - name: containerfile + value: $(params.containerfile) + - name: context-dir + value: $(params.context-dir) + - name: image-repository + value: $(params.image-repository) + - name: build-network + value: $(params.build-network) + - name: build-args-json + value: $(params.build-args-json) + - name: build-http-proxy + value: $(params.build-http-proxy) + - name: build-https-proxy + value: $(params.build-https-proxy) + - name: build-no-proxy + value: $(params.build-no-proxy) + - name: container-http-proxy + value: $(params.container-http-proxy) + - name: container-https-proxy + value: $(params.container-https-proxy) + - name: container-no-proxy + value: $(params.container-no-proxy) + - name: env-identity-files-json + value: $(params.env-identity-files-json) + - name: gitops-root + value: $(params.gitops-root) + - name: artifact-catalog + value: $(params.artifact-catalog) + when: + - input: unidesk-yaml-only + operator: in + values: + - unidesk-yaml-only + - name: collect-artifacts + runAfter: + - plan-artifacts + workspaces: + - name: source + workspace: source + taskSpec: + params: + *params + workspaces: + - name: source + steps: + - name: build-env-image + image: $(params.buildkit-image) + env: + - name: BUILDKITD_FLAGS + value: "--oci-worker-no-process-sandbox --oci-worker-net=host --allow-insecure-entitlement network.host" + - name: HTTP_PROXY + value: $(params.build-http-proxy) + - name: http_proxy + value: $(params.build-http-proxy) + - name: HTTPS_PROXY + value: $(params.build-https-proxy) + - name: https_proxy + value: $(params.build-https-proxy) + - name: ALL_PROXY + value: $(params.build-https-proxy) + - name: all_proxy + value: $(params.build-https-proxy) + - name: NO_PROXY + value: $(params.build-no-proxy) + - name: no_proxy + value: $(params.build-no-proxy) + securityContext: + privileged: true + runAsUser: 1000 + runAsGroup: 1000 + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nif [ -f \"$root/skip-build\" ]; then cat \"$root/build-result.json\"; exit 0; fi\nenv_identity=$(cat \"$root/env-identity\")\nimage_repository='$(params.image-repository)'\nimage=\"$image_repository:$env_identity\"\ncontext_dir='$(params.context-dir)'\nif [ \"$context_dir\" = \".\" ]; then context_path=\"$root/repo\"; else context_path=\"$root/repo/${context_dir#./}\"; fi\nargs=\"build --allow network.host --frontend dockerfile.v0 --local context=$context_path --local dockerfile=$root/repo --opt filename=$(params.containerfile) --opt network=$(params.build-network)\"\nadd_opt() { args=\"$args --opt $1\"; }\nif [ -n '$(params.container-http-proxy)' ]; then add_opt 'build-arg:HTTP_PROXY=$(params.container-http-proxy)'; add_opt 'build-arg:http_proxy=$(params.container-http-proxy)'; fi\nif [ -n '$(params.container-https-proxy)' ]; then add_opt 'build-arg:HTTPS_PROXY=$(params.container-https-proxy)'; add_opt 'build-arg:https_proxy=$(params.container-https-proxy)'; fi\nif [ -n '$(params.container-https-proxy)' ]; then add_opt 'build-arg:ALL_PROXY=$(params.container-https-proxy)'; add_opt 'build-arg:all_proxy=$(params.container-https-proxy)'; elif [ -n '$(params.container-http-proxy)' ]; then add_opt 'build-arg:ALL_PROXY=$(params.container-http-proxy)'; add_opt 'build-arg:all_proxy=$(params.container-http-proxy)'; fi\nif [ -n '$(params.container-no-proxy)' ]; then add_opt 'build-arg:NO_PROXY=$(params.container-no-proxy)'; add_opt 'build-arg:no_proxy=$(params.container-no-proxy)'; fi\nwhile IFS= read -r opt; do [ -n \"$opt\" ] && add_opt \"$opt\"; done < \"$root/build-args.txt\"\nargs=\"$args --metadata-file $root/build-metadata.json --output type=image,name=$image,push=true,registry.insecure=true\"\nbuildctl-daemonless.sh $args\nmetadata_compact=$(tr -d '\\n' < \"$root/build-metadata.json\")\ndigest=$(printf '%s' \"$metadata_compact\" | sed -n 's/.*\"containerimage.digest\"[[:space:]]*:[[:space:]]*\"\\([^\"]*\\)\".*/\\1/p' | head -n 1)\ntest -n \"$digest\"\nprintf '{\"ok\":true,\"status\":\"built\",\"sourceCommit\":\"%s\",\"envIdentity\":\"%s\",\"image\":\"%s\",\"digest\":\"%s\",\"repositoryDigest\":\"%s@%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$env_identity\" \"$image\" \"$digest\" \"$image_repository\" \"$digest\" > \"$root/build-result.json\"\ncat \"$root/build-result.json\"" + params: + *params1 + when: + - input: unidesk-yaml-only + operator: in + values: + - unidesk-yaml-only + - name: gitops-promote + runAfter: + - collect-artifacts + workspaces: + - name: source + workspace: source + taskSpec: + params: + *params + workspaces: + - name: source + steps: + - name: publish-gitops + image: $(params.tools-image) + env: + - name: GITEA_TOKEN + valueFrom: + secretKeyRef: + name: pac-gitea-agentrun-nc01-release + key: token + optional: true + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nbuild_result=\"$root/build-result.json\"\ntest -s \"$build_result\"\ntemplates_b64=\"W3sicGF0aCI6InNvdXJjZS5qc29uIiwiY29udGVudCI6IntcbiAgXCJsYW5lXCI6IFwicmVsZWFzZVwiLFxuICBcInNvdXJjZUNvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwiZ2VuZXJhdGVkQnlcIjogXCJ1bmlkZXNrIGNvbmZpZy9hZ2VudHJ1bi55YW1sXCIsXG4gIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIlxufVxuIn0seyJwYXRoIjoiZGVwbG95L2FydGlmYWN0LWNhdGFsb2cubmMwMS1yZWxlYXNlLmpzb24iLCJjb250ZW50Ijoie1xuICBcImxhbmVcIjogXCJyZWxlYXNlXCIsXG4gIFwic291cmNlQnJhbmNoXCI6IFwicmVsZWFzZVwiLFxuICBcImdpdG9wc0JyYW5jaFwiOiBcIm5jMDEtcmVsZWFzZS1naXRvcHNcIixcbiAgXCJzb3VyY2VDb21taXRJZFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwic3VtbWFyeVwiOiBcImJ1aWxkPTEgcmV1c2U9MCBwbGFjZWhvbGRlcj0wXCIsXG4gIFwic2VydmljZXNcIjogW1xuICAgIHtcbiAgICAgIFwic2VydmljZUlkXCI6IFwiYWdlbnRydW4tbWdyXCIsXG4gICAgICBcImFydGlmYWN0S2luZFwiOiBcImVudi1yZXVzZVwiLFxuICAgICAgXCJzdGF0dXNcIjogXCJfX0FHRU5UUlVOX0lNQUdFX1NUQVRVU19fXCIsXG4gICAgICBcImltYWdlXCI6IFwiMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudjpfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9fXCIsXG4gICAgICBcImRpZ2VzdFwiOiBcInNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcInJlcG9zaXRvcnlEaWdlc3RcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcImltYWdlVGFnXCI6IFwiX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZJZGVudGl0eVwiOiBcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52SW1hZ2VcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52Ol9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52RGlnZXN0XCI6IFwic2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiZW52UmVwb3NpdG9yeURpZ2VzdFwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiYm9vdENvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gICAgICBcImJvb3RTY3JpcHRcIjogXCJkZXBsb3kvcnVudGltZS9ib290L2FnZW50cnVuLWJvb3Quc2hcIixcbiAgICAgIFwicHJvdmVuYW5jZVwiOiB7XG4gICAgICAgIFwic291cmNlQ29tbWl0SWRcIjogXCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wiLFxuICAgICAgICBcInNvdXJjZVwiOiBcInVuaWRlc2steWFtbC1vbmx5XCIsXG4gICAgICAgIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIixcbiAgICAgICAgXCJ2YWx1ZXNQcmludGVkXCI6IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICBdXG59XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvcHJvamVjdC55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBQcm9qZWN0LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLG5hbWVzcGFjZTogYXJnb2NkLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0sc3BlYzoge2Rlc2NyaXB0aW9uOiBBZ2VudFJ1biByZWxlYXNlIEdpdE9wcyBsYW5lLHNvdXJjZVJlcG9zOiBbaHR0cDovL2dpdC1taXJyb3ItaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9waWthc1RlY2gvYWdlbnRydW4uZ2l0LGh0dHA6Ly9naXRlYS1odHRwLmRldm9wcy1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDozMDAwL21pcnJvcnMvcGlrYXNUZWNoLWFnZW50cnVuLmdpdF0sZGVzdGluYXRpb25zOiBbe3NlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZX1dLGNsdXN0ZXJSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCJcIixraW5kOiBOYW1lc3BhY2V9XSxuYW1lc3BhY2VSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCIqXCIsa2luZDogXCIqXCJ9XX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvYXBwbGljYXRpb24tcmVsZWFzZS55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBsaWNhdGlvbixtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZSxuYW1lc3BhY2U6IGFyZ29jZCxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtwcm9qZWN0OiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2Usc291cmNlOiB7cmVwb1VSTDogaHR0cDovL2dpdC1taXJyb3ItaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9waWthc1RlY2gvYWdlbnRydW4uZ2l0LHRhcmdldFJldmlzaW9uOiBuYzAxLXJlbGVhc2UtZ2l0b3BzLHBhdGg6IGRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZX0sZGVzdGluYXRpb246IHtzZXJ2ZXI6IGh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyxuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2V9LHN5bmNQb2xpY3k6IHthdXRvbWF0ZWQ6IHtwcnVuZTogZmFsc2Usc2VsZkhlYWw6IHRydWV9LHN5bmNPcHRpb25zOiBbQ3JlYXRlTmFtZXNwYWNlPXRydWUsQXBwbHlPdXRPZlN5bmNPbmx5PXRydWVdfX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2Uva3VzdG9taXphdGlvbi55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBrdXN0b21pemUuY29uZmlnLms4cy5pby92MWJldGExLGtpbmQ6IEt1c3RvbWl6YXRpb24scmVzb3VyY2VzOiBbbmFtZXNwYWNlLnlhbWwsbWdyLnlhbWwscnVubmVyLXJiYWMueWFtbF19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvbmFtZXNwYWNlLnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IHYxLGtpbmQ6IE5hbWVzcGFjZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbiJ9LHsicGF0aCI6ImRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZS9tZ3IueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW1ncixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7c2VsZWN0b3I6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9LHBvcnRzOiBbe25hbWU6IGh0dHAscG9ydDogODA4MCx0YXJnZXRQb3J0OiBodHRwfV19fVxuLS0tXG57YXBpVmVyc2lvbjogYXBwcy92MSxraW5kOiBEZXBsb3ltZW50LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtyZXBsaWNhczogMSxzZWxlY3Rvcjoge21hdGNoTGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogYWdlbnRydW4tbWdyfX0sdGVtcGxhdGU6IHttZXRhZGF0YToge2xhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxLGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IGFnZW50cnVuLW1ncn0sYW5ub3RhdGlvbnM6IHthZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvc291cmNlLWNvbW1pdDogX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX18sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2Vudi1pZGVudGl0eTogX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX319LHNwZWM6IHtzZXJ2aWNlQWNjb3VudE5hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3IsY29udGFpbmVyczogW3tuYW1lOiBtZ3IsaW1hZ2U6IDEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEsaW1hZ2VQdWxsUG9saWN5OiBJZk5vdFByZXNlbnQscG9ydHM6IFt7bmFtZTogaHR0cCxjb250YWluZXJQb3J0OiA4MDgwfV0sZW52OiBbe25hbWU6IEFHRU5UUlVOX0xBTkUsdmFsdWU6IHJlbGVhc2V9LHtuYW1lOiBEQVRBQkFTRV9VUkwsdmFsdWVGcm9tOiB7c2VjcmV0S2V5UmVmOiB7bmFtZTogYWdlbnRydW4tcmVsZWFzZS1tZ3ItZGIsa2V5OiBEQVRBQkFTRV9VUkx9fX0se25hbWU6IEFHRU5UUlVOX1NPVVJDRV9DT01NSVQsdmFsdWU6IF9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9ffSx7bmFtZTogQUdFTlRSVU5fQk9PVF9DT01NSVQsdmFsdWU6IF9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9ffSx7bmFtZTogQUdFTlRSVU5fQk9PVF9NT0RFLHZhbHVlOiBtZ3J9LHtuYW1lOiBBR0VOVFJVTl9CT09UX1JFUE9fVVJMLHZhbHVlOiBodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMC9taXJyb3JzL3Bpa2FzVGVjaC1hZ2VudHJ1bi5naXR9LHtuYW1lOiBBR0VOVFJVTl9FTlZfSURFTlRJVFksdmFsdWU6IF9fQUdFTlRSVU5fRU5WX0lERU5USVRZX199LHtuYW1lOiBBR0VOVFJVTl9SVU5USU1FX05BTUVTUEFDRSx2YWx1ZTogYWdlbnRydW4tcmVsZWFzZX0se25hbWU6IEFHRU5UUlVOX0lOVEVSTkFMX01HUl9VUkwsdmFsdWU6IGh0dHA6Ly9hZ2VudHJ1bi1tZ3IuYWdlbnRydW4tcmVsZWFzZS5zdmMuY2x1c3Rlci5sb2NhbDo4MDgwfSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0lNQUdFLHZhbHVlOiAxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhfSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1NFUlZJQ0VfQUNDT1VOVCx2YWx1ZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lcn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9KT0JfTkFNRV9QUkVGSVgsdmFsdWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1ydW5uZXJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfQVBJX0tFWV9TRUNSRVRfTkFNRSx2YWx1ZTogYWdlbnRydW4tcmVsZWFzZS1hcGkta2V5fSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0FQSV9LRVlfU0VDUkVUX0tFWSx2YWx1ZTogSFdMQUJfQVBJX0tFWX0se25hbWU6IEFHRU5UUlVOX0dJVF9NSVJST1JfQkFTRV9VUkwsdmFsdWU6IGh0dHA6Ly9naXQtbWlycm9yLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjgwODB9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfSURMRV9USU1FT1VUX01TLHZhbHVlOiBcIjYwMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9NQVhfQVRURU1QVFMsdmFsdWU6IFwiNVwifSx7bmFtZTogQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9JTklUSUFMX0JBQ0tPRkZfTVMsdmFsdWU6IFwiMTAwMFwifSx7bmFtZTogQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9NQVhfQkFDS09GRl9NUyx2YWx1ZTogXCIzMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9NQVhfUlVOTkVSUyx2YWx1ZTogXCIxMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9DTEVBTlVQX09SREVSLHZhbHVlOiBvbGRlc3QtaW5hY3RpdmUtbGFzdC1hY3RpdmUtZmlyc3R9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0FDVElWRV9IRUFSVEJFQVRfTUFYX0FHRV9NUyx2YWx1ZTogXCI5MDAwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fU1RBTEVfUEVORElOR19NQVhfQUdFX01TLHZhbHVlOiBcIjkwMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9NQVRDSF9MQUJFTFNfSlNPTix2YWx1ZTogXCJ7XFxcImFwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2ZcXFwiOlxcXCJhZ2VudHJ1blxcXCIsXFxcImFwcC5rdWJlcm5ldGVzLmlvL25hbWVcXFwiOlxcXCJhZ2VudHJ1bi1ydW5uZXJcXFwiLFxcXCJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnRcXFwiOlxcXCJydW5uZXJcXFwifVwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9KT0JfTkFNRV9QUkVGSVhFUyx2YWx1ZTogXCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLGFnZW50cnVuLXJlbGVhc2UtcnVubmVyXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0FHRV9CQVNFRF9DTEVBTlVQX0VOQUJMRUQsdmFsdWU6IFwiZmFsc2VcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX01BWF9BR0VfSE9VUlMsdmFsdWU6IFwiNDhcIn0se25hbWU6IEFHRU5UUlVOX0NBTkNFTF9ERUxJVkVSWV9NT0RFLHZhbHVlOiBtYW5hZ2VyLWVwb2NofSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX0dSQUNFRlVMX0FCT1JUX01TLHZhbHVlOiBcIjE1MDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9DQU5DRUxfS0lMTF9FU0NBTEFUSU9OX01TLHZhbHVlOiBcIjMwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9DQU5DRUxfU1RBTEVfSEVBUlRCRUFUX0ZFTkNJTkdfTVMsdmFsdWU6IFwiOTAwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9DQU5DRUxfTEFURV9XUklURV9GRU5DSU5HX0VOQUJMRUQsdmFsdWU6IFwidHJ1ZVwifSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX0VWRU5UX1NUQUdFUyx2YWx1ZTogXCJhY2NlcHRlZCxwZXJzaXN0ZWQsZGVsaXZlcmVkLGFib3J0aW5nLHRlcm1pbmFsaXplZCxmZW5jZWQsbGF0ZS13cml0ZS1yZWplY3RlZFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0VHUkVTU19QUk9YWV9VUkwsdmFsdWU6IGh0dHA6Ly8xMC40Mi4wLjE6MTA4MDh9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfTk9fUFJPWFlfRVhUUkEsdmFsdWU6IFwibG9jYWxob3N0LDEyNy4wLjAuMSw6OjEsLnN2Yywuc3ZjLmNsdXN0ZXIubG9jYWwsLmNsdXN0ZXIubG9jYWwsaHl1ZWFwaS5jb20sLmh5dWVhcGkuY29tLGFwaS5waWthcHl0aG9uLmNvbSwucGlrYXB5dGhvbi5jb21cIn0se25hbWU6IEFHRU5UUlVOX0FQSV9LRVksdmFsdWVGcm9tOiB7c2VjcmV0S2V5UmVmOiB7bmFtZTogYWdlbnRydW4tcmVsZWFzZS1hcGkta2V5LGtleTogSFdMQUJfQVBJX0tFWX19fSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfQk9PVFNUUkFQX1NFUlZFUlMsdmFsdWU6IHBsYXRmb3JtLWluZnJhLWthZmthLWthZmthLWJvb3RzdHJhcC5wbGF0Zm9ybS1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkyfSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfQ0xJRU5UX0lELHZhbHVlOiBhZ2VudHJ1bi1yZWxlYXNlLW1hbmFnZXJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX0tBRktBX0VWRU5UX1RPUElDLHZhbHVlOiBhZ2VudHJ1bi5ldmVudC52MX0se25hbWU6IEFHRU5UUlVOX0tBRktBX09VVEJPWF9CQVRDSF9TSVpFLHZhbHVlOiBcIjEwMFwifSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0lOVEVSVkFMX01TLHZhbHVlOiBcIjUwMFwifSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0xFQVNFX01TLHZhbHVlOiBcIjYwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9PVVRCT1hfUkVUUllfQkFDS09GRl9NUyx2YWx1ZTogXCI1MDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9TVERJT19DTElFTlRfSUQsdmFsdWU6IGFnZW50cnVuLXJlbGVhc2UtcnVubmVyfSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfU1RESU9fUFJPRFVDRV9FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX0tBRktBX1NURElPX1RPUElDLHZhbHVlOiBjb2RleC1zdGRpby5yYXcudjF9LHtuYW1lOiBBR0VOVFJVTl9NQU5BR0VSX1JFQ09OQ0lMRVJfQkFUQ0hfU0laRSx2YWx1ZTogXCIyMFwifSx7bmFtZTogQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0VOQUJMRUQsdmFsdWU6IFwidHJ1ZVwifSx7bmFtZTogQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0lOVEVSVkFMX01TLHZhbHVlOiBcIjMwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9QT1NUR1JFU19QT09MX01BWCx2YWx1ZTogXCI0XCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9BVFRFTVBUX1RJTUVPVVRfTVMsdmFsdWU6IFwiOTAwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0JBVENIX1NJWkUsdmFsdWU6IFwiMTBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0VOQUJMRUQsdmFsdWU6IFwidHJ1ZVwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfSU5URVJWQUxfTVMsdmFsdWU6IFwiMTAwMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTEVBU0VfTVMsdmFsdWU6IFwiMTIwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9NQVhfQVRURU1QVFMsdmFsdWU6IFwiNVwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfUkVUUllfQkFDS09GRl9NUyx2YWx1ZTogXCI1MDAwXCJ9LHtuYW1lOiBIV0xBQl9SVU5USU1FX0xBTkUsdmFsdWU6IHJlbGVhc2V9LHtuYW1lOiBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0VORFBPSU5ULHZhbHVlOiBodHRwOi8vb3RlbC1jb2xsZWN0b3IucGxhdGZvcm0taW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6NDMxOC92MS90cmFjZXN9LHtuYW1lOiBPVEVMX1NFUlZJQ0VfTkFNRSx2YWx1ZTogYWdlbnRydW4tbWFuYWdlcn0se25hbWU6IFVOSURFU0tfTk9ERV9JRCx2YWx1ZTogTkMwMX0se25hbWU6IFVOSURFU0tfTUFJTl9TRVJWRVJfSVAsdmFsdWU6IDE1Mi41My4yMjkuMTQ4fV0scmVhZGluZXNzUHJvYmU6IHtodHRwR2V0OiB7cGF0aDogL2hlYWx0aC9yZWFkaW5lc3MscG9ydDogaHR0cH0sdGltZW91dFNlY29uZHM6IDJ9LGxpdmVuZXNzUHJvYmU6IHtodHRwR2V0OiB7cGF0aDogL2hlYWx0aC9saXZlLHBvcnQ6IGh0dHB9LHRpbWVvdXRTZWNvbmRzOiAyfSxzdGFydHVwUHJvYmU6IHtodHRwR2V0OiB7cGF0aDogL2hlYWx0aC9saXZlLHBvcnQ6IGh0dHB9LHBlcmlvZFNlY29uZHM6IDEwLHRpbWVvdXRTZWNvbmRzOiAyLGZhaWx1cmVUaHJlc2hvbGQ6IDkwfSxyZXNvdXJjZXM6IHtyZXF1ZXN0czoge2NwdTogMTAwbSxtZW1vcnk6IDI1Nk1pfSxsaW1pdHM6IHtjcHU6IDgwMG0sbWVtb3J5OiAxR2l9fX1dfX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi1yZWxlYXNlLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbYmF0Y2hdLHJlc291cmNlczogW2pvYnNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtwb2RzXSx2ZXJiczogW2RlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtldmVudHNdLHZlcmJzOiBbZ2V0LGxpc3Qsd2F0Y2hdfSx7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbcGVyc2lzdGVudHZvbHVtZWNsYWltc10sdmVyYnM6IFtjcmVhdGUsZ2V0LGxpc3Qsd2F0Y2gsZGVsZXRlXX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3ItcnVubmVyLWpvYi1jb250cm9sbGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHN1YmplY3RzOiBbe2tpbmQ6IFNlcnZpY2VBY2NvdW50LG5hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3J9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXJ1bm5lci1qb2ItY29udHJvbGxlcn19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGUsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXByb3ZpZGVyLXNlY3JldC1tYW5hZ2VyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCxwYXRjaCx1cGRhdGVdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcn19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvcnVubmVyLXJiYWMueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbZ2V0XX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1ydW5uZXItc2VjcmV0LXJlYWRlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyfX1cbiJ9XQ==\"\ngit_write_url='$(params.git-write-url)'\ngit_auth_url=\"$git_write_url\"\nif printf '%s' \"$git_write_url\" | grep -q '^http://gitea-http\\.'; then\n test -n \"${GITEA_TOKEN:-}\"\n git_auth_url=$(printf '%s' \"$git_write_url\" | sed \"s#^http://#http://x-access-token:${GITEA_TOKEN}@#\")\nfi\nrm -rf \"$root/gitops\"\ngit clone \"$git_auth_url\" \"$root/gitops\"\ncd \"$root/gitops\"\ngit fetch origin \"$(params.gitops-branch)\" || true\nif git rev-parse --verify \"refs/remotes/origin/$(params.gitops-branch)^{commit}\" >/dev/null 2>&1; then git checkout -B \"$(params.gitops-branch)\" \"refs/remotes/origin/$(params.gitops-branch)\"; else git checkout --orphan \"$(params.gitops-branch)\"; git rm -rf . >/dev/null 2>&1 || true; fi\nincoming_source_commit='$(params.revision)'\nsource_branch='$(params.source-branch)'\nbranch_source_commit=$(git -C \"$root/repo\" rev-parse --verify \"refs/remotes/origin/${source_branch}^{commit}\")\ngitops_source_commit=$(node -e 'try { const value = JSON.parse(require(\"node:fs\").readFileSync(\"source.json\", \"utf8\")).sourceCommit; if (typeof value === \"string\") process.stdout.write(value); } catch {}')\nstale_reason=''\nif [ \"$incoming_source_commit\" != \"$branch_source_commit\" ]; then stale_reason='stale-source-revision'; fi\nif [ -z \"$stale_reason\" ] && [ -n \"$gitops_source_commit\" ] && [ \"$incoming_source_commit\" != \"$gitops_source_commit\" ]; then\n if ! git -C \"$root/repo\" cat-file -e \"${gitops_source_commit}^{commit}\" 2>/dev/null; then stale_reason='gitops-source-order-unverifiable';\n elif git -C \"$root/repo\" merge-base --is-ancestor \"$incoming_source_commit\" \"$gitops_source_commit\"; then stale_reason='stale-gitops-source-revision';\n elif ! git -C \"$root/repo\" merge-base --is-ancestor \"$gitops_source_commit\" \"$incoming_source_commit\"; then stale_reason='divergent-gitops-source-revision'; fi\nfi\nif [ -n \"$stale_reason\" ]; then\n gitops_commit=$(git rev-parse HEAD)\n INCOMING_SOURCE_COMMIT=\"$incoming_source_commit\" CURRENT_SOURCE_COMMIT=\"$branch_source_commit\" GITOPS_SOURCE_COMMIT=\"$gitops_source_commit\" GITOPS_COMMIT=\"$gitops_commit\" STALE_REASON=\"$stale_reason\" node <<'NODE'\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', reason: process.env.STALE_REASON, warning: true, blocking: false, changed: false, stale: true, gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: process.env.INCOMING_SOURCE_COMMIT, currentSourceCommit: process.env.CURRENT_SOURCE_COMMIT, gitopsSourceCommit: process.env.GITOPS_SOURCE_COMMIT || null, valuesPrinted: false }));\nNODE\n exit 0\nfi\ngit rm -rf --ignore-unmatch \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json >/dev/null 2>&1 || true\nrm -rf \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json\nTEMPLATES_B64=\"$templates_b64\" BUILD_RESULT=\"$build_result\" node <<'NODE'\nconst { mkdirSync, readFileSync, writeFileSync } = require('node:fs');\nconst { dirname } = require('node:path');\nconst templates = JSON.parse(Buffer.from(process.env.TEMPLATES_B64, 'base64').toString('utf8'));\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconst replacements = new Map([\n ['__AGENTRUN_SOURCE_COMMIT__', build.sourceCommit],\n ['__AGENTRUN_ENV_IDENTITY__', build.envIdentity],\n ['sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', build.digest],\n ['__AGENTRUN_IMAGE_STATUS__', build.status],\n]);\nfor (const file of templates) {\n let content = file.content;\n for (const [from, to] of replacements) content = content.split(from).join(to);\n mkdirSync(dirname(file.path), { recursive: true });\n writeFileSync(file.path, content);\n}\nNODE\nfeature_config_schema_started_ms=\"$(date +%s%3N 2>/dev/null || date +%s000)\"\nexport UNIDESK_FEATURE_CONFIG_REPO_DIR=\"$root\"\nexport UNIDESK_FEATURE_CONFIG_RENDERED_ROOT=\"$PWD/$(params.gitops-root)\"\nexport UNIDESK_PAC_CONSUMER='agentrun-nc01-release'\nexport OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces'\nexport OTEL_SERVICE_NAME='unidesk-cicd'\nexport OTEL_TRACES_SAMPLER_ARG='1'\nexport OTEL_EXPORTER_TIMEOUT_MS='300'\nfeature_config_validator_base=''\nfeature_config_validator=''\nif feature_config_validator_base=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-feature-config-validator.XXXXXX\" 2>/dev/null)\"; then\n feature_config_validator=\"${feature_config_validator_base}.mjs\"\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_validator\"; then\n rm -f \"$feature_config_validator_base\" \"$feature_config_validator\" || true\n feature_config_validator=''\n fi\n rm -f \"$feature_config_validator_base\" || true\nfi\nfeature_config_ajv_bundle=''\nif feature_config_ajv_bundle=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-ajv2020.XXXXXX\" 2>/dev/null)\"; then\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_ajv_bundle\"; then\n rm -f \"$feature_config_ajv_bundle\" || true\n feature_config_ajv_bundle=''\n fi\nfi\nexport UNIDESK_AJV2020_BUNDLE=\"${feature_config_ajv_bundle:-${TMPDIR:-/tmp}/unidesk-ajv2020-unavailable}\"\nexport UNIDESK_FEATURE_CONFIG_VALIDATOR=\"${feature_config_validator:-${TMPDIR:-/tmp}/unidesk-feature-config-validator-unavailable.mjs}\"\nif ! node --input-type=module <<'NODE_UNIDESK_FEATURE_CONFIG_SCHEMA'\nimport { pathToFileURL } from 'node:url';\nconst validator = await import(pathToFileURL(process.env.UNIDESK_FEATURE_CONFIG_VALIDATOR).href);\nawait validator.runFeatureConfigSchemaValidation({ repoDir: process.env.UNIDESK_FEATURE_CONFIG_REPO_DIR, renderedRoot: process.env.UNIDESK_FEATURE_CONFIG_RENDERED_ROOT, consumer: process.env.UNIDESK_PAC_CONSUMER });\nNODE_UNIDESK_FEATURE_CONFIG_SCHEMA\nthen\n printf '{\"event\":\"feature-config-schema-validation\",\"warning\":true,\"blocking\":false,\"code\":\"feature-config-validator-process-failure\",\"mutation\":false,\"valuesPrinted\":false}\\n' >&2\nfi\nif [ -n \"$feature_config_validator\" ]; then rm -f \"$feature_config_validator\" || true; fi\nif [ -n \"$feature_config_ajv_bundle\" ]; then rm -f \"$feature_config_ajv_bundle\" || true; fi\nif command -v ci_timing_emit >/dev/null 2>&1; then\n ci_timing_emit feature-config-schema-validation succeeded \"$feature_config_schema_started_ms\"\nelse\n printf '{\"event\":\"ci.stage.timing\",\"stage\":\"feature-config-schema-validation\",\"status\":\"succeeded\",\"blocking\":false}\\n' >&2\nfi\ngit add source.json \"$(params.artifact-catalog)\" \"$(params.gitops-root)\"\nif git diff --quiet --cached; then changed=false; else changed=true; git -c user.email=agentrun@unidesk.local -c user.name='UniDesk AgentRun PaC' commit -m \"deploy: render AgentRun $(params.gitops-branch) from PaC\"; fi\ngit remote set-url origin \"$git_auth_url\"\ngit push -u origin \"$(params.gitops-branch)\"\ngitops_commit=$(git rev-parse HEAD)\nBUILD_RESULT=\"$build_result\" CHANGED=\"$changed\" GITOPS_COMMIT=\"$gitops_commit\" node <<'NODE'\nconst { readFileSync } = require('node:fs');\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', changed: process.env.CHANGED === 'true', gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: build.sourceCommit, envIdentity: build.envIdentity, imageStatus: build.status, digest: build.digest, valuesPrinted: false }));\nNODE" + params: + *params1 + when: + - input: unidesk-yaml-only + operator: in + values: + - unidesk-yaml-only + taskRunTemplate: + serviceAccountName: agentrun-nc01-release-tekton-runner + podTemplate: + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + securityContext: + fsGroup: 1000 + params: + - name: git-url + value: "{{ repo_url }}" + - name: git-read-url + value: "{{ git_read_url }}" + - name: git-write-url + value: "{{ git_write_url }}" + - name: source-branch + value: "{{ source_branch }}" + - name: gitops-branch + value: "{{ gitops_branch }}" + - name: revision + value: "{{ revision }}" + - name: source-stage-ref + value: "{{ source_snapshot_prefix }}/{{ revision }}" + - name: registry-prefix + value: 127.0.0.1:5000/agentrun + - name: tools-image + value: 127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1 + - name: buildkit-image + value: 127.0.0.1:5000/hwlab/buildkit:rootless + - name: containerfile + value: deploy/container/Containerfile + - name: context-dir + value: "." + - name: image-repository + value: 127.0.0.1:5000/agentrun/agentrun-mgr-env + - name: build-network + value: host + - name: build-args-json + value: "[\"BUN_IMAGE=oven/bun:1-alpine\"]" + - name: build-http-proxy + value: http://127.0.0.1:10808 + - name: build-https-proxy + value: http://127.0.0.1:10808 + - name: build-no-proxy + value: "localhost,127.0.0.1,::1,127.0.0.1:5000,localhost:5000,.svc,.svc.cluster.local,.cluster.local,hyueapi.com,.hyueapi.com" + - name: container-http-proxy + value: http://127.0.0.1:10808 + - name: container-https-proxy + value: http://127.0.0.1:10808 + - name: container-no-proxy + value: "localhost,127.0.0.1,::1,127.0.0.1:5000,localhost:5000,.svc,.svc.cluster.local,.cluster.local,hyueapi.com,.hyueapi.com" + - name: env-identity-files-json + value: "[\"deploy/container/Containerfile\",\"deploy/runtime/boot/agentrun-boot.sh\",\"deploy/runtime/boot/agentrun-mgr.sh\",\"deploy/runtime/boot/agentrun-runner.sh\",\"src\",\"scripts\",\"package.json\",\"bun.lock\",\"tsconfig.json\"]" + - name: gitops-root + value: deploy/gitops/node/nc01 + - name: artifact-catalog + value: deploy/artifact-catalog.nc01-release.json + workspaces: + - name: source + volumeClaimTemplate: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi From 003dd7e57641cb5c2089de3cab31c67c12e52505 Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Wed, 15 Jul 2026 17:59:36 +0200 Subject: [PATCH 04/13] =?UTF-8?q?fix:=20=E5=9B=BA=E5=8C=96=20release=20PaC?= =?UTF-8?q?=20consumer=20=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tekton/agentrun-nc01-release.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.tekton/agentrun-nc01-release.yaml b/.tekton/agentrun-nc01-release.yaml index bdad829..5c27b0d 100644 --- a/.tekton/agentrun-nc01-release.yaml +++ b/.tekton/agentrun-nc01-release.yaml @@ -10,7 +10,7 @@ metadata: pipelinesascode.tekton.dev/max-keep-runs: "8" unidesk.ai/pac-admission-provenance: admission-pac-v2:agentrun-nc01-release unidesk.ai/owning-config-ref: "config/agentrun.yaml#controlPlane.lanes.nc01-release" - unidesk.ai/effective-config-sha256: sha256:fd18c4cc55a03dda85f813a1ef8f5e4b397a22cb82bbca0d5a21da6e380de287 + unidesk.ai/effective-config-sha256: sha256:40d8cf88273cca3647631207e1950dab02ef829865c50ab5ae2934291b2c8930 unidesk.ai/source-artifact-renderer: agentrun-control-plane unidesk.ai/source-artifact-mode: embedded-pipeline-spec labels: @@ -272,17 +272,17 @@ spec: - name: git-url value: "{{ repo_url }}" - name: git-read-url - value: "{{ git_read_url }}" + value: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-agentrun.git - name: git-write-url - value: "{{ git_write_url }}" + value: http://git-mirror-write.devops-infra.svc.cluster.local:8080/pikasTech/agentrun.git - name: source-branch - value: "{{ source_branch }}" + value: release - name: gitops-branch - value: "{{ gitops_branch }}" + value: nc01-release-gitops - name: revision value: "{{ revision }}" - name: source-stage-ref - value: "{{ source_snapshot_prefix }}/{{ revision }}" + value: "refs/unidesk/snapshots/gitea-actions/agentrun-release/{{ revision }}" - name: registry-prefix value: 127.0.0.1:5000/agentrun - name: tools-image From ae485c5c1496419f541993ae018dcf2bbd0f1a50 Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Wed, 15 Jul 2026 18:13:36 +0200 Subject: [PATCH 05/13] =?UTF-8?q?chore:=20=E5=AF=B9=E9=BD=90=20release=20A?= =?UTF-8?q?rgo=20bootstrap=20=E9=85=8D=E7=BD=AE=E5=93=88=E5=B8=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tekton/agentrun-nc01-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tekton/agentrun-nc01-release.yaml b/.tekton/agentrun-nc01-release.yaml index 5c27b0d..af8b321 100644 --- a/.tekton/agentrun-nc01-release.yaml +++ b/.tekton/agentrun-nc01-release.yaml @@ -10,7 +10,7 @@ metadata: pipelinesascode.tekton.dev/max-keep-runs: "8" unidesk.ai/pac-admission-provenance: admission-pac-v2:agentrun-nc01-release unidesk.ai/owning-config-ref: "config/agentrun.yaml#controlPlane.lanes.nc01-release" - unidesk.ai/effective-config-sha256: sha256:40d8cf88273cca3647631207e1950dab02ef829865c50ab5ae2934291b2c8930 + unidesk.ai/effective-config-sha256: sha256:02f05c966e759ced836e127c09c4666a0cd481d1db481c26f5d6def2a354e3b5 unidesk.ai/source-artifact-renderer: agentrun-control-plane unidesk.ai/source-artifact-mode: embedded-pipeline-spec labels: From b68c12d4d6eaeaa6a697087b1b700eb7dc772a0a Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Thu, 16 Jul 2026 07:50:01 +0200 Subject: [PATCH 06/13] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20AgentRun=20?= =?UTF-8?q?=E6=9D=83=E5=A8=81=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mgr/postgres-store.ts | 78 +++++++++- src/mgr/server.ts | 42 ++++- src/mgr/store.ts | 195 ++++++++++++++++++++++++ src/selftest/cases/10-manager-memory.ts | 66 +++++++- 4 files changed, 377 insertions(+), 4 deletions(-) diff --git a/src/mgr/postgres-store.ts b/src/mgr/postgres-store.ts index 62c5aa1..b8f194a 100644 --- a/src/mgr/postgres-store.ts +++ b/src/mgr/postgres-store.ts @@ -5,8 +5,8 @@ import { AgentRunError } from "../common/errors.js"; import { redactJson } from "../common/redaction.js"; import type { BackendProfile, BackendTurnResult, CancelRequestRecord, CancelStage, CancelTargetKind, CommandRecord, CommandState, CreateCommandInput, CreateQueueTaskInput, CreateRunInput, EventType, FailureKind, JsonRecord, JsonValue, KafkaEventOutboxRecord, ListGcExpiredSessionsInput, QueueAttemptListResult, QueueAttemptRecord, QueueAttemptRef, QueueCommanderSnapshot, QueueReadCursorRecord, QueueRetryActivation, QueueRetryReservation, QueueStats, QueueTaskListResult, QueueTaskRecord, QueueTaskState, RunEvent, RunnerDispatchCompletion, RunnerDispatchIntentRecord, RunnerJobRecord, RunnerRecord, RunRecord, RunStatus, SessionEventPage, SessionListResult, SessionReadCursorRecord, SessionRecord, SessionRef, SessionStoragePatch, SessionSummary, TerminalStatus, UpsertSessionInput } from "../common/types.js"; import { newId, nowIso, stableHash } from "../common/validation.js"; -import type { ActivateQueueRetryAttemptInput, AgentRunStore, CreateRunIdentity, DurableQueueClaim, EventOutboxConfig, ListQueueAttemptsInput, ListQueueTasksInput, ListSessionsInput, RecordQueueRetryAttemptFailureInput, ReserveQueueRetryAttemptInput, RunnerRetentionFenceFacts, RunnerRetentionFenceInput, SaveRunnerJobInput, SessionEventPageInput, SessionSteerAdmission, SessionSteerAdmissionInput, SessionTurnAdmission, SessionTurnAdmissionInput, StoreHealth, UpdateQueueTaskAttemptInput } from "./store.js"; -import { activeSessionAdmissionConflict, assertQueueAttemptActivationReplay, assertQueueRetryable, assertQueueTaskPayloadHash, assertRunCreateReplay, assertSessionBoundary, assertSessionCommandReplay, assertSessionSteerAdmissionContract, assertSessionTurnAdmissionContract, buildQueueStats, buildQueueTaskSummary, buildSessionSummary, cancelStagePayload, clampQueueLimit, clampSessionLimit, commandStateFromTerminal, fenceLateEventForCancelledRun, invalidSessionAdmissionProjection, isLeaseExpired, isSessionOutputEvent, isTerminalCommandState, isTerminalQueueAttemptState, isTerminalQueueTaskState, isTerminalRunStatus, latestQueueAttempt, lateWriteRejectedPayload, nextQueueRetryIndex, parseQueueCursor, parseSessionCursor, queueAttemptRef, queueRetryReservation, queueRetryStateError, queueTaskMatchesCommander, queueTaskPayloadHash, queueTaskSort, receivableActiveSessionTurn, runCreatedEventPayload, runnerDispatchFailureKind, runnerDispatchFailureReason, sessionListFilters, sessionMatchesListState, sessionRefFromRecord, sessionSort, sessionTitleFromCommand, staleActiveSessionTurn, statusFromTerminal, summarizeSessionRef, titleFromMetadata } from "./store.js"; +import type { ActivateQueueRetryAttemptInput, AgentRunStore, CreateRunIdentity, DurableQueueClaim, EventOutboxConfig, ListQueueAttemptsInput, ListQueueTasksInput, ListRunsInput, ListSessionsInput, RecordQueueRetryAttemptFailureInput, ReserveQueueRetryAttemptInput, RunCollectionResult, RunnerRetentionFenceFacts, RunnerRetentionFenceInput, SaveRunnerJobInput, SessionEventPageInput, SessionSteerAdmission, SessionSteerAdmissionInput, SessionTurnAdmission, SessionTurnAdmissionInput, StoreHealth, UpdateQueueTaskAttemptInput } from "./store.js"; +import { activeSessionAdmissionConflict, assertQueueAttemptActivationReplay, assertQueueRetryable, assertQueueTaskPayloadHash, assertRunCreateReplay, assertSessionBoundary, assertSessionCommandReplay, assertSessionSteerAdmissionContract, assertSessionTurnAdmissionContract, buildQueueStats, buildQueueTaskSummary, buildSessionSummary, cancelStagePayload, clampQueueLimit, clampSessionLimit, commandStateFromTerminal, fenceLateEventForCancelledRun, invalidSessionAdmissionProjection, isLeaseExpired, isSessionOutputEvent, isTerminalCommandState, isTerminalQueueAttemptState, isTerminalQueueTaskState, isTerminalRunStatus, latestQueueAttempt, lateWriteRejectedPayload, nextQueueRetryIndex, parseQueueCursor, parseSessionCursor, queueAttemptRef, queueRetryReservation, queueRetryStateError, queueTaskMatchesCommander, queueTaskPayloadHash, queueTaskSort, receivableActiveSessionTurn, runCollectionItem, runCollectionResult, runCreatedEventPayload, runnerDispatchFailureKind, runnerDispatchFailureReason, sessionListFilters, sessionMatchesListState, sessionRefFromRecord, sessionSort, sessionTitleFromCommand, staleActiveSessionTurn, statusFromTerminal, summarizeSessionRef, titleFromMetadata } from "./store.js"; import { backendCapabilitiesSqlValues, mergeBackendCapability } from "../common/backend-profiles.js"; import { normalizeRunEventPayload, requireEventType, requireExternallyAppendableEventType, userMessagePayloadForCommand } from "../common/events.js"; import { buildKafkaEventOutboxRecord, canonicalAgentRunEventPartitionKey } from "./event-outbox.js"; @@ -600,6 +600,80 @@ CREATE TABLE IF NOT EXISTS agentrun_schema_migrations ( return runFromRow(row); } + async listRuns(input: ListRunsInput): Promise { + const parameters: unknown[] = []; + const conditions: string[] = []; + const equalFilter = (column: string, value: string | undefined) => { + if (!value) return; + parameters.push(value); + conditions.push(`${column} = $${parameters.length}`); + }; + if (input.statuses?.length) { + parameters.push(input.statuses); + conditions.push(`r.status = ANY($${parameters.length}::text[])`); + } + equalFilter("r.project_id", input.projectId); + equalFilter("r.workspace_ref->>'path'", input.workspace); + equalFilter("r.backend_profile", input.backendProfile); + equalFilter("r.provider_id", input.providerId); + if (input.updatedAfter) { + parameters.push(input.updatedAfter); + conditions.push(`r.updated_at >= $${parameters.length}::timestamptz`); + } + if (input.search) { + parameters.push(`%${input.search.toLowerCase()}%`); + const index = parameters.length; + conditions.push(`LOWER(CONCAT_WS(E'\\n', r.id, r.project_id, r.workspace_ref->>'path', r.backend_profile, r.provider_id, r.session_ref->>'sessionId', r.session_ref->'metadata'->>'title', r.trace_sink->>'taskId', r.trace_sink->>'lane', r.failure_kind, r.failure_message)) LIKE $${index}`); + } + parameters.push(input.pageSize, (input.page - 1) * input.pageSize); + const limitIndex = parameters.length - 1; + const offsetIndex = parameters.length; + const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : ""; + const orderBy = input.sort === "updated-asc" ? "updated_at ASC, id ASC" + : input.sort === "status-asc" ? "status ASC, updated_at DESC, id DESC" + : input.sort === "id-asc" ? "id ASC" + : "updated_at DESC, id DESC"; + const qualifiedOrderBy = orderBy.replaceAll("updated_at", "p.updated_at").replaceAll("status", "p.status").replaceAll("id", "p.id"); + const result = await this.pool.query(` + WITH filtered AS ( + SELECT r.* + FROM agentrun_runs r + ${where} + ), total AS ( + SELECT COUNT(*)::text AS total_count FROM filtered + ), facets AS ( + SELECT jsonb_build_object( + 'projects', COALESCE((SELECT jsonb_agg(project_id ORDER BY project_id) FROM (SELECT DISTINCT project_id FROM agentrun_runs) values_by_project), '[]'::jsonb), + 'workspaces', COALESCE((SELECT jsonb_agg(workspace ORDER BY workspace) FROM (SELECT DISTINCT workspace_ref->>'path' AS workspace FROM agentrun_runs WHERE workspace_ref->>'path' IS NOT NULL) values_by_workspace), '[]'::jsonb), + 'backends', COALESCE((SELECT jsonb_agg(backend_profile ORDER BY backend_profile) FROM (SELECT DISTINCT backend_profile FROM agentrun_runs) values_by_backend), '[]'::jsonb), + 'providers', COALESCE((SELECT jsonb_agg(provider_id ORDER BY provider_id) FROM (SELECT DISTINCT provider_id FROM agentrun_runs) values_by_provider), '[]'::jsonb), + 'statusCounts', COALESCE((SELECT jsonb_object_agg(status, count) FROM (SELECT status, COUNT(*)::int AS count FROM agentrun_runs GROUP BY status) values_by_status), '{}'::jsonb) + ) AS value + ), paged AS ( + SELECT * FROM filtered ORDER BY ${orderBy} LIMIT $${limitIndex} OFFSET $${offsetIndex} + ) + SELECT p.*, total.total_count, facets.value AS facets, row_to_json(c.*) AS latest_command, row_to_json(j.*) AS latest_runner_job + FROM total CROSS JOIN facets + LEFT JOIN paged p ON TRUE + LEFT JOIN LATERAL ( + SELECT * FROM agentrun_commands command_row WHERE command_row.run_id = p.id ORDER BY command_row.seq DESC LIMIT 1 + ) c ON TRUE + LEFT JOIN LATERAL ( + SELECT * FROM agentrun_runner_jobs job_row WHERE job_row.run_id = p.id ORDER BY job_row.created_at DESC, job_row.id DESC LIMIT 1 + ) j ON TRUE + ORDER BY ${qualifiedOrderBy} NULLS LAST + `, parameters); + const total = Number(result.rows[0]?.total_count ?? 0); + const items = result.rows + .filter((row) => row.id !== null && row.id !== undefined) + .map((row) => runCollectionItem( + runFromRow(row), + row.latest_command ? commandFromRow(jsonRecord(row.latest_command)) : null, + row.latest_runner_job ? runnerJobFromRow(jsonRecord(row.latest_runner_job)) : null, + )); + return runCollectionResult(input, items, total, jsonRecord(result.rows[0]?.facets)); + } + async listEvents(runId: string, afterSeq: number, limit: number): Promise { await this.getRun(runId); const result = await this.pool.query("SELECT * FROM agentrun_events WHERE run_id = $1 AND seq > $2 ORDER BY seq ASC LIMIT $3", [runId, afterSeq, clamp(limit, 1, 500)]); diff --git a/src/mgr/server.ts b/src/mgr/server.ts index 5ff70dc..faa5f4a 100644 --- a/src/mgr/server.ts +++ b/src/mgr/server.ts @@ -1,7 +1,7 @@ import type { Server } from "node:http"; import { createServer } from "node:http"; import type { AddressInfo } from "node:net"; -import type { AgentRunStore, ListQueueTasksInput, ListSessionsInput, SessionEventPageInput } from "./store.js"; +import type { AgentRunStore, ListQueueTasksInput, ListRunsInput, ListSessionsInput, SessionEventPageInput } from "./store.js"; import { assertSessionBoundary, isTerminalCommandState, isTerminalRunStatus, openAgentRunStoreFromEnv, receivableActiveSessionTurn } from "./store.js"; import { agentRunKafkaConfig, type AgentRunKafkaConfig } from "../common/kafka-events.js"; import { AgentRunError, errorToJson } from "../common/errors.js"; @@ -922,6 +922,31 @@ async function route({ method, url, body, signal, store, sourceCommit, authSumma void emitAgentRunOtelSpan("run_created", run, process.env, { startTimeMs: startedAt, kind: 2, attributes: { "http.method": "POST", "http.route": "/api/v1/runs", "http.status_code": 200, backendProfile: run.backendProfile, providerId: run.providerId } }); return run as unknown as JsonValue; } + if (method === "GET" && path === "/api/v1/runs") { + const page = positiveIntegerQuery(url, "page", 1); + const pageSize = positiveIntegerQuery(url, "pageSize", 25, 100); + const input: ListRunsInput = { page, pageSize }; + const status = url.searchParams.get("status"); + if (status) input.statuses = status.split(",").map((item) => validateRunCollectionStatus(item.trim())); + const projectId = optionalTrimmedQuery(url, "projectId"); + const workspace = optionalTrimmedQuery(url, "workspace"); + const backendProfile = optionalTrimmedQuery(url, "backendProfile"); + const providerId = optionalTrimmedQuery(url, "providerId"); + const search = optionalTrimmedQuery(url, "search"); + const updatedAfter = optionalTrimmedQuery(url, "updatedAfter"); + const sort = optionalTrimmedQuery(url, "sort"); + if (projectId) input.projectId = projectId; + if (workspace) input.workspace = workspace; + if (backendProfile) input.backendProfile = backendProfile; + if (providerId) input.providerId = providerId; + if (search) input.search = search; + if (updatedAfter) { + if (!Number.isFinite(Date.parse(updatedAfter))) throw new AgentRunError("schema-invalid", "updatedAfter must be an ISO timestamp", { httpStatus: 400 }); + input.updatedAfter = updatedAfter; + } + if (sort) input.sort = validateRunCollectionSort(sort); + return await store.listRuns(input) as unknown as JsonValue; + } const runMatch = path.match(/^\/api\/v1\/runs\/([^/]+)$/u); if (method === "GET" && runMatch) return await store.getRun(runMatch[1] ?? "") as unknown as JsonValue; const eventMatch = path.match(/^\/api\/v1\/runs\/([^/]+)\/events$/u); @@ -1476,6 +1501,21 @@ function positiveIntegerQuery(url: URL, key: string, fallback?: number, maximum return value; } +function optionalTrimmedQuery(url: URL, key: string): string | undefined { + const value = url.searchParams.get(key)?.trim(); + return value ? value : undefined; +} + +function validateRunCollectionStatus(value: string): NonNullable[number] { + if (["pending", "claimed", "running", "completed", "failed", "blocked", "cancelled"].includes(value)) return value as NonNullable[number]; + throw new AgentRunError("schema-invalid", `unsupported run status: ${value}`, { httpStatus: 400 }); +} + +function validateRunCollectionSort(value: string): NonNullable { + if (["updated-desc", "updated-asc", "status-asc", "id-asc"].includes(value)) return value as NonNullable; + throw new AgentRunError("schema-invalid", `unsupported run collection sort: ${value}`, { httpStatus: 400 }); +} + async function waitForEventsPage(input: { store: AgentRunStore; runId: string; afterSeq: number; expect: number; timeoutMs: number; limit: number; signal: AbortSignal }): Promise<{ items: RunEvent[]; timedOut: boolean; observed: number; nextAfterSeq: number; hasMore: boolean; completionReason: "expect-reached" | "run-terminal" | "command-terminal" | "timeout" }> { const deadline = Date.now() + input.timeoutMs; while (true) { diff --git a/src/mgr/store.ts b/src/mgr/store.ts index 2ee6790..bb6f361 100644 --- a/src/mgr/store.ts +++ b/src/mgr/store.ts @@ -78,6 +78,7 @@ export interface AgentRunStore { health(): MaybePromise; createRun(input: CreateRunInput, identity?: CreateRunIdentity): MaybePromise; getRun(runId: string): MaybePromise; + listRuns(input: ListRunsInput): MaybePromise; listEvents(runId: string, afterSeq: number, limit: number): MaybePromise; countEvents(runId: string, afterSeq: number): MaybePromise; waitForRunChange(runId: string, afterSeq: number, timeoutMs: number, signal?: AbortSignal): Promise<"changed" | "timeout" | "aborted">; @@ -144,6 +145,62 @@ export interface CreateRunIdentity { id: string; } +export interface ListRunsInput { + page: number; + pageSize: number; + statuses?: RunRecord["status"][]; + projectId?: string; + workspace?: string; + backendProfile?: string; + providerId?: string; + search?: string; + updatedAfter?: string; + sort?: "updated-desc" | "updated-asc" | "status-asc" | "id-asc"; +} + +export interface RunCollectionItem extends JsonRecord { + id: string; + taskId: string | null; + taskStatus: string; + title: string | null; + commandId: string | null; + commandState: string | null; + commandType: string | null; + attemptId: string | null; + attemptStatus: string; + runnerId: string | null; + runnerJobId: string | null; + sessionId: string | null; + traceId: string | null; + projectId: string; + workspace: string | null; + backend: string; + providerId: string; + nodeId: string; + lane: string | null; + runStatus: string; + terminalStatus: string | null; + phase: string; + result: string | null; + errorCode: string | null; + lastMessage: string | null; + startedAt: string; + finishedAt: string | null; + updatedAt: string; +} + +export interface RunCollectionResult extends JsonRecord { + items: RunCollectionItem[]; + page: number; + pageSize: number; + total: number; + totalPages: number; + hasNextPage: boolean; + facets: JsonRecord; + filters: JsonRecord; + valuesPrinted: false; +} + export interface ListQueueTasksInput { queue?: string; state?: QueueTaskState; @@ -177,6 +234,119 @@ export interface RecordQueueRetryAttemptFailureInput { failureMessage: string; } +export function runCollectionResult(input: ListRunsInput, items: RunCollectionItem[], total: number, facets: JsonRecord = {}): RunCollectionResult { + const totalPages = Math.ceil(total / input.pageSize); + return { + items, + page: input.page, + pageSize: input.pageSize, + total, + totalPages, + hasNextPage: input.page < totalPages, + facets, + filters: { + statuses: input.statuses ?? null, + projectId: input.projectId ?? null, + workspace: input.workspace ?? null, + backendProfile: input.backendProfile ?? null, + providerId: input.providerId ?? null, + search: input.search ?? null, + updatedAfter: input.updatedAfter ?? null, + sort: input.sort ?? "updated-desc", + }, + valuesPrinted: false, + }; +} + +export function runCollectionItem(run: RunRecord, command: CommandRecord | null, runnerJob: RunnerJobRecord | null): RunCollectionItem { + const traceSink = jsonObject(run.traceSink); + const commandPayload = command?.payload ?? null; + const runnerResult = runnerJob?.result ?? null; + const terminal = isTerminalRunStatus(run.status); + const terminalStatus = run.terminalStatus ?? (terminal ? run.status as TerminalStatus : null); + return { + id: run.id, + taskId: textField(traceSink, "taskId"), + taskStatus: run.status, + title: textField(run.sessionRef?.metadata ?? null, "title"), + commandId: command?.id ?? null, + commandState: command?.state ?? null, + commandType: command?.type ?? null, + attemptId: runnerJob?.attemptId ?? null, + attemptStatus: textField(runnerResult, "status") ?? textField(runnerResult, "terminalStatus") ?? run.status, + runnerId: runnerJob?.runnerId ?? run.claimedBy, + runnerJobId: runnerJob?.id ?? null, + sessionId: run.sessionRef?.sessionId ?? null, + traceId: textField(commandPayload, "traceId") ?? textField(traceSink, "traceId"), + projectId: run.projectId, + workspace: run.workspaceRef.path ?? null, + backend: run.backendProfile, + providerId: run.providerId, + nodeId: run.providerId, + lane: textField(traceSink, "lane"), + runStatus: run.status, + terminalStatus, + phase: textField(runnerResult, "phase") ?? (terminal ? `terminal:${terminalStatus}` : run.status), + result: terminalStatus, + errorCode: run.failureKind ?? textField(runnerResult, "failureKind"), + lastMessage: run.failureMessage ?? textField(runnerResult, "failureMessage") ?? textField(runnerResult, "message"), + startedAt: run.createdAt, + finishedAt: terminal ? run.updatedAt : null, + updatedAt: latestIso(run.updatedAt, command?.updatedAt, runnerJob?.updatedAt), + }; +} + +function runCollectionSearchText(run: RunRecord): string { + const traceSink = jsonObject(run.traceSink); + return [ + run.id, + run.projectId, + run.workspaceRef.path, + run.backendProfile, + run.providerId, + run.sessionRef?.sessionId, + textField(run.sessionRef?.metadata ?? null, "title"), + textField(traceSink, "taskId"), + textField(traceSink, "lane"), + run.failureKind, + run.failureMessage, + ].filter((value): value is string => typeof value === "string").join("\n").toLowerCase(); +} + +function jsonObject(value: unknown): JsonRecord | null { + return value !== null && typeof value === "object" && !Array.isArray(value) ? value as JsonRecord : null; +} + +function textField(value: unknown, key: string): string | null { + const object = jsonObject(value); + const field = object?.[key]; + return typeof field === "string" && field.trim().length > 0 ? field.trim() : null; +} + +function latestIso(...values: Array): string { + return values.filter((value): value is string => Boolean(value)).sort().at(-1) ?? nowIso(); +} + +function compareRunCollection(left: RunRecord, right: RunRecord, sort: NonNullable): number { + if (sort === "updated-asc") return left.updatedAt.localeCompare(right.updatedAt) || left.id.localeCompare(right.id); + if (sort === "status-asc") return left.status.localeCompare(right.status) || right.updatedAt.localeCompare(left.updatedAt) || right.id.localeCompare(left.id); + if (sort === "id-asc") return left.id.localeCompare(right.id); + return right.updatedAt.localeCompare(left.updatedAt) || right.id.localeCompare(left.id); +} + +function runCollectionFacets(runs: RunRecord[]): JsonRecord { + const values = (items: Array) => [...new Set(items.filter((item): item is string => Boolean(item)))].sort(); + const statusCounts: JsonRecord = {}; + for (const run of runs) statusCounts[run.status] = Number(statusCounts[run.status] ?? 0) + 1; + return { + projects: values(runs.map((run) => run.projectId)), + workspaces: values(runs.map((run) => run.workspaceRef.path)), + backends: values(runs.map((run) => run.backendProfile)), + providers: values(runs.map((run) => run.providerId)), + statusCounts, + }; +} + export interface ListSessionsInput { state?: SessionListState; backendProfile?: BackendProfile; @@ -300,6 +470,31 @@ export class MemoryAgentRunStore implements AgentRunStore { return run; } + listRuns(input: ListRunsInput): RunCollectionResult { + const needle = input.search?.trim().toLowerCase() ?? ""; + const allRuns = Array.from(this.runs.values()); + const matching = allRuns + .filter((run) => !input.statuses || input.statuses.includes(run.status)) + .filter((run) => !input.projectId || run.projectId === input.projectId) + .filter((run) => !input.workspace || run.workspaceRef.path === input.workspace) + .filter((run) => !input.backendProfile || run.backendProfile === input.backendProfile) + .filter((run) => !input.providerId || run.providerId === input.providerId) + .filter((run) => !needle || runCollectionSearchText(run).includes(needle)) + .filter((run) => !input.updatedAfter || run.updatedAt >= input.updatedAfter) + .sort((left, right) => compareRunCollection(left, right, input.sort ?? "updated-desc")); + const offset = (input.page - 1) * input.pageSize; + const items = matching.slice(offset, offset + input.pageSize).map((run) => { + const command = Array.from(this.commands.values()) + .filter((item) => item.runId === run.id) + .sort((left, right) => right.seq - left.seq)[0] ?? null; + const runnerJob = Array.from(this.runnerJobs.values()) + .filter((item) => item.runId === run.id) + .sort((left, right) => right.createdAt.localeCompare(left.createdAt))[0] ?? null; + return runCollectionItem(run, command, runnerJob); + }); + return runCollectionResult(input, items, matching.length, runCollectionFacets(allRuns)); + } + listEvents(runId: string, afterSeq: number, limit: number): RunEvent[] { this.getRun(runId); return (this.eventsByRun.get(runId) ?? []).filter((event) => event.seq > afterSeq).slice(0, Math.max(1, Math.min(limit, 500))); diff --git a/src/selftest/cases/10-manager-memory.ts b/src/selftest/cases/10-manager-memory.ts index 0a8e086..7fd0685 100644 --- a/src/selftest/cases/10-manager-memory.ts +++ b/src/selftest/cases/10-manager-memory.ts @@ -19,14 +19,78 @@ const selfTest: SelfTestCase = async () => { assert.ok((((health.runnerWorkReady as { requiredImageTools?: string[] } | undefined)?.requiredImageTools) ?? []).includes("npm")); assert.equal(health.secretRefs?.valuesPrinted, false); await assertManagerAuthBoundary(); + await assertRunCollectionPagination(client, store); await assertEventsLongPolling(client, store); await assertLongResultUsesTerminalAssistant(client, store); - return { name: "manager-memory", tests: ["manager-memory-lifecycle", "manager-auth-boundary", "manager-events-long-poll", "manager-result-long-trace"] }; + return { name: "manager-memory", tests: ["manager-memory-lifecycle", "manager-auth-boundary", "manager-run-collection-pagination", "manager-events-long-poll", "manager-result-long-trace"] }; } finally { await new Promise((resolve) => server.server.close(() => resolve())); } }; +async function assertRunCollectionPagination(client: ManagerClient, store: MemoryAgentRunStore): Promise { + for (const suffix of ["a", "b", "c"]) { + const run = store.createRun({ + tenantId: "unidesk", + projectId: suffix === "a" ? "pikasTech/HWLAB" : "pikasTech/agentrun", + workspaceRef: { kind: "git-worktree", path: `/tmp/agentrun-collection-${suffix}` }, + sessionRef: { sessionId: `sess_artificer_collection_${suffix}`, metadata: { title: `分页任务${suffix}` } }, + providerId: "NC01", + backendProfile: suffix === "c" ? "gpt-pika" : "codex", + executionPolicy: { + sandbox: "workspace-write", + approval: "never", + timeoutMs: 1000, + network: "none", + secretScope: { allowCredentialEcho: false, providerCredentials: [] }, + }, + traceSink: { taskId: `qt_collection_${suffix}`, lane: "nc01-release", traceId: `trc_collection_${suffix}` }, + }, { id: `run_collection_${suffix}` }); + const command = store.createCommand(run.id, { type: "turn", payload: { prompt: suffix }, idempotencyKey: `collection-${suffix}` }); + if (suffix === "c") { + store.saveRunnerJob({ + runId: run.id, + commandId: command.id, + payloadHash: "collection-c", + attemptId: "attempt_collection_c", + runnerId: "runner_collection_c", + namespace: "agentrun-release", + jobName: "collection-c", + managerUrl: "http://127.0.0.1", + image: "runner-image", + sourceCommit: "self-test", + serviceAccountName: null, + result: { status: "running", phase: "runner:active" }, + }); + } + } + + const first = await client.get("/api/v1/runs?page=1&pageSize=2") as JsonRecord; + assert.equal(first.total, 3); + assert.equal(first.totalPages, 2); + assert.equal(first.hasNextPage, true); + assert.equal((first.items as JsonRecord[]).length, 2); + const second = await client.get("/api/v1/runs?page=2&pageSize=2") as JsonRecord; + assert.equal((second.items as JsonRecord[]).length, 1); + assert.equal(second.hasNextPage, false); + + const searched = await client.get(`/api/v1/runs?search=${encodeURIComponent("分页任务c")}`) as JsonRecord; + const item = (searched.items as JsonRecord[])[0]; + assert.equal(searched.total, 1); + assert.equal(item?.taskId, "qt_collection_c"); + assert.equal(item?.title, "分页任务c"); + assert.equal(item?.workspace, "/tmp/agentrun-collection-c"); + assert.equal(item?.lane, "nc01-release"); + assert.equal(item?.backend, "gpt-pika"); + assert.equal(item?.runnerId, "runner_collection_c"); + assert.equal(item?.attemptId, "attempt_collection_c"); + assert.equal(item?.commandState, "pending"); + + const filtered = await client.get("/api/v1/runs?projectId=pikasTech%2FHWLAB&backendProfile=codex") as JsonRecord; + assert.equal(filtered.total, 1); + assert.equal(((filtered.items as JsonRecord[])[0])?.id, "run_collection_a"); +} + async function assertManagerAuthBoundary(): Promise { const store = new MemoryAgentRunStore(); const server = await startManagerServer({ port: 0, host: "127.0.0.1", sourceCommit: "self-test", store, auth: { apiKey: "self-test-secret", source: "self-test" } }); From 19a6b68a6ef19995e0710f22d1d3f8bf8954f777 Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Thu, 16 Jul 2026 07:50:02 +0200 Subject: [PATCH 07/13] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20Artificer=20A?= =?UTF-8?q?gentRun=20Skill=20=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/aipods/artificer.yaml | 2 +- src/runner/run-once.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/aipods/artificer.yaml b/config/aipods/artificer.yaml index 48720b5..be5d554 100644 --- a/config/aipods/artificer.yaml +++ b/config/aipods/artificer.yaml @@ -147,7 +147,7 @@ spec: - name: git-spec - name: unidesk-trans - name: unidesk-gh - - name: unidesk-code-queue + - name: unidesk-agentrun - name: unidesk-cicd - name: unidesk-subagent - name: unidesk-decision diff --git a/src/runner/run-once.ts b/src/runner/run-once.ts index cd66c10..763b28d 100644 --- a/src/runner/run-once.ts +++ b/src/runner/run-once.ts @@ -205,7 +205,7 @@ function requiresBundledWorkReadyTools(run: RunRecord): boolean { const toolCredentials = run.executionPolicy.secretScope.toolCredentials ?? []; if (toolCredentials.some((item) => item.tool === "unidesk-ssh" || item.tool === "github")) return true; const requiredSkills = run.resourceBundleRef?.requiredSkills ?? []; - return requiredSkills.some((item) => item.name === "unidesk-trans" || item.name === "unidesk-gh" || item.name === "unidesk-code-queue" || item.name === "unidesk-cicd" || item.name === "dad-dev"); + return requiredSkills.some((item) => item.name === "unidesk-trans" || item.name === "unidesk-gh" || item.name === "unidesk-agentrun" || item.name === "unidesk-cicd" || item.name === "dad-dev"); } function withResourceAssembly(options: RunnerOnceOptions, resourceEnv: NodeJS.ProcessEnv | undefined, initialPrompt: InitialPromptAssembly | undefined): RunnerOnceOptions { From 1fe3dab80ba80f0c747111776d9f5484d7425971 Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Thu, 16 Jul 2026 11:28:06 +0200 Subject: [PATCH 08/13] =?UTF-8?q?fix:=20=E4=BD=BF=E7=94=A8=20init=20?= =?UTF-8?q?=E5=9B=9E=E6=94=B6=20runner=20=E5=AD=A4=E5=84=BF=E8=BF=9B?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/container/Containerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/deploy/container/Containerfile b/deploy/container/Containerfile index a193316..4916e9c 100644 --- a/deploy/container/Containerfile +++ b/deploy/container/Containerfile @@ -12,14 +12,14 @@ ENV AGENTRUN_APP_ROOT=/workspace/agentrun ENV AGENTRUN_BOOT_REPO_URL=http://git-mirror-http.devops-infra.svc.cluster.local/pikasTech/agentrun.git RUN HTTP_PROXY="$HTTP_PROXY" HTTPS_PROXY="$HTTPS_PROXY" NO_PROXY="$NO_PROXY" http_proxy="$HTTP_PROXY" https_proxy="$HTTPS_PROXY" no_proxy="$NO_PROXY" \ - apk add --no-cache ca-certificates curl git github-cli kubectl nodejs npm openssh-client ripgrep + apk add --no-cache ca-certificates curl git github-cli kubectl nodejs npm openssh-client ripgrep tini COPY package.json bun.lock tsconfig.json ./ RUN HTTP_PROXY="$HTTP_PROXY" HTTPS_PROXY="$HTTPS_PROXY" NO_PROXY="$NO_PROXY" http_proxy="$HTTP_PROXY" https_proxy="$HTTPS_PROXY" no_proxy="$NO_PROXY" \ bun install --production RUN /opt/agentrun/node_modules/.bin/codex --version && /opt/agentrun/node_modules/.bin/codex app-server --help >/dev/null RUN set -eu; \ - for tool in bun node npm git ssh gh rg curl kubectl; do command -v "$tool" >/dev/null; done; \ + for tool in bun node npm git ssh gh rg curl kubectl tini; do command -v "$tool" >/dev/null; done; \ bun --version >/tmp/agentrun-work-ready-smoke.txt; \ node --version >>/tmp/agentrun-work-ready-smoke.txt; \ npm --version >>/tmp/agentrun-work-ready-smoke.txt; \ @@ -33,4 +33,5 @@ COPY deploy/runtime/boot ./deploy/runtime/boot RUN chmod +x /opt/agentrun/deploy/runtime/boot/*.sh EXPOSE 8080 +ENTRYPOINT ["/sbin/tini", "--"] CMD ["/opt/agentrun/deploy/runtime/boot/agentrun-mgr.sh"] From 91e08ac48a5e35798343edef9fee11dc61f9ef7e Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Thu, 16 Jul 2026 13:29:59 +0200 Subject: [PATCH 09/13] =?UTF-8?q?fix:=20=E4=BF=9D=E7=95=99runner=E9=95=9C?= =?UTF-8?q?=E5=83=8Finit=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/runner/k8s-job.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runner/k8s-job.ts b/src/runner/k8s-job.ts index 3831286..aa1015e 100644 --- a/src/runner/k8s-job.ts +++ b/src/runner/k8s-job.ts @@ -238,7 +238,7 @@ export function renderRunnerJobManifest(options: RunnerJobRenderOptions): { mani name: "runner", image: options.image, imagePullPolicy: options.imagePullPolicy ?? "IfNotPresent", - command: ["/opt/agentrun/deploy/runtime/boot/agentrun-runner.sh"], + args: ["/opt/agentrun/deploy/runtime/boot/agentrun-runner.sh"], env, volumeMounts: [ { name: "runner-home", mountPath: "/home/agentrun" }, From 175aa54d9b780fa952c27b2a0952637d5485dc98 Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Fri, 17 Jul 2026 03:02:27 +0200 Subject: [PATCH 10/13] =?UTF-8?q?fix:=20=E8=A3=85=E9=85=8D=20Artificer=20p?= =?UTF-8?q?ost-task=20skill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/aipods/artificer.yaml | 6 ++++++ src/selftest/cases/79-primary-workspace.ts | 11 ++++++++--- .../cases/81-artificer-nonrecursive-prompt.ts | 8 +++++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/config/aipods/artificer.yaml b/config/aipods/artificer.yaml index be5d554..6e40977 100644 --- a/config/aipods/artificer.yaml +++ b/config/aipods/artificer.yaml @@ -140,11 +140,17 @@ spec: ref: master subpath: git-spec targetPath: .agents/skills/git-spec + - name: post-task-skill + repoUrl: git@github.com:pikasTech/agent_skills.git + ref: master + subpath: post-task + targetPath: .agents/skills/post-task requiredSkills: - name: dad-dev - name: cli-spec - name: docs-spec - name: git-spec + - name: post-task - name: unidesk-trans - name: unidesk-gh - name: unidesk-agentrun diff --git a/src/selftest/cases/79-primary-workspace.ts b/src/selftest/cases/79-primary-workspace.ts index 2079a54..838c7c8 100644 --- a/src/selftest/cases/79-primary-workspace.ts +++ b/src/selftest/cases/79-primary-workspace.ts @@ -28,6 +28,7 @@ const selfTest: SelfTestCase = async (context) => { "capability/probe": "#!/usr/bin/env sh\necho capability\n", "dad-dev/SKILL.md": "---\ndescription: Managed dad-dev capability\n---\n", "git-spec/SKILL.md": "---\ndescription: Managed git-spec capability\n---\n", + "post-task/SKILL.md": "---\ndescription: Managed post-task capability\n---\n", "unidesk-gh/SKILL.md": "---\ndescription: Managed unidesk-gh capability\n---\n", }); const workspaceRef: WorkspaceRef = { kind: "opaque", path: "." }; @@ -41,9 +42,10 @@ const selfTest: SelfTestCase = async (context) => { { name: "addon-tools", repoUrl: addon.path, commitId: addon.commitId, subpath: "capability", targetPath: "tools" }, { name: "dad-dev-skill", repoUrl: addon.path, commitId: addon.commitId, subpath: "dad-dev", targetPath: ".agents/skills/dad-dev" }, { name: "git-spec-skill", repoUrl: addon.path, commitId: addon.commitId, subpath: "git-spec", targetPath: ".agents/skills/git-spec" }, + { name: "post-task-skill", repoUrl: addon.path, commitId: addon.commitId, subpath: "post-task", targetPath: ".agents/skills/post-task" }, { name: "unidesk-gh-skill", repoUrl: addon.path, commitId: addon.commitId, subpath: "unidesk-gh", targetPath: ".agents/skills/unidesk-gh" }, ], - requiredSkills: [{ name: "source-skill" }, { name: "dad-dev" }, { name: "git-spec" }, { name: "unidesk-gh" }], + requiredSkills: [{ name: "source-skill" }, { name: "dad-dev" }, { name: "git-spec" }, { name: "post-task" }, { name: "unidesk-gh" }], }; const workspacePath = path.join(context.tmp, "primary-workspace-materialized"); const env = { AGENTRUN_WORKSPACE_ROOT: path.join(context.tmp, "primary-workspace-assembly"), AGENTRUN_WORKSPACE_PATH: workspacePath, AGENTRUN_RUN_ID: "run_primary_workspace_selftest" }; @@ -66,11 +68,13 @@ const selfTest: SelfTestCase = async (context) => { await access(path.join(first.skillsDir, "source-skill", "SKILL.md")); await access(path.join(first.skillsDir, "dad-dev", "SKILL.md")); await access(path.join(first.skillsDir, "git-spec", "SKILL.md")); + await access(path.join(first.skillsDir, "post-task", "SKILL.md")); await access(path.join(first.skillsDir, "unidesk-gh", "SKILL.md")); assert.equal(await readFile(path.join(first.binPath, "probe"), "utf8"), "#!/usr/bin/env sh\necho capability\n"); assert.match(await readFile(path.join(first.skillsDir, "dad-dev", "SKILL.md"), "utf8"), /Managed dad-dev capability/u); assert.match(first.initialPrompt?.text ?? "", /manifest=.*\.git\/agentrun-managed-overlay\/\.agents\/skills\/dad-dev\/SKILL\.md skillsDirEnv=AGENTRUN_SKILLS_DIRS/u); assert.match(first.initialPrompt?.text ?? "", /manifest=.*\.git\/agentrun-managed-overlay\/\.agents\/skills\/git-spec\/SKILL\.md skillsDirEnv=AGENTRUN_SKILLS_DIRS/u); + assert.match(first.initialPrompt?.text ?? "", /manifest=.*\.git\/agentrun-managed-overlay\/\.agents\/skills\/post-task\/SKILL\.md skillsDirEnv=AGENTRUN_SKILLS_DIRS/u); assert.match(first.initialPrompt?.text ?? "", /manifest=.*\.git\/agentrun-managed-overlay\/\.agents\/skills\/unidesk-gh\/SKILL\.md skillsDirEnv=AGENTRUN_SKILLS_DIRS/u); assert.equal((await execFile("git", ["status", "--porcelain=v1", "--untracked-files=all"], { cwd: workspacePath })).stdout, ""); assert.equal((await execFile("git", ["rev-parse", "HEAD"], { cwd: workspacePath })).stdout.trim(), primary.commitId); @@ -88,9 +92,9 @@ const selfTest: SelfTestCase = async (context) => { assert.equal(managedOverlay.rootRelativeToWorkspace, ".git/agentrun-managed-overlay"); assert.equal(managedOverlay.sourceViewIsolated, true); const bundleItems = ((first.event.bundles as JsonRecord).items as JsonRecord[]); - assert.deepEqual(bundleItems.map((item) => item.logicalTargetPath), [".agents/skills", "tools", ".agents/skills/dad-dev", ".agents/skills/git-spec", ".agents/skills/unidesk-gh"]); + assert.deepEqual(bundleItems.map((item) => item.logicalTargetPath), [".agents/skills", "tools", ".agents/skills/dad-dev", ".agents/skills/git-spec", ".agents/skills/post-task", ".agents/skills/unidesk-gh"]); assert.equal(bundleItems.every((item) => item.storageKind === "git-metadata-overlay"), true); - assert.deepEqual(((first.event.requiredSkills as JsonRecord).names), ["source-skill", "dad-dev", "git-spec", "unidesk-gh"]); + assert.deepEqual(((first.event.requiredSkills as JsonRecord).names), ["source-skill", "dad-dev", "git-spec", "post-task", "unidesk-gh"]); const provenancePath = path.join(workspacePath, ".git", "agentrun-primary-workspace.json"); const persistedProvenance = JSON.parse(await readFile(provenancePath, "utf8")) as JsonRecord; assert.equal(persistedProvenance.resolutionAuthority, "declared-commit"); @@ -264,6 +268,7 @@ const selfTest: SelfTestCase = async (context) => { "managed-capability-overlay-keeps-primary-source-view-clean", "managed-capability-overlay-preserves-nested-targets", "managed-capability-overlay-publishes-tools-and-skills", + "managed-post-task-skill-materializes-and-indexes", "real-primary-source-modifications-remain-git-visible", "primary-workspace-continuation-preserves-dirty-tree", "primary-workspace-continuation-freezes-mutable-ref", diff --git a/src/selftest/cases/81-artificer-nonrecursive-prompt.ts b/src/selftest/cases/81-artificer-nonrecursive-prompt.ts index 8e35e28..9ec1db7 100644 --- a/src/selftest/cases/81-artificer-nonrecursive-prompt.ts +++ b/src/selftest/cases/81-artificer-nonrecursive-prompt.ts @@ -41,6 +41,12 @@ const selfTest: SelfTestCase = async (context) => { assert.match(effectivePrompt, /runner 容器本地执行冒充 Target 原入口验证/u); assert.match(effectivePrompt, /不得把 NC01、目标绝对路径或第二条执行路径硬编码/u); assert.ok(requiredSkills.some((item) => item.name === "unidesk-trans"), "Artificer must require the unidesk-trans skill"); + assert.ok(requiredSkills.some((item) => item.name === "post-task"), "Artificer must require the post-task skill"); + assert.ok(bundles.some((item) => item.name === "post-task-skill" + && item.repoUrl === "git@github.com:pikasTech/agent_skills.git" + && item.ref === "master" + && item.subpath === "post-task" + && item.targetPath === ".agents/skills/post-task"), "Artificer must source post-task from the agent_skills bundle authority"); assert.ok(bundles.some((item) => item.name === "agentrun-runner-tools" && item.targetPath === "tools"), "Artificer must materialize the bundled trans executable"); const unideskSsh = toolCredentials.find((item) => item.tool === "unidesk-ssh" && item.purpose === "ssh-passthrough"); assert.ok(unideskSsh, "Artificer must bind the unidesk-ssh route credential"); @@ -49,7 +55,7 @@ const selfTest: SelfTestCase = async (context) => { assert.equal(effectivePrompt.endsWith(userPrompt), true, "rendered prompt must preserve the complete user business prompt"); assert.equal(effectivePrompt.split(userPrompt).length - 1, 1, "rendered prompt must include the user business prompt exactly once"); - return { name: "artificer-nonrecursive-prompt", tests: ["artificer-yaml-nonrecursive-prompt-render", "artificer-target-trans-prompt-render", "artificer-trans-skill-tool-and-secretref-bound", "artificer-user-prompt-preserved"] }; + return { name: "artificer-nonrecursive-prompt", tests: ["artificer-yaml-nonrecursive-prompt-render", "artificer-target-trans-prompt-render", "artificer-trans-skill-tool-and-secretref-bound", "artificer-post-task-agent-skills-authority", "artificer-user-prompt-preserved"] }; }; export default selfTest; From 791b3dbabc37376600294d5c3e06ad068ff7dddb Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Tue, 21 Jul 2026 19:56:31 +0200 Subject: [PATCH 11/13] =?UTF-8?q?fix:=20=E5=88=B7=E6=96=B0=20release=20Git?= =?UTF-8?q?ea=20=E6=BA=90=E7=A0=81=E5=88=B6=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tekton/agentrun-nc01-release.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.tekton/agentrun-nc01-release.yaml b/.tekton/agentrun-nc01-release.yaml index af8b321..112d8ec 100644 --- a/.tekton/agentrun-nc01-release.yaml +++ b/.tekton/agentrun-nc01-release.yaml @@ -10,7 +10,7 @@ metadata: pipelinesascode.tekton.dev/max-keep-runs: "8" unidesk.ai/pac-admission-provenance: admission-pac-v2:agentrun-nc01-release unidesk.ai/owning-config-ref: "config/agentrun.yaml#controlPlane.lanes.nc01-release" - unidesk.ai/effective-config-sha256: sha256:02f05c966e759ced836e127c09c4666a0cd481d1db481c26f5d6def2a354e3b5 + unidesk.ai/effective-config-sha256: sha256:0894d407b6e7561a0957803a3a004ae6b87d780bd79fba33b6fb49e5c697d453 unidesk.ai/source-artifact-renderer: agentrun-control-plane unidesk.ai/source-artifact-mode: embedded-pipeline-spec labels: @@ -27,10 +27,10 @@ spec: default: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-agentrun.git - name: git-read-url type: string - default: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/agentrun.git + default: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-agentrun.git - name: git-write-url type: string - default: http://git-mirror-write.devops-infra.svc.cluster.local:8080/pikasTech/agentrun.git + default: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-agentrun.git - name: source-branch type: string default: release @@ -253,7 +253,7 @@ spec: name: pac-gitea-agentrun-nc01-release key: token optional: true - script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nbuild_result=\"$root/build-result.json\"\ntest -s \"$build_result\"\ntemplates_b64=\"W3sicGF0aCI6InNvdXJjZS5qc29uIiwiY29udGVudCI6IntcbiAgXCJsYW5lXCI6IFwicmVsZWFzZVwiLFxuICBcInNvdXJjZUNvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwiZ2VuZXJhdGVkQnlcIjogXCJ1bmlkZXNrIGNvbmZpZy9hZ2VudHJ1bi55YW1sXCIsXG4gIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIlxufVxuIn0seyJwYXRoIjoiZGVwbG95L2FydGlmYWN0LWNhdGFsb2cubmMwMS1yZWxlYXNlLmpzb24iLCJjb250ZW50Ijoie1xuICBcImxhbmVcIjogXCJyZWxlYXNlXCIsXG4gIFwic291cmNlQnJhbmNoXCI6IFwicmVsZWFzZVwiLFxuICBcImdpdG9wc0JyYW5jaFwiOiBcIm5jMDEtcmVsZWFzZS1naXRvcHNcIixcbiAgXCJzb3VyY2VDb21taXRJZFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwic3VtbWFyeVwiOiBcImJ1aWxkPTEgcmV1c2U9MCBwbGFjZWhvbGRlcj0wXCIsXG4gIFwic2VydmljZXNcIjogW1xuICAgIHtcbiAgICAgIFwic2VydmljZUlkXCI6IFwiYWdlbnRydW4tbWdyXCIsXG4gICAgICBcImFydGlmYWN0S2luZFwiOiBcImVudi1yZXVzZVwiLFxuICAgICAgXCJzdGF0dXNcIjogXCJfX0FHRU5UUlVOX0lNQUdFX1NUQVRVU19fXCIsXG4gICAgICBcImltYWdlXCI6IFwiMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudjpfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9fXCIsXG4gICAgICBcImRpZ2VzdFwiOiBcInNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcInJlcG9zaXRvcnlEaWdlc3RcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcImltYWdlVGFnXCI6IFwiX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZJZGVudGl0eVwiOiBcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52SW1hZ2VcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52Ol9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52RGlnZXN0XCI6IFwic2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiZW52UmVwb3NpdG9yeURpZ2VzdFwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiYm9vdENvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gICAgICBcImJvb3RTY3JpcHRcIjogXCJkZXBsb3kvcnVudGltZS9ib290L2FnZW50cnVuLWJvb3Quc2hcIixcbiAgICAgIFwicHJvdmVuYW5jZVwiOiB7XG4gICAgICAgIFwic291cmNlQ29tbWl0SWRcIjogXCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wiLFxuICAgICAgICBcInNvdXJjZVwiOiBcInVuaWRlc2steWFtbC1vbmx5XCIsXG4gICAgICAgIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIixcbiAgICAgICAgXCJ2YWx1ZXNQcmludGVkXCI6IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICBdXG59XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvcHJvamVjdC55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBQcm9qZWN0LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLG5hbWVzcGFjZTogYXJnb2NkLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0sc3BlYzoge2Rlc2NyaXB0aW9uOiBBZ2VudFJ1biByZWxlYXNlIEdpdE9wcyBsYW5lLHNvdXJjZVJlcG9zOiBbaHR0cDovL2dpdC1taXJyb3ItaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9waWthc1RlY2gvYWdlbnRydW4uZ2l0LGh0dHA6Ly9naXRlYS1odHRwLmRldm9wcy1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDozMDAwL21pcnJvcnMvcGlrYXNUZWNoLWFnZW50cnVuLmdpdF0sZGVzdGluYXRpb25zOiBbe3NlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZX1dLGNsdXN0ZXJSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCJcIixraW5kOiBOYW1lc3BhY2V9XSxuYW1lc3BhY2VSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCIqXCIsa2luZDogXCIqXCJ9XX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvYXBwbGljYXRpb24tcmVsZWFzZS55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBsaWNhdGlvbixtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZSxuYW1lc3BhY2U6IGFyZ29jZCxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtwcm9qZWN0OiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2Usc291cmNlOiB7cmVwb1VSTDogaHR0cDovL2dpdC1taXJyb3ItaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9waWthc1RlY2gvYWdlbnRydW4uZ2l0LHRhcmdldFJldmlzaW9uOiBuYzAxLXJlbGVhc2UtZ2l0b3BzLHBhdGg6IGRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZX0sZGVzdGluYXRpb246IHtzZXJ2ZXI6IGh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyxuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2V9LHN5bmNQb2xpY3k6IHthdXRvbWF0ZWQ6IHtwcnVuZTogZmFsc2Usc2VsZkhlYWw6IHRydWV9LHN5bmNPcHRpb25zOiBbQ3JlYXRlTmFtZXNwYWNlPXRydWUsQXBwbHlPdXRPZlN5bmNPbmx5PXRydWVdfX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2Uva3VzdG9taXphdGlvbi55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBrdXN0b21pemUuY29uZmlnLms4cy5pby92MWJldGExLGtpbmQ6IEt1c3RvbWl6YXRpb24scmVzb3VyY2VzOiBbbmFtZXNwYWNlLnlhbWwsbWdyLnlhbWwscnVubmVyLXJiYWMueWFtbF19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvbmFtZXNwYWNlLnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IHYxLGtpbmQ6IE5hbWVzcGFjZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbiJ9LHsicGF0aCI6ImRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZS9tZ3IueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW1ncixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7c2VsZWN0b3I6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9LHBvcnRzOiBbe25hbWU6IGh0dHAscG9ydDogODA4MCx0YXJnZXRQb3J0OiBodHRwfV19fVxuLS0tXG57YXBpVmVyc2lvbjogYXBwcy92MSxraW5kOiBEZXBsb3ltZW50LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtyZXBsaWNhczogMSxzZWxlY3Rvcjoge21hdGNoTGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogYWdlbnRydW4tbWdyfX0sdGVtcGxhdGU6IHttZXRhZGF0YToge2xhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxLGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IGFnZW50cnVuLW1ncn0sYW5ub3RhdGlvbnM6IHthZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvc291cmNlLWNvbW1pdDogX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX18sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2Vudi1pZGVudGl0eTogX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX319LHNwZWM6IHtzZXJ2aWNlQWNjb3VudE5hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3IsY29udGFpbmVyczogW3tuYW1lOiBtZ3IsaW1hZ2U6IDEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEsaW1hZ2VQdWxsUG9saWN5OiBJZk5vdFByZXNlbnQscG9ydHM6IFt7bmFtZTogaHR0cCxjb250YWluZXJQb3J0OiA4MDgwfV0sZW52OiBbe25hbWU6IEFHRU5UUlVOX0xBTkUsdmFsdWU6IHJlbGVhc2V9LHtuYW1lOiBEQVRBQkFTRV9VUkwsdmFsdWVGcm9tOiB7c2VjcmV0S2V5UmVmOiB7bmFtZTogYWdlbnRydW4tcmVsZWFzZS1tZ3ItZGIsa2V5OiBEQVRBQkFTRV9VUkx9fX0se25hbWU6IEFHRU5UUlVOX1NPVVJDRV9DT01NSVQsdmFsdWU6IF9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9ffSx7bmFtZTogQUdFTlRSVU5fQk9PVF9DT01NSVQsdmFsdWU6IF9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9ffSx7bmFtZTogQUdFTlRSVU5fQk9PVF9NT0RFLHZhbHVlOiBtZ3J9LHtuYW1lOiBBR0VOVFJVTl9CT09UX1JFUE9fVVJMLHZhbHVlOiBodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMC9taXJyb3JzL3Bpa2FzVGVjaC1hZ2VudHJ1bi5naXR9LHtuYW1lOiBBR0VOVFJVTl9FTlZfSURFTlRJVFksdmFsdWU6IF9fQUdFTlRSVU5fRU5WX0lERU5USVRZX199LHtuYW1lOiBBR0VOVFJVTl9SVU5USU1FX05BTUVTUEFDRSx2YWx1ZTogYWdlbnRydW4tcmVsZWFzZX0se25hbWU6IEFHRU5UUlVOX0lOVEVSTkFMX01HUl9VUkwsdmFsdWU6IGh0dHA6Ly9hZ2VudHJ1bi1tZ3IuYWdlbnRydW4tcmVsZWFzZS5zdmMuY2x1c3Rlci5sb2NhbDo4MDgwfSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0lNQUdFLHZhbHVlOiAxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhfSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1NFUlZJQ0VfQUNDT1VOVCx2YWx1ZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lcn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9KT0JfTkFNRV9QUkVGSVgsdmFsdWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1ydW5uZXJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfQVBJX0tFWV9TRUNSRVRfTkFNRSx2YWx1ZTogYWdlbnRydW4tcmVsZWFzZS1hcGkta2V5fSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0FQSV9LRVlfU0VDUkVUX0tFWSx2YWx1ZTogSFdMQUJfQVBJX0tFWX0se25hbWU6IEFHRU5UUlVOX0dJVF9NSVJST1JfQkFTRV9VUkwsdmFsdWU6IGh0dHA6Ly9naXQtbWlycm9yLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjgwODB9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfSURMRV9USU1FT1VUX01TLHZhbHVlOiBcIjYwMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9NQVhfQVRURU1QVFMsdmFsdWU6IFwiNVwifSx7bmFtZTogQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9JTklUSUFMX0JBQ0tPRkZfTVMsdmFsdWU6IFwiMTAwMFwifSx7bmFtZTogQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9NQVhfQkFDS09GRl9NUyx2YWx1ZTogXCIzMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9NQVhfUlVOTkVSUyx2YWx1ZTogXCIxMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9DTEVBTlVQX09SREVSLHZhbHVlOiBvbGRlc3QtaW5hY3RpdmUtbGFzdC1hY3RpdmUtZmlyc3R9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0FDVElWRV9IRUFSVEJFQVRfTUFYX0FHRV9NUyx2YWx1ZTogXCI5MDAwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fU1RBTEVfUEVORElOR19NQVhfQUdFX01TLHZhbHVlOiBcIjkwMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9NQVRDSF9MQUJFTFNfSlNPTix2YWx1ZTogXCJ7XFxcImFwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2ZcXFwiOlxcXCJhZ2VudHJ1blxcXCIsXFxcImFwcC5rdWJlcm5ldGVzLmlvL25hbWVcXFwiOlxcXCJhZ2VudHJ1bi1ydW5uZXJcXFwiLFxcXCJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnRcXFwiOlxcXCJydW5uZXJcXFwifVwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9KT0JfTkFNRV9QUkVGSVhFUyx2YWx1ZTogXCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLGFnZW50cnVuLXJlbGVhc2UtcnVubmVyXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0FHRV9CQVNFRF9DTEVBTlVQX0VOQUJMRUQsdmFsdWU6IFwiZmFsc2VcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX01BWF9BR0VfSE9VUlMsdmFsdWU6IFwiNDhcIn0se25hbWU6IEFHRU5UUlVOX0NBTkNFTF9ERUxJVkVSWV9NT0RFLHZhbHVlOiBtYW5hZ2VyLWVwb2NofSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX0dSQUNFRlVMX0FCT1JUX01TLHZhbHVlOiBcIjE1MDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9DQU5DRUxfS0lMTF9FU0NBTEFUSU9OX01TLHZhbHVlOiBcIjMwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9DQU5DRUxfU1RBTEVfSEVBUlRCRUFUX0ZFTkNJTkdfTVMsdmFsdWU6IFwiOTAwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9DQU5DRUxfTEFURV9XUklURV9GRU5DSU5HX0VOQUJMRUQsdmFsdWU6IFwidHJ1ZVwifSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX0VWRU5UX1NUQUdFUyx2YWx1ZTogXCJhY2NlcHRlZCxwZXJzaXN0ZWQsZGVsaXZlcmVkLGFib3J0aW5nLHRlcm1pbmFsaXplZCxmZW5jZWQsbGF0ZS13cml0ZS1yZWplY3RlZFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0VHUkVTU19QUk9YWV9VUkwsdmFsdWU6IGh0dHA6Ly8xMC40Mi4wLjE6MTA4MDh9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfTk9fUFJPWFlfRVhUUkEsdmFsdWU6IFwibG9jYWxob3N0LDEyNy4wLjAuMSw6OjEsLnN2Yywuc3ZjLmNsdXN0ZXIubG9jYWwsLmNsdXN0ZXIubG9jYWwsaHl1ZWFwaS5jb20sLmh5dWVhcGkuY29tLGFwaS5waWthcHl0aG9uLmNvbSwucGlrYXB5dGhvbi5jb21cIn0se25hbWU6IEFHRU5UUlVOX0FQSV9LRVksdmFsdWVGcm9tOiB7c2VjcmV0S2V5UmVmOiB7bmFtZTogYWdlbnRydW4tcmVsZWFzZS1hcGkta2V5LGtleTogSFdMQUJfQVBJX0tFWX19fSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfQk9PVFNUUkFQX1NFUlZFUlMsdmFsdWU6IHBsYXRmb3JtLWluZnJhLWthZmthLWthZmthLWJvb3RzdHJhcC5wbGF0Zm9ybS1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkyfSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfQ0xJRU5UX0lELHZhbHVlOiBhZ2VudHJ1bi1yZWxlYXNlLW1hbmFnZXJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX0tBRktBX0VWRU5UX1RPUElDLHZhbHVlOiBhZ2VudHJ1bi5ldmVudC52MX0se25hbWU6IEFHRU5UUlVOX0tBRktBX09VVEJPWF9CQVRDSF9TSVpFLHZhbHVlOiBcIjEwMFwifSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0lOVEVSVkFMX01TLHZhbHVlOiBcIjUwMFwifSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0xFQVNFX01TLHZhbHVlOiBcIjYwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9PVVRCT1hfUkVUUllfQkFDS09GRl9NUyx2YWx1ZTogXCI1MDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9TVERJT19DTElFTlRfSUQsdmFsdWU6IGFnZW50cnVuLXJlbGVhc2UtcnVubmVyfSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfU1RESU9fUFJPRFVDRV9FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX0tBRktBX1NURElPX1RPUElDLHZhbHVlOiBjb2RleC1zdGRpby5yYXcudjF9LHtuYW1lOiBBR0VOVFJVTl9NQU5BR0VSX1JFQ09OQ0lMRVJfQkFUQ0hfU0laRSx2YWx1ZTogXCIyMFwifSx7bmFtZTogQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0VOQUJMRUQsdmFsdWU6IFwidHJ1ZVwifSx7bmFtZTogQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0lOVEVSVkFMX01TLHZhbHVlOiBcIjMwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9QT1NUR1JFU19QT09MX01BWCx2YWx1ZTogXCI0XCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9BVFRFTVBUX1RJTUVPVVRfTVMsdmFsdWU6IFwiOTAwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0JBVENIX1NJWkUsdmFsdWU6IFwiMTBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0VOQUJMRUQsdmFsdWU6IFwidHJ1ZVwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfSU5URVJWQUxfTVMsdmFsdWU6IFwiMTAwMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTEVBU0VfTVMsdmFsdWU6IFwiMTIwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9NQVhfQVRURU1QVFMsdmFsdWU6IFwiNVwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfUkVUUllfQkFDS09GRl9NUyx2YWx1ZTogXCI1MDAwXCJ9LHtuYW1lOiBIV0xBQl9SVU5USU1FX0xBTkUsdmFsdWU6IHJlbGVhc2V9LHtuYW1lOiBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0VORFBPSU5ULHZhbHVlOiBodHRwOi8vb3RlbC1jb2xsZWN0b3IucGxhdGZvcm0taW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6NDMxOC92MS90cmFjZXN9LHtuYW1lOiBPVEVMX1NFUlZJQ0VfTkFNRSx2YWx1ZTogYWdlbnRydW4tbWFuYWdlcn0se25hbWU6IFVOSURFU0tfTk9ERV9JRCx2YWx1ZTogTkMwMX0se25hbWU6IFVOSURFU0tfTUFJTl9TRVJWRVJfSVAsdmFsdWU6IDE1Mi41My4yMjkuMTQ4fV0scmVhZGluZXNzUHJvYmU6IHtodHRwR2V0OiB7cGF0aDogL2hlYWx0aC9yZWFkaW5lc3MscG9ydDogaHR0cH0sdGltZW91dFNlY29uZHM6IDJ9LGxpdmVuZXNzUHJvYmU6IHtodHRwR2V0OiB7cGF0aDogL2hlYWx0aC9saXZlLHBvcnQ6IGh0dHB9LHRpbWVvdXRTZWNvbmRzOiAyfSxzdGFydHVwUHJvYmU6IHtodHRwR2V0OiB7cGF0aDogL2hlYWx0aC9saXZlLHBvcnQ6IGh0dHB9LHBlcmlvZFNlY29uZHM6IDEwLHRpbWVvdXRTZWNvbmRzOiAyLGZhaWx1cmVUaHJlc2hvbGQ6IDkwfSxyZXNvdXJjZXM6IHtyZXF1ZXN0czoge2NwdTogMTAwbSxtZW1vcnk6IDI1Nk1pfSxsaW1pdHM6IHtjcHU6IDgwMG0sbWVtb3J5OiAxR2l9fX1dfX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi1yZWxlYXNlLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbYmF0Y2hdLHJlc291cmNlczogW2pvYnNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtwb2RzXSx2ZXJiczogW2RlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtldmVudHNdLHZlcmJzOiBbZ2V0LGxpc3Qsd2F0Y2hdfSx7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbcGVyc2lzdGVudHZvbHVtZWNsYWltc10sdmVyYnM6IFtjcmVhdGUsZ2V0LGxpc3Qsd2F0Y2gsZGVsZXRlXX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3ItcnVubmVyLWpvYi1jb250cm9sbGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHN1YmplY3RzOiBbe2tpbmQ6IFNlcnZpY2VBY2NvdW50LG5hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3J9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXJ1bm5lci1qb2ItY29udHJvbGxlcn19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGUsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXByb3ZpZGVyLXNlY3JldC1tYW5hZ2VyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCxwYXRjaCx1cGRhdGVdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcn19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvcnVubmVyLXJiYWMueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbZ2V0XX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1ydW5uZXItc2VjcmV0LXJlYWRlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyfX1cbiJ9XQ==\"\ngit_write_url='$(params.git-write-url)'\ngit_auth_url=\"$git_write_url\"\nif printf '%s' \"$git_write_url\" | grep -q '^http://gitea-http\\.'; then\n test -n \"${GITEA_TOKEN:-}\"\n git_auth_url=$(printf '%s' \"$git_write_url\" | sed \"s#^http://#http://x-access-token:${GITEA_TOKEN}@#\")\nfi\nrm -rf \"$root/gitops\"\ngit clone \"$git_auth_url\" \"$root/gitops\"\ncd \"$root/gitops\"\ngit fetch origin \"$(params.gitops-branch)\" || true\nif git rev-parse --verify \"refs/remotes/origin/$(params.gitops-branch)^{commit}\" >/dev/null 2>&1; then git checkout -B \"$(params.gitops-branch)\" \"refs/remotes/origin/$(params.gitops-branch)\"; else git checkout --orphan \"$(params.gitops-branch)\"; git rm -rf . >/dev/null 2>&1 || true; fi\nincoming_source_commit='$(params.revision)'\nsource_branch='$(params.source-branch)'\nbranch_source_commit=$(git -C \"$root/repo\" rev-parse --verify \"refs/remotes/origin/${source_branch}^{commit}\")\ngitops_source_commit=$(node -e 'try { const value = JSON.parse(require(\"node:fs\").readFileSync(\"source.json\", \"utf8\")).sourceCommit; if (typeof value === \"string\") process.stdout.write(value); } catch {}')\nstale_reason=''\nif [ \"$incoming_source_commit\" != \"$branch_source_commit\" ]; then stale_reason='stale-source-revision'; fi\nif [ -z \"$stale_reason\" ] && [ -n \"$gitops_source_commit\" ] && [ \"$incoming_source_commit\" != \"$gitops_source_commit\" ]; then\n if ! git -C \"$root/repo\" cat-file -e \"${gitops_source_commit}^{commit}\" 2>/dev/null; then stale_reason='gitops-source-order-unverifiable';\n elif git -C \"$root/repo\" merge-base --is-ancestor \"$incoming_source_commit\" \"$gitops_source_commit\"; then stale_reason='stale-gitops-source-revision';\n elif ! git -C \"$root/repo\" merge-base --is-ancestor \"$gitops_source_commit\" \"$incoming_source_commit\"; then stale_reason='divergent-gitops-source-revision'; fi\nfi\nif [ -n \"$stale_reason\" ]; then\n gitops_commit=$(git rev-parse HEAD)\n INCOMING_SOURCE_COMMIT=\"$incoming_source_commit\" CURRENT_SOURCE_COMMIT=\"$branch_source_commit\" GITOPS_SOURCE_COMMIT=\"$gitops_source_commit\" GITOPS_COMMIT=\"$gitops_commit\" STALE_REASON=\"$stale_reason\" node <<'NODE'\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', reason: process.env.STALE_REASON, warning: true, blocking: false, changed: false, stale: true, gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: process.env.INCOMING_SOURCE_COMMIT, currentSourceCommit: process.env.CURRENT_SOURCE_COMMIT, gitopsSourceCommit: process.env.GITOPS_SOURCE_COMMIT || null, valuesPrinted: false }));\nNODE\n exit 0\nfi\ngit rm -rf --ignore-unmatch \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json >/dev/null 2>&1 || true\nrm -rf \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json\nTEMPLATES_B64=\"$templates_b64\" BUILD_RESULT=\"$build_result\" node <<'NODE'\nconst { mkdirSync, readFileSync, writeFileSync } = require('node:fs');\nconst { dirname } = require('node:path');\nconst templates = JSON.parse(Buffer.from(process.env.TEMPLATES_B64, 'base64').toString('utf8'));\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconst replacements = new Map([\n ['__AGENTRUN_SOURCE_COMMIT__', build.sourceCommit],\n ['__AGENTRUN_ENV_IDENTITY__', build.envIdentity],\n ['sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', build.digest],\n ['__AGENTRUN_IMAGE_STATUS__', build.status],\n]);\nfor (const file of templates) {\n let content = file.content;\n for (const [from, to] of replacements) content = content.split(from).join(to);\n mkdirSync(dirname(file.path), { recursive: true });\n writeFileSync(file.path, content);\n}\nNODE\nfeature_config_schema_started_ms=\"$(date +%s%3N 2>/dev/null || date +%s000)\"\nexport UNIDESK_FEATURE_CONFIG_REPO_DIR=\"$root\"\nexport UNIDESK_FEATURE_CONFIG_RENDERED_ROOT=\"$PWD/$(params.gitops-root)\"\nexport UNIDESK_PAC_CONSUMER='agentrun-nc01-release'\nexport OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces'\nexport OTEL_SERVICE_NAME='unidesk-cicd'\nexport OTEL_TRACES_SAMPLER_ARG='1'\nexport OTEL_EXPORTER_TIMEOUT_MS='300'\nfeature_config_validator_base=''\nfeature_config_validator=''\nif feature_config_validator_base=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-feature-config-validator.XXXXXX\" 2>/dev/null)\"; then\n feature_config_validator=\"${feature_config_validator_base}.mjs\"\n if ! printf '%s' 'H4sIAAAAAAACA80ba3PbyO17fgXDZjpkT6bttNNp5fo0iq3c+c6vkeS0HdeVaWplM6ZIlQ/bGp/+ewHsm6Rk5a4fmpkk2hcWr8ViAfB373erIt+9i9Ndlj45aTZl7+L5IstL59XJw3SazT8tS1Y4K2eWZ3PHxRndKF8uysw90FPZS1yUxWiZRh0nKcqw5D9zFk4/xwnTrWmcY8OGNys0rEVYPphj2DZ3igBKyYbsP1WcMxvMPJtWCTMn4+JxhhhcDU/tyVWewMx3UZYWJWDGwR3a4D0OKJizMgxggX8g5kfP0+GaJbhl8DWLU2+RZxErigAme37HcRdh9Bjes+BrkaWur2D9s392ClDuk+wuTMYPcRFUaTxlxeM/w3ni9HpOtijjLA0TuYO7hAHXXz/UMfBT23zpn54c98cXw8nVef9L/+S0/+l0APu6nwf98dVwMDm6OP988sOkdR5yir0QUzm02qLR0Y+Ds/7ksj/+EUHCnFl8vzsDvlQ52+HNoIge2Dzk5Gt4syqNkAjnKUziKTDyM191RItGtMbjdBYA+3XlO6/vHEfKbZEdxzn0E9tzVmTJE5PTAzkMnLKEAUyREDhSl6h0hxuo0gvCO9ijKtnIXKiFLrbsGIBpt3jmeO/1KfGaYHwfyAHKU/ivqJLSc23+7XCIO/O4KOL0HqTs8h5nBvrtxIWjR/Y7TlolqK+wdcIkmYhImS+JgY7oA+x/Gl2cB4swL5hnHtgWHGHPqpz9xeUcXDlRWEYPjsfyPMt9AXYrIuKUxA2o3go0EAmHkHBmIWAw7TofXgnwGcgNzo3YZXVrkgdIvFOiEVsNcB7qimgfsygJ8xBVgg95fEslF2tdIFALEpbeg3C/d/b8b6WpFeD13s2aEbGVQVQTq2m1SGJgNyu+AbGnMI/Du4TtqNUN5DTcFvwam9bVSp5ZW7G4NPpfnz7ufdwDOYT8l0ekqXP09QmGUvYsJ3qvTpgkfOcuQKsYHKIyj6NStpSFyPJ5WMKkWZiAuqwEXIAYwAXzM1s+Z/kUwD3yX13HfdkRNnVHEOjKAzpeLhhMwI3o5NAefEMFWO7LSQmibL4ABTW1aJuTQF2OQzN6AGQK8A4P19jlntOUJSGR5UBK+AQnBAXrOl3nLW0097WPkhzalz9QuPy3Ploo5ggcgTY5y25gjDS5ug+Mbs7SKcvZ9O9Z/phk4fRIDnqvYkc5Y5hlIGZtt3WvxA0M+ILl5fI8nDMQ/cXdVxaVAYhYHudAzIhZIShb/WorpZmNtojrSxsDa5aIH1yDLSBfHHZ++cV5HxdDFqFiqvEAtqkAWxw26WlMkEce4e1tR0GcLqrSvCskT51nIQxDfEUaLoqHrGxcImpKLyiq+TwE0YNYbdtLN5s8Ik3cfcsoMGmb+3keLoO4oP89uTzg4+DbOLUuUPTrm4PtRFcxJHyOUgcy7rIKKJ+ClSHbwkWH1s4XMlUWFcRg0ixJVsLd6haQdwCdJWevHd6q6f6weVy2uD5fOBtgxlon6ElNgaEtvCiiR/pDRQlakQfPeQzCu/3wSr4At4bxTAkGlvmrf6W3tFSwQQ+Z9IQFeveKqrxKv5Uo414h2KbFsUjdmmMbzIAF8H9pDH4Th1ct1ykc3wU4mKVha7OSJQPZbfi48JILLsaD08ngH5cXw/FgOLkYn15OxsP+0WA0GZwfX16cnI9xheuaV3IZz1lWlWcojUVWxGX8xE7Skt2z3DP3HKt5Gzcdn5wNLq7Gk7ORdfEX4Ry8ivR+iETDTlb7C55ea7ORNb1tQ0HXqH92eQrb9oc/iP3QMkm2tZpQxVvS3b+HeQobIYNhX9HyXMmvydnJaHRy/oM62+R9yIbindh7a/lbe2sVMAzdq6GlHcLtMlyiBe+KvQ10uzVaVhzWSvHDkLG4nL6JGUqmm3hhHIL/RzZwMg0A+qnA7ciFHvLMPSWfCpY/xRFDT6RrHcaRHmjV1NFg+OXkaDA5758N6PhJrzSKI+2pIX7VnOUatuypA706PzkejH6GF+oRvllHV2eDobygJTTreMnOMg8jBo8tlhpel9FZ34iO2GV/OOBmwxyqrXIVGWn2fFZo6NS09j+Z1vY+mSqkF2FqDvO26dWt09bwOYxl7+e6UJU1sPTHOLwdteOMwWVxAqxDoqhhGhVr0/fqIP1WXX9L09/W8fZbbhsrR1Z7AnZuMDzvn04+w0sEQiH1A05gO//j2+HbLsxfzb1t7cSqzT3bykCs89DE8Tjk8Y2xPjFey9kzglPiVBhXvuxB1tJss8eI13r7f/aDMhsR1zz3gb24ZtCLjpMBVnTUYPxlAwg6zgYE3gYAx+jpQssz9yvDvES9uErjl/MwxWtfwP0U34MSebTcd/7g7E/29vbwb2r6mvLFU2RVHrERYAuW5Vo/Inl/F2QflgD3DoJWaHpATH3VVm9OB5773FAHKVhq1zAztv1uN8+O6oeYWaRss9turk1TbKxE1AJpmicUnDLxqPs8a6DwJ9YEXnVhVLKpKwIlYiKo4EoZ1AjexnW+iW5kW0p3mQKMBAe2G4yxEZYXgB/Me9p3NWxurm3AysR3jC7TivM/QRB4Qo+lTsoncw/OkNOlGD6Oj8SNYM9e+SY0QYSJ/MSKPbvm7Mc4BXj7FoJ1PTUH4e4wh7qbZ2+lhyTMGqbP3BSBLLVlkZ2djSvvkix65Eu5td44GwNQ9ibYs3kN5+KEUjLWUh3s3gyArg9oVGlpA6CBI+w3AdjiZU8g+bqaOXR5bykUpSIbnu6Ej2uv2lqYv0Wcv05EzVWzOC/KCTHUXkwDFAOxQdhcXt3UTkRZFXgMcWs4Luax11PlL/7/igICtUjA2y7ZosUdU26YeZ3Cv2WeJQnLZQT5DkAfqV7z6hGw8J3JSuGaeJ7vHH5vgAlCBIBJOvsZV3+Dw0WzgB9M+ZkKPYMMqRGQNHzIMPh8eTEaK4V6gAQLy4mjmCYrQaV3SohBg6jccMHD7cCuXcqSaWbfZdNl16l5QoJhSnxFfA+5wK5JGO+yHWf0YCUlQfaokghodi1PynQQb38cjy8nH17VQq4ZmI2pdW18GG8Mxpr70bgTA9fDNGLZzCHFdX7/e+6C0s1Nl4VLwqdRF8Pmwq+kyLhwatGXHRwrV/ZXgVaub52eWQwMTpSeJCzMpZqJqb5yKuve5NrMFEGjwKqKGssRCFKKeDeqDT0+3IyCx64dZm5GxWvsfnVEjgBMqkwl5hBxd+YV6Podc0IQCUGWqcLnGCIoGqALCSOdIsIArXSg5YERG8B54cFbGbDkaani01LYA3GOz8IFP7szkIfHJ1+bgf+OSgPwWN+NA+IToXM4STkgtYFum6E2JF+HQWRWblEVD96tnAbZSBOTleRJg1k6cIHnME4r1gw+zBTZNhbXLZmqG31qUeJAsFxNsheZK5S96IcnQTz3/DURry2pI7KmpJ/MaSC1DY1KyhSVrks8uGelZyNMFQ0yyK9WcERN5PzaDA2zaMDs6Gm+rZpacVE7wRFtgSdVyr+hHeEGTUq4XrxrA+wN3SUaXZWd3ff5ojkotXct0GosvJXC/PAqfgHvIRvjlBnIICnjBeT2tS5jUlzvRRUHbseFpLj1WpJCNo+nuJV1ZH59bs7KynXszJuz0sZJqKM5u6GT5qClkWSsjIIIcyJZOV4Xo2IrtUuKC/E5hBt0KqzHCKRv4eqbJgdfSvQwPxA5BqyaII8Tevdkp0yONQYom8SmFJ+2Bg1TRXUYwJAEiILnbRWhOKmcorDJk6dRo/DdobPP1dqAN80ieEbCKMCkyMGx6Cg8XGmYLGMRBE3muOCxumN5ykDyJ9BTeBKYsUqFJ7LpaMEioAgXQ6oPGr0Afi4SnvqD9oFaU7OifC1AtS0B/rGZqUmsYXyfZ9UCUb4mjyiMU3CQMGUZpzF5daLnxsTcgqCWIRQ7syjwu6ZNbjCxaPdQXtEGbIHGqrgGULVfDwNbCFT1YEcrTME4rrHBQ1iAy/jUI2eD1F0cJuokbbWOUht7+R+u2dcYYENYNzLKNBQKxzMqOEwz/fr6pmLbgtJmvf5b/lop07+qR2w4ctz9FNnPrg6ji6CNSk3vSIXZAXSVx2yXCIg6L1BMCD/WS+ysIrDaiQMWu4ECqk6e7LB0VXY2eFMvRqDOrm0hZanMO1M+lyDFEmuajJf5Sr+VlFVuNR1kEfXzZx6+0ABI+iNGyg7MEag9Ax8kw2urOT4Ty0xnbAFs4vHga5t9uOuNNH9TAXZp2b7nB7R4ngBhFSaZz6aoymX8U8xcZAtZDVSDrJUPj0tt8Psahb5TPuTZM1l/nty/bZY5KBjA3DnlBiLGpry+zAa3km6Ncf7pMUCXnKpd9QQ9fj1zRvbfLAYUEzsExXSZeEwUOaKKZblJl3OQeBwBkzNazu8yuMRP4/TRa7GzxlRJyxLnKV6j/2QBZ1g1hct2/xV4ve4y7M2TX/DB6X/YjSsw/AUEZBFj04aR7rQAE8VqseX7SBXdSkDEtlbZEIyVdjZbLQ3fuqAHvH2Y2u5M4xyV7KWkrL9R8ohzVJGjrMQDNiF3NHOs25eCBBKZa6OWEuHDCVJvXj0JO800vxxAl4cv7ieJRpwAcT9S3eLoO8oGROl/GoHIlX/aOkvnqdaiZDJvrf9AZItlsrMXYDSVP5pPwYS5+Jq270yFLPoYVOFj9+ClKXtuWuRo32f8LiNULA4a7BfXXZNWGqiT21ol1PYO5wPKH3V1FdU0A+OaZsJXFO9D98B4DPOIg6gZlhc+xRzsMdOH7rXN6IrKDQ5Y1DnWYaruNnByEIP5OuxpXCW8tqUOU3W3wZSDGGClEl7XeJRAIs8iAe/jXXcFB12ggj8FhNVt/a1ChTkU/XSMMKZjhI11nZV5xp9VtlNPxQtKEyoEz2NAilq9SZ1UPYLl5QkkOcA+FN/t3ldgNxzXl6/vAkw286D+6+Of4DrsqoeL5R9RSHv7eLQVN5bhfsun0AFiHZLvbqhr53Pr0XdNY9fiT8cu++TNeVUSjhYe670eDPIZPiDkcQaCCVvkbcxAvJHOWxtzbwTa14TY7bj65rTHW8x8O+/RluzYNpmzWu871j8GSSlghlcsBcrFNy4tRpNP4Vd+i70kza2ZS1XSrSxk8/sVUdetTOXaGQd2PKGtwqX/0xecOfl0dX6Mn62YZxKumreXtDinAq070O+ELL/3NpiW8jxVFSo+wQHW7EzhDtylfwSjAr4L+BGuFQcXLgQ5SarO8EoXeHsu4OVQHb0ahrAc+nYsjZZYsGuWg7eEmg3ytANU/xpFODTfiAcHbRYNt2ZN+GdZGHsRSSA8vCtZk/VZIOq54vMtMKNimtvZ4Jz5Hp/fEfADsailOogiRPasYMpmIdwpGHK0RxrRVgWD3uOSr67p2uJHBNxtcAVPRPlIzB2CkKODzzpIJdjlKhL8+uwIVRxt89WARIkmH7ylWbcbJQq+Tl4tSscTH+E08yU9M12CyRbKk6z82xYlbEVAXPbmdc3ELazfC3ISwuT7cR60c8C4YAUTTCyUD2d4j2K2kDUPvByaORWwLjocQ5UJ0PO+Ub5OkRVzs5YKYXPDN5iqXSlRJ8Mh1PziWhWWQZaqOypI+c+r+Z2aYDCJ9wMdEgRf4ZNN5YvBYDo92ZBujIlFS/3ub0DkMwb9WBseGDPWzb9BnGAzXo1aqwZW3E8/dHb/vbe3413v7fw13JndvP7x48o3mvt/hqZqfVzRM5C9sMgTouFw7QC8KnCkPXrB9f4NRFSz0+yZ5UchvE58Vdajih3l1I/rpjYufLsUQX5NYmhZLTUmPyex8hjQJXMYdTXXPegDQqYTRCLyGeC0W4tFIQR2awew23Ku7rIMcqSpK/wZKPNxsOsLn88nyshi2/qUNMVVjlOP0h2lWG+JxIhVYr6d+wvtE8md8v0mf2U+OgqrAmKA+AB5KMvFSKS6McU7vajKlvSwKQfb2ydHlyrAuPG3vXuziKvdx1eovJM1VBqllgIqY1CWeii0tfvPP4TbztbrcjRdqmG4/UNRj6Yp4YqLF1nti2pC1/pKWzlhYX7/BMeGFxX7wUPOZvanvzq8ewI/X3gyVS2FBzN0Xsw8d2dHBZgxqMnvX16/8ebnKa+18HPLrkDADpoiYnrXwuG6Of07B0haWZ/ggB9WHvFLDVzh1X8BgBIs15M/AAA=' | base64 -d | gzip -d >\"$feature_config_validator\"; then\n rm -f \"$feature_config_validator_base\" \"$feature_config_validator\" || true\n feature_config_validator=''\n fi\n rm -f \"$feature_config_validator_base\" || true\nfi\nfeature_config_ajv_bundle=''\nif feature_config_ajv_bundle=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-ajv2020.XXXXXX\" 2>/dev/null)\"; then\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_ajv_bundle\"; then\n rm -f \"$feature_config_ajv_bundle\" || true\n feature_config_ajv_bundle=''\n fi\nfi\nexport UNIDESK_AJV2020_BUNDLE=\"${feature_config_ajv_bundle:-${TMPDIR:-/tmp}/unidesk-ajv2020-unavailable}\"\nexport UNIDESK_FEATURE_CONFIG_VALIDATOR=\"${feature_config_validator:-${TMPDIR:-/tmp}/unidesk-feature-config-validator-unavailable.mjs}\"\nif ! node --input-type=module <<'NODE_UNIDESK_FEATURE_CONFIG_SCHEMA'\nimport { pathToFileURL } from 'node:url';\nconst validator = await import(pathToFileURL(process.env.UNIDESK_FEATURE_CONFIG_VALIDATOR).href);\nawait validator.runFeatureConfigSchemaValidation({ repoDir: process.env.UNIDESK_FEATURE_CONFIG_REPO_DIR, renderedRoot: process.env.UNIDESK_FEATURE_CONFIG_RENDERED_ROOT, consumer: process.env.UNIDESK_PAC_CONSUMER });\nNODE_UNIDESK_FEATURE_CONFIG_SCHEMA\nthen\n printf '{\"event\":\"feature-config-schema-validation\",\"warning\":true,\"blocking\":false,\"code\":\"feature-config-validator-process-failure\",\"mutation\":false,\"valuesPrinted\":false}\\n' >&2\nfi\nif [ -n \"$feature_config_validator\" ]; then rm -f \"$feature_config_validator\" || true; fi\nif [ -n \"$feature_config_ajv_bundle\" ]; then rm -f \"$feature_config_ajv_bundle\" || true; fi\nif command -v ci_timing_emit >/dev/null 2>&1; then\n ci_timing_emit feature-config-schema-validation succeeded \"$feature_config_schema_started_ms\"\nelse\n printf '{\"event\":\"ci.stage.timing\",\"stage\":\"feature-config-schema-validation\",\"status\":\"succeeded\",\"blocking\":false}\\n' >&2\nfi\ngit add source.json \"$(params.artifact-catalog)\" \"$(params.gitops-root)\"\nif git diff --quiet --cached; then changed=false; else changed=true; git -c user.email=agentrun@unidesk.local -c user.name='UniDesk AgentRun PaC' commit -m \"deploy: render AgentRun $(params.gitops-branch) from PaC\"; fi\ngit remote set-url origin \"$git_auth_url\"\ngit push -u origin \"$(params.gitops-branch)\"\ngitops_commit=$(git rev-parse HEAD)\nBUILD_RESULT=\"$build_result\" CHANGED=\"$changed\" GITOPS_COMMIT=\"$gitops_commit\" node <<'NODE'\nconst { readFileSync } = require('node:fs');\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', changed: process.env.CHANGED === 'true', gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: build.sourceCommit, envIdentity: build.envIdentity, imageStatus: build.status, digest: build.digest, valuesPrinted: false }));\nNODE" + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nbuild_result=\"$root/build-result.json\"\ntest -s \"$build_result\"\ntemplates_b64=\"W3sicGF0aCI6InNvdXJjZS5qc29uIiwiY29udGVudCI6IntcbiAgXCJsYW5lXCI6IFwicmVsZWFzZVwiLFxuICBcInNvdXJjZUNvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwiZ2VuZXJhdGVkQnlcIjogXCJ1bmlkZXNrIGNvbmZpZy9hZ2VudHJ1bi55YW1sXCIsXG4gIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIlxufVxuIn0seyJwYXRoIjoiZGVwbG95L2FydGlmYWN0LWNhdGFsb2cubmMwMS1yZWxlYXNlLmpzb24iLCJjb250ZW50Ijoie1xuICBcImxhbmVcIjogXCJyZWxlYXNlXCIsXG4gIFwic291cmNlQnJhbmNoXCI6IFwicmVsZWFzZVwiLFxuICBcImdpdG9wc0JyYW5jaFwiOiBcIm5jMDEtcmVsZWFzZS1naXRvcHNcIixcbiAgXCJzb3VyY2VDb21taXRJZFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwic3VtbWFyeVwiOiBcImJ1aWxkPTEgcmV1c2U9MCBwbGFjZWhvbGRlcj0wXCIsXG4gIFwic2VydmljZXNcIjogW1xuICAgIHtcbiAgICAgIFwic2VydmljZUlkXCI6IFwiYWdlbnRydW4tbWdyXCIsXG4gICAgICBcImFydGlmYWN0S2luZFwiOiBcImVudi1yZXVzZVwiLFxuICAgICAgXCJzdGF0dXNcIjogXCJfX0FHRU5UUlVOX0lNQUdFX1NUQVRVU19fXCIsXG4gICAgICBcImltYWdlXCI6IFwiMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudjpfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9fXCIsXG4gICAgICBcImRpZ2VzdFwiOiBcInNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcInJlcG9zaXRvcnlEaWdlc3RcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcImltYWdlVGFnXCI6IFwiX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZJZGVudGl0eVwiOiBcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52SW1hZ2VcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52Ol9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52RGlnZXN0XCI6IFwic2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiZW52UmVwb3NpdG9yeURpZ2VzdFwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiYm9vdENvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gICAgICBcImJvb3RTY3JpcHRcIjogXCJkZXBsb3kvcnVudGltZS9ib290L2FnZW50cnVuLWJvb3Quc2hcIixcbiAgICAgIFwicHJvdmVuYW5jZVwiOiB7XG4gICAgICAgIFwic291cmNlQ29tbWl0SWRcIjogXCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wiLFxuICAgICAgICBcInNvdXJjZVwiOiBcInVuaWRlc2steWFtbC1vbmx5XCIsXG4gICAgICAgIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIixcbiAgICAgICAgXCJ2YWx1ZXNQcmludGVkXCI6IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICBdXG59XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvcHJvamVjdC55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBQcm9qZWN0LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLG5hbWVzcGFjZTogYXJnb2NkLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0sc3BlYzoge2Rlc2NyaXB0aW9uOiBBZ2VudFJ1biByZWxlYXNlIEdpdE9wcyBsYW5lLHNvdXJjZVJlcG9zOiBbaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0LGh0dHA6Ly9naXRlYS1odHRwLmRldm9wcy1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDozMDAwL21pcnJvcnMvcGlrYXNUZWNoLWFnZW50cnVuLmdpdF0sZGVzdGluYXRpb25zOiBbe3NlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZX1dLGNsdXN0ZXJSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCJcIixraW5kOiBOYW1lc3BhY2V9XSxuYW1lc3BhY2VSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCIqXCIsa2luZDogXCIqXCJ9XX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvYXBwbGljYXRpb24tcmVsZWFzZS55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBsaWNhdGlvbixtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZSxuYW1lc3BhY2U6IGFyZ29jZCxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtwcm9qZWN0OiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2Usc291cmNlOiB7cmVwb1VSTDogaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0LHRhcmdldFJldmlzaW9uOiBuYzAxLXJlbGVhc2UtZ2l0b3BzLHBhdGg6IGRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZX0sZGVzdGluYXRpb246IHtzZXJ2ZXI6IGh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyxuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2V9LHN5bmNQb2xpY3k6IHthdXRvbWF0ZWQ6IHtwcnVuZTogZmFsc2Usc2VsZkhlYWw6IHRydWV9LHN5bmNPcHRpb25zOiBbQ3JlYXRlTmFtZXNwYWNlPXRydWUsQXBwbHlPdXRPZlN5bmNPbmx5PXRydWVdfX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2Uva3VzdG9taXphdGlvbi55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBrdXN0b21pemUuY29uZmlnLms4cy5pby92MWJldGExLGtpbmQ6IEt1c3RvbWl6YXRpb24scmVzb3VyY2VzOiBbbmFtZXNwYWNlLnlhbWwsbWdyLnlhbWwscnVubmVyLXJiYWMueWFtbF19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvbmFtZXNwYWNlLnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IHYxLGtpbmQ6IE5hbWVzcGFjZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbiJ9LHsicGF0aCI6ImRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZS9tZ3IueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW1ncixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7c2VsZWN0b3I6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9LHBvcnRzOiBbe25hbWU6IGh0dHAscG9ydDogODA4MCx0YXJnZXRQb3J0OiBodHRwfV19fVxuLS0tXG57XCJhcGlWZXJzaW9uXCI6XCJhcHBzL3YxXCIsXCJraW5kXCI6XCJEZXBsb3ltZW50XCIsXCJtZXRhZGF0YVwiOntcIm5hbWVcIjpcImFnZW50cnVuLW1nclwiLFwibmFtZXNwYWNlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlXCIsXCJsYWJlbHNcIjp7XCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXCI6XCJhZ2VudHJ1blwiLFwiYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmVcIjpcInJlbGVhc2VcIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlXCI6XCJOQzAxXCJ9fSxcInNwZWNcIjp7XCJyZXBsaWNhc1wiOjEsXCJzZWxlY3RvclwiOntcIm1hdGNoTGFiZWxzXCI6e1wiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVwiOlwiYWdlbnRydW4tbWdyXCJ9fSxcInRlbXBsYXRlXCI6e1wibWV0YWRhdGFcIjp7XCJsYWJlbHNcIjp7XCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXCI6XCJhZ2VudHJ1blwiLFwiYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmVcIjpcInJlbGVhc2VcIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlXCI6XCJOQzAxXCIsXCJhcHAua3ViZXJuZXRlcy5pby9uYW1lXCI6XCJhZ2VudHJ1bi1tZ3JcIn0sXCJhbm5vdGF0aW9uc1wiOntcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lXCI6XCJyZWxlYXNlXCIsXCJhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvc291cmNlLWNvbW1pdFwiOlwiX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX19cIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9lbnYtaWRlbnRpdHlcIjpcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIn19LFwic3BlY1wiOntcInNlcnZpY2VBY2NvdW50TmFtZVwiOlwiYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nclwiLFwiY29udGFpbmVyc1wiOlt7XCJuYW1lXCI6XCJtZ3JcIixcImltYWdlXCI6XCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXCJpbWFnZVB1bGxQb2xpY3lcIjpcIklmTm90UHJlc2VudFwiLFwicG9ydHNcIjpbe1wibmFtZVwiOlwiaHR0cFwiLFwiY29udGFpbmVyUG9ydFwiOjgwODB9XSxcImVudlwiOlt7XCJuYW1lXCI6XCJBR0VOVFJVTl9MQU5FXCIsXCJ2YWx1ZVwiOlwicmVsZWFzZVwifSx7XCJuYW1lXCI6XCJEQVRBQkFTRV9VUkxcIixcInZhbHVlRnJvbVwiOntcInNlY3JldEtleVJlZlwiOntcIm5hbWVcIjpcImFnZW50cnVuLXJlbGVhc2UtbWdyLWRiXCIsXCJrZXlcIjpcIkRBVEFCQVNFX1VSTFwifX19LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1NPVVJDRV9DT01NSVRcIixcInZhbHVlXCI6XCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CT09UX0NPTU1JVFwiLFwidmFsdWVcIjpcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0JPT1RfTU9ERVwiLFwidmFsdWVcIjpcIm1nclwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CT09UX1JFUE9fVVJMXCIsXCJ2YWx1ZVwiOlwiaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0VOVl9JREVOVElUWVwiLFwidmFsdWVcIjpcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOVElNRV9OQU1FU1BBQ0VcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0lOVEVSTkFMX01HUl9VUkxcIixcInZhbHVlXCI6XCJodHRwOi8vYWdlbnRydW4tbWdyLmFnZW50cnVuLXJlbGVhc2Uuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfSU1BR0VcIixcInZhbHVlXCI6XCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TRVJWSUNFX0FDQ09VTlRcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9KT0JfTkFNRV9QUkVGSVhcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9OQU1FXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4tcmVsZWFzZS1hcGkta2V5XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9LRVlcIixcInZhbHVlXCI6XCJIV0xBQl9BUElfS0VZXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0dJVF9NSVJST1JfQkFTRV9VUkxcIixcInZhbHVlXCI6XCJodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfSURMRV9USU1FT1VUX01TXCIsXCJ2YWx1ZVwiOlwiNjAwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfTUFYX0FUVEVNUFRTXCIsXCJ2YWx1ZVwiOlwiNVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CQUNLRU5EX1JFVFJZX0lOSVRJQUxfQkFDS09GRl9NU1wiLFwidmFsdWVcIjpcIjEwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9NQVhfQkFDS09GRl9NU1wiLFwidmFsdWVcIjpcIjMwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fTUFYX1JVTk5FUlNcIixcInZhbHVlXCI6XCIxMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0NMRUFOVVBfT1JERVJcIixcInZhbHVlXCI6XCJvbGRlc3QtaW5hY3RpdmUtbGFzdC1hY3RpdmUtZmlyc3RcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9BQ1RJVkVfSEVBUlRCRUFUX01BWF9BR0VfTVNcIixcInZhbHVlXCI6XCI5MDAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9TVEFMRV9QRU5ESU5HX01BWF9BR0VfTVNcIixcInZhbHVlXCI6XCI5MDAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9NQVRDSF9MQUJFTFNfSlNPTlwiLFwidmFsdWVcIjpcIntcXFwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZlxcXCI6XFxcImFnZW50cnVuXFxcIixcXFwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVxcXCI6XFxcImFnZW50cnVuLXJ1bm5lclxcXCIsXFxcImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudFxcXCI6XFxcInJ1bm5lclxcXCJ9XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fSk9CX05BTUVfUFJFRklYRVNcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLGFnZW50cnVuLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX0NMRUFOVVBfRU5BQkxFRFwiLFwidmFsdWVcIjpcImZhbHNlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX01BWF9BR0VfSE9VUlNcIixcInZhbHVlXCI6XCI0OFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9DQU5DRUxfREVMSVZFUllfTU9ERVwiLFwidmFsdWVcIjpcIm1hbmFnZXItZXBvY2hcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQ0FOQ0VMX0dSQUNFRlVMX0FCT1JUX01TXCIsXCJ2YWx1ZVwiOlwiMTUwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQ0FOQ0VMX0tJTExfRVNDQUxBVElPTl9NU1wiLFwidmFsdWVcIjpcIjMwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0NBTkNFTF9TVEFMRV9IRUFSVEJFQVRfRkVOQ0lOR19NU1wiLFwidmFsdWVcIjpcIjkwMDAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9DQU5DRUxfTEFURV9XUklURV9GRU5DSU5HX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0NBTkNFTF9FVkVOVF9TVEFHRVNcIixcInZhbHVlXCI6XCJhY2NlcHRlZCxwZXJzaXN0ZWQsZGVsaXZlcmVkLGFib3J0aW5nLHRlcm1pbmFsaXplZCxmZW5jZWQsbGF0ZS13cml0ZS1yZWplY3RlZFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRUdSRVNTX1BST1hZX1VSTFwiLFwidmFsdWVcIjpcImh0dHA6Ly8xMC40Mi4wLjE6MTA4MDhcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX05PX1BST1hZX0VYVFJBXCIsXCJ2YWx1ZVwiOlwibG9jYWxob3N0LDEyNy4wLjAuMSw6OjEsLnN2Yywuc3ZjLmNsdXN0ZXIubG9jYWwsLmNsdXN0ZXIubG9jYWwsaHl1ZWFwaS5jb20sLmh5dWVhcGkuY29tLGFwaS5od3BvZC5jb20sYXBpLnBpa2FweXRob24uY29tLC5waWthcHl0aG9uLmNvbVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9BUElfS0VZXCIsXCJ2YWx1ZUZyb21cIjp7XCJzZWNyZXRLZXlSZWZcIjp7XCJuYW1lXCI6XCJhZ2VudHJ1bi1yZWxlYXNlLWFwaS1rZXlcIixcImtleVwiOlwiSFdMQUJfQVBJX0tFWVwifX19LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0JPT1RTVFJBUF9TRVJWRVJTXCIsXCJ2YWx1ZVwiOlwicGxhdGZvcm0taW5mcmEta2Fma2Eta2Fma2EtYm9vdHN0cmFwLnBsYXRmb3JtLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTJcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfQ0xJRU5UX0lEXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4tcmVsZWFzZS1tYW5hZ2VyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0VWRU5UX1RPUElDXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4uZXZlbnQudjFcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0JBVENIX1NJWkVcIixcInZhbHVlXCI6XCIxMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0lOVEVSVkFMX01TXCIsXCJ2YWx1ZVwiOlwiNTAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX09VVEJPWF9MRUFTRV9NU1wiLFwidmFsdWVcIjpcIjYwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX09VVEJPWF9SRVRSWV9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiNTAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9LQUZLQV9TVERJT19DTElFTlRfSURcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlLXJ1bm5lclwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9LQUZLQV9TVERJT19QUk9EVUNFX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX1NURElPX1RPUElDXCIsXCJ2YWx1ZVwiOlwiY29kZXgtc3RkaW8ucmF3LnYxXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9CQVRDSF9TSVpFXCIsXCJ2YWx1ZVwiOlwiMjBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9JTlRFUlZBTF9NU1wiLFwidmFsdWVcIjpcIjIwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUE9TVEdSRVNfUE9PTF9NQVhcIixcInZhbHVlXCI6XCI0XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0FUVEVNUFRfVElNRU9VVF9NU1wiLFwidmFsdWVcIjpcIjkwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0JBVENIX1NJWkVcIixcInZhbHVlXCI6XCIxMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9FTkFCTEVEXCIsXCJ2YWx1ZVwiOlwidHJ1ZVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9JTlRFUlZBTF9NU1wiLFwidmFsdWVcIjpcIjEwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTEVBU0VfTVNcIixcInZhbHVlXCI6XCIxMjAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTUFYX0FUVEVNUFRTXCIsXCJ2YWx1ZVwiOlwiNVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9SRVRSWV9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiNTAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfU1RBUlRVUF9SRVRSWV9JTklUSUFMX0JBQ0tPRkZfTVNcIixcInZhbHVlXCI6XCIyMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TVEFSVFVQX1JFVFJZX0pJVFRFUl9SQVRJT1wiLFwidmFsdWVcIjpcIjAuMlwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfU1RBUlRVUF9SRVRSWV9NQVhfQVRURU1QVFNcIixcInZhbHVlXCI6XCI1XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TVEFSVFVQX1JFVFJZX01BWF9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiMTYwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1NUQVJUVVBfUkVUUllfTVVMVElQTElFUlwiLFwidmFsdWVcIjpcIjJcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1NUQVJUVVBfUkVUUllfVE9UQUxfREVBRExJTkVfTVNcIixcInZhbHVlXCI6XCI2MDAwMFwifSx7XCJuYW1lXCI6XCJIV0xBQl9SVU5USU1FX0xBTkVcIixcInZhbHVlXCI6XCJyZWxlYXNlXCJ9LHtcIm5hbWVcIjpcIk9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfRU5EUE9JTlRcIixcInZhbHVlXCI6XCJodHRwOi8vb3RlbC1jb2xsZWN0b3IucGxhdGZvcm0taW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6NDMxOC92MS90cmFjZXNcIn0se1wibmFtZVwiOlwiT1RFTF9TRVJWSUNFX05BTUVcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1tYW5hZ2VyXCJ9LHtcIm5hbWVcIjpcIlVOSURFU0tfTk9ERV9JRFwiLFwidmFsdWVcIjpcIk5DMDFcIn0se1wibmFtZVwiOlwiVU5JREVTS19NQUlOX1NFUlZFUl9JUFwiLFwidmFsdWVcIjpcIjE1Mi41My4yMjkuMTQ4XCJ9XSxcInJlYWRpbmVzc1Byb2JlXCI6e1wiaHR0cEdldFwiOntcInBhdGhcIjpcIi9oZWFsdGgvcmVhZGluZXNzXCIsXCJwb3J0XCI6XCJodHRwXCJ9LFwidGltZW91dFNlY29uZHNcIjoyfSxcImxpdmVuZXNzUHJvYmVcIjp7XCJodHRwR2V0XCI6e1wicGF0aFwiOlwiL2hlYWx0aC9saXZlXCIsXCJwb3J0XCI6XCJodHRwXCJ9LFwidGltZW91dFNlY29uZHNcIjoyfSxcInN0YXJ0dXBQcm9iZVwiOntcImh0dHBHZXRcIjp7XCJwYXRoXCI6XCIvaGVhbHRoL2xpdmVcIixcInBvcnRcIjpcImh0dHBcIn0sXCJwZXJpb2RTZWNvbmRzXCI6MTAsXCJ0aW1lb3V0U2Vjb25kc1wiOjIsXCJmYWlsdXJlVGhyZXNob2xkXCI6OTB9LFwicmVzb3VyY2VzXCI6e1wicmVxdWVzdHNcIjp7XCJjcHVcIjpcIjEwMG1cIixcIm1lbW9yeVwiOlwiMjU2TWlcIn0sXCJsaW1pdHNcIjp7XCJjcHVcIjpcIjgwMG1cIixcIm1lbW9yeVwiOlwiMUdpXCJ9fX1dfX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi1yZWxlYXNlLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbYmF0Y2hdLHJlc291cmNlczogW2pvYnNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtwb2RzXSx2ZXJiczogW2RlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtldmVudHNdLHZlcmJzOiBbZ2V0LGxpc3Qsd2F0Y2hdfSx7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbcGVyc2lzdGVudHZvbHVtZWNsYWltc10sdmVyYnM6IFtjcmVhdGUsZ2V0LGxpc3Qsd2F0Y2gsZGVsZXRlXX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3ItcnVubmVyLWpvYi1jb250cm9sbGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHN1YmplY3RzOiBbe2tpbmQ6IFNlcnZpY2VBY2NvdW50LG5hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3J9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXJ1bm5lci1qb2ItY29udHJvbGxlcn19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGUsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXByb3ZpZGVyLXNlY3JldC1tYW5hZ2VyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCxwYXRjaCx1cGRhdGVdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcn19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvcnVubmVyLXJiYWMueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbZ2V0XX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1ydW5uZXItc2VjcmV0LXJlYWRlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyfX1cbiJ9XQ==\"\ngit_write_url='$(params.git-write-url)'\ngit_auth_url=\"$git_write_url\"\nif printf '%s' \"$git_write_url\" | grep -q '^http://gitea-http\\.'; then\n test -n \"${GITEA_TOKEN:-}\"\n git_auth_url=$(printf '%s' \"$git_write_url\" | sed \"s#^http://#http://x-access-token:${GITEA_TOKEN}@#\")\nfi\nrm -rf \"$root/gitops\"\ngit clone \"$git_auth_url\" \"$root/gitops\"\ncd \"$root/gitops\"\ngit fetch origin \"$(params.gitops-branch)\" || true\nif git rev-parse --verify \"refs/remotes/origin/$(params.gitops-branch)^{commit}\" >/dev/null 2>&1; then git checkout -B \"$(params.gitops-branch)\" \"refs/remotes/origin/$(params.gitops-branch)\"; else git checkout --orphan \"$(params.gitops-branch)\"; git rm -rf . >/dev/null 2>&1 || true; fi\nincoming_source_commit='$(params.revision)'\nsource_branch='$(params.source-branch)'\nbranch_source_commit=$(git -C \"$root/repo\" rev-parse --verify \"refs/remotes/origin/${source_branch}^{commit}\")\ngitops_source_commit=$(node -e 'try { const value = JSON.parse(require(\"node:fs\").readFileSync(\"source.json\", \"utf8\")).sourceCommit; if (typeof value === \"string\") process.stdout.write(value); } catch {}')\nstale_reason=''\nif [ \"$incoming_source_commit\" != \"$branch_source_commit\" ]; then stale_reason='stale-source-revision'; fi\nif [ -z \"$stale_reason\" ] && [ -n \"$gitops_source_commit\" ] && [ \"$incoming_source_commit\" != \"$gitops_source_commit\" ]; then\n if ! git -C \"$root/repo\" cat-file -e \"${gitops_source_commit}^{commit}\" 2>/dev/null; then stale_reason='gitops-source-order-unverifiable';\n elif git -C \"$root/repo\" merge-base --is-ancestor \"$incoming_source_commit\" \"$gitops_source_commit\"; then stale_reason='stale-gitops-source-revision';\n elif ! git -C \"$root/repo\" merge-base --is-ancestor \"$gitops_source_commit\" \"$incoming_source_commit\"; then stale_reason='divergent-gitops-source-revision'; fi\nfi\nif [ -n \"$stale_reason\" ]; then\n gitops_commit=$(git rev-parse HEAD)\n INCOMING_SOURCE_COMMIT=\"$incoming_source_commit\" CURRENT_SOURCE_COMMIT=\"$branch_source_commit\" GITOPS_SOURCE_COMMIT=\"$gitops_source_commit\" GITOPS_COMMIT=\"$gitops_commit\" STALE_REASON=\"$stale_reason\" node <<'NODE'\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', reason: process.env.STALE_REASON, warning: true, blocking: false, changed: false, stale: true, gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: process.env.INCOMING_SOURCE_COMMIT, currentSourceCommit: process.env.CURRENT_SOURCE_COMMIT, gitopsSourceCommit: process.env.GITOPS_SOURCE_COMMIT || null, valuesPrinted: false }));\nNODE\n exit 0\nfi\ngit rm -rf --ignore-unmatch \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json >/dev/null 2>&1 || true\nrm -rf \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json\nTEMPLATES_B64=\"$templates_b64\" BUILD_RESULT=\"$build_result\" node <<'NODE'\nconst { mkdirSync, readFileSync, writeFileSync } = require('node:fs');\nconst { dirname } = require('node:path');\nconst templates = JSON.parse(Buffer.from(process.env.TEMPLATES_B64, 'base64').toString('utf8'));\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconst replacements = new Map([\n ['__AGENTRUN_SOURCE_COMMIT__', build.sourceCommit],\n ['__AGENTRUN_ENV_IDENTITY__', build.envIdentity],\n ['sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', build.digest],\n ['__AGENTRUN_IMAGE_STATUS__', build.status],\n]);\nfor (const file of templates) {\n let content = file.content;\n for (const [from, to] of replacements) content = content.split(from).join(to);\n mkdirSync(dirname(file.path), { recursive: true });\n writeFileSync(file.path, content);\n}\nNODE\nfeature_config_schema_started_ms=\"$(date +%s%3N 2>/dev/null || date +%s000)\"\nexport UNIDESK_FEATURE_CONFIG_REPO_DIR=\"$root\"\nexport UNIDESK_FEATURE_CONFIG_RENDERED_ROOT=\"$PWD/$(params.gitops-root)\"\nexport UNIDESK_PAC_CONSUMER='agentrun-nc01-release'\nexport OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces'\nexport OTEL_SERVICE_NAME='unidesk-cicd'\nexport OTEL_TRACES_SAMPLER_ARG='1'\nexport OTEL_EXPORTER_TIMEOUT_MS='300'\nfeature_config_validator_base=''\nfeature_config_validator=''\nif feature_config_validator_base=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-feature-config-validator.XXXXXX\" 2>/dev/null)\"; then\n feature_config_validator=\"${feature_config_validator_base}.mjs\"\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_validator\"; then\n rm -f \"$feature_config_validator_base\" \"$feature_config_validator\" || true\n feature_config_validator=''\n fi\n rm -f \"$feature_config_validator_base\" || true\nfi\nfeature_config_ajv_bundle=''\nif feature_config_ajv_bundle=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-ajv2020.XXXXXX\" 2>/dev/null)\"; then\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_ajv_bundle\"; then\n rm -f \"$feature_config_ajv_bundle\" || true\n feature_config_ajv_bundle=''\n fi\nfi\nexport UNIDESK_AJV2020_BUNDLE=\"${feature_config_ajv_bundle:-${TMPDIR:-/tmp}/unidesk-ajv2020-unavailable}\"\nexport UNIDESK_FEATURE_CONFIG_VALIDATOR=\"${feature_config_validator:-${TMPDIR:-/tmp}/unidesk-feature-config-validator-unavailable.mjs}\"\nif ! node --input-type=module <<'NODE_UNIDESK_FEATURE_CONFIG_SCHEMA'\nimport { pathToFileURL } from 'node:url';\nconst validator = await import(pathToFileURL(process.env.UNIDESK_FEATURE_CONFIG_VALIDATOR).href);\nawait validator.runFeatureConfigSchemaValidation({ repoDir: process.env.UNIDESK_FEATURE_CONFIG_REPO_DIR, renderedRoot: process.env.UNIDESK_FEATURE_CONFIG_RENDERED_ROOT, consumer: process.env.UNIDESK_PAC_CONSUMER });\nNODE_UNIDESK_FEATURE_CONFIG_SCHEMA\nthen\n printf '{\"event\":\"feature-config-schema-validation\",\"warning\":true,\"blocking\":false,\"code\":\"feature-config-validator-process-failure\",\"mutation\":false,\"valuesPrinted\":false}\\n' >&2\nfi\nif [ -n \"$feature_config_validator\" ]; then rm -f \"$feature_config_validator\" || true; fi\nif [ -n \"$feature_config_ajv_bundle\" ]; then rm -f \"$feature_config_ajv_bundle\" || true; fi\nif command -v ci_timing_emit >/dev/null 2>&1; then\n ci_timing_emit feature-config-schema-validation succeeded \"$feature_config_schema_started_ms\"\nelse\n printf '{\"event\":\"ci.stage.timing\",\"stage\":\"feature-config-schema-validation\",\"status\":\"succeeded\",\"blocking\":false}\\n' >&2\nfi\ngit add source.json \"$(params.artifact-catalog)\" \"$(params.gitops-root)\"\nif git diff --quiet --cached; then changed=false; else changed=true; git -c user.email=agentrun@unidesk.local -c user.name='UniDesk AgentRun PaC' commit -m \"deploy: render AgentRun $(params.gitops-branch) from PaC\"; fi\ngit remote set-url origin \"$git_auth_url\"\ngit push -u origin \"$(params.gitops-branch)\"\ngitops_commit=$(git rev-parse HEAD)\nBUILD_RESULT=\"$build_result\" CHANGED=\"$changed\" GITOPS_COMMIT=\"$gitops_commit\" node <<'NODE'\nconst { readFileSync } = require('node:fs');\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', changed: process.env.CHANGED === 'true', gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: build.sourceCommit, envIdentity: build.envIdentity, imageStatus: build.status, digest: build.digest, valuesPrinted: false }));\nNODE" params: *params1 when: @@ -274,7 +274,7 @@ spec: - name: git-read-url value: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-agentrun.git - name: git-write-url - value: http://git-mirror-write.devops-infra.svc.cluster.local:8080/pikasTech/agentrun.git + value: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-agentrun.git - name: source-branch value: release - name: gitops-branch From 4c98a6f74b3c1ef30fd50c9e224780f8bc91721e Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Tue, 21 Jul 2026 20:27:26 +0200 Subject: [PATCH 12/13] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20release=20Git?= =?UTF-8?q?Ops=20=E6=9E=84=E5=BB=BA=E7=BB=93=E6=9E=9C=E4=BA=A4=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tekton/agentrun-nc01-release.yaml | 199 +++++++++++++++++++++-------- 1 file changed, 148 insertions(+), 51 deletions(-) diff --git a/.tekton/agentrun-nc01-release.yaml b/.tekton/agentrun-nc01-release.yaml index 112d8ec..632b6bf 100644 --- a/.tekton/agentrun-nc01-release.yaml +++ b/.tekton/agentrun-nc01-release.yaml @@ -10,7 +10,7 @@ metadata: pipelinesascode.tekton.dev/max-keep-runs: "8" unidesk.ai/pac-admission-provenance: admission-pac-v2:agentrun-nc01-release unidesk.ai/owning-config-ref: "config/agentrun.yaml#controlPlane.lanes.nc01-release" - unidesk.ai/effective-config-sha256: sha256:0894d407b6e7561a0957803a3a004ae6b87d780bd79fba33b6fb49e5c697d453 + unidesk.ai/effective-config-sha256: sha256:6b95b92293460fb24005450ab8cc27c66154a152b7cc787c89ce8b3d3a01995d unidesk.ai/source-artifact-renderer: agentrun-control-plane unidesk.ai/source-artifact-mode: embedded-pipeline-spec labels: @@ -102,29 +102,52 @@ spec: taskSpec: params: ¶ms - - name: git-read-url - - name: git-write-url - - name: source-branch - - name: gitops-branch - - name: revision - - name: source-stage-ref - - name: registry-prefix - - name: tools-image - - name: buildkit-image - - name: containerfile - - name: context-dir - - name: image-repository - - name: build-network - - name: build-args-json - - name: build-http-proxy - - name: build-https-proxy - - name: build-no-proxy - - name: container-http-proxy - - name: container-https-proxy - - name: container-no-proxy - - name: env-identity-files-json - - name: gitops-root - - name: artifact-catalog + - &item0 + name: git-read-url + - &item1 + name: git-write-url + - &item2 + name: source-branch + - &item3 + name: gitops-branch + - &item4 + name: revision + - &item5 + name: source-stage-ref + - &item6 + name: registry-prefix + - &item7 + name: tools-image + - &item8 + name: buildkit-image + - &item9 + name: containerfile + - &item10 + name: context-dir + - &item11 + name: image-repository + - &item12 + name: build-network + - &item13 + name: build-args-json + - &item14 + name: build-http-proxy + - &item15 + name: build-https-proxy + - &item16 + name: build-no-proxy + - &item17 + name: container-http-proxy + - &item18 + name: container-https-proxy + - &item19 + name: container-no-proxy + - &item20 + name: env-identity-files-json + - &item21 + name: gitops-root + - &item22 + name: artifact-catalog workspaces: - name: source steps: @@ -136,51 +159,74 @@ spec: script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nenv_identity=$(cat \"$root/env-identity\")\nimage_repository='$(params.image-repository)'\nmanifest_accept='application/vnd.oci.image.index.v1+json, application/vnd.oci.image.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json'\nrepo_path=${image_repository#127.0.0.1:5000/}\nheaders=$(mktemp)\ndigest=''\nif curl -fsSI -H \"Accept: $manifest_accept\" \"http://127.0.0.1:5000/v2/$repo_path/manifests/$env_identity\" >\"$headers\"; then\n digest=$(awk -F': ' 'tolower($1)==\"docker-content-digest\"{print $2}' \"$headers\" | tr -d '\\r' | head -n 1)\nfi\nrm -f \"$headers\"\nif [ -n \"$digest\" ]; then\n image=\"$image_repository:$env_identity\"\n printf '{\"ok\":true,\"status\":\"reused\",\"sourceCommit\":\"%s\",\"envIdentity\":\"%s\",\"image\":\"%s\",\"digest\":\"%s\",\"repositoryDigest\":\"%s@%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$env_identity\" \"$image\" \"$digest\" \"$image_repository\" \"$digest\" > \"$root/build-result.json\"\n touch \"$root/skip-build\"\nelse\n printf '{\"ok\":false,\"status\":\"cache-miss\",\"sourceCommit\":\"%s\",\"envIdentity\":\"%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$env_identity\" > \"$root/build-result.json\"\nfi\nif [ -f \"$root/skip-build\" ]; then build_services='[]'; reused_services='[\"agentrun-mgr\"]'; else build_services='[\"agentrun-mgr\"]'; reused_services='[]'; fi\nprintf '{\"event\":\"pac-delivery-plan\",\"schemaVersion\":\"v1\",\"sourceCommitId\":\"%s\",\"affectedServices\":[\"agentrun-mgr\"],\"rolloutServices\":[\"agentrun-mgr\"],\"buildServices\":%s,\"reusedServices\":%s,\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$build_services\" \"$reused_services\"\nchmod a+rw \"$root/build-result.json\"\ncat \"$root/build-result.json\"" params: ¶ms1 - - name: git-read-url + - &item23 + name: git-read-url value: $(params.git-read-url) - - name: git-write-url + - &item24 + name: git-write-url value: $(params.git-write-url) - - name: source-branch + - &item25 + name: source-branch value: $(params.source-branch) - - name: gitops-branch + - &item26 + name: gitops-branch value: $(params.gitops-branch) - - name: revision + - &item27 + name: revision value: $(params.revision) - - name: source-stage-ref + - &item28 + name: source-stage-ref value: $(params.source-stage-ref) - - name: registry-prefix + - &item29 + name: registry-prefix value: $(params.registry-prefix) - - name: tools-image + - &item30 + name: tools-image value: $(params.tools-image) - - name: buildkit-image + - &item31 + name: buildkit-image value: $(params.buildkit-image) - - name: containerfile + - &item32 + name: containerfile value: $(params.containerfile) - - name: context-dir + - &item33 + name: context-dir value: $(params.context-dir) - - name: image-repository + - &item34 + name: image-repository value: $(params.image-repository) - - name: build-network + - &item35 + name: build-network value: $(params.build-network) - - name: build-args-json + - &item36 + name: build-args-json value: $(params.build-args-json) - - name: build-http-proxy + - &item37 + name: build-http-proxy value: $(params.build-http-proxy) - - name: build-https-proxy + - &item38 + name: build-https-proxy value: $(params.build-https-proxy) - - name: build-no-proxy + - &item39 + name: build-no-proxy value: $(params.build-no-proxy) - - name: container-http-proxy + - &item40 + name: container-http-proxy value: $(params.container-http-proxy) - - name: container-https-proxy + - &item41 + name: container-https-proxy value: $(params.container-https-proxy) - - name: container-no-proxy + - &item42 + name: container-no-proxy value: $(params.container-no-proxy) - - name: env-identity-files-json + - &item43 + name: env-identity-files-json value: $(params.env-identity-files-json) - - name: gitops-root + - &item44 + name: gitops-root value: $(params.gitops-root) - - name: artifact-catalog + - &item45 + name: artifact-catalog value: $(params.artifact-catalog) when: - input: unidesk-yaml-only @@ -224,7 +270,9 @@ spec: privileged: true runAsUser: 1000 runAsGroup: 1000 - script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nif [ -f \"$root/skip-build\" ]; then cat \"$root/build-result.json\"; exit 0; fi\nenv_identity=$(cat \"$root/env-identity\")\nimage_repository='$(params.image-repository)'\nimage=\"$image_repository:$env_identity\"\ncontext_dir='$(params.context-dir)'\nif [ \"$context_dir\" = \".\" ]; then context_path=\"$root/repo\"; else context_path=\"$root/repo/${context_dir#./}\"; fi\nargs=\"build --allow network.host --frontend dockerfile.v0 --local context=$context_path --local dockerfile=$root/repo --opt filename=$(params.containerfile) --opt network=$(params.build-network)\"\nadd_opt() { args=\"$args --opt $1\"; }\nif [ -n '$(params.container-http-proxy)' ]; then add_opt 'build-arg:HTTP_PROXY=$(params.container-http-proxy)'; add_opt 'build-arg:http_proxy=$(params.container-http-proxy)'; fi\nif [ -n '$(params.container-https-proxy)' ]; then add_opt 'build-arg:HTTPS_PROXY=$(params.container-https-proxy)'; add_opt 'build-arg:https_proxy=$(params.container-https-proxy)'; fi\nif [ -n '$(params.container-https-proxy)' ]; then add_opt 'build-arg:ALL_PROXY=$(params.container-https-proxy)'; add_opt 'build-arg:all_proxy=$(params.container-https-proxy)'; elif [ -n '$(params.container-http-proxy)' ]; then add_opt 'build-arg:ALL_PROXY=$(params.container-http-proxy)'; add_opt 'build-arg:all_proxy=$(params.container-http-proxy)'; fi\nif [ -n '$(params.container-no-proxy)' ]; then add_opt 'build-arg:NO_PROXY=$(params.container-no-proxy)'; add_opt 'build-arg:no_proxy=$(params.container-no-proxy)'; fi\nwhile IFS= read -r opt; do [ -n \"$opt\" ] && add_opt \"$opt\"; done < \"$root/build-args.txt\"\nargs=\"$args --metadata-file $root/build-metadata.json --output type=image,name=$image,push=true,registry.insecure=true\"\nbuildctl-daemonless.sh $args\nmetadata_compact=$(tr -d '\\n' < \"$root/build-metadata.json\")\ndigest=$(printf '%s' \"$metadata_compact\" | sed -n 's/.*\"containerimage.digest\"[[:space:]]*:[[:space:]]*\"\\([^\"]*\\)\".*/\\1/p' | head -n 1)\ntest -n \"$digest\"\nprintf '{\"ok\":true,\"status\":\"built\",\"sourceCommit\":\"%s\",\"envIdentity\":\"%s\",\"image\":\"%s\",\"digest\":\"%s\",\"repositoryDigest\":\"%s@%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$env_identity\" \"$image\" \"$digest\" \"$image_repository\" \"$digest\" > \"$root/build-result.json\"\ncat \"$root/build-result.json\"" + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nif [ -f \"$root/skip-build\" ]; then cp \"$root/build-result.json\" \"$(results.build-result.path)\"; cat \"$root/build-result.json\"; exit 0; fi\nenv_identity=$(cat \"$root/env-identity\")\nimage_repository='$(params.image-repository)'\nimage=\"$image_repository:$env_identity\"\ncontext_dir='$(params.context-dir)'\nif [ \"$context_dir\" = \".\" ]; then context_path=\"$root/repo\"; else context_path=\"$root/repo/${context_dir#./}\"; fi\nargs=\"build --allow network.host --frontend dockerfile.v0 --local context=$context_path --local dockerfile=$root/repo --opt filename=$(params.containerfile) --opt network=$(params.build-network)\"\nadd_opt() { args=\"$args --opt $1\"; }\nif [ -n '$(params.container-http-proxy)' ]; then add_opt 'build-arg:HTTP_PROXY=$(params.container-http-proxy)'; add_opt 'build-arg:http_proxy=$(params.container-http-proxy)'; fi\nif [ -n '$(params.container-https-proxy)' ]; then add_opt 'build-arg:HTTPS_PROXY=$(params.container-https-proxy)'; add_opt 'build-arg:https_proxy=$(params.container-https-proxy)'; fi\nif [ -n '$(params.container-https-proxy)' ]; then add_opt 'build-arg:ALL_PROXY=$(params.container-https-proxy)'; add_opt 'build-arg:all_proxy=$(params.container-https-proxy)'; elif [ -n '$(params.container-http-proxy)' ]; then add_opt 'build-arg:ALL_PROXY=$(params.container-http-proxy)'; add_opt 'build-arg:all_proxy=$(params.container-http-proxy)'; fi\nif [ -n '$(params.container-no-proxy)' ]; then add_opt 'build-arg:NO_PROXY=$(params.container-no-proxy)'; add_opt 'build-arg:no_proxy=$(params.container-no-proxy)'; fi\nwhile IFS= read -r opt; do [ -n \"$opt\" ] && add_opt \"$opt\"; done < \"$root/build-args.txt\"\nargs=\"$args --metadata-file $root/build-metadata.json --output type=image,name=$image,push=true,registry.insecure=true\"\nbuildctl-daemonless.sh $args\nmetadata_compact=$(tr -d '\\n' < \"$root/build-metadata.json\")\ndigest=$(printf '%s' \"$metadata_compact\" | sed -n 's/.*\"containerimage.digest\"[[:space:]]*:[[:space:]]*\"\\([^\"]*\\)\".*/\\1/p' | head -n 1)\ntest -n \"$digest\"\nprintf '{\"ok\":true,\"status\":\"built\",\"sourceCommit\":\"%s\",\"envIdentity\":\"%s\",\"image\":\"%s\",\"digest\":\"%s\",\"repositoryDigest\":\"%s@%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$env_identity\" \"$image\" \"$digest\" \"$image_repository\" \"$digest\" > \"$root/build-result.json\"\ncp \"$root/build-result.json\" \"$(results.build-result.path)\"\ncat \"$root/build-result.json\"" + results: + - name: build-result params: *params1 when: @@ -240,22 +288,71 @@ spec: workspace: source taskSpec: params: - *params + - *item0 + - *item1 + - *item2 + - *item3 + - *item4 + - *item5 + - *item6 + - *item7 + - *item8 + - *item9 + - *item10 + - *item11 + - *item12 + - *item13 + - *item14 + - *item15 + - *item16 + - *item17 + - *item18 + - *item19 + - *item20 + - *item21 + - *item22 + - name: build-result-json workspaces: - name: source steps: - name: publish-gitops image: $(params.tools-image) env: + - name: BUILD_RESULT_JSON + value: $(params.build-result-json) - name: GITEA_TOKEN valueFrom: secretKeyRef: name: pac-gitea-agentrun-nc01-release key: token optional: true - script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nbuild_result=\"$root/build-result.json\"\ntest -s \"$build_result\"\ntemplates_b64=\"W3sicGF0aCI6InNvdXJjZS5qc29uIiwiY29udGVudCI6IntcbiAgXCJsYW5lXCI6IFwicmVsZWFzZVwiLFxuICBcInNvdXJjZUNvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwiZ2VuZXJhdGVkQnlcIjogXCJ1bmlkZXNrIGNvbmZpZy9hZ2VudHJ1bi55YW1sXCIsXG4gIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIlxufVxuIn0seyJwYXRoIjoiZGVwbG95L2FydGlmYWN0LWNhdGFsb2cubmMwMS1yZWxlYXNlLmpzb24iLCJjb250ZW50Ijoie1xuICBcImxhbmVcIjogXCJyZWxlYXNlXCIsXG4gIFwic291cmNlQnJhbmNoXCI6IFwicmVsZWFzZVwiLFxuICBcImdpdG9wc0JyYW5jaFwiOiBcIm5jMDEtcmVsZWFzZS1naXRvcHNcIixcbiAgXCJzb3VyY2VDb21taXRJZFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwic3VtbWFyeVwiOiBcImJ1aWxkPTEgcmV1c2U9MCBwbGFjZWhvbGRlcj0wXCIsXG4gIFwic2VydmljZXNcIjogW1xuICAgIHtcbiAgICAgIFwic2VydmljZUlkXCI6IFwiYWdlbnRydW4tbWdyXCIsXG4gICAgICBcImFydGlmYWN0S2luZFwiOiBcImVudi1yZXVzZVwiLFxuICAgICAgXCJzdGF0dXNcIjogXCJfX0FHRU5UUlVOX0lNQUdFX1NUQVRVU19fXCIsXG4gICAgICBcImltYWdlXCI6IFwiMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudjpfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9fXCIsXG4gICAgICBcImRpZ2VzdFwiOiBcInNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcInJlcG9zaXRvcnlEaWdlc3RcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcImltYWdlVGFnXCI6IFwiX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZJZGVudGl0eVwiOiBcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52SW1hZ2VcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52Ol9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52RGlnZXN0XCI6IFwic2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiZW52UmVwb3NpdG9yeURpZ2VzdFwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiYm9vdENvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gICAgICBcImJvb3RTY3JpcHRcIjogXCJkZXBsb3kvcnVudGltZS9ib290L2FnZW50cnVuLWJvb3Quc2hcIixcbiAgICAgIFwicHJvdmVuYW5jZVwiOiB7XG4gICAgICAgIFwic291cmNlQ29tbWl0SWRcIjogXCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wiLFxuICAgICAgICBcInNvdXJjZVwiOiBcInVuaWRlc2steWFtbC1vbmx5XCIsXG4gICAgICAgIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIixcbiAgICAgICAgXCJ2YWx1ZXNQcmludGVkXCI6IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICBdXG59XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvcHJvamVjdC55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBQcm9qZWN0LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLG5hbWVzcGFjZTogYXJnb2NkLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0sc3BlYzoge2Rlc2NyaXB0aW9uOiBBZ2VudFJ1biByZWxlYXNlIEdpdE9wcyBsYW5lLHNvdXJjZVJlcG9zOiBbaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0LGh0dHA6Ly9naXRlYS1odHRwLmRldm9wcy1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDozMDAwL21pcnJvcnMvcGlrYXNUZWNoLWFnZW50cnVuLmdpdF0sZGVzdGluYXRpb25zOiBbe3NlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZX1dLGNsdXN0ZXJSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCJcIixraW5kOiBOYW1lc3BhY2V9XSxuYW1lc3BhY2VSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCIqXCIsa2luZDogXCIqXCJ9XX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvYXBwbGljYXRpb24tcmVsZWFzZS55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBsaWNhdGlvbixtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZSxuYW1lc3BhY2U6IGFyZ29jZCxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtwcm9qZWN0OiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2Usc291cmNlOiB7cmVwb1VSTDogaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0LHRhcmdldFJldmlzaW9uOiBuYzAxLXJlbGVhc2UtZ2l0b3BzLHBhdGg6IGRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZX0sZGVzdGluYXRpb246IHtzZXJ2ZXI6IGh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyxuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2V9LHN5bmNQb2xpY3k6IHthdXRvbWF0ZWQ6IHtwcnVuZTogZmFsc2Usc2VsZkhlYWw6IHRydWV9LHN5bmNPcHRpb25zOiBbQ3JlYXRlTmFtZXNwYWNlPXRydWUsQXBwbHlPdXRPZlN5bmNPbmx5PXRydWVdfX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2Uva3VzdG9taXphdGlvbi55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBrdXN0b21pemUuY29uZmlnLms4cy5pby92MWJldGExLGtpbmQ6IEt1c3RvbWl6YXRpb24scmVzb3VyY2VzOiBbbmFtZXNwYWNlLnlhbWwsbWdyLnlhbWwscnVubmVyLXJiYWMueWFtbF19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvbmFtZXNwYWNlLnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IHYxLGtpbmQ6IE5hbWVzcGFjZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbiJ9LHsicGF0aCI6ImRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZS9tZ3IueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW1ncixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7c2VsZWN0b3I6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9LHBvcnRzOiBbe25hbWU6IGh0dHAscG9ydDogODA4MCx0YXJnZXRQb3J0OiBodHRwfV19fVxuLS0tXG57XCJhcGlWZXJzaW9uXCI6XCJhcHBzL3YxXCIsXCJraW5kXCI6XCJEZXBsb3ltZW50XCIsXCJtZXRhZGF0YVwiOntcIm5hbWVcIjpcImFnZW50cnVuLW1nclwiLFwibmFtZXNwYWNlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlXCIsXCJsYWJlbHNcIjp7XCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXCI6XCJhZ2VudHJ1blwiLFwiYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmVcIjpcInJlbGVhc2VcIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlXCI6XCJOQzAxXCJ9fSxcInNwZWNcIjp7XCJyZXBsaWNhc1wiOjEsXCJzZWxlY3RvclwiOntcIm1hdGNoTGFiZWxzXCI6e1wiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVwiOlwiYWdlbnRydW4tbWdyXCJ9fSxcInRlbXBsYXRlXCI6e1wibWV0YWRhdGFcIjp7XCJsYWJlbHNcIjp7XCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXCI6XCJhZ2VudHJ1blwiLFwiYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmVcIjpcInJlbGVhc2VcIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlXCI6XCJOQzAxXCIsXCJhcHAua3ViZXJuZXRlcy5pby9uYW1lXCI6XCJhZ2VudHJ1bi1tZ3JcIn0sXCJhbm5vdGF0aW9uc1wiOntcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lXCI6XCJyZWxlYXNlXCIsXCJhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvc291cmNlLWNvbW1pdFwiOlwiX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX19cIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9lbnYtaWRlbnRpdHlcIjpcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIn19LFwic3BlY1wiOntcInNlcnZpY2VBY2NvdW50TmFtZVwiOlwiYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nclwiLFwiY29udGFpbmVyc1wiOlt7XCJuYW1lXCI6XCJtZ3JcIixcImltYWdlXCI6XCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXCJpbWFnZVB1bGxQb2xpY3lcIjpcIklmTm90UHJlc2VudFwiLFwicG9ydHNcIjpbe1wibmFtZVwiOlwiaHR0cFwiLFwiY29udGFpbmVyUG9ydFwiOjgwODB9XSxcImVudlwiOlt7XCJuYW1lXCI6XCJBR0VOVFJVTl9MQU5FXCIsXCJ2YWx1ZVwiOlwicmVsZWFzZVwifSx7XCJuYW1lXCI6XCJEQVRBQkFTRV9VUkxcIixcInZhbHVlRnJvbVwiOntcInNlY3JldEtleVJlZlwiOntcIm5hbWVcIjpcImFnZW50cnVuLXJlbGVhc2UtbWdyLWRiXCIsXCJrZXlcIjpcIkRBVEFCQVNFX1VSTFwifX19LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1NPVVJDRV9DT01NSVRcIixcInZhbHVlXCI6XCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CT09UX0NPTU1JVFwiLFwidmFsdWVcIjpcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0JPT1RfTU9ERVwiLFwidmFsdWVcIjpcIm1nclwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CT09UX1JFUE9fVVJMXCIsXCJ2YWx1ZVwiOlwiaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0VOVl9JREVOVElUWVwiLFwidmFsdWVcIjpcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOVElNRV9OQU1FU1BBQ0VcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0lOVEVSTkFMX01HUl9VUkxcIixcInZhbHVlXCI6XCJodHRwOi8vYWdlbnRydW4tbWdyLmFnZW50cnVuLXJlbGVhc2Uuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfSU1BR0VcIixcInZhbHVlXCI6XCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TRVJWSUNFX0FDQ09VTlRcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9KT0JfTkFNRV9QUkVGSVhcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9OQU1FXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4tcmVsZWFzZS1hcGkta2V5XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9LRVlcIixcInZhbHVlXCI6XCJIV0xBQl9BUElfS0VZXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0dJVF9NSVJST1JfQkFTRV9VUkxcIixcInZhbHVlXCI6XCJodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfSURMRV9USU1FT1VUX01TXCIsXCJ2YWx1ZVwiOlwiNjAwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfTUFYX0FUVEVNUFRTXCIsXCJ2YWx1ZVwiOlwiNVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CQUNLRU5EX1JFVFJZX0lOSVRJQUxfQkFDS09GRl9NU1wiLFwidmFsdWVcIjpcIjEwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9NQVhfQkFDS09GRl9NU1wiLFwidmFsdWVcIjpcIjMwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fTUFYX1JVTk5FUlNcIixcInZhbHVlXCI6XCIxMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0NMRUFOVVBfT1JERVJcIixcInZhbHVlXCI6XCJvbGRlc3QtaW5hY3RpdmUtbGFzdC1hY3RpdmUtZmlyc3RcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9BQ1RJVkVfSEVBUlRCRUFUX01BWF9BR0VfTVNcIixcInZhbHVlXCI6XCI5MDAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9TVEFMRV9QRU5ESU5HX01BWF9BR0VfTVNcIixcInZhbHVlXCI6XCI5MDAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9NQVRDSF9MQUJFTFNfSlNPTlwiLFwidmFsdWVcIjpcIntcXFwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZlxcXCI6XFxcImFnZW50cnVuXFxcIixcXFwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVxcXCI6XFxcImFnZW50cnVuLXJ1bm5lclxcXCIsXFxcImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudFxcXCI6XFxcInJ1bm5lclxcXCJ9XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fSk9CX05BTUVfUFJFRklYRVNcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLGFnZW50cnVuLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX0NMRUFOVVBfRU5BQkxFRFwiLFwidmFsdWVcIjpcImZhbHNlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX01BWF9BR0VfSE9VUlNcIixcInZhbHVlXCI6XCI0OFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9DQU5DRUxfREVMSVZFUllfTU9ERVwiLFwidmFsdWVcIjpcIm1hbmFnZXItZXBvY2hcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQ0FOQ0VMX0dSQUNFRlVMX0FCT1JUX01TXCIsXCJ2YWx1ZVwiOlwiMTUwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQ0FOQ0VMX0tJTExfRVNDQUxBVElPTl9NU1wiLFwidmFsdWVcIjpcIjMwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0NBTkNFTF9TVEFMRV9IRUFSVEJFQVRfRkVOQ0lOR19NU1wiLFwidmFsdWVcIjpcIjkwMDAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9DQU5DRUxfTEFURV9XUklURV9GRU5DSU5HX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0NBTkNFTF9FVkVOVF9TVEFHRVNcIixcInZhbHVlXCI6XCJhY2NlcHRlZCxwZXJzaXN0ZWQsZGVsaXZlcmVkLGFib3J0aW5nLHRlcm1pbmFsaXplZCxmZW5jZWQsbGF0ZS13cml0ZS1yZWplY3RlZFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRUdSRVNTX1BST1hZX1VSTFwiLFwidmFsdWVcIjpcImh0dHA6Ly8xMC40Mi4wLjE6MTA4MDhcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX05PX1BST1hZX0VYVFJBXCIsXCJ2YWx1ZVwiOlwibG9jYWxob3N0LDEyNy4wLjAuMSw6OjEsLnN2Yywuc3ZjLmNsdXN0ZXIubG9jYWwsLmNsdXN0ZXIubG9jYWwsaHl1ZWFwaS5jb20sLmh5dWVhcGkuY29tLGFwaS5od3BvZC5jb20sYXBpLnBpa2FweXRob24uY29tLC5waWthcHl0aG9uLmNvbVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9BUElfS0VZXCIsXCJ2YWx1ZUZyb21cIjp7XCJzZWNyZXRLZXlSZWZcIjp7XCJuYW1lXCI6XCJhZ2VudHJ1bi1yZWxlYXNlLWFwaS1rZXlcIixcImtleVwiOlwiSFdMQUJfQVBJX0tFWVwifX19LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0JPT1RTVFJBUF9TRVJWRVJTXCIsXCJ2YWx1ZVwiOlwicGxhdGZvcm0taW5mcmEta2Fma2Eta2Fma2EtYm9vdHN0cmFwLnBsYXRmb3JtLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTJcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfQ0xJRU5UX0lEXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4tcmVsZWFzZS1tYW5hZ2VyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0VWRU5UX1RPUElDXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4uZXZlbnQudjFcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0JBVENIX1NJWkVcIixcInZhbHVlXCI6XCIxMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0lOVEVSVkFMX01TXCIsXCJ2YWx1ZVwiOlwiNTAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX09VVEJPWF9MRUFTRV9NU1wiLFwidmFsdWVcIjpcIjYwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX09VVEJPWF9SRVRSWV9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiNTAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9LQUZLQV9TVERJT19DTElFTlRfSURcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlLXJ1bm5lclwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9LQUZLQV9TVERJT19QUk9EVUNFX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX1NURElPX1RPUElDXCIsXCJ2YWx1ZVwiOlwiY29kZXgtc3RkaW8ucmF3LnYxXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9CQVRDSF9TSVpFXCIsXCJ2YWx1ZVwiOlwiMjBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9JTlRFUlZBTF9NU1wiLFwidmFsdWVcIjpcIjIwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUE9TVEdSRVNfUE9PTF9NQVhcIixcInZhbHVlXCI6XCI0XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0FUVEVNUFRfVElNRU9VVF9NU1wiLFwidmFsdWVcIjpcIjkwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0JBVENIX1NJWkVcIixcInZhbHVlXCI6XCIxMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9FTkFCTEVEXCIsXCJ2YWx1ZVwiOlwidHJ1ZVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9JTlRFUlZBTF9NU1wiLFwidmFsdWVcIjpcIjEwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTEVBU0VfTVNcIixcInZhbHVlXCI6XCIxMjAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTUFYX0FUVEVNUFRTXCIsXCJ2YWx1ZVwiOlwiNVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9SRVRSWV9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiNTAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfU1RBUlRVUF9SRVRSWV9JTklUSUFMX0JBQ0tPRkZfTVNcIixcInZhbHVlXCI6XCIyMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TVEFSVFVQX1JFVFJZX0pJVFRFUl9SQVRJT1wiLFwidmFsdWVcIjpcIjAuMlwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfU1RBUlRVUF9SRVRSWV9NQVhfQVRURU1QVFNcIixcInZhbHVlXCI6XCI1XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TVEFSVFVQX1JFVFJZX01BWF9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiMTYwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1NUQVJUVVBfUkVUUllfTVVMVElQTElFUlwiLFwidmFsdWVcIjpcIjJcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1NUQVJUVVBfUkVUUllfVE9UQUxfREVBRExJTkVfTVNcIixcInZhbHVlXCI6XCI2MDAwMFwifSx7XCJuYW1lXCI6XCJIV0xBQl9SVU5USU1FX0xBTkVcIixcInZhbHVlXCI6XCJyZWxlYXNlXCJ9LHtcIm5hbWVcIjpcIk9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfRU5EUE9JTlRcIixcInZhbHVlXCI6XCJodHRwOi8vb3RlbC1jb2xsZWN0b3IucGxhdGZvcm0taW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6NDMxOC92MS90cmFjZXNcIn0se1wibmFtZVwiOlwiT1RFTF9TRVJWSUNFX05BTUVcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1tYW5hZ2VyXCJ9LHtcIm5hbWVcIjpcIlVOSURFU0tfTk9ERV9JRFwiLFwidmFsdWVcIjpcIk5DMDFcIn0se1wibmFtZVwiOlwiVU5JREVTS19NQUlOX1NFUlZFUl9JUFwiLFwidmFsdWVcIjpcIjE1Mi41My4yMjkuMTQ4XCJ9XSxcInJlYWRpbmVzc1Byb2JlXCI6e1wiaHR0cEdldFwiOntcInBhdGhcIjpcIi9oZWFsdGgvcmVhZGluZXNzXCIsXCJwb3J0XCI6XCJodHRwXCJ9LFwidGltZW91dFNlY29uZHNcIjoyfSxcImxpdmVuZXNzUHJvYmVcIjp7XCJodHRwR2V0XCI6e1wicGF0aFwiOlwiL2hlYWx0aC9saXZlXCIsXCJwb3J0XCI6XCJodHRwXCJ9LFwidGltZW91dFNlY29uZHNcIjoyfSxcInN0YXJ0dXBQcm9iZVwiOntcImh0dHBHZXRcIjp7XCJwYXRoXCI6XCIvaGVhbHRoL2xpdmVcIixcInBvcnRcIjpcImh0dHBcIn0sXCJwZXJpb2RTZWNvbmRzXCI6MTAsXCJ0aW1lb3V0U2Vjb25kc1wiOjIsXCJmYWlsdXJlVGhyZXNob2xkXCI6OTB9LFwicmVzb3VyY2VzXCI6e1wicmVxdWVzdHNcIjp7XCJjcHVcIjpcIjEwMG1cIixcIm1lbW9yeVwiOlwiMjU2TWlcIn0sXCJsaW1pdHNcIjp7XCJjcHVcIjpcIjgwMG1cIixcIm1lbW9yeVwiOlwiMUdpXCJ9fX1dfX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi1yZWxlYXNlLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbYmF0Y2hdLHJlc291cmNlczogW2pvYnNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtwb2RzXSx2ZXJiczogW2RlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtldmVudHNdLHZlcmJzOiBbZ2V0LGxpc3Qsd2F0Y2hdfSx7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbcGVyc2lzdGVudHZvbHVtZWNsYWltc10sdmVyYnM6IFtjcmVhdGUsZ2V0LGxpc3Qsd2F0Y2gsZGVsZXRlXX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3ItcnVubmVyLWpvYi1jb250cm9sbGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHN1YmplY3RzOiBbe2tpbmQ6IFNlcnZpY2VBY2NvdW50LG5hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3J9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXJ1bm5lci1qb2ItY29udHJvbGxlcn19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGUsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXByb3ZpZGVyLXNlY3JldC1tYW5hZ2VyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCxwYXRjaCx1cGRhdGVdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcn19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvcnVubmVyLXJiYWMueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbZ2V0XX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1ydW5uZXItc2VjcmV0LXJlYWRlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyfX1cbiJ9XQ==\"\ngit_write_url='$(params.git-write-url)'\ngit_auth_url=\"$git_write_url\"\nif printf '%s' \"$git_write_url\" | grep -q '^http://gitea-http\\.'; then\n test -n \"${GITEA_TOKEN:-}\"\n git_auth_url=$(printf '%s' \"$git_write_url\" | sed \"s#^http://#http://x-access-token:${GITEA_TOKEN}@#\")\nfi\nrm -rf \"$root/gitops\"\ngit clone \"$git_auth_url\" \"$root/gitops\"\ncd \"$root/gitops\"\ngit fetch origin \"$(params.gitops-branch)\" || true\nif git rev-parse --verify \"refs/remotes/origin/$(params.gitops-branch)^{commit}\" >/dev/null 2>&1; then git checkout -B \"$(params.gitops-branch)\" \"refs/remotes/origin/$(params.gitops-branch)\"; else git checkout --orphan \"$(params.gitops-branch)\"; git rm -rf . >/dev/null 2>&1 || true; fi\nincoming_source_commit='$(params.revision)'\nsource_branch='$(params.source-branch)'\nbranch_source_commit=$(git -C \"$root/repo\" rev-parse --verify \"refs/remotes/origin/${source_branch}^{commit}\")\ngitops_source_commit=$(node -e 'try { const value = JSON.parse(require(\"node:fs\").readFileSync(\"source.json\", \"utf8\")).sourceCommit; if (typeof value === \"string\") process.stdout.write(value); } catch {}')\nstale_reason=''\nif [ \"$incoming_source_commit\" != \"$branch_source_commit\" ]; then stale_reason='stale-source-revision'; fi\nif [ -z \"$stale_reason\" ] && [ -n \"$gitops_source_commit\" ] && [ \"$incoming_source_commit\" != \"$gitops_source_commit\" ]; then\n if ! git -C \"$root/repo\" cat-file -e \"${gitops_source_commit}^{commit}\" 2>/dev/null; then stale_reason='gitops-source-order-unverifiable';\n elif git -C \"$root/repo\" merge-base --is-ancestor \"$incoming_source_commit\" \"$gitops_source_commit\"; then stale_reason='stale-gitops-source-revision';\n elif ! git -C \"$root/repo\" merge-base --is-ancestor \"$gitops_source_commit\" \"$incoming_source_commit\"; then stale_reason='divergent-gitops-source-revision'; fi\nfi\nif [ -n \"$stale_reason\" ]; then\n gitops_commit=$(git rev-parse HEAD)\n INCOMING_SOURCE_COMMIT=\"$incoming_source_commit\" CURRENT_SOURCE_COMMIT=\"$branch_source_commit\" GITOPS_SOURCE_COMMIT=\"$gitops_source_commit\" GITOPS_COMMIT=\"$gitops_commit\" STALE_REASON=\"$stale_reason\" node <<'NODE'\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', reason: process.env.STALE_REASON, warning: true, blocking: false, changed: false, stale: true, gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: process.env.INCOMING_SOURCE_COMMIT, currentSourceCommit: process.env.CURRENT_SOURCE_COMMIT, gitopsSourceCommit: process.env.GITOPS_SOURCE_COMMIT || null, valuesPrinted: false }));\nNODE\n exit 0\nfi\ngit rm -rf --ignore-unmatch \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json >/dev/null 2>&1 || true\nrm -rf \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json\nTEMPLATES_B64=\"$templates_b64\" BUILD_RESULT=\"$build_result\" node <<'NODE'\nconst { mkdirSync, readFileSync, writeFileSync } = require('node:fs');\nconst { dirname } = require('node:path');\nconst templates = JSON.parse(Buffer.from(process.env.TEMPLATES_B64, 'base64').toString('utf8'));\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconst replacements = new Map([\n ['__AGENTRUN_SOURCE_COMMIT__', build.sourceCommit],\n ['__AGENTRUN_ENV_IDENTITY__', build.envIdentity],\n ['sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', build.digest],\n ['__AGENTRUN_IMAGE_STATUS__', build.status],\n]);\nfor (const file of templates) {\n let content = file.content;\n for (const [from, to] of replacements) content = content.split(from).join(to);\n mkdirSync(dirname(file.path), { recursive: true });\n writeFileSync(file.path, content);\n}\nNODE\nfeature_config_schema_started_ms=\"$(date +%s%3N 2>/dev/null || date +%s000)\"\nexport UNIDESK_FEATURE_CONFIG_REPO_DIR=\"$root\"\nexport UNIDESK_FEATURE_CONFIG_RENDERED_ROOT=\"$PWD/$(params.gitops-root)\"\nexport UNIDESK_PAC_CONSUMER='agentrun-nc01-release'\nexport OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces'\nexport OTEL_SERVICE_NAME='unidesk-cicd'\nexport OTEL_TRACES_SAMPLER_ARG='1'\nexport OTEL_EXPORTER_TIMEOUT_MS='300'\nfeature_config_validator_base=''\nfeature_config_validator=''\nif feature_config_validator_base=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-feature-config-validator.XXXXXX\" 2>/dev/null)\"; then\n feature_config_validator=\"${feature_config_validator_base}.mjs\"\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_validator\"; then\n rm -f \"$feature_config_validator_base\" \"$feature_config_validator\" || true\n feature_config_validator=''\n fi\n rm -f \"$feature_config_validator_base\" || true\nfi\nfeature_config_ajv_bundle=''\nif feature_config_ajv_bundle=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-ajv2020.XXXXXX\" 2>/dev/null)\"; then\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_ajv_bundle\"; then\n rm -f \"$feature_config_ajv_bundle\" || true\n feature_config_ajv_bundle=''\n fi\nfi\nexport UNIDESK_AJV2020_BUNDLE=\"${feature_config_ajv_bundle:-${TMPDIR:-/tmp}/unidesk-ajv2020-unavailable}\"\nexport UNIDESK_FEATURE_CONFIG_VALIDATOR=\"${feature_config_validator:-${TMPDIR:-/tmp}/unidesk-feature-config-validator-unavailable.mjs}\"\nif ! node --input-type=module <<'NODE_UNIDESK_FEATURE_CONFIG_SCHEMA'\nimport { pathToFileURL } from 'node:url';\nconst validator = await import(pathToFileURL(process.env.UNIDESK_FEATURE_CONFIG_VALIDATOR).href);\nawait validator.runFeatureConfigSchemaValidation({ repoDir: process.env.UNIDESK_FEATURE_CONFIG_REPO_DIR, renderedRoot: process.env.UNIDESK_FEATURE_CONFIG_RENDERED_ROOT, consumer: process.env.UNIDESK_PAC_CONSUMER });\nNODE_UNIDESK_FEATURE_CONFIG_SCHEMA\nthen\n printf '{\"event\":\"feature-config-schema-validation\",\"warning\":true,\"blocking\":false,\"code\":\"feature-config-validator-process-failure\",\"mutation\":false,\"valuesPrinted\":false}\\n' >&2\nfi\nif [ -n \"$feature_config_validator\" ]; then rm -f \"$feature_config_validator\" || true; fi\nif [ -n \"$feature_config_ajv_bundle\" ]; then rm -f \"$feature_config_ajv_bundle\" || true; fi\nif command -v ci_timing_emit >/dev/null 2>&1; then\n ci_timing_emit feature-config-schema-validation succeeded \"$feature_config_schema_started_ms\"\nelse\n printf '{\"event\":\"ci.stage.timing\",\"stage\":\"feature-config-schema-validation\",\"status\":\"succeeded\",\"blocking\":false}\\n' >&2\nfi\ngit add source.json \"$(params.artifact-catalog)\" \"$(params.gitops-root)\"\nif git diff --quiet --cached; then changed=false; else changed=true; git -c user.email=agentrun@unidesk.local -c user.name='UniDesk AgentRun PaC' commit -m \"deploy: render AgentRun $(params.gitops-branch) from PaC\"; fi\ngit remote set-url origin \"$git_auth_url\"\ngit push -u origin \"$(params.gitops-branch)\"\ngitops_commit=$(git rev-parse HEAD)\nBUILD_RESULT=\"$build_result\" CHANGED=\"$changed\" GITOPS_COMMIT=\"$gitops_commit\" node <<'NODE'\nconst { readFileSync } = require('node:fs');\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', changed: process.env.CHANGED === 'true', gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: build.sourceCommit, envIdentity: build.envIdentity, imageStatus: build.status, digest: build.digest, valuesPrinted: false }));\nNODE" + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nbuild_result=\"$root/build-result.json\"\nprintf '%s\\n' \"$BUILD_RESULT_JSON\" > \"$build_result\"\ntest -s \"$build_result\"\ntemplates_b64=\"W3sicGF0aCI6InNvdXJjZS5qc29uIiwiY29udGVudCI6IntcbiAgXCJsYW5lXCI6IFwicmVsZWFzZVwiLFxuICBcInNvdXJjZUNvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwiZ2VuZXJhdGVkQnlcIjogXCJ1bmlkZXNrIGNvbmZpZy9hZ2VudHJ1bi55YW1sXCIsXG4gIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIlxufVxuIn0seyJwYXRoIjoiZGVwbG95L2FydGlmYWN0LWNhdGFsb2cubmMwMS1yZWxlYXNlLmpzb24iLCJjb250ZW50Ijoie1xuICBcImxhbmVcIjogXCJyZWxlYXNlXCIsXG4gIFwic291cmNlQnJhbmNoXCI6IFwicmVsZWFzZVwiLFxuICBcImdpdG9wc0JyYW5jaFwiOiBcIm5jMDEtcmVsZWFzZS1naXRvcHNcIixcbiAgXCJzb3VyY2VDb21taXRJZFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwic3VtbWFyeVwiOiBcImJ1aWxkPTEgcmV1c2U9MCBwbGFjZWhvbGRlcj0wXCIsXG4gIFwic2VydmljZXNcIjogW1xuICAgIHtcbiAgICAgIFwic2VydmljZUlkXCI6IFwiYWdlbnRydW4tbWdyXCIsXG4gICAgICBcImFydGlmYWN0S2luZFwiOiBcImVudi1yZXVzZVwiLFxuICAgICAgXCJzdGF0dXNcIjogXCJfX0FHRU5UUlVOX0lNQUdFX1NUQVRVU19fXCIsXG4gICAgICBcImltYWdlXCI6IFwiMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudjpfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9fXCIsXG4gICAgICBcImRpZ2VzdFwiOiBcInNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcInJlcG9zaXRvcnlEaWdlc3RcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcImltYWdlVGFnXCI6IFwiX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZJZGVudGl0eVwiOiBcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52SW1hZ2VcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52Ol9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52RGlnZXN0XCI6IFwic2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiZW52UmVwb3NpdG9yeURpZ2VzdFwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiYm9vdENvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gICAgICBcImJvb3RTY3JpcHRcIjogXCJkZXBsb3kvcnVudGltZS9ib290L2FnZW50cnVuLWJvb3Quc2hcIixcbiAgICAgIFwicHJvdmVuYW5jZVwiOiB7XG4gICAgICAgIFwic291cmNlQ29tbWl0SWRcIjogXCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wiLFxuICAgICAgICBcInNvdXJjZVwiOiBcInVuaWRlc2steWFtbC1vbmx5XCIsXG4gICAgICAgIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIixcbiAgICAgICAgXCJ2YWx1ZXNQcmludGVkXCI6IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICBdXG59XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvcHJvamVjdC55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBQcm9qZWN0LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLG5hbWVzcGFjZTogYXJnb2NkLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0sc3BlYzoge2Rlc2NyaXB0aW9uOiBBZ2VudFJ1biByZWxlYXNlIEdpdE9wcyBsYW5lLHNvdXJjZVJlcG9zOiBbaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0LGh0dHA6Ly9naXRlYS1odHRwLmRldm9wcy1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDozMDAwL21pcnJvcnMvcGlrYXNUZWNoLWFnZW50cnVuLmdpdF0sZGVzdGluYXRpb25zOiBbe3NlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZX1dLGNsdXN0ZXJSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCJcIixraW5kOiBOYW1lc3BhY2V9XSxuYW1lc3BhY2VSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCIqXCIsa2luZDogXCIqXCJ9XX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvYXBwbGljYXRpb24tcmVsZWFzZS55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBsaWNhdGlvbixtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZSxuYW1lc3BhY2U6IGFyZ29jZCxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtwcm9qZWN0OiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2Usc291cmNlOiB7cmVwb1VSTDogaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0LHRhcmdldFJldmlzaW9uOiBuYzAxLXJlbGVhc2UtZ2l0b3BzLHBhdGg6IGRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZX0sZGVzdGluYXRpb246IHtzZXJ2ZXI6IGh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyxuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2V9LHN5bmNQb2xpY3k6IHthdXRvbWF0ZWQ6IHtwcnVuZTogZmFsc2Usc2VsZkhlYWw6IHRydWV9LHN5bmNPcHRpb25zOiBbQ3JlYXRlTmFtZXNwYWNlPXRydWUsQXBwbHlPdXRPZlN5bmNPbmx5PXRydWVdfX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2Uva3VzdG9taXphdGlvbi55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBrdXN0b21pemUuY29uZmlnLms4cy5pby92MWJldGExLGtpbmQ6IEt1c3RvbWl6YXRpb24scmVzb3VyY2VzOiBbbmFtZXNwYWNlLnlhbWwsbWdyLnlhbWwscnVubmVyLXJiYWMueWFtbF19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvbmFtZXNwYWNlLnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IHYxLGtpbmQ6IE5hbWVzcGFjZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbiJ9LHsicGF0aCI6ImRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZS9tZ3IueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW1ncixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7c2VsZWN0b3I6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9LHBvcnRzOiBbe25hbWU6IGh0dHAscG9ydDogODA4MCx0YXJnZXRQb3J0OiBodHRwfV19fVxuLS0tXG57XCJhcGlWZXJzaW9uXCI6XCJhcHBzL3YxXCIsXCJraW5kXCI6XCJEZXBsb3ltZW50XCIsXCJtZXRhZGF0YVwiOntcIm5hbWVcIjpcImFnZW50cnVuLW1nclwiLFwibmFtZXNwYWNlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlXCIsXCJsYWJlbHNcIjp7XCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXCI6XCJhZ2VudHJ1blwiLFwiYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmVcIjpcInJlbGVhc2VcIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlXCI6XCJOQzAxXCJ9fSxcInNwZWNcIjp7XCJyZXBsaWNhc1wiOjEsXCJzZWxlY3RvclwiOntcIm1hdGNoTGFiZWxzXCI6e1wiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVwiOlwiYWdlbnRydW4tbWdyXCJ9fSxcInRlbXBsYXRlXCI6e1wibWV0YWRhdGFcIjp7XCJsYWJlbHNcIjp7XCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXCI6XCJhZ2VudHJ1blwiLFwiYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmVcIjpcInJlbGVhc2VcIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlXCI6XCJOQzAxXCIsXCJhcHAua3ViZXJuZXRlcy5pby9uYW1lXCI6XCJhZ2VudHJ1bi1tZ3JcIn0sXCJhbm5vdGF0aW9uc1wiOntcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lXCI6XCJyZWxlYXNlXCIsXCJhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvc291cmNlLWNvbW1pdFwiOlwiX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX19cIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9lbnYtaWRlbnRpdHlcIjpcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIn19LFwic3BlY1wiOntcInNlcnZpY2VBY2NvdW50TmFtZVwiOlwiYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nclwiLFwiY29udGFpbmVyc1wiOlt7XCJuYW1lXCI6XCJtZ3JcIixcImltYWdlXCI6XCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXCJpbWFnZVB1bGxQb2xpY3lcIjpcIklmTm90UHJlc2VudFwiLFwicG9ydHNcIjpbe1wibmFtZVwiOlwiaHR0cFwiLFwiY29udGFpbmVyUG9ydFwiOjgwODB9XSxcImVudlwiOlt7XCJuYW1lXCI6XCJBR0VOVFJVTl9MQU5FXCIsXCJ2YWx1ZVwiOlwicmVsZWFzZVwifSx7XCJuYW1lXCI6XCJEQVRBQkFTRV9VUkxcIixcInZhbHVlRnJvbVwiOntcInNlY3JldEtleVJlZlwiOntcIm5hbWVcIjpcImFnZW50cnVuLXJlbGVhc2UtbWdyLWRiXCIsXCJrZXlcIjpcIkRBVEFCQVNFX1VSTFwifX19LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1NPVVJDRV9DT01NSVRcIixcInZhbHVlXCI6XCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CT09UX0NPTU1JVFwiLFwidmFsdWVcIjpcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0JPT1RfTU9ERVwiLFwidmFsdWVcIjpcIm1nclwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CT09UX1JFUE9fVVJMXCIsXCJ2YWx1ZVwiOlwiaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0VOVl9JREVOVElUWVwiLFwidmFsdWVcIjpcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOVElNRV9OQU1FU1BBQ0VcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0lOVEVSTkFMX01HUl9VUkxcIixcInZhbHVlXCI6XCJodHRwOi8vYWdlbnRydW4tbWdyLmFnZW50cnVuLXJlbGVhc2Uuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfSU1BR0VcIixcInZhbHVlXCI6XCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TRVJWSUNFX0FDQ09VTlRcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9KT0JfTkFNRV9QUkVGSVhcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9OQU1FXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4tcmVsZWFzZS1hcGkta2V5XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9LRVlcIixcInZhbHVlXCI6XCJIV0xBQl9BUElfS0VZXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0dJVF9NSVJST1JfQkFTRV9VUkxcIixcInZhbHVlXCI6XCJodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfSURMRV9USU1FT1VUX01TXCIsXCJ2YWx1ZVwiOlwiNjAwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfTUFYX0FUVEVNUFRTXCIsXCJ2YWx1ZVwiOlwiNVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CQUNLRU5EX1JFVFJZX0lOSVRJQUxfQkFDS09GRl9NU1wiLFwidmFsdWVcIjpcIjEwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9NQVhfQkFDS09GRl9NU1wiLFwidmFsdWVcIjpcIjMwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fTUFYX1JVTk5FUlNcIixcInZhbHVlXCI6XCIxMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0NMRUFOVVBfT1JERVJcIixcInZhbHVlXCI6XCJvbGRlc3QtaW5hY3RpdmUtbGFzdC1hY3RpdmUtZmlyc3RcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9BQ1RJVkVfSEVBUlRCRUFUX01BWF9BR0VfTVNcIixcInZhbHVlXCI6XCI5MDAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9TVEFMRV9QRU5ESU5HX01BWF9BR0VfTVNcIixcInZhbHVlXCI6XCI5MDAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9NQVRDSF9MQUJFTFNfSlNPTlwiLFwidmFsdWVcIjpcIntcXFwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZlxcXCI6XFxcImFnZW50cnVuXFxcIixcXFwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVxcXCI6XFxcImFnZW50cnVuLXJ1bm5lclxcXCIsXFxcImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudFxcXCI6XFxcInJ1bm5lclxcXCJ9XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fSk9CX05BTUVfUFJFRklYRVNcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLGFnZW50cnVuLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX0NMRUFOVVBfRU5BQkxFRFwiLFwidmFsdWVcIjpcImZhbHNlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX01BWF9BR0VfSE9VUlNcIixcInZhbHVlXCI6XCI0OFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9DQU5DRUxfREVMSVZFUllfTU9ERVwiLFwidmFsdWVcIjpcIm1hbmFnZXItZXBvY2hcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQ0FOQ0VMX0dSQUNFRlVMX0FCT1JUX01TXCIsXCJ2YWx1ZVwiOlwiMTUwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQ0FOQ0VMX0tJTExfRVNDQUxBVElPTl9NU1wiLFwidmFsdWVcIjpcIjMwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0NBTkNFTF9TVEFMRV9IRUFSVEJFQVRfRkVOQ0lOR19NU1wiLFwidmFsdWVcIjpcIjkwMDAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9DQU5DRUxfTEFURV9XUklURV9GRU5DSU5HX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0NBTkNFTF9FVkVOVF9TVEFHRVNcIixcInZhbHVlXCI6XCJhY2NlcHRlZCxwZXJzaXN0ZWQsZGVsaXZlcmVkLGFib3J0aW5nLHRlcm1pbmFsaXplZCxmZW5jZWQsbGF0ZS13cml0ZS1yZWplY3RlZFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRUdSRVNTX1BST1hZX1VSTFwiLFwidmFsdWVcIjpcImh0dHA6Ly8xMC40Mi4wLjE6MTA4MDhcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX05PX1BST1hZX0VYVFJBXCIsXCJ2YWx1ZVwiOlwibG9jYWxob3N0LDEyNy4wLjAuMSw6OjEsLnN2Yywuc3ZjLmNsdXN0ZXIubG9jYWwsLmNsdXN0ZXIubG9jYWwsaHl1ZWFwaS5jb20sLmh5dWVhcGkuY29tLGFwaS5od3BvZC5jb20sYXBpLnBpa2FweXRob24uY29tLC5waWthcHl0aG9uLmNvbVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9BUElfS0VZXCIsXCJ2YWx1ZUZyb21cIjp7XCJzZWNyZXRLZXlSZWZcIjp7XCJuYW1lXCI6XCJhZ2VudHJ1bi1yZWxlYXNlLWFwaS1rZXlcIixcImtleVwiOlwiSFdMQUJfQVBJX0tFWVwifX19LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0JPT1RTVFJBUF9TRVJWRVJTXCIsXCJ2YWx1ZVwiOlwicGxhdGZvcm0taW5mcmEta2Fma2Eta2Fma2EtYm9vdHN0cmFwLnBsYXRmb3JtLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTJcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfQ0xJRU5UX0lEXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4tcmVsZWFzZS1tYW5hZ2VyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0VWRU5UX1RPUElDXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4uZXZlbnQudjFcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0JBVENIX1NJWkVcIixcInZhbHVlXCI6XCIxMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0lOVEVSVkFMX01TXCIsXCJ2YWx1ZVwiOlwiNTAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX09VVEJPWF9MRUFTRV9NU1wiLFwidmFsdWVcIjpcIjYwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX09VVEJPWF9SRVRSWV9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiNTAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9LQUZLQV9TVERJT19DTElFTlRfSURcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlLXJ1bm5lclwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9LQUZLQV9TVERJT19QUk9EVUNFX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX1NURElPX1RPUElDXCIsXCJ2YWx1ZVwiOlwiY29kZXgtc3RkaW8ucmF3LnYxXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9CQVRDSF9TSVpFXCIsXCJ2YWx1ZVwiOlwiMjBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9JTlRFUlZBTF9NU1wiLFwidmFsdWVcIjpcIjIwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUE9TVEdSRVNfUE9PTF9NQVhcIixcInZhbHVlXCI6XCI0XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0FUVEVNUFRfVElNRU9VVF9NU1wiLFwidmFsdWVcIjpcIjkwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0JBVENIX1NJWkVcIixcInZhbHVlXCI6XCIxMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9FTkFCTEVEXCIsXCJ2YWx1ZVwiOlwidHJ1ZVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9JTlRFUlZBTF9NU1wiLFwidmFsdWVcIjpcIjEwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTEVBU0VfTVNcIixcInZhbHVlXCI6XCIxMjAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTUFYX0FUVEVNUFRTXCIsXCJ2YWx1ZVwiOlwiNVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9SRVRSWV9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiNTAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfU1RBUlRVUF9SRVRSWV9JTklUSUFMX0JBQ0tPRkZfTVNcIixcInZhbHVlXCI6XCIyMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TVEFSVFVQX1JFVFJZX0pJVFRFUl9SQVRJT1wiLFwidmFsdWVcIjpcIjAuMlwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfU1RBUlRVUF9SRVRSWV9NQVhfQVRURU1QVFNcIixcInZhbHVlXCI6XCI1XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TVEFSVFVQX1JFVFJZX01BWF9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiMTYwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1NUQVJUVVBfUkVUUllfTVVMVElQTElFUlwiLFwidmFsdWVcIjpcIjJcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1NUQVJUVVBfUkVUUllfVE9UQUxfREVBRExJTkVfTVNcIixcInZhbHVlXCI6XCI2MDAwMFwifSx7XCJuYW1lXCI6XCJIV0xBQl9SVU5USU1FX0xBTkVcIixcInZhbHVlXCI6XCJyZWxlYXNlXCJ9LHtcIm5hbWVcIjpcIk9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfRU5EUE9JTlRcIixcInZhbHVlXCI6XCJodHRwOi8vb3RlbC1jb2xsZWN0b3IucGxhdGZvcm0taW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6NDMxOC92MS90cmFjZXNcIn0se1wibmFtZVwiOlwiT1RFTF9TRVJWSUNFX05BTUVcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1tYW5hZ2VyXCJ9LHtcIm5hbWVcIjpcIlVOSURFU0tfTk9ERV9JRFwiLFwidmFsdWVcIjpcIk5DMDFcIn0se1wibmFtZVwiOlwiVU5JREVTS19NQUlOX1NFUlZFUl9JUFwiLFwidmFsdWVcIjpcIjE1Mi41My4yMjkuMTQ4XCJ9XSxcInJlYWRpbmVzc1Byb2JlXCI6e1wiaHR0cEdldFwiOntcInBhdGhcIjpcIi9oZWFsdGgvcmVhZGluZXNzXCIsXCJwb3J0XCI6XCJodHRwXCJ9LFwidGltZW91dFNlY29uZHNcIjoyfSxcImxpdmVuZXNzUHJvYmVcIjp7XCJodHRwR2V0XCI6e1wicGF0aFwiOlwiL2hlYWx0aC9saXZlXCIsXCJwb3J0XCI6XCJodHRwXCJ9LFwidGltZW91dFNlY29uZHNcIjoyfSxcInN0YXJ0dXBQcm9iZVwiOntcImh0dHBHZXRcIjp7XCJwYXRoXCI6XCIvaGVhbHRoL2xpdmVcIixcInBvcnRcIjpcImh0dHBcIn0sXCJwZXJpb2RTZWNvbmRzXCI6MTAsXCJ0aW1lb3V0U2Vjb25kc1wiOjIsXCJmYWlsdXJlVGhyZXNob2xkXCI6OTB9LFwicmVzb3VyY2VzXCI6e1wicmVxdWVzdHNcIjp7XCJjcHVcIjpcIjEwMG1cIixcIm1lbW9yeVwiOlwiMjU2TWlcIn0sXCJsaW1pdHNcIjp7XCJjcHVcIjpcIjgwMG1cIixcIm1lbW9yeVwiOlwiMUdpXCJ9fX1dfX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi1yZWxlYXNlLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbYmF0Y2hdLHJlc291cmNlczogW2pvYnNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtwb2RzXSx2ZXJiczogW2RlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtldmVudHNdLHZlcmJzOiBbZ2V0LGxpc3Qsd2F0Y2hdfSx7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbcGVyc2lzdGVudHZvbHVtZWNsYWltc10sdmVyYnM6IFtjcmVhdGUsZ2V0LGxpc3Qsd2F0Y2gsZGVsZXRlXX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3ItcnVubmVyLWpvYi1jb250cm9sbGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHN1YmplY3RzOiBbe2tpbmQ6IFNlcnZpY2VBY2NvdW50LG5hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3J9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXJ1bm5lci1qb2ItY29udHJvbGxlcn19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGUsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXByb3ZpZGVyLXNlY3JldC1tYW5hZ2VyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCxwYXRjaCx1cGRhdGVdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcn19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvcnVubmVyLXJiYWMueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbZ2V0XX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1ydW5uZXItc2VjcmV0LXJlYWRlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyfX1cbiJ9XQ==\"\ngit_write_url='$(params.git-write-url)'\ngit_auth_url=\"$git_write_url\"\nif printf '%s' \"$git_write_url\" | grep -q '^http://gitea-http\\.'; then\n test -n \"${GITEA_TOKEN:-}\"\n git_auth_url=$(printf '%s' \"$git_write_url\" | sed \"s#^http://#http://x-access-token:${GITEA_TOKEN}@#\")\nfi\nrm -rf \"$root/gitops\"\ngit clone \"$git_auth_url\" \"$root/gitops\"\ncd \"$root/gitops\"\ngit fetch origin \"$(params.gitops-branch)\" || true\nif git rev-parse --verify \"refs/remotes/origin/$(params.gitops-branch)^{commit}\" >/dev/null 2>&1; then git checkout -B \"$(params.gitops-branch)\" \"refs/remotes/origin/$(params.gitops-branch)\"; else git checkout --orphan \"$(params.gitops-branch)\"; git rm -rf . >/dev/null 2>&1 || true; fi\nincoming_source_commit='$(params.revision)'\nsource_branch='$(params.source-branch)'\nbranch_source_commit=$(git -C \"$root/repo\" rev-parse --verify \"refs/remotes/origin/${source_branch}^{commit}\")\ngitops_source_commit=$(node -e 'try { const value = JSON.parse(require(\"node:fs\").readFileSync(\"source.json\", \"utf8\")).sourceCommit; if (typeof value === \"string\") process.stdout.write(value); } catch {}')\nstale_reason=''\nif [ \"$incoming_source_commit\" != \"$branch_source_commit\" ]; then stale_reason='stale-source-revision'; fi\nif [ -z \"$stale_reason\" ] && [ -n \"$gitops_source_commit\" ] && [ \"$incoming_source_commit\" != \"$gitops_source_commit\" ]; then\n if ! git -C \"$root/repo\" cat-file -e \"${gitops_source_commit}^{commit}\" 2>/dev/null; then stale_reason='gitops-source-order-unverifiable';\n elif git -C \"$root/repo\" merge-base --is-ancestor \"$incoming_source_commit\" \"$gitops_source_commit\"; then stale_reason='stale-gitops-source-revision';\n elif ! git -C \"$root/repo\" merge-base --is-ancestor \"$gitops_source_commit\" \"$incoming_source_commit\"; then stale_reason='divergent-gitops-source-revision'; fi\nfi\nif [ -n \"$stale_reason\" ]; then\n gitops_commit=$(git rev-parse HEAD)\n INCOMING_SOURCE_COMMIT=\"$incoming_source_commit\" CURRENT_SOURCE_COMMIT=\"$branch_source_commit\" GITOPS_SOURCE_COMMIT=\"$gitops_source_commit\" GITOPS_COMMIT=\"$gitops_commit\" STALE_REASON=\"$stale_reason\" node <<'NODE'\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', reason: process.env.STALE_REASON, warning: true, blocking: false, changed: false, stale: true, gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: process.env.INCOMING_SOURCE_COMMIT, currentSourceCommit: process.env.CURRENT_SOURCE_COMMIT, gitopsSourceCommit: process.env.GITOPS_SOURCE_COMMIT || null, valuesPrinted: false }));\nNODE\n exit 0\nfi\ngit rm -rf --ignore-unmatch \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json >/dev/null 2>&1 || true\nrm -rf \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json\nTEMPLATES_B64=\"$templates_b64\" BUILD_RESULT=\"$build_result\" node <<'NODE'\nconst { mkdirSync, readFileSync, writeFileSync } = require('node:fs');\nconst { dirname } = require('node:path');\nconst templates = JSON.parse(Buffer.from(process.env.TEMPLATES_B64, 'base64').toString('utf8'));\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconst replacements = new Map([\n ['__AGENTRUN_SOURCE_COMMIT__', build.sourceCommit],\n ['__AGENTRUN_ENV_IDENTITY__', build.envIdentity],\n ['sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', build.digest],\n ['__AGENTRUN_IMAGE_STATUS__', build.status],\n]);\nfor (const file of templates) {\n let content = file.content;\n for (const [from, to] of replacements) content = content.split(from).join(to);\n mkdirSync(dirname(file.path), { recursive: true });\n writeFileSync(file.path, content);\n}\nNODE\nfeature_config_schema_started_ms=\"$(date +%s%3N 2>/dev/null || date +%s000)\"\nexport UNIDESK_FEATURE_CONFIG_REPO_DIR=\"$root\"\nexport UNIDESK_FEATURE_CONFIG_RENDERED_ROOT=\"$PWD/$(params.gitops-root)\"\nexport UNIDESK_PAC_CONSUMER='agentrun-nc01-release'\nexport OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces'\nexport OTEL_SERVICE_NAME='unidesk-cicd'\nexport OTEL_TRACES_SAMPLER_ARG='1'\nexport OTEL_EXPORTER_TIMEOUT_MS='300'\nfeature_config_validator_base=''\nfeature_config_validator=''\nif feature_config_validator_base=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-feature-config-validator.XXXXXX\" 2>/dev/null)\"; then\n feature_config_validator=\"${feature_config_validator_base}.mjs\"\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_validator\"; then\n rm -f \"$feature_config_validator_base\" \"$feature_config_validator\" || true\n feature_config_validator=''\n fi\n rm -f \"$feature_config_validator_base\" || true\nfi\nfeature_config_ajv_bundle=''\nif feature_config_ajv_bundle=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-ajv2020.XXXXXX\" 2>/dev/null)\"; then\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_ajv_bundle\"; then\n rm -f \"$feature_config_ajv_bundle\" || true\n feature_config_ajv_bundle=''\n fi\nfi\nexport UNIDESK_AJV2020_BUNDLE=\"${feature_config_ajv_bundle:-${TMPDIR:-/tmp}/unidesk-ajv2020-unavailable}\"\nexport UNIDESK_FEATURE_CONFIG_VALIDATOR=\"${feature_config_validator:-${TMPDIR:-/tmp}/unidesk-feature-config-validator-unavailable.mjs}\"\nif ! node --input-type=module <<'NODE_UNIDESK_FEATURE_CONFIG_SCHEMA'\nimport { pathToFileURL } from 'node:url';\nconst validator = await import(pathToFileURL(process.env.UNIDESK_FEATURE_CONFIG_VALIDATOR).href);\nawait validator.runFeatureConfigSchemaValidation({ repoDir: process.env.UNIDESK_FEATURE_CONFIG_REPO_DIR, renderedRoot: process.env.UNIDESK_FEATURE_CONFIG_RENDERED_ROOT, consumer: process.env.UNIDESK_PAC_CONSUMER });\nNODE_UNIDESK_FEATURE_CONFIG_SCHEMA\nthen\n printf '{\"event\":\"feature-config-schema-validation\",\"warning\":true,\"blocking\":false,\"code\":\"feature-config-validator-process-failure\",\"mutation\":false,\"valuesPrinted\":false}\\n' >&2\nfi\nif [ -n \"$feature_config_validator\" ]; then rm -f \"$feature_config_validator\" || true; fi\nif [ -n \"$feature_config_ajv_bundle\" ]; then rm -f \"$feature_config_ajv_bundle\" || true; fi\nif command -v ci_timing_emit >/dev/null 2>&1; then\n ci_timing_emit feature-config-schema-validation succeeded \"$feature_config_schema_started_ms\"\nelse\n printf '{\"event\":\"ci.stage.timing\",\"stage\":\"feature-config-schema-validation\",\"status\":\"succeeded\",\"blocking\":false}\\n' >&2\nfi\ngit add source.json \"$(params.artifact-catalog)\" \"$(params.gitops-root)\"\nif git diff --quiet --cached; then changed=false; else changed=true; git -c user.email=agentrun@unidesk.local -c user.name='UniDesk AgentRun PaC' commit -m \"deploy: render AgentRun $(params.gitops-branch) from PaC\"; fi\ngit remote set-url origin \"$git_auth_url\"\ngit push -u origin \"$(params.gitops-branch)\"\ngitops_commit=$(git rev-parse HEAD)\nBUILD_RESULT=\"$build_result\" CHANGED=\"$changed\" GITOPS_COMMIT=\"$gitops_commit\" node <<'NODE'\nconst { readFileSync } = require('node:fs');\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', changed: process.env.CHANGED === 'true', gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: build.sourceCommit, envIdentity: build.envIdentity, imageStatus: build.status, digest: build.digest, valuesPrinted: false }));\nNODE" params: - *params1 + - *item23 + - *item24 + - *item25 + - *item26 + - *item27 + - *item28 + - *item29 + - *item30 + - *item31 + - *item32 + - *item33 + - *item34 + - *item35 + - *item36 + - *item37 + - *item38 + - *item39 + - *item40 + - *item41 + - *item42 + - *item43 + - *item44 + - *item45 + - name: build-result-json + value: $(tasks.collect-artifacts.results.build-result) when: - input: unidesk-yaml-only operator: in From 28a989474569851b8ca18d8378e8844629d04fd2 Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Tue, 21 Jul 2026 20:51:45 +0200 Subject: [PATCH 13/13] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20release=20Git?= =?UTF-8?q?Ops=20SecretRef=20=E5=B7=A5=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- .tekton/agentrun-nc01-release.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.tekton/agentrun-nc01-release.yaml b/.tekton/agentrun-nc01-release.yaml index 632b6bf..8bdfd4a 100644 --- a/.tekton/agentrun-nc01-release.yaml +++ b/.tekton/agentrun-nc01-release.yaml @@ -10,7 +10,7 @@ metadata: pipelinesascode.tekton.dev/max-keep-runs: "8" unidesk.ai/pac-admission-provenance: admission-pac-v2:agentrun-nc01-release unidesk.ai/owning-config-ref: "config/agentrun.yaml#controlPlane.lanes.nc01-release" - unidesk.ai/effective-config-sha256: sha256:6b95b92293460fb24005450ab8cc27c66154a152b7cc787c89ce8b3d3a01995d + unidesk.ai/effective-config-sha256: sha256:aa74fbce9dd3ce999b82a5788ecc0d87b7cf608cbc25c56bfe2ee9f8c5cc4a20 unidesk.ai/source-artifact-renderer: agentrun-control-plane unidesk.ai/source-artifact-mode: embedded-pipeline-spec labels: @@ -323,7 +323,7 @@ spec: - name: GITEA_TOKEN valueFrom: secretKeyRef: - name: pac-gitea-agentrun-nc01-release + name: pac-gitea-agentrun-nc01-v02 key: token optional: true script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nbuild_result=\"$root/build-result.json\"\nprintf '%s\\n' \"$BUILD_RESULT_JSON\" > \"$build_result\"\ntest -s \"$build_result\"\ntemplates_b64=\"W3sicGF0aCI6InNvdXJjZS5qc29uIiwiY29udGVudCI6IntcbiAgXCJsYW5lXCI6IFwicmVsZWFzZVwiLFxuICBcInNvdXJjZUNvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwiZ2VuZXJhdGVkQnlcIjogXCJ1bmlkZXNrIGNvbmZpZy9hZ2VudHJ1bi55YW1sXCIsXG4gIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIlxufVxuIn0seyJwYXRoIjoiZGVwbG95L2FydGlmYWN0LWNhdGFsb2cubmMwMS1yZWxlYXNlLmpzb24iLCJjb250ZW50Ijoie1xuICBcImxhbmVcIjogXCJyZWxlYXNlXCIsXG4gIFwic291cmNlQnJhbmNoXCI6IFwicmVsZWFzZVwiLFxuICBcImdpdG9wc0JyYW5jaFwiOiBcIm5jMDEtcmVsZWFzZS1naXRvcHNcIixcbiAgXCJzb3VyY2VDb21taXRJZFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwic3VtbWFyeVwiOiBcImJ1aWxkPTEgcmV1c2U9MCBwbGFjZWhvbGRlcj0wXCIsXG4gIFwic2VydmljZXNcIjogW1xuICAgIHtcbiAgICAgIFwic2VydmljZUlkXCI6IFwiYWdlbnRydW4tbWdyXCIsXG4gICAgICBcImFydGlmYWN0S2luZFwiOiBcImVudi1yZXVzZVwiLFxuICAgICAgXCJzdGF0dXNcIjogXCJfX0FHRU5UUlVOX0lNQUdFX1NUQVRVU19fXCIsXG4gICAgICBcImltYWdlXCI6IFwiMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudjpfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9fXCIsXG4gICAgICBcImRpZ2VzdFwiOiBcInNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcInJlcG9zaXRvcnlEaWdlc3RcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXG4gICAgICBcImltYWdlVGFnXCI6IFwiX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZJZGVudGl0eVwiOiBcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52SW1hZ2VcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52Ol9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZW52RGlnZXN0XCI6IFwic2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiZW52UmVwb3NpdG9yeURpZ2VzdFwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiYm9vdENvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gICAgICBcImJvb3RTY3JpcHRcIjogXCJkZXBsb3kvcnVudGltZS9ib290L2FnZW50cnVuLWJvb3Quc2hcIixcbiAgICAgIFwicHJvdmVuYW5jZVwiOiB7XG4gICAgICAgIFwic291cmNlQ29tbWl0SWRcIjogXCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wiLFxuICAgICAgICBcInNvdXJjZVwiOiBcInVuaWRlc2steWFtbC1vbmx5XCIsXG4gICAgICAgIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIixcbiAgICAgICAgXCJ2YWx1ZXNQcmludGVkXCI6IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICBdXG59XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvcHJvamVjdC55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBQcm9qZWN0LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLG5hbWVzcGFjZTogYXJnb2NkLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0sc3BlYzoge2Rlc2NyaXB0aW9uOiBBZ2VudFJ1biByZWxlYXNlIEdpdE9wcyBsYW5lLHNvdXJjZVJlcG9zOiBbaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0LGh0dHA6Ly9naXRlYS1odHRwLmRldm9wcy1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDozMDAwL21pcnJvcnMvcGlrYXNUZWNoLWFnZW50cnVuLmdpdF0sZGVzdGluYXRpb25zOiBbe3NlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZX1dLGNsdXN0ZXJSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCJcIixraW5kOiBOYW1lc3BhY2V9XSxuYW1lc3BhY2VSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCIqXCIsa2luZDogXCIqXCJ9XX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvYXBwbGljYXRpb24tcmVsZWFzZS55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBhcmdvcHJvai5pby92MWFscGhhMSxraW5kOiBBcHBsaWNhdGlvbixtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZSxuYW1lc3BhY2U6IGFyZ29jZCxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtwcm9qZWN0OiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2Usc291cmNlOiB7cmVwb1VSTDogaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0LHRhcmdldFJldmlzaW9uOiBuYzAxLXJlbGVhc2UtZ2l0b3BzLHBhdGg6IGRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZX0sZGVzdGluYXRpb246IHtzZXJ2ZXI6IGh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyxuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2V9LHN5bmNQb2xpY3k6IHthdXRvbWF0ZWQ6IHtwcnVuZTogZmFsc2Usc2VsZkhlYWw6IHRydWV9LHN5bmNPcHRpb25zOiBbQ3JlYXRlTmFtZXNwYWNlPXRydWUsQXBwbHlPdXRPZlN5bmNPbmx5PXRydWVdfX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2Uva3VzdG9taXphdGlvbi55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBrdXN0b21pemUuY29uZmlnLms4cy5pby92MWJldGExLGtpbmQ6IEt1c3RvbWl6YXRpb24scmVzb3VyY2VzOiBbbmFtZXNwYWNlLnlhbWwsbWdyLnlhbWwscnVubmVyLXJiYWMueWFtbF19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvbmFtZXNwYWNlLnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IHYxLGtpbmQ6IE5hbWVzcGFjZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbiJ9LHsicGF0aCI6ImRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtcmVsZWFzZS9tZ3IueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW1ncixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7c2VsZWN0b3I6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9LHBvcnRzOiBbe25hbWU6IGh0dHAscG9ydDogODA4MCx0YXJnZXRQb3J0OiBodHRwfV19fVxuLS0tXG57XCJhcGlWZXJzaW9uXCI6XCJhcHBzL3YxXCIsXCJraW5kXCI6XCJEZXBsb3ltZW50XCIsXCJtZXRhZGF0YVwiOntcIm5hbWVcIjpcImFnZW50cnVuLW1nclwiLFwibmFtZXNwYWNlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlXCIsXCJsYWJlbHNcIjp7XCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXCI6XCJhZ2VudHJ1blwiLFwiYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmVcIjpcInJlbGVhc2VcIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlXCI6XCJOQzAxXCJ9fSxcInNwZWNcIjp7XCJyZXBsaWNhc1wiOjEsXCJzZWxlY3RvclwiOntcIm1hdGNoTGFiZWxzXCI6e1wiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVwiOlwiYWdlbnRydW4tbWdyXCJ9fSxcInRlbXBsYXRlXCI6e1wibWV0YWRhdGFcIjp7XCJsYWJlbHNcIjp7XCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXCI6XCJhZ2VudHJ1blwiLFwiYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmVcIjpcInJlbGVhc2VcIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlXCI6XCJOQzAxXCIsXCJhcHAua3ViZXJuZXRlcy5pby9uYW1lXCI6XCJhZ2VudHJ1bi1tZ3JcIn0sXCJhbm5vdGF0aW9uc1wiOntcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lXCI6XCJyZWxlYXNlXCIsXCJhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvc291cmNlLWNvbW1pdFwiOlwiX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX19cIixcImFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9lbnYtaWRlbnRpdHlcIjpcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIn19LFwic3BlY1wiOntcInNlcnZpY2VBY2NvdW50TmFtZVwiOlwiYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nclwiLFwiY29udGFpbmVyc1wiOlt7XCJuYW1lXCI6XCJtZ3JcIixcImltYWdlXCI6XCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCIsXCJpbWFnZVB1bGxQb2xpY3lcIjpcIklmTm90UHJlc2VudFwiLFwicG9ydHNcIjpbe1wibmFtZVwiOlwiaHR0cFwiLFwiY29udGFpbmVyUG9ydFwiOjgwODB9XSxcImVudlwiOlt7XCJuYW1lXCI6XCJBR0VOVFJVTl9MQU5FXCIsXCJ2YWx1ZVwiOlwicmVsZWFzZVwifSx7XCJuYW1lXCI6XCJEQVRBQkFTRV9VUkxcIixcInZhbHVlRnJvbVwiOntcInNlY3JldEtleVJlZlwiOntcIm5hbWVcIjpcImFnZW50cnVuLXJlbGVhc2UtbWdyLWRiXCIsXCJrZXlcIjpcIkRBVEFCQVNFX1VSTFwifX19LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1NPVVJDRV9DT01NSVRcIixcInZhbHVlXCI6XCJfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfX1wifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CT09UX0NPTU1JVFwiLFwidmFsdWVcIjpcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0JPT1RfTU9ERVwiLFwidmFsdWVcIjpcIm1nclwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CT09UX1JFUE9fVVJMXCIsXCJ2YWx1ZVwiOlwiaHR0cDovL2dpdGVhLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjMwMDAvbWlycm9ycy9waWthc1RlY2gtYWdlbnRydW4uZ2l0XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0VOVl9JREVOVElUWVwiLFwidmFsdWVcIjpcIl9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOVElNRV9OQU1FU1BBQ0VcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0lOVEVSTkFMX01HUl9VUkxcIixcInZhbHVlXCI6XCJodHRwOi8vYWdlbnRydW4tbWdyLmFnZW50cnVuLXJlbGVhc2Uuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfSU1BR0VcIixcInZhbHVlXCI6XCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TRVJWSUNFX0FDQ09VTlRcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9KT0JfTkFNRV9QUkVGSVhcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9OQU1FXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4tcmVsZWFzZS1hcGkta2V5XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9LRVlcIixcInZhbHVlXCI6XCJIV0xBQl9BUElfS0VZXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0dJVF9NSVJST1JfQkFTRV9VUkxcIixcInZhbHVlXCI6XCJodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfSURMRV9USU1FT1VUX01TXCIsXCJ2YWx1ZVwiOlwiNjAwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfTUFYX0FUVEVNUFRTXCIsXCJ2YWx1ZVwiOlwiNVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9CQUNLRU5EX1JFVFJZX0lOSVRJQUxfQkFDS09GRl9NU1wiLFwidmFsdWVcIjpcIjEwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQkFDS0VORF9SRVRSWV9NQVhfQkFDS09GRl9NU1wiLFwidmFsdWVcIjpcIjMwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fTUFYX1JVTk5FUlNcIixcInZhbHVlXCI6XCIxMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0NMRUFOVVBfT1JERVJcIixcInZhbHVlXCI6XCJvbGRlc3QtaW5hY3RpdmUtbGFzdC1hY3RpdmUtZmlyc3RcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9BQ1RJVkVfSEVBUlRCRUFUX01BWF9BR0VfTVNcIixcInZhbHVlXCI6XCI5MDAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9TVEFMRV9QRU5ESU5HX01BWF9BR0VfTVNcIixcInZhbHVlXCI6XCI5MDAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9NQVRDSF9MQUJFTFNfSlNPTlwiLFwidmFsdWVcIjpcIntcXFwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZlxcXCI6XFxcImFnZW50cnVuXFxcIixcXFwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVxcXCI6XFxcImFnZW50cnVuLXJ1bm5lclxcXCIsXFxcImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudFxcXCI6XFxcInJ1bm5lclxcXCJ9XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fSk9CX05BTUVfUFJFRklYRVNcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLGFnZW50cnVuLXJlbGVhc2UtcnVubmVyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX0NMRUFOVVBfRU5BQkxFRFwiLFwidmFsdWVcIjpcImZhbHNlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQUdFX0JBU0VEX01BWF9BR0VfSE9VUlNcIixcInZhbHVlXCI6XCI0OFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9DQU5DRUxfREVMSVZFUllfTU9ERVwiLFwidmFsdWVcIjpcIm1hbmFnZXItZXBvY2hcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQ0FOQ0VMX0dSQUNFRlVMX0FCT1JUX01TXCIsXCJ2YWx1ZVwiOlwiMTUwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fQ0FOQ0VMX0tJTExfRVNDQUxBVElPTl9NU1wiLFwidmFsdWVcIjpcIjMwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0NBTkNFTF9TVEFMRV9IRUFSVEJFQVRfRkVOQ0lOR19NU1wiLFwidmFsdWVcIjpcIjkwMDAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9DQU5DRUxfTEFURV9XUklURV9GRU5DSU5HX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0NBTkNFTF9FVkVOVF9TVEFHRVNcIixcInZhbHVlXCI6XCJhY2NlcHRlZCxwZXJzaXN0ZWQsZGVsaXZlcmVkLGFib3J0aW5nLHRlcm1pbmFsaXplZCxmZW5jZWQsbGF0ZS13cml0ZS1yZWplY3RlZFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRUdSRVNTX1BST1hZX1VSTFwiLFwidmFsdWVcIjpcImh0dHA6Ly8xMC40Mi4wLjE6MTA4MDhcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX05PX1BST1hZX0VYVFJBXCIsXCJ2YWx1ZVwiOlwibG9jYWxob3N0LDEyNy4wLjAuMSw6OjEsLnN2Yywuc3ZjLmNsdXN0ZXIubG9jYWwsLmNsdXN0ZXIubG9jYWwsaHl1ZWFwaS5jb20sLmh5dWVhcGkuY29tLGFwaS5od3BvZC5jb20sYXBpLnBpa2FweXRob24uY29tLC5waWthcHl0aG9uLmNvbVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9BUElfS0VZXCIsXCJ2YWx1ZUZyb21cIjp7XCJzZWNyZXRLZXlSZWZcIjp7XCJuYW1lXCI6XCJhZ2VudHJ1bi1yZWxlYXNlLWFwaS1rZXlcIixcImtleVwiOlwiSFdMQUJfQVBJX0tFWVwifX19LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0JPT1RTVFJBUF9TRVJWRVJTXCIsXCJ2YWx1ZVwiOlwicGxhdGZvcm0taW5mcmEta2Fma2Eta2Fma2EtYm9vdHN0cmFwLnBsYXRmb3JtLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTJcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfQ0xJRU5UX0lEXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4tcmVsZWFzZS1tYW5hZ2VyXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX0VWRU5UX1RPUElDXCIsXCJ2YWx1ZVwiOlwiYWdlbnRydW4uZXZlbnQudjFcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0JBVENIX1NJWkVcIixcInZhbHVlXCI6XCIxMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0lOVEVSVkFMX01TXCIsXCJ2YWx1ZVwiOlwiNTAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX09VVEJPWF9MRUFTRV9NU1wiLFwidmFsdWVcIjpcIjYwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX09VVEJPWF9SRVRSWV9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiNTAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9LQUZLQV9TVERJT19DTElFTlRfSURcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1yZWxlYXNlLXJ1bm5lclwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9LQUZLQV9TVERJT19QUk9EVUNFX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX0tBRktBX1NURElPX1RPUElDXCIsXCJ2YWx1ZVwiOlwiY29kZXgtc3RkaW8ucmF3LnYxXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9CQVRDSF9TSVpFXCIsXCJ2YWx1ZVwiOlwiMjBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0VOQUJMRURcIixcInZhbHVlXCI6XCJ0cnVlXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9JTlRFUlZBTF9NU1wiLFwidmFsdWVcIjpcIjIwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUE9TVEdSRVNfUE9PTF9NQVhcIixcInZhbHVlXCI6XCI0XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0FUVEVNUFRfVElNRU9VVF9NU1wiLFwidmFsdWVcIjpcIjkwMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0JBVENIX1NJWkVcIixcInZhbHVlXCI6XCIxMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9FTkFCTEVEXCIsXCJ2YWx1ZVwiOlwidHJ1ZVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9JTlRFUlZBTF9NU1wiLFwidmFsdWVcIjpcIjEwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTEVBU0VfTVNcIixcInZhbHVlXCI6XCIxMjAwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTUFYX0FUVEVNUFRTXCIsXCJ2YWx1ZVwiOlwiNVwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9SRVRSWV9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiNTAwMFwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfU1RBUlRVUF9SRVRSWV9JTklUSUFMX0JBQ0tPRkZfTVNcIixcInZhbHVlXCI6XCIyMDAwXCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TVEFSVFVQX1JFVFJZX0pJVFRFUl9SQVRJT1wiLFwidmFsdWVcIjpcIjAuMlwifSx7XCJuYW1lXCI6XCJBR0VOVFJVTl9SVU5ORVJfU1RBUlRVUF9SRVRSWV9NQVhfQVRURU1QVFNcIixcInZhbHVlXCI6XCI1XCJ9LHtcIm5hbWVcIjpcIkFHRU5UUlVOX1JVTk5FUl9TVEFSVFVQX1JFVFJZX01BWF9CQUNLT0ZGX01TXCIsXCJ2YWx1ZVwiOlwiMTYwMDBcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1NUQVJUVVBfUkVUUllfTVVMVElQTElFUlwiLFwidmFsdWVcIjpcIjJcIn0se1wibmFtZVwiOlwiQUdFTlRSVU5fUlVOTkVSX1NUQVJUVVBfUkVUUllfVE9UQUxfREVBRExJTkVfTVNcIixcInZhbHVlXCI6XCI2MDAwMFwifSx7XCJuYW1lXCI6XCJIV0xBQl9SVU5USU1FX0xBTkVcIixcInZhbHVlXCI6XCJyZWxlYXNlXCJ9LHtcIm5hbWVcIjpcIk9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfRU5EUE9JTlRcIixcInZhbHVlXCI6XCJodHRwOi8vb3RlbC1jb2xsZWN0b3IucGxhdGZvcm0taW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6NDMxOC92MS90cmFjZXNcIn0se1wibmFtZVwiOlwiT1RFTF9TRVJWSUNFX05BTUVcIixcInZhbHVlXCI6XCJhZ2VudHJ1bi1tYW5hZ2VyXCJ9LHtcIm5hbWVcIjpcIlVOSURFU0tfTk9ERV9JRFwiLFwidmFsdWVcIjpcIk5DMDFcIn0se1wibmFtZVwiOlwiVU5JREVTS19NQUlOX1NFUlZFUl9JUFwiLFwidmFsdWVcIjpcIjE1Mi41My4yMjkuMTQ4XCJ9XSxcInJlYWRpbmVzc1Byb2JlXCI6e1wiaHR0cEdldFwiOntcInBhdGhcIjpcIi9oZWFsdGgvcmVhZGluZXNzXCIsXCJwb3J0XCI6XCJodHRwXCJ9LFwidGltZW91dFNlY29uZHNcIjoyfSxcImxpdmVuZXNzUHJvYmVcIjp7XCJodHRwR2V0XCI6e1wicGF0aFwiOlwiL2hlYWx0aC9saXZlXCIsXCJwb3J0XCI6XCJodHRwXCJ9LFwidGltZW91dFNlY29uZHNcIjoyfSxcInN0YXJ0dXBQcm9iZVwiOntcImh0dHBHZXRcIjp7XCJwYXRoXCI6XCIvaGVhbHRoL2xpdmVcIixcInBvcnRcIjpcImh0dHBcIn0sXCJwZXJpb2RTZWNvbmRzXCI6MTAsXCJ0aW1lb3V0U2Vjb25kc1wiOjIsXCJmYWlsdXJlVGhyZXNob2xkXCI6OTB9LFwicmVzb3VyY2VzXCI6e1wicmVxdWVzdHNcIjp7XCJjcHVcIjpcIjEwMG1cIixcIm1lbW9yeVwiOlwiMjU2TWlcIn0sXCJsaW1pdHNcIjp7XCJjcHVcIjpcIjgwMG1cIixcIm1lbW9yeVwiOlwiMUdpXCJ9fX1dfX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi1yZWxlYXNlLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiByZWxlYXNlLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbYmF0Y2hdLHJlc291cmNlczogW2pvYnNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtwb2RzXSx2ZXJiczogW2RlbGV0ZSxnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtldmVudHNdLHZlcmJzOiBbZ2V0LGxpc3Qsd2F0Y2hdfSx7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbcGVyc2lzdGVudHZvbHVtZWNsYWltc10sdmVyYnM6IFtjcmVhdGUsZ2V0LGxpc3Qsd2F0Y2gsZGVsZXRlXX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3ItcnVubmVyLWpvYi1jb250cm9sbGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHN1YmplY3RzOiBbe2tpbmQ6IFNlcnZpY2VBY2NvdW50LG5hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1tZ3J9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXJ1bm5lci1qb2ItY29udHJvbGxlcn19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGUsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyLXByb3ZpZGVyLXNlY3JldC1tYW5hZ2VyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbY3JlYXRlLGRlbGV0ZSxnZXQsbGlzdCxwYXRjaCx1cGRhdGVdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtbWdyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLW1nci1wcm92aWRlci1zZWNyZXQtbWFuYWdlcn19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXJlbGVhc2UvcnVubmVyLXJiYWMueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyLG5hbWVzcGFjZTogYWdlbnRydW4tcmVsZWFzZSxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogcmVsZWFzZSxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHJ1bGVzOiBbe2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3NlY3JldHNdLHZlcmJzOiBbZ2V0XX1dfVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlQmluZGluZyxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtcmVsZWFzZS1ydW5uZXItc2VjcmV0LXJlYWRlcixuYW1lc3BhY2U6IGFnZW50cnVuLXJlbGVhc2UsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHJlbGVhc2UsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXJlbGVhc2UtcnVubmVyfV0scm9sZVJlZjoge2FwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvLGtpbmQ6IFJvbGUsbmFtZTogYWdlbnRydW4tbmMwMS1yZWxlYXNlLXJ1bm5lci1zZWNyZXQtcmVhZGVyfX1cbiJ9XQ==\"\ngit_write_url='$(params.git-write-url)'\ngit_auth_url=\"$git_write_url\"\nif printf '%s' \"$git_write_url\" | grep -q '^http://gitea-http\\.'; then\n test -n \"${GITEA_TOKEN:-}\"\n git_auth_url=$(printf '%s' \"$git_write_url\" | sed \"s#^http://#http://x-access-token:${GITEA_TOKEN}@#\")\nfi\nrm -rf \"$root/gitops\"\ngit clone \"$git_auth_url\" \"$root/gitops\"\ncd \"$root/gitops\"\ngit fetch origin \"$(params.gitops-branch)\" || true\nif git rev-parse --verify \"refs/remotes/origin/$(params.gitops-branch)^{commit}\" >/dev/null 2>&1; then git checkout -B \"$(params.gitops-branch)\" \"refs/remotes/origin/$(params.gitops-branch)\"; else git checkout --orphan \"$(params.gitops-branch)\"; git rm -rf . >/dev/null 2>&1 || true; fi\nincoming_source_commit='$(params.revision)'\nsource_branch='$(params.source-branch)'\nbranch_source_commit=$(git -C \"$root/repo\" rev-parse --verify \"refs/remotes/origin/${source_branch}^{commit}\")\ngitops_source_commit=$(node -e 'try { const value = JSON.parse(require(\"node:fs\").readFileSync(\"source.json\", \"utf8\")).sourceCommit; if (typeof value === \"string\") process.stdout.write(value); } catch {}')\nstale_reason=''\nif [ \"$incoming_source_commit\" != \"$branch_source_commit\" ]; then stale_reason='stale-source-revision'; fi\nif [ -z \"$stale_reason\" ] && [ -n \"$gitops_source_commit\" ] && [ \"$incoming_source_commit\" != \"$gitops_source_commit\" ]; then\n if ! git -C \"$root/repo\" cat-file -e \"${gitops_source_commit}^{commit}\" 2>/dev/null; then stale_reason='gitops-source-order-unverifiable';\n elif git -C \"$root/repo\" merge-base --is-ancestor \"$incoming_source_commit\" \"$gitops_source_commit\"; then stale_reason='stale-gitops-source-revision';\n elif ! git -C \"$root/repo\" merge-base --is-ancestor \"$gitops_source_commit\" \"$incoming_source_commit\"; then stale_reason='divergent-gitops-source-revision'; fi\nfi\nif [ -n \"$stale_reason\" ]; then\n gitops_commit=$(git rev-parse HEAD)\n INCOMING_SOURCE_COMMIT=\"$incoming_source_commit\" CURRENT_SOURCE_COMMIT=\"$branch_source_commit\" GITOPS_SOURCE_COMMIT=\"$gitops_source_commit\" GITOPS_COMMIT=\"$gitops_commit\" STALE_REASON=\"$stale_reason\" node <<'NODE'\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', reason: process.env.STALE_REASON, warning: true, blocking: false, changed: false, stale: true, gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: process.env.INCOMING_SOURCE_COMMIT, currentSourceCommit: process.env.CURRENT_SOURCE_COMMIT, gitopsSourceCommit: process.env.GITOPS_SOURCE_COMMIT || null, valuesPrinted: false }));\nNODE\n exit 0\nfi\ngit rm -rf --ignore-unmatch \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json >/dev/null 2>&1 || true\nrm -rf \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json\nTEMPLATES_B64=\"$templates_b64\" BUILD_RESULT=\"$build_result\" node <<'NODE'\nconst { mkdirSync, readFileSync, writeFileSync } = require('node:fs');\nconst { dirname } = require('node:path');\nconst templates = JSON.parse(Buffer.from(process.env.TEMPLATES_B64, 'base64').toString('utf8'));\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconst replacements = new Map([\n ['__AGENTRUN_SOURCE_COMMIT__', build.sourceCommit],\n ['__AGENTRUN_ENV_IDENTITY__', build.envIdentity],\n ['sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', build.digest],\n ['__AGENTRUN_IMAGE_STATUS__', build.status],\n]);\nfor (const file of templates) {\n let content = file.content;\n for (const [from, to] of replacements) content = content.split(from).join(to);\n mkdirSync(dirname(file.path), { recursive: true });\n writeFileSync(file.path, content);\n}\nNODE\nfeature_config_schema_started_ms=\"$(date +%s%3N 2>/dev/null || date +%s000)\"\nexport UNIDESK_FEATURE_CONFIG_REPO_DIR=\"$root\"\nexport UNIDESK_FEATURE_CONFIG_RENDERED_ROOT=\"$PWD/$(params.gitops-root)\"\nexport UNIDESK_PAC_CONSUMER='agentrun-nc01-release'\nexport OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces'\nexport OTEL_SERVICE_NAME='unidesk-cicd'\nexport OTEL_TRACES_SAMPLER_ARG='1'\nexport OTEL_EXPORTER_TIMEOUT_MS='300'\nfeature_config_validator_base=''\nfeature_config_validator=''\nif feature_config_validator_base=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-feature-config-validator.XXXXXX\" 2>/dev/null)\"; then\n feature_config_validator=\"${feature_config_validator_base}.mjs\"\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_validator\"; then\n rm -f \"$feature_config_validator_base\" \"$feature_config_validator\" || true\n feature_config_validator=''\n fi\n rm -f \"$feature_config_validator_base\" || true\nfi\nfeature_config_ajv_bundle=''\nif feature_config_ajv_bundle=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-ajv2020.XXXXXX\" 2>/dev/null)\"; then\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_ajv_bundle\"; then\n rm -f \"$feature_config_ajv_bundle\" || true\n feature_config_ajv_bundle=''\n fi\nfi\nexport UNIDESK_AJV2020_BUNDLE=\"${feature_config_ajv_bundle:-${TMPDIR:-/tmp}/unidesk-ajv2020-unavailable}\"\nexport UNIDESK_FEATURE_CONFIG_VALIDATOR=\"${feature_config_validator:-${TMPDIR:-/tmp}/unidesk-feature-config-validator-unavailable.mjs}\"\nif ! node --input-type=module <<'NODE_UNIDESK_FEATURE_CONFIG_SCHEMA'\nimport { pathToFileURL } from 'node:url';\nconst validator = await import(pathToFileURL(process.env.UNIDESK_FEATURE_CONFIG_VALIDATOR).href);\nawait validator.runFeatureConfigSchemaValidation({ repoDir: process.env.UNIDESK_FEATURE_CONFIG_REPO_DIR, renderedRoot: process.env.UNIDESK_FEATURE_CONFIG_RENDERED_ROOT, consumer: process.env.UNIDESK_PAC_CONSUMER });\nNODE_UNIDESK_FEATURE_CONFIG_SCHEMA\nthen\n printf '{\"event\":\"feature-config-schema-validation\",\"warning\":true,\"blocking\":false,\"code\":\"feature-config-validator-process-failure\",\"mutation\":false,\"valuesPrinted\":false}\\n' >&2\nfi\nif [ -n \"$feature_config_validator\" ]; then rm -f \"$feature_config_validator\" || true; fi\nif [ -n \"$feature_config_ajv_bundle\" ]; then rm -f \"$feature_config_ajv_bundle\" || true; fi\nif command -v ci_timing_emit >/dev/null 2>&1; then\n ci_timing_emit feature-config-schema-validation succeeded \"$feature_config_schema_started_ms\"\nelse\n printf '{\"event\":\"ci.stage.timing\",\"stage\":\"feature-config-schema-validation\",\"status\":\"succeeded\",\"blocking\":false}\\n' >&2\nfi\ngit add source.json \"$(params.artifact-catalog)\" \"$(params.gitops-root)\"\nif git diff --quiet --cached; then changed=false; else changed=true; git -c user.email=agentrun@unidesk.local -c user.name='UniDesk AgentRun PaC' commit -m \"deploy: render AgentRun $(params.gitops-branch) from PaC\"; fi\ngit remote set-url origin \"$git_auth_url\"\ngit push -u origin \"$(params.gitops-branch)\"\ngitops_commit=$(git rev-parse HEAD)\nBUILD_RESULT=\"$build_result\" CHANGED=\"$changed\" GITOPS_COMMIT=\"$gitops_commit\" node <<'NODE'\nconst { readFileSync } = require('node:fs');\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', changed: process.env.CHANGED === 'true', gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: build.sourceCommit, envIdentity: build.envIdentity, imageStatus: build.status, digest: build.digest, valuesPrinted: false }));\nNODE"