@sphereon/ssi-sdk.vc-status-list-issuer-rest-api 0.32.1-feature.VDX.341.57 → 0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187

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.
@@ -3,5 +3,5 @@ import { ICredentialStatusListEndpointOpts, IRequiredContext, IW3CredentialStatu
3
3
  export declare function createNewStatusListEndpoint(router: Router, context: IRequiredContext, opts: ICredentialStatusListEndpointOpts): void;
4
4
  export declare function getStatusListCredentialEndpoint(router: Router, context: IRequiredContext, opts: ICredentialStatusListEndpointOpts): void;
5
5
  export declare function getStatusListCredentialIndexStatusEndpoint(router: Router, context: IRequiredContext, opts: ICredentialStatusListEndpointOpts): void;
6
- export declare function updateW3CStatusEndpoint(router: Router, context: IRequiredContext, opts: IW3CredentialStatusEndpointOpts): void;
6
+ export declare function updateStatusEndpoint(router: Router, context: IRequiredContext, opts: IW3CredentialStatusEndpointOpts): void;
7
7
  //# sourceMappingURL=api-functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-functions.d.ts","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,iCAAiC,EAAE,gBAAgB,EAAE,+BAA+B,EAAiC,MAAM,SAAS,CAAA;AAI7I,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,iCAAiC,QAmB7H;AAcD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,iCAAiC,QAkBjI;AAED,wBAAgB,0CAA0C,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,iCAAiC,QAmD5I;AACD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,+BAA+B,QAqEvH"}
1
+ {"version":3,"file":"api-functions.d.ts","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"AASA,OAAO,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,+BAA+B,EAGhC,MAAM,SAAS,CAAA;AAqBhB,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,iCAAiC,QAoB7H;AAgBD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,iCAAiC,QAsBjI;AAED,wBAAgB,0CAA0C,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,iCAAiC,QA0D5I;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,+BAA+B,QA0FpH"}
@@ -15,12 +15,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.createNewStatusListEndpoint = createNewStatusListEndpoint;
16
16
  exports.getStatusListCredentialEndpoint = getStatusListCredentialEndpoint;
17
17
  exports.getStatusListCredentialIndexStatusEndpoint = getStatusListCredentialIndexStatusEndpoint;
18
- exports.updateW3CStatusEndpoint = updateW3CStatusEndpoint;
18
+ exports.updateStatusEndpoint = updateStatusEndpoint;
19
19
  const ssi_express_support_1 = require("@sphereon/ssi-express-support");
20
20
  const ssi_sdk_vc_status_list_1 = require("@sphereon/ssi-sdk.vc-status-list");
21
21
  const ssi_sdk_vc_status_list_issuer_drivers_1 = require("@sphereon/ssi-sdk.vc-status-list-issuer-drivers");
22
22
  const debug_1 = __importDefault(require("debug"));
23
+ const ssi_types_1 = require("@sphereon/ssi-types");
23
24
  const debug = (0, debug_1.default)('sphereon:ssi-sdk:status-list');
25
+ function sendStatuslistResponse(details, statuslistPayload, response) {
26
+ let payload;
27
+ switch (details.proofFormat) {
28
+ case 'jwt':
29
+ case 'cbor':
30
+ payload = Buffer.from(statuslistPayload, 'ascii');
31
+ break;
32
+ default:
33
+ payload = statuslistPayload;
34
+ }
35
+ return response.status(200).setHeader('Content-Type', details.statuslistContentType).send(payload);
36
+ }
24
37
  function createNewStatusListEndpoint(router, context, opts) {
25
38
  var _a;
26
39
  if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
@@ -34,8 +47,9 @@ function createNewStatusListEndpoint(router, context, opts) {
34
47
  if (!statusListArgs) {
35
48
  return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList details supplied');
36
49
  }
37
- const statusListDetails = yield context.agent.slCreateStatusList(statusListArgs);
38
- return response.send({ statusListDetails });
50
+ const details = yield context.agent.slCreateStatusList(statusListArgs);
51
+ const statuslistPayload = details.statusListCredential;
52
+ return sendStatuslistResponse(details, statuslistPayload, response);
39
53
  }
40
54
  catch (e) {
41
55
  return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
@@ -43,14 +57,15 @@ function createNewStatusListEndpoint(router, context, opts) {
43
57
  }));
44
58
  }
45
59
  const buildStatusListId = (request) => {
46
- var _a, _b, _c, _d, _e;
60
+ var _a, _b, _c, _d, _e, _f, _g;
47
61
  const protocol = (_b = (_a = request.headers['x-forwarded-proto']) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : request.protocol;
48
62
  let host = (_d = (_c = request.headers['x-forwarded-host']) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : request.get('host');
49
63
  const forwardedPort = (_e = request.headers['x-forwarded-port']) === null || _e === void 0 ? void 0 : _e.toString();
50
64
  if (forwardedPort && !(protocol === 'https' && forwardedPort === '443') && !(protocol === 'http' && forwardedPort === '80')) {
51
65
  host += `:${forwardedPort}`;
52
66
  }
53
- return `${protocol}://${host}${request.originalUrl}`;
67
+ const forwardedPrefix = (_g = (_f = request.headers['x-forwarded-prefix']) === null || _f === void 0 ? void 0 : _f.toString()) !== null && _g !== void 0 ? _g : '';
68
+ return `${protocol}://${host}${forwardedPrefix}${request.originalUrl.split('?')[0].replace(/\/status\/index\/.*/, '')}`;
54
69
  };
55
70
  function getStatusListCredentialEndpoint(router, context, opts) {
56
71
  var _a;
@@ -60,14 +75,15 @@ function getStatusListCredentialEndpoint(router, context, opts) {
60
75
  }
61
76
  const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/status-lists/:index';
62
77
  router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
63
- var _a, _b, _c, _d;
78
+ var _a;
64
79
  try {
65
80
  //todo: Check index against correlationId first. Then match originalUrl against statusList id
66
- const correlationId = (_d = (_b = (_a = request.query.correlationId) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = request.params.index) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : request.originalUrl;
67
- const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)({ id: buildStatusListId(request), correlationId, dbName: opts.dbName });
81
+ //const correlationId = request.query.correlationId?.toString() ?? request.params.index?.toString() ?? request.originalUrl TODO I so not get these
82
+ const correlationId = (_a = request.query.correlationId) === null || _a === void 0 ? void 0 : _a.toString();
83
+ const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)(Object.assign(Object.assign({}, (correlationId ? { correlationId } : { id: buildStatusListId(request) })), { dbName: opts.dbName }));
68
84
  const details = yield driver.getStatusList();
69
- response.statusCode = 200;
70
- return response.send(details.statusListCredential);
85
+ const statuslistPayload = details.statusListCredential;
86
+ return sendStatuslistResponse(details, statuslistPayload, response);
71
87
  }
72
88
  catch (e) {
73
89
  return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
@@ -82,7 +98,7 @@ function getStatusListCredentialIndexStatusEndpoint(router, context, opts) {
82
98
  }
83
99
  const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/status-lists/:index/status/index/:statusListIndex';
84
100
  router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
85
- var _a, _b, _c, _d;
101
+ var _a, _b, _c;
86
102
  try {
87
103
  //todo: Check index against correlationId first. Then match originalUrl against statusList id
88
104
  const statusListIndexStr = request.params.statusListIndex;
@@ -96,23 +112,17 @@ function getStatusListCredentialIndexStatusEndpoint(router, context, opts) {
96
112
  if (!statusListIndex || statusListIndex < 0) {
97
113
  return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Please provide a proper statusListIndex`);
98
114
  }
99
- const correlationId = (_d = (_b = (_a = request.query.correlationId) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = request.params.index) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : request.originalUrl;
100
- const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)({
101
- id: `${request.protocol}://${request.get('host')}${request.originalUrl.replace(/\/status\/index\/.*/, '')}`,
102
- correlationId,
103
- dbName: opts.dbName,
104
- });
115
+ //const correlationId = request.query.correlationId?.toString() ?? request.params.index?.toString() ?? request.originalUrl TODO I so not get these
116
+ const statusListCorrelationId = (_a = request.query.correlationId) === null || _a === void 0 ? void 0 : _a.toString();
117
+ const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)(Object.assign(Object.assign({}, (statusListCorrelationId ? { correlationId: statusListCorrelationId } : { id: buildStatusListId(request) })), { dbName: opts.dbName }));
105
118
  const details = yield driver.getStatusList();
106
119
  if (statusListIndex > details.length) {
107
120
  return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Please provide a proper statusListIndex`);
108
121
  }
109
- let entry = yield driver.getStatusListEntryByIndex({
110
- statusListIndex,
111
- statusListId: details.id,
112
- correlationId: details.correlationId,
113
- errorOnNotFound: false,
114
- });
115
- const status = yield (0, ssi_sdk_vc_status_list_1.checkStatusIndexFromStatusListCredential)(Object.assign(Object.assign({}, details), { statusListIndex }));
122
+ const entityCorrelationId = (_b = request.query.entityCorrelationId) === null || _b === void 0 ? void 0 : _b.toString();
123
+ let entry = yield driver.getStatusListEntryByIndex(Object.assign(Object.assign({ statusListId: details.id }, (entityCorrelationId ? { correlationId: entityCorrelationId } : { statusListIndex: statusListIndex })), { errorOnNotFound: false }));
124
+ const type = details.type === ssi_types_1.StatusListType.StatusList2021 ? 'StatusList2021Entry' : details.type;
125
+ const status = yield (0, ssi_sdk_vc_status_list_1.checkStatusIndexFromStatusListCredential)(Object.assign(Object.assign({ statusListCredential: details.statusListCredential }, (details.type === ssi_types_1.StatusListType.StatusList2021 ? { statusPurpose: (_c = details.statusList2021) === null || _c === void 0 ? void 0 : _c.statusPurpose } : {})), { type, id: details.id, statusListIndex }));
116
126
  if (!entry) {
117
127
  // The fact we have nothing on it means the status is okay
118
128
  entry = {
@@ -122,14 +132,14 @@ function getStatusListCredentialIndexStatusEndpoint(router, context, opts) {
122
132
  };
123
133
  }
124
134
  response.statusCode = 200;
125
- return response.send(Object.assign(Object.assign({}, entry), { status }));
135
+ return response.send(Object.assign(Object.assign({}, entry), { status })); // FIXME content type?
126
136
  }
127
137
  catch (e) {
128
138
  return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
129
139
  }
130
140
  }));
131
141
  }
132
- function updateW3CStatusEndpoint(router, context, opts) {
142
+ function updateStatusEndpoint(router, context, opts) {
133
143
  var _a;
134
144
  if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
135
145
  console.log(`Update credential status endpoint is disabled`);
@@ -143,48 +153,60 @@ function updateW3CStatusEndpoint(router, context, opts) {
143
153
  const statusListId = (_c = (_a = updateRequest.statusListId) !== null && _a !== void 0 ? _a : (_b = request.query.statusListId) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : opts.statusListId;
144
154
  const statusListCorrelationId = (_f = (_d = updateRequest.statusListCorrelationId) !== null && _d !== void 0 ? _d : (_e = request.query.statusListorrelationId) === null || _e === void 0 ? void 0 : _e.toString()) !== null && _f !== void 0 ? _f : opts.correlationId;
145
155
  const entryCorrelationId = (_g = updateRequest.entryCorrelationId) !== null && _g !== void 0 ? _g : (_h = request.query.entryCorrelationId) === null || _h === void 0 ? void 0 : _h.toString();
146
- const credentialId = updateRequest.credentialId;
147
156
  // TODO: Move mostly to driver
148
- if (!credentialId) {
149
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList credentialId supplied');
157
+ if (!statusListId && !statusListCorrelationId) {
158
+ return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList id or correlation Id provided or deduced for the API or in the request');
150
159
  }
151
160
  else if (!updateRequest.credentialStatus || updateRequest.credentialStatus.length === 0) {
152
161
  return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList updates supplied');
153
162
  }
154
- else if (!statusListId && !statusListCorrelationId) {
155
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList id or correlation Id provided or deduced for the API or in the request');
163
+ const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)(Object.assign(Object.assign({}, (statusListCorrelationId ? { correlationId: statusListCorrelationId } : { id: buildStatusListId(request) })), { dbName: opts.dbName }));
164
+ // Get status list entry based on request type
165
+ let statusListEntry;
166
+ if ('credentialId' in updateRequest) {
167
+ if (!updateRequest.credentialId) {
168
+ return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No credentialId supplied');
169
+ }
170
+ // unfortunately the W3C API works by credentialId. Which means you will have to map listIndices during issuance
171
+ statusListEntry = yield driver.getStatusListEntryByCredentialId({
172
+ statusListId,
173
+ statusListCorrelationId,
174
+ entryCorrelationId,
175
+ credentialId: updateRequest.credentialId,
176
+ errorOnNotFound: true,
177
+ });
178
+ }
179
+ else {
180
+ if (!updateRequest.statusListIndex || updateRequest.statusListIndex < 0) {
181
+ return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'Invalid statusListIndex supplied');
182
+ }
183
+ const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)(Object.assign(Object.assign({}, (statusListCorrelationId ? { statusListCorrelationId } : { id: buildStatusListId(request) })), { dbName: opts.dbName }));
184
+ const details = yield driver.getStatusList();
185
+ statusListEntry = yield driver.getStatusListEntryByIndex(Object.assign(Object.assign({ statusListId: details.id }, (entryCorrelationId ? { correlationId: entryCorrelationId } : { statusListIndex: updateRequest.statusListIndex })), { errorOnNotFound: true }));
156
186
  }
157
- const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)({ id: statusListId, correlationId: statusListCorrelationId, dbName: opts.dbName });
158
- // unfortunately the W3C API works by credentialId. Which means you will have to map listIndices during issuance
159
- const statusListEntry = yield driver.getStatusListEntryByCredentialId({
160
- statusListId,
161
- statusListCorrelationId,
162
- entryCorrelationId,
163
- credentialId,
164
- errorOnNotFound: true,
165
- });
166
187
  if (!statusListEntry) {
167
- return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `status list index for credential id ${credentialId} was never recorded for ${statusListId}. This means the status will be 0`);
188
+ const identifier = 'credentialId' in updateRequest ? updateRequest.credentialId : `index ${updateRequest.statusListIndex}`;
189
+ return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `Status list entry for ${identifier} not found for ${statusListId}`);
168
190
  }
169
- const statusListIndex = statusListEntry.statusListIndex;
170
191
  let details = yield driver.getStatusList();
171
192
  let statusListCredential = details.statusListCredential;
172
193
  for (const updateItem of updateRequest.credentialStatus) {
173
- if (updateItem.type && updateItem.type !== 'StatusList2021') {
174
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Only the optional type 'StatusList2021' is currently supported`);
175
- }
176
194
  if (!updateItem.status) {
177
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Required 'status' value was missing in the credentialStatus array for credentialId ${credentialId}`);
195
+ return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Required 'status' value was missing in the credentialStatus array`);
178
196
  }
179
- const value = updateItem.status === '0' || updateItem.status.toLowerCase() === 'false' ? false : true;
197
+ const value = updateItem.status === '0' || updateItem.status.toLowerCase() === 'false' ? '0' : '1';
180
198
  const statusList = statusListId !== null && statusListId !== void 0 ? statusListId : statusListEntry.statusList;
181
- yield driver.updateStatusListEntry(Object.assign(Object.assign({}, statusListEntry), { statusListIndex, statusList, credentialId, value: value ? '1' : '0' }));
199
+ yield driver.updateStatusListEntry(Object.assign(Object.assign({}, statusListEntry), { statusList, value }));
182
200
  // todo: optimize. We are now creating a new VC for every item passed in. Probably wise to look at DB as well
183
- details = yield (0, ssi_sdk_vc_status_list_1.updateStatusIndexFromStatusListCredential)({ statusListCredential, statusListIndex, value, keyRef: opts.keyRef }, context);
201
+ details = yield (0, ssi_sdk_vc_status_list_1.updateStatusIndexFromStatusListCredential)({
202
+ statusListCredential: statusListCredential,
203
+ statusListIndex: statusListEntry.statusListIndex,
204
+ value: parseInt(value),
205
+ keyRef: opts.keyRef,
206
+ }, context);
184
207
  details = yield driver.updateStatusList({ statusListCredential: details.statusListCredential });
185
208
  }
186
- response.statusCode = 200;
187
- return response.send(details.statusListCredential);
209
+ return sendStatuslistResponse(details, details.statusListCredential, response);
188
210
  }
