@affinidi/cli 1.35.0 → 1.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -50,7 +50,232 @@ affinidi create project
|
|
|
50
50
|
affinidi generate-application -n "My application"
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
### Issue a VC for an example schema
|
|
54
|
+
|
|
55
|
+
- create a file vc.json:
|
|
56
|
+
```
|
|
57
|
+
{
|
|
58
|
+
"date": "2022-12-11T23:12:00Z",
|
|
59
|
+
"place": "Awesome Location",
|
|
60
|
+
"eventName": "Awesome Event",
|
|
61
|
+
"eventDescription": "Awesome Description",
|
|
62
|
+
"name": "John Snow",
|
|
63
|
+
"email": "mail@example.com"
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
- run a command:
|
|
68
|
+
```
|
|
69
|
+
affinidi issue-vc <REPLACE WITH YOUR EMAIL> -s=https://schema.affinidi.com/TestSchemaV1-4.json -d=vc.json -w=https://holder-reference-app.stg.affinidi.com/holder
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
- find an email with credential subject and follow the link to view and claim a credential.
|
|
73
|
+
|
|
74
|
+
## Schema manager
|
|
75
|
+
|
|
76
|
+
### What is Schema manager?
|
|
77
|
+
|
|
78
|
+
If you want to build an app using Affinidi components, you should start here.
|
|
79
|
+
Schema Manager helps you to find the right schema for your verifiable credential
|
|
80
|
+
or to create a new one - either on the basis of an already existing schema,
|
|
81
|
+
or completely from scratch.
|
|
82
|
+
|
|
83
|
+
### How to use Schema manager?
|
|
84
|
+
|
|
85
|
+
Schema Manager provides URLs for two kinds of schema representations:
|
|
86
|
+
JSON Schema and JSON-LD context.
|
|
87
|
+
Any schema can be referenced in a verifiable credentials or an application by these URLs.
|
|
88
|
+
|
|
89
|
+
Before creating a new schema for your verifiable credentials,
|
|
90
|
+
it is recommended to search for an existing one, which may fit your purpose.
|
|
91
|
+
There are both a number of standard schemas and some user-generated schemas
|
|
92
|
+
already available in the Schema Manager for your disposal,
|
|
93
|
+
and you can search for them by “Credential schema type”.
|
|
94
|
+
That is why it is important to provide a meaningful and expressive type
|
|
95
|
+
for your newly created schemas.
|
|
96
|
+
|
|
97
|
+
### What is the difference between a version and a revision?
|
|
98
|
+
|
|
99
|
+
Essentially, all the revisions of the single version should be compatible with each other,
|
|
100
|
+
whereas new versions could feature breaking changes, e.g. new mandatory fields.
|
|
101
|
+
|
|
102
|
+
Currently, adherence to this principle is not enforced,
|
|
103
|
+
but it is good to keep in mind when choosing between new version or revision for your forked schema.
|
|
104
|
+
|
|
105
|
+
### What does it mean to “publish as searchable schema”?
|
|
106
|
+
|
|
107
|
+
Schemas can be either public (visible and searchable for everyone ) or
|
|
108
|
+
private (unlisted, visible and searchable only for you).
|
|
109
|
+
When you “publish as searchable schema” (using flag `-p`), you make your schema public.
|
|
110
|
+
|
|
111
|
+
It is important to remember, that versions and revisions of public and private
|
|
112
|
+
(unlisted) schema are independent of each other,
|
|
113
|
+
and are maintained by the system in parallel.
|
|
114
|
+
However, you can always fork your private (unlisted) schema in order to make it public and vice versa.
|
|
115
|
+
|
|
116
|
+
### How to create a schema
|
|
117
|
+
|
|
118
|
+
#### 1 Prepare a json file with schema details:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
{
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"<propertyName>": {
|
|
125
|
+
"title": "<Property title>",
|
|
126
|
+
"type": "<Property type (see available attribites below)>",
|
|
127
|
+
"description": "<Property description>"
|
|
128
|
+
},
|
|
129
|
+
<other properties>
|
|
130
|
+
},
|
|
131
|
+
"required": [
|
|
132
|
+
<list of required properties>
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Example:
|
|
138
|
+
```
|
|
139
|
+
{
|
|
140
|
+
"type": "object",
|
|
141
|
+
"properties": {
|
|
142
|
+
"firstName": {
|
|
143
|
+
"title": "First Name",
|
|
144
|
+
"type": "string",
|
|
145
|
+
"description": "First name of a customer"
|
|
146
|
+
},
|
|
147
|
+
"lastName": {
|
|
148
|
+
"title": "Last Name",
|
|
149
|
+
"type": "string",
|
|
150
|
+
"description": "Last name of a customer"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"required": [
|
|
154
|
+
"lastName"
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
#### 2 Run a command:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
affinidi create schema -d <Description of your schema> -p=<true if private, false id public) -s=<schema.json>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
#### 3 In the response you will receive "jsonSchemaUrl" which you should use to issue a verifiable credential.
|
|
166
|
+
|
|
167
|
+
### What attribute types are available?
|
|
168
|
+
|
|
169
|
+
- Nested attribute – a container for attributes
|
|
170
|
+
- DID – a decentralized identifier
|
|
171
|
+
- Example of VC value: "did:example:123"
|
|
172
|
+
- Text – a string value
|
|
173
|
+
- Example of VC value: "my text"
|
|
174
|
+
- URI – a link to a web resource
|
|
175
|
+
- Example of VC value: "http://ui.schema.affinidi.com/"
|
|
176
|
+
- Date – a date (ISO 8601)
|
|
177
|
+
- Example of VC value: "2011-04-01"
|
|
178
|
+
- DateTime – a specific point in time (ISO 8601)
|
|
179
|
+
- Example of VC value: "2011-05-08T19:30"
|
|
180
|
+
- Number – a numerical value
|
|
181
|
+
- Example of VC value: 123.45
|
|
182
|
+
- Boolean – a boolean value
|
|
183
|
+
- Example of VC value: true or false
|
|
184
|
+
|
|
185
|
+
Example of schema source with all the types:
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"type": "object",
|
|
190
|
+
"properties": {
|
|
191
|
+
"nestedType": {
|
|
192
|
+
"title": "nestedType",
|
|
193
|
+
"type": "object",
|
|
194
|
+
"description": "Field with nested attributes",
|
|
195
|
+
"properties": {
|
|
196
|
+
"nestedTextType": {
|
|
197
|
+
"title": "nestedTextType",
|
|
198
|
+
"type": "string",
|
|
199
|
+
"description": "Nested text field "
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
"required": []
|
|
203
|
+
},
|
|
204
|
+
"didType": {
|
|
205
|
+
"title": "didType",
|
|
206
|
+
"type": "string",
|
|
207
|
+
"format": "did",
|
|
208
|
+
"description": "DID attribute"
|
|
209
|
+
},
|
|
210
|
+
"testType": {
|
|
211
|
+
"title": "testType",
|
|
212
|
+
"type": "string",
|
|
213
|
+
"description": "Text attribute"
|
|
214
|
+
},
|
|
215
|
+
"uriType": {
|
|
216
|
+
"title": "uriType",
|
|
217
|
+
"type": "string",
|
|
218
|
+
"format": "uri",
|
|
219
|
+
"description": "URI attribute"
|
|
220
|
+
},
|
|
221
|
+
"dateType": {
|
|
222
|
+
"title": "dateType",
|
|
223
|
+
"type": "string",
|
|
224
|
+
"format": "date",
|
|
225
|
+
"description": "Date attribute"
|
|
226
|
+
},
|
|
227
|
+
"dateTimeType": {
|
|
228
|
+
"title": "dateTimeType",
|
|
229
|
+
"type": "string",
|
|
230
|
+
"format": "date-time",
|
|
231
|
+
"description": "DateTime attribute"
|
|
232
|
+
},
|
|
233
|
+
"numberType": {
|
|
234
|
+
"title": "numberType",
|
|
235
|
+
"type": "number",
|
|
236
|
+
"description": "Number attribute"
|
|
237
|
+
},
|
|
238
|
+
"booleanType": {
|
|
239
|
+
"title": "booleanType",
|
|
240
|
+
"type": "boolean",
|
|
241
|
+
"description": "Boolean attribute"
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
"required": []
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Issuing a VC
|
|
250
|
+
|
|
251
|
+
### 1 Create a json file with credential subject matching the corresponding schema.
|
|
252
|
+
(refer to properties->credential subject of the schema to figure out the json structure)
|
|
253
|
+
|
|
254
|
+
Example for https://schema.affinidi.com/EventElegibilityV1-0.json:
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
{
|
|
258
|
+
"date": "2031-12-11T11:15:00Z",
|
|
259
|
+
"place": "Awesome Location",
|
|
260
|
+
"eventName": "Name of Your Event",
|
|
261
|
+
"eventDescription": "Your Event Description",
|
|
262
|
+
"name": "Holder Name",
|
|
263
|
+
"email": "mail@example.com"
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### 2 Run the command:
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
affinidi issue-vc <holder-email@example.com> -s=<Schema Url> -d=credential.json -w=<path to holder wallet>
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
where
|
|
274
|
+
- holder-email - email, where a holder will receive a link to VC offer
|
|
275
|
+
- Schema Url - schema url, example: https://schema.affinidi.com/EventElegibilityV1-0.json
|
|
276
|
+
- `<path to holder wallet>` - path to web UI of holder wallet, example: https://holder-reference-app.stg.affinidi.com/holder/
|
|
277
|
+
|
|
278
|
+
## CLI Commands
|
|
54
279
|
|
|
55
280
|
## affinidi generate-application
|
|
56
281
|
|
|
@@ -111,7 +111,7 @@ class Schema extends core_1.Command {
|
|
|
111
111
|
exports.default = Schema;
|
|
112
112
|
Schema.command = 'affinidi create schema';
|
|
113
113
|
Schema.usage = 'create schema [schemaName] [FLAGS]';
|
|
114
|
-
Schema.description = 'Use this command to create a new Schema for your verifiable credential.';
|
|
114
|
+
Schema.description = 'Use this command to create a new Schema for your verifiable credential. Refer to https://github.com/affinidi/affinidi-cli/blob/main/README.md#schema-manager for more details and examples.';
|
|
115
115
|
Schema.flags = {
|
|
116
116
|
public: core_1.Flags.enum({
|
|
117
117
|
char: 'p',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/commands/create/schema.ts"],"names":[],"mappings":";;;AAAA,sCAAmD;AACnD,mEAA4B;AAC5B,yDAA+C;AAE/C,kEAAoE;AACpE,6CAAyD;AAEzD,qDAAoD;AACpD,6EAKwD;AAExD,4FAAsF;AACtF,yCAOqB;AACrB,wDAAiF;AAEjF,oEAA2D;AAC3D,oEAAiE;AAEjE,MAAqB,MAAO,SAAQ,cAAO;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/commands/create/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,10 +105,14 @@ class IssueVc extends core_1.Command {
|
|
|
105
105
|
exports.default = IssueVc;
|
|
106
106
|
IssueVc.command = 'affinidi issue-vc';
|
|
107
107
|
IssueVc.usage = 'issue-vc [email] [FLAGS]';
|
|
108
|
-
IssueVc.description = 'Issues a verifiable credential based on an given schema.';
|
|
108
|
+
IssueVc.description = 'Issues a verifiable credential based on an given schema. Refer to https://github.com/affinidi/affinidi-cli/blob/main/README.md#issuing-a-vc for more details and examples.';
|
|
109
109
|
IssueVc.examples = ['<%= config.bin %> <%= command.id %>'];
|
|
110
110
|
IssueVc.flags = {
|
|
111
|
-
schema: core_1.Flags.string({
|
|
111
|
+
schema: core_1.Flags.string({
|
|
112
|
+
char: 's',
|
|
113
|
+
description: 'json schema url. Example: https://schema.affinidi.com/EventElegibilityV1-0.json',
|
|
114
|
+
required: true,
|
|
115
|
+
}),
|
|
112
116
|
data: core_1.Flags.string({
|
|
113
117
|
char: 'd',
|
|
114
118
|
description: 'the source file with credential data, either .json or .csv',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-vc.js","sourceRoot":"","sources":["../../src/commands/issue-vc.ts"],"names":[],"mappings":";;;AAAA,sCAAmD;AACnD,mEAA4B;AAC5B,kEAAgC;AAChC,wDAAuB;AACvB,wEAAiD;AACjD,yDAA+C;AAE/C,4EAAsE;AACtE,0CAAsD;AACtD,oEAK0C;AAC1C,mDAAsD;AACtD,sCAAkG;AAClG,kDAA0D;AAC1D,iEAAwD;AAExD,qDAA8E;AAC9E,iEAA8D;AAE9D,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,MAAqB,OAAQ,SAAQ,cAAO;
|
|
1
|
+
{"version":3,"file":"issue-vc.js","sourceRoot":"","sources":["../../src/commands/issue-vc.ts"],"names":[],"mappings":"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"}
|