``` ~alice $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Bob" --description "" --threshold 2 --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm -q 069e7d58faa9a7473d27f5510d676af33282796f ``` ``` ~bob $ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji ✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSL…StBU8Vi.. ✓ Fetched repository from 1 seed(s) $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Add Eve" --description "" --delegate did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn --no-confirm ✓ Identity revision 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c created ╭────────────────────────────────────────────────────────────────────────╮ │ Title Add Eve │ │ Revision 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c │ │ Blob 4c7fd4c7b7d7fd5d7088a7c952556fab99a034e9 │ │ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │ │ State active │ │ Quorum no │ ├────────────────────────────────────────────────────────────────────────┤ │ ✓ did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob (you) │ │ ? did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice │ ╰────────────────────────────────────────────────────────────────────────╯ @@ -1,14 +1,15 @@ { "payload": { "xyz.radicle.project": { "defaultBranch": "master", "description": "Radicle Heartwood Protocol & Stack", "name": "heartwood" } }, "delegates": [ "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi", - "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk" + "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", + "did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn" ], "threshold": 2 } ``` ``` ~alice $ rad sync --fetch rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji ✓ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67…v4N1tRk.. ✓ Fetched repository from 1 seed(s) $ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --delegates did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice) did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob) $ rad id accept 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --no-confirm ✓ Revision 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c accepted ╭────────────────────────────────────────────────────────────────────────╮ │ Title Add Eve │ │ Revision 9e5aceb50f9307ddcb29923dbaeb5ccbfd07766c │ │ Blob 4c7fd4c7b7d7fd5d7088a7c952556fab99a034e9 │ │ Author did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk │ │ State accepted │ │ Quorum yes │ ├────────────────────────────────────────────────────────────────────────┤ │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │ │ ✓ did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob │ ╰────────────────────────────────────────────────────────────────────────╯ $ rad inspect rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --delegates did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice) did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob) did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn ``` ``` ~alice $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Make private" --description "" --visibility private --no-confirm -q efb8cdd368b9745396f832386f9c7d46988f6bd5 ``` We can list all revisions: ``` ~alice $ rad id list ╭────────────────────────────────────────────────────────────────────────────────╮ │ ● ID Title Author Status Created │ ├────────────────────────────────────────────────────────────────────────────────┤ │ ● efb8cdd Make private alice (you) active now │ │ ● 9e5aceb Add Eve bob z6Mkt67…v4N1tRk accepted now │ │ ● 069e7d5 Add Bob alice (you) accepted now │ │ ● 0656c21 Initial revision alice (you) accepted now │ ╰────────────────────────────────────────────────────────────────────────────────╯ ``` Despite being a delegate, Bob can't edit or redact Alice's revision: ``` ~bob (fail) $ rad id redact efb8cdd368b9745396f832386f9c7d46988f6bd5 [..] ``` ``` ~bob (fail) $ rad id edit --title "Boo!" --description "Boo!" efb8cdd368b9745396f832386f9c7d46988f6bd5 [..] ``` Alice can edit: ``` ~alice $ rad id edit --title "Make private" --description "Privacy is cool." efb8cdd368b9745396f832386f9c7d46988f6bd5 ✓ Revision efb8cdd368b9745396f832386f9c7d46988f6bd5 edited $ rad id show efb8cdd368b9745396f832386f9c7d46988f6bd5 ╭────────────────────────────────────────────────────────────────────────╮ │ Title Make private │ │ Revision efb8cdd368b9745396f832386f9c7d46988f6bd5 │ │ Blob 79bc5c39103e811a3c9f11744f9a4029f063a5de │ │ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │ │ State active │ │ Quorum no │ │ │ │ Privacy is cool. │ ├────────────────────────────────────────────────────────────────────────┤ │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │ │ ? did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob │ │ ? did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn │ ╰────────────────────────────────────────────────────────────────────────╯ @@ -1,15 +1,18 @@ { "payload": { "xyz.radicle.project": { "defaultBranch": "master", "description": "Radicle Heartwood Protocol & Stack", "name": "heartwood" } }, "delegates": [ "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", "did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn" ], - "threshold": 2 + "threshold": 2, + "visibility": { + "type": "private" + } } ``` And she can redact her revision: ``` ~alice $ rad id redact efb8cdd368b9745396f832386f9c7d46988f6bd5 ✓ Revision efb8cdd368b9745396f832386f9c7d46988f6bd5 redacted ``` ``` ~alice (fail) $ rad id show efb8cdd368b9745396f832386f9c7d46988f6bd5 ✗ Error: revision `efb8cdd368b9745396f832386f9c7d46988f6bd5` not found ``` Finally, Alice can also propose to remove Bob: ``` ~alice $ rad id update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --title "Remove Bob" --description "" --rescind did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --no-confirm ✓ Identity revision faf5fb018803d2883e9906bb9c08b6ec83aa55dd created ╭────────────────────────────────────────────────────────────────────────╮ │ Title Remove Bob │ │ Revision faf5fb018803d2883e9906bb9c08b6ec83aa55dd │ │ Blob 7109c1c201c223dd4e9fdb10f7330dc6f0310258 │ │ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │ │ State active │ │ Quorum no │ ├────────────────────────────────────────────────────────────────────────┤ │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │ │ ? did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob │ │ ? did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn │ ╰────────────────────────────────────────────────────────────────────────╯ @@ -1,15 +1,14 @@ { "payload": { "xyz.radicle.project": { "defaultBranch": "master", "description": "Radicle Heartwood Protocol & Stack", "name": "heartwood" } }, "delegates": [ "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi", - "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", "did:key:z6MkedTZGJGqgQ2py2b8kGecfxdt2yRdHWF6JpaZC47fovFn" ], "threshold": 2 } ```