Repository navigation
1.0.0-alpha.6: share a vault, and see who changed what - #24
Merged
Merged
Conversation
SecretSpace 3, phase 4 (needs SecretSpace Server 2.0.0-alpha.3). Sharing - Vaults -> Members: an owner adds an account of the same server as owner, editor or reader. Before the first share the other person's fingerprint is shown to compare; it covers both of their public keys. The vault key goes to them wrapped to their public key only. - Remove takes a member out and gives the vault a new key in the same step (account_sync.change_key): the vault is synced, re-encrypted, and the new key wrapped to everyone who stays. Other devices take the new key at their next sync. Change key does the same without removing anyone. - A member can leave. A reader gets no Edit / Archive / Revert, and a change to a read-only vault that reaches a save is undone from the file. - Each device remembers the keys it has seen for a person and stops when the server later gives different ones. Who changed what - changelog.py: every save adds signed lines to the vault's own change log (who, when, what kind of change, which entry, which fields - never a value), made by comparing with the vault as last written. The log is encrypted with the vault and merged by sync. - The signing key (Ed25519) is derived from the account key, so existing accounts have one without any change to their files. - updated_by on entries and by on earlier versions; shown in the details card and in History in a vault that has other members. - Vaults -> Activity lists the log for every member and marks a line whose signature does not match its author. Owners can also read the server's log there. - Not recorded, on purpose: who viewed an entry or copied a password. Tests: test_account_sharing.py (two accounts on two devices through the test copy of the server). Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ojnyVg7ccsR3pZ64s7aRH
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SecretSpace 3, phase 4, client side: share a vault with other accounts, and see who changed what. A test version (pre-release); it needs SecretSpace Server 2.0.0-alpha.3.
Sharing
Who changed what
changelog.py). Each save adds signed lines: who, when, what kind of change, which entry, which fields. Never a value. The lines are made in one place, by comparing with the vault as last written, and sync merges them.Not in this step
Tests
test_account_sharing.py: 57 tests, two accounts on two devices through the test copy of the server.tests/sync_server/passman_server.pyis the merged server 2.0.0-alpha.3, byte for byte.🤖 Generated with Claude Code
https://claude.ai/code/session_011ojnyVg7ccsR3pZ64s7aRH