Skip to content

Commit b344601

Browse files
committed
Wire control plane schemas into README
1 parent bce3700 commit b344601

1 file changed

Lines changed: 64 additions & 3 deletions

File tree

README.md

Lines changed: 64 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ SourceOS State Integrity daemon: local-first object, actor, schema, repair, prov
66

77
`sourceos-syncd` is the reference substrate for SourceOS local-first state integrity. It should make state observable, explainable, policy-governed, repairable, attestable, and safe for agent use.
88

9-
This repository is the canonical home for the SourceOS State Integrity Report, Index Lane model, and telemetry signal-control doctrine.
9+
This repository is the canonical home for the SourceOS State Integrity Report, Index Lane model, telemetry signal-control doctrine, and the first SourceOS control-plane contract spine.
1010

1111
## Core concepts
1212

@@ -18,28 +18,62 @@ This repository is the canonical home for the SourceOS State Integrity Report, I
1818
- **Attested operations**: Lampstand preserves important state reports and repair actions as signed evidence.
1919
- **Telemetry signal control**: raw logs are evidence, not the product; expected policy blocks are classified correctly and duplicate noise is coalesced.
2020
- **Operator narrative**: SourceOS explains what happened, why policy acted, what risk remains, and what action is required.
21+
- **Control-plane receipts**: events, services, capabilities, launch manifests, and incident bundles share one typed vocabulary.
2122

2223
## Specs
2324

2425
- [`docs/specs/sourceos-state-integrity-report.md`](docs/specs/sourceos-state-integrity-report.md)
2526
- [`docs/specs/sourceos-index-lanes.md`](docs/specs/sourceos-index-lanes.md)
27+
- [`docs/specs/sourceos-control-plane-integration.md`](docs/specs/sourceos-control-plane-integration.md)
2628
- [`docs/telemetry-noise-control-spec.md`](docs/telemetry-noise-control-spec.md)
2729
- [`docs/canonical-event-envelope.md`](docs/canonical-event-envelope.md)
2830
- [`docs/implementation-roadmap.md`](docs/implementation-roadmap.md)
31+
- [`adr/0001-sourceos-control-plane.md`](adr/0001-sourceos-control-plane.md)
2932

3033
## JSON Schemas
3134

35+
State integrity:
36+
3237
- [`schemas/sourceos.state-integrity-report.v1alpha1.schema.json`](schemas/sourceos.state-integrity-report.v1alpha1.schema.json)
3338
- [`schemas/sourceos.repair-plan.v1alpha1.schema.json`](schemas/sourceos.repair-plan.v1alpha1.schema.json)
3439

40+
Control plane:
41+
42+
- [`schemas/sourceos-event.schema.json`](schemas/sourceos-event.schema.json)
43+
- [`schemas/sourceos-service.schema.json`](schemas/sourceos-service.schema.json)
44+
- [`schemas/sourceos-capability.schema.json`](schemas/sourceos-capability.schema.json)
45+
- [`schemas/sourceos-launch-manifest.schema.json`](schemas/sourceos-launch-manifest.schema.json)
46+
- [`schemas/sourceos-incident.schema.json`](schemas/sourceos-incident.schema.json)
47+
3548
The runtime validator is standard-library-only today; the schemas are the canonical external contract for downstream validators, SDKs, dashboards, and cross-repo integrations.
3649

3750
## Golden examples
3851

52+
Health and repair:
53+
3954
- [`examples/health/healthy.snapshot.json`](examples/health/healthy.snapshot.json)
4055
- [`examples/health/degraded.snapshot.json`](examples/health/degraded.snapshot.json)
4156
- [`examples/health/repair-plan.json`](examples/health/repair-plan.json)
4257

58+
Control plane:
59+
60+
- [`examples/events/apple-mdm-entitlement-denial.coalesced.json`](examples/events/apple-mdm-entitlement-denial.coalesced.json)
61+
- [`examples/events/apple-darkwake-network-receipt.json`](examples/events/apple-darkwake-network-receipt.json)
62+
- [`examples/services/bearbrowser.service.json`](examples/services/bearbrowser.service.json)
63+
- [`examples/capabilities/browser-gpu-spawn.capability.json`](examples/capabilities/browser-gpu-spawn.capability.json)
64+
- [`examples/launch/bearbrowser.launch-manifest.json`](examples/launch/bearbrowser.launch-manifest.json)
65+
- [`examples/incidents/bearbrowser-identity-leak.incident.json`](examples/incidents/bearbrowser-identity-leak.incident.json)
66+
67+
## Validation
68+
69+
Bootstrap control-plane validation uses only Python standard-library checks:
70+
71+
```bash
72+
python3 tools/validate_control_plane_examples.py
73+
```
74+
75+
This validator is intentionally narrower than a full JSON Schema validator. It enforces schema-version alignment, controlled vocabulary basics, required operator narrative fields, causality fields, service capability lists, and the invariant that expected policy blocks do not render as warning/error by default.
76+
4377
## Intended CLI contract
4478

