Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
RAD-ID(1)		       Radicle CLI Manual		       RAD-ID(1)

NAME
     rad-id - Manage changes to a Radicle repository's identity.

SYNOPSIS
     rad id [<option>...]
     rad id list [<option>...]
     rad id update [--title <string>] [--description <string>] <option>...
     rad id edit <revision-id> [--title <string>] [--description <string>] [<op-
     tion>...]
     rad id show <revision-id> [<option>...]
     rad id accept | reject <revision-id> [<option>...]
     rad id redact <revision-id> [<option>...]

DESCRIPTION
     The rad id command is used to manage and propose changes to the identity of
     a	Radicle  repository. Each repository has an associated identity document
     that contains metadata such as the repository name, description, and  dele-
     gates.  The identity document is versioned and changes to it must be signed
     by a quorum of delegates.

     The identity document is stored as a Canonical JSON document.

COMMANDS
     With no arguments, rad id defaults to the list command, showing the list of
     revisions to the identity of the current repository.

   list
     Lists all revisions to the identity document.

   update
     Proposes a new revision to the identity document. Revisions  have	a  title
     and  a  description  in addition to the proposed updated identity document,
     just like source code commits.

     If a title and description are not provided on the command line,  you  will
     be prompted to enter one via your text editor.

     Note  that if you are the repository's only delegate, proposed changes will
     be automatically accepted and included into the identity document.

     --title <string>
	 Set the title for the new revision.

     --description <string>
	 Set the description for the new revision.

     --delegate <did>
	 Update the identity by adding a new delegate, identified by their DID.

     --rescind <did>
	 Update the identity by removing a delegate identified by their DID.

     --threshold <num>
	 Update the identity by setting the number of delegates required to  ac-
	 cept a revision.

     --visibility <private> | <public>
	 Update  the identity by setting the repository visibility to private or
	 public.

     --allow <did>
	 Update the identity by giving a  specific  peer  access  to  a  private
	 repository.

     --disallow <did>
	 Update  the  identity by removing a specific peer's access to a private
	 repository. Note that the peer could have the contents of  the  reposi-
	 tory up until the point that access was revoked.

     --payload <id> <key> <val>
	 Update  the  identity	by  setting metadata in one of the identity pay-
	 loads. This can be used to update a repository's project  name  or  de-
	 scription, for example. To delete a field from a payload, simply set it
	 to null.

     --no-confirm
	 Don't ask for confirmation before creating the revision.

     --edit
	 Opens your $EDITOR to edit the JSON contents directly.

   edit
     Edit an existing revision to the identity document. The revision must still
     be  in  the  "active"  state. The same options as for update are available.
     Note that this edits a proposed revision to the identity; to edit the iden-
     tity document itself, use update.

   show
     Show a specific revision of the identity document.

   accept
     Accept a proposed revision to the identity document. The revision	must  be
     in the "active" state and the caller must be a delegate.

   reject
     Reject  a	proposed revision to the identity document. The revision must be
     in the "active" state and the caller must be a delegate.

   redact
     Redact an existing revision to the identity document. The revision must not
     be in the "accepted" state and the caller must be the author of  the  revi-
     sion.

OPTIONS
     --repo <rid>
	 Specify  the  repository to operate on. Defaults to the current reposi-
	 tory.

     --quiet, -q
	 Suppress output.

     --help
	 Print help information.

EXAMPLES
   Adding a delegate
     To add a new delegate to a repository and update the threshold, use the up-
     date command:

	 $ rad id update --title "Add Bob" --description "Add Bob as a delegate" \
	     --delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk \
	     --threshold 2

     This will create a new revision proposing to add the delegate identified by
     the given DID and set the threshold to 2, meaning two delegates  must  sign
     off on future identity changes.

   Changing repository visibility
     To change a repository from public to private:

	 $ rad id update --visibility private

     Note  that  this will require acceptance from a quorum of delegates to take
     effect.

   Changing a repository payload
     To change a repository's name and description, this is usually done through
     the xyz.radicle.project payload:

	 $ rad id update --title "Update title and description" \
	     --description "Improve clarity" \
	     --payload xyz.radicle.project name '"radicle-beans"' \
	     --payload xyz.radicle.project description '"Tasty Radicle beans"'

     Note that the values passed to --payload, eg. "radicle-beans" must be valid
     JSON values. This means that strings should be double quoted, as in the ex-
     ample above.

   Removing a delegate
     To remove a delegate and update the threshold, use the --rescind option:

	 $ rad id update --title "Remove Bob" \
	     --description "Bob is no longer a delegate" \
	     --rescind did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk \
	     --threshold 1

     As with adding a delegate, this change will require approval from	the  re-
     maining  delegates. Make sure you set an appropriate new threshold when re-
     moving delegates!

   Adding Canonical References Rules
     To update the canonical reference rules of the project, use  the  --payload
     xyz.radicle.crefs	option	while  updating, rules as the key, and the rules
     object as the value. Here is an example below:

	 $ rad id update --title "Update canonical reference rules" \
	     --payload xyz.radicle.crefs rules '{
		   "refs/heads/master": { "threshold": 1, "allow": "delegates" },
		   "refs/tags/*": { "threshold": 2, "allow": "delegates" },
		   "refs/tags/qa/*": { "threshold": 1, "allow": "delegates" }
	       }'

     Alternatively, you can use the --edit option for  the  update  command  and
     edit the payload directly. Here is an example of what that may look like:

	 {
	   "payload": {
	     "xyz.radicle.crefs": {
	       "rules": {
		 "refs/heads/master": {
		   "allow": "delegates",
		   "threshold": 1
		 },
		 "refs/tags/*": {
		   "allow": "delegates",
		   "threshold": 1
		 },
		 "refs/tags/qa/*": {
		   "allow": "delegates",
		   "threshold": 1
		 }
	       }
	     },
	     "xyz.radicle.project": {
	       "defaultBranch": "master",
	       "description": "Radicle Heartwood Protocol & Stack",
	       "name": "heartwood"
	     }
	   },
	   "delegates": [
	     "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
	   ],
	   "threshold": 1
	 }

AUTHOR
     The Radicle Team

rad 1.0.0			   1970-01-01			       RAD-ID(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rad-id&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help