Extrahiert die zuvor zweimal von Hand gebaute Plumbing aus pageta-native + nutriphi-native in ein Paket ManaEventSync (Counterpart zu @mana/event-sync): - Core: EventEnvelope (+clientId/payloadHash), JSONValue, ULID, JWTSubject, EventSyncError - EventStorage (SwiftData): parametrierbar (Store/App-Group/additionalModels/In-Memory), Outbox, Claim-Reattribute, Anonymous-Retention-Prune - Transport: SyncHTTPClient (+X-Schema-Hash/422), optionaler SyncWSClient - Crypto: CryptoProvider/NoOp/MasterKey (AES-GCM enc:1:), VaultClient — opt-in - EventSyncEngine: besitzt die Identität (makeEnvelope anon/echt), emit offline, signIn(realUserId) re-taggt idempotent + drained, Retention 10k/90d 18 Tests grün. Plan: mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# 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`](CHANGELOG.md). Plan + Phasen:
|
|
[`../mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md`](../mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md).
|
|
|
|
## Lokal
|
|
|
|
```bash
|
|
swift build
|
|
swift test
|
|
```
|