189
211
  catch (e) {
190
212
  return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
@@ -1 +1 @@
1
- {"version":3,"file":"api-functions.js","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-functions.js","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ class StatuslistManagementApiServer {
36
36
  (0, api_functions_1.getStatusListCredentialIndexStatusEndpoint)(this.router, context, opts.endpointOpts.getStatusList);
37
37
  }
38
38
  if (features.includes('w3c-vc-api-credential-status')) {
39
- (0, api_functions_1.updateW3CStatusEndpoint)(this.router, context, opts.endpointOpts.vcApiCredentialStatus);
39
+ (0, api_functions_1.updateStatusEndpoint)(this.router, context, opts.endpointOpts.vcApiCredentialStatus);
40
40
  }
41
41
  this._express.use((_d = (_c = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _c === void 0 ? void 0 : _c.basePath) !== null && _d !== void 0 ? _d : '', this.router);
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"statuslist-management-api-server.js","sourceRoot":"","sources":["../src/statuslist-management-api-server.ts"],"names":[],"mappings":";;;;;;AAAA,uEAAwF;AACxF,yDAAqD;AAIrD,sDAAkD;AAClD,mDAKwB;AAIxB,MAAa,6BAA6B;IACxC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAOD,YAAY,IAAoH;;QAC9H,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,0CAAE,UAAU,EAAE,CAAC;YACnC,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAA;YAChE,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC3D,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;QAE/B,MAAM,OAAO,GAAG,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAA;QAEnC,MAAM,QAAQ,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,mCAAI,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,8BAA8B,CAAC,CAAA;QAC1H,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAElF,qCAAqC;QACrC,IAAI,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAChD,IAAA,2CAA2B,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;QACvF,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC7C,IAAA,+CAA+B,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;YACtF,IAAA,0DAA0C,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;QACnG,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;YACtD,IAAA,uCAAuB,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;QACxF,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,0CAAE,QAAQ,mCAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AArDD,sEAqDC;AAED;;;;;;;;;;;;EAYE"}
1
+ {"version":3,"file":"statuslist-management-api-server.js","sourceRoot":"","sources":["../src/statuslist-management-api-server.ts"],"names":[],"mappings":";;;;;;AAAA,uEAAwF;AACxF,yDAAqD;AAIrD,sDAAkD;AAClD,mDAKwB;AAIxB,MAAa,6BAA6B;IACxC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAOD,YAAY,IAAoH;;QAC9H,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,0CAAE,UAAU,EAAE,CAAC;YACnC,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAA;YAChE,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC3D,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;QAE/B,MAAM,OAAO,GAAG,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAA;QAEnC,MAAM,QAAQ,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,mCAAI,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,8BAA8B,CAAC,CAAA;QAC1H,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAElF,qCAAqC;QACrC,IAAI,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAChD,IAAA,2CAA2B,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;QACvF,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC7C,IAAA,+CAA+B,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;YACtF,IAAA,0DAA0C,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;QACnG,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;YACtD,IAAA,oCAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;QACrF,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,0CAAE,QAAQ,mCAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AArDD,sEAqDC;AAED;;;;;;;;;;;;EAYE"}
package/dist/types.d.ts CHANGED
@@ -24,8 +24,13 @@ export interface IW3CredentialStatusEndpointOpts extends ICredentialStatusListEn
24
24
  correlationId?: string;
25
25
  keyRef?: string;
26
26
  }
