@cubist-labs/cubesigner-sdk 0.2.24 → 0.3.1
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 +30 -28
- package/dist/cjs/package.json +41 -0
- package/dist/cjs/spec/env/beta.json +9 -0
- package/dist/cjs/spec/env/gamma.json +9 -0
- package/dist/cjs/spec/env/prod.json +9 -0
- package/dist/cjs/src/api.d.ts +634 -0
- package/dist/cjs/src/api.js +1309 -0
- package/dist/cjs/src/client.d.ts +575 -0
- package/dist/cjs/src/client.js +378 -0
- package/dist/cjs/src/env.d.ts +15 -0
- package/dist/cjs/src/env.js +35 -0
- package/dist/cjs/src/error.d.ts +29 -0
- package/dist/cjs/src/error.js +36 -0
- package/dist/cjs/src/events.d.ts +84 -0
- package/dist/cjs/src/events.js +195 -0
- package/dist/cjs/src/index.d.ts +203 -0
- package/dist/cjs/src/index.js +298 -0
- package/dist/cjs/src/key.d.ts +152 -0
- package/dist/cjs/src/key.js +242 -0
- package/dist/{src/fido.d.ts → cjs/src/mfa.d.ts} +33 -15
- package/dist/cjs/src/mfa.js +169 -0
- package/dist/cjs/src/org.d.ts +99 -0
- package/dist/cjs/src/org.js +95 -0
- package/dist/cjs/src/paginator.d.ts +76 -0
- package/dist/cjs/src/paginator.js +99 -0
- package/dist/cjs/src/response.d.ts +101 -0
- package/dist/cjs/src/response.js +164 -0
- package/dist/cjs/src/role.d.ts +283 -0
- package/dist/cjs/src/role.js +253 -0
- package/dist/cjs/src/schema.d.ts +6209 -0
- package/dist/cjs/src/schema.js +7 -0
- package/dist/cjs/src/schema_types.d.ts +113 -0
- package/dist/cjs/src/schema_types.js +3 -0
- package/dist/cjs/src/session/session_storage.d.ts +27 -0
- package/dist/cjs/src/session/session_storage.js +47 -0
- package/dist/cjs/src/session/signer_session_manager.d.ts +125 -0
- package/dist/cjs/src/session/signer_session_manager.js +239 -0
- package/dist/cjs/src/signer_session.d.ts +41 -0
- package/dist/cjs/src/signer_session.js +77 -0
- package/dist/cjs/src/user_export.d.ts +52 -0
- package/dist/cjs/src/user_export.js +129 -0
- package/dist/cjs/src/util.d.ts +56 -0
- package/dist/cjs/src/util.js +86 -0
- package/dist/esm/package.json +41 -0
- package/dist/esm/spec/env/beta.json +9 -0
- package/dist/esm/spec/env/gamma.json +9 -0
- package/dist/esm/spec/env/prod.json +9 -0
- package/dist/esm/src/api.d.ts +634 -0
- package/dist/esm/src/api.js +1299 -0
- package/dist/esm/src/client.d.ts +575 -0
- package/dist/esm/src/client.js +374 -0
- package/dist/esm/src/env.d.ts +15 -0
- package/dist/esm/src/env.js +9 -0
- package/dist/esm/src/error.d.ts +29 -0
- package/dist/esm/src/error.js +31 -0
- package/dist/esm/src/events.d.ts +84 -0
- package/dist/esm/src/events.js +189 -0
- package/dist/esm/src/index.d.ts +203 -0
- package/dist/esm/src/index.js +276 -0
- package/dist/esm/src/key.d.ts +152 -0
- package/dist/esm/src/key.js +236 -0
- package/dist/esm/src/mfa.d.ts +94 -0
- package/dist/esm/src/mfa.js +163 -0
- package/dist/esm/src/org.d.ts +99 -0
- package/dist/esm/src/org.js +91 -0
- package/dist/esm/src/paginator.d.ts +76 -0
- package/dist/esm/src/paginator.js +94 -0
- package/dist/esm/src/response.d.ts +101 -0
- package/dist/esm/src/response.js +159 -0
- package/dist/esm/src/role.d.ts +283 -0
- package/dist/esm/src/role.js +248 -0
- package/dist/esm/src/schema.d.ts +6209 -0
- package/dist/esm/src/schema.js +6 -0
- package/dist/esm/src/schema_types.d.ts +113 -0
- package/dist/esm/src/schema_types.js +2 -0
- package/dist/esm/src/session/session_storage.d.ts +27 -0
- package/dist/esm/src/session/session_storage.js +43 -0
- package/dist/esm/src/session/signer_session_manager.d.ts +125 -0
- package/dist/esm/src/session/signer_session_manager.js +235 -0
- package/dist/esm/src/signer_session.d.ts +41 -0
- package/dist/esm/src/signer_session.js +72 -0
- package/dist/esm/src/user_export.d.ts +52 -0
- package/dist/esm/src/user_export.js +99 -0
- package/dist/esm/src/util.d.ts +56 -0
- package/dist/esm/src/util.js +76 -0
- package/dist/package.json +13 -45
- package/dist/src/api.d.ts +29 -18
- package/dist/src/api.js +70 -17
- package/dist/src/client.d.ts +35 -14
- package/dist/src/client.js +12 -8
- package/dist/src/error.d.ts +29 -0
- package/dist/src/error.js +36 -0
- package/dist/src/events.d.ts +1 -1
- package/dist/src/events.js +1 -1
- package/dist/src/index.d.ts +8 -11
- package/dist/src/index.js +11 -25
- package/dist/src/key.d.ts +18 -7
- package/dist/src/key.js +52 -19
- package/dist/src/role.d.ts +46 -3
- package/dist/src/role.js +60 -8
- package/dist/src/schema.d.ts +206 -72
- package/dist/src/schema.js +1 -1
- package/dist/src/schema_types.d.ts +3 -0
- package/dist/src/schema_types.js +1 -1
- package/dist/src/session/signer_session_manager.d.ts +49 -13
- package/dist/src/session/signer_session_manager.js +104 -26
- package/dist/src/util.d.ts +14 -0
- package/dist/src/util.js +24 -27
- package/package.json +19 -46
- package/src/api.ts +81 -23
- package/src/client.ts +12 -8
- package/src/error.ts +42 -0
- package/src/events.ts +3 -1
- package/src/index.ts +12 -24
- package/src/key.ts +36 -18
- package/src/role.ts +78 -7
- package/src/schema.ts +269 -110
- package/src/schema_types.ts +3 -0
- package/src/session/session_storage.ts +0 -32
- package/src/session/signer_session_manager.ts +137 -28
- package/src/util.ts +19 -10
- package/tsconfig.json +1 -21
- package/LICENSE-APACHE +0 -177
- package/LICENSE-MIT +0 -25
- package/NOTICE +0 -13
- package/dist/examples/ethers.d.ts +0 -1
- package/dist/examples/ethers.js +0 -142
- package/dist/src/ethers/index.d.ts +0 -95
- package/dist/src/ethers/index.js +0 -208
- package/dist/src/fido.js +0 -148
- package/dist/src/session/cognito_manager.d.ts +0 -71
- package/dist/src/session/cognito_manager.js +0 -129
- package/dist/src/session/generic.d.ts +0 -47
- package/dist/src/session/generic.js +0 -3
- package/dist/src/session/management_session_manager.d.ts +0 -59
- package/dist/src/session/management_session_manager.js +0 -111
- package/dist/src/session/oidc_session_manager.d.ts +0 -78
- package/dist/src/session/oidc_session_manager.js +0 -142
- package/dist/src/session/session_manager.d.ts +0 -99
- package/dist/src/session/session_manager.js +0 -136
- package/dist/src/sign.d.ts +0 -114
- package/dist/src/sign.js +0 -248
- package/dist/test/sessions.d.ts +0 -35
- package/dist/test/sessions.js +0 -56
- package/src/ethers/index.ts +0 -249
- package/src/session/cognito_manager.ts +0 -161
- package/src/session/session_manager.ts +0 -165
package/src/role.ts
CHANGED
|
@@ -48,6 +48,13 @@ export type TxDepositPubkey = { TxDeposit: { kind: DepositContract; pubkey: stri
|
|
|
48
48
|
*/
|
|
49
49
|
export type TxDepositRole = { TxDeposit: { kind: DepositContract; role_id: string } };
|
|
50
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Only allow connections from clients whose IP addresses match any of these IPv4 CIDR blocks.
|
|
53
|
+
*
|
|
54
|
+
* @example { SourceIpAllowlist: [ "123.456.78.9/16" ] }
|
|
55
|
+
*/
|
|
56
|
+
export type SourceIpAllowlist = { SourceIpAllowlist: string[] };
|
|
57
|
+
|
|
51
58
|
/** All different kinds of sensitive operations. */
|
|
52
59
|
export enum OperationKind {
|
|
53
60
|
BlobSign = "BlobSign", // eslint-disable-line no-unused-vars
|
|
@@ -100,6 +107,17 @@ export type RequireMfa = {
|
|
|
100
107
|
export const AllowRawBlobSigning = "AllowRawBlobSigning" as const;
|
|
101
108
|
export type AllowRawBlobSigning = typeof AllowRawBlobSigning;
|
|
102
109
|
|
|
110
|
+
/** Allow EIP-191 signing */
|
|
111
|
+
export const AllowEip191Signing = "AllowEip191Signing" as const;
|
|
112
|
+
export type AllowEip191Signing = typeof AllowEip191Signing;
|
|
113
|
+
|
|
114
|
+
/** Allow EIP-712 signing */
|
|
115
|
+
export const AllowEip712Signing = "AllowEip712Signing" as const;
|
|
116
|
+
export type AllowEip712Signing = typeof AllowEip712Signing;
|
|
117
|
+
|
|
118
|
+
/** Key policies that restrict the requests that the signing endpoints accept */
|
|
119
|
+
type KeyDenyPolicy = TxReceiver | TxDeposit | SourceIpAllowlist | RequireMfa;
|
|
120
|
+
|
|
103
121
|
/**
|
|
104
122
|
* Key policy
|
|
105
123
|
*
|
|
@@ -124,7 +142,15 @@ export type AllowRawBlobSigning = typeof AllowRawBlobSigning;
|
|
|
124
142
|
* }
|
|
125
143
|
* ]
|
|
126
144
|
*/
|
|
127
|
-
export type KeyPolicy = (
|
|
145
|
+
export type KeyPolicy = (
|
|
146
|
+
| KeyDenyPolicy
|
|
147
|
+
| AllowRawBlobSigning
|
|
148
|
+
| AllowEip191Signing
|
|
149
|
+
| AllowEip712Signing
|
|
150
|
+
)[];
|
|
151
|
+
|
|
152
|
+
/** Role policy */
|
|
153
|
+
export type RolePolicy = KeyDenyPolicy[];
|
|
128
154
|
|
|
129
155
|
/** A key guarded by a policy. */
|
|
130
156
|
export class KeyWithPolicies {
|
|
@@ -154,15 +180,30 @@ export class KeyWithPolicies {
|
|
|
154
180
|
/** Roles. */
|
|
155
181
|
export class Role {
|
|
156
182
|
readonly #csc: CubeSignerClient;
|
|
183
|
+
/** The role information */
|
|
184
|
+
#data: RoleInfo;
|
|
157
185
|
|
|
158
186
|
/** Human-readable name for the role */
|
|
159
|
-
|
|
187
|
+
get name(): string | undefined {
|
|
188
|
+
return this.#data.name ?? undefined;
|
|
189
|
+
}
|
|
160
190
|
|
|
161
191
|
/**
|
|
162
192
|
* The ID of the role.
|
|
163
193
|
* @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
|
|
164
194
|
*/
|
|
165
|
-
|
|
195
|
+
get id(): string {
|
|
196
|
+
return this.#data.role_id;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* @return {RoleInfo} the cached properties of this role. The cached properties
|
|
201
|
+
* reflect the state of the last fetch or update (e.g., after awaiting
|
|
202
|
+
* `Role.enabled()` or `Role.disable()`).
|
|
203
|
+
*/
|
|
204
|
+
get cached(): RoleInfo {
|
|
205
|
+
return this.#data;
|
|
206
|
+
}
|
|
166
207
|
|
|
167
208
|
/** Delete the role. */
|
|
168
209
|
async delete(): Promise<void> {
|
|
@@ -185,6 +226,35 @@ export class Role {
|
|
|
185
226
|
await this.update({ enabled: false });
|
|
186
227
|
}
|
|
187
228
|
|
|
229
|
+
/**
|
|
230
|
+
* Set new policy (overwriting any policies previously set for this role)
|
|
231
|
+
* @param {RolePolicy} policy The new policy to set
|
|
232
|
+
*/
|
|
233
|
+
async setPolicy(policy: RolePolicy) {
|
|
234
|
+
await this.update({ policy: policy as unknown as Record<string, never>[] });
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Append to existing role policy. This append is not atomic---it uses
|
|
239
|
+
* {@link policy} to fetch the current policy and then {@link setPolicy}
|
|
240
|
+
* to set the policy---and should not be used in across concurrent sessions.
|
|
241
|
+
*
|
|
242
|
+
* @param {RolePolicy} policy The policy to append to the existing one.
|
|
243
|
+
*/
|
|
244
|
+
async appendPolicy(policy: RolePolicy) {
|
|
245
|
+
const existing = await this.policy();
|
|
246
|
+
await this.setPolicy([...existing, ...policy]);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Get the policy for the role.
|
|
251
|
+
* @return {Promise<RolePolicy>} The policy for the role.
|
|
252
|
+
*/
|
|
253
|
+
async policy(): Promise<RolePolicy> {
|
|
254
|
+
const data = await this.fetch();
|
|
255
|
+
return (data.policy ?? []) as unknown as RolePolicy;
|
|
256
|
+
}
|
|
257
|
+
|
|
188
258
|
/**
|
|
189
259
|
* The list of all users with access to the role.
|
|
190
260
|
* @example [
|
|
@@ -301,8 +371,7 @@ export class Role {
|
|
|
301
371
|
*/
|
|
302
372
|
constructor(csc: CubeSignerClient, data: RoleInfo) {
|
|
303
373
|
this.#csc = csc;
|
|
304
|
-
this
|
|
305
|
-
this.name = data.name ?? undefined;
|
|
374
|
+
this.#data = data;
|
|
306
375
|
}
|
|
307
376
|
|
|
308
377
|
/**
|
|
@@ -312,7 +381,8 @@ export class Role {
|
|
|
312
381
|
* @return {Promise<RoleInfo>} The updated role information.
|
|
313
382
|
*/
|
|
314
383
|
private async update(request: UpdateRoleRequest): Promise<RoleInfo> {
|
|
315
|
-
|
|
384
|
+
this.#data = await this.#csc.roleUpdate(this.id, request);
|
|
385
|
+
return this.#data;
|
|
316
386
|
}
|
|
317
387
|
|
|
318
388
|
/**
|
|
@@ -322,6 +392,7 @@ export class Role {
|
|
|
322
392
|
* @internal
|
|
323
393
|
*/
|
|
324
394
|
private async fetch(): Promise<RoleInfo> {
|
|
325
|
-
|
|
395
|
+
this.#data = await this.#csc.roleGet(this.id);
|
|
396
|
+
return this.#data;
|
|
326
397
|
}
|
|
327
398
|
}
|