@opensoha/contracts 0.1.20 → 0.1.22
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/auth/catalog_generated.go +2 -2
- package/auth/permission-catalog.json +81 -1
- package/compat/json-schema-ecosystem-0.1.0.json +1 -1
- package/compat/openapi-loose-boundaries-0.1.0.json +1 -1
- package/fixtures/json-schema/network-ingest-event/invalid/proxy-runtime-negative-total.json +19 -0
- package/fixtures/json-schema/network-ingest-event/valid/proxy-runtime-sample.json +20 -0
- package/fixtures/json-schema/proxy-runtime/invalid/v2ray-connection-snapshot.json +10 -0
- package/fixtures/json-schema/proxy-runtime/valid/mihomo-observation.json +16 -0
- package/fixtures/openapi/KubernetesCustomResourceDefinition/invalid/empty-uid.json +1 -0
- package/fixtures/openapi/KubernetesCustomResourceDefinition/valid/deleting-definition.json +1 -0
- package/fixtures/openapi/KubernetesResourceUpdatePlanRequest/valid/range-kind.json +5 -0
- package/fixtures/openapi/KubernetesResourceYaml/valid/range-kind.json +5 -0
- package/fixtures/openapi/NetworkProxyConfigurationInput/invalid/empty-content.json +1 -0
- package/fixtures/openapi/NetworkProxyConfigurationInput/valid/enabled.json +1 -0
- package/fixtures/openapi/NetworkProxyInstanceInput/invalid/unknown-engine.json +1 -0
- package/fixtures/openapi/NetworkProxyInstanceInput/valid/mihomo.json +1 -0
- package/gen/go/sohaapi/client.go +1 -1
- package/gen/go/sohaapi/client_test.go +25 -0
- package/gen/go/sohaapi/types.go +79 -11
- package/gen/go/sohaapi/types_test.go +30 -0
- package/gen/ts/sohaapi/index.ts +264 -156
- package/go.mod +4 -4
- package/go.sum +4 -4
- package/network/README.md +12 -0
- package/network/network-ingest-event.schema.json +21 -3
- package/network/network-runtime-protocol.schema.json +2 -2
- package/network/proxy-runtime.schema.json +113 -0
- package/network/schema.go +7 -0
- package/openapi/soha-api.json +412 -4
- package/openapi/soha-api.yaml +381 -251
- package/openapi/spec_generated.go +3 -3
- package/package.json +2 -1
- package/resource/models.go +2 -0
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"producerId": { "$ref": "#/$defs/Identifier" },
|
|
44
44
|
"runtimeId": { "$ref": "#/$defs/Identifier" },
|
|
45
|
-
"runtimeKind": { "enum": ["endpoint", "gateway", "nas"] },
|
|
45
|
+
"runtimeKind": { "enum": ["endpoint", "gateway", "nas", "proxy"] },
|
|
46
46
|
"occurredAt": { "type": "string", "format": "date-time" },
|
|
47
47
|
"expiresAt": { "type": "string", "format": "date-time" },
|
|
48
48
|
"payload": {
|
|
@@ -712,7 +712,7 @@
|
|
|
712
712
|
"minItems": 1,
|
|
713
713
|
"maxItems": 32,
|
|
714
714
|
"uniqueItems": true,
|
|
715
|
-
"items": { "enum": ["wireguard", "mihomo", "route-coordinator", "dns-coordinator", "managed-vpn-v1", "vpn-probe-v1", "vpn-metrics-v1"] }
|
|
715
|
+
"items": { "enum": ["wireguard", "mihomo", "route-coordinator", "dns-coordinator", "managed-vpn-v1", "vpn-probe-v1", "vpn-metrics-v1", "proxy-runtime-v1"] }
|
|
716
716
|
}
|
|
717
717
|
},
|
|
718
718
|
"allOf": [{
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://contracts.opensoha.dev/network/proxy-runtime.schema.json",
|
|
4
|
+
"title": "OpenSoha Proxy Runtime Message",
|
|
5
|
+
"description": "Messages on the authenticated proxy runtime channel. Configuration content is delivered only to the enrolled runtime and is never returned by management reads.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["schemaVersion", "runtimeId", "messageType", "occurredAt", "payload"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"schemaVersion": { "const": "proxy-runtime/v1alpha1" },
|
|
11
|
+
"runtimeId": { "$ref": "#/$defs/Identifier" },
|
|
12
|
+
"messageType": { "enum": ["configuration.desired", "configuration.applied", "observation", "connections.snapshot", "connection.close.request", "connection.close.result"] },
|
|
13
|
+
"occurredAt": { "type": "string", "format": "date-time" },
|
|
14
|
+
"payload": {
|
|
15
|
+
"oneOf": [
|
|
16
|
+
{ "$ref": "#/$defs/ConfigurationDesired" },
|
|
17
|
+
{ "$ref": "#/$defs/ConfigurationApplied" },
|
|
18
|
+
{ "$ref": "#/$defs/Observation" },
|
|
19
|
+
{ "$ref": "#/$defs/ConnectionsSnapshot" },
|
|
20
|
+
{ "$ref": "#/$defs/ConnectionCloseRequest" },
|
|
21
|
+
{ "$ref": "#/$defs/ConnectionCloseResult" }
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"allOf": [
|
|
26
|
+
{ "if": { "properties": { "messageType": { "const": "configuration.desired" } }, "required": ["messageType"] }, "then": { "properties": { "payload": { "$ref": "#/$defs/ConfigurationDesired" } } } },
|
|
27
|
+
{ "if": { "properties": { "messageType": { "const": "configuration.applied" } }, "required": ["messageType"] }, "then": { "properties": { "payload": { "$ref": "#/$defs/ConfigurationApplied" } } } },
|
|
28
|
+
{ "if": { "properties": { "messageType": { "const": "observation" } }, "required": ["messageType"] }, "then": { "properties": { "payload": { "$ref": "#/$defs/Observation" } } } },
|
|
29
|
+
{ "if": { "properties": { "messageType": { "const": "connections.snapshot" } }, "required": ["messageType"] }, "then": { "properties": { "payload": { "$ref": "#/$defs/ConnectionsSnapshot" } } } },
|
|
30
|
+
{ "if": { "properties": { "messageType": { "const": "connection.close.request" } }, "required": ["messageType"] }, "then": { "properties": { "payload": { "$ref": "#/$defs/ConnectionCloseRequest" } } } },
|
|
31
|
+
{ "if": { "properties": { "messageType": { "const": "connection.close.result" } }, "required": ["messageType"] }, "then": { "properties": { "payload": { "$ref": "#/$defs/ConnectionCloseResult" } } } }
|
|
32
|
+
],
|
|
33
|
+
"$defs": {
|
|
34
|
+
"Identifier": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$" },
|
|
35
|
+
"Engine": { "enum": ["mihomo", "sing-box", "v2ray"] },
|
|
36
|
+
"Hash": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
|
|
37
|
+
"ConfigurationDesired": {
|
|
38
|
+
"type": "object", "additionalProperties": false,
|
|
39
|
+
"required": ["revision", "engine", "enabled", "contentHash", "content", "validUntil"],
|
|
40
|
+
"properties": {
|
|
41
|
+
"revision": { "type": "integer", "minimum": 1 },
|
|
42
|
+
"engine": { "$ref": "#/$defs/Engine" },
|
|
43
|
+
"enabled": { "type": "boolean" },
|
|
44
|
+
"contentHash": { "$ref": "#/$defs/Hash" },
|
|
45
|
+
"content": { "type": "string", "minLength": 1, "maxLength": 1048576, "writeOnly": true },
|
|
46
|
+
"validUntil": { "type": "string", "format": "date-time" }
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"ConfigurationApplied": {
|
|
50
|
+
"type": "object", "additionalProperties": false,
|
|
51
|
+
"required": ["revision", "status", "readbackHash"],
|
|
52
|
+
"properties": {
|
|
53
|
+
"revision": { "type": "integer", "minimum": 1 },
|
|
54
|
+
"status": { "enum": ["applied", "rejected", "rolled-back"] },
|
|
55
|
+
"readbackHash": { "$ref": "#/$defs/Hash" },
|
|
56
|
+
"reasonCode": { "type": "string", "minLength": 1, "maxLength": 128 }
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"Observation": {
|
|
60
|
+
"type": "object", "additionalProperties": false,
|
|
61
|
+
"required": ["engine", "engineVersion", "health", "capabilities", "uptimeSeconds", "uploadTotal", "downloadTotal"],
|
|
62
|
+
"properties": {
|
|
63
|
+
"engine": { "$ref": "#/$defs/Engine" },
|
|
64
|
+
"engineVersion": { "type": "string", "minLength": 1, "maxLength": 64 },
|
|
65
|
+
"health": { "enum": ["healthy", "degraded", "unhealthy"] },
|
|
66
|
+
"capabilities": { "type": "array", "maxItems": 3, "uniqueItems": true, "items": { "enum": ["traffic", "connections", "close_connection"] } },
|
|
67
|
+
"reasonCode": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
68
|
+
"uptimeSeconds": { "type": "integer", "minimum": 0 },
|
|
69
|
+
"uploadTotal": { "type": "integer", "minimum": 0, "maximum": 9223372036854775807 },
|
|
70
|
+
"downloadTotal": { "type": "integer", "minimum": 0, "maximum": 9223372036854775807 },
|
|
71
|
+
"activeConnections": { "type": "integer", "minimum": 0, "maximum": 1000000 }
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"Connection": {
|
|
75
|
+
"type": "object", "additionalProperties": false,
|
|
76
|
+
"required": ["id", "destination", "network", "uploadBytes", "downloadBytes"],
|
|
77
|
+
"properties": {
|
|
78
|
+
"id": { "$ref": "#/$defs/Identifier" },
|
|
79
|
+
"destination": { "type": "string", "minLength": 1, "maxLength": 253 },
|
|
80
|
+
"network": { "enum": ["tcp", "udp", "other"] },
|
|
81
|
+
"uploadBytes": { "type": "integer", "minimum": 0 },
|
|
82
|
+
"downloadBytes": { "type": "integer", "minimum": 0 },
|
|
83
|
+
"startedAt": { "type": "string", "format": "date-time" }
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"ConnectionsSnapshot": {
|
|
87
|
+
"type": "object", "additionalProperties": false,
|
|
88
|
+
"required": ["engine", "connections"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"engine": { "enum": ["mihomo", "sing-box"] },
|
|
91
|
+
"connections": { "type": "array", "maxItems": 200, "items": { "$ref": "#/$defs/Connection" } }
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"ConnectionCloseRequest": {
|
|
95
|
+
"type": "object", "additionalProperties": false,
|
|
96
|
+
"required": ["commandId", "connectionId", "expiresAt"],
|
|
97
|
+
"properties": {
|
|
98
|
+
"commandId": { "$ref": "#/$defs/Identifier" },
|
|
99
|
+
"connectionId": { "$ref": "#/$defs/Identifier" },
|
|
100
|
+
"expiresAt": { "type": "string", "format": "date-time" }
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"ConnectionCloseResult": {
|
|
104
|
+
"type": "object", "additionalProperties": false,
|
|
105
|
+
"required": ["commandId", "status"],
|
|
106
|
+
"properties": {
|
|
107
|
+
"commandId": { "$ref": "#/$defs/Identifier" },
|
|
108
|
+
"status": { "enum": ["closed", "not-found", "failed"] },
|
|
109
|
+
"reasonCode": { "type": "string", "minLength": 1, "maxLength": 128 }
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
package/network/schema.go
CHANGED
|
@@ -11,6 +11,9 @@ var (
|
|
|
11
11
|
|
|
12
12
|
//go:embed network-radius-accounting.schema.json
|
|
13
13
|
radiusAccountingSchema []byte
|
|
14
|
+
|
|
15
|
+
//go:embed proxy-runtime.schema.json
|
|
16
|
+
proxyRuntimeSchema []byte
|
|
14
17
|
)
|
|
15
18
|
|
|
16
19
|
func RuntimeProtocolSchema() []byte {
|
|
@@ -24,3 +27,7 @@ func IngestEventSchema() []byte {
|
|
|
24
27
|
func RadiusAccountingSchema() []byte {
|
|
25
28
|
return append([]byte(nil), radiusAccountingSchema...)
|
|
26
29
|
}
|
|
30
|
+
|
|
31
|
+
func ProxyRuntimeSchema() []byte {
|
|
32
|
+
return append([]byte(nil), proxyRuntimeSchema...)
|
|
33
|
+
}
|
package/openapi/soha-api.json
CHANGED
|
@@ -24933,7 +24933,14 @@
|
|
|
24933
24933
|
"update",
|
|
24934
24934
|
"delete"
|
|
24935
24935
|
],
|
|
24936
|
-
"type": "string"
|
|
24936
|
+
"type": "string",
|
|
24937
|
+
"x-enum-varnames": [
|
|
24938
|
+
"CustomResourceAccessList",
|
|
24939
|
+
"CustomResourceAccessView",
|
|
24940
|
+
"CustomResourceAccessCreate",
|
|
24941
|
+
"CustomResourceAccessUpdate",
|
|
24942
|
+
"CustomResourceAccessDelete"
|
|
24943
|
+
]
|
|
24937
24944
|
},
|
|
24938
24945
|
"type": "array"
|
|
24939
24946
|
}
|
|
@@ -24972,6 +24979,10 @@
|
|
|
24972
24979
|
"createdAt": {
|
|
24973
24980
|
"type": "string"
|
|
24974
24981
|
},
|
|
24982
|
+
"deletingAt": {
|
|
24983
|
+
"format": "date-time",
|
|
24984
|
+
"type": "string"
|
|
24985
|
+
},
|
|
24975
24986
|
"group": {
|
|
24976
24987
|
"type": "string"
|
|
24977
24988
|
},
|
|
@@ -24987,6 +24998,11 @@
|
|
|
24987
24998
|
"scope": {
|
|
24988
24999
|
"type": "string"
|
|
24989
25000
|
},
|
|
25001
|
+
"uid": {
|
|
25002
|
+
"maxLength": 128,
|
|
25003
|
+
"minLength": 1,
|
|
25004
|
+
"type": "string"
|
|
25005
|
+
},
|
|
24990
25006
|
"version": {
|
|
24991
25007
|
"type": "string"
|
|
24992
25008
|
},
|
|
@@ -41707,6 +41723,173 @@
|
|
|
41707
41723
|
],
|
|
41708
41724
|
"type": "object"
|
|
41709
41725
|
},
|
|
41726
|
+
"NetworkProxyCapability": {
|
|
41727
|
+
"enum": [
|
|
41728
|
+
"traffic",
|
|
41729
|
+
"connections",
|
|
41730
|
+
"close_connection"
|
|
41731
|
+
],
|
|
41732
|
+
"type": "string",
|
|
41733
|
+
"x-enum-varnames": [
|
|
41734
|
+
"NetworkProxyCapabilityTraffic",
|
|
41735
|
+
"NetworkProxyCapabilityConnections",
|
|
41736
|
+
"NetworkProxyCapabilityCloseConnection"
|
|
41737
|
+
]
|
|
41738
|
+
},
|
|
41739
|
+
"NetworkProxyCloseCommandEnvelope": {
|
|
41740
|
+
"additionalProperties": false,
|
|
41741
|
+
"properties": {
|
|
41742
|
+
"commandId": {
|
|
41743
|
+
"maxLength": 128,
|
|
41744
|
+
"minLength": 1,
|
|
41745
|
+
"type": "string"
|
|
41746
|
+
},
|
|
41747
|
+
"expiresAt": {
|
|
41748
|
+
"format": "date-time",
|
|
41749
|
+
"type": "string"
|
|
41750
|
+
},
|
|
41751
|
+
"status": {
|
|
41752
|
+
"enum": [
|
|
41753
|
+
"pending",
|
|
41754
|
+
"closed",
|
|
41755
|
+
"not-found",
|
|
41756
|
+
"failed",
|
|
41757
|
+
"expired"
|
|
41758
|
+
],
|
|
41759
|
+
"type": "string"
|
|
41760
|
+
}
|
|
41761
|
+
},
|
|
41762
|
+
"required": [
|
|
41763
|
+
"commandId",
|
|
41764
|
+
"status",
|
|
41765
|
+
"expiresAt"
|
|
41766
|
+
],
|
|
41767
|
+
"type": "object"
|
|
41768
|
+
},
|
|
41769
|
+
"NetworkProxyConfigurationInput": {
|
|
41770
|
+
"additionalProperties": false,
|
|
41771
|
+
"properties": {
|
|
41772
|
+
"content": {
|
|
41773
|
+
"format": "password",
|
|
41774
|
+
"maxLength": 1048576,
|
|
41775
|
+
"minLength": 1,
|
|
41776
|
+
"type": "string",
|
|
41777
|
+
"writeOnly": true
|
|
41778
|
+
},
|
|
41779
|
+
"enabled": {
|
|
41780
|
+
"type": "boolean"
|
|
41781
|
+
},
|
|
41782
|
+
"expectedRevision": {
|
|
41783
|
+
"format": "int64",
|
|
41784
|
+
"minimum": 0,
|
|
41785
|
+
"type": "integer"
|
|
41786
|
+
}
|
|
41787
|
+
},
|
|
41788
|
+
"required": [
|
|
41789
|
+
"expectedRevision",
|
|
41790
|
+
"enabled",
|
|
41791
|
+
"content"
|
|
41792
|
+
],
|
|
41793
|
+
"type": "object"
|
|
41794
|
+
},
|
|
41795
|
+
"NetworkProxyConnection": {
|
|
41796
|
+
"additionalProperties": false,
|
|
41797
|
+
"properties": {
|
|
41798
|
+
"destination": {
|
|
41799
|
+
"maxLength": 253,
|
|
41800
|
+
"minLength": 1,
|
|
41801
|
+
"type": "string"
|
|
41802
|
+
},
|
|
41803
|
+
"downloadBytes": {
|
|
41804
|
+
"format": "int64",
|
|
41805
|
+
"minimum": 0,
|
|
41806
|
+
"type": "integer"
|
|
41807
|
+
},
|
|
41808
|
+
"id": {
|
|
41809
|
+
"maxLength": 128,
|
|
41810
|
+
"minLength": 1,
|
|
41811
|
+
"type": "string"
|
|
41812
|
+
},
|
|
41813
|
+
"network": {
|
|
41814
|
+
"enum": [
|
|
41815
|
+
"tcp",
|
|
41816
|
+
"udp",
|
|
41817
|
+
"other"
|
|
41818
|
+
],
|
|
41819
|
+
"type": "string",
|
|
41820
|
+
"x-enum-varnames": [
|
|
41821
|
+
"NetworkProxyConnectionNetworkTCP",
|
|
41822
|
+
"NetworkProxyConnectionNetworkUDP",
|
|
41823
|
+
"NetworkProxyConnectionNetworkOther"
|
|
41824
|
+
]
|
|
41825
|
+
},
|
|
41826
|
+
"startedAt": {
|
|
41827
|
+
"format": "date-time",
|
|
41828
|
+
"type": "string"
|
|
41829
|
+
},
|
|
41830
|
+
"uploadBytes": {
|
|
41831
|
+
"format": "int64",
|
|
41832
|
+
"minimum": 0,
|
|
41833
|
+
"type": "integer"
|
|
41834
|
+
}
|
|
41835
|
+
},
|
|
41836
|
+
"required": [
|
|
41837
|
+
"id",
|
|
41838
|
+
"destination",
|
|
41839
|
+
"network",
|
|
41840
|
+
"uploadBytes",
|
|
41841
|
+
"downloadBytes"
|
|
41842
|
+
],
|
|
41843
|
+
"type": "object"
|
|
41844
|
+
},
|
|
41845
|
+
"NetworkProxyConnectionsEnvelope": {
|
|
41846
|
+
"additionalProperties": false,
|
|
41847
|
+
"properties": {
|
|
41848
|
+
"connections": {
|
|
41849
|
+
"items": {
|
|
41850
|
+
"$ref": "#/components/schemas/NetworkProxyConnection"
|
|
41851
|
+
},
|
|
41852
|
+
"maxItems": 200,
|
|
41853
|
+
"type": "array"
|
|
41854
|
+
},
|
|
41855
|
+
"instanceId": {
|
|
41856
|
+
"maxLength": 128,
|
|
41857
|
+
"minLength": 1,
|
|
41858
|
+
"type": "string"
|
|
41859
|
+
},
|
|
41860
|
+
"observedAt": {
|
|
41861
|
+
"format": "date-time",
|
|
41862
|
+
"type": "string"
|
|
41863
|
+
},
|
|
41864
|
+
"state": {
|
|
41865
|
+
"enum": [
|
|
41866
|
+
"available",
|
|
41867
|
+
"unsupported",
|
|
41868
|
+
"unavailable"
|
|
41869
|
+
],
|
|
41870
|
+
"type": "string"
|
|
41871
|
+
}
|
|
41872
|
+
},
|
|
41873
|
+
"required": [
|
|
41874
|
+
"instanceId",
|
|
41875
|
+
"state",
|
|
41876
|
+
"connections"
|
|
41877
|
+
],
|
|
41878
|
+
"type": "object"
|
|
41879
|
+
},
|
|
41880
|
+
"NetworkProxyEngine": {
|
|
41881
|
+
"enum": [
|
|
41882
|
+
"mihomo",
|
|
41883
|
+
"sing-box",
|
|
41884
|
+
"v2ray"
|
|
41885
|
+
],
|
|
41886
|
+
"type": "string",
|
|
41887
|
+
"x-enum-varnames": [
|
|
41888
|
+
"NetworkProxyEngineMihomo",
|
|
41889
|
+
"NetworkProxyEngineSingBox",
|
|
41890
|
+
"NetworkProxyEngineV2Ray"
|
|
41891
|
+
]
|
|
41892
|
+
},
|
|
41710
41893
|
"NetworkProxyFlowSummary": {
|
|
41711
41894
|
"additionalProperties": false,
|
|
41712
41895
|
"properties": {
|
|
@@ -41770,6 +41953,228 @@
|
|
|
41770
41953
|
],
|
|
41771
41954
|
"type": "object"
|
|
41772
41955
|
},
|
|
41956
|
+
"NetworkProxyInstance": {
|
|
41957
|
+
"additionalProperties": false,
|
|
41958
|
+
"properties": {
|
|
41959
|
+
"capabilities": {
|
|
41960
|
+
"items": {
|
|
41961
|
+
"$ref": "#/components/schemas/NetworkProxyCapability"
|
|
41962
|
+
},
|
|
41963
|
+
"maxItems": 3,
|
|
41964
|
+
"type": "array",
|
|
41965
|
+
"uniqueItems": true
|
|
41966
|
+
},
|
|
41967
|
+
"createdAt": {
|
|
41968
|
+
"format": "date-time",
|
|
41969
|
+
"type": "string"
|
|
41970
|
+
},
|
|
41971
|
+
"desiredRevision": {
|
|
41972
|
+
"format": "int64",
|
|
41973
|
+
"minimum": 0,
|
|
41974
|
+
"type": "integer"
|
|
41975
|
+
},
|
|
41976
|
+
"enabled": {
|
|
41977
|
+
"type": "boolean"
|
|
41978
|
+
},
|
|
41979
|
+
"engine": {
|
|
41980
|
+
"$ref": "#/components/schemas/NetworkProxyEngine"
|
|
41981
|
+
},
|
|
41982
|
+
"engineVersion": {
|
|
41983
|
+
"maxLength": 64,
|
|
41984
|
+
"type": "string"
|
|
41985
|
+
},
|
|
41986
|
+
"host": {
|
|
41987
|
+
"maxLength": 128,
|
|
41988
|
+
"type": "string"
|
|
41989
|
+
},
|
|
41990
|
+
"id": {
|
|
41991
|
+
"maxLength": 128,
|
|
41992
|
+
"minLength": 1,
|
|
41993
|
+
"type": "string"
|
|
41994
|
+
},
|
|
41995
|
+
"lastSampleAt": {
|
|
41996
|
+
"format": "date-time",
|
|
41997
|
+
"type": "string"
|
|
41998
|
+
},
|
|
41999
|
+
"lastSeenAt": {
|
|
42000
|
+
"format": "date-time",
|
|
42001
|
+
"type": "string"
|
|
42002
|
+
},
|
|
42003
|
+
"name": {
|
|
42004
|
+
"maxLength": 128,
|
|
42005
|
+
"minLength": 1,
|
|
42006
|
+
"type": "string"
|
|
42007
|
+
},
|
|
42008
|
+
"observedRevision": {
|
|
42009
|
+
"format": "int64",
|
|
42010
|
+
"minimum": 0,
|
|
42011
|
+
"type": "integer"
|
|
42012
|
+
},
|
|
42013
|
+
"reasonCode": {
|
|
42014
|
+
"maxLength": 128,
|
|
42015
|
+
"type": "string"
|
|
42016
|
+
},
|
|
42017
|
+
"status": {
|
|
42018
|
+
"$ref": "#/components/schemas/NetworkProxyInstanceStatus"
|
|
42019
|
+
},
|
|
42020
|
+
"updatedAt": {
|
|
42021
|
+
"format": "date-time",
|
|
42022
|
+
"type": "string"
|
|
42023
|
+
}
|
|
42024
|
+
},
|
|
42025
|
+
"required": [
|
|
42026
|
+
"id",
|
|
42027
|
+
"name",
|
|
42028
|
+
"engine",
|
|
42029
|
+
"enabled",
|
|
42030
|
+
"status",
|
|
42031
|
+
"capabilities",
|
|
42032
|
+
"desiredRevision",
|
|
42033
|
+
"observedRevision",
|
|
42034
|
+
"createdAt",
|
|
42035
|
+
"updatedAt"
|
|
42036
|
+
],
|
|
42037
|
+
"type": "object"
|
|
42038
|
+
},
|
|
42039
|
+
"NetworkProxyInstanceEnvelope": {
|
|
42040
|
+
"additionalProperties": false,
|
|
42041
|
+
"properties": {
|
|
42042
|
+
"data": {
|
|
42043
|
+
"$ref": "#/components/schemas/NetworkProxyInstance"
|
|
42044
|
+
}
|
|
42045
|
+
},
|
|
42046
|
+
"required": [
|
|
42047
|
+
"data"
|
|
42048
|
+
],
|
|
42049
|
+
"type": "object"
|
|
42050
|
+
},
|
|
42051
|
+
"NetworkProxyInstanceInput": {
|
|
42052
|
+
"additionalProperties": false,
|
|
42053
|
+
"properties": {
|
|
42054
|
+
"engine": {
|
|
42055
|
+
"$ref": "#/components/schemas/NetworkProxyEngine"
|
|
42056
|
+
},
|
|
42057
|
+
"host": {
|
|
42058
|
+
"maxLength": 128,
|
|
42059
|
+
"type": "string"
|
|
42060
|
+
},
|
|
42061
|
+
"id": {
|
|
42062
|
+
"maxLength": 128,
|
|
42063
|
+
"minLength": 1,
|
|
42064
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
|
|
42065
|
+
"type": "string"
|
|
42066
|
+
},
|
|
42067
|
+
"name": {
|
|
42068
|
+
"maxLength": 128,
|
|
42069
|
+
"minLength": 1,
|
|
42070
|
+
"type": "string"
|
|
42071
|
+
}
|
|
42072
|
+
},
|
|
42073
|
+
"required": [
|
|
42074
|
+
"id",
|
|
42075
|
+
"name",
|
|
42076
|
+
"engine"
|
|
42077
|
+
],
|
|
42078
|
+
"type": "object"
|
|
42079
|
+
},
|
|
42080
|
+
"NetworkProxyInstanceListEnvelope": {
|
|
42081
|
+
"additionalProperties": false,
|
|
42082
|
+
"properties": {
|
|
42083
|
+
"items": {
|
|
42084
|
+
"items": {
|
|
42085
|
+
"$ref": "#/components/schemas/NetworkProxyInstance"
|
|
42086
|
+
},
|
|
42087
|
+
"maxItems": 200,
|
|
42088
|
+
"type": "array"
|
|
42089
|
+
}
|
|
42090
|
+
},
|
|
42091
|
+
"required": [
|
|
42092
|
+
"items"
|
|
42093
|
+
],
|
|
42094
|
+
"type": "object"
|
|
42095
|
+
},
|
|
42096
|
+
"NetworkProxyInstanceStatus": {
|
|
42097
|
+
"enum": [
|
|
42098
|
+
"unregistered",
|
|
42099
|
+
"online",
|
|
42100
|
+
"degraded",
|
|
42101
|
+
"offline",
|
|
42102
|
+
"disabled"
|
|
42103
|
+
],
|
|
42104
|
+
"type": "string",
|
|
42105
|
+
"x-enum-varnames": [
|
|
42106
|
+
"NetworkProxyInstanceStatusUnregistered",
|
|
42107
|
+
"NetworkProxyInstanceStatusOnline",
|
|
42108
|
+
"NetworkProxyInstanceStatusDegraded",
|
|
42109
|
+
"NetworkProxyInstanceStatusOffline",
|
|
42110
|
+
"NetworkProxyInstanceStatusDisabled"
|
|
42111
|
+
]
|
|
42112
|
+
},
|
|
42113
|
+
"NetworkProxyTrafficEnvelope": {
|
|
42114
|
+
"additionalProperties": false,
|
|
42115
|
+
"properties": {
|
|
42116
|
+
"instanceId": {
|
|
42117
|
+
"maxLength": 128,
|
|
42118
|
+
"minLength": 1,
|
|
42119
|
+
"type": "string"
|
|
42120
|
+
},
|
|
42121
|
+
"samples": {
|
|
42122
|
+
"items": {
|
|
42123
|
+
"$ref": "#/components/schemas/NetworkProxyTrafficSample"
|
|
42124
|
+
},
|
|
42125
|
+
"maxItems": 1440,
|
|
42126
|
+
"type": "array"
|
|
42127
|
+
},
|
|
42128
|
+
"supported": {
|
|
42129
|
+
"type": "boolean"
|
|
42130
|
+
}
|
|
42131
|
+
},
|
|
42132
|
+
"required": [
|
|
42133
|
+
"instanceId",
|
|
42134
|
+
"supported",
|
|
42135
|
+
"samples"
|
|
42136
|
+
],
|
|
42137
|
+
"type": "object"
|
|
42138
|
+
},
|
|
42139
|
+
"NetworkProxyTrafficSample": {
|
|
42140
|
+
"additionalProperties": false,
|
|
42141
|
+
"properties": {
|
|
42142
|
+
"activeConnections": {
|
|
42143
|
+
"minimum": 0,
|
|
42144
|
+
"type": "integer"
|
|
42145
|
+
},
|
|
42146
|
+
"downloadBytesPerSecond": {
|
|
42147
|
+
"minimum": 0,
|
|
42148
|
+
"type": "number"
|
|
42149
|
+
},
|
|
42150
|
+
"downloadTotal": {
|
|
42151
|
+
"format": "int64",
|
|
42152
|
+
"minimum": 0,
|
|
42153
|
+
"type": "integer"
|
|
42154
|
+
},
|
|
42155
|
+
"observedAt": {
|
|
42156
|
+
"format": "date-time",
|
|
42157
|
+
"type": "string"
|
|
42158
|
+
},
|
|
42159
|
+
"uploadBytesPerSecond": {
|
|
42160
|
+
"minimum": 0,
|
|
42161
|
+
"type": "number"
|
|
42162
|
+
},
|
|
42163
|
+
"uploadTotal": {
|
|
42164
|
+
"format": "int64",
|
|
42165
|
+
"minimum": 0,
|
|
42166
|
+
"type": "integer"
|
|
42167
|
+
}
|
|
42168
|
+
},
|
|
42169
|
+
"required": [
|
|
42170
|
+
"observedAt",
|
|
42171
|
+
"uploadTotal",
|
|
42172
|
+
"downloadTotal",
|
|
42173
|
+
"uploadBytesPerSecond",
|
|
42174
|
+
"downloadBytesPerSecond"
|
|
42175
|
+
],
|
|
42176
|
+
"type": "object"
|
|
42177
|
+
},
|
|
41773
42178
|
"NetworkResource": {
|
|
41774
42179
|
"additionalProperties": false,
|
|
41775
42180
|
"properties": {
|
|
@@ -42030,6 +42435,7 @@
|
|
|
42030
42435
|
},
|
|
42031
42436
|
"NetworkRuntimeEnrollmentInput": {
|
|
42032
42437
|
"additionalProperties": false,
|
|
42438
|
+
"description": "For proxy runtimes, runtimeId identifies an existing proxy instance and deviceId and subjectId must equal runtimeId.",
|
|
42033
42439
|
"properties": {
|
|
42034
42440
|
"deviceId": {
|
|
42035
42441
|
"maxLength": 128,
|
|
@@ -42129,13 +42535,15 @@
|
|
|
42129
42535
|
"enum": [
|
|
42130
42536
|
"endpoint",
|
|
42131
42537
|
"gateway",
|
|
42132
|
-
"nas"
|
|
42538
|
+
"nas",
|
|
42539
|
+
"proxy"
|
|
42133
42540
|
],
|
|
42134
42541
|
"type": "string",
|
|
42135
42542
|
"x-enum-varnames": [
|
|
42136
42543
|
"NetworkRuntimeKindEndpoint",
|
|
42137
42544
|
"NetworkRuntimeKindGateway",
|
|
42138
|
-
"NetworkRuntimeKindNAS"
|
|
42545
|
+
"NetworkRuntimeKindNAS",
|
|
42546
|
+
"NetworkRuntimeKindProxy"
|
|
42139
42547
|
]
|
|
42140
42548
|
},
|
|
42141
42549
|
"NetworkSession": {
|
|
@@ -61322,7 +61730,7 @@
|
|
|
61322
61730
|
"info": {
|
|
61323
61731
|
"description": "Public OpenSoha core API contract. This first contract focuses on stable cross-repository boundaries: auth, health, runner-facing control-plane callbacks, AI Gateway, and MCP capability discovery.\n",
|
|
61324
61732
|
"title": "Soha API",
|
|
61325
|
-
"version": "0.1.
|
|
61733
|
+
"version": "0.1.22"
|
|
61326
61734
|
},
|
|
61327
61735
|
"openapi": "3.1.0",
|
|
61328
61736
|
"paths": {
|