27
- export interface UpdateCredentialStatusRequest {
27
+ export interface UpdateW3cCredentialStatusRequest extends UpdateCredentialStatusRequest {
28
28
  credentialId: string;
29
+ }
30
+ export interface UpdateIndexedCredentialStatusRequest extends UpdateCredentialStatusRequest {
31
+ statusListIndex: number;
32
+ }
33
+ interface UpdateCredentialStatusRequest {
29
34
  credentialStatus: UpdateCredentialStatusItem[];
30
35
  statusListId?: string;
31
36
  statusListCorrelationId?: string;
@@ -35,4 +40,5 @@ export interface UpdateCredentialStatusItem {
35
40
  type?: StatusListType;
36
41
  status: string;
37
42
  }
43
+ export {};
38
44
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAA;AAElF,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,uBAAuB,CAAA;IACrC,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,qBAAqB,EAAE,+BAA+B,CAAA;IACtD,gBAAgB,EAAE,iCAAiC,CAAA;IACnD,aAAa,EAAE,iCAAiC,CAAA;CACjD;AAED,MAAM,MAAM,kBAAkB,GAAG,8BAA8B,GAAG,wBAAwB,GAAG,qBAAqB,CAAA;AAElH,MAAM,WAAW,iCAAkC,SAAQ,mBAAmB;IAC5E,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,+BAAgC,SAAQ,iCAAiC;IACxF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,0BAA0B,EAAE,CAAA;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAA;AAElF,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,uBAAuB,CAAA;IACrC,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,qBAAqB,EAAE,+BAA+B,CAAA;IACtD,gBAAgB,EAAE,iCAAiC,CAAA;IACnD,aAAa,EAAE,iCAAiC,CAAA;CACjD;AAED,MAAM,MAAM,kBAAkB,GAAG,8BAA8B,GAAG,wBAAwB,GAAG,qBAAqB,CAAA;AAElH,MAAM,WAAW,iCAAkC,SAAQ,mBAAmB;IAC5E,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,+BAAgC,SAAQ,iCAAiC;IACxF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gCAAiC,SAAQ,6BAA6B;IACrF,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,oCAAqC,SAAQ,6BAA6B;IACzF,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,6BAA6B;IACrC,gBAAgB,EAAE,0BAA0B,EAAE,CAAA;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.vc-status-list-issuer-rest-api",
3
3
  "description": "Sphereon SSI-SDK plugin for Status List management, like StatusList2021. Issuer drivers module",
4
- "version": "0.32.1-feature.VDX.341.57+c933fcf4",
4
+ "version": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -12,14 +12,15 @@
12
12
  "start:dev2": "node --experimental-specifier-resolution=node --loader ts-node/esm __tests__/agent.ts"
13
13
  },
14
14
  "dependencies": {
15
- "@sphereon/ssi-express-support": "0.32.1-feature.VDX.341.57+c933fcf4",
15
+ "@sphereon/ssi-express-support": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
16
16
  "@sphereon/ssi-sdk-ext.did-utils": "0.27.0",
17
17
  "@sphereon/ssi-sdk-ext.identifier-resolution": "0.27.0",
18
- "@sphereon/ssi-sdk.core": "0.32.1-feature.VDX.341.57+c933fcf4",
19
- "@sphereon/ssi-sdk.data-store": "0.32.1-feature.VDX.341.57+c933fcf4",
20
- "@sphereon/ssi-sdk.vc-status-list": "0.32.1-feature.VDX.341.57+c933fcf4",
21
- "@sphereon/ssi-sdk.vc-status-list-issuer-drivers": "0.32.1-feature.VDX.341.57+c933fcf4",
22
- "@sphereon/ssi-types": "0.32.1-feature.VDX.341.57+c933fcf4",
18
+ "@sphereon/ssi-sdk-ext.jwt-service": "0.27.0",
19
+ "@sphereon/ssi-sdk.core": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
20
+ "@sphereon/ssi-sdk.data-store": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
21
+ "@sphereon/ssi-sdk.vc-status-list": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
22
+ "@sphereon/ssi-sdk.vc-status-list-issuer-drivers": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
23
+ "@sphereon/ssi-types": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
23
24
  "@sphereon/vc-status-list": "7.0.0-next.0",
24
25
  "@veramo/core": "4.2.0",
25
26
  "debug": "^4.3.5",
@@ -33,9 +34,9 @@
33
34
  "@sphereon/did-uni-client": "^0.6.3",
34
35
  "@sphereon/ssi-sdk-ext.did-provider-jwk": "0.27.0",
35
36
  "@sphereon/ssi-sdk-ext.did-resolver-jwk": "0.27.0",
36
- "@sphereon/ssi-sdk.agent-config": "0.32.1-feature.VDX.341.57+c933fcf4",
37
+ "@sphereon/ssi-sdk.agent-config": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
37
38
  "@sphereon/ssi-sdk.data-store": "workspace:*",
38
- "@sphereon/ssi-sdk.vc-handler-ld-local": "0.32.1-feature.VDX.341.57+c933fcf4",
39
+ "@sphereon/ssi-sdk.vc-handler-ld-local": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
39
40
  "@types/body-parser": "^1.19.5",
40
41
  "@types/cookie-parser": "^1.4.7",
41
42
  "@types/cors": "^2.8.17",
@@ -79,5 +80,5 @@
79
80
  "StatusList2021"
80
81
  ],
81
82
  "nx": {},
82
- "gitHead": "c933fcf458a0a541de46ee82ac863a8c23c50e82"
83
+ "gitHead": "cb1cb474f6b670933f9bd5ea40da9dc421d5585f"
83
84
  }
