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

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

@refactorsaurusrex

Description

@refactorsaurusrex

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    breakingThis is a breaking changeenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions