@decentralized-identity/ion-cli
TypeScript icon, indicating that this package has built-in type declarations

0.3.4 • Public • Published

@decentralized-identity/ion-cli

ION Command Line Interface to make working with the ION network and using ION DIDs easy peasy lemon squeezy

Version Downloads/week License

Usage

$ npm install -g @decentralized-identity/ion-cli
$ ion COMMAND
running command...
$ ion (-v|--version|version)
@decentralized-identity/ion-cli/0.3.4 win32-x64 node-v14.17.6
$ ion --help [COMMAND]
USAGE
  $ ion COMMAND
...

Commands

ion cache:clear

Clears the DID cache, removing all previously resolved DIDs.

USAGE
  $ ion cache:clear

OPTIONS
  -d, --directory=directory  (required) that contains the cache. Defaults to environment variable DID_PATH if set.
  -h, --help                 show CLI help

EXAMPLE
  $ ion cache:clear -d d:dids

See code: src/commands/cache/clear.ts

ion cache:list

Lists the cached DIDs.

USAGE
  $ ion cache:list

OPTIONS
  -d, --directory=directory  (required) that contains the cache. Defaults to environment variable DID_PATH if set.
  -h, --help                 show CLI help
  -x, --extended             show extra columns
  --columns=columns          only show provided columns (comma-separated)
  --csv                      output is csv format [alias: --output=csv]
  --filter=filter            filter property by partial string matching, ex: name=foo
  --no-header                hide table header from output
  --no-truncate              do not truncate output to fit screen
  --output=csv|json|yaml     output in a more machine friendly format
  --sort=sort                property to sort by (prepend '-' for descending)

EXAMPLE
  $ ion cache:list -d d:dids

See code: src/commands/cache/list.ts

ion help [COMMAND]

display help for ion

USAGE
  $ ion help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

See code: @oclif/plugin-help

ion key:new [KID]

Creates a new elliptic curve key for the specified curve, returning a JSON serialized and optionally escaped representation.

USAGE
  $ ion key:new [KID]

ARGUMENTS
  KID  [default: key-1] identifier for the key (kid).

OPTIONS
  -h, --help                   show CLI help
  --curve=(secp256k1|Ed25519)  [default: secp256k1] specifies the elliptic curve to use for the keys.

  --escape                     specifies that the output JSON string should be escaped. Use this when using the output
                               as input to another command.

EXAMPLES
  $ ion key:new key-1
  $ ion key:new key-1 --curve secp256k1
  $ ion key:new key-1 --curve secp256k1 --escape

See code: src/commands/key/new.ts

ion key:public JWK

Returns the public key JWK.

USAGE
  $ ion key:public JWK

ARGUMENTS
  JWK  an escaped JSON string containing the private key jwk.

OPTIONS
  -h, --help  show CLI help

  --escape    specifies that the output JSON string should be escaped. Use this when using the output as input to
              another command.

EXAMPLES
  $ ion key:public {ESCAPED JSON STRING}
  $ ion key:public {ESCAPED JSON STRING} --escape

See code: src/commands/key/public.ts

ion load NAME

Loads a DID from the directory using the friendly name.

USAGE
  $ ion load NAME

ARGUMENTS
  NAME  name for the new DID. Name should not include spaces or special characters.

OPTIONS
  -d, --directory=directory       (required) to which the DID should be saved. Defaults to environment variable DID_PATH
                                  if set.

  -h, --help                      show CLI help

  --escape                        specifies that the output JSON string should be escaped. Use this when using the
                                  output as input to another command.

  --what=(All|InitialState|Keys)  [default: All] specify the objects from the specified package to load.

EXAMPLES
  $ ion load FriendlyName
  $ ion load FriendlyName -d d:/dids
  $ ion load FriendlyName -d d:/dids --escape

See code: src/commands/load.ts

ion new NAME

Creates a new ION DID with either defaults or the specified input.

USAGE
  $ ion new NAME

ARGUMENTS
  NAME  name for the new DID. Name should not include spaces or special characters.

OPTIONS
  -c, --curve=(secp256k1|Ed25519)  [default: secp256k1] specify the elliptic curve to use for the keys.

  -d, --directory=directory        to which the DID package should be saved. Defaults to environment variable DID_PATH
                                   if set.

  -h, --help                       show CLI help

  --escape                         specifies that the output JSON string should be escaped. Use this when using the
                                   output as input to another command.

  --input=input                    specifies the input to use when generating the ION DID.

  --jwk=jwk                        specifies the private key for the DID.

  --kid=kid                        [default: key-1]  for the key pair.

EXAMPLES
  $ ion new FriendlyName
  $ ion new FriendlyName -d d:/dids
  $ ion new FriendlyName -d d:/dids --curve secp256k1 --kid key-1
  $ ion new FriendlyName -d d:/dids --input {ESCAPED JSON STRING} --jwk {ESCAPED PRIVATE KEY JWK}

See code: src/commands/new.ts

ion operation:create KEY [SERVICES]

Creates a payload for generating a new ION DID.

USAGE
  $ ion operation:create KEY [SERVICES]

ARGUMENTS
  KEY       specifies the public key to use for the create operation.
  SERVICES  specifies any services to be included in the create operation.

OPTIONS
  -h, --help  show CLI help

  --escape    specifies that the output JSON string should be escaped. Use this when using the output as input to
              another command.

EXAMPLES
  $ ion operation:create {ESCAPED KEY}
  $ ion operation:create {ESCAPED KEY} {ESCAPED SERVICES} --escape

See code: src/commands/operation/create.ts

ion publish [INITIALSTATE]

Publishes the specified DID to the ION network.

USAGE
  $ ion publish [INITIALSTATE]

ARGUMENTS
  INITIALSTATE  the initial state of the DID being published.

OPTIONS
  -d, --directory=directory    to which the DID should be saved. Defaults to environment variable DID_PATH if set.
  -h, --help                   show CLI help
  --friendlyName=friendlyName  specifies the friendly name of the DID to load and publish.

EXAMPLE
  $ ion publish {ESCAPED INITIAL STATE} --friendlyName={FRIENDLY_NAME}

See code: src/commands/publish.ts

ion resolve DID

Resolves the provided DID and outputs the document to the console, optionally caching the DID state.

USAGE
  $ ion resolve DID

ARGUMENTS
  DID  The DID to resolve

OPTIONS
  -d, --directory=directory  to which the DID package should be saved. Defaults to environment variable DID_PATH if set.
  -h, --help                 show CLI help

  --cache                    specifies that the resolved document should be cached in the specified directory and if
                             cached read from the directory.

  --cacheTtl=cacheTtl        [default: 86400] specifies the time to live (ttl) for a cached document in in seconds.

  --escape                   specifies that the output JSON string should be escaped. Use this when using the output as
                             input to another command.

  --name=name                URI of the node you desire to contact for resolution. If you are running your own node, use
                             this to pass in your node's resolution endpoint.

  --node=node                URI of the node you desire to contact for resolution. If you are running your own node, use
                             this to pass in your node's resolution endpoint.

EXAMPLES
  $ ion resolve did:ion:EiB29JB4R0mbLmJ6_BEYjr8bGZKEPABwFopSNsDJBh_Diw
  $ ion resolve did:ion:EiB29JB4R0mbLmJ6_BEYjr8bGZKEPABwFopSNsDJBh_Diw --node https://some.node --escape
  $ ion resolve did:ion:EiB29JB4R0mbLmJ6_BEYjr8bGZKEPABwFopSNsDJBh_Diw --node https://some.node --cache
  $ ion resolve did:ion:EiB29JB4R0mbLmJ6_BEYjr8bGZKEPABwFopSNsDJBh_Diw --node https://some.node --cache --cacheTtl 60 
  --name SomeDID

See code: src/commands/resolve.ts

ion sign PAYLOAD FRIENDLYNAME

Sign payload using the private key associated with the specified DID.

USAGE
  $ ion sign PAYLOAD FRIENDLYNAME

ARGUMENTS
  PAYLOAD       to sign
  FRIENDLYNAME  of the DID to use to sign the payload

OPTIONS
  -d, --directory=directory  (required) from which to read DID and key. Defaults to environment variable DID_PATH if
                             set.

  -h, --help                 show CLI help

  -k, --kid=kid              [default: key-1]  of the private key to use for signing.

  -s, --detached             flag indicating a payload-detached JWS should be output. Default is false.

EXAMPLES
  $ ion sign 'Hello World' FriendlyName -d d:/dids
  $ ion sign 'Hello World' FriendlyName -d d:/dids -k 'key-1'
  $ ion sign 'Hello World' FriendlyName -d d:/dids -k 'key-1' -s
  $ ion sign 'Hello World' FriendlyName -d d:/dids -k 'key-1' -s -n https://node.local/1.0/identifiers/

See code: src/commands/sign.ts

ion verify JWS DOCUMENT [PAYLOAD]

Verify payload using the private key associated with the specified DID.

USAGE
  $ ion verify JWS DOCUMENT [PAYLOAD]

ARGUMENTS
  JWS       signature to verify.
  DOCUMENT  the escaped DID document of the entity that signed the payload.
  PAYLOAD   when verifying a payload-detached JWS

OPTIONS
  -h, --help  show CLI help
  --kid=kid   identifier of the public key to use for verifying.

EXAMPLE
  $ ion verify 
  '2tleS0xIiwiYWxnIjoiRVMyNTZLIn0..D7kXXnQmtSw1WX1RCW3IzA6T5-qivSOL2_6RVydIo1Z_wXKO00GEUl2xjwvRpHlr4B7jBy1_PZenCNP9_mWx1
  Q' '{ESCAPED DID DOCUMENT}' 'hello world' -k '#key-1'

See code: src/commands/verify.ts

Package Sidebar

Install

npm i @decentralized-identity/ion-cli

Weekly Downloads

0

Version

0.3.4

License

Apache-2.0

Unpacked Size

86.1 kB

Total Files

38

Last publish

Collaborators

  • mistermoe
  • csuwildcat
  • henrytsai
  • logangirvin
  • codeglobally
  • symorton
  • beejones
  • isaacjchen
  • tplooker
  • ci_identity_foundation