@@ -2,15 +2,39 @@ import { checkAuth, sendErrorResponse } from '@sphereon/ssi-express-support'
2
2
  import {
3
3
  checkStatusIndexFromStatusListCredential,
4
4
  CreateNewStatusListFuncArgs,
5
+ StatusListResult,
5
6
  updateStatusIndexFromStatusListCredential,
6
7
  } from '@sphereon/ssi-sdk.vc-status-list'
7
8
  import { getDriver } from '@sphereon/ssi-sdk.vc-status-list-issuer-drivers'
8
9
  import Debug from 'debug'
9
10
  import { Request, Response, Router } from 'express'
10
- import { ICredentialStatusListEndpointOpts, IRequiredContext, IW3CredentialStatusEndpointOpts, UpdateCredentialStatusRequest } from './types'
11
+ import {
12
+ ICredentialStatusListEndpointOpts,
13
+ IRequiredContext,
14
+ IW3CredentialStatusEndpointOpts,
15
+ UpdateIndexedCredentialStatusRequest,
16
+ UpdateW3cCredentialStatusRequest,
17
+ } from './types'
18
+ import { StatusListCredential, StatusListType } from '@sphereon/ssi-types'
19
+ import { IStatusListEntryEntity } from '@sphereon/ssi-sdk.data-store'
11
20
 
