@opensoha/contracts 0.1.6 → 0.1.7

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.
Files changed (62) hide show
  1. package/auth/catalog_generated.go +3 -3
  2. package/auth/permission-catalog.json +108 -2
  3. package/capabilities/cluster-capability-matrix.schema.json +30 -1
  4. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  5. package/compat/openapi-loose-boundaries-0.1.0.json +1 -1
  6. package/examples/gateway-manifest/minimal.json +6 -6
  7. package/examples/openapi/agent-run-tool-call-request.json +1 -1
  8. package/examples/openapi/agent-tool-call-result-envelope.json +1 -1
  9. package/examples/openapi/gateway-manifest-envelope.json +4 -4
  10. package/examples/openapi/tool-invocation-request.json +1 -1
  11. package/examples/openapi/tool-invocation-result-envelope.json +1 -1
  12. package/examples/plugin-manifest/skill-pack.json +2 -2
  13. package/examples/skill-manifest/k8s-sre.json +2 -2
  14. package/examples/token-claims/service-account.json +1 -1
  15. package/fixtures/json-schema/cluster-capability-matrix/valid/runtime-parity.json +3 -0
  16. package/fixtures/json-schema/gateway-manifest/valid/minimal.json +4 -4
  17. package/fixtures/json-schema/skill-manifest/valid/minimal.json +2 -2
  18. package/fixtures/json-schema/token-claims/valid/service-account.json +1 -1
  19. package/fixtures/openapi/AIGatewayManifestEnvelope/valid/minimal.json +1 -1
  20. package/fixtures/openapi/AgentInstallationEnvelope/invalid/missing-command.json +7 -0
  21. package/fixtures/openapi/AgentInstallationEnvelope/valid/minimal.json +8 -0
  22. package/fixtures/openapi/ApplicationInput/invalid/missing-key.json +4 -0
  23. package/fixtures/openapi/ApplicationInput/valid/minimal.json +5 -0
  24. package/fixtures/openapi/HelmReleaseImportRequest/invalid/empty-releases.json +10 -0
  25. package/fixtures/openapi/HelmReleaseImportRequest/valid/managed.json +14 -0
  26. package/fixtures/openapi/HelmReleaseImportResultEnvelope/invalid/missing-mode.json +20 -0
  27. package/fixtures/openapi/HelmReleaseImportResultEnvelope/valid/created.json +35 -0
  28. package/fixtures/openapi/KubernetesImportCandidateListEnvelope/invalid/unknown-kind.json +14 -0
  29. package/fixtures/openapi/KubernetesImportCandidateListEnvelope/valid/grouped.json +31 -0
  30. package/fixtures/openapi/KubernetesServiceImportRequest/invalid/unsupported-mode.json +15 -0
  31. package/fixtures/openapi/KubernetesServiceImportRequest/valid/managed.json +15 -0
  32. package/fixtures/openapi/KubernetesServiceImportRequest/valid/observe-only.json +15 -0
  33. package/fixtures/openapi/KubernetesServiceImportResultEnvelope/invalid/missing-mode.json +20 -0
  34. package/fixtures/openapi/KubernetesServiceImportResultEnvelope/valid/created.json +37 -0
  35. package/fixtures/openapi/MCPCapabilityListEnvelope/invalid/missing-scopes.json +1 -1
  36. package/fixtures/openapi/MCPCapabilityListEnvelope/valid/minimal.json +1 -1
  37. package/fixtures/openapi/ObservabilityDashboardImportResultEnvelope/invalid/missing-dashboard.json +7 -0
  38. package/fixtures/openapi/ObservabilityDashboardImportResultEnvelope/valid/imported.json +36 -0
  39. package/fixtures/openapi/ObservabilityGrafanaDashboardImportInput/invalid/missing-data-source.json +3 -0
  40. package/fixtures/openapi/ObservabilityGrafanaDashboardImportInput/invalid/missing-json.json +3 -0
  41. package/fixtures/openapi/ObservabilityGrafanaDashboardImportInput/valid/classic.json +4 -0
  42. package/fixtures/openapi/ObservabilityMetricDataSourceListEnvelope/invalid/missing-name.json +7 -0
  43. package/fixtures/openapi/ObservabilityMetricDataSourceListEnvelope/valid/list.json +8 -0
  44. package/fixtures/openapi/PersonalAccessTokenInput/invalid/extra-field.json +1 -1
  45. package/fixtures/openapi/PersonalAccessTokenInput/valid/create.json +1 -1
  46. package/fixtures/openapi/RegistryConnectionInput/invalid/missing-type.json +4 -0
  47. package/fixtures/openapi/RegistryConnectionInput/valid/harbor.json +9 -0
  48. package/fixtures/openapi/RegistryConnectionListEnvelope/invalid/exposed-secret.json +18 -0
  49. package/fixtures/openapi/RegistryConnectionListEnvelope/valid/configured.json +19 -0
  50. package/fixtures/openapi/SoftwarePackage/invalid/unsafe-software-package.json +15 -0
  51. package/fixtures/openapi/SoftwarePackage/valid/software-package.json +17 -0
  52. package/fixtures/openapi/SoftwarePackageURLImportRequest/invalid/software-package-url-import-request.json +9 -0
  53. package/fixtures/openapi/SoftwarePackageURLImportRequest/valid/software-package-url-import-request.json +12 -0
  54. package/fixtures/openapi/SoftwareStorage/invalid/software-storage.json +6 -0
  55. package/fixtures/openapi/SoftwareStorage/valid/software-storage.json +22 -0
  56. package/gen/go/sohaapi/client.go +1 -1
  57. package/gen/go/sohaapi/types.go +719 -3
  58. package/gen/ts/sohaapi/index.ts +1235 -23
  59. package/openapi/soha-api.json +2241 -3
  60. package/openapi/soha-api.yaml +1498 -156
  61. package/openapi/spec_generated.go +3 -3
  62. package/package.json +1 -1
