@bedrock/kms-http 14.5.0 → 15.0.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 +3 -3
- package/lib/BedrockKeystoreConfigStorage.js +1 -3
- package/lib/helpers.js +14 -11
- package/lib/http.js +8 -10
- package/lib/metering.js +3 -3
- package/lib/middleware.js +13 -15
- package/package.json +21 -16
- package/schemas/bedrock-kms-http.js +1 -1
- package/.eslintrc.cjs +0 -12
- package/.github/workflows/main.yml +0 -77
- package/CHANGELOG.md +0 -386
- package/test/mocha/.eslintrc +0 -9
- package/test/mocha/10-keystore.js +0 -670
- package/test/mocha/11-keystore-kms-client.js +0 -242
- package/test/mocha/20-revocation.js +0 -545
- package/test/mocha/21-revocation-ip-allow-list.js +0 -143
- package/test/mocha/30-operations-generate-key.js +0 -180
- package/test/mocha/31-operations-hmac.js +0 -176
- package/test/mocha/helpers.js +0 -163
- package/test/mocha/mock.data.js +0 -40
- package/test/package.json +0 -64
- package/test/test.config.js +0 -36
- package/test/test.js +0 -31
- package/test/web/.eslintrc +0 -9
- package/test/web/10-api.js +0 -108
- package/test/web/helpers.js +0 -84
package/CHANGELOG.md
DELETED
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
# bedrock-kms-http ChangeLog
|
|
2
|
-
|
|
3
|
-
## 14.5.0 - 2022-06-19
|
|
4
|
-
|
|
5
|
-
### Changed
|
|
6
|
-
- Use `@bedrock/kms@10.3`.
|
|
7
|
-
- Use `@digitalbazaar/webkms-switch@10.3`.
|
|
8
|
-
|
|
9
|
-
## 14.4.0 - 2022-05-19
|
|
10
|
-
|
|
11
|
-
### Added
|
|
12
|
-
- Add max age header for CORS, defaulting to the max acceptable time for
|
|
13
|
-
modern browsers of 86400 seconds (24 hours).
|
|
14
|
-
|
|
15
|
-
## 14.3.1 - 2022-05-16
|
|
16
|
-
|
|
17
|
-
### Fixed
|
|
18
|
-
- Use `@digitalbazaar/webkms-switch@10.2` to ensure that pre-cached `webkms`
|
|
19
|
-
request meta data is not overwritten and that a custom `getRootController`
|
|
20
|
-
function is used (to enable cache busting on KMS operations).
|
|
21
|
-
|
|
22
|
-
## 14.3.0 - 2022-05-16
|
|
23
|
-
|
|
24
|
-
### Added
|
|
25
|
-
- Add debug logging for keystore config cache busting.
|
|
26
|
-
|
|
27
|
-
## 14.2.1 - 2022-05-13
|
|
28
|
-
|
|
29
|
-
### Fixed
|
|
30
|
-
- Fix cache busting for invoked delegated zcap cases.
|
|
31
|
-
|
|
32
|
-
## 14.2.0 - 2022-05-13
|
|
33
|
-
|
|
34
|
-
### Changed
|
|
35
|
-
- Be more resilient to keystore config controller changes. When a keystore
|
|
36
|
-
is new and KMS operations are performed on it that could cause false-positive
|
|
37
|
-
fail authz errors, fetch a fresh version of the config to ensure that the
|
|
38
|
-
controller has not changed.
|
|
39
|
-
|
|
40
|
-
## 14.1.0 - 2022-05-12
|
|
41
|
-
|
|
42
|
-
### Added
|
|
43
|
-
- Include full error as non-public `cause` in `onError` handler.
|
|
44
|
-
|
|
45
|
-
## 14.0.0 - 2022-04-29
|
|
46
|
-
|
|
47
|
-
### Changed
|
|
48
|
-
- **BREAKING**: Update peer deps:
|
|
49
|
-
- `@bedrock/core@6`
|
|
50
|
-
- `@bedrock/app-identity@3`
|
|
51
|
-
- `@bedrock/express@8`
|
|
52
|
-
- `@bedrock/kms@10`
|
|
53
|
-
- `@bedrock/meter-usage-reporter@7`
|
|
54
|
-
- `@bedrock/validation@7`
|
|
55
|
-
- `@bedrock/zcap-storage@7`.
|
|
56
|
-
|
|
57
|
-
## 13.0.0 - 2022-04-05
|
|
58
|
-
|
|
59
|
-
### Changed
|
|
60
|
-
- **BREAKING**: Rename package to `@bedrock/kms-http`.
|
|
61
|
-
- **BREAKING**: Convert to module (ESM).
|
|
62
|
-
- **BREAKING**: Remove default export.
|
|
63
|
-
- **BREAKING**: Require node 14.x.
|
|
64
|
-
|
|
65
|
-
## 12.1.0 - 2022-03-29
|
|
66
|
-
|
|
67
|
-
### Changed
|
|
68
|
-
- Update peer deps:
|
|
69
|
-
- `bedrock@4.5`
|
|
70
|
-
- `bedrock-express@6.4.1`
|
|
71
|
-
- `bedrock-kms@8.3.0`
|
|
72
|
-
- `bedrock-validation@5.6.3`
|
|
73
|
-
- `bedrock-zcap-storage@5.2`.
|
|
74
|
-
- Update internals to use esm style and use `esm.js` to
|
|
75
|
-
transpile to CommonJS.
|
|
76
|
-
|
|
77
|
-
### Removed
|
|
78
|
-
- Remove unused peer deps:
|
|
79
|
-
- `bedrock-server`
|
|
80
|
-
- `bedrock-jsonld-document-loader`
|
|
81
|
-
- `bedrock-mongodb`.
|
|
82
|
-
|
|
83
|
-
## 12.0.1 - 2022-03-03
|
|
84
|
-
|
|
85
|
-
### Fixed
|
|
86
|
-
- Use `@digitalbazaar/webkms-switch@10` to be consistent with
|
|
87
|
-
`@digitalbazaar/ezcap-express@6` and other breaking changes
|
|
88
|
-
in this major version.
|
|
89
|
-
|
|
90
|
-
## 12.0.0 - 2022-03-01
|
|
91
|
-
|
|
92
|
-
### Changed
|
|
93
|
-
- **BREAKING**: Move zcap revocations to `/zcaps/revocations` to better
|
|
94
|
-
future proof.
|
|
95
|
-
- **BREAKING**: Use `@digitalbazaar/ezcap-express@6`.
|
|
96
|
-
- **BREAKING**: This version is compatible with
|
|
97
|
-
`@digitalbazaar/webkms-client@10`.
|
|
98
|
-
|
|
99
|
-
## 11.3.1 - 2022-02-12
|
|
100
|
-
|
|
101
|
-
### Changed
|
|
102
|
-
- Improve internal implementation of JSON schema validators.
|
|
103
|
-
|
|
104
|
-
## 11.3.0 - 2022-02-10
|
|
105
|
-
|
|
106
|
-
### Changed
|
|
107
|
-
- Use `bedrock-validation@5.4` with better schema compilation.
|
|
108
|
-
|
|
109
|
-
## 11.2.0 - 2022-02-08
|
|
110
|
-
|
|
111
|
-
### Added
|
|
112
|
-
- Allow KMS operations to be configured via config system and
|
|
113
|
-
set defaults to allow long-lived zcaps.
|
|
114
|
-
|
|
115
|
-
## 11.1.1 - 2022-01-20
|
|
116
|
-
|
|
117
|
-
### Fixed
|
|
118
|
-
- Do not expose details from errors that aren't marked public.
|
|
119
|
-
|
|
120
|
-
## 11.1.0 - 2022-01-14
|
|
121
|
-
|
|
122
|
-
### Added
|
|
123
|
-
- Use webkms-switch@9.1 to enable passing `zcapInvocation` to KMS
|
|
124
|
-
modules. This enables KMS modules to disallow key operations based
|
|
125
|
-
on zcap invocation information, if desired.
|
|
126
|
-
|
|
127
|
-
## 11.0.0 - 2022-01-11
|
|
128
|
-
|
|
129
|
-
### Changed
|
|
130
|
-
- **BREAKING**: Use ezcap-express@5 and webkms-switch@9. These changes
|
|
131
|
-
include major breaking simplifications to ZCAP (zcap@7).
|
|
132
|
-
|
|
133
|
-
## 10.2.0 - 2021-12-11
|
|
134
|
-
|
|
135
|
-
### Added
|
|
136
|
-
- Add tests and update `README.md`.
|
|
137
|
-
|
|
138
|
-
### Changed
|
|
139
|
-
- Require ezcap-express 4.3.x.
|
|
140
|
-
|
|
141
|
-
## 10.1.3 - 2021-12-10
|
|
142
|
-
|
|
143
|
-
### Fixed
|
|
144
|
-
- Combined duplicate error code paths to simplify; the relevant code ensures
|
|
145
|
-
that when a client sends a keystore config with an ID that does not match
|
|
146
|
-
the config ID in the request URL, an exception will be thrown.
|
|
147
|
-
|
|
148
|
-
## 10.1.2 - 2021-12-09
|
|
149
|
-
|
|
150
|
-
### Fixed
|
|
151
|
-
- Load keystore config for a particular request only once to create more
|
|
152
|
-
consistent behavior. Multiple retrievals of the same keystore config during
|
|
153
|
-
the lifetime of a request may result in loading different configs without
|
|
154
|
-
this patch. This patch makes behavior more consistent by reusing the same
|
|
155
|
-
loaded keystore config for the entire request. Note that there is a change
|
|
156
|
-
to an assertion in a test on a returned error, however, that error was
|
|
157
|
-
not going to be consistent in previous versions regardless. This fix makes
|
|
158
|
-
it more consistent.
|
|
159
|
-
|
|
160
|
-
## 10.1.1 - 2021-11-24
|
|
161
|
-
|
|
162
|
-
### Fixed
|
|
163
|
-
- Fix bug in meter usage aggregation.
|
|
164
|
-
|
|
165
|
-
## 10.1.0 - 2021-11-23
|
|
166
|
-
|
|
167
|
-
### Added
|
|
168
|
-
- Do not allow zcap revocations to be stored if the meter associated with
|
|
169
|
-
a keystore has been disabled. Storage of zcap revocations is permitted if
|
|
170
|
-
there is no available storage to prevent potential security issues, however,
|
|
171
|
-
the meter MUST not be disabled to make use of this feature. Very robust
|
|
172
|
-
rate limiting MUST be applied to the revocation submission endpoint in
|
|
173
|
-
a deployment to avoid significant storage overflow.
|
|
174
|
-
|
|
175
|
-
## 10.0.0 - 2021-10-07
|
|
176
|
-
|
|
177
|
-
### Changed
|
|
178
|
-
- **BREAKING**: Use `webkms-switch@8` which changes the way key IDs are
|
|
179
|
-
generated. See the [changelog](https://github.com/digitalbazaar/webkms-switch/blob/main/CHANGELOG.md).
|
|
180
|
-
|
|
181
|
-
## 9.0.0 - 2021-09-02
|
|
182
|
-
|
|
183
|
-
### Changed
|
|
184
|
-
- **BREAKING**: Use bedrock-meter-usage-reporter@4. This new version now
|
|
185
|
-
requires bedrock-app-identity to configure the identity for webkms
|
|
186
|
-
applications.
|
|
187
|
-
|
|
188
|
-
## 8.0.1 - 2021-09-01
|
|
189
|
-
|
|
190
|
-
### Fixed
|
|
191
|
-
- Do not allow meter ID to be changed when updating keystore config as
|
|
192
|
-
the keystore controller has insufficient authority to do so. This
|
|
193
|
-
may be enabled in the future by requiring the root zcap controller
|
|
194
|
-
to be the meter controller when changing the meter ID.
|
|
195
|
-
|
|
196
|
-
## 8.0.0 - 2021-08-31
|
|
197
|
-
|
|
198
|
-
### Changed
|
|
199
|
-
- **BREAKING**: Use bedrock-meter-usage-reporter@3. This new version simplifies
|
|
200
|
-
meter usage zcap management by eliminating the need for a delegated zcap
|
|
201
|
-
to allow reporting meter usage. Instead, the KMS service is the root
|
|
202
|
-
controller for the meter usage endpoint for any meter that is specifically
|
|
203
|
-
created and coupled to it.
|
|
204
|
-
- **BREAKING**: Creating a keystore now requires sending only the full URL
|
|
205
|
-
`meterId` for a meter, not a meter capability. The meter will be presumed
|
|
206
|
-
to be coupled to the KMS service -- and this will be confirmed via a call
|
|
207
|
-
to retrieve the meter information.
|
|
208
|
-
|
|
209
|
-
## 7.1.0 - 2021-08-26
|
|
210
|
-
|
|
211
|
-
### Changed
|
|
212
|
-
- Use ezcap-express@4.2 to provide zcap revocation authorization implementation.
|
|
213
|
-
Remove dependencies that are no longer needed because of this upgrade.
|
|
214
|
-
|
|
215
|
-
## 7.0.1 - 2021-08-18
|
|
216
|
-
|
|
217
|
-
### Fixed
|
|
218
|
-
- Ensure promise settles before returning key description.
|
|
219
|
-
|
|
220
|
-
## 7.0.0 - 2021-08-17
|
|
221
|
-
|
|
222
|
-
### Changed
|
|
223
|
-
- **BREAKING**: Updated to work with bedrock-meter-usage-reporter 2.x. This
|
|
224
|
-
new version enables applications to bundle the webkms service with other
|
|
225
|
-
services instead of requiring a microservices deployment architecture.
|
|
226
|
-
|
|
227
|
-
## 6.1.0 - 2021-07-23
|
|
228
|
-
|
|
229
|
-
### Changed
|
|
230
|
-
- Update peer dependencies; use bedrock-did-io@4.
|
|
231
|
-
|
|
232
|
-
## 6.0.0 - 2021-07-22
|
|
233
|
-
|
|
234
|
-
### Added
|
|
235
|
-
- **BREAKING** - Add storage and operation metering support. A meter capability
|
|
236
|
-
must be provided to create a new keystore. This capability will be used to
|
|
237
|
-
report keystore storage and operation usage to the associated meter.
|
|
238
|
-
|
|
239
|
-
### Changed
|
|
240
|
-
- **BREAKING**: Require `expires` to be set on delegated zcaps.
|
|
241
|
-
- **BREAKING**: Use updated bedrock-kms.
|
|
242
|
-
- **BREAKING**: Simplify zcap revocation model. Now any party that has been delegated a zcap can
|
|
243
|
-
send it to a revocation address: `<keystoreId>/revocations/<zcap ID>` without needing to have an
|
|
244
|
-
additional zcap delegated to that party. The party must invoke the root zcap for that endpoint,
|
|
245
|
-
which will be dynamically generated and use the delegator of the zcap as the controller, i.e., the
|
|
246
|
-
delegator must invoke this root zcap to revoke the zcap they delegated.
|
|
247
|
-
|
|
248
|
-
### Removed
|
|
249
|
-
- **BREAKING**: Remove `did-io`, `did-method-key`, and
|
|
250
|
-
`did-veres-one` from deps and use `bedrock-did-io`.
|
|
251
|
-
- **BREAKING**: Remove query endpoint. It was unused and a new design would need to
|
|
252
|
-
be introduced in the future that properly handles authz.
|
|
253
|
-
|
|
254
|
-
## 5.0.0 - 2021-05-20
|
|
255
|
-
|
|
256
|
-
### Changed
|
|
257
|
-
- **BREAKING**: Remove `ed25519-signature-2018` signature suite and use
|
|
258
|
-
`ed25519-signature-2020`.
|
|
259
|
-
- Remove `did-io`, `did-method-key`, and `did-veres-one` from deps and use
|
|
260
|
-
`bedrock-did-io`.
|
|
261
|
-
- Update peerDeps and deps
|
|
262
|
-
- [@digitalbazaar/ed25519-signature-2020@2.1.0](https://github.com/digitalbazaar/ed25519-signature-2020/blob/main/CHANGELOG.md)
|
|
263
|
-
- [@digitalbazaar/ezcap-express@3.0.1](https://github.com/digitalbazaar/ezcap-express/blob/main/CHANGELOG.md)
|
|
264
|
-
- [@digitalbazaar/zcapld@4.0.0](https://github.com/digitalbazaar/zcapld/blob/main/CHANGELOG.md)
|
|
265
|
-
- [http-signature-zcap-verify@7.1.0](https://github.com/digitalbazaar/http-signature-zcap-verify/blob/main/CHANGELOG.md)
|
|
266
|
-
- [jsonld-signatures@9.0.2](https://github.com/digitalbazaar/jsonld-signatures/blob/master/CHANGELOG.md)
|
|
267
|
-
- [webkms-switch@5.0.0](https://github.com/digitalbazaar/webkms-switch/blob/main/CHANGELOG.md)
|
|
268
|
-
- [bedrock-kms@6.0.0](https://github.com/digitalbazaar/bedrock-kms/blob/master/CHANGELOG.md)
|
|
269
|
-
- [bedrock-did-io@2.0.0](https://github.com/digitalbazaar/bedrock-did-io/blob/main/CHANGELOG.md)
|
|
270
|
-
- Update test deps
|
|
271
|
-
|
|
272
|
-
### Added
|
|
273
|
-
- Keystore configurations may now include an optional `ipAllowList` array. If
|
|
274
|
-
specified, the KMS system will only execute requests originating from IPs
|
|
275
|
-
listed in `ipAllowList`. This applies to key operations for all keys in the
|
|
276
|
-
keystore as well as modification of the configuration itself.
|
|
277
|
-
|
|
278
|
-
## 4.0.0 - 2021-03-02
|
|
279
|
-
|
|
280
|
-
### Added
|
|
281
|
-
- **BREAKING**: Implement ZCAP authz on the keystore config update API.
|
|
282
|
-
|
|
283
|
-
### Changed
|
|
284
|
-
- **BREAKING**: Drop Node 10.x support.
|
|
285
|
-
- **BREAKING**: Change data model and validation of keystore configs. Configs
|
|
286
|
-
no longer include `invoker` or `delegator` properties.
|
|
287
|
-
|
|
288
|
-
## 3.2.0 - 2021-02-10
|
|
289
|
-
|
|
290
|
-
### Added
|
|
291
|
-
- Added validators to `keystore`, `keystores`, `authorizations`, and
|
|
292
|
-
`zcaps` endpoints.
|
|
293
|
-
- Improve test coverage.
|
|
294
|
-
|
|
295
|
-
## 3.1.0 - 2021-01-12
|
|
296
|
-
|
|
297
|
-
### Changed
|
|
298
|
-
- Update bedrock-account@5.0
|
|
299
|
-
|
|
300
|
-
## 3.0.0 - 2020-09-22
|
|
301
|
-
|
|
302
|
-
### Changed
|
|
303
|
-
- **BREAKING**: Do not look up zcaps in authorizations collection;
|
|
304
|
-
full zcap chain must be submitted. A future feature may involve
|
|
305
|
-
ensuring that zcaps for certain keys are present in the
|
|
306
|
-
authorizations collection as an added security measure, but
|
|
307
|
-
those zcaps would still need to be submitted at invocation.
|
|
308
|
-
|
|
309
|
-
## 2.3.0 - 2020-06-30
|
|
310
|
-
|
|
311
|
-
### Changed
|
|
312
|
-
- Update peerDependencies to include bedrock-account@4.
|
|
313
|
-
- Update test deps.
|
|
314
|
-
- Update CI workflow.
|
|
315
|
-
|
|
316
|
-
## 2.2.0 - 2020-06-19
|
|
317
|
-
|
|
318
|
-
### Added
|
|
319
|
-
- Improve test coverage.
|
|
320
|
-
|
|
321
|
-
### Changed
|
|
322
|
-
- Update peer deps.
|
|
323
|
-
- Improve error handling in `_verifyHost` helper.
|
|
324
|
-
|
|
325
|
-
## 2.1.0 - 2020-05-15
|
|
326
|
-
|
|
327
|
-
### Added
|
|
328
|
-
- Add CORS support for key ops.
|
|
329
|
-
|
|
330
|
-
### Changed
|
|
331
|
-
- Use bedrock-kms@2.1.0.
|
|
332
|
-
|
|
333
|
-
## 2.0.0 - 2020-04-02
|
|
334
|
-
|
|
335
|
-
### Added
|
|
336
|
-
- Create expectedRootCapability for revocations.
|
|
337
|
-
|
|
338
|
-
### Changed
|
|
339
|
-
- **BREAKING**: Use webkms-switch@2.
|
|
340
|
-
- **BREAKING**: Use http-signature-zcap-verify@3.
|
|
341
|
-
|
|
342
|
-
## 1.2.1 - 2020-02-27
|
|
343
|
-
|
|
344
|
-
### Fixed
|
|
345
|
-
- Fix syntax error/typo.
|
|
346
|
-
|
|
347
|
-
## 1.2.0 - 2020-02-26
|
|
348
|
-
|
|
349
|
-
### Added
|
|
350
|
-
- Revocations API.
|
|
351
|
-
|
|
352
|
-
### Changed
|
|
353
|
-
- Use jsonld-signatures@5.
|
|
354
|
-
|
|
355
|
-
## 1.1.3 - 2020-01-22
|
|
356
|
-
|
|
357
|
-
### Fixed
|
|
358
|
-
- Add missing jsonld-sigatures dep.
|
|
359
|
-
|
|
360
|
-
## 1.1.2 - 2020-01-12
|
|
361
|
-
|
|
362
|
-
### Fixed
|
|
363
|
-
- Ensure local zcap storage is checked for invoked zcaps.
|
|
364
|
-
|
|
365
|
-
## 1.1.1 - 2020-01-12
|
|
366
|
-
|
|
367
|
-
### Fixed
|
|
368
|
-
- Ensure local zcap storage is checked for parent zcaps.
|
|
369
|
-
|
|
370
|
-
## 1.1.0 - 2020-01-11
|
|
371
|
-
|
|
372
|
-
### Added
|
|
373
|
-
- Support delegation by non-root controllers provided that `delegator`
|
|
374
|
-
is set in the zcap.
|
|
375
|
-
|
|
376
|
-
## 1.0.1 - 2019-12-20
|
|
377
|
-
|
|
378
|
-
### Fixed
|
|
379
|
-
- Fixed typo in module import.
|
|
380
|
-
|
|
381
|
-
## 1.0.0 - 2019-12-20
|
|
382
|
-
|
|
383
|
-
### Added
|
|
384
|
-
- Added core files.
|
|
385
|
-
|
|
386
|
-
- See git history for changes.
|