12
21
  const debug = Debug('sphereon:ssi-sdk:status-list')
13
22
 
23
+ function sendStatuslistResponse(details: StatusListResult, statuslistPayload: StatusListCredential, response: Response) {
24
+ let payload: Buffer | StatusListCredential
25
+
26
+ switch (details.proofFormat) {
27
+ case 'jwt':
28
+ case 'cbor':
29
+ payload = Buffer.from(statuslistPayload as string, 'ascii')
30
+ break
31
+ default:
32
+ payload = statuslistPayload
33
+ }
34
+
35
+ return response.status(200).setHeader('Content-Type', details.statuslistContentType).send(payload)
36
+ }
37
+
14
38
  export function createNewStatusListEndpoint(router: Router, context: IRequiredContext, opts: ICredentialStatusListEndpointOpts) {
15
39
  if (opts?.enabled === false) {
16
40
  console.log(`Create new status list endpoint is disabled`)
@@ -24,8 +48,9 @@ export function createNewStatusListEndpoint(router: Router, context: IRequiredCo
24
48
  if (!statusListArgs) {
25
49
  return sendErrorResponse(response, 400, 'No statusList details supplied')
26
50
  }
27
- const statusListDetails = await context.agent.slCreateStatusList(statusListArgs)
28
- return response.send({ statusListDetails })
51
+ const details = await context.agent.slCreateStatusList(statusListArgs)
52
+ const statuslistPayload = details.statusListCredential
53
+ return sendStatuslistResponse(details, statuslistPayload, response)
29
54
  } catch (e) {
30
55
  return sendErrorResponse(response, 500, e.message as string, e)
31
56
  }
@@ -41,7 +66,9 @@ const buildStatusListId = (request: Request): string => {
41
66
  host += `:${forwardedPort}`
42
67
  }
43
68
 
44
- return `${protocol}://${host}${request.originalUrl}`
69
+ const forwardedPrefix = request.headers['x-forwarded-prefix']?.toString() ?? ''
70
+
71
+ return `${protocol}://${host}${forwardedPrefix}${request.originalUrl.split('?')[0].replace(/\/status\/index\/.*/, '')}`
45
72
  }
46
73
 
47
74
  export function getStatusListCredentialEndpoint(router: Router, context: IRequiredContext, opts: ICredentialStatusListEndpointOpts) {
@@ -53,11 +80,15 @@ export function getStatusListCredentialEndpoint(router: Router, context: IRequir
53
80
  router.get(path, checkAuth(opts?.endpoint), async (request: Request, response: Response) => {
54
81
  try {
55
82
  //todo: Check index against correlationId first. Then match originalUrl against statusList id
56
- const correlationId = request.query.correlationId?.toString() ?? request.params.index?.toString() ?? request.originalUrl
57
- const driver = await getDriver({ id: buildStatusListId(request), correlationId, dbName: opts.dbName })
83
+ //const correlationId = request.query.correlationId?.toString() ?? request.params.index?.toString() ?? request.originalUrl TODO I so not get these
84
+ const correlationId = request.query.correlationId?.toString()
85
+ const driver = await getDriver({
86
+ ...(correlationId ? { correlationId } : { id: buildStatusListId(request) }),
87
+ dbName: opts.dbName,
88
+ })
58
89
  const details = await driver.getStatusList()
59
- response.statusCode = 200
60
- return response.send(details.statusListCredential)
90
+ const statuslistPayload = details.statusListCredential
91
+ return sendStatuslistResponse(details, statuslistPayload, response)
61
92
  } catch (e) {
62
93
  return sendErrorResponse(response, 500, e.message as string, e)
63
94
  }
@@ -83,10 +114,10 @@ export function getStatusListCredentialIndexStatusEndpoint(router: Router, conte
83
114
  if (!statusListIndex || statusListIndex < 0) {
84
115
  return sendErrorResponse(response, 400, `Please provide a proper statusListIndex`)
85
116
  }
86
- const correlationId = request.query.correlationId?.toString() ?? request.params.index?.toString() ?? request.originalUrl
117
+ //const correlationId = request.query.correlationId?.toString() ?? request.params.index?.toString() ?? request.originalUrl TODO I so not get these
118
+ const statusListCorrelationId = request.query.correlationId?.toString()
87
119
  const driver = await getDriver({
88
- id: `${request.protocol}://${request.get('host')}${request.originalUrl.replace(/\/status\/index\/.*/, '')}`,
89
- correlationId,
120
+ ...(statusListCorrelationId ? { correlationId: statusListCorrelationId } : { id: buildStatusListId(request) }),
90
121
  dbName: opts.dbName,
91
122
  })
92
123
  const details = await driver.getStatusList()
@@ -94,13 +125,20 @@ export function getStatusListCredentialIndexStatusEndpoint(router: Router, conte
94
125
  return sendErrorResponse(response, 400, `Please provide a proper statusListIndex`)
95
126
  }
96
127
 
128
+ const entityCorrelationId = request.query.entityCorrelationId?.toString()
97
129
  let entry = await driver.getStatusListEntryByIndex({
98
- statusListIndex,
99
130
  statusListId: details.id,
100
- correlationId: details.correlationId,
131
+ ...(entityCorrelationId ? { correlationId: entityCorrelationId } : { statusListIndex: statusListIndex }),
101
132
  errorOnNotFound: false,
102
133
  })
103
- const status = await checkStatusIndexFromStatusListCredential({ ...details, statusListIndex })
134
+ const type = details.type === StatusListType.StatusList2021 ? 'StatusList2021Entry' : details.type
135
+ const status = await checkStatusIndexFromStatusListCredential({
136
+ statusListCredential: details.statusListCredential,
137
+ ...(details.type === StatusListType.StatusList2021 ? { statusPurpose: details.statusList2021?.statusPurpose } : {}),
138
+ type,
139
+ id: details.id,
140
+ statusListIndex,
141
+ })
104
142
  if (!entry) {
105
143
  // The fact we have nothing on it means the status is okay
106
144
  entry = {
@@ -110,13 +148,14 @@ export function getStatusListCredentialIndexStatusEndpoint(router: Router, conte
110
148
  }
111
149
  }
112
150
  response.statusCode = 200
113
- return response.send({ ...entry, status })
151
+ return response.send({ ...entry, status }) // FIXME content type?
114
152
  } catch (e) {
115
153
  return sendErrorResponse(response, 500, e.message as string, e)
116
154
  }
117
155
  })
118
156
  }
119
- export function updateW3CStatusEndpoint(router: Router, context: IRequiredContext, opts: IW3CredentialStatusEndpointOpts) {
157
+
158
+ export function updateStatusEndpoint(router: Router, context: IRequiredContext, opts: IW3CredentialStatusEndpointOpts) {
120
159
  if (opts?.enabled === false) {
121
160
  console.log(`Update credential status endpoint is disabled`)
122
161
  return
@@ -124,63 +163,84 @@ export function updateW3CStatusEndpoint(router: Router, context: IRequiredContex
124
163
  router.post(opts?.path ?? '/credentials/status', checkAuth(opts?.endpoint), async (request: Request, response: Response) => {
125
164
  try {
126
165
  debug(JSON.stringify(request.body, null, 2))
127
- const updateRequest = request.body as UpdateCredentialStatusRequest
166
+ const updateRequest = request.body as UpdateW3cCredentialStatusRequest | UpdateIndexedCredentialStatusRequest
128
167
  const statusListId = updateRequest.statusListId ?? request.query.statusListId?.toString() ?? opts.statusListId
129
168
  const statusListCorrelationId = updateRequest.statusListCorrelationId ?? request.query.statusListorrelationId?.toString() ?? opts.correlationId
130
169
  const entryCorrelationId = updateRequest.entryCorrelationId ?? request.query.entryCorrelationId?.toString()
131
- const credentialId = updateRequest.credentialId
132
170
 
133
171
  // TODO: Move mostly to driver
134
- if (!credentialId) {
135
- return sendErrorResponse(response, 400, 'No statusList credentialId supplied')
172
+ if (!statusListId && !statusListCorrelationId) {
173
+ return sendErrorResponse(response, 400, 'No statusList id or correlation Id provided or deduced for the API or in the request')
136
174
  } else if (!updateRequest.credentialStatus || updateRequest.credentialStatus.length === 0) {
137
175
  return sendErrorResponse(response, 400, 'No statusList updates supplied')
138
- } else if (!statusListId && !statusListCorrelationId) {
139
- return sendErrorResponse(response, 400, 'No statusList id or correlation Id provided or deduced for the API or in the request')
140
176
  }
141
- const driver = await getDriver({ id: statusListId, correlationId: statusListCorrelationId, dbName: opts.dbName })
142
- // unfortunately the W3C API works by credentialId. Which means you will have to map listIndices during issuance
143
- const statusListEntry = await driver.getStatusListEntryByCredentialId({
144
- statusListId,
145
- statusListCorrelationId,
146
- entryCorrelationId,
147
- credentialId,
148
- errorOnNotFound: true,
177
+ const driver = await getDriver({
178
+ ...(statusListCorrelationId ? { correlationId: statusListCorrelationId } : { id: buildStatusListId(request) }),
179
+ dbName: opts.dbName,
149
180
  })
181
+
182
+ // Get status list entry based on request type
183
+ let statusListEntry: IStatusListEntryEntity | undefined
184
+ if ('credentialId' in updateRequest) {
185
+ if (!updateRequest.credentialId) {
186
+ return sendErrorResponse(response, 400, 'No credentialId supplied')
187
+ }
188
+ // unfortunately the W3C API works by credentialId. Which means you will have to map listIndices during issuance
189
+ statusListEntry = await driver.getStatusListEntryByCredentialId({
190
+ statusListId,
191
+ statusListCorrelationId,
192
+ entryCorrelationId,
193
+ credentialId: updateRequest.credentialId,
194
+ errorOnNotFound: true,
195
+ })
196
+ } else {
197
+ if (!updateRequest.statusListIndex || updateRequest.statusListIndex < 0) {
198
+ return sendErrorResponse(response, 400, 'Invalid statusListIndex supplied')
199
+ }
200
+ const driver = await getDriver({
201
+ ...(statusListCorrelationId ? { statusListCorrelationId } : { id: buildStatusListId(request) }),
202
+ dbName: opts.dbName,
203
+ })
204
+ const details = await driver.getStatusList()
205
+
206
+ statusListEntry = await driver.getStatusListEntryByIndex({
207
+ statusListId: details.id,
208
+ ...(entryCorrelationId ? { correlationId: entryCorrelationId } : { statusListIndex: updateRequest.statusListIndex }),
209
+ errorOnNotFound: true,
210
+ })
211
+ }
212
+
150
213
  if (!statusListEntry) {
151
- return sendErrorResponse(
152
- response,
153
- 404,
154
- `status list index for credential id ${credentialId} was never recorded for ${statusListId}. This means the status will be 0`,
155
- )
214
+ const identifier = 'credentialId' in updateRequest ? updateRequest.credentialId : `index ${updateRequest.statusListIndex}`
215
+ return sendErrorResponse(response, 404, `Status list entry for ${identifier} not found for ${statusListId}`)
156
216
  }
157
- const statusListIndex = statusListEntry.statusListIndex
217
+
158
218
  let details = await driver.getStatusList()
159
219
  let statusListCredential = details.statusListCredential
160
220
 
161
221
  for (const updateItem of updateRequest.credentialStatus) {
162
- if (updateItem.type && updateItem.type !== 'StatusList2021') {
163
- return sendErrorResponse(response, 400, `Only the optional type 'StatusList2021' is currently supported`)
164
- }
165
-
166
222
  if (!updateItem.status) {
167
- return sendErrorResponse(
168
- response,
169
- 400,
170
- `Required 'status' value was missing in the credentialStatus array for credentialId ${credentialId}`,
171
- )
223
+ return sendErrorResponse(response, 400, `Required 'status' value was missing in the credentialStatus array`)
172
224
  }
173
- const value = updateItem.status === '0' || updateItem.status.toLowerCase() === 'false' ? false : true
225
+
226
+ const value = updateItem.status === '0' || updateItem.status.toLowerCase() === 'false' ? '0' : '1'
174
227
  const statusList = statusListId ?? statusListEntry.statusList
175
- await driver.updateStatusListEntry({ ...statusListEntry, statusListIndex, statusList, credentialId, value: value ? '1' : '0' })
228
+ await driver.updateStatusListEntry({ ...statusListEntry, statusList, value })
176
229
 
177
230
  // todo: optimize. We are now creating a new VC for every item passed in. Probably wise to look at DB as well
178
- details = await updateStatusIndexFromStatusListCredential({ statusListCredential, statusListIndex, value, keyRef: opts.keyRef }, context)
231
+ details = await updateStatusIndexFromStatusListCredential(
232
+ {
233
+ statusListCredential: statusListCredential,
234
+ statusListIndex: statusListEntry.statusListIndex,
235
+ value: parseInt(value),
236
+ keyRef: opts.keyRef,
237
+ },
238
+ context,
239
+ )
179
240
  details = await driver.updateStatusList({ statusListCredential: details.statusListCredential })
180
241
  }
181
242
 
182
- response.statusCode = 200
183
- return response.send(details.statusListCredential)
243
+ return sendStatuslistResponse(details, details.statusListCredential, response)
184
244
  } catch (e) {
185
245
  return sendErrorResponse(response, 500, e.message as string, e)
186
246
  }
@@ -8,7 +8,7 @@ import {
8
8
  createNewStatusListEndpoint,
9
9
  getStatusListCredentialEndpoint,
10
10
  getStatusListCredentialIndexStatusEndpoint,
11
- updateW3CStatusEndpoint,
11
+ updateStatusEndpoint,
12
12
  } from './api-functions'
13
13
  import { IStatusListOpts } from './types'
14
14
  import { IRequiredPlugins } from '@sphereon/ssi-sdk.vc-status-list-issuer-drivers'
@@ -50,7 +50,7 @@ export class StatuslistManagementApiServer {
50
50
  getStatusListCredentialIndexStatusEndpoint(this.router, context, opts.endpointOpts.getStatusList)
51
51
  }
52
52
  if (features.includes('w3c-vc-api-credential-status')) {
53
- updateW3CStatusEndpoint(this.router, context, opts.endpointOpts.vcApiCredentialStatus)
53
+ updateStatusEndpoint(this.router, context, opts.endpointOpts.vcApiCredentialStatus)
54
54
  }
55
55
  this._express.use(opts?.endpointOpts?.basePath ?? '', this.router)
56
56
  }
package/src/types.ts CHANGED
@@ -31,8 +31,15 @@ export interface IW3CredentialStatusEndpointOpts extends ICredentialStatusListEn
31
31
  keyRef?: string
32
32
  }
33
33
 
34
- export interface UpdateCredentialStatusRequest {
34
+ export interface UpdateW3cCredentialStatusRequest extends UpdateCredentialStatusRequest {
35
35
  credentialId: string
36
+ }
37
+
38
+ export interface UpdateIndexedCredentialStatusRequest extends UpdateCredentialStatusRequest {
39
+ statusListIndex: number
40
+ }
41
+
42
+ interface UpdateCredentialStatusRequest {
36
43
  credentialStatus: UpdateCredentialStatusItem[]
37
44
  statusListId?: string // Non spec compliant. Allows us to manage multiple status lists. The VC API endpoint also has this config option, allowing for a default
38
45
  statusListCorrelationId?: string // Non spec compliant. Allows us to manage multiple status lists. The VC API endpoint also has this config option, allowing for a default