@opensoha/contracts 0.1.16 → 0.1.17
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/COMPATIBILITY.md +46 -0
- package/README.md +12 -3
- package/auth/catalog_generated.go +2 -2
- package/auth/catalog_test.go +32 -0
- package/auth/permission-catalog.json +529 -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/duplicate-event.json +33 -0
- package/fixtures/json-schema/network-ingest-event/invalid/message-payload-mismatch.json +23 -0
- package/fixtures/json-schema/network-ingest-event/invalid/password.json +22 -0
- package/fixtures/json-schema/network-ingest-event/invalid/proxy-flow-destination.json +28 -0
- package/fixtures/json-schema/network-ingest-event/valid/endpoint-proxy-flow.json +27 -0
- package/fixtures/json-schema/network-ingest-event/valid/freeradius-accounting.json +25 -0
- package/fixtures/json-schema/network-ingest-event/valid/gateway.json +53 -0
- package/fixtures/json-schema/network-radius-accounting/invalid/password.json +9 -0
- package/fixtures/json-schema/network-radius-accounting/valid/accounting.json +16 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/invalid-cidr.json +31 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/message-payload-mismatch.json +19 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/mihomo-raw-subscription.json +33 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/nas-authorization-password.json +18 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/nas-eap-without-certificate.json +17 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/private-key.json +20 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/raw-credential-reference.json +16 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/runtime-interval-too-short.json +23 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/wireguard-capability-without-key.json +19 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/wireguard-default-route.json +31 -0
- package/fixtures/json-schema/network-runtime-protocol/invalid/ztna-without-access-grant.json +17 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/configuration-desired.json +86 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/direct-ztna-connect.json +19 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/direct-ztna-result.json +33 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/internal-ztna-connect.json +19 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/mihomo-app-subscription-configuration.json +32 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/mihomo-manual-node-configuration.json +32 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/mihomo-wireguard-configuration.json +70 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/nas-authorization-request.json +19 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/nas-authorization-result.json +24 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/nas-session-command-result.json +17 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/nas-session-command.json +27 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/vpn-connect-request.json +17 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/vpn-connect-result.json +34 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/wireguard-enrollment.json +20 -0
- package/fixtures/json-schema/network-runtime-protocol/valid/wireguard-site-link.json +48 -0
- package/fixtures/openapi/AnnouncementReceiptPageEnvelope/invalid/missing-read-count.json +9 -0
- package/fixtures/openapi/AnnouncementReceiptPageEnvelope/valid/read-and-unread.json +28 -0
- package/fixtures/openapi/EndpointDevice/invalid/missing-owner.json +8 -0
- package/fixtures/openapi/EndpointDevice/valid/active.json +35 -0
- package/fixtures/openapi/EndpointDeviceRegistrationInput/invalid/client-owned-status.json +5 -0
- package/fixtures/openapi/EndpointDeviceRegistrationInput/invalid/oversized-network-inventory.json +18 -0
- package/fixtures/openapi/EndpointDeviceRegistrationInput/valid/macos.json +28 -0
- package/fixtures/openapi/LLMUpstreamTestResultEnvelope/invalid/models-not-array.json +9 -0
- package/fixtures/openapi/LLMUpstreamTestResultEnvelope/valid/discovered-models.json +11 -0
- package/fixtures/openapi/NetworkAccessGrant/invalid/token-digest.json +15 -0
- package/fixtures/openapi/NetworkAccessGrant/valid/issued.json +14 -0
- package/fixtures/openapi/NetworkAccessGrantInput/invalid/no-resources.json +7 -0
- package/fixtures/openapi/NetworkAccessGrantInput/valid/direct-ztna.json +8 -0
- package/fixtures/openapi/NetworkAccessGrantSecret/invalid/short-token.json +17 -0
- package/fixtures/openapi/NetworkAccessGrantSecret/valid/issued.json +17 -0
- package/fixtures/openapi/NetworkAccessPolicy/invalid/missing-version.json +20 -0
- package/fixtures/openapi/NetworkAccessPolicy/valid/published-draft.json +21 -0
- package/fixtures/openapi/NetworkAccessPolicyInput/invalid/duplicate-team.json +17 -0
- package/fixtures/openapi/NetworkAccessPolicyInput/valid/team-and-tag-allow.json +17 -0
- package/fixtures/openapi/NetworkConflictAnalysisRequest/invalid/ipv6-range.json +9 -0
- package/fixtures/openapi/NetworkConflictAnalysisRequest/valid/runtime-ranges.json +15 -0
- package/fixtures/openapi/NetworkConnectionOption/invalid/secret.json +10 -0
- package/fixtures/openapi/NetworkConnectionOption/valid/wifi.json +9 -0
- package/fixtures/openapi/NetworkConnectionOption/valid/wired.json +8 -0
- package/fixtures/openapi/NetworkGateway/invalid/missing-site.json +7 -0
- package/fixtures/openapi/NetworkGateway/valid/online.json +23 -0
- package/fixtures/openapi/NetworkGatewayInput/invalid/default-route-overlay.json +13 -0
- package/fixtures/openapi/NetworkGatewayInput/valid/routed.json +14 -0
- package/fixtures/openapi/NetworkLease/invalid/empty-cidrs.json +12 -0
- package/fixtures/openapi/NetworkLease/valid/active.json +12 -0
- package/fixtures/openapi/NetworkMihomoProfile/invalid/subscription-leak.json +20 -0
- package/fixtures/openapi/NetworkMihomoProfile/valid/managed.json +21 -0
- package/fixtures/openapi/NetworkMihomoProfileInput/invalid/app-subscription-secret.json +14 -0
- package/fixtures/openapi/NetworkMihomoProfileInput/invalid/manual-node-with-subscription.json +20 -0
- package/fixtures/openapi/NetworkMihomoProfileInput/valid/app-subscription.json +14 -0
- package/fixtures/openapi/NetworkMihomoProfileInput/valid/managed.json +16 -0
- package/fixtures/openapi/NetworkMihomoProfileInput/valid/manual-node.json +21 -0
- package/fixtures/openapi/NetworkNASBinding/invalid/secret.json +13 -0
- package/fixtures/openapi/NetworkNASBinding/valid/default.json +16 -0
- package/fixtures/openapi/NetworkNASBindingInput/invalid/secret.json +10 -0
- package/fixtures/openapi/NetworkNASBindingInput/valid/default.json +13 -0
- package/fixtures/openapi/NetworkPolicyPreviewRequest/invalid/unknown-mode.json +6 -0
- package/fixtures/openapi/NetworkPolicyPreviewRequest/valid/external-direct-ztna.json +6 -0
- package/fixtures/openapi/NetworkPolicyPreviewRequest/valid/external-vpn-ztna.json +6 -0
- package/fixtures/openapi/NetworkPolicyPreviewRequest/valid/external-vpn.json +6 -0
- package/fixtures/openapi/NetworkPolicyPreviewRequest/valid/internal-direct.json +7 -0
- package/fixtures/openapi/NetworkPolicyPreviewRequest/valid/internal-ztna.json +7 -0
- package/fixtures/openapi/NetworkPolicyPreviewResult/invalid/bypass-path.json +9 -0
- package/fixtures/openapi/NetworkPolicyPreviewResult/valid/onboarding.json +10 -0
- package/fixtures/openapi/NetworkPolicyPreviewResult/valid/protected-broad-path-denied.json +9 -0
- package/fixtures/openapi/NetworkPolicyPreviewResult/valid/protected-resource.json +9 -0
- package/fixtures/openapi/NetworkPolicyPreviewResult/valid/quarantine.json +10 -0
- package/fixtures/openapi/NetworkPolicyPreviewResult/valid/restricted.json +10 -0
- package/fixtures/openapi/NetworkPolicySnapshot/invalid/zero-version.json +7 -0
- package/fixtures/openapi/NetworkPolicySnapshot/valid/published.json +7 -0
- package/fixtures/openapi/NetworkResourceInput/invalid/invalid-port.json +10 -0
- package/fixtures/openapi/NetworkResourceInput/valid/protected-cidr.json +10 -0
- package/fixtures/openapi/NetworkRuntimeEnrollmentInput/invalid/excessive-ttl.json +7 -0
- package/fixtures/openapi/NetworkRuntimeEnrollmentInput/valid/endpoint.json +7 -0
- package/fixtures/openapi/NetworkRuntimeEnrollmentSecret/invalid/short-token.json +15 -0
- package/fixtures/openapi/NetworkRuntimeEnrollmentSecret/valid/pending.json +15 -0
- package/fixtures/openapi/NetworkSession/invalid/unknown-status.json +14 -0
- package/fixtures/openapi/NetworkSession/valid/restricted-vpn-ztna.json +16 -0
- package/fixtures/openapi/NetworkSessionActionExecuteInput/invalid/short-hash.json +6 -0
- package/fixtures/openapi/NetworkSessionActionExecuteInput/valid/restrict.json +6 -0
- package/fixtures/openapi/NetworkSessionActionInput/invalid/unknown-action.json +5 -0
- package/fixtures/openapi/NetworkSessionActionInput/valid/restrict.json +5 -0
- package/fixtures/openapi/NetworkSessionActionPlan/invalid/missing-hash.json +12 -0
- package/fixtures/openapi/NetworkSessionActionPlan/valid/fallback-disconnect.json +13 -0
- package/fixtures/openapi/NetworkSessionCommand/invalid/unknown-status.json +14 -0
- package/fixtures/openapi/NetworkSessionCommand/valid/pending.json +14 -0
- package/fixtures/openapi/NetworkSiteInput/invalid/unknown-status.json +4 -0
- package/fixtures/openapi/NetworkSiteInput/valid/shanghai.json +5 -0
- package/fixtures/openapi/NetworkSiteProfileBinding/invalid/vlan.json +9 -0
- package/fixtures/openapi/NetworkSiteProfileBinding/valid/default.json +10 -0
- package/fixtures/openapi/NetworkSiteProfileBindingInput/invalid/timeout.json +7 -0
- package/fixtures/openapi/NetworkSiteProfileBindingInput/valid/default.json +7 -0
- package/fixtures/openapi/NetworkSpaceInput/invalid/empty-cidrs.json +6 -0
- package/fixtures/openapi/NetworkSpaceInput/invalid/malformed-cidr.json +6 -0
- package/fixtures/openapi/NetworkSpaceInput/valid/corp.json +6 -0
- package/fixtures/openapi/NetworkTelemetrySummary/invalid/raw-destination.json +29 -0
- package/fixtures/openapi/NetworkTelemetrySummary/valid/proxy-flow.json +36 -0
- package/fixtures/openapi/ResourceLease/invalid/missing-session.json +10 -0
- package/fixtures/openapi/ResourceLease/valid/active.json +11 -0
- package/gen/go/sohaapi/client.go +1 -1
- package/gen/go/sohaapi/types.go +2042 -58
- package/gen/ts/sohaapi/index.ts +3160 -0
- package/network/README.md +116 -0
- package/network/network-ingest-event.schema.json +187 -0
- package/network/network-radius-accounting.schema.json +41 -0
- package/network/network-runtime-protocol.schema.json +752 -0
- package/network/schema.go +26 -0
- package/network/schema_test.go +22 -0
- package/openapi/soha-api.json +27021 -19780
- package/openapi/soha-api.yaml +11422 -8749
- package/openapi/spec_generated.go +3 -3
- package/package.json +5 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"grant": {
|
|
3
|
+
"id": "grant-payroll-01",
|
|
4
|
+
"subjectId": "f7f87a34-077d-4601-af8d-c142a34755f2",
|
|
5
|
+
"deviceId": "device-shanghai-001",
|
|
6
|
+
"siteId": "site-shanghai",
|
|
7
|
+
"networkSpaceId": "space-corp",
|
|
8
|
+
"mode": "external_direct_ztna",
|
|
9
|
+
"resourceIds": ["resource-payroll"],
|
|
10
|
+
"policyVersion": 12,
|
|
11
|
+
"status": "issued",
|
|
12
|
+
"createdBy": "f7f87a34-077d-4601-af8d-c142a34755f2",
|
|
13
|
+
"createdAt": "2026-09-03T08:00:00Z",
|
|
14
|
+
"expiresAt": "2026-09-03T08:05:00Z"
|
|
15
|
+
},
|
|
16
|
+
"token": "0123456789abcdef0123456789abcdef"
|
|
17
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"accessProfile": "full",
|
|
3
|
+
"createdAt": "2026-09-02T05:00:00Z",
|
|
4
|
+
"deviceStatuses": ["active"],
|
|
5
|
+
"effect": "allow",
|
|
6
|
+
"enabled": true,
|
|
7
|
+
"id": "policy-engineering",
|
|
8
|
+
"modes": ["internal_ztna"],
|
|
9
|
+
"name": "Missing version",
|
|
10
|
+
"postureStatuses": ["compliant"],
|
|
11
|
+
"priority": 100,
|
|
12
|
+
"resourceIds": [],
|
|
13
|
+
"siteIds": [],
|
|
14
|
+
"subjects": {
|
|
15
|
+
"tags": [],
|
|
16
|
+
"teams": [],
|
|
17
|
+
"users": []
|
|
18
|
+
},
|
|
19
|
+
"updatedAt": "2026-09-02T05:20:00Z"
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"accessProfile": "full",
|
|
3
|
+
"createdAt": "2026-09-02T05:00:00Z",
|
|
4
|
+
"deviceStatuses": ["active"],
|
|
5
|
+
"effect": "allow",
|
|
6
|
+
"enabled": true,
|
|
7
|
+
"id": "policy-engineering",
|
|
8
|
+
"modes": ["internal_ztna", "external_vpn_ztna"],
|
|
9
|
+
"name": "Engineering protected access",
|
|
10
|
+
"postureStatuses": ["compliant"],
|
|
11
|
+
"priority": 100,
|
|
12
|
+
"resourceIds": ["resource-git"],
|
|
13
|
+
"siteIds": ["site-hq"],
|
|
14
|
+
"subjects": {
|
|
15
|
+
"tags": ["employee"],
|
|
16
|
+
"teams": ["team-engineering"],
|
|
17
|
+
"users": []
|
|
18
|
+
},
|
|
19
|
+
"updatedAt": "2026-09-02T05:20:00Z",
|
|
20
|
+
"version": 2
|
|
21
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"accessProfile": "full",
|
|
3
|
+
"deviceStatuses": ["active"],
|
|
4
|
+
"effect": "allow",
|
|
5
|
+
"enabled": true,
|
|
6
|
+
"modes": ["internal_ztna"],
|
|
7
|
+
"name": "Duplicate team selector",
|
|
8
|
+
"postureStatuses": ["compliant"],
|
|
9
|
+
"priority": 100,
|
|
10
|
+
"resourceIds": [],
|
|
11
|
+
"siteIds": [],
|
|
12
|
+
"subjects": {
|
|
13
|
+
"tags": [],
|
|
14
|
+
"teams": ["team-engineering", "team-engineering"],
|
|
15
|
+
"users": []
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"accessProfile": "full",
|
|
3
|
+
"deviceStatuses": ["active"],
|
|
4
|
+
"effect": "allow",
|
|
5
|
+
"enabled": true,
|
|
6
|
+
"modes": ["internal_ztna", "external_vpn_ztna"],
|
|
7
|
+
"name": "Engineering protected access",
|
|
8
|
+
"postureStatuses": ["compliant"],
|
|
9
|
+
"priority": 100,
|
|
10
|
+
"resourceIds": ["resource-git"],
|
|
11
|
+
"siteIds": ["site-hq"],
|
|
12
|
+
"subjects": {
|
|
13
|
+
"tags": ["employee"],
|
|
14
|
+
"teams": ["team-engineering"],
|
|
15
|
+
"users": []
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"runtimeRanges": [
|
|
3
|
+
{
|
|
4
|
+
"cidr": "100.96.0.0/12",
|
|
5
|
+
"name": "WireGuard overlay",
|
|
6
|
+
"sourceId": "gateway-hq",
|
|
7
|
+
"sourceType": "wireguard_overlay"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"cidr": "198.18.0.0/15",
|
|
11
|
+
"name": "mihomo fake IP",
|
|
12
|
+
"sourceType": "mihomo_fake_ip"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "gateway-01",
|
|
3
|
+
"runtimeId": "gateway-site-a",
|
|
4
|
+
"siteId": "site-shanghai",
|
|
5
|
+
"name": "Shanghai Gateway",
|
|
6
|
+
"administrativeStatus": "active",
|
|
7
|
+
"status": "online",
|
|
8
|
+
"publicEndpointHost": "vpn.example.com",
|
|
9
|
+
"publicEndpointPort": 51820,
|
|
10
|
+
"overlayCidr": "100.96.10.0/24",
|
|
11
|
+
"routingMode": "routed",
|
|
12
|
+
"advertisedCidrs": ["10.20.0.0/16"],
|
|
13
|
+
"mtu": 1380,
|
|
14
|
+
"persistentKeepaliveSeconds": 25,
|
|
15
|
+
"dnsServers": ["10.20.0.53"],
|
|
16
|
+
"wireguardPublicKey": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
|
17
|
+
"version": "0.1.0",
|
|
18
|
+
"policyVersion": 7,
|
|
19
|
+
"capabilities": ["wireguard", "access_proxy"],
|
|
20
|
+
"lastHeartbeatAt": "2026-09-02T08:00:00Z",
|
|
21
|
+
"createdAt": "2026-09-01T08:00:00Z",
|
|
22
|
+
"updatedAt": "2026-09-02T08:00:00Z"
|
|
23
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"runtimeId": "gateway-site-a",
|
|
3
|
+
"siteId": "site-shanghai",
|
|
4
|
+
"name": "Shanghai Gateway",
|
|
5
|
+
"administrativeStatus": "active",
|
|
6
|
+
"publicEndpointHost": "vpn.example.com",
|
|
7
|
+
"publicEndpointPort": 51820,
|
|
8
|
+
"overlayCidr": "0.0.0.0/0",
|
|
9
|
+
"routingMode": "routed",
|
|
10
|
+
"mtu": 1380,
|
|
11
|
+
"persistentKeepaliveSeconds": 25,
|
|
12
|
+
"dnsServers": []
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"runtimeId": "gateway-site-a",
|
|
3
|
+
"siteId": "site-shanghai",
|
|
4
|
+
"name": "Shanghai Gateway",
|
|
5
|
+
"administrativeStatus": "active",
|
|
6
|
+
"publicEndpointHost": "vpn.example.com",
|
|
7
|
+
"publicEndpointPort": 51820,
|
|
8
|
+
"overlayCidr": "100.96.10.0/24",
|
|
9
|
+
"routingMode": "routed",
|
|
10
|
+
"advertisedCidrs": ["10.20.0.0/16"],
|
|
11
|
+
"mtu": 1380,
|
|
12
|
+
"persistentKeepaliveSeconds": 25,
|
|
13
|
+
"dnsServers": ["10.20.0.53"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "network-lease-01",
|
|
3
|
+
"sessionId": "session-01",
|
|
4
|
+
"subjectId": "user-01",
|
|
5
|
+
"deviceId": "device-01",
|
|
6
|
+
"networkSpaceId": "space-corp",
|
|
7
|
+
"cidrs": [],
|
|
8
|
+
"policyVersion": 9,
|
|
9
|
+
"status": "active",
|
|
10
|
+
"issuedAt": "2026-09-02T08:00:00Z",
|
|
11
|
+
"expiresAt": "2026-09-02T09:00:00Z"
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "network-lease-01",
|
|
3
|
+
"sessionId": "session-01",
|
|
4
|
+
"subjectId": "user-01",
|
|
5
|
+
"deviceId": "device-01",
|
|
6
|
+
"networkSpaceId": "space-corp",
|
|
7
|
+
"cidrs": ["10.20.0.0/16"],
|
|
8
|
+
"policyVersion": 9,
|
|
9
|
+
"status": "active",
|
|
10
|
+
"issuedAt": "2026-09-02T08:00:00Z",
|
|
11
|
+
"expiresAt": "2026-09-02T09:00:00Z"
|
|
12
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "profile-corporate-egress",
|
|
3
|
+
"deviceId": "device-alice-laptop",
|
|
4
|
+
"name": "Corporate egress",
|
|
5
|
+
"mode": "managed_follow",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"subscriptionConfigured": true,
|
|
8
|
+
"subscriptionUrl": "https://subscriptions.example.com/must-not-leak",
|
|
9
|
+
"revision": 4,
|
|
10
|
+
"mixedPort": 7890,
|
|
11
|
+
"controllerPort": 9090,
|
|
12
|
+
"dnsMode": "disabled",
|
|
13
|
+
"selectorGroup": "SOHA",
|
|
14
|
+
"selectedProxy": "corporate-hk",
|
|
15
|
+
"bypassCidrs": [],
|
|
16
|
+
"bypassHosts": [],
|
|
17
|
+
"failClosed": true,
|
|
18
|
+
"createdAt": "2026-09-03T08:00:00Z",
|
|
19
|
+
"updatedAt": "2026-09-03T08:05:00Z"
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "profile-corporate-egress",
|
|
3
|
+
"deviceId": "device-alice-laptop",
|
|
4
|
+
"name": "Corporate egress",
|
|
5
|
+
"mode": "managed_follow",
|
|
6
|
+
"sourceType": "managed_subscription",
|
|
7
|
+
"status": "active",
|
|
8
|
+
"subscriptionConfigured": true,
|
|
9
|
+
"manualNodeConfigured": false,
|
|
10
|
+
"revision": 4,
|
|
11
|
+
"mixedPort": 7890,
|
|
12
|
+
"controllerPort": 9090,
|
|
13
|
+
"dnsMode": "disabled",
|
|
14
|
+
"selectorGroup": "SOHA",
|
|
15
|
+
"selectedProxy": "corporate-hk",
|
|
16
|
+
"bypassCidrs": ["10.20.0.0/16"],
|
|
17
|
+
"bypassHosts": ["network-control.example.com"],
|
|
18
|
+
"failClosed": true,
|
|
19
|
+
"createdAt": "2026-09-03T08:00:00Z",
|
|
20
|
+
"updatedAt": "2026-09-03T08:05:00Z"
|
|
21
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"deviceId": "device-bob-laptop",
|
|
3
|
+
"name": "Personal subscription",
|
|
4
|
+
"mode": "app_subscription",
|
|
5
|
+
"status": "active",
|
|
6
|
+
"subscriptionUrl": "https://subscriptions.example.com/should-stay-local",
|
|
7
|
+
"mixedPort": 7890,
|
|
8
|
+
"controllerPort": 9090,
|
|
9
|
+
"dnsMode": "disabled",
|
|
10
|
+
"selectorGroup": "SOHA",
|
|
11
|
+
"bypassCidrs": [],
|
|
12
|
+
"bypassHosts": [],
|
|
13
|
+
"failClosed": false
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"deviceId": "device-alice-laptop",
|
|
3
|
+
"name": "Invalid mixed source",
|
|
4
|
+
"mode": "managed_follow",
|
|
5
|
+
"sourceType": "manual_node",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"subscriptionUrl": "https://subscriptions.example.com/mihomo/token-value",
|
|
8
|
+
"manualNode": {
|
|
9
|
+
"protocol": "socks5",
|
|
10
|
+
"server": "proxy.example.com",
|
|
11
|
+
"port": 1080
|
|
12
|
+
},
|
|
13
|
+
"mixedPort": 7890,
|
|
14
|
+
"controllerPort": 9090,
|
|
15
|
+
"dnsMode": "disabled",
|
|
16
|
+
"selectorGroup": "SOHA",
|
|
17
|
+
"bypassCidrs": [],
|
|
18
|
+
"bypassHosts": [],
|
|
19
|
+
"failClosed": true
|
|
20
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"deviceId": "device-bob-laptop",
|
|
3
|
+
"name": "Personal subscription",
|
|
4
|
+
"mode": "app_subscription",
|
|
5
|
+
"status": "active",
|
|
6
|
+
"mixedPort": 7890,
|
|
7
|
+
"controllerPort": 9090,
|
|
8
|
+
"dnsMode": "fake_ip",
|
|
9
|
+
"fakeIpRange": "198.18.0.0/15",
|
|
10
|
+
"selectorGroup": "SOHA",
|
|
11
|
+
"bypassCidrs": [],
|
|
12
|
+
"bypassHosts": ["network-control.example.com"],
|
|
13
|
+
"failClosed": false
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"deviceId": "device-alice-laptop",
|
|
3
|
+
"name": "Corporate egress",
|
|
4
|
+
"mode": "managed_follow",
|
|
5
|
+
"sourceType": "managed_subscription",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"subscriptionUrl": "https://subscriptions.example.com/mihomo/token-value",
|
|
8
|
+
"mixedPort": 7890,
|
|
9
|
+
"controllerPort": 9090,
|
|
10
|
+
"dnsMode": "disabled",
|
|
11
|
+
"selectorGroup": "SOHA",
|
|
12
|
+
"selectedProxy": "corporate-hk",
|
|
13
|
+
"bypassCidrs": ["10.20.0.0/16"],
|
|
14
|
+
"bypassHosts": ["network-control.example.com"],
|
|
15
|
+
"failClosed": true
|
|
16
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"deviceId": "device-alice-laptop",
|
|
3
|
+
"name": "Branch proxy",
|
|
4
|
+
"mode": "managed_follow",
|
|
5
|
+
"sourceType": "manual_node",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"manualNode": {
|
|
8
|
+
"protocol": "https",
|
|
9
|
+
"server": "proxy.example.com",
|
|
10
|
+
"port": 8443,
|
|
11
|
+
"username": "alice",
|
|
12
|
+
"password": "secret"
|
|
13
|
+
},
|
|
14
|
+
"mixedPort": 7890,
|
|
15
|
+
"controllerPort": 9090,
|
|
16
|
+
"dnsMode": "disabled",
|
|
17
|
+
"selectorGroup": "SOHA",
|
|
18
|
+
"bypassCidrs": ["10.20.0.0/16"],
|
|
19
|
+
"bypassHosts": ["network-control.example.com"],
|
|
20
|
+
"failClosed": true
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "nas-binding-site-a-wifi",
|
|
3
|
+
"nasId": "nas-site-a-wifi",
|
|
4
|
+
"runtimeId": "freeradius-site-a",
|
|
5
|
+
"siteId": "site-a",
|
|
6
|
+
"name": "Site A Wi-Fi",
|
|
7
|
+
"status": "active",
|
|
8
|
+
"coaSupported": true,
|
|
9
|
+
"disconnectSupported": true,
|
|
10
|
+
"sharedSecret": "must-never-enter-public-dtos",
|
|
11
|
+
"createdAt": "2026-09-02T08:00:00Z",
|
|
12
|
+
"updatedAt": "2026-09-02T08:00:00Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "nas-binding-site-a-wifi",
|
|
3
|
+
"nasId": "nas-site-a-wifi",
|
|
4
|
+
"runtimeId": "freeradius-site-a",
|
|
5
|
+
"siteId": "site-a",
|
|
6
|
+
"name": "Site A Wi-Fi",
|
|
7
|
+
"accessMedium": "wifi",
|
|
8
|
+
"deviceType": "wireless_controller",
|
|
9
|
+
"ssid": "Soha-Staff",
|
|
10
|
+
"managementAddress": "10.0.10.2",
|
|
11
|
+
"status": "active",
|
|
12
|
+
"coaSupported": true,
|
|
13
|
+
"disconnectSupported": true,
|
|
14
|
+
"createdAt": "2026-09-02T08:00:00Z",
|
|
15
|
+
"updatedAt": "2026-09-02T08:00:00Z"
|
|
16
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"nasId": "nas-site-a-wifi",
|
|
3
|
+
"runtimeId": "freeradius-site-a",
|
|
4
|
+
"siteId": "site-a",
|
|
5
|
+
"name": "Site A Wi-Fi",
|
|
6
|
+
"accessMedium": "wifi",
|
|
7
|
+
"deviceType": "wireless_controller",
|
|
8
|
+
"ssid": "Soha-Staff",
|
|
9
|
+
"managementAddress": "10.0.10.2",
|
|
10
|
+
"status": "active",
|
|
11
|
+
"coaSupported": true,
|
|
12
|
+
"disconnectSupported": true
|
|
13
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"enrollment": {
|
|
3
|
+
"id": "enrollment-01",
|
|
4
|
+
"challengeId": "challenge-01",
|
|
5
|
+
"runtimeId": "endpoint-shanghai-001",
|
|
6
|
+
"runtimeKind": "endpoint",
|
|
7
|
+
"deviceId": "device-shanghai-001",
|
|
8
|
+
"subjectId": "f7f87a34-077d-4601-af8d-c142a34755f2",
|
|
9
|
+
"status": "pending",
|
|
10
|
+
"expiresAt": "2026-09-02T10:10:00Z",
|
|
11
|
+
"createdBy": "1f449d94-682c-4fe7-a73b-df2741380197",
|
|
12
|
+
"createdAt": "2026-09-02T10:00:00Z"
|
|
13
|
+
},
|
|
14
|
+
"token": "too-short"
|
|
15
|
+
}
|