Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

!feat(backup): support crossplatform backup (CPB) POC [WPB-10575] #18273

Draft
wants to merge 17 commits into
base: dev
Choose a base branch
from

Conversation

vitorhugods
Copy link
Member

@vitorhugods vitorhugods commented Nov 4, 2024

StoryWPB-10575 Cross Platform Backup: Write common backup / restore library

Description

The goal is to unify the backup format between all clients, so a backup can be used in different devices/platforms.
It would also be a step in the direction of sharing chat history between clients. As this backup format can be shared from client A to client B.

Checklist

  • mentions the JIRA issue in the PR name (Ex. WPB-423)
  • PR has been self reviewed by the author;
  • Hard-to-understand areas of the code have been commented;
  • If it is a core feature, unit tests have been added;

Important Details for the Reviewers

This is a POC

Don't take everything seriously (especially the silly mistakes coming from a non TS/JS fluent person).

Focus on src/script/backup/BackupRepository.ts

The directory TEMP-crossplatform-backup is only temporary and will not live within wire-webapp repository. The idea is to publish a NPM artifact and remove these files from here. There's also some cleanup needed and most of these files will be removed from the artifact itself.

Backup Logic

It's supposed to be exactly the same. The only difference will be that instead of doing JSON.stringify and TextEncode, it will use this library to (de)serialize a common data format.

What's actually expected from this PR?

Main feedback I'd like to have is about the general idea and the API itself. The interaction/contract between MPBackupImporter or MPBackupExporter and the Web client.
Does it feel idiomatic enough? How could I change the signature of functions to make it feel smoother?

Silly example

A conversation from Android. Exported from Android This is the console logs after importing the backup file on Web
CPBackup1 CPBackup2

Here is the silly backup file, FWIW. Rename it to .desktop_wbu in order to import on Web. I just made it a ZIP in order to upload on Github 😎

WBX-vitor_wire-2024-11-04_16-19-18.zip

@aweiss-dev aweiss-dev changed the title !feat(backup): support multiplatform backup POC [WPB-10575] !feat(backup): support crossplatform backup (CPB) POC [WPB-10575] Nov 22, 2024
@yamilmedina yamilmedina requested review from yamilmedina and removed request for yamilmedina November 22, 2024 16:37
Copy link

sonarcloud bot commented Nov 26, 2024

Quality Gate Failed Quality Gate failed

Failed conditions
E Reliability Rating on New Code (required ≥ D)
D Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants