@opensoha/contracts 0.1.8 → 0.1.9

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 (35) hide show
  1. package/auth/catalog_generated.go +2 -2
  2. package/auth/permission-catalog.json +7 -7
  3. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  4. package/compat/openapi-loose-boundaries-0.1.0.json +16 -1
  5. package/fixtures/openapi/BrandingAssetUploadEnvelope/invalid/remote-url.json +5 -0
  6. package/fixtures/openapi/BrandingAssetUploadEnvelope/valid/png-data-url.json +5 -0
  7. package/fixtures/openapi/BrandingSettingsEnvelope/invalid/missing-favicon.json +9 -0
  8. package/fixtures/openapi/BrandingSettingsEnvelope/valid/default.json +10 -0
  9. package/fixtures/openapi/IdentitySettingsEnvelope/invalid/exposed-secret.json +14 -0
  10. package/fixtures/openapi/IdentitySettingsEnvelope/valid/redacted-provider.json +16 -0
  11. package/fixtures/openapi/KubernetesClusterListEnvelope/invalid/missing-health.json +12 -0
  12. package/fixtures/openapi/KubernetesClusterListEnvelope/valid/agent-cluster.json +18 -0
  13. package/fixtures/openapi/KubernetesNetworkTopologyEnvelope/invalid/missing-summary.json +7 -0
  14. package/fixtures/openapi/KubernetesNetworkTopologyEnvelope/valid/ingress-service-pod.json +29 -0
  15. package/fixtures/openapi/KubernetesPodListEnvelope/invalid/missing-scope.json +11 -0
  16. package/fixtures/openapi/KubernetesPodListEnvelope/valid/running-pod.json +15 -0
  17. package/fixtures/openapi/PlatformAuditLogListEnvelope/invalid/missing-action.json +14 -0
  18. package/fixtures/openapi/PlatformAuditLogListEnvelope/valid/kubernetes-mutation.json +24 -0
  19. package/fixtures/openapi/PlatformOperationLogListEnvelope/invalid/missing-target-scope.json +13 -0
  20. package/fixtures/openapi/PlatformOperationLogListEnvelope/valid/kubernetes-operation.json +29 -0
  21. package/fixtures/openapi/PodMetricsEnvelope/invalid/missing-configured.json +10 -0
  22. package/fixtures/openapi/PodMetricsEnvelope/valid/prometheus.json +25 -0
  23. package/fixtures/openapi/UpdateBrandingSettingsRequest/invalid/unknown-field.json +9 -0
  24. package/fixtures/openapi/UpdateBrandingSettingsRequest/valid/default.json +8 -0
  25. package/fixtures/openapi/UpdateLoginProvidersSettingsRequest/invalid/missing-providers.json +4 -0
  26. package/fixtures/openapi/UpdateLoginProvidersSettingsRequest/valid/provider-with-secret.json +15 -0
  27. package/fixtures/openapi/UploadBrandingAssetRequest/invalid/missing-file.json +1 -0
  28. package/fixtures/openapi/UploadBrandingAssetRequest/valid/file.json +3 -0
  29. package/gen/go/sohaapi/client.go +1 -1
  30. package/gen/go/sohaapi/types.go +4220 -96
  31. package/gen/ts/sohaapi/index.ts +17631 -8442
  32. package/openapi/soha-api.json +33933 -17440
  33. package/openapi/soha-api.yaml +18377 -11376
  34. package/openapi/spec_generated.go +3 -3
  35. package/package.json +1 -1
@@ -6,8 +6,8 @@ import _ "embed"
6
6
 
