@a5c-ai/krate 5.0.1-staging.04a3db697
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +31 -0
- package/README.md +183 -0
- package/bin/krate-demo.mjs +23 -0
- package/bin/krate-server.mjs +14 -0
- package/dist/krate-controller-ui.json +3067 -0
- package/dist/krate-lifecycle.json +201 -0
- package/dist/krate-runtime-snapshot.json +2955 -0
- package/dist/krate-summary.json +722 -0
- package/docs/README.md +61 -0
- package/docs/agents/README.md +83 -0
- package/docs/agents/acceptance-test-matrix.md +193 -0
- package/docs/agents/agent-mux-adapter-contract.md +167 -0
- package/docs/agents/agent-mux-source-map.md +310 -0
- package/docs/agents/agent-run-memory-import-spec.md +256 -0
- package/docs/agents/agent-stack-management-spec.md +421 -0
- package/docs/agents/api-contract-spec.md +309 -0
- package/docs/agents/artifacts-writeback-spec.md +145 -0
- package/docs/agents/chart-packaging-spec.md +128 -0
- package/docs/agents/ci-orchestration-spec.md +140 -0
- package/docs/agents/context-assembly-spec.md +219 -0
- package/docs/agents/controller-reconciliation-spec.md +255 -0
- package/docs/agents/crd-schema-spec.md +315 -0
- package/docs/agents/decision-log-open-questions.md +169 -0
- package/docs/agents/developer-implementation-checklist.md +329 -0
- package/docs/agents/dispatching-design.md +262 -0
- package/docs/agents/gaps-agent-mux-to-krate-crds.md +298 -0
- package/docs/agents/glossary.md +66 -0
- package/docs/agents/implementation-blueprint.md +324 -0
- package/docs/agents/implementation-rollout-slices.md +251 -0
- package/docs/agents/memory-context-integration-spec.md +194 -0
- package/docs/agents/memory-ontology-schema-spec.md +253 -0
- package/docs/agents/memory-operations-runbook.md +121 -0
- package/docs/agents/mvp-vertical-slice-spec.md +146 -0
- package/docs/agents/observability-audit-spec.md +265 -0
- package/docs/agents/operator-runbook.md +174 -0
- package/docs/agents/org-memory-api-payload-examples.md +333 -0
- package/docs/agents/org-memory-controller-sequence-spec.md +181 -0
- package/docs/agents/org-memory-e2e-fixture-plan.md +161 -0
- package/docs/agents/org-memory-ui-implementation-map.md +114 -0
- package/docs/agents/org-memory-vertical-slice-spec.md +168 -0
- package/docs/agents/org-resource-model-delta-spec.md +111 -0
- package/docs/agents/org-route-resource-model-spec.md +183 -0
- package/docs/agents/org-scoping-namespace-spec.md +114 -0
- package/docs/agents/rbac-secrets-management-spec.md +406 -0
- package/docs/agents/repository-page-integration-spec.md +255 -0
- package/docs/agents/resource-contract-examples.md +808 -0
- package/docs/agents/resource-relationship-map.md +190 -0
- package/docs/agents/security-threat-model.md +188 -0
- package/docs/agents/shared-memory-company-brain-spec.md +358 -0
- package/docs/agents/storage-migration-spec.md +168 -0
- package/docs/agents/subagent-orchestration-spec.md +152 -0
- package/docs/agents/system-overview.md +88 -0
- package/docs/agents/tools-mcp-skills-spec.md +189 -0
- package/docs/agents/traceability-matrix.md +79 -0
- package/docs/agents/ui-flow-spec.md +211 -0
- package/docs/agents/ui-ux-system-spec.md +426 -0
- package/docs/agents/workspace-lifecycle-spec.md +166 -0
- package/docs/architecture-spec.md +78 -0
- package/docs/components/control-plane.md +78 -0
- package/docs/components/data-plane.md +69 -0
- package/docs/components/hooks-events.md +67 -0
- package/docs/components/identity-rbac-policy.md +73 -0
- package/docs/components/kubevela-oam.md +70 -0
- package/docs/components/operations-publishing.md +81 -0
- package/docs/components/runners-ci.md +66 -0
- package/docs/components/web-ui.md +94 -0
- package/docs/external/README.md +47 -0
- package/docs/external/bidirectional-sync-design.md +134 -0
- package/docs/external/cicd-interface.md +64 -0
- package/docs/external/external-backend-controllers.md +170 -0
- package/docs/external/external-backend-crds.md +234 -0
- package/docs/external/external-backend-ui-spec.md +151 -0
- package/docs/external/external-backend-ux-flows.md +115 -0
- package/docs/external/external-object-mapping.md +125 -0
- package/docs/external/git-forge-interface.md +68 -0
- package/docs/external/github-integration-design.md +151 -0
- package/docs/external/issue-tracking-interface.md +66 -0
- package/docs/external/provider-capability-manifests.md +204 -0
- package/docs/external/provider-catalog.md +139 -0
- package/docs/external/provider-rollout-testing.md +78 -0
- package/docs/external/research-results.md +48 -0
- package/docs/external/security-auth-permissions.md +81 -0
- package/docs/external/sync-state-machines.md +108 -0
- package/docs/external/unified-external-backend-model.md +107 -0
- package/docs/external/user-facing-changes.md +67 -0
- package/docs/gaps.md +161 -0
- package/docs/install.md +94 -0
- package/docs/krate-design.md +334 -0
- package/docs/local-minikube.md +55 -0
- package/docs/ontology/README.md +32 -0
- package/docs/ontology/bounded-contexts.md +29 -0
- package/docs/ontology/events-and-hooks.md +32 -0
- package/docs/ontology/oam-kubevela.md +32 -0
- package/docs/ontology/operations-and-release.md +25 -0
- package/docs/ontology/personas-and-actors.md +32 -0
- package/docs/ontology/policies-and-invariants.md +33 -0
- package/docs/ontology/problem-space.md +30 -0
- package/docs/ontology/resource-contracts.md +40 -0
- package/docs/ontology/resource-taxonomy.md +42 -0
- package/docs/ontology/runners-and-ci.md +29 -0
- package/docs/ontology/solution-space.md +24 -0
- package/docs/ontology/storage-and-data-boundaries.md +29 -0
- package/docs/ontology/validation-matrix.md +24 -0
- package/docs/ontology/web-ui-excellent-flows.md +32 -0
- package/docs/ontology/workflows.md +39 -0
- package/docs/ontology/world.md +35 -0
- package/docs/product-requirements.md +62 -0
- package/docs/roadmap-mvp.md +87 -0
- package/docs/system-requirements.md +90 -0
- package/docs/tests/README.md +53 -0
- package/docs/tests/agent-qa-plan.md +63 -0
- package/docs/tests/browser-ui-tests.md +62 -0
- package/docs/tests/ci-quality-gates.md +48 -0
- package/docs/tests/coverage-model.md +64 -0
- package/docs/tests/e2e-scenario-tests.md +53 -0
- package/docs/tests/fixtures-test-data.md +63 -0
- package/docs/tests/observability-reliability-tests.md +54 -0
- package/docs/tests/product-test-matrix.md +145 -0
- package/docs/tests/qa-adoption-roadmap.md +130 -0
- package/docs/tests/qa-automation-plan.md +101 -0
- package/docs/tests/security-compliance-tests.md +57 -0
- package/docs/tests/test-framework-tools.md +88 -0
- package/docs/tests/test-suite-layout.md +121 -0
- package/docs/tests/unit-integration-tests.md +48 -0
- package/docs/todo-kyverno +714 -0
- package/docs/todos.md +4 -0
- package/docs/user-stories.md +78 -0
- package/examples/minikube-demo.yaml +190 -0
- package/examples/oam-application.yaml +23 -0
- package/examples/policy-kyverno-pr-title.yaml +18 -0
- package/package.json +63 -0
- package/scripts/build.mjs +29 -0
- package/scripts/setup-minikube.mjs +65 -0
- package/scripts/smoke.mjs +37 -0
- package/scripts/validate-doc-coverage.mjs +152 -0
- package/scripts/validate-package.mjs +93 -0
- package/scripts/validate-ui.mjs +236 -0
- package/src/agent-adapter-controller.js +169 -0
- package/src/agent-approval-controller.js +170 -0
- package/src/agent-context-bundles.js +242 -0
- package/src/agent-dispatch-controller.js +209 -0
- package/src/agent-gateway-config-controller.js +147 -0
- package/src/agent-memory-controller.js +357 -0
- package/src/agent-memory-import.js +327 -0
- package/src/agent-memory-query.js +292 -0
- package/src/agent-memory-repository-source-controller.js +255 -0
- package/src/agent-mux-client.js +280 -0
- package/src/agent-permission-review.js +250 -0
- package/src/agent-project-controller.js +117 -0
- package/src/agent-provider-config-controller.js +150 -0
- package/src/agent-secret-config-grant-controller.js +282 -0
- package/src/agent-session-transcript-controller.js +189 -0
- package/src/agent-stack-controller.js +347 -0
- package/src/agent-subagent-controller.js +160 -0
- package/src/agent-transport-binding-controller.js +121 -0
- package/src/agent-trigger-controller.js +321 -0
- package/src/agent-workspace-controller.js +447 -0
- package/src/agent-writeback-controller.js +302 -0
- package/src/api-controller.js +541 -0
- package/src/argocd-gitops.js +43 -0
- package/src/async-controller.js +207 -0
- package/src/audit-controller.js +191 -0
- package/src/auth.js +307 -0
- package/src/component-catalog.js +41 -0
- package/src/control-plane.js +136 -0
- package/src/controller-client.js +50 -0
- package/src/controller-ui.js +551 -0
- package/src/data-plane.js +178 -0
- package/src/event-bus.js +61 -0
- package/src/external/conflict-controller.js +225 -0
- package/src/external/github/auth.js +96 -0
- package/src/external/github/cicd.js +180 -0
- package/src/external/github/git-forge.js +240 -0
- package/src/external/github/index.js +144 -0
- package/src/external/github/issue-tracking.js +163 -0
- package/src/external/provider-adapter.js +161 -0
- package/src/external/provider-resource-factory.js +161 -0
- package/src/external/sync-controller.js +235 -0
- package/src/external/webhook-controller.js +144 -0
- package/src/external/write-controller.js +283 -0
- package/src/gitea-backend.js +95 -0
- package/src/gitea-service.js +173 -0
- package/src/handoff.js +98 -0
- package/src/hooks-events.js +63 -0
- package/src/http-server.js +377 -0
- package/src/identity-policy.js +86 -0
- package/src/index.js +55 -0
- package/src/kubernetes-controller-async.js +511 -0
- package/src/kubernetes-controller.js +878 -0
- package/src/kubernetes-resource-gateway.js +48 -0
- package/src/operations.js +112 -0
- package/src/org-scoping.js +5 -0
- package/src/resource-model.js +221 -0
- package/src/runners-ci.js +48 -0
- package/src/runtime.js +196 -0
- package/src/snapshot-cache.js +157 -0
- package/src/web-ui.js +40 -0
- package/tests/agent-adapter-controller.test.js +361 -0
- package/tests/agent-approval-controller.test.js +173 -0
- package/tests/agent-context-bundles.test.js +278 -0
- package/tests/agent-dispatch-controller.test.js +315 -0
- package/tests/agent-gateway-config-controller.test.js +386 -0
- package/tests/agent-memory-controller.test.js +308 -0
- package/tests/agent-memory-import-snapshot.test.js +477 -0
- package/tests/agent-memory-query.test.js +404 -0
- package/tests/agent-memory-repository-source.test.js +514 -0
- package/tests/agent-mux-client.test.js +204 -0
- package/tests/agent-permission-review-v2.test.js +317 -0
- package/tests/agent-permission-review.test.js +209 -0
- package/tests/agent-project-controller.test.js +302 -0
- package/tests/agent-provider-config-controller.test.js +376 -0
- package/tests/agent-resources.test.js +228 -0
- package/tests/agent-secret-config-grant.test.js +231 -0
- package/tests/agent-session-transcript-controller.test.js +499 -0
- package/tests/agent-stack-controller.test.js +221 -0
- package/tests/agent-subagent-controller.test.js +201 -0
- package/tests/agent-transport-binding-controller.test.js +294 -0
- package/tests/agent-trigger-controller.test.js +211 -0
- package/tests/agent-trigger-routes.test.js +190 -0
- package/tests/agent-trigger-sources.test.js +245 -0
- package/tests/agent-workspace-controller.test.js +181 -0
- package/tests/agent-writeback.test.js +292 -0
- package/tests/approval-persistence.test.js +171 -0
- package/tests/async-controller.test.js +252 -0
- package/tests/audit-controller.test.js +227 -0
- package/tests/deployment.test.js +396 -0
- package/tests/e2e/lifecycle.test.js +117 -0
- package/tests/external-github-forge.test.js +560 -0
- package/tests/external-github-issues-cicd.test.js +520 -0
- package/tests/external-integration.test.js +470 -0
- package/tests/external-persistence.test.js +340 -0
- package/tests/external-provider-adapter.test.js +365 -0
- package/tests/external-resource-model.test.js +215 -0
- package/tests/external-webhook-sync.test.js +287 -0
- package/tests/external-write-conflict.test.js +353 -0
- package/tests/gitea-service.test.js +253 -0
- package/tests/health-check-real.test.js +165 -0
- package/tests/integration/full-flow.test.js +266 -0
- package/tests/krate.test.js +727 -0
- package/tests/memory-search-wiring.test.js +270 -0
- package/tests/org-scoping.test.js +687 -0
- package/tests/session-cookie-hmac.test.js +151 -0
- package/tests/snapshot-performance.test.js +247 -0
- package/tests/sse-events.test.js +107 -0
- package/tests/workspace-volumes.test.js +312 -0
- package/tests/writeback-persistence.test.js +207 -0
|
@@ -0,0 +1,3067 @@
|
|
|
1
|
+
{
|
|
2
|
+
"product": "Krate",
|
|
3
|
+
"status": "degraded",
|
|
4
|
+
"namespace": "krate-org-default",
|
|
5
|
+
"platformNamespace": "krate-org-default",
|
|
6
|
+
"org": {
|
|
7
|
+
"name": "default",
|
|
8
|
+
"slug": "default",
|
|
9
|
+
"displayName": "Default org",
|
|
10
|
+
"namespace": "krate-org-default",
|
|
11
|
+
"platformNamespace": "krate-org-default"
|
|
12
|
+
},
|
|
13
|
+
"orgs": [
|
|
14
|
+
{
|
|
15
|
+
"name": "default",
|
|
16
|
+
"slug": "default",
|
|
17
|
+
"displayName": "Default org",
|
|
18
|
+
"namespace": "krate-org-default",
|
|
19
|
+
"platformNamespace": "krate-org-default"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"generatedAt": "2026-05-15T07:01:42.280Z",
|
|
23
|
+
"correlationId": null,
|
|
24
|
+
"controller": {
|
|
25
|
+
"mode": "krate-workspace",
|
|
26
|
+
"endpoints": [
|
|
27
|
+
{
|
|
28
|
+
"method": "GET",
|
|
29
|
+
"path": "/healthz",
|
|
30
|
+
"purpose": "container and load-balancer health"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"method": "GET",
|
|
34
|
+
"path": "/api/controller?org=:org",
|
|
35
|
+
"purpose": "live Krate org model"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"method": "GET",
|
|
39
|
+
"path": "/api/orgs/:org/resources",
|
|
40
|
+
"purpose": "org-scoped Krate resource listing"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"method": "POST",
|
|
44
|
+
"path": "/api/orgs/:org/resources",
|
|
45
|
+
"purpose": "org-scoped Krate resource apply flow"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"method": "GET",
|
|
49
|
+
"path": "/api/orgs/:org/resources/:kind/:name",
|
|
50
|
+
"purpose": "org-scoped Krate resource detail"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"method": "DELETE",
|
|
54
|
+
"path": "/api/orgs/:org/resources/:kind/:name",
|
|
55
|
+
"purpose": "org-scoped Krate resource delete flow"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"method": "GET",
|
|
59
|
+
"path": "/api/orgs/:org/repositories",
|
|
60
|
+
"purpose": "list org repositories through Krate"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"method": "POST",
|
|
64
|
+
"path": "/api/orgs/:org/repositories",
|
|
65
|
+
"purpose": "create org repositories through Krate"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"method": "GET",
|
|
69
|
+
"path": "/api/orgs/:org/repositories/:name",
|
|
70
|
+
"purpose": "get org repository details through Krate"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"method": "DELETE",
|
|
74
|
+
"path": "/api/orgs/:org/repositories/:name",
|
|
75
|
+
"purpose": "delete org repositories through Krate"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"method": "GET",
|
|
79
|
+
"path": "/api/orgs/:org/policies",
|
|
80
|
+
"purpose": "list Krate policy profiles, templates, bindings, Kyverno health, and exception requests"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"method": "POST",
|
|
84
|
+
"path": "/api/orgs/:org/policies",
|
|
85
|
+
"purpose": "create org policy bindings in audit or enforce mode"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"method": "GET",
|
|
89
|
+
"path": "/api/orgs/:org/policy-reports",
|
|
90
|
+
"purpose": "list normalized Kyverno policy report results"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"method": "GET",
|
|
94
|
+
"path": "/api/orgs/:org/policy-exception-requests",
|
|
95
|
+
"purpose": "list pending and approved Krate policy exception requests"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"method": "POST",
|
|
99
|
+
"path": "/api/orgs/:org/policy-exception-requests",
|
|
100
|
+
"purpose": "request a temporary policy exception through Krate"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"method": "GET",
|
|
104
|
+
"path": "/api/watch/orgs/:org/*",
|
|
105
|
+
"purpose": "org-scoped Krate live event stream bridged to browser updates"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"method": "POST",
|
|
109
|
+
"path": "/api/git-proxy",
|
|
110
|
+
"purpose": "repository streaming proxy when configured"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"method": "GET",
|
|
114
|
+
"path": "/api/orgs/:org/agents/stacks",
|
|
115
|
+
"purpose": "list agent stacks and capability status"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"method": "GET",
|
|
119
|
+
"path": "/api/orgs/:org/agents/runs",
|
|
120
|
+
"purpose": "list agent dispatch runs with queue and status"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"method": "GET",
|
|
124
|
+
"path": "/api/orgs/:org/agents/rules",
|
|
125
|
+
"purpose": "list trigger rules and delivery status"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"method": "GET",
|
|
129
|
+
"path": "/api/orgs/:org/agents/sessions",
|
|
130
|
+
"purpose": "list agent sessions with lifecycle state"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"method": "GET",
|
|
134
|
+
"path": "/api/orgs/:org/agents/workspaces",
|
|
135
|
+
"purpose": "list agent workspaces with lifecycle state"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"method": "GET",
|
|
139
|
+
"path": "/api/orgs/:org/agents/approvals",
|
|
140
|
+
"purpose": "list pending and resolved agent approvals"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"method": "GET",
|
|
144
|
+
"path": "/api/orgs/:org/agents/permissions/review",
|
|
145
|
+
"purpose": "explainable permission check for agent dispatch"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"method": "GET",
|
|
149
|
+
"path": "/api/orgs/:org/agents/adapters",
|
|
150
|
+
"purpose": "list agent adapters and transport bindings"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"method": "GET",
|
|
154
|
+
"path": "/api/orgs/:org/agents/providers",
|
|
155
|
+
"purpose": "list model provider configurations"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"method": "GET",
|
|
159
|
+
"path": "/api/orgs/:org/agents/projects",
|
|
160
|
+
"purpose": "list agent projects with board config"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"method": "POST",
|
|
164
|
+
"path": "/api/orgs/:org/agents/dispatch",
|
|
165
|
+
"purpose": "create manual agent dispatch run"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"method": "POST",
|
|
169
|
+
"path": "/api/orgs/:org/agents/approvals/:name/decide",
|
|
170
|
+
"purpose": "approve or deny a pending agent approval request"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"method": "POST",
|
|
174
|
+
"path": "/api/orgs/:org/agents/triggers/process",
|
|
175
|
+
"purpose": "evaluate an event against trigger rules and dispatch matching agents"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"method": "POST",
|
|
179
|
+
"path": "/api/orgs/:org/agents/workspaces",
|
|
180
|
+
"purpose": "provision a new agent workspace with worktree and runtime"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"method": "POST",
|
|
184
|
+
"path": "/api/orgs/:org/agents/workspaces/:name/archive",
|
|
185
|
+
"purpose": "archive an agent workspace and mark it for cleanup"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"method": "POST",
|
|
189
|
+
"path": "/api/orgs/:org/agents/workspaces/:name/link",
|
|
190
|
+
"purpose": "link a work item to an agent workspace"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"method": "POST",
|
|
194
|
+
"path": "/api/orgs/:org/agents/memory/query",
|
|
195
|
+
"purpose": "query Company Brain memory with graph and grep search"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"method": "POST",
|
|
199
|
+
"path": "/api/orgs/:org/agents/memory/imports",
|
|
200
|
+
"purpose": "create a memory import from a babysitter run"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"method": "GET",
|
|
204
|
+
"path": "/api/orgs/:org/agents/memory/snapshots",
|
|
205
|
+
"purpose": "list memory snapshots for an organization"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"method": "GET",
|
|
209
|
+
"path": "/api/orgs/:org/agents/memory/repositories",
|
|
210
|
+
"purpose": "list memory repositories for an organization"
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"architecture": {
|
|
214
|
+
"apiController": {
|
|
215
|
+
"role": "krate-api-controller",
|
|
216
|
+
"scope": "HTTP route orchestration, request validation, API errors, and workflow affordances; never owns delivery reconciliation loops",
|
|
217
|
+
"owns": [
|
|
218
|
+
"/api/controller",
|
|
219
|
+
"/api/orgs/:org/resources",
|
|
220
|
+
"/api/orgs/:org/repositories",
|
|
221
|
+
"/api/watch/orgs/:org/*"
|
|
222
|
+
],
|
|
223
|
+
"delegatesTo": [
|
|
224
|
+
"krate-resource-gateway",
|
|
225
|
+
"repository-service"
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"resourceGateway": {
|
|
229
|
+
"role": "krate-resource-gateway",
|
|
230
|
+
"scope": "Narrow application port translating API controller intent into Krate resource-client calls",
|
|
231
|
+
"namespace": "krate-org-default",
|
|
232
|
+
"delegatesTo": [
|
|
233
|
+
"krate-resource-client"
|
|
234
|
+
]
|
|
235
|
+
},
|
|
236
|
+
"resourceClient": {
|
|
237
|
+
"role": "krate-resource-client",
|
|
238
|
+
"scope": "Krate resource operations and live streams; no UI flow ownership",
|
|
239
|
+
"namespace": "krate-org-default",
|
|
240
|
+
"owns": [
|
|
241
|
+
"Krate resources",
|
|
242
|
+
"aggregated API resources"
|
|
243
|
+
]
|
|
244
|
+
},
|
|
245
|
+
"deliveryReconciler": {
|
|
246
|
+
"role": "krate-delivery-reconciler",
|
|
247
|
+
"scope": "Repository status projection, repository hosting intent, policy projection, and data-plane sync intent; never owns HTTP routes or browser flows",
|
|
248
|
+
"namespace": "krate-org-default",
|
|
249
|
+
"delegatesTo": [
|
|
250
|
+
"krate-resource-gateway",
|
|
251
|
+
"repository-service"
|
|
252
|
+
]
|
|
253
|
+
},
|
|
254
|
+
"repositoryService": {
|
|
255
|
+
"role": "repository-service",
|
|
256
|
+
"scope": "repository streaming and SSH hosting, object storage, and search indexing",
|
|
257
|
+
"boundary": "repository service not configured"
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"storage": {
|
|
261
|
+
"etcd": [
|
|
262
|
+
"Repository",
|
|
263
|
+
"BranchProtection",
|
|
264
|
+
"RefPolicy",
|
|
265
|
+
"RunnerPool",
|
|
266
|
+
"WebhookSubscription",
|
|
267
|
+
"Team",
|
|
268
|
+
"User",
|
|
269
|
+
"IdentityMapping",
|
|
270
|
+
"Invite",
|
|
271
|
+
"AuthProvider",
|
|
272
|
+
"AuthProvider"
|
|
273
|
+
],
|
|
274
|
+
"postgres": []
|
|
275
|
+
},
|
|
276
|
+
"connection": {
|
|
277
|
+
"available": false,
|
|
278
|
+
"context": null,
|
|
279
|
+
"errors": [
|
|
280
|
+
"runtime snapshot supplied outside the Krate workspace path"
|
|
281
|
+
]
|
|
282
|
+
},
|
|
283
|
+
"apiService": null,
|
|
284
|
+
"commands": []
|
|
285
|
+
},
|
|
286
|
+
"metrics": {
|
|
287
|
+
"components": 8,
|
|
288
|
+
"resources": 11,
|
|
289
|
+
"events": 11,
|
|
290
|
+
"auditEntries": 0,
|
|
291
|
+
"users": 1,
|
|
292
|
+
"teams": 1,
|
|
293
|
+
"invites": 1,
|
|
294
|
+
"repositories": 1,
|
|
295
|
+
"pullRequests": 0,
|
|
296
|
+
"pipelines": 0,
|
|
297
|
+
"jobs": 0,
|
|
298
|
+
"runnerPools": 1,
|
|
299
|
+
"webhookDeliveries": 0,
|
|
300
|
+
"policyViolations": 0,
|
|
301
|
+
"policyBindings": 0,
|
|
302
|
+
"deployments": 0,
|
|
303
|
+
"releases": 0,
|
|
304
|
+
"agentStacks": 0,
|
|
305
|
+
"agentRuns": 0,
|
|
306
|
+
"agentSessions": 0,
|
|
307
|
+
"greenChecks": 5,
|
|
308
|
+
"totalChecks": 6
|
|
309
|
+
},
|
|
310
|
+
"components": [
|
|
311
|
+
{
|
|
312
|
+
"id": "identity-access",
|
|
313
|
+
"title": "Identity and access",
|
|
314
|
+
"area": "identity",
|
|
315
|
+
"resources": [
|
|
316
|
+
"User",
|
|
317
|
+
"Team",
|
|
318
|
+
"Invite",
|
|
319
|
+
"IdentityMapping",
|
|
320
|
+
"AuthProvider"
|
|
321
|
+
],
|
|
322
|
+
"docs": "src/auth.js"
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"id": "api-controller",
|
|
326
|
+
"title": "Krate API controller",
|
|
327
|
+
"area": "api",
|
|
328
|
+
"resources": [
|
|
329
|
+
"Repository",
|
|
330
|
+
"PullRequest",
|
|
331
|
+
"Pipeline"
|
|
332
|
+
],
|
|
333
|
+
"docs": "src/api-controller.js"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"id": "krate-resource-client",
|
|
337
|
+
"title": "Krate resource client",
|
|
338
|
+
"area": "control-plane",
|
|
339
|
+
"resources": [
|
|
340
|
+
"Repository",
|
|
341
|
+
"BranchProtection",
|
|
342
|
+
"RefPolicy"
|
|
343
|
+
],
|
|
344
|
+
"docs": "src/kubernetes-controller.js"
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"id": "repository-service",
|
|
348
|
+
"title": "Repository service",
|
|
349
|
+
"area": "data-plane",
|
|
350
|
+
"resources": [
|
|
351
|
+
"Repository",
|
|
352
|
+
"BranchProtection",
|
|
353
|
+
"RefPolicy"
|
|
354
|
+
],
|
|
355
|
+
"docs": "src/data-plane.js"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"id": "runners-ci",
|
|
359
|
+
"title": "Runner scheduler",
|
|
360
|
+
"area": "ci",
|
|
361
|
+
"resources": [
|
|
362
|
+
"RunnerPool",
|
|
363
|
+
"Pipeline",
|
|
364
|
+
"Job"
|
|
365
|
+
],
|
|
366
|
+
"docs": "src/kubernetes-controller.js"
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"id": "hooks-events",
|
|
370
|
+
"title": "Webhook bus",
|
|
371
|
+
"area": "events",
|
|
372
|
+
"resources": [
|
|
373
|
+
"WebhookSubscription",
|
|
374
|
+
"WebhookDelivery"
|
|
375
|
+
],
|
|
376
|
+
"docs": "src/kubernetes-controller.js"
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"id": "policy-engine",
|
|
380
|
+
"title": "Kyverno policy engine",
|
|
381
|
+
"area": "policy",
|
|
382
|
+
"resources": [
|
|
383
|
+
"PolicyProfile",
|
|
384
|
+
"PolicyTemplate",
|
|
385
|
+
"PolicyBinding",
|
|
386
|
+
"PolicyExceptionRequest"
|
|
387
|
+
],
|
|
388
|
+
"docs": "docs/todo-kyverno"
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"id": "agent-orchestration",
|
|
392
|
+
"title": "Agent orchestration",
|
|
393
|
+
"area": "agents",
|
|
394
|
+
"resources": [
|
|
395
|
+
"AgentStack",
|
|
396
|
+
"AgentDispatchRun",
|
|
397
|
+
"AgentTriggerRule",
|
|
398
|
+
"AgentSession",
|
|
399
|
+
"KrateWorkspace",
|
|
400
|
+
"AgentApproval",
|
|
401
|
+
"AgentAdapter",
|
|
402
|
+
"AgentProviderConfig",
|
|
403
|
+
"KrateProject"
|
|
404
|
+
],
|
|
405
|
+
"docs": "docs/agents/"
|
|
406
|
+
}
|
|
407
|
+
],
|
|
408
|
+
"resources": [
|
|
409
|
+
{
|
|
410
|
+
"kind": "Organization",
|
|
411
|
+
"plural": "organizations",
|
|
412
|
+
"apiResource": "organizations.krate.a5c.ai",
|
|
413
|
+
"count": 0,
|
|
414
|
+
"names": [],
|
|
415
|
+
"items": [],
|
|
416
|
+
"phases": {},
|
|
417
|
+
"storage": "etcd",
|
|
418
|
+
"yaml": null,
|
|
419
|
+
"action": {
|
|
420
|
+
"list": "Open Organization records in krate-org-default",
|
|
421
|
+
"watch": "Watch Organization updates in krate-org-default",
|
|
422
|
+
"apply": "Save resource changes",
|
|
423
|
+
"delete": "Delete Organization in krate-org-default"
|
|
424
|
+
}
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"kind": "OrgNamespaceBinding",
|
|
428
|
+
"plural": "orgnamespacebindings",
|
|
429
|
+
"apiResource": "orgnamespacebindings.krate.a5c.ai",
|
|
430
|
+
"count": 0,
|
|
431
|
+
"names": [],
|
|
432
|
+
"items": [],
|
|
433
|
+
"phases": {},
|
|
434
|
+
"storage": "etcd",
|
|
435
|
+
"yaml": null,
|
|
436
|
+
"action": {
|
|
437
|
+
"list": "Open OrgNamespaceBinding records in krate-org-default",
|
|
438
|
+
"watch": "Watch OrgNamespaceBinding updates in krate-org-default",
|
|
439
|
+
"apply": "Save resource changes",
|
|
440
|
+
"delete": "Delete OrgNamespaceBinding in krate-org-default"
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"kind": "User",
|
|
445
|
+
"plural": "users",
|
|
446
|
+
"apiResource": "users.krate.a5c.ai",
|
|
447
|
+
"count": 1,
|
|
448
|
+
"names": [
|
|
449
|
+
"admin"
|
|
450
|
+
],
|
|
451
|
+
"items": [
|
|
452
|
+
{
|
|
453
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
454
|
+
"kind": "User",
|
|
455
|
+
"metadata": {
|
|
456
|
+
"namespace": "krate-org-default",
|
|
457
|
+
"labels": {
|
|
458
|
+
"role": "admin"
|
|
459
|
+
},
|
|
460
|
+
"annotations": {},
|
|
461
|
+
"name": "admin",
|
|
462
|
+
"resourceVersion": "1"
|
|
463
|
+
},
|
|
464
|
+
"spec": {
|
|
465
|
+
"organizationRef": "default",
|
|
466
|
+
"displayName": "Admin",
|
|
467
|
+
"email": "admin@example.com",
|
|
468
|
+
"username": "admin",
|
|
469
|
+
"teams": [
|
|
470
|
+
"maintainers"
|
|
471
|
+
],
|
|
472
|
+
"admin": true,
|
|
473
|
+
"disabled": false
|
|
474
|
+
},
|
|
475
|
+
"status": {
|
|
476
|
+
"phase": "Active",
|
|
477
|
+
"lastLoginProvider": "sso",
|
|
478
|
+
"groups": [
|
|
479
|
+
"system:authenticated",
|
|
480
|
+
"krate:users",
|
|
481
|
+
"krate:platform-engineers"
|
|
482
|
+
],
|
|
483
|
+
"storage": "etcd"
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
],
|
|
487
|
+
"phases": {
|
|
488
|
+
"Active": 1
|
|
489
|
+
},
|
|
490
|
+
"storage": "etcd",
|
|
491
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: User\nmetadata:\n namespace: krate-org-default\n labels:\n role: admin\n annotations:\n name: admin\n resourceVersion: 1\nspec:\n organizationRef: default\n displayName: Admin\n email: admin@example.com\n username: admin\n teams:\n - maintainers\n admin: true\n disabled: false\nstatus:\n phase: Active\n lastLoginProvider: sso\n groups:\n - system:authenticated\n - krate:users\n - krate:platform-engineers\n storage: etcd\n",
|
|
492
|
+
"action": {
|
|
493
|
+
"list": "Open User records in krate-org-default",
|
|
494
|
+
"watch": "Watch User updates in krate-org-default",
|
|
495
|
+
"apply": "Save resource changes",
|
|
496
|
+
"delete": "Delete User in krate-org-default"
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"kind": "Team",
|
|
501
|
+
"plural": "teams",
|
|
502
|
+
"apiResource": "teams.krate.a5c.ai",
|
|
503
|
+
"count": 1,
|
|
504
|
+
"names": [
|
|
505
|
+
"maintainers"
|
|
506
|
+
],
|
|
507
|
+
"items": [
|
|
508
|
+
{
|
|
509
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
510
|
+
"kind": "Team",
|
|
511
|
+
"metadata": {
|
|
512
|
+
"namespace": "krate-org-default",
|
|
513
|
+
"labels": {},
|
|
514
|
+
"annotations": {},
|
|
515
|
+
"name": "maintainers",
|
|
516
|
+
"resourceVersion": "1"
|
|
517
|
+
},
|
|
518
|
+
"spec": {
|
|
519
|
+
"organizationRef": "default",
|
|
520
|
+
"displayName": "Maintainers",
|
|
521
|
+
"members": [
|
|
522
|
+
"admin"
|
|
523
|
+
],
|
|
524
|
+
"maintainers": [
|
|
525
|
+
"admin"
|
|
526
|
+
],
|
|
527
|
+
"repositoryGrants": [
|
|
528
|
+
{
|
|
529
|
+
"repository": "krate-demo",
|
|
530
|
+
"permission": "admin"
|
|
531
|
+
}
|
|
532
|
+
]
|
|
533
|
+
},
|
|
534
|
+
"status": {
|
|
535
|
+
"phase": "Active",
|
|
536
|
+
"memberCount": 1,
|
|
537
|
+
"storage": "etcd"
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
],
|
|
541
|
+
"phases": {
|
|
542
|
+
"Active": 1
|
|
543
|
+
},
|
|
544
|
+
"storage": "etcd",
|
|
545
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Team\nmetadata:\n namespace: krate-org-default\n labels:\n annotations:\n name: maintainers\n resourceVersion: 1\nspec:\n organizationRef: default\n displayName: Maintainers\n members:\n - admin\n maintainers:\n - admin\n repositoryGrants:\n - repository: krate-demo\n permission: admin\nstatus:\n phase: Active\n memberCount: 1\n storage: etcd\n",
|
|
546
|
+
"action": {
|
|
547
|
+
"list": "Open Team records in krate-org-default",
|
|
548
|
+
"watch": "Watch Team updates in krate-org-default",
|
|
549
|
+
"apply": "Save resource changes",
|
|
550
|
+
"delete": "Delete Team in krate-org-default"
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"kind": "Invite",
|
|
555
|
+
"plural": "invites",
|
|
556
|
+
"apiResource": "invites.krate.a5c.ai",
|
|
557
|
+
"count": 1,
|
|
558
|
+
"names": [
|
|
559
|
+
"new-user-example-com"
|
|
560
|
+
],
|
|
561
|
+
"items": [
|
|
562
|
+
{
|
|
563
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
564
|
+
"kind": "Invite",
|
|
565
|
+
"metadata": {
|
|
566
|
+
"namespace": "krate-org-default",
|
|
567
|
+
"labels": {
|
|
568
|
+
"role": "member"
|
|
569
|
+
},
|
|
570
|
+
"annotations": {},
|
|
571
|
+
"name": "new-user-example-com",
|
|
572
|
+
"resourceVersion": "1"
|
|
573
|
+
},
|
|
574
|
+
"spec": {
|
|
575
|
+
"organizationRef": "default",
|
|
576
|
+
"email": "new-user@example.com",
|
|
577
|
+
"role": "member",
|
|
578
|
+
"teams": [
|
|
579
|
+
"maintainers"
|
|
580
|
+
],
|
|
581
|
+
"invitedBy": "admin",
|
|
582
|
+
"expiresAt": "2026-05-22T07:01:42.277Z"
|
|
583
|
+
},
|
|
584
|
+
"status": {
|
|
585
|
+
"phase": "Pending",
|
|
586
|
+
"storage": "etcd"
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
],
|
|
590
|
+
"phases": {
|
|
591
|
+
"Pending": 1
|
|
592
|
+
},
|
|
593
|
+
"storage": "etcd",
|
|
594
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Invite\nmetadata:\n namespace: krate-org-default\n labels:\n role: member\n annotations:\n name: new-user-example-com\n resourceVersion: 1\nspec:\n organizationRef: default\n email: new-user@example.com\n role: member\n teams:\n - maintainers\n invitedBy: admin\n expiresAt: 2026-05-22T07:01:42.277Z\nstatus:\n phase: Pending\n storage: etcd\n",
|
|
595
|
+
"action": {
|
|
596
|
+
"list": "Open Invite records in krate-org-default",
|
|
597
|
+
"watch": "Watch Invite updates in krate-org-default",
|
|
598
|
+
"apply": "Save resource changes",
|
|
599
|
+
"delete": "Delete Invite in krate-org-default"
|
|
600
|
+
}
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"kind": "IdentityMapping",
|
|
604
|
+
"plural": "identitymappings",
|
|
605
|
+
"apiResource": "identitymappings.krate.a5c.ai",
|
|
606
|
+
"count": 1,
|
|
607
|
+
"names": [
|
|
608
|
+
"sso-admin"
|
|
609
|
+
],
|
|
610
|
+
"items": [
|
|
611
|
+
{
|
|
612
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
613
|
+
"kind": "IdentityMapping",
|
|
614
|
+
"metadata": {
|
|
615
|
+
"namespace": "krate-org-default",
|
|
616
|
+
"labels": {},
|
|
617
|
+
"annotations": {},
|
|
618
|
+
"name": "sso-admin",
|
|
619
|
+
"resourceVersion": "1"
|
|
620
|
+
},
|
|
621
|
+
"spec": {
|
|
622
|
+
"organizationRef": "default",
|
|
623
|
+
"user": "admin",
|
|
624
|
+
"provider": "sso",
|
|
625
|
+
"subject": "user:admin",
|
|
626
|
+
"email": "admin@example.com",
|
|
627
|
+
"workspaceIdentity": {
|
|
628
|
+
"name": "admin@example.com",
|
|
629
|
+
"uid": "user:admin",
|
|
630
|
+
"groups": [
|
|
631
|
+
"system:authenticated",
|
|
632
|
+
"krate:users",
|
|
633
|
+
"krate:platform-engineers"
|
|
634
|
+
]
|
|
635
|
+
},
|
|
636
|
+
"repositoryIdentity": {
|
|
637
|
+
"username": "admin",
|
|
638
|
+
"email": "admin@example.com"
|
|
639
|
+
}
|
|
640
|
+
},
|
|
641
|
+
"status": {
|
|
642
|
+
"phase": "Synced",
|
|
643
|
+
"storage": "etcd"
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
],
|
|
647
|
+
"phases": {
|
|
648
|
+
"Synced": 1
|
|
649
|
+
},
|
|
650
|
+
"storage": "etcd",
|
|
651
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: IdentityMapping\nmetadata:\n namespace: krate-org-default\n labels:\n annotations:\n name: sso-admin\n resourceVersion: 1\nspec:\n organizationRef: default\n user: admin\n provider: sso\n subject: user:admin\n email: admin@example.com\n workspaceIdentity:\n name: admin@example.com\n uid: user:admin\n groups:\n - system:authenticated\n - krate:users\n - krate:platform-engineers\n repositoryIdentity:\n username: admin\n email: admin@example.com\nstatus:\n phase: Synced\n storage: etcd\n",
|
|
652
|
+
"action": {
|
|
653
|
+
"list": "Open IdentityMapping records in krate-org-default",
|
|
654
|
+
"watch": "Watch IdentityMapping updates in krate-org-default",
|
|
655
|
+
"apply": "Save resource changes",
|
|
656
|
+
"delete": "Delete IdentityMapping in krate-org-default"
|
|
657
|
+
}
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"kind": "AuthProvider",
|
|
661
|
+
"plural": "authproviders",
|
|
662
|
+
"apiResource": "authproviders.krate.a5c.ai",
|
|
663
|
+
"count": 2,
|
|
664
|
+
"names": [
|
|
665
|
+
"github",
|
|
666
|
+
"sso"
|
|
667
|
+
],
|
|
668
|
+
"items": [
|
|
669
|
+
{
|
|
670
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
671
|
+
"kind": "AuthProvider",
|
|
672
|
+
"metadata": {
|
|
673
|
+
"namespace": "krate-org-default",
|
|
674
|
+
"labels": {},
|
|
675
|
+
"annotations": {},
|
|
676
|
+
"name": "github",
|
|
677
|
+
"resourceVersion": "1"
|
|
678
|
+
},
|
|
679
|
+
"spec": {
|
|
680
|
+
"organizationRef": "default",
|
|
681
|
+
"type": "github",
|
|
682
|
+
"label": "GitHub",
|
|
683
|
+
"enabled": true,
|
|
684
|
+
"scopes": "read:user user:email",
|
|
685
|
+
"delegatedIdentity": {
|
|
686
|
+
"enabled": false,
|
|
687
|
+
"userHeader": "x-forwarded-user",
|
|
688
|
+
"groupsHeader": "x-forwarded-groups",
|
|
689
|
+
"emailHeader": "x-forwarded-email",
|
|
690
|
+
"localDevelopment": {
|
|
691
|
+
"enabled": true,
|
|
692
|
+
"user": "local-developer",
|
|
693
|
+
"email": "",
|
|
694
|
+
"groups": "krate:repo-admins"
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
"status": {
|
|
699
|
+
"phase": "Configured",
|
|
700
|
+
"clientConfigured": false,
|
|
701
|
+
"storage": "etcd"
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
706
|
+
"kind": "AuthProvider",
|
|
707
|
+
"metadata": {
|
|
708
|
+
"namespace": "krate-org-default",
|
|
709
|
+
"labels": {},
|
|
710
|
+
"annotations": {},
|
|
711
|
+
"name": "sso",
|
|
712
|
+
"resourceVersion": "1"
|
|
713
|
+
},
|
|
714
|
+
"spec": {
|
|
715
|
+
"organizationRef": "default",
|
|
716
|
+
"type": "oidc",
|
|
717
|
+
"label": "Workspace SSO",
|
|
718
|
+
"enabled": false,
|
|
719
|
+
"scopes": "openid profile email groups",
|
|
720
|
+
"delegatedIdentity": {
|
|
721
|
+
"enabled": false,
|
|
722
|
+
"userHeader": "x-forwarded-user",
|
|
723
|
+
"groupsHeader": "x-forwarded-groups",
|
|
724
|
+
"emailHeader": "x-forwarded-email",
|
|
725
|
+
"localDevelopment": {
|
|
726
|
+
"enabled": true,
|
|
727
|
+
"user": "local-developer",
|
|
728
|
+
"email": "",
|
|
729
|
+
"groups": "krate:repo-admins"
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
},
|
|
733
|
+
"status": {
|
|
734
|
+
"phase": "Disabled",
|
|
735
|
+
"clientConfigured": false,
|
|
736
|
+
"storage": "etcd"
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
],
|
|
740
|
+
"phases": {
|
|
741
|
+
"Configured": 1,
|
|
742
|
+
"Disabled": 1
|
|
743
|
+
},
|
|
744
|
+
"storage": "etcd",
|
|
745
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: AuthProvider\nmetadata:\n namespace: krate-org-default\n labels:\n annotations:\n name: github\n resourceVersion: 1\nspec:\n organizationRef: default\n type: github\n label: GitHub\n enabled: true\n scopes: read:user user:email\n delegatedIdentity:\n enabled: false\n userHeader: x-forwarded-user\n groupsHeader: x-forwarded-groups\n emailHeader: x-forwarded-email\n localDevelopment:\n enabled: true\n user: local-developer\n email: \n groups: krate:repo-admins\nstatus:\n phase: Configured\n clientConfigured: false\n storage: etcd\n",
|
|
746
|
+
"action": {
|
|
747
|
+
"list": "Open AuthProvider records in krate-org-default",
|
|
748
|
+
"watch": "Watch AuthProvider updates in krate-org-default",
|
|
749
|
+
"apply": "Save resource changes",
|
|
750
|
+
"delete": "Delete AuthProvider in krate-org-default"
|
|
751
|
+
}
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
"kind": "Repository",
|
|
755
|
+
"plural": "repositories",
|
|
756
|
+
"apiResource": "repositories.krate.a5c.ai",
|
|
757
|
+
"count": 1,
|
|
758
|
+
"names": [
|
|
759
|
+
"krate-demo"
|
|
760
|
+
],
|
|
761
|
+
"items": [
|
|
762
|
+
{
|
|
763
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
764
|
+
"kind": "Repository",
|
|
765
|
+
"metadata": {
|
|
766
|
+
"namespace": "krate-org-default",
|
|
767
|
+
"labels": {
|
|
768
|
+
"gitBackend": "gitea"
|
|
769
|
+
},
|
|
770
|
+
"annotations": {},
|
|
771
|
+
"name": "krate-demo",
|
|
772
|
+
"resourceVersion": "1"
|
|
773
|
+
},
|
|
774
|
+
"spec": {
|
|
775
|
+
"organizationRef": "default",
|
|
776
|
+
"visibility": "private",
|
|
777
|
+
"gitHosting": {
|
|
778
|
+
"backend": "gitea",
|
|
779
|
+
"owner": "krate",
|
|
780
|
+
"repository": "krate-demo",
|
|
781
|
+
"branch": "main",
|
|
782
|
+
"httpUrl": "http://krate-gitea-http:3000/krate/krate-demo.git",
|
|
783
|
+
"sshUrl": "ssh://git@krate-gitea-ssh/krate/krate-demo.git",
|
|
784
|
+
"deployKeyTitle": "krate-argocd",
|
|
785
|
+
"organization": {
|
|
786
|
+
"kind": "Organization",
|
|
787
|
+
"name": "krate",
|
|
788
|
+
"delegatedTo": "Gitea /api/v1/orgs"
|
|
789
|
+
},
|
|
790
|
+
"sshKeys": {
|
|
791
|
+
"kind": "SSHKey",
|
|
792
|
+
"scopes": [
|
|
793
|
+
"user",
|
|
794
|
+
"deploy",
|
|
795
|
+
"argocd"
|
|
796
|
+
],
|
|
797
|
+
"delegatedTo": "Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys"
|
|
798
|
+
},
|
|
799
|
+
"permissions": {
|
|
800
|
+
"kind": "RepositoryPermission",
|
|
801
|
+
"defaultCollaborator": "write",
|
|
802
|
+
"adminTeam": "maintainers",
|
|
803
|
+
"delegatedTo": "Gitea collaborators and team repository APIs"
|
|
804
|
+
},
|
|
805
|
+
"forgeRecords": {
|
|
806
|
+
"issues": "Gitea /repos/{owner}/{repo}/issues",
|
|
807
|
+
"pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
|
|
808
|
+
},
|
|
809
|
+
"webhookUrl": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo",
|
|
810
|
+
"integrationPlan": {
|
|
811
|
+
"backend": "gitea",
|
|
812
|
+
"operations": [
|
|
813
|
+
{
|
|
814
|
+
"action": "createOrganization",
|
|
815
|
+
"owner": "krate"
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"action": "createRepository",
|
|
819
|
+
"owner": "krate",
|
|
820
|
+
"repo": "krate-demo"
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"action": "ensureUserMappings",
|
|
824
|
+
"owner": "krate"
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"action": "addDeployKey",
|
|
828
|
+
"owner": "krate",
|
|
829
|
+
"repo": "krate-demo",
|
|
830
|
+
"title": "krate-argocd",
|
|
831
|
+
"readOnly": false
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"action": "addUserSshKey",
|
|
835
|
+
"owner": "krate",
|
|
836
|
+
"repo": "krate-demo",
|
|
837
|
+
"title": "developer key"
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"action": "addCollaborator",
|
|
841
|
+
"owner": "krate",
|
|
842
|
+
"repo": "krate-demo",
|
|
843
|
+
"permission": "write"
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
"action": "addTeamRepository",
|
|
847
|
+
"owner": "krate",
|
|
848
|
+
"repo": "krate-demo",
|
|
849
|
+
"team": "maintainers",
|
|
850
|
+
"permission": "admin"
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"action": "protectBranch",
|
|
854
|
+
"owner": "krate",
|
|
855
|
+
"repo": "krate-demo",
|
|
856
|
+
"branch": "main"
|
|
857
|
+
},
|
|
858
|
+
{
|
|
859
|
+
"action": "createWebhook",
|
|
860
|
+
"owner": "krate",
|
|
861
|
+
"repo": "krate-demo",
|
|
862
|
+
"url": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo"
|
|
863
|
+
}
|
|
864
|
+
]
|
|
865
|
+
}
|
|
866
|
+
},
|
|
867
|
+
"storage": {
|
|
868
|
+
"mode": "gitea",
|
|
869
|
+
"persistentVolumeClaim": "krate-gitea-data",
|
|
870
|
+
"owner": "krate",
|
|
871
|
+
"repository": "krate-demo",
|
|
872
|
+
"httpUrl": "http://krate-gitea-http:3000/krate/krate-demo.git",
|
|
873
|
+
"sshUrl": "ssh://git@krate-gitea-ssh/krate/krate-demo.git"
|
|
874
|
+
},
|
|
875
|
+
"objectStorage": {
|
|
876
|
+
"lfs": true,
|
|
877
|
+
"artifacts": true
|
|
878
|
+
},
|
|
879
|
+
"search": {
|
|
880
|
+
"provider": "zoekt",
|
|
881
|
+
"enabled": false
|
|
882
|
+
}
|
|
883
|
+
},
|
|
884
|
+
"status": {
|
|
885
|
+
"ready": true,
|
|
886
|
+
"route": {
|
|
887
|
+
"repositoryName": "krate-demo",
|
|
888
|
+
"backend": "gitea",
|
|
889
|
+
"owner": "krate",
|
|
890
|
+
"store": "gitea-primary",
|
|
891
|
+
"receivePackReady": true,
|
|
892
|
+
"httpUrl": "http://krate-gitea-http:3000/krate/krate-demo.git",
|
|
893
|
+
"sshUrl": "ssh://git@krate-gitea-ssh/krate/krate-demo.git"
|
|
894
|
+
},
|
|
895
|
+
"gitHosting": {
|
|
896
|
+
"backend": "gitea",
|
|
897
|
+
"httpUrl": "http://krate-gitea-http:3000/krate/krate-demo.git",
|
|
898
|
+
"sshUrl": "ssh://git@krate-gitea-ssh/krate/krate-demo.git",
|
|
899
|
+
"integrationPlan": {
|
|
900
|
+
"backend": "gitea",
|
|
901
|
+
"operations": [
|
|
902
|
+
{
|
|
903
|
+
"action": "createOrganization",
|
|
904
|
+
"owner": "krate"
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"action": "createRepository",
|
|
908
|
+
"owner": "krate",
|
|
909
|
+
"repo": "krate-demo"
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
"action": "ensureUserMappings",
|
|
913
|
+
"owner": "krate"
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"action": "addDeployKey",
|
|
917
|
+
"owner": "krate",
|
|
918
|
+
"repo": "krate-demo",
|
|
919
|
+
"title": "krate-argocd",
|
|
920
|
+
"readOnly": false
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
"action": "addUserSshKey",
|
|
924
|
+
"owner": "krate",
|
|
925
|
+
"repo": "krate-demo",
|
|
926
|
+
"title": "developer key"
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
"action": "addCollaborator",
|
|
930
|
+
"owner": "krate",
|
|
931
|
+
"repo": "krate-demo",
|
|
932
|
+
"permission": "write"
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"action": "addTeamRepository",
|
|
936
|
+
"owner": "krate",
|
|
937
|
+
"repo": "krate-demo",
|
|
938
|
+
"team": "maintainers",
|
|
939
|
+
"permission": "admin"
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"action": "protectBranch",
|
|
943
|
+
"owner": "krate",
|
|
944
|
+
"repo": "krate-demo",
|
|
945
|
+
"branch": "main"
|
|
946
|
+
},
|
|
947
|
+
{
|
|
948
|
+
"action": "createWebhook",
|
|
949
|
+
"owner": "krate",
|
|
950
|
+
"repo": "krate-demo",
|
|
951
|
+
"url": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo"
|
|
952
|
+
}
|
|
953
|
+
]
|
|
954
|
+
}
|
|
955
|
+
},
|
|
956
|
+
"storage": "etcd"
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
],
|
|
960
|
+
"phases": {
|
|
961
|
+
"Ready": 1
|
|
962
|
+
},
|
|
963
|
+
"storage": "etcd",
|
|
964
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Repository\nmetadata:\n namespace: krate-org-default\n labels:\n gitBackend: gitea\n annotations:\n name: krate-demo\n resourceVersion: 1\nspec:\n organizationRef: default\n visibility: private\n gitHosting:\n backend: gitea\n owner: krate\n repository: krate-demo\n branch: main\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n deployKeyTitle: krate-argocd\n organization:\n kind: Organization\n name: krate\n delegatedTo: Gitea /api/v1/orgs\n sshKeys:\n kind: SSHKey\n scopes:\n - user\n - deploy\n - argocd\n delegatedTo: Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys\n permissions:\n kind: RepositoryPermission\n defaultCollaborator: write\n adminTeam: maintainers\n delegatedTo: Gitea collaborators and team repository APIs\n forgeRecords:\n issues: Gitea /repos/{owner}/{repo}/issues\n pullRequests: Gitea /repos/{owner}/{repo}/pulls\n webhookUrl: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n integrationPlan:\n backend: gitea\n operations:\n - action: createOrganization\n owner: krate\n - action: createRepository\n owner: krate\n repo: krate-demo\n - action: ensureUserMappings\n owner: krate\n - action: addDeployKey\n owner: krate\n repo: krate-demo\n title: krate-argocd\n readOnly: false\n - action: addUserSshKey\n owner: krate\n repo: krate-demo\n title: developer key\n - action: addCollaborator\n owner: krate\n repo: krate-demo\n permission: write\n - action: addTeamRepository\n owner: krate\n repo: krate-demo\n team: maintainers\n permission: admin\n - action: protectBranch\n owner: krate\n repo: krate-demo\n branch: main\n - action: createWebhook\n owner: krate\n repo: krate-demo\n url: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n storage:\n mode: gitea\n persistentVolumeClaim: krate-gitea-data\n owner: krate\n repository: krate-demo\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n objectStorage:\n lfs: true\n artifacts: true\n search:\n provider: zoekt\n enabled: false\nstatus:\n ready: true\n route:\n repositoryName: krate-demo\n backend: gitea\n owner: krate\n store: gitea-primary\n receivePackReady: true\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n gitHosting:\n backend: gitea\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n integrationPlan:\n backend: gitea\n operations:\n - action: createOrganization\n owner: krate\n - action: createRepository\n owner: krate\n repo: krate-demo\n - action: ensureUserMappings\n owner: krate\n - action: addDeployKey\n owner: krate\n repo: krate-demo\n title: krate-argocd\n readOnly: false\n - action: addUserSshKey\n owner: krate\n repo: krate-demo\n title: developer key\n - action: addCollaborator\n owner: krate\n repo: krate-demo\n permission: write\n - action: addTeamRepository\n owner: krate\n repo: krate-demo\n team: maintainers\n permission: admin\n - action: protectBranch\n owner: krate\n repo: krate-demo\n branch: main\n - action: createWebhook\n owner: krate\n repo: krate-demo\n url: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n storage: etcd\n",
|
|
965
|
+
"action": {
|
|
966
|
+
"list": "Open Repository records in krate-org-default",
|
|
967
|
+
"watch": "Watch Repository updates in krate-org-default",
|
|
968
|
+
"apply": "Save resource changes",
|
|
969
|
+
"delete": "Delete Repository in krate-org-default"
|
|
970
|
+
}
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"kind": "SSHKey",
|
|
974
|
+
"plural": "sshkeys",
|
|
975
|
+
"apiResource": "sshkeys.krate.a5c.ai",
|
|
976
|
+
"count": 0,
|
|
977
|
+
"names": [],
|
|
978
|
+
"items": [],
|
|
979
|
+
"phases": {},
|
|
980
|
+
"storage": "etcd",
|
|
981
|
+
"yaml": null,
|
|
982
|
+
"action": {
|
|
983
|
+
"list": "Open SSHKey records in krate-org-default",
|
|
984
|
+
"watch": "Watch SSHKey updates in krate-org-default",
|
|
985
|
+
"apply": "Save resource changes",
|
|
986
|
+
"delete": "Delete SSHKey in krate-org-default"
|
|
987
|
+
}
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
"kind": "RepositoryPermission",
|
|
991
|
+
"plural": "repositorypermissions",
|
|
992
|
+
"apiResource": "repositorypermissions.krate.a5c.ai",
|
|
993
|
+
"count": 0,
|
|
994
|
+
"names": [],
|
|
995
|
+
"items": [],
|
|
996
|
+
"phases": {},
|
|
997
|
+
"storage": "etcd",
|
|
998
|
+
"yaml": null,
|
|
999
|
+
"action": {
|
|
1000
|
+
"list": "Open RepositoryPermission records in krate-org-default",
|
|
1001
|
+
"watch": "Watch RepositoryPermission updates in krate-org-default",
|
|
1002
|
+
"apply": "Save resource changes",
|
|
1003
|
+
"delete": "Delete RepositoryPermission in krate-org-default"
|
|
1004
|
+
}
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
"kind": "BranchProtection",
|
|
1008
|
+
"plural": "branchprotections",
|
|
1009
|
+
"apiResource": "branchprotections.krate.a5c.ai",
|
|
1010
|
+
"count": 1,
|
|
1011
|
+
"names": [
|
|
1012
|
+
"main-protection"
|
|
1013
|
+
],
|
|
1014
|
+
"items": [
|
|
1015
|
+
{
|
|
1016
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
1017
|
+
"kind": "BranchProtection",
|
|
1018
|
+
"metadata": {
|
|
1019
|
+
"namespace": "krate-org-default",
|
|
1020
|
+
"labels": {},
|
|
1021
|
+
"annotations": {},
|
|
1022
|
+
"name": "main-protection",
|
|
1023
|
+
"resourceVersion": "1"
|
|
1024
|
+
},
|
|
1025
|
+
"spec": {
|
|
1026
|
+
"organizationRef": "default",
|
|
1027
|
+
"refs": [
|
|
1028
|
+
"refs/heads/main"
|
|
1029
|
+
],
|
|
1030
|
+
"requirePullRequest": true,
|
|
1031
|
+
"requiredChecks": [
|
|
1032
|
+
"test"
|
|
1033
|
+
],
|
|
1034
|
+
"requiredApprovals": 1
|
|
1035
|
+
},
|
|
1036
|
+
"status": {
|
|
1037
|
+
"storage": "etcd"
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
],
|
|
1041
|
+
"phases": {
|
|
1042
|
+
"Unspecified": 1
|
|
1043
|
+
},
|
|
1044
|
+
"storage": "etcd",
|
|
1045
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: BranchProtection\nmetadata:\n namespace: krate-org-default\n labels:\n annotations:\n name: main-protection\n resourceVersion: 1\nspec:\n organizationRef: default\n refs:\n - refs/heads/main\n requirePullRequest: true\n requiredChecks:\n - test\n requiredApprovals: 1\nstatus:\n storage: etcd\n",
|
|
1046
|
+
"action": {
|
|
1047
|
+
"list": "Open BranchProtection records in krate-org-default",
|
|
1048
|
+
"watch": "Watch BranchProtection updates in krate-org-default",
|
|
1049
|
+
"apply": "Save resource changes",
|
|
1050
|
+
"delete": "Delete BranchProtection in krate-org-default"
|
|
1051
|
+
}
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"kind": "RefPolicy",
|
|
1055
|
+
"plural": "refpolicies",
|
|
1056
|
+
"apiResource": "refpolicies.krate.a5c.ai",
|
|
1057
|
+
"count": 1,
|
|
1058
|
+
"names": [
|
|
1059
|
+
"deny-internal-refs"
|
|
1060
|
+
],
|
|
1061
|
+
"items": [
|
|
1062
|
+
{
|
|
1063
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
1064
|
+
"kind": "RefPolicy",
|
|
1065
|
+
"metadata": {
|
|
1066
|
+
"namespace": "krate-org-default",
|
|
1067
|
+
"labels": {},
|
|
1068
|
+
"annotations": {},
|
|
1069
|
+
"name": "deny-internal-refs",
|
|
1070
|
+
"resourceVersion": "1"
|
|
1071
|
+
},
|
|
1072
|
+
"spec": {
|
|
1073
|
+
"organizationRef": "default",
|
|
1074
|
+
"deny": [
|
|
1075
|
+
"refs/internal/"
|
|
1076
|
+
]
|
|
1077
|
+
},
|
|
1078
|
+
"status": {
|
|
1079
|
+
"storage": "etcd"
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
],
|
|
1083
|
+
"phases": {
|
|
1084
|
+
"Unspecified": 1
|
|
1085
|
+
},
|
|
1086
|
+
"storage": "etcd",
|
|
1087
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: RefPolicy\nmetadata:\n namespace: krate-org-default\n labels:\n annotations:\n name: deny-internal-refs\n resourceVersion: 1\nspec:\n organizationRef: default\n deny:\n - refs/internal/\nstatus:\n storage: etcd\n",
|
|
1088
|
+
"action": {
|
|
1089
|
+
"list": "Open RefPolicy records in krate-org-default",
|
|
1090
|
+
"watch": "Watch RefPolicy updates in krate-org-default",
|
|
1091
|
+
"apply": "Save resource changes",
|
|
1092
|
+
"delete": "Delete RefPolicy in krate-org-default"
|
|
1093
|
+
}
|
|
1094
|
+
},
|
|
1095
|
+
{
|
|
1096
|
+
"kind": "PolicyProfile",
|
|
1097
|
+
"plural": "policyprofiles",
|
|
1098
|
+
"apiResource": "policyprofiles.krate.a5c.ai",
|
|
1099
|
+
"count": 0,
|
|
1100
|
+
"names": [],
|
|
1101
|
+
"items": [],
|
|
1102
|
+
"phases": {},
|
|
1103
|
+
"storage": "etcd",
|
|
1104
|
+
"yaml": null,
|
|
1105
|
+
"action": {
|
|
1106
|
+
"list": "Open PolicyProfile records in krate-org-default",
|
|
1107
|
+
"watch": "Watch PolicyProfile updates in krate-org-default",
|
|
1108
|
+
"apply": "Save resource changes",
|
|
1109
|
+
"delete": "Delete PolicyProfile in krate-org-default"
|
|
1110
|
+
}
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
"kind": "PolicyTemplate",
|
|
1114
|
+
"plural": "policytemplates",
|
|
1115
|
+
"apiResource": "policytemplates.krate.a5c.ai",
|
|
1116
|
+
"count": 0,
|
|
1117
|
+
"names": [],
|
|
1118
|
+
"items": [],
|
|
1119
|
+
"phases": {},
|
|
1120
|
+
"storage": "etcd",
|
|
1121
|
+
"yaml": null,
|
|
1122
|
+
"action": {
|
|
1123
|
+
"list": "Open PolicyTemplate records in krate-org-default",
|
|
1124
|
+
"watch": "Watch PolicyTemplate updates in krate-org-default",
|
|
1125
|
+
"apply": "Save resource changes",
|
|
1126
|
+
"delete": "Delete PolicyTemplate in krate-org-default"
|
|
1127
|
+
}
|
|
1128
|
+
},
|
|
1129
|
+
{
|
|
1130
|
+
"kind": "PolicyBinding",
|
|
1131
|
+
"plural": "policybindings",
|
|
1132
|
+
"apiResource": "policybindings.krate.a5c.ai",
|
|
1133
|
+
"count": 0,
|
|
1134
|
+
"names": [],
|
|
1135
|
+
"items": [],
|
|
1136
|
+
"phases": {},
|
|
1137
|
+
"storage": "etcd",
|
|
1138
|
+
"yaml": null,
|
|
1139
|
+
"action": {
|
|
1140
|
+
"list": "Open PolicyBinding records in krate-org-default",
|
|
1141
|
+
"watch": "Watch PolicyBinding updates in krate-org-default",
|
|
1142
|
+
"apply": "Save resource changes",
|
|
1143
|
+
"delete": "Delete PolicyBinding in krate-org-default"
|
|
1144
|
+
}
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
"kind": "PolicyExceptionRequest",
|
|
1148
|
+
"plural": "policyexceptionrequests",
|
|
1149
|
+
"apiResource": "policyexceptionrequests.krate.a5c.ai",
|
|
1150
|
+
"count": 0,
|
|
1151
|
+
"names": [],
|
|
1152
|
+
"items": [],
|
|
1153
|
+
"phases": {},
|
|
1154
|
+
"storage": "etcd",
|
|
1155
|
+
"yaml": null,
|
|
1156
|
+
"action": {
|
|
1157
|
+
"list": "Open PolicyExceptionRequest records in krate-org-default",
|
|
1158
|
+
"watch": "Watch PolicyExceptionRequest updates in krate-org-default",
|
|
1159
|
+
"apply": "Save resource changes",
|
|
1160
|
+
"delete": "Delete PolicyExceptionRequest in krate-org-default"
|
|
1161
|
+
}
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
"kind": "WebhookSubscription",
|
|
1165
|
+
"plural": "webhooksubscriptions",
|
|
1166
|
+
"apiResource": "webhooksubscriptions.krate.a5c.ai",
|
|
1167
|
+
"count": 1,
|
|
1168
|
+
"names": [
|
|
1169
|
+
"chatops"
|
|
1170
|
+
],
|
|
1171
|
+
"items": [
|
|
1172
|
+
{
|
|
1173
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
1174
|
+
"kind": "WebhookSubscription",
|
|
1175
|
+
"metadata": {
|
|
1176
|
+
"namespace": "krate-org-default",
|
|
1177
|
+
"labels": {},
|
|
1178
|
+
"annotations": {},
|
|
1179
|
+
"name": "chatops",
|
|
1180
|
+
"resourceVersion": "1"
|
|
1181
|
+
},
|
|
1182
|
+
"spec": {
|
|
1183
|
+
"organizationRef": "default",
|
|
1184
|
+
"url": "https://hooks.example.test/krate",
|
|
1185
|
+
"events": [
|
|
1186
|
+
"pullrequest.created",
|
|
1187
|
+
"pullrequest.merged"
|
|
1188
|
+
],
|
|
1189
|
+
"signing": {
|
|
1190
|
+
"algorithm": "hmac-sha256",
|
|
1191
|
+
"secretRef": "chatops-secret"
|
|
1192
|
+
},
|
|
1193
|
+
"mode": "active"
|
|
1194
|
+
},
|
|
1195
|
+
"status": {
|
|
1196
|
+
"ready": true,
|
|
1197
|
+
"storage": "etcd"
|
|
1198
|
+
}
|
|
1199
|
+
}
|
|
1200
|
+
],
|
|
1201
|
+
"phases": {
|
|
1202
|
+
"Ready": 1
|
|
1203
|
+
},
|
|
1204
|
+
"storage": "etcd",
|
|
1205
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: WebhookSubscription\nmetadata:\n namespace: krate-org-default\n labels:\n annotations:\n name: chatops\n resourceVersion: 1\nspec:\n organizationRef: default\n url: https://hooks.example.test/krate\n events:\n - pullrequest.created\n - pullrequest.merged\n signing:\n algorithm: hmac-sha256\n secretRef: chatops-secret\n mode: active\nstatus:\n ready: true\n storage: etcd\n",
|
|
1206
|
+
"action": {
|
|
1207
|
+
"list": "Open WebhookSubscription records in krate-org-default",
|
|
1208
|
+
"watch": "Watch WebhookSubscription updates in krate-org-default",
|
|
1209
|
+
"apply": "Save resource changes",
|
|
1210
|
+
"delete": "Delete WebhookSubscription in krate-org-default"
|
|
1211
|
+
}
|
|
1212
|
+
},
|
|
1213
|
+
{
|
|
1214
|
+
"kind": "RunnerPool",
|
|
1215
|
+
"plural": "runnerpools",
|
|
1216
|
+
"apiResource": "runnerpools.krate.a5c.ai",
|
|
1217
|
+
"count": 1,
|
|
1218
|
+
"names": [
|
|
1219
|
+
"trusted-linux"
|
|
1220
|
+
],
|
|
1221
|
+
"items": [
|
|
1222
|
+
{
|
|
1223
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
1224
|
+
"kind": "RunnerPool",
|
|
1225
|
+
"metadata": {
|
|
1226
|
+
"namespace": "krate-org-default",
|
|
1227
|
+
"labels": {
|
|
1228
|
+
"trustTier": "trusted"
|
|
1229
|
+
},
|
|
1230
|
+
"annotations": {},
|
|
1231
|
+
"name": "trusted-linux",
|
|
1232
|
+
"resourceVersion": "1"
|
|
1233
|
+
},
|
|
1234
|
+
"spec": {
|
|
1235
|
+
"organizationRef": "default",
|
|
1236
|
+
"image": "ubuntu:24.04",
|
|
1237
|
+
"warmReplicas": 1,
|
|
1238
|
+
"maxReplicas": 4,
|
|
1239
|
+
"trustTier": "trusted",
|
|
1240
|
+
"cache": {
|
|
1241
|
+
"type": "object-storage"
|
|
1242
|
+
},
|
|
1243
|
+
"scalingMetric": "queueDepth"
|
|
1244
|
+
},
|
|
1245
|
+
"status": {
|
|
1246
|
+
"readyReplicas": 1,
|
|
1247
|
+
"queueDepth": 0,
|
|
1248
|
+
"storage": "etcd"
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
],
|
|
1252
|
+
"phases": {
|
|
1253
|
+
"Unspecified": 1
|
|
1254
|
+
},
|
|
1255
|
+
"storage": "etcd",
|
|
1256
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: RunnerPool\nmetadata:\n namespace: krate-org-default\n labels:\n trustTier: trusted\n annotations:\n name: trusted-linux\n resourceVersion: 1\nspec:\n organizationRef: default\n image: ubuntu:24.04\n warmReplicas: 1\n maxReplicas: 4\n trustTier: trusted\n cache:\n type: object-storage\n scalingMetric: queueDepth\nstatus:\n readyReplicas: 1\n queueDepth: 0\n storage: etcd\n",
|
|
1257
|
+
"action": {
|
|
1258
|
+
"list": "Open RunnerPool records in krate-org-default",
|
|
1259
|
+
"watch": "Watch RunnerPool updates in krate-org-default",
|
|
1260
|
+
"apply": "Save resource changes",
|
|
1261
|
+
"delete": "Delete RunnerPool in krate-org-default"
|
|
1262
|
+
}
|
|
1263
|
+
},
|
|
1264
|
+
{
|
|
1265
|
+
"kind": "PullRequest",
|
|
1266
|
+
"plural": "pullrequests",
|
|
1267
|
+
"apiResource": "pullrequests.krate.a5c.ai",
|
|
1268
|
+
"count": 0,
|
|
1269
|
+
"names": [],
|
|
1270
|
+
"items": [],
|
|
1271
|
+
"phases": {},
|
|
1272
|
+
"storage": "postgres",
|
|
1273
|
+
"yaml": null,
|
|
1274
|
+
"action": {
|
|
1275
|
+
"list": "Open PullRequest records in krate-org-default",
|
|
1276
|
+
"watch": "Watch PullRequest updates in krate-org-default",
|
|
1277
|
+
"apply": "Save resource changes",
|
|
1278
|
+
"delete": "Delete PullRequest in krate-org-default"
|
|
1279
|
+
}
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
"kind": "Issue",
|
|
1283
|
+
"plural": "issues",
|
|
1284
|
+
"apiResource": "issues.krate.a5c.ai",
|
|
1285
|
+
"count": 0,
|
|
1286
|
+
"names": [],
|
|
1287
|
+
"items": [],
|
|
1288
|
+
"phases": {},
|
|
1289
|
+
"storage": "postgres",
|
|
1290
|
+
"yaml": null,
|
|
1291
|
+
"action": {
|
|
1292
|
+
"list": "Open Issue records in krate-org-default",
|
|
1293
|
+
"watch": "Watch Issue updates in krate-org-default",
|
|
1294
|
+
"apply": "Save resource changes",
|
|
1295
|
+
"delete": "Delete Issue in krate-org-default"
|
|
1296
|
+
}
|
|
1297
|
+
},
|
|
1298
|
+
{
|
|
1299
|
+
"kind": "Review",
|
|
1300
|
+
"plural": "reviews",
|
|
1301
|
+
"apiResource": "reviews.krate.a5c.ai",
|
|
1302
|
+
"count": 0,
|
|
1303
|
+
"names": [],
|
|
1304
|
+
"items": [],
|
|
1305
|
+
"phases": {},
|
|
1306
|
+
"storage": "postgres",
|
|
1307
|
+
"yaml": null,
|
|
1308
|
+
"action": {
|
|
1309
|
+
"list": "Open Review records in krate-org-default",
|
|
1310
|
+
"watch": "Watch Review updates in krate-org-default",
|
|
1311
|
+
"apply": "Save resource changes",
|
|
1312
|
+
"delete": "Delete Review in krate-org-default"
|
|
1313
|
+
}
|
|
1314
|
+
},
|
|
1315
|
+
{
|
|
1316
|
+
"kind": "Pipeline",
|
|
1317
|
+
"plural": "pipelines",
|
|
1318
|
+
"apiResource": "pipelines.krate.a5c.ai",
|
|
1319
|
+
"count": 0,
|
|
1320
|
+
"names": [],
|
|
1321
|
+
"items": [],
|
|
1322
|
+
"phases": {},
|
|
1323
|
+
"storage": "postgres",
|
|
1324
|
+
"yaml": null,
|
|
1325
|
+
"action": {
|
|
1326
|
+
"list": "Open Pipeline records in krate-org-default",
|
|
1327
|
+
"watch": "Watch Pipeline updates in krate-org-default",
|
|
1328
|
+
"apply": "Save resource changes",
|
|
1329
|
+
"delete": "Delete Pipeline in krate-org-default"
|
|
1330
|
+
}
|
|
1331
|
+
},
|
|
1332
|
+
{
|
|
1333
|
+
"kind": "Job",
|
|
1334
|
+
"plural": "jobs",
|
|
1335
|
+
"apiResource": "jobs.krate.a5c.ai",
|
|
1336
|
+
"count": 0,
|
|
1337
|
+
"names": [],
|
|
1338
|
+
"items": [],
|
|
1339
|
+
"phases": {},
|
|
1340
|
+
"storage": "postgres",
|
|
1341
|
+
"yaml": null,
|
|
1342
|
+
"action": {
|
|
1343
|
+
"list": "Open Job records in krate-org-default",
|
|
1344
|
+
"watch": "Watch Job updates in krate-org-default",
|
|
1345
|
+
"apply": "Save resource changes",
|
|
1346
|
+
"delete": "Delete Job in krate-org-default"
|
|
1347
|
+
}
|
|
1348
|
+
},
|
|
1349
|
+
{
|
|
1350
|
+
"kind": "WebhookDelivery",
|
|
1351
|
+
"plural": "webhookdeliveries",
|
|
1352
|
+
"apiResource": "webhookdeliveries.krate.a5c.ai",
|
|
1353
|
+
"count": 0,
|
|
1354
|
+
"names": [],
|
|
1355
|
+
"items": [],
|
|
1356
|
+
"phases": {},
|
|
1357
|
+
"storage": "postgres",
|
|
1358
|
+
"yaml": null,
|
|
1359
|
+
"action": {
|
|
1360
|
+
"list": "Open WebhookDelivery records in krate-org-default",
|
|
1361
|
+
"watch": "Watch WebhookDelivery updates in krate-org-default",
|
|
1362
|
+
"apply": "Save resource changes",
|
|
1363
|
+
"delete": "Delete WebhookDelivery in krate-org-default"
|
|
1364
|
+
}
|
|
1365
|
+
},
|
|
1366
|
+
{
|
|
1367
|
+
"kind": "KubeVelaApplication",
|
|
1368
|
+
"plural": "applications",
|
|
1369
|
+
"apiResource": "applications.core.oam.dev",
|
|
1370
|
+
"count": 0,
|
|
1371
|
+
"names": [],
|
|
1372
|
+
"items": [],
|
|
1373
|
+
"phases": {},
|
|
1374
|
+
"storage": "kubevela",
|
|
1375
|
+
"yaml": null,
|
|
1376
|
+
"action": {
|
|
1377
|
+
"list": "Open KubeVelaApplication records in krate-org-default",
|
|
1378
|
+
"watch": "Watch KubeVelaApplication updates in krate-org-default",
|
|
1379
|
+
"apply": "Save resource changes",
|
|
1380
|
+
"delete": "Delete KubeVelaApplication in krate-org-default"
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1383
|
+
{
|
|
1384
|
+
"kind": "KubeVelaApplicationRevision",
|
|
1385
|
+
"plural": "applicationrevisions",
|
|
1386
|
+
"apiResource": "applicationrevisions.core.oam.dev",
|
|
1387
|
+
"count": 0,
|
|
1388
|
+
"names": [],
|
|
1389
|
+
"items": [],
|
|
1390
|
+
"phases": {},
|
|
1391
|
+
"storage": "kubevela",
|
|
1392
|
+
"yaml": null,
|
|
1393
|
+
"action": {
|
|
1394
|
+
"list": "Open KubeVelaApplicationRevision records in krate-org-default",
|
|
1395
|
+
"watch": "Watch KubeVelaApplicationRevision updates in krate-org-default",
|
|
1396
|
+
"apply": "Save resource changes",
|
|
1397
|
+
"delete": "Delete KubeVelaApplicationRevision in krate-org-default"
|
|
1398
|
+
}
|
|
1399
|
+
},
|
|
1400
|
+
{
|
|
1401
|
+
"kind": "KubeVelaComponentDefinition",
|
|
1402
|
+
"plural": "componentdefinitions",
|
|
1403
|
+
"apiResource": "componentdefinitions.core.oam.dev",
|
|
1404
|
+
"count": 0,
|
|
1405
|
+
"names": [],
|
|
1406
|
+
"items": [],
|
|
1407
|
+
"phases": {},
|
|
1408
|
+
"storage": "kubevela",
|
|
1409
|
+
"yaml": null,
|
|
1410
|
+
"action": {
|
|
1411
|
+
"list": "Open KubeVelaComponentDefinition records in krate-org-default",
|
|
1412
|
+
"watch": "Watch KubeVelaComponentDefinition updates in krate-org-default",
|
|
1413
|
+
"apply": "Save resource changes",
|
|
1414
|
+
"delete": "Delete KubeVelaComponentDefinition in krate-org-default"
|
|
1415
|
+
}
|
|
1416
|
+
},
|
|
1417
|
+
{
|
|
1418
|
+
"kind": "KubeVelaWorkloadDefinition",
|
|
1419
|
+
"plural": "workloaddefinitions",
|
|
1420
|
+
"apiResource": "workloaddefinitions.core.oam.dev",
|
|
1421
|
+
"count": 0,
|
|
1422
|
+
"names": [],
|
|
1423
|
+
"items": [],
|
|
1424
|
+
"phases": {},
|
|
1425
|
+
"storage": "kubevela",
|
|
1426
|
+
"yaml": null,
|
|
1427
|
+
"action": {
|
|
1428
|
+
"list": "Open KubeVelaWorkloadDefinition records in krate-org-default",
|
|
1429
|
+
"watch": "Watch KubeVelaWorkloadDefinition updates in krate-org-default",
|
|
1430
|
+
"apply": "Save resource changes",
|
|
1431
|
+
"delete": "Delete KubeVelaWorkloadDefinition in krate-org-default"
|
|
1432
|
+
}
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
"kind": "KubeVelaTraitDefinition",
|
|
1436
|
+
"plural": "traitdefinitions",
|
|
1437
|
+
"apiResource": "traitdefinitions.core.oam.dev",
|
|
1438
|
+
"count": 0,
|
|
1439
|
+
"names": [],
|
|
1440
|
+
"items": [],
|
|
1441
|
+
"phases": {},
|
|
1442
|
+
"storage": "kubevela",
|
|
1443
|
+
"yaml": null,
|
|
1444
|
+
"action": {
|
|
1445
|
+
"list": "Open KubeVelaTraitDefinition records in krate-org-default",
|
|
1446
|
+
"watch": "Watch KubeVelaTraitDefinition updates in krate-org-default",
|
|
1447
|
+
"apply": "Save resource changes",
|
|
1448
|
+
"delete": "Delete KubeVelaTraitDefinition in krate-org-default"
|
|
1449
|
+
}
|
|
1450
|
+
},
|
|
1451
|
+
{
|
|
1452
|
+
"kind": "KubeVelaScopeDefinition",
|
|
1453
|
+
"plural": "scopedefinitions",
|
|
1454
|
+
"apiResource": "scopedefinitions.core.oam.dev",
|
|
1455
|
+
"count": 0,
|
|
1456
|
+
"names": [],
|
|
1457
|
+
"items": [],
|
|
1458
|
+
"phases": {},
|
|
1459
|
+
"storage": "kubevela",
|
|
1460
|
+
"yaml": null,
|
|
1461
|
+
"action": {
|
|
1462
|
+
"list": "Open KubeVelaScopeDefinition records in krate-org-default",
|
|
1463
|
+
"watch": "Watch KubeVelaScopeDefinition updates in krate-org-default",
|
|
1464
|
+
"apply": "Save resource changes",
|
|
1465
|
+
"delete": "Delete KubeVelaScopeDefinition in krate-org-default"
|
|
1466
|
+
}
|
|
1467
|
+
},
|
|
1468
|
+
{
|
|
1469
|
+
"kind": "KubeVelaPolicyDefinition",
|
|
1470
|
+
"plural": "policydefinitions",
|
|
1471
|
+
"apiResource": "policydefinitions.core.oam.dev",
|
|
1472
|
+
"count": 0,
|
|
1473
|
+
"names": [],
|
|
1474
|
+
"items": [],
|
|
1475
|
+
"phases": {},
|
|
1476
|
+
"storage": "kubevela",
|
|
1477
|
+
"yaml": null,
|
|
1478
|
+
"action": {
|
|
1479
|
+
"list": "Open KubeVelaPolicyDefinition records in krate-org-default",
|
|
1480
|
+
"watch": "Watch KubeVelaPolicyDefinition updates in krate-org-default",
|
|
1481
|
+
"apply": "Save resource changes",
|
|
1482
|
+
"delete": "Delete KubeVelaPolicyDefinition in krate-org-default"
|
|
1483
|
+
}
|
|
1484
|
+
},
|
|
1485
|
+
{
|
|
1486
|
+
"kind": "KubeVelaPolicy",
|
|
1487
|
+
"plural": "policies",
|
|
1488
|
+
"apiResource": "policies.core.oam.dev",
|
|
1489
|
+
"count": 0,
|
|
1490
|
+
"names": [],
|
|
1491
|
+
"items": [],
|
|
1492
|
+
"phases": {},
|
|
1493
|
+
"storage": "kubevela",
|
|
1494
|
+
"yaml": null,
|
|
1495
|
+
"action": {
|
|
1496
|
+
"list": "Open KubeVelaPolicy records in krate-org-default",
|
|
1497
|
+
"watch": "Watch KubeVelaPolicy updates in krate-org-default",
|
|
1498
|
+
"apply": "Save resource changes",
|
|
1499
|
+
"delete": "Delete KubeVelaPolicy in krate-org-default"
|
|
1500
|
+
}
|
|
1501
|
+
},
|
|
1502
|
+
{
|
|
1503
|
+
"kind": "KubeVelaWorkflowStepDefinition",
|
|
1504
|
+
"plural": "workflowstepdefinitions",
|
|
1505
|
+
"apiResource": "workflowstepdefinitions.core.oam.dev",
|
|
1506
|
+
"count": 0,
|
|
1507
|
+
"names": [],
|
|
1508
|
+
"items": [],
|
|
1509
|
+
"phases": {},
|
|
1510
|
+
"storage": "kubevela",
|
|
1511
|
+
"yaml": null,
|
|
1512
|
+
"action": {
|
|
1513
|
+
"list": "Open KubeVelaWorkflowStepDefinition records in krate-org-default",
|
|
1514
|
+
"watch": "Watch KubeVelaWorkflowStepDefinition updates in krate-org-default",
|
|
1515
|
+
"apply": "Save resource changes",
|
|
1516
|
+
"delete": "Delete KubeVelaWorkflowStepDefinition in krate-org-default"
|
|
1517
|
+
}
|
|
1518
|
+
},
|
|
1519
|
+
{
|
|
1520
|
+
"kind": "KubeVelaWorkflow",
|
|
1521
|
+
"plural": "workflows",
|
|
1522
|
+
"apiResource": "workflows.core.oam.dev",
|
|
1523
|
+
"count": 0,
|
|
1524
|
+
"names": [],
|
|
1525
|
+
"items": [],
|
|
1526
|
+
"phases": {},
|
|
1527
|
+
"storage": "kubevela",
|
|
1528
|
+
"yaml": null,
|
|
1529
|
+
"action": {
|
|
1530
|
+
"list": "Open KubeVelaWorkflow records in krate-org-default",
|
|
1531
|
+
"watch": "Watch KubeVelaWorkflow updates in krate-org-default",
|
|
1532
|
+
"apply": "Save resource changes",
|
|
1533
|
+
"delete": "Delete KubeVelaWorkflow in krate-org-default"
|
|
1534
|
+
}
|
|
1535
|
+
},
|
|
1536
|
+
{
|
|
1537
|
+
"kind": "KubeVelaResourceTracker",
|
|
1538
|
+
"plural": "resourcetrackers",
|
|
1539
|
+
"apiResource": "resourcetrackers.core.oam.dev",
|
|
1540
|
+
"count": 0,
|
|
1541
|
+
"names": [],
|
|
1542
|
+
"items": [],
|
|
1543
|
+
"phases": {},
|
|
1544
|
+
"storage": "kubevela",
|
|
1545
|
+
"yaml": null,
|
|
1546
|
+
"action": {
|
|
1547
|
+
"list": "Open KubeVelaResourceTracker records in krate-org-default",
|
|
1548
|
+
"watch": "Watch KubeVelaResourceTracker updates in krate-org-default",
|
|
1549
|
+
"apply": "Save resource changes",
|
|
1550
|
+
"delete": "Delete KubeVelaResourceTracker in krate-org-default"
|
|
1551
|
+
}
|
|
1552
|
+
},
|
|
1553
|
+
{
|
|
1554
|
+
"kind": "View",
|
|
1555
|
+
"plural": "views",
|
|
1556
|
+
"apiResource": "views.krate.a5c.ai",
|
|
1557
|
+
"count": 0,
|
|
1558
|
+
"names": [],
|
|
1559
|
+
"items": [],
|
|
1560
|
+
"phases": {},
|
|
1561
|
+
"storage": "etcd",
|
|
1562
|
+
"yaml": null,
|
|
1563
|
+
"action": {
|
|
1564
|
+
"list": "Open View records in krate-org-default",
|
|
1565
|
+
"watch": "Watch View updates in krate-org-default",
|
|
1566
|
+
"apply": "Save resource changes",
|
|
1567
|
+
"delete": "Delete View in krate-org-default"
|
|
1568
|
+
}
|
|
1569
|
+
},
|
|
1570
|
+
{
|
|
1571
|
+
"kind": "Selector",
|
|
1572
|
+
"plural": "selectors",
|
|
1573
|
+
"apiResource": "selectors.krate.a5c.ai",
|
|
1574
|
+
"count": 0,
|
|
1575
|
+
"names": [],
|
|
1576
|
+
"items": [],
|
|
1577
|
+
"phases": {},
|
|
1578
|
+
"storage": "etcd",
|
|
1579
|
+
"yaml": null,
|
|
1580
|
+
"action": {
|
|
1581
|
+
"list": "Open Selector records in krate-org-default",
|
|
1582
|
+
"watch": "Watch Selector updates in krate-org-default",
|
|
1583
|
+
"apply": "Save resource changes",
|
|
1584
|
+
"delete": "Delete Selector in krate-org-default"
|
|
1585
|
+
}
|
|
1586
|
+
},
|
|
1587
|
+
{
|
|
1588
|
+
"kind": "AgentStack",
|
|
1589
|
+
"plural": "agentstacks",
|
|
1590
|
+
"apiResource": "agentstacks.krate.a5c.ai",
|
|
1591
|
+
"count": 0,
|
|
1592
|
+
"names": [],
|
|
1593
|
+
"items": [],
|
|
1594
|
+
"phases": {},
|
|
1595
|
+
"storage": "etcd",
|
|
1596
|
+
"yaml": null,
|
|
1597
|
+
"action": {
|
|
1598
|
+
"list": "Open AgentStack records in krate-org-default",
|
|
1599
|
+
"watch": "Watch AgentStack updates in krate-org-default",
|
|
1600
|
+
"apply": "Save resource changes",
|
|
1601
|
+
"delete": "Delete AgentStack in krate-org-default"
|
|
1602
|
+
}
|
|
1603
|
+
},
|
|
1604
|
+
{
|
|
1605
|
+
"kind": "AgentSubagent",
|
|
1606
|
+
"plural": "agentsubagents",
|
|
1607
|
+
"apiResource": "agentsubagents.krate.a5c.ai",
|
|
1608
|
+
"count": 0,
|
|
1609
|
+
"names": [],
|
|
1610
|
+
"items": [],
|
|
1611
|
+
"phases": {},
|
|
1612
|
+
"storage": "etcd",
|
|
1613
|
+
"yaml": null,
|
|
1614
|
+
"action": {
|
|
1615
|
+
"list": "Open AgentSubagent records in krate-org-default",
|
|
1616
|
+
"watch": "Watch AgentSubagent updates in krate-org-default",
|
|
1617
|
+
"apply": "Save resource changes",
|
|
1618
|
+
"delete": "Delete AgentSubagent in krate-org-default"
|
|
1619
|
+
}
|
|
1620
|
+
},
|
|
1621
|
+
{
|
|
1622
|
+
"kind": "AgentToolProfile",
|
|
1623
|
+
"plural": "agenttoolprofiles",
|
|
1624
|
+
"apiResource": "agenttoolprofiles.krate.a5c.ai",
|
|
1625
|
+
"count": 0,
|
|
1626
|
+
"names": [],
|
|
1627
|
+
"items": [],
|
|
1628
|
+
"phases": {},
|
|
1629
|
+
"storage": "etcd",
|
|
1630
|
+
"yaml": null,
|
|
1631
|
+
"action": {
|
|
1632
|
+
"list": "Open AgentToolProfile records in krate-org-default",
|
|
1633
|
+
"watch": "Watch AgentToolProfile updates in krate-org-default",
|
|
1634
|
+
"apply": "Save resource changes",
|
|
1635
|
+
"delete": "Delete AgentToolProfile in krate-org-default"
|
|
1636
|
+
}
|
|
1637
|
+
},
|
|
1638
|
+
{
|
|
1639
|
+
"kind": "AgentMcpServer",
|
|
1640
|
+
"plural": "agentmcpservers",
|
|
1641
|
+
"apiResource": "agentmcpservers.krate.a5c.ai",
|
|
1642
|
+
"count": 0,
|
|
1643
|
+
"names": [],
|
|
1644
|
+
"items": [],
|
|
1645
|
+
"phases": {},
|
|
1646
|
+
"storage": "etcd",
|
|
1647
|
+
"yaml": null,
|
|
1648
|
+
"action": {
|
|
1649
|
+
"list": "Open AgentMcpServer records in krate-org-default",
|
|
1650
|
+
"watch": "Watch AgentMcpServer updates in krate-org-default",
|
|
1651
|
+
"apply": "Save resource changes",
|
|
1652
|
+
"delete": "Delete AgentMcpServer in krate-org-default"
|
|
1653
|
+
}
|
|
1654
|
+
},
|
|
1655
|
+
{
|
|
1656
|
+
"kind": "AgentSkill",
|
|
1657
|
+
"plural": "agentskills",
|
|
1658
|
+
"apiResource": "agentskills.krate.a5c.ai",
|
|
1659
|
+
"count": 0,
|
|
1660
|
+
"names": [],
|
|
1661
|
+
"items": [],
|
|
1662
|
+
"phases": {},
|
|
1663
|
+
"storage": "etcd",
|
|
1664
|
+
"yaml": null,
|
|
1665
|
+
"action": {
|
|
1666
|
+
"list": "Open AgentSkill records in krate-org-default",
|
|
1667
|
+
"watch": "Watch AgentSkill updates in krate-org-default",
|
|
1668
|
+
"apply": "Save resource changes",
|
|
1669
|
+
"delete": "Delete AgentSkill in krate-org-default"
|
|
1670
|
+
}
|
|
1671
|
+
},
|
|
1672
|
+
{
|
|
1673
|
+
"kind": "AgentTriggerRule",
|
|
1674
|
+
"plural": "agenttriggerrules",
|
|
1675
|
+
"apiResource": "agenttriggerrules.krate.a5c.ai",
|
|
1676
|
+
"count": 0,
|
|
1677
|
+
"names": [],
|
|
1678
|
+
"items": [],
|
|
1679
|
+
"phases": {},
|
|
1680
|
+
"storage": "etcd",
|
|
1681
|
+
"yaml": null,
|
|
1682
|
+
"action": {
|
|
1683
|
+
"list": "Open AgentTriggerRule records in krate-org-default",
|
|
1684
|
+
"watch": "Watch AgentTriggerRule updates in krate-org-default",
|
|
1685
|
+
"apply": "Save resource changes",
|
|
1686
|
+
"delete": "Delete AgentTriggerRule in krate-org-default"
|
|
1687
|
+
}
|
|
1688
|
+
},
|
|
1689
|
+
{
|
|
1690
|
+
"kind": "AgentContextLabel",
|
|
1691
|
+
"plural": "agentcontextlabels",
|
|
1692
|
+
"apiResource": "agentcontextlabels.krate.a5c.ai",
|
|
1693
|
+
"count": 0,
|
|
1694
|
+
"names": [],
|
|
1695
|
+
"items": [],
|
|
1696
|
+
"phases": {},
|
|
1697
|
+
"storage": "etcd",
|
|
1698
|
+
"yaml": null,
|
|
1699
|
+
"action": {
|
|
1700
|
+
"list": "Open AgentContextLabel records in krate-org-default",
|
|
1701
|
+
"watch": "Watch AgentContextLabel updates in krate-org-default",
|
|
1702
|
+
"apply": "Save resource changes",
|
|
1703
|
+
"delete": "Delete AgentContextLabel in krate-org-default"
|
|
1704
|
+
}
|
|
1705
|
+
},
|
|
1706
|
+
{
|
|
1707
|
+
"kind": "KrateWorkspacePolicy",
|
|
1708
|
+
"plural": "krateworkspacepolicies",
|
|
1709
|
+
"apiResource": "krateworkspacepolicies.krate.a5c.ai",
|
|
1710
|
+
"count": 0,
|
|
1711
|
+
"names": [],
|
|
1712
|
+
"items": [],
|
|
1713
|
+
"phases": {},
|
|
1714
|
+
"storage": "etcd",
|
|
1715
|
+
"yaml": null,
|
|
1716
|
+
"action": {
|
|
1717
|
+
"list": "Open KrateWorkspacePolicy records in krate-org-default",
|
|
1718
|
+
"watch": "Watch KrateWorkspacePolicy updates in krate-org-default",
|
|
1719
|
+
"apply": "Save resource changes",
|
|
1720
|
+
"delete": "Delete KrateWorkspacePolicy in krate-org-default"
|
|
1721
|
+
}
|
|
1722
|
+
},
|
|
1723
|
+
{
|
|
1724
|
+
"kind": "AgentServiceAccount",
|
|
1725
|
+
"plural": "agentserviceaccounts",
|
|
1726
|
+
"apiResource": "agentserviceaccounts.krate.a5c.ai",
|
|
1727
|
+
"count": 0,
|
|
1728
|
+
"names": [],
|
|
1729
|
+
"items": [],
|
|
1730
|
+
"phases": {},
|
|
1731
|
+
"storage": "etcd",
|
|
1732
|
+
"yaml": null,
|
|
1733
|
+
"action": {
|
|
1734
|
+
"list": "Open AgentServiceAccount records in krate-org-default",
|
|
1735
|
+
"watch": "Watch AgentServiceAccount updates in krate-org-default",
|
|
1736
|
+
"apply": "Save resource changes",
|
|
1737
|
+
"delete": "Delete AgentServiceAccount in krate-org-default"
|
|
1738
|
+
}
|
|
1739
|
+
},
|
|
1740
|
+
{
|
|
1741
|
+
"kind": "AgentRoleBinding",
|
|
1742
|
+
"plural": "agentrolebindings",
|
|
1743
|
+
"apiResource": "agentrolebindings.krate.a5c.ai",
|
|
1744
|
+
"count": 0,
|
|
1745
|
+
"names": [],
|
|
1746
|
+
"items": [],
|
|
1747
|
+
"phases": {},
|
|
1748
|
+
"storage": "etcd",
|
|
1749
|
+
"yaml": null,
|
|
1750
|
+
"action": {
|
|
1751
|
+
"list": "Open AgentRoleBinding records in krate-org-default",
|
|
1752
|
+
"watch": "Watch AgentRoleBinding updates in krate-org-default",
|
|
1753
|
+
"apply": "Save resource changes",
|
|
1754
|
+
"delete": "Delete AgentRoleBinding in krate-org-default"
|
|
1755
|
+
}
|
|
1756
|
+
},
|
|
1757
|
+
{
|
|
1758
|
+
"kind": "AgentSecretGrant",
|
|
1759
|
+
"plural": "agentsecretgrants",
|
|
1760
|
+
"apiResource": "agentsecretgrants.krate.a5c.ai",
|
|
1761
|
+
"count": 0,
|
|
1762
|
+
"names": [],
|
|
1763
|
+
"items": [],
|
|
1764
|
+
"phases": {},
|
|
1765
|
+
"storage": "etcd",
|
|
1766
|
+
"yaml": null,
|
|
1767
|
+
"action": {
|
|
1768
|
+
"list": "Open AgentSecretGrant records in krate-org-default",
|
|
1769
|
+
"watch": "Watch AgentSecretGrant updates in krate-org-default",
|
|
1770
|
+
"apply": "Save resource changes",
|
|
1771
|
+
"delete": "Delete AgentSecretGrant in krate-org-default"
|
|
1772
|
+
}
|
|
1773
|
+
},
|
|
1774
|
+
{
|
|
1775
|
+
"kind": "AgentConfigGrant",
|
|
1776
|
+
"plural": "agentconfiggrants",
|
|
1777
|
+
"apiResource": "agentconfiggrants.krate.a5c.ai",
|
|
1778
|
+
"count": 0,
|
|
1779
|
+
"names": [],
|
|
1780
|
+
"items": [],
|
|
1781
|
+
"phases": {},
|
|
1782
|
+
"storage": "etcd",
|
|
1783
|
+
"yaml": null,
|
|
1784
|
+
"action": {
|
|
1785
|
+
"list": "Open AgentConfigGrant records in krate-org-default",
|
|
1786
|
+
"watch": "Watch AgentConfigGrant updates in krate-org-default",
|
|
1787
|
+
"apply": "Save resource changes",
|
|
1788
|
+
"delete": "Delete AgentConfigGrant in krate-org-default"
|
|
1789
|
+
}
|
|
1790
|
+
},
|
|
1791
|
+
{
|
|
1792
|
+
"kind": "AgentAdapter",
|
|
1793
|
+
"plural": "agentadapters",
|
|
1794
|
+
"apiResource": "agentadapters.krate.a5c.ai",
|
|
1795
|
+
"count": 0,
|
|
1796
|
+
"names": [],
|
|
1797
|
+
"items": [],
|
|
1798
|
+
"phases": {},
|
|
1799
|
+
"storage": "etcd",
|
|
1800
|
+
"yaml": null,
|
|
1801
|
+
"action": {
|
|
1802
|
+
"list": "Open AgentAdapter records in krate-org-default",
|
|
1803
|
+
"watch": "Watch AgentAdapter updates in krate-org-default",
|
|
1804
|
+
"apply": "Save resource changes",
|
|
1805
|
+
"delete": "Delete AgentAdapter in krate-org-default"
|
|
1806
|
+
}
|
|
1807
|
+
},
|
|
1808
|
+
{
|
|
1809
|
+
"kind": "AgentTransportBinding",
|
|
1810
|
+
"plural": "agenttransportbindings",
|
|
1811
|
+
"apiResource": "agenttransportbindings.krate.a5c.ai",
|
|
1812
|
+
"count": 0,
|
|
1813
|
+
"names": [],
|
|
1814
|
+
"items": [],
|
|
1815
|
+
"phases": {},
|
|
1816
|
+
"storage": "etcd",
|
|
1817
|
+
"yaml": null,
|
|
1818
|
+
"action": {
|
|
1819
|
+
"list": "Open AgentTransportBinding records in krate-org-default",
|
|
1820
|
+
"watch": "Watch AgentTransportBinding updates in krate-org-default",
|
|
1821
|
+
"apply": "Save resource changes",
|
|
1822
|
+
"delete": "Delete AgentTransportBinding in krate-org-default"
|
|
1823
|
+
}
|
|
1824
|
+
},
|
|
1825
|
+
{
|
|
1826
|
+
"kind": "AgentProviderConfig",
|
|
1827
|
+
"plural": "agentproviderconfigs",
|
|
1828
|
+
"apiResource": "agentproviderconfigs.krate.a5c.ai",
|
|
1829
|
+
"count": 0,
|
|
1830
|
+
"names": [],
|
|
1831
|
+
"items": [],
|
|
1832
|
+
"phases": {},
|
|
1833
|
+
"storage": "etcd",
|
|
1834
|
+
"yaml": null,
|
|
1835
|
+
"action": {
|
|
1836
|
+
"list": "Open AgentProviderConfig records in krate-org-default",
|
|
1837
|
+
"watch": "Watch AgentProviderConfig updates in krate-org-default",
|
|
1838
|
+
"apply": "Save resource changes",
|
|
1839
|
+
"delete": "Delete AgentProviderConfig in krate-org-default"
|
|
1840
|
+
}
|
|
1841
|
+
},
|
|
1842
|
+
{
|
|
1843
|
+
"kind": "KrateProject",
|
|
1844
|
+
"plural": "krateprojects",
|
|
1845
|
+
"apiResource": "krateprojects.krate.a5c.ai",
|
|
1846
|
+
"count": 0,
|
|
1847
|
+
"names": [],
|
|
1848
|
+
"items": [],
|
|
1849
|
+
"phases": {},
|
|
1850
|
+
"storage": "etcd",
|
|
1851
|
+
"yaml": null,
|
|
1852
|
+
"action": {
|
|
1853
|
+
"list": "Open KrateProject records in krate-org-default",
|
|
1854
|
+
"watch": "Watch KrateProject updates in krate-org-default",
|
|
1855
|
+
"apply": "Save resource changes",
|
|
1856
|
+
"delete": "Delete KrateProject in krate-org-default"
|
|
1857
|
+
}
|
|
1858
|
+
},
|
|
1859
|
+
{
|
|
1860
|
+
"kind": "AgentGatewayConfig",
|
|
1861
|
+
"plural": "agentgatewayconfigs",
|
|
1862
|
+
"apiResource": "agentgatewayconfigs.krate.a5c.ai",
|
|
1863
|
+
"count": 0,
|
|
1864
|
+
"names": [],
|
|
1865
|
+
"items": [],
|
|
1866
|
+
"phases": {},
|
|
1867
|
+
"storage": "etcd",
|
|
1868
|
+
"yaml": null,
|
|
1869
|
+
"action": {
|
|
1870
|
+
"list": "Open AgentGatewayConfig records in krate-org-default",
|
|
1871
|
+
"watch": "Watch AgentGatewayConfig updates in krate-org-default",
|
|
1872
|
+
"apply": "Save resource changes",
|
|
1873
|
+
"delete": "Delete AgentGatewayConfig in krate-org-default"
|
|
1874
|
+
}
|
|
1875
|
+
},
|
|
1876
|
+
{
|
|
1877
|
+
"kind": "AgentMemoryRepository",
|
|
1878
|
+
"plural": "agentmemoryrepositories",
|
|
1879
|
+
"apiResource": "agentmemoryrepositories.krate.a5c.ai",
|
|
1880
|
+
"count": 0,
|
|
1881
|
+
"names": [],
|
|
1882
|
+
"items": [],
|
|
1883
|
+
"phases": {},
|
|
1884
|
+
"storage": "etcd",
|
|
1885
|
+
"yaml": null,
|
|
1886
|
+
"action": {
|
|
1887
|
+
"list": "Open AgentMemoryRepository records in krate-org-default",
|
|
1888
|
+
"watch": "Watch AgentMemoryRepository updates in krate-org-default",
|
|
1889
|
+
"apply": "Save resource changes",
|
|
1890
|
+
"delete": "Delete AgentMemoryRepository in krate-org-default"
|
|
1891
|
+
}
|
|
1892
|
+
},
|
|
1893
|
+
{
|
|
1894
|
+
"kind": "AgentMemorySource",
|
|
1895
|
+
"plural": "agentmemorysources",
|
|
1896
|
+
"apiResource": "agentmemorysources.krate.a5c.ai",
|
|
1897
|
+
"count": 0,
|
|
1898
|
+
"names": [],
|
|
1899
|
+
"items": [],
|
|
1900
|
+
"phases": {},
|
|
1901
|
+
"storage": "etcd",
|
|
1902
|
+
"yaml": null,
|
|
1903
|
+
"action": {
|
|
1904
|
+
"list": "Open AgentMemorySource records in krate-org-default",
|
|
1905
|
+
"watch": "Watch AgentMemorySource updates in krate-org-default",
|
|
1906
|
+
"apply": "Save resource changes",
|
|
1907
|
+
"delete": "Delete AgentMemorySource in krate-org-default"
|
|
1908
|
+
}
|
|
1909
|
+
},
|
|
1910
|
+
{
|
|
1911
|
+
"kind": "AgentMemoryOntology",
|
|
1912
|
+
"plural": "agentmemoryontologies",
|
|
1913
|
+
"apiResource": "agentmemoryontologies.krate.a5c.ai",
|
|
1914
|
+
"count": 0,
|
|
1915
|
+
"names": [],
|
|
1916
|
+
"items": [],
|
|
1917
|
+
"phases": {},
|
|
1918
|
+
"storage": "etcd",
|
|
1919
|
+
"yaml": null,
|
|
1920
|
+
"action": {
|
|
1921
|
+
"list": "Open AgentMemoryOntology records in krate-org-default",
|
|
1922
|
+
"watch": "Watch AgentMemoryOntology updates in krate-org-default",
|
|
1923
|
+
"apply": "Save resource changes",
|
|
1924
|
+
"delete": "Delete AgentMemoryOntology in krate-org-default"
|
|
1925
|
+
}
|
|
1926
|
+
},
|
|
1927
|
+
{
|
|
1928
|
+
"kind": "AgentMemoryAssociation",
|
|
1929
|
+
"plural": "agentmemoryassociations",
|
|
1930
|
+
"apiResource": "agentmemoryassociations.krate.a5c.ai",
|
|
1931
|
+
"count": 0,
|
|
1932
|
+
"names": [],
|
|
1933
|
+
"items": [],
|
|
1934
|
+
"phases": {},
|
|
1935
|
+
"storage": "etcd",
|
|
1936
|
+
"yaml": null,
|
|
1937
|
+
"action": {
|
|
1938
|
+
"list": "Open AgentMemoryAssociation records in krate-org-default",
|
|
1939
|
+
"watch": "Watch AgentMemoryAssociation updates in krate-org-default",
|
|
1940
|
+
"apply": "Save resource changes",
|
|
1941
|
+
"delete": "Delete AgentMemoryAssociation in krate-org-default"
|
|
1942
|
+
}
|
|
1943
|
+
},
|
|
1944
|
+
{
|
|
1945
|
+
"kind": "AgentDispatchRun",
|
|
1946
|
+
"plural": "agentdispatchruns",
|
|
1947
|
+
"apiResource": "agentdispatchruns.krate.a5c.ai",
|
|
1948
|
+
"count": 0,
|
|
1949
|
+
"names": [],
|
|
1950
|
+
"items": [],
|
|
1951
|
+
"phases": {},
|
|
1952
|
+
"storage": "postgres",
|
|
1953
|
+
"yaml": null,
|
|
1954
|
+
"action": {
|
|
1955
|
+
"list": "Open AgentDispatchRun records in krate-org-default",
|
|
1956
|
+
"watch": "Watch AgentDispatchRun updates in krate-org-default",
|
|
1957
|
+
"apply": "Save resource changes",
|
|
1958
|
+
"delete": "Delete AgentDispatchRun in krate-org-default"
|
|
1959
|
+
}
|
|
1960
|
+
},
|
|
1961
|
+
{
|
|
1962
|
+
"kind": "AgentDispatchAttempt",
|
|
1963
|
+
"plural": "agentdispatchattempts",
|
|
1964
|
+
"apiResource": "agentdispatchattempts.krate.a5c.ai",
|
|
1965
|
+
"count": 0,
|
|
1966
|
+
"names": [],
|
|
1967
|
+
"items": [],
|
|
1968
|
+
"phases": {},
|
|
1969
|
+
"storage": "postgres",
|
|
1970
|
+
"yaml": null,
|
|
1971
|
+
"action": {
|
|
1972
|
+
"list": "Open AgentDispatchAttempt records in krate-org-default",
|
|
1973
|
+
"watch": "Watch AgentDispatchAttempt updates in krate-org-default",
|
|
1974
|
+
"apply": "Save resource changes",
|
|
1975
|
+
"delete": "Delete AgentDispatchAttempt in krate-org-default"
|
|
1976
|
+
}
|
|
1977
|
+
},
|
|
1978
|
+
{
|
|
1979
|
+
"kind": "AgentSession",
|
|
1980
|
+
"plural": "agentsessions",
|
|
1981
|
+
"apiResource": "agentsessions.krate.a5c.ai",
|
|
1982
|
+
"count": 0,
|
|
1983
|
+
"names": [],
|
|
1984
|
+
"items": [],
|
|
1985
|
+
"phases": {},
|
|
1986
|
+
"storage": "postgres",
|
|
1987
|
+
"yaml": null,
|
|
1988
|
+
"action": {
|
|
1989
|
+
"list": "Open AgentSession records in krate-org-default",
|
|
1990
|
+
"watch": "Watch AgentSession updates in krate-org-default",
|
|
1991
|
+
"apply": "Save resource changes",
|
|
1992
|
+
"delete": "Delete AgentSession in krate-org-default"
|
|
1993
|
+
}
|
|
1994
|
+
},
|
|
1995
|
+
{
|
|
1996
|
+
"kind": "AgentContextBundle",
|
|
1997
|
+
"plural": "agentcontextbundles",
|
|
1998
|
+
"apiResource": "agentcontextbundles.krate.a5c.ai",
|
|
1999
|
+
"count": 0,
|
|
2000
|
+
"names": [],
|
|
2001
|
+
"items": [],
|
|
2002
|
+
"phases": {},
|
|
2003
|
+
"storage": "postgres",
|
|
2004
|
+
"yaml": null,
|
|
2005
|
+
"action": {
|
|
2006
|
+
"list": "Open AgentContextBundle records in krate-org-default",
|
|
2007
|
+
"watch": "Watch AgentContextBundle updates in krate-org-default",
|
|
2008
|
+
"apply": "Save resource changes",
|
|
2009
|
+
"delete": "Delete AgentContextBundle in krate-org-default"
|
|
2010
|
+
}
|
|
2011
|
+
},
|
|
2012
|
+
{
|
|
2013
|
+
"kind": "KrateArtifact",
|
|
2014
|
+
"plural": "krateartifacts",
|
|
2015
|
+
"apiResource": "krateartifacts.krate.a5c.ai",
|
|
2016
|
+
"count": 0,
|
|
2017
|
+
"names": [],
|
|
2018
|
+
"items": [],
|
|
2019
|
+
"phases": {},
|
|
2020
|
+
"storage": "postgres",
|
|
2021
|
+
"yaml": null,
|
|
2022
|
+
"action": {
|
|
2023
|
+
"list": "Open KrateArtifact records in krate-org-default",
|
|
2024
|
+
"watch": "Watch KrateArtifact updates in krate-org-default",
|
|
2025
|
+
"apply": "Save resource changes",
|
|
2026
|
+
"delete": "Delete KrateArtifact in krate-org-default"
|
|
2027
|
+
}
|
|
2028
|
+
},
|
|
2029
|
+
{
|
|
2030
|
+
"kind": "AgentApproval",
|
|
2031
|
+
"plural": "agentapprovals",
|
|
2032
|
+
"apiResource": "agentapprovals.krate.a5c.ai",
|
|
2033
|
+
"count": 0,
|
|
2034
|
+
"names": [],
|
|
2035
|
+
"items": [],
|
|
2036
|
+
"phases": {},
|
|
2037
|
+
"storage": "postgres",
|
|
2038
|
+
"yaml": null,
|
|
2039
|
+
"action": {
|
|
2040
|
+
"list": "Open AgentApproval records in krate-org-default",
|
|
2041
|
+
"watch": "Watch AgentApproval updates in krate-org-default",
|
|
2042
|
+
"apply": "Save resource changes",
|
|
2043
|
+
"delete": "Delete AgentApproval in krate-org-default"
|
|
2044
|
+
}
|
|
2045
|
+
},
|
|
2046
|
+
{
|
|
2047
|
+
"kind": "KrateWorkspace",
|
|
2048
|
+
"plural": "krateworkspaces",
|
|
2049
|
+
"apiResource": "krateworkspaces.krate.a5c.ai",
|
|
2050
|
+
"count": 0,
|
|
2051
|
+
"names": [],
|
|
2052
|
+
"items": [],
|
|
2053
|
+
"phases": {},
|
|
2054
|
+
"storage": "postgres",
|
|
2055
|
+
"yaml": null,
|
|
2056
|
+
"action": {
|
|
2057
|
+
"list": "Open KrateWorkspace records in krate-org-default",
|
|
2058
|
+
"watch": "Watch KrateWorkspace updates in krate-org-default",
|
|
2059
|
+
"apply": "Save resource changes",
|
|
2060
|
+
"delete": "Delete KrateWorkspace in krate-org-default"
|
|
2061
|
+
}
|
|
2062
|
+
},
|
|
2063
|
+
{
|
|
2064
|
+
"kind": "AgentTriggerExecution",
|
|
2065
|
+
"plural": "agenttriggerexecutions",
|
|
2066
|
+
"apiResource": "agenttriggerexecutions.krate.a5c.ai",
|
|
2067
|
+
"count": 0,
|
|
2068
|
+
"names": [],
|
|
2069
|
+
"items": [],
|
|
2070
|
+
"phases": {},
|
|
2071
|
+
"storage": "postgres",
|
|
2072
|
+
"yaml": null,
|
|
2073
|
+
"action": {
|
|
2074
|
+
"list": "Open AgentTriggerExecution records in krate-org-default",
|
|
2075
|
+
"watch": "Watch AgentTriggerExecution updates in krate-org-default",
|
|
2076
|
+
"apply": "Save resource changes",
|
|
2077
|
+
"delete": "Delete AgentTriggerExecution in krate-org-default"
|
|
2078
|
+
}
|
|
2079
|
+
},
|
|
2080
|
+
{
|
|
2081
|
+
"kind": "KrateWorkspaceRuntime",
|
|
2082
|
+
"plural": "krateworkspaceruntimes",
|
|
2083
|
+
"apiResource": "krateworkspaceruntimes.krate.a5c.ai",
|
|
2084
|
+
"count": 0,
|
|
2085
|
+
"names": [],
|
|
2086
|
+
"items": [],
|
|
2087
|
+
"phases": {},
|
|
2088
|
+
"storage": "postgres",
|
|
2089
|
+
"yaml": null,
|
|
2090
|
+
"action": {
|
|
2091
|
+
"list": "Open KrateWorkspaceRuntime records in krate-org-default",
|
|
2092
|
+
"watch": "Watch KrateWorkspaceRuntime updates in krate-org-default",
|
|
2093
|
+
"apply": "Save resource changes",
|
|
2094
|
+
"delete": "Delete KrateWorkspaceRuntime in krate-org-default"
|
|
2095
|
+
}
|
|
2096
|
+
},
|
|
2097
|
+
{
|
|
2098
|
+
"kind": "AgentSessionTranscript",
|
|
2099
|
+
"plural": "agentsessiontranscripts",
|
|
2100
|
+
"apiResource": "agentsessiontranscripts.krate.a5c.ai",
|
|
2101
|
+
"count": 0,
|
|
2102
|
+
"names": [],
|
|
2103
|
+
"items": [],
|
|
2104
|
+
"phases": {},
|
|
2105
|
+
"storage": "postgres",
|
|
2106
|
+
"yaml": null,
|
|
2107
|
+
"action": {
|
|
2108
|
+
"list": "Open AgentSessionTranscript records in krate-org-default",
|
|
2109
|
+
"watch": "Watch AgentSessionTranscript updates in krate-org-default",
|
|
2110
|
+
"apply": "Save resource changes",
|
|
2111
|
+
"delete": "Delete AgentSessionTranscript in krate-org-default"
|
|
2112
|
+
}
|
|
2113
|
+
},
|
|
2114
|
+
{
|
|
2115
|
+
"kind": "ExternalBackendProvider",
|
|
2116
|
+
"plural": "externalbackendproviders",
|
|
2117
|
+
"apiResource": "externalbackendproviders.krate.a5c.ai",
|
|
2118
|
+
"count": 0,
|
|
2119
|
+
"names": [],
|
|
2120
|
+
"items": [],
|
|
2121
|
+
"phases": {},
|
|
2122
|
+
"storage": "etcd",
|
|
2123
|
+
"yaml": null,
|
|
2124
|
+
"action": {
|
|
2125
|
+
"list": "Open ExternalBackendProvider records in krate-org-default",
|
|
2126
|
+
"watch": "Watch ExternalBackendProvider updates in krate-org-default",
|
|
2127
|
+
"apply": "Save resource changes",
|
|
2128
|
+
"delete": "Delete ExternalBackendProvider in krate-org-default"
|
|
2129
|
+
}
|
|
2130
|
+
},
|
|
2131
|
+
{
|
|
2132
|
+
"kind": "ExternalBackendBinding",
|
|
2133
|
+
"plural": "externalbackendbindings",
|
|
2134
|
+
"apiResource": "externalbackendbindings.krate.a5c.ai",
|
|
2135
|
+
"count": 0,
|
|
2136
|
+
"names": [],
|
|
2137
|
+
"items": [],
|
|
2138
|
+
"phases": {},
|
|
2139
|
+
"storage": "etcd",
|
|
2140
|
+
"yaml": null,
|
|
2141
|
+
"action": {
|
|
2142
|
+
"list": "Open ExternalBackendBinding records in krate-org-default",
|
|
2143
|
+
"watch": "Watch ExternalBackendBinding updates in krate-org-default",
|
|
2144
|
+
"apply": "Save resource changes",
|
|
2145
|
+
"delete": "Delete ExternalBackendBinding in krate-org-default"
|
|
2146
|
+
}
|
|
2147
|
+
},
|
|
2148
|
+
{
|
|
2149
|
+
"kind": "ExternalBackendSyncPolicy",
|
|
2150
|
+
"plural": "externalbackendsyncpolicies",
|
|
2151
|
+
"apiResource": "externalbackendsyncpolicies.krate.a5c.ai",
|
|
2152
|
+
"count": 0,
|
|
2153
|
+
"names": [],
|
|
2154
|
+
"items": [],
|
|
2155
|
+
"phases": {},
|
|
2156
|
+
"storage": "etcd",
|
|
2157
|
+
"yaml": null,
|
|
2158
|
+
"action": {
|
|
2159
|
+
"list": "Open ExternalBackendSyncPolicy records in krate-org-default",
|
|
2160
|
+
"watch": "Watch ExternalBackendSyncPolicy updates in krate-org-default",
|
|
2161
|
+
"apply": "Save resource changes",
|
|
2162
|
+
"delete": "Delete ExternalBackendSyncPolicy in krate-org-default"
|
|
2163
|
+
}
|
|
2164
|
+
},
|
|
2165
|
+
{
|
|
2166
|
+
"kind": "Secret",
|
|
2167
|
+
"plural": "secrets",
|
|
2168
|
+
"apiResource": "secrets",
|
|
2169
|
+
"count": 0,
|
|
2170
|
+
"names": [],
|
|
2171
|
+
"items": [],
|
|
2172
|
+
"phases": {},
|
|
2173
|
+
"storage": "core",
|
|
2174
|
+
"yaml": null,
|
|
2175
|
+
"action": {
|
|
2176
|
+
"list": "Open Secret records in krate-org-default",
|
|
2177
|
+
"watch": "Watch Secret updates in krate-org-default",
|
|
2178
|
+
"apply": "Save resource changes",
|
|
2179
|
+
"delete": "Delete Secret in krate-org-default"
|
|
2180
|
+
}
|
|
2181
|
+
},
|
|
2182
|
+
{
|
|
2183
|
+
"kind": "ConfigMap",
|
|
2184
|
+
"plural": "configmaps",
|
|
2185
|
+
"apiResource": "configmaps",
|
|
2186
|
+
"count": 0,
|
|
2187
|
+
"names": [],
|
|
2188
|
+
"items": [],
|
|
2189
|
+
"phases": {},
|
|
2190
|
+
"storage": "core",
|
|
2191
|
+
"yaml": null,
|
|
2192
|
+
"action": {
|
|
2193
|
+
"list": "Open ConfigMap records in krate-org-default",
|
|
2194
|
+
"watch": "Watch ConfigMap updates in krate-org-default",
|
|
2195
|
+
"apply": "Save resource changes",
|
|
2196
|
+
"delete": "Delete ConfigMap in krate-org-default"
|
|
2197
|
+
}
|
|
2198
|
+
}
|
|
2199
|
+
],
|
|
2200
|
+
"events": [
|
|
2201
|
+
{
|
|
2202
|
+
"type": "create",
|
|
2203
|
+
"storage": "kubernetes",
|
|
2204
|
+
"actor": "kubernetes",
|
|
2205
|
+
"allowed": true,
|
|
2206
|
+
"message": ""
|
|
2207
|
+
},
|
|
2208
|
+
{
|
|
2209
|
+
"type": "create",
|
|
2210
|
+
"storage": "kubernetes",
|
|
2211
|
+
"actor": "kubernetes",
|
|
2212
|
+
"allowed": true,
|
|
2213
|
+
"message": ""
|
|
2214
|
+
},
|
|
2215
|
+
{
|
|
2216
|
+
"type": "create",
|
|
2217
|
+
"storage": "kubernetes",
|
|
2218
|
+
"actor": "kubernetes",
|
|
2219
|
+
"allowed": true,
|
|
2220
|
+
"message": ""
|
|
2221
|
+
},
|
|
2222
|
+
{
|
|
2223
|
+
"type": "create",
|
|
2224
|
+
"storage": "kubernetes",
|
|
2225
|
+
"actor": "kubernetes",
|
|
2226
|
+
"allowed": true,
|
|
2227
|
+
"message": ""
|
|
2228
|
+
},
|
|
2229
|
+
{
|
|
2230
|
+
"type": "create",
|
|
2231
|
+
"storage": "kubernetes",
|
|
2232
|
+
"actor": "kubernetes",
|
|
2233
|
+
"allowed": true,
|
|
2234
|
+
"message": ""
|
|
2235
|
+
},
|
|
2236
|
+
{
|
|
2237
|
+
"type": "create",
|
|
2238
|
+
"storage": "kubernetes",
|
|
2239
|
+
"actor": "kubernetes",
|
|
2240
|
+
"allowed": true,
|
|
2241
|
+
"message": ""
|
|
2242
|
+
},
|
|
2243
|
+
{
|
|
2244
|
+
"type": "create",
|
|
2245
|
+
"storage": "kubernetes",
|
|
2246
|
+
"actor": "kubernetes",
|
|
2247
|
+
"allowed": true,
|
|
2248
|
+
"message": ""
|
|
2249
|
+
},
|
|
2250
|
+
{
|
|
2251
|
+
"type": "create",
|
|
2252
|
+
"storage": "kubernetes",
|
|
2253
|
+
"actor": "kubernetes",
|
|
2254
|
+
"allowed": true,
|
|
2255
|
+
"message": ""
|
|
2256
|
+
}
|
|
2257
|
+
],
|
|
2258
|
+
"auditLog": [],
|
|
2259
|
+
"delivery": {
|
|
2260
|
+
"installed": false,
|
|
2261
|
+
"specVersion": "v0.3.0",
|
|
2262
|
+
"counts": {
|
|
2263
|
+
"applications": 0,
|
|
2264
|
+
"releases": 0,
|
|
2265
|
+
"components": 0,
|
|
2266
|
+
"workloads": 0,
|
|
2267
|
+
"traits": 0,
|
|
2268
|
+
"scopes": 0,
|
|
2269
|
+
"policyDefinitions": 0,
|
|
2270
|
+
"policies": 0,
|
|
2271
|
+
"automationSteps": 0,
|
|
2272
|
+
"automations": 0,
|
|
2273
|
+
"managedResources": 0
|
|
2274
|
+
},
|
|
2275
|
+
"capabilityCatalog": {
|
|
2276
|
+
"components": [],
|
|
2277
|
+
"workloads": [],
|
|
2278
|
+
"traits": [],
|
|
2279
|
+
"scopes": [],
|
|
2280
|
+
"policyDefinitions": [],
|
|
2281
|
+
"policies": [],
|
|
2282
|
+
"automationSteps": []
|
|
2283
|
+
},
|
|
2284
|
+
"applications": [],
|
|
2285
|
+
"runtime": {
|
|
2286
|
+
"releases": [],
|
|
2287
|
+
"automations": [],
|
|
2288
|
+
"policies": [],
|
|
2289
|
+
"managedResources": []
|
|
2290
|
+
}
|
|
2291
|
+
},
|
|
2292
|
+
"policyEngine": {
|
|
2293
|
+
"engine": "kyverno",
|
|
2294
|
+
"mode": "disabled",
|
|
2295
|
+
"health": "disabled",
|
|
2296
|
+
"detected": false,
|
|
2297
|
+
"namespace": "kyverno",
|
|
2298
|
+
"policyNamespace": "krate-org-default",
|
|
2299
|
+
"requireForEnforceMode": true,
|
|
2300
|
+
"org": "default",
|
|
2301
|
+
"profiles": [],
|
|
2302
|
+
"templates": [],
|
|
2303
|
+
"bindings": [],
|
|
2304
|
+
"exceptionRequests": [],
|
|
2305
|
+
"kyvernoResources": {},
|
|
2306
|
+
"controllers": [],
|
|
2307
|
+
"permissions": [],
|
|
2308
|
+
"reports": {
|
|
2309
|
+
"policyReports": 0,
|
|
2310
|
+
"clusterPolicyReports": 0,
|
|
2311
|
+
"results": []
|
|
2312
|
+
},
|
|
2313
|
+
"violations": [],
|
|
2314
|
+
"degraded": [],
|
|
2315
|
+
"emptyState": "Kyverno integration is disabled. Krate native RefPolicy and BranchProtection remain available."
|
|
2316
|
+
},
|
|
2317
|
+
"agents": {
|
|
2318
|
+
"org": "default",
|
|
2319
|
+
"stacks": {
|
|
2320
|
+
"count": 0,
|
|
2321
|
+
"items": []
|
|
2322
|
+
},
|
|
2323
|
+
"runs": {
|
|
2324
|
+
"count": 0,
|
|
2325
|
+
"items": [],
|
|
2326
|
+
"active": []
|
|
2327
|
+
},
|
|
2328
|
+
"rules": {
|
|
2329
|
+
"count": 0,
|
|
2330
|
+
"items": []
|
|
2331
|
+
},
|
|
2332
|
+
"sessions": {
|
|
2333
|
+
"count": 0,
|
|
2334
|
+
"items": []
|
|
2335
|
+
},
|
|
2336
|
+
"workspaces": {
|
|
2337
|
+
"count": 0,
|
|
2338
|
+
"items": []
|
|
2339
|
+
},
|
|
2340
|
+
"approvals": {
|
|
2341
|
+
"count": 0,
|
|
2342
|
+
"items": [],
|
|
2343
|
+
"pending": []
|
|
2344
|
+
},
|
|
2345
|
+
"adapters": {
|
|
2346
|
+
"count": 0,
|
|
2347
|
+
"items": []
|
|
2348
|
+
},
|
|
2349
|
+
"providers": {
|
|
2350
|
+
"count": 0,
|
|
2351
|
+
"items": []
|
|
2352
|
+
},
|
|
2353
|
+
"projects": {
|
|
2354
|
+
"count": 0,
|
|
2355
|
+
"items": []
|
|
2356
|
+
},
|
|
2357
|
+
"gateway": null,
|
|
2358
|
+
"transcripts": {
|
|
2359
|
+
"count": 0,
|
|
2360
|
+
"items": []
|
|
2361
|
+
},
|
|
2362
|
+
"memoryRepositories": {
|
|
2363
|
+
"count": 0,
|
|
2364
|
+
"items": []
|
|
2365
|
+
},
|
|
2366
|
+
"memorySnapshots": {
|
|
2367
|
+
"count": 0,
|
|
2368
|
+
"items": []
|
|
2369
|
+
},
|
|
2370
|
+
"memoryImports": {
|
|
2371
|
+
"count": 0,
|
|
2372
|
+
"items": [],
|
|
2373
|
+
"pending": []
|
|
2374
|
+
}
|
|
2375
|
+
},
|
|
2376
|
+
"identity": {
|
|
2377
|
+
"counts": {
|
|
2378
|
+
"users": 1,
|
|
2379
|
+
"teams": 1,
|
|
2380
|
+
"pendingInvites": 1,
|
|
2381
|
+
"mappings": 1,
|
|
2382
|
+
"repositoryGrants": 0,
|
|
2383
|
+
"sshKeys": 0
|
|
2384
|
+
},
|
|
2385
|
+
"providers": [
|
|
2386
|
+
{
|
|
2387
|
+
"name": "github",
|
|
2388
|
+
"label": "GitHub",
|
|
2389
|
+
"type": "github",
|
|
2390
|
+
"enabled": true,
|
|
2391
|
+
"phase": "Configured"
|
|
2392
|
+
},
|
|
2393
|
+
{
|
|
2394
|
+
"name": "sso",
|
|
2395
|
+
"label": "Workspace SSO",
|
|
2396
|
+
"type": "oidc",
|
|
2397
|
+
"enabled": false,
|
|
2398
|
+
"phase": "Disabled"
|
|
2399
|
+
}
|
|
2400
|
+
],
|
|
2401
|
+
"users": [
|
|
2402
|
+
{
|
|
2403
|
+
"name": "admin",
|
|
2404
|
+
"displayName": "Admin",
|
|
2405
|
+
"email": "admin@example.com",
|
|
2406
|
+
"teams": [
|
|
2407
|
+
"maintainers"
|
|
2408
|
+
],
|
|
2409
|
+
"admin": true,
|
|
2410
|
+
"disabled": false,
|
|
2411
|
+
"phase": "Active"
|
|
2412
|
+
}
|
|
2413
|
+
],
|
|
2414
|
+
"teams": [
|
|
2415
|
+
{
|
|
2416
|
+
"name": "maintainers",
|
|
2417
|
+
"displayName": "Maintainers",
|
|
2418
|
+
"members": [
|
|
2419
|
+
"admin"
|
|
2420
|
+
],
|
|
2421
|
+
"maintainers": [
|
|
2422
|
+
"admin"
|
|
2423
|
+
],
|
|
2424
|
+
"repositoryGrants": [
|
|
2425
|
+
{
|
|
2426
|
+
"repository": "krate-demo",
|
|
2427
|
+
"permission": "admin"
|
|
2428
|
+
}
|
|
2429
|
+
]
|
|
2430
|
+
}
|
|
2431
|
+
],
|
|
2432
|
+
"invites": [
|
|
2433
|
+
{
|
|
2434
|
+
"name": "new-user-example-com",
|
|
2435
|
+
"email": "new-user@example.com",
|
|
2436
|
+
"role": "member",
|
|
2437
|
+
"teams": [
|
|
2438
|
+
"maintainers"
|
|
2439
|
+
],
|
|
2440
|
+
"phase": "Pending",
|
|
2441
|
+
"expiresAt": "2026-05-22T07:01:42.277Z"
|
|
2442
|
+
}
|
|
2443
|
+
],
|
|
2444
|
+
"mappings": [
|
|
2445
|
+
{
|
|
2446
|
+
"name": "sso-admin",
|
|
2447
|
+
"user": "admin",
|
|
2448
|
+
"provider": "sso",
|
|
2449
|
+
"workspaceIdentity": "admin@example.com",
|
|
2450
|
+
"repositoryIdentity": "admin",
|
|
2451
|
+
"phase": "Synced"
|
|
2452
|
+
}
|
|
2453
|
+
],
|
|
2454
|
+
"permissions": [],
|
|
2455
|
+
"sshKeys": [],
|
|
2456
|
+
"reconciliation": {
|
|
2457
|
+
"counts": {
|
|
2458
|
+
"User": 1,
|
|
2459
|
+
"Team": 1,
|
|
2460
|
+
"Invite": 1,
|
|
2461
|
+
"IdentityMapping": 1
|
|
2462
|
+
},
|
|
2463
|
+
"phases": {
|
|
2464
|
+
"Active": 2,
|
|
2465
|
+
"Pending": 1,
|
|
2466
|
+
"Synced": 1
|
|
2467
|
+
},
|
|
2468
|
+
"statuses": [
|
|
2469
|
+
{
|
|
2470
|
+
"kind": "User",
|
|
2471
|
+
"name": "admin",
|
|
2472
|
+
"phase": "Active",
|
|
2473
|
+
"checks": [
|
|
2474
|
+
"User Observed: ready",
|
|
2475
|
+
"Workspace Identity Projected: ready",
|
|
2476
|
+
"Repository Identity Projected: ready"
|
|
2477
|
+
]
|
|
2478
|
+
},
|
|
2479
|
+
{
|
|
2480
|
+
"kind": "Team",
|
|
2481
|
+
"name": "maintainers",
|
|
2482
|
+
"phase": "Active",
|
|
2483
|
+
"checks": [
|
|
2484
|
+
"Team Observed: ready",
|
|
2485
|
+
"Team Membership Projected: ready",
|
|
2486
|
+
"Repository Grants Projected: ready"
|
|
2487
|
+
]
|
|
2488
|
+
},
|
|
2489
|
+
{
|
|
2490
|
+
"kind": "Invite",
|
|
2491
|
+
"name": "new-user-example-com",
|
|
2492
|
+
"phase": "Pending",
|
|
2493
|
+
"checks": [
|
|
2494
|
+
"Invite Observed: ready",
|
|
2495
|
+
"Invite Lifecycle Tracked: ready"
|
|
2496
|
+
]
|
|
2497
|
+
},
|
|
2498
|
+
{
|
|
2499
|
+
"kind": "IdentityMapping",
|
|
2500
|
+
"name": "sso-admin",
|
|
2501
|
+
"phase": "Synced",
|
|
2502
|
+
"checks": [
|
|
2503
|
+
"Identity Mapping Observed: ready",
|
|
2504
|
+
"Workspace Identity Projected: ready",
|
|
2505
|
+
"Repository Identity Projected: ready"
|
|
2506
|
+
]
|
|
2507
|
+
}
|
|
2508
|
+
],
|
|
2509
|
+
"nextActions": [
|
|
2510
|
+
"ensure user: admin",
|
|
2511
|
+
"ensure repository user: admin",
|
|
2512
|
+
"sync team membership: maintainers",
|
|
2513
|
+
"sync team repository grant: maintainers",
|
|
2514
|
+
"send invite: workspace access",
|
|
2515
|
+
"link identity: admin",
|
|
2516
|
+
"link repository identity: admin"
|
|
2517
|
+
]
|
|
2518
|
+
},
|
|
2519
|
+
"org": "default"
|
|
2520
|
+
},
|
|
2521
|
+
"validation": [
|
|
2522
|
+
{
|
|
2523
|
+
"name": "Krate workspace is connected",
|
|
2524
|
+
"passed": false,
|
|
2525
|
+
"evidence": "runtime snapshot supplied outside the Krate workspace path"
|
|
2526
|
+
},
|
|
2527
|
+
{
|
|
2528
|
+
"name": "Krate API surface is discoverable",
|
|
2529
|
+
"passed": true,
|
|
2530
|
+
"evidence": "0 Krate resources discovered"
|
|
2531
|
+
},
|
|
2532
|
+
{
|
|
2533
|
+
"name": "Repository management uses org-scoped Krate actions",
|
|
2534
|
+
"passed": true,
|
|
2535
|
+
"evidence": "/api/orgs/:org/repositories and /api/orgs/:org/resources call src/kubernetes-controller.js"
|
|
2536
|
+
},
|
|
2537
|
+
{
|
|
2538
|
+
"name": "Krate API is separated from delivery execution",
|
|
2539
|
+
"passed": true,
|
|
2540
|
+
"evidence": "src/api-controller.js delegates resource operations through the Krate gateway"
|
|
2541
|
+
},
|
|
2542
|
+
{
|
|
2543
|
+
"name": "Live streams use Krate watch",
|
|
2544
|
+
"passed": true,
|
|
2545
|
+
"evidence": "/api/watch/orgs/:org/* uses Krate live updates"
|
|
2546
|
+
},
|
|
2547
|
+
{
|
|
2548
|
+
"name": "UI renders live and empty states without demo data",
|
|
2549
|
+
"passed": true,
|
|
2550
|
+
"evidence": "apps/web Server Components consume fetchControllerUiModel() only"
|
|
2551
|
+
}
|
|
2552
|
+
],
|
|
2553
|
+
"permissions": [],
|
|
2554
|
+
"views": {
|
|
2555
|
+
"dashboard": {
|
|
2556
|
+
"repositories": [
|
|
2557
|
+
{
|
|
2558
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
2559
|
+
"kind": "Repository",
|
|
2560
|
+
"metadata": {
|
|
2561
|
+
"namespace": "krate-org-default",
|
|
2562
|
+
"labels": {
|
|
2563
|
+
"gitBackend": "gitea"
|
|
2564
|
+
},
|
|
2565
|
+
"annotations": {},
|
|
2566
|
+
"name": "krate-demo",
|
|
2567
|
+
"resourceVersion": "1"
|
|
2568
|
+
},
|
|
2569
|
+
"spec": {
|
|
2570
|
+
"organizationRef": "default",
|
|
2571
|
+
"visibility": "private",
|
|
2572
|
+
"gitHosting": {
|
|
2573
|
+
"backend": "gitea",
|
|
2574
|
+
"owner": "krate",
|
|
2575
|
+
"repository": "krate-demo",
|
|
2576
|
+
"branch": "main",
|
|
2577
|
+
"httpUrl": "http://krate-gitea-http:3000/krate/krate-demo.git",
|
|
2578
|
+
"sshUrl": "ssh://git@krate-gitea-ssh/krate/krate-demo.git",
|
|
2579
|
+
"deployKeyTitle": "krate-argocd",
|
|
2580
|
+
"organization": {
|
|
2581
|
+
"kind": "Organization",
|
|
2582
|
+
"name": "krate",
|
|
2583
|
+
"delegatedTo": "Gitea /api/v1/orgs"
|
|
2584
|
+
},
|
|
2585
|
+
"sshKeys": {
|
|
2586
|
+
"kind": "SSHKey",
|
|
2587
|
+
"scopes": [
|
|
2588
|
+
"user",
|
|
2589
|
+
"deploy",
|
|
2590
|
+
"argocd"
|
|
2591
|
+
],
|
|
2592
|
+
"delegatedTo": "Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys"
|
|
2593
|
+
},
|
|
2594
|
+
"permissions": {
|
|
2595
|
+
"kind": "RepositoryPermission",
|
|
2596
|
+
"defaultCollaborator": "write",
|
|
2597
|
+
"adminTeam": "maintainers",
|
|
2598
|
+
"delegatedTo": "Gitea collaborators and team repository APIs"
|
|
2599
|
+
},
|
|
2600
|
+
"forgeRecords": {
|
|
2601
|
+
"issues": "Gitea /repos/{owner}/{repo}/issues",
|
|
2602
|
+
"pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
|
|
2603
|
+
},
|
|
2604
|
+
"webhookUrl": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo",
|
|
2605
|
+
"integrationPlan": {
|
|
2606
|
+
"backend": "gitea",
|
|
2607
|
+
"operations": [
|
|
2608
|
+
{
|
|
2609
|
+
"action": "createOrganization",
|
|
2610
|
+
"owner": "krate"
|
|
2611
|
+
},
|
|
2612
|
+
{
|
|
2613
|
+
"action": "createRepository",
|
|
2614
|
+
"owner": "krate",
|
|
2615
|
+
"repo": "krate-demo"
|
|
2616
|
+
},
|
|
2617
|
+
{
|
|
2618
|
+
"action": "ensureUserMappings",
|
|
2619
|
+
"owner": "krate"
|
|
2620
|
+
},
|
|
2621
|
+
{
|
|
2622
|
+
"action": "addDeployKey",
|
|
2623
|
+
"owner": "krate",
|
|
2624
|
+
"repo": "krate-demo",
|
|
2625
|
+
"title": "krate-argocd",
|
|
2626
|
+
"readOnly": false
|
|
2627
|
+
},
|
|
2628
|
+
{
|
|
2629
|
+
"action": "addUserSshKey",
|
|
2630
|
+
"owner": "krate",
|
|
2631
|
+
"repo": "krate-demo",
|
|
2632
|
+
"title": "developer key"
|
|
2633
|
+
},
|
|
2634
|
+
{
|
|
2635
|
+
"action": "addCollaborator",
|
|
2636
|
+
"owner": "krate",
|
|
2637
|
+
"repo": "krate-demo",
|
|
2638
|
+
"permission": "write"
|
|
2639
|
+
},
|
|
2640
|
+
{
|
|
2641
|
+
"action": "addTeamRepository",
|
|
2642
|
+
"owner": "krate",
|
|
2643
|
+
"repo": "krate-demo",
|
|
2644
|
+
"team": "maintainers",
|
|
2645
|
+
"permission": "admin"
|
|
2646
|
+
},
|
|
2647
|
+
{
|
|
2648
|
+
"action": "protectBranch",
|
|
2649
|
+
"owner": "krate",
|
|
2650
|
+
"repo": "krate-demo",
|
|
2651
|
+
"branch": "main"
|
|
2652
|
+
},
|
|
2653
|
+
{
|
|
2654
|
+
"action": "createWebhook",
|
|
2655
|
+
"owner": "krate",
|
|
2656
|
+
"repo": "krate-demo",
|
|
2657
|
+
"url": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo"
|
|
2658
|
+
}
|
|
2659
|
+
]
|
|
2660
|
+
}
|
|
2661
|
+
},
|
|
2662
|
+
"storage": {
|
|
2663
|
+
"mode": "gitea",
|
|
2664
|
+
"persistentVolumeClaim": "krate-gitea-data",
|
|
2665
|
+
"owner": "krate",
|
|
2666
|
+
"repository": "krate-demo",
|
|
2667
|
+
"httpUrl": "http://krate-gitea-http:3000/krate/krate-demo.git",
|
|
2668
|
+
"sshUrl": "ssh://git@krate-gitea-ssh/krate/krate-demo.git"
|
|
2669
|
+
},
|
|
2670
|
+
"objectStorage": {
|
|
2671
|
+
"lfs": true,
|
|
2672
|
+
"artifacts": true
|
|
2673
|
+
},
|
|
2674
|
+
"search": {
|
|
2675
|
+
"provider": "zoekt",
|
|
2676
|
+
"enabled": false
|
|
2677
|
+
}
|
|
2678
|
+
},
|
|
2679
|
+
"status": {
|
|
2680
|
+
"ready": true,
|
|
2681
|
+
"route": {
|
|
2682
|
+
"repositoryName": "krate-demo",
|
|
2683
|
+
"backend": "gitea",
|
|
2684
|
+
"owner": "krate",
|
|
2685
|
+
"store": "gitea-primary",
|
|
2686
|
+
"receivePackReady": true,
|
|
2687
|
+
"httpUrl": "http://krate-gitea-http:3000/krate/krate-demo.git",
|
|
2688
|
+
"sshUrl": "ssh://git@krate-gitea-ssh/krate/krate-demo.git"
|
|
2689
|
+
},
|
|
2690
|
+
"gitHosting": {
|
|
2691
|
+
"backend": "gitea",
|
|
2692
|
+
"httpUrl": "http://krate-gitea-http:3000/krate/krate-demo.git",
|
|
2693
|
+
"sshUrl": "ssh://git@krate-gitea-ssh/krate/krate-demo.git",
|
|
2694
|
+
"integrationPlan": {
|
|
2695
|
+
"backend": "gitea",
|
|
2696
|
+
"operations": [
|
|
2697
|
+
{
|
|
2698
|
+
"action": "createOrganization",
|
|
2699
|
+
"owner": "krate"
|
|
2700
|
+
},
|
|
2701
|
+
{
|
|
2702
|
+
"action": "createRepository",
|
|
2703
|
+
"owner": "krate",
|
|
2704
|
+
"repo": "krate-demo"
|
|
2705
|
+
},
|
|
2706
|
+
{
|
|
2707
|
+
"action": "ensureUserMappings",
|
|
2708
|
+
"owner": "krate"
|
|
2709
|
+
},
|
|
2710
|
+
{
|
|
2711
|
+
"action": "addDeployKey",
|
|
2712
|
+
"owner": "krate",
|
|
2713
|
+
"repo": "krate-demo",
|
|
2714
|
+
"title": "krate-argocd",
|
|
2715
|
+
"readOnly": false
|
|
2716
|
+
},
|
|
2717
|
+
{
|
|
2718
|
+
"action": "addUserSshKey",
|
|
2719
|
+
"owner": "krate",
|
|
2720
|
+
"repo": "krate-demo",
|
|
2721
|
+
"title": "developer key"
|
|
2722
|
+
},
|
|
2723
|
+
{
|
|
2724
|
+
"action": "addCollaborator",
|
|
2725
|
+
"owner": "krate",
|
|
2726
|
+
"repo": "krate-demo",
|
|
2727
|
+
"permission": "write"
|
|
2728
|
+
},
|
|
2729
|
+
{
|
|
2730
|
+
"action": "addTeamRepository",
|
|
2731
|
+
"owner": "krate",
|
|
2732
|
+
"repo": "krate-demo",
|
|
2733
|
+
"team": "maintainers",
|
|
2734
|
+
"permission": "admin"
|
|
2735
|
+
},
|
|
2736
|
+
{
|
|
2737
|
+
"action": "protectBranch",
|
|
2738
|
+
"owner": "krate",
|
|
2739
|
+
"repo": "krate-demo",
|
|
2740
|
+
"branch": "main"
|
|
2741
|
+
},
|
|
2742
|
+
{
|
|
2743
|
+
"action": "createWebhook",
|
|
2744
|
+
"owner": "krate",
|
|
2745
|
+
"repo": "krate-demo",
|
|
2746
|
+
"url": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo"
|
|
2747
|
+
}
|
|
2748
|
+
]
|
|
2749
|
+
}
|
|
2750
|
+
},
|
|
2751
|
+
"storage": "etcd"
|
|
2752
|
+
}
|
|
2753
|
+
}
|
|
2754
|
+
],
|
|
2755
|
+
"excellentFlows": [
|
|
2756
|
+
"Create or import a repository",
|
|
2757
|
+
"Browse code and copy clone commands",
|
|
2758
|
+
"Review and merge a pull request",
|
|
2759
|
+
"Debug a failing pipeline run",
|
|
2760
|
+
"Edit runner pool capacity",
|
|
2761
|
+
"Inspect and replay webhook deliveries",
|
|
2762
|
+
"Save a triage View"
|
|
2763
|
+
],
|
|
2764
|
+
"cards": [
|
|
2765
|
+
{
|
|
2766
|
+
"label": "Repositories",
|
|
2767
|
+
"value": 1,
|
|
2768
|
+
"href": "/repositories"
|
|
2769
|
+
},
|
|
2770
|
+
{
|
|
2771
|
+
"label": "Pull requests",
|
|
2772
|
+
"value": 0,
|
|
2773
|
+
"href": "/inbox"
|
|
2774
|
+
},
|
|
2775
|
+
{
|
|
2776
|
+
"label": "Runs",
|
|
2777
|
+
"value": 0,
|
|
2778
|
+
"href": "/runs"
|
|
2779
|
+
},
|
|
2780
|
+
{
|
|
2781
|
+
"label": "Runner pools",
|
|
2782
|
+
"value": 1,
|
|
2783
|
+
"href": "/runners-ci"
|
|
2784
|
+
},
|
|
2785
|
+
{
|
|
2786
|
+
"label": "Webhook deliveries",
|
|
2787
|
+
"value": 0,
|
|
2788
|
+
"href": "/hooks-events"
|
|
2789
|
+
}
|
|
2790
|
+
]
|
|
2791
|
+
},
|
|
2792
|
+
"pullRequestReview": null,
|
|
2793
|
+
"failingRun": null,
|
|
2794
|
+
"runnerPoolEditor": {
|
|
2795
|
+
"resource": {
|
|
2796
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
2797
|
+
"kind": "RunnerPool",
|
|
2798
|
+
"metadata": {
|
|
2799
|
+
"namespace": "krate-org-default",
|
|
2800
|
+
"labels": {
|
|
2801
|
+
"trustTier": "trusted"
|
|
2802
|
+
},
|
|
2803
|
+
"annotations": {},
|
|
2804
|
+
"name": "trusted-linux",
|
|
2805
|
+
"resourceVersion": "1"
|
|
2806
|
+
},
|
|
2807
|
+
"spec": {
|
|
2808
|
+
"organizationRef": "default",
|
|
2809
|
+
"image": "ubuntu:24.04",
|
|
2810
|
+
"warmReplicas": 1,
|
|
2811
|
+
"maxReplicas": 4,
|
|
2812
|
+
"trustTier": "trusted",
|
|
2813
|
+
"cache": {
|
|
2814
|
+
"type": "object-storage"
|
|
2815
|
+
},
|
|
2816
|
+
"scalingMetric": "queueDepth"
|
|
2817
|
+
},
|
|
2818
|
+
"status": {
|
|
2819
|
+
"readyReplicas": 1,
|
|
2820
|
+
"queueDepth": 0,
|
|
2821
|
+
"storage": "etcd"
|
|
2822
|
+
}
|
|
2823
|
+
},
|
|
2824
|
+
"fields": [
|
|
2825
|
+
"image",
|
|
2826
|
+
"resources",
|
|
2827
|
+
"warmReplicas",
|
|
2828
|
+
"maxReplicas",
|
|
2829
|
+
"trustTier",
|
|
2830
|
+
"cache"
|
|
2831
|
+
],
|
|
2832
|
+
"saveModes": [
|
|
2833
|
+
"save capacity",
|
|
2834
|
+
"open review"
|
|
2835
|
+
],
|
|
2836
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: RunnerPool\nmetadata:\n namespace: krate-org-default\n labels:\n trustTier: trusted\n annotations:\n name: trusted-linux\n resourceVersion: 1\nspec:\n organizationRef: default\n image: ubuntu:24.04\n warmReplicas: 1\n maxReplicas: 4\n trustTier: trusted\n cache:\n type: object-storage\n scalingMetric: queueDepth\nstatus:\n readyReplicas: 1\n queueDepth: 0\n storage: etcd\n"
|
|
2837
|
+
},
|
|
2838
|
+
"webhookInspector": {
|
|
2839
|
+
"subscription": {
|
|
2840
|
+
"apiVersion": "krate.a5c.ai/v1alpha1",
|
|
2841
|
+
"kind": "WebhookSubscription",
|
|
2842
|
+
"metadata": {
|
|
2843
|
+
"namespace": "krate-org-default",
|
|
2844
|
+
"labels": {},
|
|
2845
|
+
"annotations": {},
|
|
2846
|
+
"name": "chatops",
|
|
2847
|
+
"resourceVersion": "1"
|
|
2848
|
+
},
|
|
2849
|
+
"spec": {
|
|
2850
|
+
"organizationRef": "default",
|
|
2851
|
+
"url": "https://hooks.example.test/krate",
|
|
2852
|
+
"events": [
|
|
2853
|
+
"pullrequest.created",
|
|
2854
|
+
"pullrequest.merged"
|
|
2855
|
+
],
|
|
2856
|
+
"signing": {
|
|
2857
|
+
"algorithm": "hmac-sha256",
|
|
2858
|
+
"secretRef": "chatops-secret"
|
|
2859
|
+
},
|
|
2860
|
+
"mode": "active"
|
|
2861
|
+
},
|
|
2862
|
+
"status": {
|
|
2863
|
+
"ready": true,
|
|
2864
|
+
"storage": "etcd"
|
|
2865
|
+
}
|
|
2866
|
+
},
|
|
2867
|
+
"deliveries": [],
|
|
2868
|
+
"columns": [
|
|
2869
|
+
"phase",
|
|
2870
|
+
"signature",
|
|
2871
|
+
"attempts",
|
|
2872
|
+
"response",
|
|
2873
|
+
"latency"
|
|
2874
|
+
],
|
|
2875
|
+
"actions": [
|
|
2876
|
+
"replay",
|
|
2877
|
+
"disable subscription",
|
|
2878
|
+
"copy curl"
|
|
2879
|
+
]
|
|
2880
|
+
},
|
|
2881
|
+
"triageView": null,
|
|
2882
|
+
"identityAdmin": {
|
|
2883
|
+
"counts": {
|
|
2884
|
+
"users": 1,
|
|
2885
|
+
"teams": 1,
|
|
2886
|
+
"pendingInvites": 1,
|
|
2887
|
+
"mappings": 1,
|
|
2888
|
+
"repositoryGrants": 0,
|
|
2889
|
+
"sshKeys": 0
|
|
2890
|
+
},
|
|
2891
|
+
"providers": [
|
|
2892
|
+
{
|
|
2893
|
+
"name": "github",
|
|
2894
|
+
"label": "GitHub",
|
|
2895
|
+
"type": "github",
|
|
2896
|
+
"enabled": true,
|
|
2897
|
+
"phase": "Configured"
|
|
2898
|
+
},
|
|
2899
|
+
{
|
|
2900
|
+
"name": "sso",
|
|
2901
|
+
"label": "Workspace SSO",
|
|
2902
|
+
"type": "oidc",
|
|
2903
|
+
"enabled": false,
|
|
2904
|
+
"phase": "Disabled"
|
|
2905
|
+
}
|
|
2906
|
+
],
|
|
2907
|
+
"users": [
|
|
2908
|
+
{
|
|
2909
|
+
"name": "admin",
|
|
2910
|
+
"displayName": "Admin",
|
|
2911
|
+
"email": "admin@example.com",
|
|
2912
|
+
"teams": [
|
|
2913
|
+
"maintainers"
|
|
2914
|
+
],
|
|
2915
|
+
"admin": true,
|
|
2916
|
+
"disabled": false,
|
|
2917
|
+
"phase": "Active"
|
|
2918
|
+
}
|
|
2919
|
+
],
|
|
2920
|
+
"teams": [
|
|
2921
|
+
{
|
|
2922
|
+
"name": "maintainers",
|
|
2923
|
+
"displayName": "Maintainers",
|
|
2924
|
+
"members": [
|
|
2925
|
+
"admin"
|
|
2926
|
+
],
|
|
2927
|
+
"maintainers": [
|
|
2928
|
+
"admin"
|
|
2929
|
+
],
|
|
2930
|
+
"repositoryGrants": [
|
|
2931
|
+
{
|
|
2932
|
+
"repository": "krate-demo",
|
|
2933
|
+
"permission": "admin"
|
|
2934
|
+
}
|
|
2935
|
+
]
|
|
2936
|
+
}
|
|
2937
|
+
],
|
|
2938
|
+
"invites": [
|
|
2939
|
+
{
|
|
2940
|
+
"name": "new-user-example-com",
|
|
2941
|
+
"email": "new-user@example.com",
|
|
2942
|
+
"role": "member",
|
|
2943
|
+
"teams": [
|
|
2944
|
+
"maintainers"
|
|
2945
|
+
],
|
|
2946
|
+
"phase": "Pending",
|
|
2947
|
+
"expiresAt": "2026-05-22T07:01:42.277Z"
|
|
2948
|
+
}
|
|
2949
|
+
],
|
|
2950
|
+
"mappings": [
|
|
2951
|
+
{
|
|
2952
|
+
"name": "sso-admin",
|
|
2953
|
+
"user": "admin",
|
|
2954
|
+
"provider": "sso",
|
|
2955
|
+
"workspaceIdentity": "admin@example.com",
|
|
2956
|
+
"repositoryIdentity": "admin",
|
|
2957
|
+
"phase": "Synced"
|
|
2958
|
+
}
|
|
2959
|
+
],
|
|
2960
|
+
"permissions": [],
|
|
2961
|
+
"sshKeys": [],
|
|
2962
|
+
"reconciliation": {
|
|
2963
|
+
"counts": {
|
|
2964
|
+
"User": 1,
|
|
2965
|
+
"Team": 1,
|
|
2966
|
+
"Invite": 1,
|
|
2967
|
+
"IdentityMapping": 1
|
|
2968
|
+
},
|
|
2969
|
+
"phases": {
|
|
2970
|
+
"Active": 2,
|
|
2971
|
+
"Pending": 1,
|
|
2972
|
+
"Synced": 1
|
|
2973
|
+
},
|
|
2974
|
+
"statuses": [
|
|
2975
|
+
{
|
|
2976
|
+
"kind": "User",
|
|
2977
|
+
"name": "admin",
|
|
2978
|
+
"phase": "Active",
|
|
2979
|
+
"checks": [
|
|
2980
|
+
"User Observed: ready",
|
|
2981
|
+
"Workspace Identity Projected: ready",
|
|
2982
|
+
"Repository Identity Projected: ready"
|
|
2983
|
+
]
|
|
2984
|
+
},
|
|
2985
|
+
{
|
|
2986
|
+
"kind": "Team",
|
|
2987
|
+
"name": "maintainers",
|
|
2988
|
+
"phase": "Active",
|
|
2989
|
+
"checks": [
|
|
2990
|
+
"Team Observed: ready",
|
|
2991
|
+
"Team Membership Projected: ready",
|
|
2992
|
+
"Repository Grants Projected: ready"
|
|
2993
|
+
]
|
|
2994
|
+
},
|
|
2995
|
+
{
|
|
2996
|
+
"kind": "Invite",
|
|
2997
|
+
"name": "new-user-example-com",
|
|
2998
|
+
"phase": "Pending",
|
|
2999
|
+
"checks": [
|
|
3000
|
+
"Invite Observed: ready",
|
|
3001
|
+
"Invite Lifecycle Tracked: ready"
|
|
3002
|
+
]
|
|
3003
|
+
},
|
|
3004
|
+
{
|
|
3005
|
+
"kind": "IdentityMapping",
|
|
3006
|
+
"name": "sso-admin",
|
|
3007
|
+
"phase": "Synced",
|
|
3008
|
+
"checks": [
|
|
3009
|
+
"Identity Mapping Observed: ready",
|
|
3010
|
+
"Workspace Identity Projected: ready",
|
|
3011
|
+
"Repository Identity Projected: ready"
|
|
3012
|
+
]
|
|
3013
|
+
}
|
|
3014
|
+
],
|
|
3015
|
+
"nextActions": [
|
|
3016
|
+
"ensure user: admin",
|
|
3017
|
+
"ensure repository user: admin",
|
|
3018
|
+
"sync team membership: maintainers",
|
|
3019
|
+
"sync team repository grant: maintainers",
|
|
3020
|
+
"send invite: workspace access",
|
|
3021
|
+
"link identity: admin",
|
|
3022
|
+
"link repository identity: admin"
|
|
3023
|
+
]
|
|
3024
|
+
},
|
|
3025
|
+
"org": "default"
|
|
3026
|
+
},
|
|
3027
|
+
"policyCenter": {
|
|
3028
|
+
"engine": "kyverno",
|
|
3029
|
+
"mode": "disabled",
|
|
3030
|
+
"health": "disabled",
|
|
3031
|
+
"detected": false,
|
|
3032
|
+
"namespace": "kyverno",
|
|
3033
|
+
"policyNamespace": "krate-org-default",
|
|
3034
|
+
"requireForEnforceMode": true,
|
|
3035
|
+
"org": "default",
|
|
3036
|
+
"profiles": [],
|
|
3037
|
+
"templates": [],
|
|
3038
|
+
"bindings": [],
|
|
3039
|
+
"exceptionRequests": [],
|
|
3040
|
+
"kyvernoResources": {},
|
|
3041
|
+
"controllers": [],
|
|
3042
|
+
"permissions": [],
|
|
3043
|
+
"reports": {
|
|
3044
|
+
"policyReports": 0,
|
|
3045
|
+
"clusterPolicyReports": 0,
|
|
3046
|
+
"results": []
|
|
3047
|
+
},
|
|
3048
|
+
"violations": [],
|
|
3049
|
+
"degraded": [],
|
|
3050
|
+
"emptyState": "Kyverno integration is disabled. Krate native RefPolicy and BranchProtection remain available."
|
|
3051
|
+
}
|
|
3052
|
+
},
|
|
3053
|
+
"operations": {
|
|
3054
|
+
"image": "ghcr.io/<owner>/<repo>/krate-controller",
|
|
3055
|
+
"chart": "charts/krate",
|
|
3056
|
+
"installCommands": [
|
|
3057
|
+
"Install Krate release package",
|
|
3058
|
+
"Apply the demo workspace configuration"
|
|
3059
|
+
],
|
|
3060
|
+
"releaseGates": [
|
|
3061
|
+
"npm run check",
|
|
3062
|
+
"docker build",
|
|
3063
|
+
"helm package charts/krate",
|
|
3064
|
+
"npm pack --json"
|
|
3065
|
+
]
|
|
3066
|
+
}
|
|
3067
|
+
}
|