You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've put together a comprehensive architectural design and roadmap plan for adding remote sync and backup support to Eko directly using GitHub's REST/GraphQL APIs instead of relying on a local Git client.
We want to allow developers to seamlessly push and pull Eko snapshots directly to/from GitHub repositories without cluttering the local Git history or index.
Here is the proposed design overview:
Stateless Remote & SQLite Re-Indexing:
To avoid concurrent merge conflicts (e.g. merging a single SQLite binary file), remote storage will be purely file-based. On eko push, manifests are uploaded as individual JSON files to a custom git namespace (refs/eko/snapshots/*). On eko pull, Eko fetches new manifests and dynamically indexes them to reconstruct the local database cache.
CAS Object blobs: Packaged into compressed archives (.tar.gz) and uploaded as GitHub Release Assets or generic container packages.
Restoring: missing object blobs are lazily downloaded from GitHub on-demand during eko restore.
Keyring-based OAuth Device Flow:
Authenticate using GitHub OAuth Device flow and store tokens securely in native OS keychains using zalando/go-keyring.
I've created a set of trackable issues matching each implementation phase:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi team!
I've put together a comprehensive architectural design and roadmap plan for adding remote sync and backup support to Eko directly using GitHub's REST/GraphQL APIs instead of relying on a local Git client.
We want to allow developers to seamlessly push and pull Eko snapshots directly to/from GitHub repositories without cluttering the local Git history or index.
Here is the proposed design overview:
Stateless Remote & SQLite Re-Indexing:
To avoid concurrent merge conflicts (e.g. merging a single SQLite binary file), remote storage will be purely file-based. On
eko push, manifests are uploaded as individual JSON files to a custom git namespace (refs/eko/snapshots/*). Oneko pull, Eko fetches new manifests and dynamically indexes them to reconstruct the local database cache.Storage Mechanisms:
refs/eko/snapshots/<id>)..tar.gz) and uploaded as GitHub Release Assets or generic container packages.eko restore.Keyring-based OAuth Device Flow:
Authenticate using GitHub OAuth Device flow and store tokens securely in native OS keychains using
zalando/go-keyring.I've created a set of trackable issues matching each implementation phase:
eko clone(Phase 4): github-integrate: Bootstrap Workspace viaeko clone(Phase 4) #165Please check out the full roadmap and let me know your thoughts/suggestions on this approach!
All reactions