4579
```bash
@@ -66,6 +100,9 @@ sourceos repair rollback
66100
sourceos events explain
67101
sourceos events coalesce
68102
sourceos events verify
103+
sourceos control-plane validate
104+
sourceos services graph
105+
sourceos incidents explain
69106
```
70107

71108
## Intended local HTTP contract
@@ -78,6 +115,10 @@ Local-only by default:
78115
- `/events` canonical event stream, privacy-tiered by caller capability
79116
- `/events/{id}` canonical event with evidence references
80117
- `/events/{id}/explain` human operator narrative
118+
- `/services` local service graph
119+
- `/services/{id}` service manifest and health state
120+
- `/capabilities` capability registry
121+
- `/incidents` local incident bundle index
81122
- `/metrics` Prometheus/OpenTelemetry export
82123
- `/repairz` repair planning endpoint, disabled remotely unless policy explicitly allows it
83124

@@ -92,17 +133,37 @@ Required behaviors:
92133
- Redaction preserves causal structure: actor, target class, policy rule, and outcome remain understandable.
93134
- Local-first trust verification is the baseline; network trust lookup must be explicit and policy-authorized.
94135
- Analytics, hardware/UI diagnostics, and developer traces are separate lanes and suppressed from default security/operator views.
136+
- Wake, launch, identity, parser, incident, and telemetry activity must produce receipts instead of opaque logs.
137+
138+
## Control-plane release gates
139+
140+
A SourceOS service or product is not release-ready unless:
141+
142+
1. It has a service manifest.
143+
2. It emits canonical events or explicitly documents why it does not.
144+
3. It declares required, optional, and denied capabilities.
145+
4. It has a hermetic launch manifest if it is an app.
146+
5. It produces an incident bundle for crashes, denial storms, wake anomalies, identity mismatches, and parser faults.
147+
6. It does not perform silent remote trust lookup.
148+
7. It does not emit remote telemetry by default.
149+
8. It coalesces repeated expected denials.
150+
9. It preserves privacy while retaining causal structure.
151+
10. It has a DeliveryExcellence signal-quality metric.
95152

96153
## Estate integration targets
97154

98-
- `SocioProphet/policy-fabric`: policy decisions for indexing, retention, replication, purge, agent access, telemetry outcomes, and explanation codes.
155+
- `SocioProphet/policy-fabric`: policy decisions for indexing, retention, replication, purge, agent access, telemetry outcomes, explanation codes, capability grants, and release gates.
99156
- `SocioProphet/agentplane`: trust gates before agent actions against state substrates and process/agent lineage traces.
100157
- `SocioProphet/lampstand`: signed evidence, repair records, event attestations, and incident timelines.
101158
- `SocioProphet/memory-mesh`: memory-lane health, tombstones, staleness, replay, and event-linked memory provenance.
102159
- `SocioProphet/smart-tree`: object graph freshness, repo index health, structural churn, and package/source provenance.
103-
- SocioSphere dashboarding: operator cards for process, policy, trust, sync, repair, and narrative events.
160+
- SourceOS browser surfaces: product identity invariants, helper topology, hermetic app launch, parser/media worker receipts, and local incident bundles.
161+
- TurtleTerm / developer runtime: developer-mode scope, tty/session provenance, command-hash ledger, privileged-action receipts, and toolchain environment manifests.
162+
- SocioSphere dashboarding: operator cards for process, policy, trust, sync, repair, incident, wake, identity, and narrative events.
104163
- DeliveryExcellence stack: estate-wide health scoring, signal-to-noise metrics, SLOs, release readiness, and regression tracking.
105164

106165
## First implementation target
107166

108167
The first implementation should produce and validate the golden examples, then expose `health snapshot`, `health explain`, `repair plan`, `events explain`, `events coalesce`, and `events verify` without destructive `repair apply`.
168+
169+
The control-plane extension adds one immediate next target: turn `tools/validate_control_plane_examples.py` into a CI gate, then replace the bootstrap checks with full JSON Schema validation once a dependency policy is selected.

0 commit comments

Comments
 (0)