Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

Remove git integration, replace with S3 synchronization + client side encryption. #71

Open
refactorsaurusrex opened this issue May 25, 2021 · 0 comments
Labels
breaking This is a breaking change enhancement New feature or request
Projects

Comments

@refactorsaurusrex
Copy link
Owner

refactorsaurusrex commented May 25, 2021

Background

Although I always thought having native git support was a super cool feature, getting it to work in a cross platform manner has proven to be a pain in the ass. PowerShell, for all it's benefits, still doesn't have a great process for compiling and packaging native binaries in a way that works consistently across operating systems. The only solution is to hand craft a needlessly complicated build that reorganizes binary artifacts in a specific way so they load correctly, according to the running OS. This issue totally threw off my development momentum a year ago. I've since decided on a different approach which provides many more benefits than native git integration, without significant downsides.

The Approach

  • Remove all git integration.
  • Create a new command Sync-Journal which will encrypt all journal entries on the client and then upload them to an AWS S3 bucket owned by the user. (Not owned or maintained by me.)
  • Journal CLI will handle provisioning of the bucket so that server side encryption and object versioning are both enabled.
  • Additional commands will be included so that version history for each journal entry can be reviewed, including the ability to show a diff in the console.

The Benefits

  • No more native binaries to distribute.
  • Journal can easily be accessed by any machine with PowerShell installed.
  • End to end encryption.
  • Complete journal entry versioning, even without git.
  • Users could take advantage of services like Cryptomator to synchronize their journals, if they chose, which is not currently possible because Cryptomator does not play nice with git.
  • Journals can still be encrypted locally using a VeryCrypt container.

The Downside

All git history will be rendered obsolete. But given how few people are using this tool, I don't think that matters. :D

@refactorsaurusrex refactorsaurusrex created this issue from a note in Roadmap (In progress) May 25, 2021
@refactorsaurusrex refactorsaurusrex added breaking This is a breaking change enhancement New feature or request labels May 25, 2021
@refactorsaurusrex refactorsaurusrex changed the title Remove git support and replace with S3 synchronization & end to end encryption. Remove git support and replace with S3 synchronization + client side encryption. May 25, 2021
@refactorsaurusrex refactorsaurusrex changed the title Remove git support and replace with S3 synchronization + client side encryption. Remove git integration and replace with S3 synchronization + client side encryption. May 25, 2021
@refactorsaurusrex refactorsaurusrex changed the title Remove git integration and replace with S3 synchronization + client side encryption. Remove git integration, replace with S3 synchronization + client side encryption. May 25, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking This is a breaking change enhancement New feature or request
Projects
Roadmap
  
In progress
Development

No branches or pull requests

1 participant