7
7
  const (
8
8
  PermissionCatalogVersion = "1.3.0"
9
- PermissionCatalogContentSHA256 = "182dbfb4b9962dc4a0c344c2ce7622ec4424cf5ff0892a73b0b6806eddf6f2c7"
10
- PermissionCatalogSHA256 = "f9956b1ee4e3d981a4e93e7078006aa915a5eb18fb2347fa0d81bc8346b8958b"
9
+ PermissionCatalogContentSHA256 = "fe738c69a160e58cf919ce6de8380d6427be6f8848cabad7d807ec82fdea8a3b"
10
+ PermissionCatalogSHA256 = "206f12ff27279b1f345a87cd93be82789d1a79df311de9e7a86ab8cf75dde013"
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
3
  "catalogVersion": "1.3.0",
4
- "contentHash": "sha256:182dbfb4b9962dc4a0c344c2ce7622ec4424cf5ff0892a73b0b6806eddf6f2c7",
4
+ "contentHash": "sha256:fe738c69a160e58cf919ce6de8380d6427be6f8848cabad7d807ec82fdea8a3b",
5
5
  "permissions": [
6
6
  {
7
7
  "key": "access.directory.create",
@@ -9788,7 +9788,7 @@
9788
9788
  "domain": "settings",
9789
9789
  "resource": "identity",
9790
9790
  "action": "create",
9791
- "displayName": "创建登陆设置",
9791
+ "displayName": "创建登录设置",
9792
9792
  "riskLevel": "mutate",
9793
9793
  "scopeKinds": [
9794
9794
  "tenant",
@@ -9807,7 +9807,7 @@
9807
9807
  "domain": "settings",
9808
9808
  "resource": "identity",
9809
9809
  "action": "delete",
9810
- "displayName": "删除登陆设置",
9810
+ "displayName": "删除登录设置",
9811
9811
  "riskLevel": "high",
9812
9812
  "scopeKinds": [
9813
9813
  "tenant",
@@ -9826,7 +9826,7 @@
9826
9826
  "domain": "settings",
9827
9827
  "resource": "identity",
9828
9828
  "action": "manage",
9829
- "displayName": "管理登陆设置",
9829
+ "displayName": "管理登录设置",
9830
9830
  "riskLevel": "mutate",
9831
9831
  "scopeKinds": [
9832
9832
  "tenant",
@@ -9848,7 +9848,7 @@
9848
9848
  "domain": "settings",
9849
9849
  "resource": "identity",
9850
9850
  "action": "update",
9851
- "displayName": "修改登陆设置",
9851
+ "displayName": "修改登录设置",
9852
9852
  "riskLevel": "mutate",
9853
9853
  "scopeKinds": [
9854
9854
  "tenant",
@@ -9867,7 +9867,7 @@
9867
9867
  "domain": "settings",
9868
9868
  "resource": "identity",
9869
9869
  "action": "validate",
9870
- "displayName": "校验登陆设置",
9870
+ "displayName": "校验登录设置",
9871
9871
  "riskLevel": "execute",
9872
9872
  "scopeKinds": [
9873
9873
  "tenant",
@@ -9886,7 +9886,7 @@
9886
9886
  "domain": "settings",
9887
9887
  "resource": "identity",
9888
9888
  "action": "view",
9889
- "displayName": "查看登陆设置",
9889
+ "displayName": "查看登录设置",
9890
9890
  "riskLevel": "read",
9891
9891
  "scopeKinds": [
9892
9892
  "tenant",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.8",
2
+ "version": "0.1.9",
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.8",
2
+ "version": "0.1.9",
3
3
  "generatedFrom": "openapi/soha-api.yaml",
4
4
  "entries": [
5
5
  {
@@ -710,6 +710,21 @@
710
710
  "path": "components/schemas/OpenAIResponseRequest/properties/input",
711
711
  "target": "#/components/schemas/AnyValue"
712
712
  },
713
+ {
714
+ "kind": "schemaRef",
715
+ "path": "components/schemas/PlatformAuditLog/properties/metadata",
716
+ "target": "#/components/schemas/GenericObject"
717
+ },
718
+ {
719
+ "kind": "schemaRef",
720
+ "path": "components/schemas/PlatformOperationLog/properties/metadata",
721
+ "target": "#/components/schemas/GenericObject"
722
+ },
723
+ {
724
+ "kind": "schemaRef",
725
+ "path": "components/schemas/PlatformOperationLog/properties/targetScope",
726
+ "target": "#/components/schemas/GenericObject"
727
+ },
713
728
  {
714
729
  "kind": "schemaRef",
715
730
  "path": "components/schemas/RenderedDeliverySpec/properties/executionHints",
@@ -0,0 +1,5 @@
1
+ {
2
+ "data": {
3
+ "url": "https://example.com/logo.png"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "data": {
3
+ "url": "data:image/png;base64,iVBORw0KGgo="
4
+ }
5
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "data": {
3
+ "appTitle": "Soha",
4
+ "sidebarTitle": "Soha",
5
+ "loginLogoUrl": "/logo.svg",
6
+ "expandedLogoUrl": "/logo.svg",
7
+ "collapsedLogoUrl": "/logo.svg"
8
+ }
9
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "data": {
3
+ "appTitle": "Soha",
4
+ "sidebarTitle": "Soha",
5
+ "loginLogoUrl": "/logo.svg",
6
+ "expandedLogoUrl": "/logo.svg",
7
+ "collapsedLogoUrl": "/logo.svg",
8
+ "faviconUrl": "/favicon.ico"
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "data": {
3
+ "providers": [
4
+ {
5
+ "id": "github",
6
+ "name": "GitHub",
7
+ "type": "oauth2",
8
+ "enabled": true,
9
+ "clientSecret": "must-not-appear-in-a-response"
10
+ }
11
+ ],
12
+ "localPasswordLoginEnabled": true
13
+ }
14
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "data": {
3
+ "providers": [
4
+ {
5
+ "id": "github",
6
+ "name": "GitHub",
7
+ "type": "oauth2",
8
+ "enabled": true,
9
+ "clientId": "public-client-id",
10
+ "scopes": ["read:user", "user:email"]
11
+ }
12
+ ],
13
+ "defaultProviderId": "github",
14
+ "localPasswordLoginEnabled": true
15
+ }
16
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "edge-prod",
5
+ "name": "Edge Production",
6
+ "region": "cn-east",
7
+ "environment": "production",
8
+ "labels": {},
9
+ "connectionMode": "agent"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "edge-prod",
5
+ "name": "Edge Production",
6
+ "region": "cn-east",
7
+ "environment": "production",
8
+ "labels": { "connection": "agent" },
9
+ "connectionMode": "agent",
10
+ "version": "v1.34.0+k3s1",
11
+ "capabilities": ["workload.read", "pod.logs"],
12
+ "health": {
13
+ "status": "healthy",
14
+ "lastChecked": "2026-08-10T08:00:00Z"
15
+ }
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "data": {
3
+ "clusterId": "edge-prod",
4
+ "source": "ingress",
5
+ "generatedAt": "2026-08-10T08:00:00Z"
6
+ }
7
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "data": {
3
+ "clusterId": "edge-prod",
4
+ "namespace": "production",
5
+ "source": "ingress",
6
+ "generatedAt": "2026-08-10T08:00:00Z",
7
+ "summary": {
8
+ "entryCount": 1,
9
+ "routeCount": 1,
10
+ "serviceCount": 1,
11
+ "missingServiceCount": 0,
12
+ "backendPodCount": 1,
13
+ "pendingRouteCount": 0
14
+ },
15
+ "traces": [
16
+ {
17
+ "id": "trace-1",
18
+ "sourceType": "Ingress",
19
+ "state": "ready",
20
+ "entry": { "id": "entry-1", "name": "app.example.com", "kind": "Host", "state": "ready" },
21
+ "route": { "id": "route-1", "name": "app", "kind": "Ingress", "state": "ready" },
22
+ "service": { "id": "service-1", "name": "api", "kind": "Service", "state": "ready" },
23
+ "backendPods": [
24
+ { "id": "pod-1", "name": "api-7c8d9f", "kind": "Pod", "state": "ready" }
25
+ ]
26
+ }
27
+ ]
28
+ }
29
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "name": "api-7c8d9f",
5
+ "phase": "Running",
6
+ "readyContainers": "2/2",
7
+ "restarts": 0,
8
+ "ageSeconds": 3600
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "name": "api-7c8d9f",
5
+ "namespace": "production",
6
+ "phase": "Running",
7
+ "nodeName": "worker-1",
8
+ "podIp": "10.42.1.8",
9
+ "readyContainers": "2/2",
10
+ "restarts": 0,
11
+ "ageSeconds": 3600,
12
+ "allowedActions": ["logs", "view"]
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "audit-01",
5
+ "actorId": "user-01",
6
+ "actorName": "Platform Operator",
7
+ "roles": [],
8
+ "teams": [],
9
+ "result": "success",
10
+ "summary": "deleted pod for rebuild",
11
+ "createdAt": "2026-08-10T08:00:00Z"
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "audit-01",
5
+ "actorId": "user-01",
6
+ "actorName": "Platform Operator",
7
+ "roles": ["platform-operator"],
8
+ "teams": ["sre"],
9
+ "clusterId": "cluster-01",
10
+ "namespace": "production",
11
+ "resourceKind": "Pod",
12
+ "resourceName": "api-0",
13
+ "action": "delete",
14
+ "result": "success",
15
+ "summary": "deleted pod for rebuild",
16
+ "requestPath": "/api/v1/clusters/cluster-01/workloads/pods/api-0",
17
+ "requestMethod": "DELETE",
18
+ "requestId": "request-01",
19
+ "sourceIp": "192.0.2.10",
20
+ "metadata": { "source": "web" },
21
+ "createdAt": "2026-08-10T08:00:00Z"
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "operation-01",
5
+ "actorId": "user-01",
6
+ "operationType": "platform.pod.delete",
7
+ "result": "success",
8
+ "summary": "deleted pod for rebuild",
9
+ "metadata": {},
10
+ "createdAt": "2026-08-10T08:00:00Z"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "operation-01",
5
+ "actorId": "user-01",
6
+ "actorName": "Platform Operator",
7
+ "operationType": "platform.port-forward.start",
8
+ "targetScope": {
9
+ "module": "platform",
10
+ "clusterId": "cluster-01",
11
+ "namespace": "production",
12
+ "resourceKind": "PortForward",
13
+ "resourceName": "session-01"
14
+ },
15
+ "result": "success",
16
+ "summary": "started agent port-forward session",
17
+ "requestPath": "/api/v1/clusters/cluster-01/network/port-forwards",
18
+ "requestMethod": "POST",
19
+ "requestId": "request-01",
20
+ "sourceIp": "192.0.2.10",
21
+ "metadata": {
22
+ "connectionMode": "agent",
23
+ "localPort": 18080,
24
+ "remotePort": 8080
25
+ },
26
+ "createdAt": "2026-08-10T08:00:00Z"
27
+ }
28
+ ]
29
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "data": {
3
+ "podName": "api-7c8d9f",
4
+ "namespace": "production",
5
+ "source": "prometheus",
6
+ "generatedAt": "2026-08-09T14:00:00Z",
7
+ "rangeMinutes": 60,
8
+ "stepSeconds": 60
9
+ }
10
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "data": {
3
+ "podName": "api-7c8d9f",
4
+ "namespace": "production",
5
+ "configured": true,
6
+ "source": "prometheus",
7
+ "generatedAt": "2026-08-09T14:00:00Z",
8
+ "rangeMinutes": 60,
9
+ "stepSeconds": 60,
10
+ "series": [
11
+ {
12
+ "key": "cpu",
13
+ "label": "CPU Usage",
14
+ "unit": "cores",
15
+ "latest": 0.25,
16
+ "points": [
17
+ {
18
+ "timestamp": "2026-08-09T14:00:00Z",
19
+ "value": 0.25
20
+ }
21
+ ]
22
+ }
23
+ ]
24
+ }
25
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "appTitle": "Soha",
3
+ "sidebarTitle": "Soha",
4
+ "loginLogoUrl": "/logo.svg",
5
+ "expandedLogoUrl": "/logo.svg",
6
+ "collapsedLogoUrl": "/logo.svg",
7
+ "faviconUrl": "/favicon.ico",
8
+ "themeColor": "blue"
9
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "appTitle": "Soha",
3
+ "sidebarTitle": "Soha",
4
+ "loginLogoUrl": "/logo.svg",
5
+ "expandedLogoUrl": "/logo.svg",
6
+ "collapsedLogoUrl": "/logo.svg",
7
+ "faviconUrl": "/favicon.ico"
8
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "defaultProviderId": "github",
3
+ "localPasswordLoginEnabled": true
4
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "providers": [
3
+ {
4
+ "id": "github",
5
+ "name": "GitHub",
6
+ "type": "oauth2",
7
+ "enabled": true,
8
+ "clientId": "public-client-id",
9
+ "clientSecret": "new-client-secret",
10
+ "certificate": "-----BEGIN CERTIFICATE-----\nMIIB\n-----END CERTIFICATE-----"
11
+ }
12
+ ],
13
+ "defaultProviderId": "github",
14
+ "localPasswordLoginEnabled": false
15
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "file": "branding-image-bytes"
3
+ }
@@ -14,7 +14,7 @@ import (
14
14
  "time"
15
15
  )
16
16
 
17
- const defaultUserAgent = "opensoha-contracts/0.1.8"
17
+ const defaultUserAgent = "opensoha-contracts/0.1.9"
18
18
 
19
19
  type Client struct {
20
20
  BaseURL string