@kravc/credentials

1.4.2 • Public • Published

@kravc/credentials

CLI for Credentials service to manage issuers and verifiable credentials.

Quick Start

Install npm package as development dependency:

npm i --save-dev @kravc/credentials

Register an Issuer

Create ./issuer.json file with issuer metadata, icon and credential types, e.g:

{
  "iconPath": "icon.png",
  "metadata": {
    "url":      "https://apple.co/394ouT8",
    "title":    "Mines - Classic Bomb Puzzle",
    "subtitle": "Minesweeper logic board game",
    "category": "Games"
  },
  "credentialTypes": [
    {
      "name": "Score",
      "version": 1,
      "schemas": [
        {
          "name": "Player",
          "fields": [
            { "name": "id",                "$type": "string" },
            { "name": "hasVideoGameScore", "$type": "ref", "$ref": "VideoGameScore" }
          ]
        },
        {
          "name": "VideoGameScore",
          "fields": [
            { "name": "videoGame",      "$type": "ref", "$ref": "VideoGame" },
            { "name": "wins",           "$type": "integer" },
            { "name": "rounds",         "$type": "integer" },
            { "name": "winRate",        "$type": "integer" },
            { "name": "topScore",       "$type": "integer" },
            { "name": "topScoreJson",   "$type": "string" },
            { "name": "bestStreak",     "$type": "integer" },
            { "name": "bestStreakJson", "$type": "string" },
            { "name": "enduranceMs",    "$type": "integer" },
            { "name": "bestRoundMs",    "$type": "integer" },
            { "name": "bestRoundJson",  "$type": "string" },
            { "name": "averageRoundMs", "$type": "integer" },
            { "name": "dateStarted",    "$type": "dateTime" }
          ]
        },
        {
          "url":  "https://schema.org/",
          "name": "VideoGame",
          "fields": [
            { "name": "url",     "$type": "string" },
            { "name": "name",    "$type": "string" },
            { "name": "version", "$type": "string" }
          ]
        }
      ]
    }
  ]
}

Registers a new issuer:

npx credentials issuer.json

If the script runs for the first time it generates key pair (DID) for the administrator and stores it in the local keychain. This behavior could be overriden by using .portal.json file.

To pre-configure administrators identity, generate private key seed via:

npx credentials seed

Create .portal.json file replacing DEFAULT_SEED with the value generated via seed command:

{
  "default": "DEFAULT_SEED"
}

Make sure the file is added to the .gitignore and is not committed. Check out full set of files at example/ folder.


Author: Alexander Kravets

Revision: June 23, 2021

Dependents (0)

Package Sidebar

Install

npm i @kravc/credentials

Weekly Downloads

0

Version

1.4.2

License

ISC

Unpacked Size

47.1 kB

Total Files

12

Last publish

Collaborators

  • kravc