Skip to content

Commit dbf80a2

Browse files
committed
schemas: add SourceOS repo manifest contract
1 parent e989d62 commit dbf80a2

1 file changed

Lines changed: 106 additions & 0 deletions

File tree

schemas/SourceOSRepoManifest.json

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://schemas.srcos.ai/v2/SourceOSRepoManifest.json",
4+
"title": "SourceOSRepoManifest",
5+
"description": "Repository-level declaration of SourceOS/SociOS contract ownership, sync engines, policy classes, audit events, SourceChannel surfaces, and dangerous surfaces.",
6+
"type": "object",
7+
"additionalProperties": false,
8+
"required": [
9+
"repo",
10+
"domain",
11+
"specVersion",
12+
"ownedSchemas",
13+
"syncEngines",
14+
"sourceChannels",
15+
"policyClasses",
16+
"auditEvents",
17+
"dangerousSurfaces"
18+
],
19+
"properties": {
20+
"repo": {
21+
"type": "string",
22+
"pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$",
23+
"description": "GitHub repository in owner/name form."
24+
},
25+
"domain": {
26+
"type": "string",
27+
"enum": [
28+
"spec",
29+
"tooling",
30+
"workspace",
31+
"agent",
32+
"policy",
33+
"memory",
34+
"shell",
35+
"browser",
36+
"os",
37+
"transport",
38+
"observability",
39+
"model",
40+
"security",
41+
"integration"
42+
]
43+
},
44+
"specVersion": {
45+
"type": "string",
46+
"description": "Version of the SourceOSRepoManifest contract used by this repo."
47+
},
48+
"ownedSchemas": {
49+
"type": "array",
50+
"items": {
51+
"type": "string"
52+
},
53+
"uniqueItems": true
54+
},
55+
"syncEngines": {
56+
"type": "array",
57+
"items": {
58+
"$ref": "SyncEngineManifest.json"
59+
}
60+
},
61+
"sourceChannels": {
62+
"type": "array",
63+
"items": {
64+
"type": "string"
65+
},
66+
"uniqueItems": true,
67+
"description": "Named SourceChannel surfaces or bridge IDs implemented by the repo."
68+
},
69+
"policyClasses": {
70+
"type": "array",
71+
"items": {
72+
"type": "string",
73+
"enum": ["low", "medium", "high", "critical"]
74+
},
75+
"uniqueItems": true
76+
},
77+
"auditEvents": {
78+
"type": "array",
79+
"items": {
80+
"type": "string",
81+
"pattern": "^[a-z0-9_.-]+$"
82+
},
83+
"uniqueItems": true
84+
},
85+
"dangerousSurfaces": {
86+
"type": "array",
87+
"items": {
88+
"type": "string",
89+
"pattern": "^[a-z0-9_.-]+$"
90+
},
91+
"uniqueItems": true
92+
},
93+
"authorityRepos": {
94+
"type": "array",
95+
"items": {
96+
"type": "string",
97+
"pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$"
98+
},
99+
"uniqueItems": true,
100+
"description": "Repos this repo depends on as contract, policy, agent, memory, or runtime authorities."
101+
},
102+
"notes": {
103+
"type": "string"
104+
}
105+
}
106+
}

0 commit comments

Comments
 (0)