@opensoha/contracts 0.1.15 → 0.1.16

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 (83) hide show
  1. package/auth/catalog_generated.go +2 -2
  2. package/auth/permission-catalog.json +9 -8
  3. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  4. package/compat/openapi-loose-boundaries-0.1.0.json +58 -1
  5. package/fixtures/openapi/AlertRuleEnvelope/invalid/missing-data.json +1 -0
  6. package/fixtures/openapi/AlertRuleEnvelope/valid/metrics.json +11 -0
  7. package/fixtures/openapi/AlertRuleInput/invalid/missing-name.json +3 -0
  8. package/fixtures/openapi/AlertRuleInput/valid/metrics.json +25 -0
  9. package/fixtures/openapi/AlertRuleRunListEnvelope/invalid/missing-rule-id.json +12 -0
  10. package/fixtures/openapi/AlertRuleRunListEnvelope/valid/items.json +13 -0
  11. package/fixtures/openapi/AlertRuleTestResultEnvelope/invalid/missing-executed-at.json +5 -0
  12. package/fixtures/openapi/AlertRuleTestResultEnvelope/valid/clear.json +10 -0
  13. package/fixtures/openapi/ApplicationRuntimeEnvironment/invalid/unknown-status.json +7 -0
  14. package/fixtures/openapi/ApplicationRuntimeEnvironment/valid/unavailable.json +7 -0
  15. package/fixtures/openapi/ApplicationWorkflowInput/invalid/owner-fields.json +7 -0
  16. package/fixtures/openapi/ApplicationWorkflowInput/valid/minimal.json +9 -0
  17. package/fixtures/openapi/BrandingAssetUploadEnvelope/valid/svg-data-url.json +5 -0
  18. package/fixtures/openapi/BrowserHandoffCompletionEnvelope/invalid/token-leak.json +7 -0
  19. package/fixtures/openapi/BrowserHandoffCompletionEnvelope/valid/completed.json +6 -0
  20. package/fixtures/openapi/BrowserHandoffEnvelope/invalid/missing-principal.json +12 -0
  21. package/fixtures/openapi/BrowserHandoffEnvelope/valid/pending.json +11 -0
  22. package/fixtures/openapi/ChangePasswordRequest/invalid/missing-current-password.json +3 -0
  23. package/fixtures/openapi/ChangePasswordRequest/invalid/short-new-password.json +4 -0
  24. package/fixtures/openapi/ChangePasswordRequest/valid/password.json +4 -0
  25. package/fixtures/openapi/DesktopAuthAttemptCreateRequest/invalid/https-redirect.json +6 -0
  26. package/fixtures/openapi/DesktopAuthAttemptCreateRequest/invalid/localhost-redirect.json +6 -0
  27. package/fixtures/openapi/DesktopAuthAttemptCreateRequest/invalid/plain-challenge.json +6 -0
  28. package/fixtures/openapi/DesktopAuthAttemptCreateRequest/invalid/privileged-port.json +6 -0
  29. package/fixtures/openapi/DesktopAuthAttemptCreateRequest/invalid/short-callback.json +6 -0
  30. package/fixtures/openapi/DesktopAuthAttemptCreateRequest/valid/loopback.json +6 -0
  31. package/fixtures/openapi/DesktopAuthAttemptEnvelope/invalid/missing-expiry.json +6 -0
  32. package/fixtures/openapi/DesktopAuthAttemptEnvelope/valid/attempt.json +7 -0
  33. package/fixtures/openapi/DesktopAuthAttemptExchangeRequest/invalid/short-verifier.json +4 -0
  34. package/fixtures/openapi/DesktopAuthAttemptExchangeRequest/valid/exchange.json +4 -0
  35. package/fixtures/openapi/IdentityApplication/invalid/missing-id.json +7 -0
  36. package/fixtures/openapi/IdentityApplication/valid/full.json +30 -0
  37. package/fixtures/openapi/IdentityApplicationEnvelope/invalid/missing-data.json +1 -0
  38. package/fixtures/openapi/IdentityApplicationEnvelope/valid/minimal.json +10 -0
  39. package/fixtures/openapi/IdentityApplicationLaunchListEnvelope/invalid/missing-user.json +11 -0
  40. package/fixtures/openapi/IdentityApplicationLaunchListEnvelope/valid/minimal.json +12 -0
  41. package/fixtures/openapi/LogQuery/invalid/empty-data-source-id.json +7 -0
  42. package/fixtures/openapi/LogQuery/valid/durable-data-source.json +14 -0
  43. package/fixtures/openapi/ManifestPackage/invalid/missing-application.json +12 -0
  44. package/fixtures/openapi/ManifestPackage/valid/service-scoped.json +29 -0
  45. package/fixtures/openapi/OIDCClientInput/valid/generated-client-id.json +8 -0
  46. package/fixtures/openapi/OIDCClientSecretRevealEnvelope/invalid/missing-secret.json +6 -0
  47. package/fixtures/openapi/OIDCClientSecretRevealEnvelope/valid/reveal.json +7 -0
  48. package/fixtures/openapi/PasswordChangeResult/invalid/unexpected-status.json +3 -0
  49. package/fixtures/openapi/PasswordChangeResult/valid/ok.json +3 -0
  50. package/fixtures/openapi/PortalApplicationListEnvelope/invalid/missing-items.json +1 -0
  51. package/fixtures/openapi/PortalApplicationListEnvelope/valid/minimal.json +12 -0
  52. package/fixtures/openapi/PortalBootstrapEnvelope/invalid/missing-security.json +17 -0
  53. package/fixtures/openapi/PortalBootstrapEnvelope/valid/minimal.json +31 -0
  54. package/fixtures/openapi/PortalLaunchDecisionEnvelope/invalid/missing-launch-url.json +14 -0
  55. package/fixtures/openapi/PortalLaunchDecisionEnvelope/valid/desktop-handoff.json +16 -0
  56. package/fixtures/openapi/PortalLaunchRequest/invalid/unknown-surface.json +3 -0
  57. package/fixtures/openapi/PortalLaunchRequest/valid/default-web.json +1 -0
  58. package/fixtures/openapi/PortalLaunchRequest/valid/desktop.json +3 -0
  59. package/fixtures/openapi/PortalSecuritySummaryEnvelope/invalid/missing-session-count.json +15 -0
  60. package/fixtures/openapi/PortalSecuritySummaryEnvelope/valid/minimal.json +16 -0
  61. package/fixtures/openapi/ScopeGrantInput/invalid/delivery-missing-business-line.json +7 -0
  62. package/fixtures/openapi/ScopeGrantInput/invalid/platform-missing-clusters.json +7 -0
  63. package/fixtures/openapi/ScopeGrantInput/valid/platform.json +8 -0
  64. package/fixtures/openapi/SoftwarePackage/valid/software-package.json +6 -0
  65. package/fixtures/openapi/SoftwarePackageDownloadRecord/invalid/negative-duration.json +6 -0
  66. package/fixtures/openapi/SoftwarePackageDownloadRecord/valid/software-package-download-record.json +8 -0
  67. package/fixtures/openapi/SoftwarePackageURLImportRequest/valid/software-package-url-import-request.json +4 -0
  68. package/fixtures/openapi/SoftwareStorage/invalid/software-storage.json +1 -1
  69. package/fixtures/openapi/SoftwareStorage/valid/software-storage.json +13 -1
  70. package/fixtures/openapi/SystemIntegrationCreateRequest/invalid/s3-storage-missing-name.json +5 -0
  71. package/fixtures/openapi/SystemIntegrationCreateRequest/valid/s3-software-storage.json +18 -0
  72. package/fixtures/openapi/UpdateProfileRequest/invalid/invalid-avatar-fit.json +5 -0
  73. package/fixtures/openapi/UpdateProfileRequest/invalid/missing-email.json +3 -0
  74. package/fixtures/openapi/UpdateProfileRequest/valid/profile.json +7 -0
  75. package/gen/go/sohaapi/client.go +210 -5
  76. package/gen/go/sohaapi/client_test.go +128 -5
  77. package/gen/go/sohaapi/types.go +1105 -132
  78. package/gen/go/sohaapi/types_test.go +22 -0
  79. package/gen/ts/sohaapi/index.ts +2007 -34
  80. package/openapi/soha-api.json +4169 -136
  81. package/openapi/soha-api.yaml +2219 -9
  82. package/openapi/spec_generated.go +3 -3
  83. package/package.json +1 -1