@@ -5,9 +5,9 @@ package auth
5
5
  import _ "embed"
6
6
 
7
7
  const (
8
- PermissionCatalogVersion = "1.2.0"
9
- PermissionCatalogContentSHA256 = "5d7a468df65eb73a082457b0673b009034b5ed28f6a2fb4885b59a26fb7ca239"
10
- PermissionCatalogSHA256 = "589f4abadceea081d9ca7b6508f38c55785bdc98496c6c9b2a2055e3abc58dd5"
8
+ PermissionCatalogVersion = "1.3.0"
9
+ PermissionCatalogContentSHA256 = "182dbfb4b9962dc4a0c344c2ce7622ec4424cf5ff0892a73b0b6806eddf6f2c7"
10
+ PermissionCatalogSHA256 = "f9956b1ee4e3d981a4e93e7078006aa915a5eb18fb2347fa0d81bc8346b8958b"
11
11
  )
12
12
 
13
13
  //go:embed permission-catalog.json
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "authorization.opensoha.io/v1",
3
- "catalogVersion": "1.2.0",
4
- "contentHash": "sha256:5d7a468df65eb73a082457b0673b009034b5ed28f6a2fb4885b59a26fb7ca239",
3
+ "catalogVersion": "1.3.0",
4
+ "contentHash": "sha256:182dbfb4b9962dc4a0c344c2ce7622ec4424cf5ff0892a73b0b6806eddf6f2c7",
5
5
  "permissions": [
6
6
  {
7
7
  "key": "access.directory.create",
@@ -4934,6 +4934,64 @@
4934
4934
  "status": "active",
4935
4935
  "assignable": true
4936
4936
  },
4937
+ {
4938
+ "key": "observe.dashboards.create",
4939
+ "domain": "observe",
4940
+ "resource": "dashboards",
4941
+ "action": "create",
4942
+ "displayName": "导入监控仪表盘",
4943
+ "riskLevel": "mutate",
4944
+ "scopeKinds": [
4945
+ "tenant",
4946
+ "workspace",
4947
+ "resource"
4948
+ ],
4949
+ "approvalPolicy": "never",
4950
+ "status": "active",
4951
+ "assignable": true,
4952
+ "legacyAliases": [
4953
+ "observe.dashboards.manage"
4954
+ ]
4955
+ },
4956
+ {
4957
+ "key": "observe.dashboards.delete",
4958
+ "domain": "observe",
4959
+ "resource": "dashboards",
4960
+ "action": "delete",
4961
+ "displayName": "删除监控仪表盘",
4962
+ "riskLevel": "mutate",
4963
+ "scopeKinds": [
4964
+ "tenant",
4965
+ "workspace",
4966
+ "resource"
4967
+ ],
4968
+ "approvalPolicy": "never",
4969
+ "status": "active",
4970
+ "assignable": true,
4971
+ "legacyAliases": [
4972
+ "observe.dashboards.manage"
4973
+ ]
4974
+ },
4975
+ {
4976
+ "key": "observe.dashboards.manage",
4977
+ "domain": "observe",
4978
+ "resource": "dashboards",
4979
+ "action": "manage",
4980
+ "displayName": "管理监控仪表盘",
4981
+ "riskLevel": "mutate",
4982
+ "scopeKinds": [
4983
+ "tenant",
4984
+ "workspace",
4985
+ "resource"
4986
+ ],
4987
+ "approvalPolicy": "never",
4988
+ "status": "legacy",
4989
+ "assignable": false,
4990
+ "replacedBy": [
4991
+ "observe.dashboards.create",
4992
+ "observe.dashboards.delete"
4993
+ ]
4994
+ },
4937
4995
  {
4938
4996
  "key": "observe.events.view",
4939
4997
  "domain": "observe",
@@ -10047,6 +10105,54 @@
10047
10105
  "status": "active",
10048
10106
  "assignable": true
10049
10107
  },
10108
+ {
10109
+ "key": "software.package.create",
10110
+ "domain": "software",
10111
+ "resource": "package",
10112
+ "action": "create",
10113
+ "displayName": "上传软件包",
10114
+ "riskLevel": "high",
10115
+ "scopeKinds": [
10116
+ "tenant",
10117
+ "workspace",
10118
+ "resource"
10119
+ ],
10120
+ "approvalPolicy": "eligible",
10121
+ "status": "active",
10122
+ "assignable": true
10123
+ },
10124
+ {
10125
+ "key": "software.package.delete",
10126
+ "domain": "software",
10127
+ "resource": "package",
10128
+ "action": "delete",
10129
+ "displayName": "删除软件包",
10130
+ "riskLevel": "high",
10131
+ "scopeKinds": [
10132
+ "tenant",
10133
+ "workspace",
10134
+ "resource"
10135
+ ],
10136
+ "approvalPolicy": "eligible",
10137
+ "status": "active",
10138
+ "assignable": true
10139
+ },
10140
+ {
10141
+ "key": "software.package.view",
10142
+ "domain": "software",
10143
+ "resource": "package",
10144
+ "action": "view",
10145
+ "displayName": "查看和下载软件包",
10146
+ "riskLevel": "read",
10147
+ "scopeKinds": [
10148
+ "tenant",
10149
+ "workspace",
10150
+ "resource"
10151
+ ],
10152
+ "approvalPolicy": "never",
10153
+ "status": "active",
10154
+ "assignable": true
10155
+ },
10050
10156
  {
10051
10157
  "key": "system.announcements.create",
10052
10158
  "domain": "system",
@@ -48,6 +48,11 @@
48
48
  "properties": {
49
49
  "status": { "$ref": "#/$defs/CapabilityStatus" },
50
50
  "reason": { "type": "string", "minLength": 1 },
51
+ "notes": {
52
+ "type": "array",
53
+ "items": { "type": "string", "minLength": 1 },
54
+ "uniqueItems": true
55
+ },
51
56
  "diagnostic": { "type": "string" },
52
57
  "requiredAgentVersion": { "type": "string" },
53
58
  "requiredScopes": {
@@ -71,10 +76,34 @@
71
76
  "label": { "type": "string", "minLength": 1 },
72
77
  "category": {
73
78
  "type": "string",
74
- "enum": ["kubernetes", "helm", "yaml", "logs", "exec", "port-forward", "docker", "runtime"]
79
+ "enum": [
80
+ "kubernetes",
81
+ "helm",
82
+ "yaml",
83
+ "logs",
84
+ "exec",
85
+ "port-forward",
86
+ "docker",
87
+ "runtime",
88
+ "platform",
89
+ "workloads",
90
+ "configuration",
91
+ "access",
92
+ "network",
93
+ "storage",
94
+ "extensions",
95
+ "delivery",
96
+ "observability"
97
+ ]
98
+ },
99
+ "requiredScopes": {
100
+ "type": "array",
101
+ "items": { "type": "string", "minLength": 1 },
102
+ "uniqueItems": true
75
103
  },
76
104
  "riskLevel": { "$ref": "#/$defs/RiskLevel" },
77
105
  "requiresApproval": { "type": "boolean" },
106
+ "docsUrl": { "type": "string", "minLength": 1 },
78
107
  "direct": { "$ref": "#/$defs/ModeSupport" },
79
108
  "agent": { "$ref": "#/$defs/ModeSupport" },
80
109
  "metadata": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.6",
2
+ "version": "0.1.7",
3
3
  "schemas": {
4
4
  "plugins/plugin-manifest.schema.json": {
5
5
  "rootRequired": ["id", "name", "publisher", "type", "version"],
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.6",
2
+ "version": "0.1.7",
3
3
  "generatedFrom": "openapi/soha-api.yaml",
4
4
  "entries": [
5
5
  {
@@ -10,22 +10,22 @@
10
10
  "teams": [],
11
11
  "projects": [],
12
12
  "tags": [],
13
- "permissionKeys": ["ai.gateway.tools.read", "k8s.pods.read"]
13
+ "permissionKeys": ["ai.gateway.view", "platform.pods.view"]
14
14
  },
15
15
  "caller": {
16
16
  "identityMode": "user",
17
17
  "source": "cli"
18
18
  },
19
- "permissionKeys": ["ai.gateway.tools.read", "k8s.pods.read"],
19
+ "permissionKeys": ["ai.gateway.view", "platform.pods.view"],
20
20
  "tools": [
21
21
  {
22
- "name": "k8s.list_pods",
22
+ "name": "k8s.pods.list",
23
23
  "title": "List pods",
24
24
  "description": "List Kubernetes pods in a namespace.",
25
25
  "domain": "kubernetes",
26
26
  "action": "read",
27
27
  "riskLevel": "read",
28
- "permissionKeys": ["k8s.pods.read"],
28
+ "permissionKeys": ["platform.pods.view"],
29
29
  "requiredScopes": ["cluster", "namespace"],
30
30
  "mcpAdapterId": "builtin.kubernetes",
31
31
  "mcpToolName": "k8s.pods.list",
@@ -57,8 +57,8 @@
57
57
  "name": "Kubernetes SRE",
58
58
  "category": "ai-gateway",
59
59
  "description": "Read-only cluster diagnosis skill.",
60
- "capabilityRefs": ["k8s.list_pods"],
61
- "permissionKeys": ["k8s.pods.read"],
60
+ "capabilityRefs": ["k8s.pods.list"],
61
+ "permissionKeys": ["platform.pods.view"],
62
62
  "requiredScopes": ["cluster", "namespace"]
63
63
  }
64
64
  ],
@@ -4,7 +4,7 @@
4
4
  "agentId": "agent-01",
5
5
  "toolBindingId": "binding-01",
6
6
  "adapterId": "builtin.kubernetes",
7
- "toolName": "k8s.list_pods",
7
+ "toolName": "k8s.pods.list",
8
8
  "input": {
9
9
  "namespace": "default"
10
10
  }
@@ -2,7 +2,7 @@
2
2
  "data": {
3
3
  "runId": "run-01",
4
4
  "toolExecution": {
5
- "toolName": "k8s.list_pods",
5
+ "toolName": "k8s.pods.list",
6
6
  "status": "succeeded",
7
7
  "requestId": "req-01"
8
8
  },
@@ -11,22 +11,22 @@
11
11
  "teams": [],
12
12
  "projects": [],
13
13
  "tags": [],
14
- "permissionKeys": ["ai.gateway.tools.read", "k8s.pods.read"]
14
+ "permissionKeys": ["ai.gateway.view", "platform.pods.view"]
15
15
  },
16
16
  "caller": {
17
17
  "identityMode": "user",
18
18
  "source": "web"
19
19
  },
20
- "permissionKeys": ["ai.gateway.tools.read", "k8s.pods.read"],
20
+ "permissionKeys": ["ai.gateway.view", "platform.pods.view"],
21
21
  "tools": [
22
22
  {
23
- "name": "k8s.list_pods",
23
+ "name": "k8s.pods.list",
24
24
  "title": "List pods",
25
25
  "description": "List Kubernetes pods in a namespace.",
26
26
  "domain": "kubernetes",
27
27
  "action": "read",
28
28
  "riskLevel": "read",
29
- "permissionKeys": ["k8s.pods.read"],
29
+ "permissionKeys": ["platform.pods.view"],
30
30
  "requiredScopes": ["cluster", "namespace"],
31
31
  "requiresApproval": false,
32
32
  "inputSchema": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "toolName": "k8s.list_pods",
2
+ "toolName": "k8s.pods.list",
3
3
  "input": {
4
4
  "clusterId": "default",
5
5
  "namespace": "default"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "data": {
3
- "toolName": "k8s.list_pods",
3
+ "toolName": "k8s.pods.list",
4
4
  "riskLevel": "read",
5
5
  "requiresApproval": false,
6
6
  "result": "succeeded",
@@ -14,11 +14,11 @@
14
14
  "skills": ["skills/ai-gateway/k8s-sre/SKILL.md"]
15
15
  },
16
16
  "capabilities": {
17
- "tools": ["k8s.list_pods"],
17
+ "tools": ["k8s.pods.list"],
18
18
  "skills": ["k8s-sre"]
19
19
  },
20
20
  "permissions": {
21
- "required": ["k8s.pods.read"],
21
+ "required": ["platform.pods.view"],
22
22
  "domain": ["kubernetes"]
23
23
  },
24
24
  "runtime": {
@@ -4,8 +4,8 @@
4
4
  "version": "0.1.0",
5
5
  "category": "ai-gateway",
6
6
  "description": "Read-only Kubernetes troubleshooting skill.",
7
- "capabilityRefs": ["k8s.list_pods"],
8
- "permissionKeys": ["k8s.pods.read"],
7
+ "capabilityRefs": ["k8s.pods.list"],
8
+ "permissionKeys": ["platform.pods.view"],
9
9
  "requiredScopes": ["cluster", "namespace"],
10
10
  "providerSkillRefs": [
11
11
  {
@@ -10,6 +10,6 @@
10
10
  "subjectId": "sa-1",
11
11
  "tenantId": "default",
12
12
  "workspaceId": "default",
13
- "permissionKeys": ["ai.gateway.tools.read", "k8s.pods.read"],
13
+ "permissionKeys": ["ai.gateway.view", "platform.pods.view"],
14
14
  "scopes": ["ai:read", "k8s:read"]
15
15
  }
@@ -6,14 +6,17 @@
6
6
  "key": "kubernetes.yaml.apply",
7
7
  "label": "Apply Kubernetes YAML",
8
8
  "category": "yaml",
9
+ "requiredScopes": ["cluster", "namespace"],
9
10
  "riskLevel": "mutate",
10
11
  "requiresApproval": true,
12
+ "docsUrl": "/operations/kubernetes-yaml",
11
13
  "direct": {
12
14
  "status": "available",
13
15
  "requiredScopes": ["cluster:write", "kubernetes:apply"]
14
16
  },
15
17
  "agent": {
16
18
  "status": "available",
19
+ "notes": ["Requires the resource mutation allowlist."],
17
20
  "requiredAgentVersion": "0.1.0",
18
21
  "requiredScopes": ["agent:kubernetes:apply"]
19
22
  },
@@ -10,22 +10,22 @@
10
10
  "teams": [],
11
11
  "projects": [],
12
12
  "tags": [],
13
- "permissionKeys": ["ai.gateway.tools.read"]
13
+ "permissionKeys": ["ai.gateway.view"]
14
14
  },
15
15
  "caller": {
16
16
  "identityMode": "user",
17
17
  "source": "cli"
18
18
  },
19
- "permissionKeys": ["ai.gateway.tools.read"],
19
+ "permissionKeys": ["ai.gateway.view"],
20
20
  "tools": [
21
21
  {
22
- "name": "k8s.list_pods",
22
+ "name": "k8s.pods.list",
23
23
  "title": "List pods",
24
24
  "description": "List Kubernetes pods in a namespace.",
25
25
  "domain": "kubernetes",
26
26
  "action": "read",
27
27
  "riskLevel": "read",
28
- "permissionKeys": ["k8s.pods.read"],
28
+ "permissionKeys": ["platform.pods.view"],
29
29
  "requiresApproval": false,
30
30
  "inputSchema": {
31
31
  "type": "object",
@@ -3,6 +3,6 @@
3
3
  "name": "Kubernetes SRE",
4
4
  "version": "0.1.0",
5
5
  "category": "ai-gateway",
6
- "capabilityRefs": ["k8s.list_pods"],
7
- "permissionKeys": ["k8s.pods.read"]
6
+ "capabilityRefs": ["k8s.pods.list"],
7
+ "permissionKeys": ["platform.pods.view"]
8
8
  }
@@ -10,6 +10,6 @@
10
10
  "subjectId": "sa-1",
11
11
  "tenantId": "default",
12
12
  "workspaceId": "default",
13
- "permissionKeys": ["ai.gateway.tools.read"],
13
+ "permissionKeys": ["ai.gateway.view"],
14
14
  "scopes": ["ai:read"]
15
15
  }
@@ -15,7 +15,7 @@
15
15
  "caller": {
16
16
  "identityMode": "user"
17
17
  },
18
- "permissionKeys": ["ai.gateway.tools.read"],
18
+ "permissionKeys": ["ai.gateway.view"],
19
19
  "tools": [],
20
20
  "resources": [],
21
21
  "prompts": [],
@@ -0,0 +1,7 @@
1
+ {
2
+ "data": {
3
+ "clusterId": "cluster-1",
4
+ "manifestUrl": "https://soha.example.com/api/v1/kubernetes/agent-installations/dGlja2V0.manifest/manifest.yaml",
5
+ "expiresAt": "2026-08-08T10:15:00Z"
6
+ }
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "data": {
3
+ "clusterId": "cluster-1",
4
+ "manifestUrl": "https://soha.example.com/api/v1/kubernetes/agent-installations/dGlja2V0.manifest/manifest.yaml",
5
+ "command": "kubectl apply -f https://soha.example.com/api/v1/kubernetes/agent-installations/dGlja2V0.manifest/manifest.yaml",
6
+ "expiresAt": "2026-08-08T10:15:00Z"
7
+ }
8
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "Payments",
3
+ "enabled": true
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "Payments",
3
+ "key": "payments",
4
+ "enabled": true
5
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "clusterId": "cluster-prod",
3
+ "namespace": "payments",
4
+ "applicationKey": "payments",
5
+ "applicationName": "Payments",
6
+ "environmentKey": "prod",
7
+ "environmentName": "Production",
8
+ "ownershipMode": "managed",
9
+ "releases": []
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "clusterId": "cluster-prod",
3
+ "namespace": "payments",
4
+ "applicationKey": "payments",
5
+ "applicationName": "Payments",
6
+ "environmentKey": "prod",
7
+ "environmentName": "Production",
8
+ "ownershipMode": "managed",
9
+ "releases": [
10
+ {
11
+ "releaseName": "payments"
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "data": {
3
+ "application": {
4
+ "id": "app-1",
5
+ "key": "payments",
6
+ "name": "Payments",
7
+ "created": true
8
+ },
9
+ "environment": {
10
+ "id": "env-1",
11
+ "key": "prod",
12
+ "name": "Production",
13
+ "created": false
14
+ },
15
+ "applicationEnvironmentId": "app-env-1",
16
+ "applicationEnvironmentCreated": true,
17
+ "services": [],
18
+ "targets": []
19
+ }
20
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "data": {
3
+ "application": {
4
+ "id": "app-1",
5
+ "key": "payments",
6
+ "name": "Payments",
7
+ "created": true
8
+ },
9
+ "environment": {
10
+ "id": "env-1",
11
+ "key": "prod",
12
+ "name": "Production",
13
+ "created": false
14
+ },
15
+ "applicationEnvironmentId": "app-env-1",
16
+ "applicationEnvironmentCreated": true,
17
+ "ownershipMode": "managed",
18
+ "services": [
19
+ {
20
+ "id": "service-1",
21
+ "key": "helm-payments",
22
+ "name": "payments",
23
+ "releaseName": "payments",
24
+ "created": true
25
+ }
26
+ ],
27
+ "targets": [
28
+ {
29
+ "id": "target-1",
30
+ "releaseName": "payments",
31
+ "created": true
32
+ }
33
+ ]
34
+ }
35
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "clusterId": "cluster-prod",
5
+ "namespace": "payments",
6
+ "workloadKind": "Pod",
7
+ "workloadName": "payments-api-123",
8
+ "desiredReplicas": 1,
9
+ "readyReplicas": 1,
10
+ "relatedResources": []
11
+ }
12
+ ],
13
+ "truncated": false
14
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "clusterId": "cluster-prod",
5
+ "namespace": "payments",
6
+ "workloadKind": "Deployment",
7
+ "workloadName": "payments-api",
8
+ "desiredReplicas": 3,
9
+ "readyReplicas": 3,
10
+ "containers": ["api"],
11
+ "labels": {
12
+ "app": "payments-api"
13
+ },
14
+ "relatedResources": [
15
+ {
16
+ "kind": "Service",
17
+ "name": "payments-api"
18
+ },
19
+ {
20
+ "kind": "Ingress",
21
+ "name": "payments"
22
+ },
23
+ {
24
+ "kind": "HorizontalPodAutoscaler",
25
+ "name": "payments-api"
26
+ }
27
+ ]
28
+ }
29
+ ],
30
+ "truncated": false
31
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "clusterId": "cluster-prod",
3
+ "namespace": "payments",
4
+ "applicationKey": "payments",
5
+ "applicationName": "Payments",
6
+ "environmentKey": "prod",
7
+ "environmentName": "Production",
8
+ "ownershipMode": "takeover",
9
+ "workloads": [
10
+ {
11
+ "workloadKind": "Deployment",
12
+ "workloadName": "payments-api"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "clusterId": "cluster-prod",
3
+ "namespace": "payments",
4
+ "applicationKey": "payments",
5
+ "applicationName": "Payments",
6
+ "environmentKey": "prod",
7
+ "environmentName": "Production",
8
+ "ownershipMode": "managed",
9
+ "workloads": [
10
+ {
11
+ "workloadKind": "Deployment",
12
+ "workloadName": "payments-api"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "clusterId": "cluster-prod",
3
+ "namespace": "payments",
4
+ "applicationKey": "payments",
5
+ "applicationName": "Payments",
6
+ "environmentKey": "prod",
7
+ "environmentName": "Production",
8
+ "ownershipMode": "observe_only",
9
+ "workloads": [
10
+ {
11
+ "workloadKind": "Deployment",
12
+ "workloadName": "payments-api"
13
+ }
14
+ ]
15
+ }