Boundary Model
Vollständige Referenz des IIO Boundary Layers — 4 Boundary-Typen, Zugriffskontrolle, Violation-Handling, Grant-Management und Transitions.
1. Was ist eine Boundary?1. What is a Boundary?
Eine Boundary ist ein spezifizierter Zugangskontroll-Mechanismus, der festlegt, welche Actors ein Target (Artefakt, Zustand, Composition, Story) wahrnehmen, damit interagieren oder verändern dürfen.
Role-based, nicht Actor-type-based: Human- und Agent-Actors respektieren identische Boundary-Regeln. Es gibt keine Sonderrechte aufgrund des Actor-Typs.
2. Die 4 Boundary-Typen2. The 4 Boundary Types
Internal Boundary
Nur Composition-Members. Absolute Grenze — kein Escape-Hatch. Alle Members sehen Composition-Interna.
Beispiel: Team-interne Projekt-Dateien
Semi-Permeable Boundary
Composition mit designierten externen Zugängen. Grants werden explizit erteilt und können ablaufen.
Beispiel: Externer Auditor sieht Compliance-Artefakte
Federated Boundary
Composition-zu-Composition-Koordination via Delegates. Jede Composition behält volle Autonomie.
Beispiel: Zwei Teams koordinieren ein geteiltes Feature
Boundary-Less (Private)
Privater Raum eines Individual Actors. Kein externer Zugriff — außer bei freiwilliger Transparenz.
Beispiel: Lokaler Dev-Workspace vor Team-Publikation
3. Boundary YAML-Schemata3. Boundary YAML Schemas
Semi-Permeable Grant (vollständig)Semi-Permeable Grant (complete)
boundary_type: semi_permeable
scope: composition_with_grants
actors_allowed:
- role: observer_external
actors: [stakeholder_org_x, qa_contractor_y]
granted_at: 2024-01-01T00:00:00Z
expires_at: 2024-12-31T23:59:59Z # oder "never"
granted_by: composition_lead_alice
basis: "Audit Q1 2024 — compliance review"
- role: reviewer_external
actors: [auditor_z]
granted_at: 2024-03-15T09:00:00Z
expires_at: never
access_grant:
perceive: true # nur designierten Artefakten/Zuständen
interact: true # kann anfordern/kommentieren per Role
modify: false # kein Schreibzugriff
governance_model:
grant_by: composition_lead + external_stakeholder_consent
duration: temporary | permanent
audit: all_access_logged_in_transaction_log
boundary_can_shift: true # wenn Role oder Term ändert sich
Federated Boundary (vollständig)Federated Boundary (complete)
boundary_type: federated
scope: composition_to_composition_coordination
actors_allowed:
- role: delegate_member
representing: composition_team_frontend
- role: delegate_member
representing: composition_team_backend
access_grant:
perceive: true # jede Composition sieht andere Delegation-Interface
interact: true # Delegates können koordinieren
modify: false # Delegates schlagen vor; Heimteam entscheidet
governance_model:
each_composition_retains_autonomy: true
cross_composition_decision: consensus_or_veto
transaction_credited_to: delegating_composition
member_detail: which_delegate_executed
4. Zugriffskontrolle — 7-Gate Check (Fail-Closed)4. Access Control — 7-Gate Check (Fail-Closed)
Jede Access-Anforderung durchläuft diese 7 Gates in Reihenfolge. Erster Fail = DENY + Log.
-
G1
Actor Exists — Anfragender Actor muss registriert sein.
PASS: Actor bekannt → weiter | FAIL: Actor unbekannt → DENY -
G2
Role Resolution — Anfrage kommt aus korrekter Role (Internal: ∈ members; Semi-perm: ∈ granted_roles; Fed: ∈ delegation_roles; Private: = self).
FAIL: Role nicht gefunden → DENY -
G3
Target Permission — Role hat Permission auf Target (perceive / interact / modify).
FAIL: Permission fehlt → DENY -
G4
Temporal Validity — Grant nicht abgelaufen.
FAIL: Grant expired → DENY + revoke -
G5
Composition State — Composition nicht aufgelöst.
FAIL: Dissolved → DENY Write; Read-only Archive möglich -
G6
Audit Assignment — Access wird in Transaction-Log geschrieben.
FAIL: Audit-Write schlägt fehl → DENY (keine blinden Transaktionen) -
G7
Conflict Check — Kein Role-Conflict bei ausführendem Actor.
FAIL: Widersprüchliche Roles → DENY + alert
Fail-Closed Default: Schlägt irgendein Gate fehl, wird der Zugang VERWEIGERT und als access_denied geloggt.
5. Violations & Eskalationspfad5. Violations & Escalation Path
role_missing (CRITICAL)
Actor hat keine gültige Role.
Aktion: sofortiges DENY + alert composition_lead
permission_denied (HIGH)
Role existiert, aber fehlt Permission auf Target.
Aktion: DENY + log + notify requester_role
boundary_expired (HIGH)
Semi-Permeable Grant ist abgelaufen.
Aktion: DENY + revoke access + audit_log
composition_dissolved (INFO)
Zugriff auf aufgelöste Composition (nur Archiv).
Aktion: deny_write + allow_read_archive + audit_log
unauthorized_external_access (CRITICAL)
Externer Actor versucht interne Boundary zu überwinden.
Aktion: DENY + alert_security + temp_block
EskalationspfadEscalation Path
Violation Detected
│
├─ CRITICAL (unauthorized external access)
│ → sofortiges DENY
│ → Security Alert an composition_lead + ops
│ → temporärer Block des Actors
│
├─ HIGH (permission / expiration)
│ → DENY + Notification an Owner
│ → Ticket/Story erstellen für Follow-Up
│
└─ INFO (archive access attempt)
→ DENY write
→ READ archive erlaubt
→ log (kein Alert)
6. Boundary Transitions6. Boundary Transitions
Szenario: Role-Promotion (Contributor → Reviewer)Scenario: Role Promotion (Contributor → Reviewer)
contributor (perceive_internal, interact_limited)Schritt 2: Role-Assignment TX: alice bekommt
reviewer (perceive_all, interact_full, modify_limited)Schritt 3:
boundary_recalculation — alice's Zugriffsrechte aktualisiert→ Vorherige TXs sichtbar (retrospektiver Zugang gewährt)
→ Zukünftige TXs unter neuen Permissions validiert
Schritt 4: Audit — role_change TX aufgezeichnet, alice notifiziert
Kein blinder Retro-Access — alle Permission-Änderungen sind geloggt.
Szenario: Semi-Permeable Grant ExpiryScenario: Semi-Permeable Grant Expiry
auditor_z: role=reviewer_external, expires=2024-06-30Date reaches 2024-07-01: System erkennt Ablauf
→ automatisches DENY für
auditor_z→
access_revoked TX geschrieben→ composition_lead notifiziert
→ Grant-Verlängerung: neues explizites Grant-Objekt erforderlich (kein automatisches Renewal)
Szenario: Composition DissolutionScenario: Composition Dissolution
composition_team_old is dissolved→ Alle Internal-Boundary Writes: DENY
→ Alle Internal-Boundary Reads: ALLOW (archive only, read-only)
→ Semi-Permeable Grants: alle automatisch expired
→ Federated Delegates: alle automatisch deactivated
→ Audit-Log: vollständige Dissolution-Eintrag (immutable)
7. Grant-Management Workflow7. Grant Management Workflow
Semi-Permeable Grants werden durch den folgenden kontrollierten Prozess verwaltet:
| SchrittStep | Actor | AktionAction | TX-Type |
|---|---|---|---|
| 1. Grant beantragen | Externer Actor | Access-Request mit Begründung + Rollenvorschlag | request |
| 2. Grant prüfen | Composition Lead | Review der Begründung; Scope und Laufzeit festlegen | approve / reject |
| 3. Grant konfigurieren | System (angewiesen von Lead) | Grant-Objekt in Boundary-Config schreiben | modify |
| 4. Grant aktiv | Externer Actor | Zugriff gemäß Grant-Scope | — (read/interact) |
| 5. Grant überwachen | System | Ablaufdatum prüfen; Warnmeldung vor Expiry | — (automated check) |
| 6. Grant verlängern / widerrufen | Composition Lead | Neues Grant-Objekt anlegen oder revoke TX | create / modify |
8. Boundary im Schichtenmodell8. Boundary in the Layer Model
Der Boundary Layer sitzt zwischen Transaction Layer und Skill Registry Layer — er schützt alle darunterliegenden Operationen.
| Layer | Was Boundary schütztWhat Boundary Protects | Boundary-TypBoundary Type |
|---|---|---|
| Foundation | Core-Workspace-Zugriff | Internal (nur registrierte Actors) |
| Story Layer | Story-Editing + Publishing | Internal (Composition) + Semi-Permeable (Reviewer) |
| Role Layer | Role-Assignment-TXs | Internal (Lead/Owner only) |
| Composition Layer | Member-Management + Dissolution | Internal (strict) + Federated (between comps) |
| Transaction Layer | TX-Approval + Audit | Internal (Reviewer) + Semi-Perm (Auditor) |
| Skill Registry | Skill-Registrierung + Änderung | Internal (Registry Ops Team) |
| Public Output | Öffentlich zugängliche Artefakte | Boundary-Less (read-only world) |