@@ -6,8 +6,8 @@ import _ "embed"
6
6
 
7
7
  const (
8
8
  PermissionCatalogVersion = "2.0.0"
9
- PermissionCatalogContentSHA256 = "58321138575c22b20933cf2c1db2742b741a123bb8f6a2983bb436e84be4e58a"
10
- PermissionCatalogSHA256 = "38ac1a2e7087ff4831e8f6390b804e32f918b49b9af3165fdf2df286d64fe3c8"
9
+ PermissionCatalogContentSHA256 = "5aa6fa361c2ab8d987415fb1eb93218510deb9359a68212dfe86655dbfaeea5e"
10
+ PermissionCatalogSHA256 = "01c80a71427e3d7f4898212fb1667405c27f1b798318d9eac86ece8262cd188c"
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": "2.0.0",
4
- "contentHash": "sha256:58321138575c22b20933cf2c1db2742b741a123bb8f6a2983bb436e84be4e58a",
4
+ "contentHash": "sha256:5aa6fa361c2ab8d987415fb1eb93218510deb9359a68212dfe86655dbfaeea5e",
5
5
  "permissions": [
6
6
  {
7
7
  "key": "access.directory.create",
@@ -10492,9 +10492,9 @@
10492
10492
  "replacedBy": [
10493
10493
  "virtualization.clusters.create",
10494
10494
  "virtualization.clusters.delete",
10495
- "virtualization.clusters.sync",
10496
10495
  "virtualization.clusters.test",
10497
- "virtualization.clusters.update"
10496
+ "virtualization.clusters.update",
10497
+ "virtualization.sync.sync"
10498
10498
  ]
10499
10499
  },
10500
10500
  {
@@ -10509,10 +10509,10 @@
10509
10509
  "resource"
10510
10510
  ],
10511
10511
  "approvalPolicy": "never",
10512
- "status": "active",
10513
- "assignable": true,
10514
- "legacyAliases": [
10515
- "virtualization.clusters.manage"
10512
+ "status": "legacy",
10513
+ "assignable": false,
10514
+ "replacedBy": [
10515
+ "virtualization.sync.sync"
10516
10516
  ]
10517
10517
  },
10518
10518
  {
@@ -10877,6 +10877,7 @@
10877
10877
  "status": "active",
10878
10878
  "assignable": true,
10879
10879
  "legacyAliases": [
10880
+ "virtualization.clusters.sync",
10880
10881
  "virtualization.sync.manage"
10881
10882
  ]
10882
10883
  },
@@ -11068,7 +11069,7 @@
11068
11069
  "domain": "workbench",
11069
11070
  "resource": "delivery",
11070
11071
  "action": "view",
11071
- "displayName": "访问应用交付工作台",
11072
+ "displayName": "访问持续交付工作台",
11072
11073
  "riskLevel": "read",
11073
11074
  "scopeKinds": [
11074
11075
  "tenant",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.15",
2
+ "version": "0.1.16",
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.15",
2
+ "version": "0.1.16",
3
3
  "generatedFrom": "openapi/soha-api.yaml",
4
4
  "entries": [
5
5
  {
@@ -170,6 +170,10 @@
170
170
  "kind": "additionalPropertiesTrue",
171
171
  "path": "components/schemas/ApplicationServiceInput/properties/metadata/additionalProperties"
172
172
  },
173
+ {
174
+ "kind": "additionalPropertiesTrue",
175
+ "path": "components/schemas/ApplicationWorkflowInput/properties/definition/additionalProperties"
176
+ },
173
177
  {
174
178
  "kind": "additionalPropertiesTrue",
175
179
  "path": "components/schemas/ApprovalRequest/properties/relatedIds/additionalProperties"
@@ -206,6 +210,14 @@
206
210
  "kind": "additionalPropertiesTrue",
207
211
  "path": "components/schemas/AuthBootstrapEnvelope/properties/data/properties/permissionSnapshot/additionalProperties"
208
212
  },
213
+ {
214
+ "kind": "additionalPropertiesTrue",
215
+ "path": "components/schemas/IdentityApplication/properties/metadata/additionalProperties"
216
+ },
217
+ {
218
+ "kind": "additionalPropertiesTrue",
219
+ "path": "components/schemas/IdentityApplicationInput/properties/metadata/additionalProperties"
220
+ },
209
221
  {
210
222
  "kind": "additionalPropertiesTrue",
211
223
  "path": "components/schemas/BuildPolicy/properties/buildArgs/additionalProperties"
@@ -666,6 +678,51 @@
666
678
  "path": "components/schemas/ApprovalRequest/properties/output",
667
679
  "target": "#/components/schemas/AnyValue"
668
680
  },
681
+ {
682
+ "kind": "schemaRef",
683
+ "path": "components/schemas/AlertRule/properties/datasourceSelector",
684
+ "target": "#/components/schemas/GenericObject"
685
+ },
686
+ {
687
+ "kind": "schemaRef",
688
+ "path": "components/schemas/AlertRule/properties/querySpec",
689
+ "target": "#/components/schemas/GenericObject"
690
+ },
691
+ {
692
+ "kind": "schemaRef",
693
+ "path": "components/schemas/AlertRule/properties/thresholdSpec",
694
+ "target": "#/components/schemas/GenericObject"
695
+ },
696
+ {
697
+ "kind": "schemaRef",
698
+ "path": "components/schemas/AlertRuleInput/properties/datasourceSelector",
699
+ "target": "#/components/schemas/GenericObject"
700
+ },
701
+ {
702
+ "kind": "schemaRef",
703
+ "path": "components/schemas/AlertRuleInput/properties/querySpec",
704
+ "target": "#/components/schemas/GenericObject"
705
+ },
706
+ {
707
+ "kind": "schemaRef",
708
+ "path": "components/schemas/AlertRuleInput/properties/thresholdSpec",
709
+ "target": "#/components/schemas/GenericObject"
710
+ },
711
+ {
712
+ "kind": "schemaRef",
713
+ "path": "components/schemas/AlertRuleRun/properties/result",
714
+ "target": "#/components/schemas/GenericObject"
715
+ },
716
+ {
717
+ "kind": "schemaRef",
718
+ "path": "components/schemas/AlertRuleTestResult/properties/notificationPreview/items",
719
+ "target": "#/components/schemas/GenericObject"
720
+ },
721
+ {
722
+ "kind": "schemaRef",
723
+ "path": "components/schemas/AlertRuleTestResult/properties/samples/items",
724
+ "target": "#/components/schemas/GenericObject"
725
+ },
669
726
  {
670
727
  "kind": "schemaRef",
671
728
  "path": "components/schemas/DeliveryDraft/properties/executionHints",
@@ -0,0 +1,11 @@
1
+ {
2
+ "data": {
3
+ "id": "rule-checkout-errors",
4
+ "name": "Checkout error rate",
5
+ "ruleType": "metrics",
6
+ "forSeconds": 120,
7
+ "enabled": true,
8
+ "createdAt": "2026-08-31T00:00:00Z",
9
+ "updatedAt": "2026-08-31T00:05:00Z"
10
+ }
11
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "ruleType": "metrics"
3
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "Checkout error rate",
3
+ "ruleType": "metrics",
4
+ "datasourceSelector": {
5
+ "id": "prometheus-main"
6
+ },
7
+ "querySpec": {
8
+ "metricKey": "http.server.errors"
9
+ },
10
+ "thresholdSpec": {
11
+ "operator": "gte",
12
+ "value": 5
13
+ },
14
+ "forSeconds": 120,
15
+ "groupBy": ["service"],
16
+ "labels": {
17
+ "severity": "critical"
18
+ },
19
+ "annotations": {
20
+ "summary": "Checkout error rate is elevated"
21
+ },
22
+ "notificationPolicyId": "policy-primary",
23
+ "healingPolicyIds": ["healing-checkout"],
24
+ "enabled": true
25
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "run-1",
5
+ "status": "completed",
6
+ "matched": false,
7
+ "durationMs": 42,
8
+ "createdAt": "2026-08-31T00:06:00Z",
9
+ "updatedAt": "2026-08-31T00:06:00Z"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "run-1",
5
+ "ruleId": "rule-checkout-errors",
6
+ "status": "completed",
7
+ "matched": false,
8
+ "durationMs": 42,
9
+ "createdAt": "2026-08-31T00:06:00Z",
10
+ "updatedAt": "2026-08-31T00:06:00Z"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "data": {
3
+ "matched": false
4
+ }
5
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "data": {
3
+ "ruleId": "rule-checkout-errors",
4
+ "ruleType": "metrics",
5
+ "state": "clear",
6
+ "summary": "metrics threshold is clear",
7
+ "matched": false,
8
+ "executedAt": "2026-08-31T00:06:00Z"
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "applicationEnvironmentId": "binding-1",
3
+ "environmentId": "production",
4
+ "requiresApproval": true,
5
+ "status": "offline",
6
+ "workloads": []
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "applicationEnvironmentId": "binding-1",
3
+ "environmentId": "production",
4
+ "requiresApproval": true,
5
+ "status": "unavailable",
6
+ "workloads": []
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "key": "application-app-2",
3
+ "name": "Production release",
4
+ "category": "application:app-2",
5
+ "definition": {},
6
+ "enabled": true
7
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "Production release",
3
+ "definition": {
4
+ "mode": "release_dag",
5
+ "nodes": [],
6
+ "edges": []
7
+ },
8
+ "enabled": true
9
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "data": {
3
+ "url": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg=="
4
+ }
5
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "data": {
3
+ "status": "completed",
4
+ "destinationUrl": "/oauth2/authorize?client_id=console",
5
+ "accessToken": "must-not-be-returned"
6
+ }
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "data": {
3
+ "status": "completed",
4
+ "destinationUrl": "/oauth2/authorize?client_id=console"
5
+ }
6
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "data": {
3
+ "application": {
4
+ "id": "app-1",
5
+ "name": "Soha Console"
6
+ },
7
+ "accountName": "OpenSoha",
8
+ "email": "must-not-be-exposed@example.com",
9
+ "status": "pending",
10
+ "expiresAt": "2026-08-31T00:01:00Z"
11
+ }
12
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "data": {
3
+ "application": {
4
+ "id": "app-1",
5
+ "name": "Soha Console"
6
+ },
7
+ "accountName": "OpenSoha",
8
+ "status": "pending",
9
+ "expiresAt": "2026-08-31T00:01:00Z"
10
+ }
11
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "newPassword": "new-password"
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "currentPassword": "current-password",
3
+ "newPassword": "short"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "currentPassword": "current-password",
3
+ "newPassword": "new-password"
4
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "providerId": "corp-oidc",
3
+ "redirectUri": "https://127.0.0.1:49152/callback/T4I0wIrt0Pp4qABC",
4
+ "codeChallenge": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
5
+ "codeChallengeMethod": "S256"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "providerId": "corp-oidc",
3
+ "redirectUri": "http://localhost:49152/callback/T4I0wIrt0Pp4qABC",
4
+ "codeChallenge": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
5
+ "codeChallengeMethod": "S256"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "providerId": "corp-oidc",
3
+ "redirectUri": "http://127.0.0.1:49152/callback/T4I0wIrt0Pp4qABC",
4
+ "codeChallenge": "short",
5
+ "codeChallengeMethod": "plain"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "providerId": "corp-oidc",
3
+ "redirectUri": "http://127.0.0.1:1023/callback/T4I0wIrt0Pp4qABC",
4
+ "codeChallenge": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
5
+ "codeChallengeMethod": "S256"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "providerId": "corp-oidc",
3
+ "redirectUri": "http://127.0.0.1:49152/callback/short",
4
+ "codeChallenge": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
5
+ "codeChallengeMethod": "S256"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "providerId": "corp-oidc",
3
+ "redirectUri": "http://127.0.0.1:49152/callback/T4I0wIrt0Pp4qABC",
4
+ "codeChallenge": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
5
+ "codeChallengeMethod": "S256"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "data": {
3
+ "attemptId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
4
+ "authorizationUrl": "https://soha.example.com/api/v1/auth/desktop/attempts/3fa85f64-5717-4562-b3fc-2c963f66afa6/start"
5
+ }
6
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "data": {
3
+ "attemptId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
4
+ "authorizationUrl": "https://soha.example.com/api/v1/auth/desktop/attempts/3fa85f64-5717-4562-b3fc-2c963f66afa6/start",
5
+ "expiresAt": "2026-08-20T12:00:00Z"
6
+ }
7
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "code": "ZGVza3RvcC1jYWxsYmFjay1jb2Rl",
3
+ "codeVerifier": "short"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "code": "ZGVza3RvcC1jYWxsYmFjay1jb2Rl",
3
+ "codeVerifier": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
4
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "Example App",
3
+ "slug": "example-app",
4
+ "status": "enabled",
5
+ "createdAt": "2026-08-24T08:00:00Z",
6
+ "updatedAt": "2026-08-24T08:00:00Z"
7
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "id": "app-example",
3
+ "name": "Example App",
4
+ "slug": "example-app",
5
+ "description": "Example identity application",
6
+ "iconUrl": "https://app.example.com/icon.png",
7
+ "tags": ["platform"],
8
+ "launchUrl": "https://app.example.com",
9
+ "providerId": "provider-example",
10
+ "providerType": "oidc",
11
+ "portalVisible": true,
12
+ "featured": false,
13
+ "sortOrder": 100,
14
+ "status": "enabled",
15
+ "metadata": {
16
+ "owner": "platform"
17
+ },
18
+ "assignments": [
19
+ {
20
+ "id": "assignment-example",
21
+ "applicationId": "app-example",
22
+ "subjectType": "role",
23
+ "subjectId": "platform-admin",
24
+ "effect": "allow",
25
+ "createdAt": "2026-08-24T08:00:00Z"
26
+ }
27
+ ],
28
+ "createdAt": "2026-08-24T08:00:00Z",
29
+ "updatedAt": "2026-08-24T08:00:00Z"
30
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "data": {
3
+ "id": "app-1",
4
+ "name": "Soha Console",
5
+ "slug": "soha-console",
6
+ "status": "enabled",
7
+ "createdAt": "2026-08-31T00:00:00Z",
8
+ "updatedAt": "2026-08-31T00:00:00Z"
9
+ }
10
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "launch-1",
5
+ "applicationId": "app-1",
6
+ "providerType": "oidc",
7
+ "result": "allow",
8
+ "createdAt": "2026-08-31T00:00:00Z"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "launch-1",
5
+ "applicationId": "app-1",
6
+ "userId": "user-1",
7
+ "providerType": "oidc",
8
+ "result": "allow",
9
+ "createdAt": "2026-08-31T00:00:00Z"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "sourceMode": "durable",
3
+ "dataSourceId": "",
4
+ "selector": {
5
+ "namespace": "payments"
6
+ }
7
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "sourceMode": "durable",
3
+ "dataSourceId": "loki-main",
4
+ "selector": {
5
+ "namespace": "payments",
6
+ "workloadKind": "Deployment",
7
+ "workloadName": "checkout-api"
8
+ },
9
+ "from": "2026-08-31T08:00:00Z",
10
+ "to": "2026-08-31T08:15:00Z",
11
+ "limit": 200,
12
+ "direction": "backward",
13
+ "text": "upstream timeout"
14
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "id": "manifest-package-1",
3
+ "name": "checkout-api-ingress",
4
+ "serviceId": "service-checkout-api",
5
+ "renderer": "raw_yaml",
6
+ "status": "draft",
7
+ "currentRevision": 0,
8
+ "files": [],
9
+ "bindings": [],
10
+ "createdAt": "2026-08-27T00:00:00Z",
11
+ "updatedAt": "2026-08-27T00:00:00Z"
12
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "id": "manifest-package-1",
3
+ "name": "checkout-api-ingress",
4
+ "description": "Service-level delivery extensions",
5
+ "applicationId": "app-1",
6
+ "serviceId": "service-checkout-api",
7
+ "renderer": "raw_yaml",
8
+ "status": "draft",
9
+ "currentRevision": 0,
10
+ "files": [
11
+ {
12
+ "path": "ingress.yaml",
13
+ "content": "apiVersion: networking.k8s.io/v1\nkind: Ingress\n"
14
+ }
15
+ ],
16
+ "bindings": [
17
+ {
18
+ "id": "binding-1",
19
+ "applicationEnvironmentId": "app-env-prod",
20
+ "environmentKey": "prod",
21
+ "clusterId": "cluster-prod",
22
+ "namespace": "checkout",
23
+ "overlay": { "host": "checkout.example.com" },
24
+ "status": "ready"
25
+ }
26
+ ],
27
+ "createdAt": "2026-08-27T00:00:00Z",
28
+ "updatedAt": "2026-08-27T00:00:00Z"
29
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "clientType": "confidential",
3
+ "redirectUris": ["https://app.example.com/oauth/callback"],
4
+ "allowedScopes": ["openid", "profile", "email"],
5
+ "allowedGrantTypes": ["authorization_code"],
6
+ "requirePkce": true,
7
+ "status": "enabled"
8
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "data": {
3
+ "clientId": "generated-client-id",
4
+ "revealedAt": "2026-08-24T08:00:00Z"
5
+ }
6
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "data": {
3
+ "clientId": "generated-client-id",
4
+ "clientSecret": "revealable-client-secret",
5
+ "revealedAt": "2026-08-24T08:00:00Z"
6
+ }
7
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "status": "changed"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "status": "ok"
3
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "app-1",
5
+ "name": "Soha Console",
6
+ "slug": "soha-console",
7
+ "status": "enabled",
8
+ "createdAt": "2026-08-31T00:00:00Z",
9
+ "updatedAt": "2026-08-31T00:00:00Z"
10
+ }
11
+ ]
12
+ }