{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://bare-os.dev/schemas/boot.policy.schema.json", "title": "Bare OS boot.policy.json (subset)", "type": "object", "additionalProperties": true, "properties": { "skipBootStages": { "type": "array", "items": { "type": "string" }, "description": "Boot stages to skip (canonical); merged with legacy skipPhases" }, "denyBootStages": { "type": "array", "items": { "type": "string" }, "description": "Boot stages denied like skip list (canonical); merged with legacy denyBootPhases" }, "skipPhases": { "type": "array", "items": { "type": "string" }, "description": "Deprecated alias of skipBootStages (still honored; prefer skipBootStages)" }, "denyBootPhases": { "type": "array", "items": { "type": "string" }, "description": "Deprecated alias of denyBootStages (still honored; prefer denyBootStages)" }, "minKernelCapabilitiesPrimary": { "type": "integer", "minimum": 0 }, "requireSeedCaps": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesExtendedSeedingPlatform": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesRlimitsDelegatesShell": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesOfflineNetExtensions": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesHostTransportDelegates": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesReplicationOperatorSurface": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesPearCorestoreHrpc": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesBareRuntimeProtoMux": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesBareModuleCryptoStaging": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesPearInspectLoggerTls": { "type": "integer", "minimum": 0 }, "requireKernelCapabilitiesHypercorePackHrpcLifecycle": { "type": "integer", "minimum": 0, "description": "Mask checked against ctx.bareOsAdvertisedKernelCapabilityWords.hypercorePackHrpcLifecycle (capability word 11)" }, "requireBareBootMin": { "type": "string", "description": "Minimum bare-boot semver vs BARE_OS_BARE_BOOT_VERSION" }, "denyBareRpcMethodPatterns": { "type": "array", "items": { "type": "string" }, "description": "Regex/pattern strings merged to BARE_OS_BOOT_POLICY_DENY_BARE_RPC_PATTERNS_JSON" }, "maxPearInspectDepth": { "type": "integer", "minimum": 0, "maximum": 64 }, "maxHrpcAllowlistDepth": { "type": "integer", "minimum": 0, "maximum": 64, "description": "Cap nested HRPC allowlist probe depth; merged to BARE_OS_BOOT_POLICY_MAX_HRPC_ALLOWLIST_DEPTH" }, "requireBareLoggerMin": { "type": "string", "description": "Minimum bare-logger API class vs BARE_OS_BARE_LOGGER_VERSION" }, "denyAutobaseDiscoveryChannels": { "type": "array", "items": { "type": "string" } }, "requireBareTlsMin": { "type": "string", "description": "Minimum bare-tls semver vs BARE_OS_BARE_TLS_VERSION" }, "requireBarePackMin": { "type": "string", "description": "Minimum bare-pack semver vs BARE_OS_BARE_PACK_VERSION (host-supplied)" }, "requireBareAddonPolicyMin": { "type": "string", "description": "Minimum bare-addon policy semver vs BARE_OS_BARE_ADDON_POLICY_VERSION (host-supplied sketch)" }, "extensionSignerPinsV3": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^[a-f0-9]{64}$" } }, "extensionSignerPinsV4": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "description": "Optional fourth extension signer pin map (capability word 11); merged to BARE_OS_BOOT_POLICY_EXTENSION_SIGNER_PINS_V4_JSON" }, "offlineLkgRequirePearStamp": { "type": "boolean", "description": "When true, sets BARE_OS_OFFLINE_LKG_REQUIRE_PEAR_STAMP=1 for host/offline stamp class hints" }, "offlineLkgRequireHypercorePackHrpcLifecycle": { "type": "boolean", "description": "When true, sets BARE_OS_OFFLINE_LKG_REQUIRE_HYPERCORE_PACK_HRPC_LIFECYCLE=1 for strict offline bits11 class hints" }, "bootStagesRequireLifecycleMinSchema": { "type": "integer", "minimum": 0, "description": "When > 0, fail strict boot when BARE_OS_LIFECYCLE_SCHEMA_VERSION < this value; **0** disables. Canonical; merged with bootPhasesRequireLifecycleMinSchema (max wins)" }, "bootPhasesRequireLifecycleMinSchema": { "type": "integer", "minimum": 0, "description": "Deprecated alias of bootStagesRequireLifecycleMinSchema" }, "requirePearRuntimeRange": { "type": "object", "additionalProperties": false, "properties": { "min": { "type": "string" }, "max": { "type": "string" } } }, "denyBareModuleSpecifierPatterns": { "type": "array", "items": { "type": "string" } }, "requireBareCryptoMin": { "type": "string", "description": "Minimum bare-crypto semver vs BARE_OS_BARE_CRYPTO_VERSION" }, "denyKernelSyscalls": { "type": "array", "items": { "type": "string" } }, "requirePearIpcMin": { "type": "string", "description": "Minimum pear-ipc package semver vs BARE_OS_PEAR_IPC_PACKAGE_VERSION" }, "extensionSignerPinsV2": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^[a-f0-9]{64}$" } }, "offlineLkgManifestMaxAgeSec": { "type": "integer", "minimum": 0 }, "bootStagesRequireProcIndexMinSchema": { "type": "integer", "minimum": 1, "description": "Fail strict boot when /proc/bare_os/index.json schema < this value (canonical; max with bootPhasesRequireProcIndexMinSchema)" }, "bootPhasesRequireProcIndexMinSchema": { "type": "integer", "minimum": 1, "description": "Deprecated alias of bootStagesRequireProcIndexMinSchema" }, "requireBareRuntimeMin": { "type": "string", "description": "Minimum Bare runtime semver; compared to ctx.bareOsBareRuntimeVersion / BARE_OS_BARE_RUNTIME_VERSION" }, "denySeedRpcMethods": { "type": "array", "items": { "type": "string" }, "description": "Seed RPC short names to skip at booter handshake; merged to BARE_OS_BOOT_POLICY_DENY_SEED_RPC_METHODS" }, "maxProtomuxChannelNameLength": { "type": "integer", "minimum": 8, "maximum": 512, "description": "Cap merged to BARE_OS_BOOT_POLICY_MAX_PROTO_MUX_CHANNEL_NAME_LENGTH" }, "requireInitJsSha256": { "type": "string", "minLength": 64, "maxLength": 64 }, "requireBooterSemver": { "type": "string", "description": "Minimum booter package semver (e.g. 0.1.0); compared to ctx.bareOsBooterPackageVersion" }, "requireCtxApiMin": { "type": "string", "description": "Minimum ctx API semver (e.g. 1.16.0); compared to bareOsCtxApiVersion" }, "requirePearRuntimeMin": { "type": "string", "description": "Minimum Pear runtime semver; compared to ctx.bareOsPearRuntimeVersion / BARE_OS_PEAR_RUNTIME_VERSION" }, "requireProtocolPackageMin": { "type": "string", "description": "Minimum bare-os-protocol package semver; compared to ctx.bareOsProtocolPackageVersion" }, "denyKernelExtensionIds": { "type": "array", "items": { "type": "string" } }, "kernelExtensionHashPins": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^[a-f0-9]{64}$" } }, "offlineLkgIntegrityStrict": { "type": "boolean", "description": "When true with strict policy, offline LKG boot requires extra integrity checks (operator-defined via env on host)" }, "maxExecLineDepth": { "type": "integer", "minimum": 1 }, "denyEnvKeys": { "type": "array", "items": { "type": "string" } }, "requireProcNodes": { "type": "array", "items": { "type": "string" } }, "allowedUnionPrefixes": { "type": "array", "items": { "type": "string" } }, "allowedPearIpcChannels": { "type": "array", "items": { "type": "string" } }, "denyVfsPrefixes": { "type": "array", "items": { "type": "string" } }, "denyExecLineBuiltins": { "type": "array", "items": { "type": "string" } }, "allowedCtxMethods": { "type": "array", "items": { "type": "string" } }, "denyCtxMethodPrefixes": { "type": "array", "items": { "type": "string" }, "description": "Merged to BARE_OS_BOOT_POLICY_DENY_CTX_PREFIXES (comma-separated); ctx method names starting with any prefix are denied" }, "maxKernelExtensionDepth": { "type": "integer", "minimum": 1, "maximum": 32, "description": "Maximum dependency depth for kernel.ext.d graph (strict policy fails when exceeded)" }, "gitPartialClonePolicy": { "type": "string", "enum": ["deny", "allow", "prefer"], "description": "Host-interpreted git partial clone stance; surfaced as BARE_OS_BOOT_POLICY_GIT_PARTIAL_CLONE" }, "maxInitdRestartsPerUnit": { "type": "integer", "minimum": 1, "maximum": 32 }, "policyFallbackPaths": { "type": "array", "items": { "type": "string" }, "description": "Additional /etc/bare-os/*.json files whose skipBootStages/denyBootStages (and legacy skipPhases/denyBootPhases) merge after the primary policy" }, "requireBootBundleSha256Hex": { "type": "string", "description": "Compare to env BARE_OS_BOOT_BUNDLE_DIGEST_HEX (lowercase hex)" }, "initdAdmission": { "type": "object", "additionalProperties": true, "properties": { "maxParallel": { "type": "integer", "minimum": 1, "maximum": 32 }, "memoryHintMb": { "type": "integer", "minimum": 1 }, "wallBudgetMsDefault": { "type": "integer", "minimum": 1 } }, "description": "Merged to BARE_OS_INITD_* env hints for bare-initd" }, "p2pAdmission": { "type": "object", "additionalProperties": true, "properties": { "peerAllowlistHex": { "type": "array", "items": { "type": "string" }, "description": "When ctx.env BARE_OS_PEER_ALLOWLIST_HEX is unset, merged as JSON string into that env (comma-separated hex public keys)" }, "hyperswarmBootstrap": { "type": "array", "items": { "type": "string" }, "description": "When ctx.env BARE_OS_HYPERSWARM_BOOTSTRAP is unset, merged as JSON string into that env (comma-separated host:port)" } }, "description": "Optional P2P admission hints merged into ctx.env during boot when corresponding env vars are empty" }, "extensionSignerPinsV5": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Optional multi-signer pin map → BARE_OS_BOOT_POLICY_EXTENSION_SIGNER_PINS_V5_JSON" }, "posixCapabilityHints": { "type": "array", "items": { "type": "string" }, "description": "Optional distributor catalog of POSIX-like surfaces (e.g. cooperative_fcntl_locks, socket_fd_bridge, dynamic_sysconf); informational for governance dashboards" } } }