Geteilte native Event-Sourcing-Sync-Lib (Counterpart zu @mana/event-sync). Local-First mit Anonymous-Mode + Claim. — Apache-2.0, Spiegel des Vereins mana.
Find a file
Till bfc1ea5310 feat: Per-Mandant-Crypto-Shredding (A3) — ScopedCryptoProvider (v0.6.0)
CryptoContext + optionale context-Varianten (Default-Extension → bestehende
Provider unverändert); ScopeVaultClient; ScopedCryptoProvider (Actor,
scopeResolver, Sub-Key-Cache, Master-Fallback, shredded→wirft);
createScopedKeyProviderFromVault; EventSyncConfig.scopeResolver → Engine baut
Scoped-Provider, Context an emit/pull/reencrypt. AES-GCM-seal/open geteilt.
31 Tests grün, abwärtskompatibel. Parität zu @mana/event-sync 0.7.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 16:40:52 +02:00
devlog devlog: Repo-Historie nachgezogen (spieler+macher) 2026-06-16 01:44:32 +02:00
Sources/ManaEventSync feat: Per-Mandant-Crypto-Shredding (A3) — ScopedCryptoProvider (v0.6.0) 2026-06-16 16:40:52 +02:00
Tests/ManaEventSyncTests feat(engine): Decrypt-Failures sichtbar statt Silent-Skip 2026-06-10 21:52:37 +02:00
.gitignore feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
.swiftformat feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
.swiftlint.yml chore(lint): swiftlint --strict sauber (0 Violations) 2026-05-25 15:49:48 +02:00
CHANGELOG.md feat: Per-Mandant-Crypto-Shredding (A3) — ScopedCryptoProvider (v0.6.0) 2026-06-16 16:40:52 +02:00
CLAUDE.md feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
Package.swift feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
README.md feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00

mana-swift-event-sync

ManaEventSync — der native Swift-Counterpart zu @mana/event-sync. Eine geteilte Event-Sourcing-Sync-Bibliothek für alle nativen mana-e.V.-Apps: lokaler Event-Log + Projektion, Outbox, HTTP/WebSocket- Sync gegen mana-sync (sync2.mana.how), optionale Payload-Crypto und Local-First mit Anonymous-Mode + Claim bei Login.

Vereinheitlicht die zuvor zweimal von Hand gebaute Plumbing aus pageta-native und nutriphi-native.

Was die App liefert, was die Lib liefert

  • Lib (ManaEventSync): Wire-Format (EventEnvelope), EventStorage (SwiftData), SyncHTTPClient + optionaler SyncWSClient, optionale CryptoProvider/VaultClient, die EventSyncEngine mit Anonymous- Identität + signIn-Claim.
  • App: ihre Domäne — Payload-Typen, State-Projektionen, Reducer und ein dünner Coordinator, der engine.makeEnvelope/emit/events(forAggregate:) nutzt.

Stand

Siehe CHANGELOG.md. Plan + Phasen: ../mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md.

Lokal

swift build
swift test