feat(data): Data Spheres — ring-fenced immutable data, sharpened by the live mount table - #29
Merged
Merged
Conversation
…he live mount table
Fuses the Trusted-Data-Spheres pattern (immutable + token-gated + provenance) with our commons +
grant + Needs-firewall, and hardens it with four lessons read off the sandbox's own mount table.
tools/data_sphere.py:
- mint_sphere: content-addressed, immutable, INTEGRITY BY CONSTRUCTION — squashfs/erofs + dm-verity
with a pinned root_hash (a signature check, not a readOnly:true assertion; the inode has no write
path at any layer). access_check REFUSES a sphere without a pinned integrity root.
- tenancy_binding: TENANCY BY CONSTRUCTION — the isolation key is in the mount SOURCE ref
(sphere-store:<session>:<sphere_id>), session-scoped + unforgeable from inside, not a policy a bad
manifest can get wrong.
- DIRECTION axis (ingress|egress|bidirectional|none) + check_egress_invariant: AT MOST ONE egress
mount per workload — the single durable-write chokepoint where egress attestation lives.
- backend_for: intent x link_availability x durability -> backend. Reference-mount over reliable
links (no copy, no divergence, no reconciliation); copy+reconcile ONLY on intermittent x canonical
(so CRF machinery is paid only where the link forces it).
- read_grant_capability + access_check: reading a sphere needs a Grant with effect:read bound to the
sphere id + content digest; fail-closed (wrong effect / mutation / bad residency / no integrity).
docs/MOUNT_TAXONOMY.md witnesses the analysis: the two diagrams compose into one lattice
(intent x link x durability), the egress chokepoint, dm-verity vs readOnly, construction-tenancy, and
the honest root-ext4-collapse counterexample. capd/data-spheres.mesh.capd.json.
Tests: +7 = 140 tools tests green. validate REQUIRED + CapD + Makefile `sphere`.
mdheller
force-pushed
the
feat/data-spheres
branch
from
August 4, 2026 05:45
6be89e5 to
ecb126d
Compare
mdheller
added a commit
that referenced
this pull request
Aug 4, 2026
The enterprise-PaaS governance the BlueMix Gen3/Gen4 diagrams model, done light + sovereign.
Account tiers (admission.py) — BlueMix entitlement/Free-Paid, as quota + backend entitlement:
- TIERS free|pro|enterprise: each sets max_concurrent/gpu_max/cost_budget AND allowed_backends
(free -> local/wasm only; pro -> +k8s/hpc/volunteer; enterprise -> all).
- AdmissionController(tiers={subject: tier}); quota_for applies the tier (explicit quotas still
override); allowed_backends(subject) feeds compute_plane.place() policy. Default tier: pro.
- free tier denies GPU work (gpu_max 0), fail-closed.
Availability-maturity grade (availability.py) — the DW-DevOps Zero-Downtime legend as a governance
artifact (like the commons' reproducible/declared grade):
- GRADES: non-managed -> needs-work -> almost-zd -> zero-downtime.
- a CapD declares policy.availability; estate_availability() reports per-capability grades + a
histogram (default non-managed). Honest grades added: compute-plane needs-work; commons /
verification / data-spheres almost-zd.
Tests: +5 tier +2 availability = 147 tools tests green. validate REQUIRED + Makefile `availability`.
Completes the three PaaS-lesson units (dev-mode #28, data-spheres #29, tiers+availability).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fuses the Trusted-Data-Spheres pattern (immutable + token-gated + provenance) with our commons + grant + Needs-firewall, hardened by four lessons read off the sandbox's own mount table.
tools/data_sphere.py:root_hash(a signature check, notreadOnly:true; the inode has no write path at any layer).access_checkrefuses a sphere without a pinned integrity root.sphere-store:<session>:<id>), unforgeable from inside, not a policy a bad manifest can get wrong.check_egress_invariant: at most one egress mount per workload — the single durable-write chokepoint.intent × link_availability × durability → backend. Reference-mount over reliable links (no copy/divergence/reconciliation); copy+reconcile only on intermittent×canonical.effect:readbound to sphere id + digest), fail-closed.docs/MOUNT_TAXONOMY.mdwitnesses the analysis — the two diagrams compose into one lattice, the egress chokepoint, dm-verity vs readOnly, construction-tenancy, and the honest root-ext4-collapse counterexample.136 tools tests green (+7). Aligns directly with your mount-table read.