NDJSON audit + rate limit; env passthrough and handbook/appendix/docs - /proc/bare_os/security_posture.json schema 4: vaultCryptoPrimitives, bareCryptoReportedVersion, expanded peerAdmission - /proc/bare_os_features: pearIpcConservativeAdvertisement (names only) - Syscall select returns pollClock with timeout; coreutils test -u/-g/-k - Host env: BARE_OS_CTX_BARE_SUBPROCESS_SPAWN, BARE_OS_REPLICATION_PEER_PRIORITY_JSON, peer audit keys - Placeholder scan: rename expandCmdsubstEmbedded; sendmsg wording - Docs: vault threat model, preface Mermaid, protocol/changelog, posix matrix, holepunch clone audit refresh, developer-guide/kernel-program Wasm - ctx.d.ts + gen-ctx-client-helper; booter CHANGELOG maintenance notes
169 lines
5.7 KiB
JSON
169 lines
5.7 KiB
JSON
{
|
||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
"$id": "https://bare-os.dev/schemas/kernel-extensions.registry.schema.json",
|
||
"title": "Bare OS /proc/bare_os/extensions.json (schema v2–v9)",
|
||
"oneOf": [
|
||
{
|
||
"type": "object",
|
||
"required": ["schema", "entries"],
|
||
"additionalProperties": true,
|
||
"properties": {
|
||
"schema": { "type": "integer", "const": 2 },
|
||
"featureBitsDoc": { "type": "integer", "minimum": 0 },
|
||
"entries": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"required": ["dropin", "script", "atMs"],
|
||
"additionalProperties": true,
|
||
"properties": {
|
||
"dropin": { "type": "string" },
|
||
"script": { "type": "string" },
|
||
"semver": { "type": "string" },
|
||
"capabilities": {
|
||
"type": "array",
|
||
"items": { "type": "string" },
|
||
"maxItems": 32
|
||
},
|
||
"atMs": { "type": "integer", "minimum": 0 }
|
||
}
|
||
}
|
||
},
|
||
"atMs": { "type": "integer", "minimum": 0 }
|
||
}
|
||
},
|
||
{
|
||
"type": "object",
|
||
"required": ["schema", "entries"],
|
||
"additionalProperties": true,
|
||
"properties": {
|
||
"schema": { "type": "integer", "const": 5 },
|
||
"featureBitsDoc": { "type": "integer", "minimum": 0 },
|
||
"entries": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"required": ["dropin", "script", "atMs"],
|
||
"additionalProperties": true,
|
||
"properties": {
|
||
"dropin": { "type": "string" },
|
||
"script": { "type": "string" },
|
||
"semver": { "type": "string" },
|
||
"capabilities": {
|
||
"type": "array",
|
||
"items": { "type": "string" },
|
||
"maxItems": 32
|
||
},
|
||
"compatPearBundleId": {
|
||
"type": "string",
|
||
"maxLength": 256,
|
||
"description": "Opaque Pear bundle id for operator correlation (v5)"
|
||
},
|
||
"atMs": { "type": "integer", "minimum": 0 }
|
||
}
|
||
}
|
||
},
|
||
"atMs": { "type": "integer", "minimum": 0 }
|
||
}
|
||
},
|
||
{
|
||
"type": "object",
|
||
"required": ["schema", "entries"],
|
||
"additionalProperties": true,
|
||
"properties": {
|
||
"schema": { "type": "integer", "const": 8 },
|
||
"featureBitsDoc": { "type": "integer", "minimum": 0 },
|
||
"extensionSignerPinsV4Note": {
|
||
"type": "string",
|
||
"maxLength": 256,
|
||
"description": "Optional operator note correlating boot.policy extensionSignerPinsV4 (word 11)"
|
||
},
|
||
"entries": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"required": ["dropin", "script", "atMs"],
|
||
"additionalProperties": true,
|
||
"properties": {
|
||
"dropin": { "type": "string" },
|
||
"script": { "type": "string" },
|
||
"semver": { "type": "string" },
|
||
"capabilities": {
|
||
"type": "array",
|
||
"items": { "type": "string" },
|
||
"maxItems": 32
|
||
},
|
||
"compatPearBundleId": {
|
||
"type": "string",
|
||
"maxLength": 256
|
||
},
|
||
"trustPolicy": {
|
||
"type": "string",
|
||
"enum": ["default", "pinned", "quorum-sketch"],
|
||
"description": "Optional operator trust class for extension resolution (schema 8)"
|
||
},
|
||
"abiRange": {
|
||
"type": "object",
|
||
"additionalProperties": false,
|
||
"properties": {
|
||
"min": { "type": "string", "maxLength": 32 },
|
||
"max": { "type": "string", "maxLength": 32 }
|
||
},
|
||
"description": "Optional ctx / bundle ABI semver window for this entry"
|
||
},
|
||
"atMs": { "type": "integer", "minimum": 0 }
|
||
}
|
||
}
|
||
},
|
||
"atMs": { "type": "integer", "minimum": 0 }
|
||
}
|
||
},
|
||
{
|
||
"type": "object",
|
||
"required": ["schema", "entries"],
|
||
"additionalProperties": true,
|
||
"properties": {
|
||
"schema": { "type": "integer", "const": 9 },
|
||
"featureBitsDoc": { "type": "integer", "minimum": 0 },
|
||
"resolverModule": {
|
||
"type": "string",
|
||
"description": "Shared topological resolver module id (schema 9)"
|
||
},
|
||
"ed25519PolicyBridge": { "type": "object", "additionalProperties": true },
|
||
"entries": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"required": ["dropin", "script", "atMs"],
|
||
"additionalProperties": true,
|
||
"properties": {
|
||
"dropin": { "type": "string" },
|
||
"script": { "type": "string" },
|
||
"semver": { "type": "string" },
|
||
"capabilities": {
|
||
"type": "array",
|
||
"items": { "type": "string" },
|
||
"maxItems": 32
|
||
},
|
||
"id": { "type": "string" },
|
||
"dependsOn": {
|
||
"type": "array",
|
||
"items": { "type": "string" }
|
||
},
|
||
"signaturePointer": { "type": "string", "maxLength": 512 },
|
||
"loadMs": {
|
||
"type": "integer",
|
||
"minimum": 0,
|
||
"maximum": 3600000,
|
||
"description": "Wall ms for extension script execution (schema 9)"
|
||
},
|
||
"atMs": { "type": "integer", "minimum": 0 }
|
||
}
|
||
}
|
||
},
|
||
"atMs": { "type": "integer", "minimum": 0 }
|
||
}
|
||
}
|
||
]
|
||
}
|