a BackupService loads and saves BackupData interfaces from a distant database.
ports directory provides two BackupService implementations: BrowserSyncBackupService & GithubBackupService.
a new background service has been add to the background-script.ts context: BackupSyncer -> handle synchronization with backup services.
Set up a Marina backup service
The only UI way to set up your backup service is at the onboarding step. onboarding/wallet-restore now provides three choices when selecting the "Ionio restoration":
Github -> store the script details in a private Github repo owned by the user (here is mine) (user must set a personnal access token).
BrowserSync -> use the Browser.storage.sync storage
From file -> former "from JSON file" option
The BrowserSync "problem"
Browser.storage.sync is shared only if the extension is deployed on store. That's why it's hard to test it for now :thinking:. Note that it also needs the "extension ID" set up (related to https://github.com/vulpemventures/marina/issues/462).
It's also why I've add the simple Github repo as DB to test it without releasing.
It may need further UI works to close #391 (including a proper settings/backup page). The idea of that PR is to discuss the feature and precise the specs.
This PR adds a minimal backup feature (#391)
Backup Service
BackupService
loads and savesBackupData
interfaces from a distant database.ports
directory provides twoBackupService
implementations:BrowserSyncBackupService
&GithubBackupService
.background-script.ts
context:BackupSyncer
-> handle synchronization with backup services.Set up a Marina backup service
The only UI way to set up your backup service is at the onboarding step.
onboarding/wallet-restore
now provides three choices when selecting the "Ionio restoration":The BrowserSync "problem"
Browser.storage.sync
is shared only if the extension is deployed on store. That's why it's hard to test it for now :thinking:. Note that it also needs the "extension ID" set up (related to https://github.com/vulpemventures/marina/issues/462). It's also why I've add the simple Github repo as DB to test it without releasing.It may need further UI works to close #391 (including a proper
settings/backup
page). The idea of that PR is to discuss the feature and precise the specs.please @tiero @bordalix review this