Skip to content

Commit cc354e1

Browse files
committed
Add NetworkAccessProfile schema
1 parent 9987d00 commit cc354e1

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

schemas/NetworkAccessProfile.json

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://schemas.srcos.ai/v2/NetworkAccessProfile.json",
4+
"title": "NetworkAccessProfile",
5+
"description": "SourceOS Network Door profile for enterprise, user, and mesh-aware egress/ingress policy across Agent Machine, Office Plane, Local Model Door, and external model providers.",
6+
"type": "object",
7+
"additionalProperties": false,
8+
"required": ["id", "type", "specVersion", "name", "scope", "defaultDecision", "profiles", "evidence"],
9+
"properties": {
10+
"id": { "type": "string", "pattern": "^urn:srcos:network-access-profile:" },
11+
"type": { "const": "NetworkAccessProfile" },
12+
"specVersion": { "type": "string" },
13+
"name": { "type": "string" },
14+
"scope": { "type": "string", "enum": ["user", "enterprise", "device", "workspace", "agent-machine", "cluster"] },
15+
"defaultDecision": { "type": "string", "enum": ["deny", "allow-with-policy", "ask"] },
16+
"profiles": {
17+
"type": "array",
18+
"minItems": 1,
19+
"items": {
20+
"type": "object",
21+
"additionalProperties": false,
22+
"required": ["profileId", "profileClass", "priority", "defaultEgress"],
23+
"properties": {
24+
"profileId": { "type": "string" },
25+
"profileClass": { "type": "string", "enum": ["user-firewall", "corporate-firewall", "mesh", "proxy", "vpn", "zero-trust", "offline"] },
26+
"priority": { "type": "integer", "minimum": 0 },
27+
"defaultEgress": { "type": "string", "enum": ["deny", "allow-listed", "allow-with-prompt", "allow-any"] },
28+
"allowDomains": { "type": "array", "items": { "type": "string" } },
29+
"denyDomains": { "type": "array", "items": { "type": "string" } },
30+
"allowCidrs": { "type": "array", "items": { "type": "string" } },
31+
"denyCidrs": { "type": "array", "items": { "type": "string" } },
32+
"proxyRef": { "type": ["string", "null"] },
33+
"firewallBindingRef": { "type": ["string", "null"] },
34+
"meshBindingRef": { "type": ["string", "null"] },
35+
"modelProviderRefs": { "type": "array", "items": { "type": "string" } },
36+
"notes": { "type": "string" }
37+
}
38+
}
39+
},
40+
"precedence": {
41+
"type": "array",
42+
"items": { "type": "string", "enum": ["enterprise", "workspace", "device", "user", "agent", "model-provider"] },
43+
"description": "Higher-precedence policy layers should be listed first."
44+
},
45+
"evidence": {
46+
"type": "object",
47+
"additionalProperties": false,
48+
"properties": {
49+
"emitNetworkDecision": { "type": "boolean", "default": true },
50+
"emitFirewallBinding": { "type": "boolean", "default": true },
51+
"emitMeshBinding": { "type": "boolean", "default": true },
52+
"emitModelProviderRoute": { "type": "boolean", "default": true },
53+
"redactDestinationPath": { "type": "boolean", "default": true }
54+
}
55+
}
56+
}
57+
}

0 commit comments

Comments
 (0)