@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
|
@@ -0,0 +1,575 @@
|
|
|
1
|
+
import { SignerSessionManager, SignerSessionStorage } from "./session/signer_session_manager";
|
|
2
|
+
import { CubeSignerApi, OidcClient } from "./api";
|
|
3
|
+
import { KeyType, Key } from "./key";
|
|
4
|
+
import { OrgInfo, RatchetConfig } from "./schema_types";
|
|
5
|
+
import { MfaReceipt } from "./mfa";
|
|
6
|
+
import { PageOpts } from "./paginator";
|
|
7
|
+
import { Role } from "./role";
|
|
8
|
+
import { AddFidoChallenge, MfaFidoChallenge, TotpChallenge } from "./mfa";
|
|
9
|
+
/** Options for logging in with OIDC token */
|
|
10
|
+
export interface OidcAuthOptions {
|
|
11
|
+
/** Optional token lifetimes */
|
|
12
|
+
lifetimes?: RatchetConfig;
|
|
13
|
+
/** Optional MFA receipt */
|
|
14
|
+
mfaReceipt?: MfaReceipt;
|
|
15
|
+
/** Optional storage to use for the returned session (defaults to {@link MemorySessionStorage}) */
|
|
16
|
+
storage?: SignerSessionStorage;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Client to use to send requests to CubeSigner services
|
|
20
|
+
* when authenticating using a CubeSigner session token.
|
|
21
|
+
*/
|
|
22
|
+
export declare class CubeSignerClient extends CubeSignerApi {
|
|
23
|
+
/**
|
|
24
|
+
* Constructor.
|
|
25
|
+
* @param {SignerSessionManager} sessionMgr The session manager to use
|
|
26
|
+
* @param {string?} orgId Optional organization ID; if omitted, uses the org ID from the session manager.
|
|
27
|
+
*/
|
|
28
|
+
constructor(sessionMgr: SignerSessionManager, orgId?: string);
|
|
29
|
+
/**
|
|
30
|
+
* Returns a new instance of this class using the same session manager but targeting a different organization.
|
|
31
|
+
*
|
|
32
|
+
* @param {string} orgId The organization ID.
|
|
33
|
+
* @return {CubeSignerClient} A new instance of this class using the same session manager but targeting different organization.
|
|
34
|
+
*/
|
|
35
|
+
withOrg(orgId?: string): CubeSignerClient;
|
|
36
|
+
/**
|
|
37
|
+
* Loads an existing management session and creates a {@link CubeSignerClient} instance.
|
|
38
|
+
*
|
|
39
|
+
* @param {SignerSessionStorage} storage Storage from which to load the session
|
|
40
|
+
* @return {Promise<CubeSignerClient>} New CubeSigner instance
|
|
41
|
+
*/
|
|
42
|
+
static loadManagementSession(storage: SignerSessionStorage): Promise<CubeSignerClient>;
|
|
43
|
+
/**
|
|
44
|
+
* Create a new signing key.
|
|
45
|
+
* @param {KeyType} type The type of key to create.
|
|
46
|
+
* @param {string?} ownerId The owner of the key. Defaults to the session's user.
|
|
47
|
+
* @return {Key[]} The new keys.
|
|
48
|
+
*/
|
|
49
|
+
createKey(type: KeyType, ownerId?: string): Promise<Key>;
|
|
50
|
+
/**
|
|
51
|
+
* Create new signing keys.
|
|
52
|
+
* @param {KeyType} type The type of key to create.
|
|
53
|
+
* @param {number} count The number of keys to create.
|
|
54
|
+
* @param {string?} ownerId The owner of the keys. Defaults to the session's user.
|
|
55
|
+
* @return {Key[]} The new keys.
|
|
56
|
+
*/
|
|
57
|
+
createKeys(type: KeyType, count: number, ownerId?: string): Promise<Key[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Derive a key of the given type using the given derivation path and mnemonic.
|
|
60
|
+
* The owner of the derived key will be the owner of the mnemonic.
|
|
61
|
+
*
|
|
62
|
+
* @param {KeyType} type Type of key to derive from the mnemonic.
|
|
63
|
+
* @param {string} derivationPath Mnemonic derivation path used to generate new key.
|
|
64
|
+
* @param {string} mnemonicId materialId of mnemonic key used to derive the new key.
|
|
65
|
+
*
|
|
66
|
+
* @return {Key} newly derived key or undefined if it already exists.
|
|
67
|
+
*/
|
|
68
|
+
deriveKey(type: KeyType, derivationPath: string, mnemonicId: string): Promise<Key | undefined>;
|
|
69
|
+
/**
|
|
70
|
+
* Derive a set of keys of the given type using the given derivation paths and mnemonic.
|
|
71
|
+
*
|
|
72
|
+
* The owner of the derived keys will be the owner of the mnemonic.
|
|
73
|
+
*
|
|
74
|
+
* @param {KeyType} type Type of key to derive from the mnemonic.
|
|
75
|
+
* @param {string[]} derivationPaths Mnemonic derivation paths used to generate new key.
|
|
76
|
+
* @param {string} mnemonicId materialId of mnemonic key used to derive the new key.
|
|
77
|
+
*
|
|
78
|
+
* @return {Key[]} newly derived keys.
|
|
79
|
+
*/
|
|
80
|
+
deriveKeys(type: KeyType, derivationPaths: string[], mnemonicId: string): Promise<Key[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Create a new {@link OidcClient} that will use a given OIDC token for auth.
|
|
83
|
+
* @param {string} oidcToken The authentication token to use
|
|
84
|
+
* @return {OidcClient} New OIDC client.
|
|
85
|
+
*/
|
|
86
|
+
newOidcClient(oidcToken: string): OidcClient;
|
|
87
|
+
/**
|
|
88
|
+
* Authenticate an OIDC user and create a new session manager for them.
|
|
89
|
+
*
|
|
90
|
+
* @param {string} oidcToken The OIDC token
|
|
91
|
+
* @param {List<string>} scopes The scopes of the resulting session
|
|
92
|
+
* @param {OidcAuthOptions} options Options.
|
|
93
|
+
* @return {Promise<SignerSessionManager>} The signer session manager
|
|
94
|
+
*/
|
|
95
|
+
oidcAuth(oidcToken: string, scopes: Array<string>, options?: OidcAuthOptions): Promise<SignerSessionManager>;
|
|
96
|
+
/**
|
|
97
|
+
* Create a new user in the organization and sends an invitation to that user.
|
|
98
|
+
*
|
|
99
|
+
* Same as {@link orgUserInvite}.
|
|
100
|
+
*/
|
|
101
|
+
get createUser(): (email: string, name: string, role?: "Alien" | "Member" | "Owner" | undefined) => Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Create a new OIDC user.
|
|
104
|
+
*
|
|
105
|
+
* Same as {@link orgUserCreateOidc}.
|
|
106
|
+
*/
|
|
107
|
+
get createOidcUser(): (identity: {
|
|
108
|
+
iss: string;
|
|
109
|
+
sub: string;
|
|
110
|
+
}, email: string, opts?: import("./schema_types").CreateOidcUserOptions) => Promise<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Delete an existing OIDC user.
|
|
113
|
+
*
|
|
114
|
+
* Same as {@link orgUserDeleteOidc}.
|
|
115
|
+
*/
|
|
116
|
+
get deleteOidcUser(): (identity: {
|
|
117
|
+
iss: string;
|
|
118
|
+
sub: string;
|
|
119
|
+
}) => Promise<{
|
|
120
|
+
status: string;
|
|
121
|
+
}>;
|
|
122
|
+
/**
|
|
123
|
+
* List users in the organization.
|
|
124
|
+
*
|
|
125
|
+
* Same as {@link orgUsersList}
|
|
126
|
+
*/
|
|
127
|
+
get users(): () => Promise<{
|
|
128
|
+
email: string;
|
|
129
|
+
id: string;
|
|
130
|
+
}[]>;
|
|
131
|
+
/**
|
|
132
|
+
* Obtain information about the current user.
|
|
133
|
+
*
|
|
134
|
+
* Same as {@link userGet}
|
|
135
|
+
*/
|
|
136
|
+
get user(): () => Promise<{
|
|
137
|
+
email: string;
|
|
138
|
+
mfa: ({
|
|
139
|
+
type: "totp";
|
|
140
|
+
} | {
|
|
141
|
+
id: string;
|
|
142
|
+
name: string;
|
|
143
|
+
type: "fido";
|
|
144
|
+
})[];
|
|
145
|
+
mfa_policy?: unknown;
|
|
146
|
+
org_ids: string[];
|
|
147
|
+
user_id: string;
|
|
148
|
+
}>;
|
|
149
|
+
/**
|
|
150
|
+
* Get information about a specific org.
|
|
151
|
+
*
|
|
152
|
+
* @param {string?} orgId The ID or name of the org
|
|
153
|
+
* @return {Promise<OrgInfo>} CubeSigner client for the requested org.
|
|
154
|
+
*/
|
|
155
|
+
org(orgId?: string): Promise<OrgInfo>;
|
|
156
|
+
/**
|
|
157
|
+
* Obtain information about the current user.
|
|
158
|
+
*
|
|
159
|
+
* Same as {@link userGet}
|
|
160
|
+
*/
|
|
161
|
+
get aboutMe(): () => Promise<{
|
|
162
|
+
email: string;
|
|
163
|
+
mfa: ({
|
|
164
|
+
type: "totp";
|
|
165
|
+
} | {
|
|
166
|
+
id: string;
|
|
167
|
+
name: string;
|
|
168
|
+
type: "fido";
|
|
169
|
+
})[];
|
|
170
|
+
mfa_policy?: unknown;
|
|
171
|
+
org_ids: string[];
|
|
172
|
+
user_id: string;
|
|
173
|
+
}>;
|
|
174
|
+
/**
|
|
175
|
+
* Get a key by id.
|
|
176
|
+
*
|
|
177
|
+
* @param {string} keyId The id of the key to get.
|
|
178
|
+
* @return {Key} The key.
|
|
179
|
+
*/
|
|
180
|
+
getKey(keyId: string): Promise<Key>;
|
|
181
|
+
/**
|
|
182
|
+
* Get all keys in the org.
|
|
183
|
+
*
|
|
184
|
+
* @param {KeyType?} type Optional key type to filter list for.
|
|
185
|
+
* @param {PageOpts} page Pagination options. Defaults to fetching the entire result set.
|
|
186
|
+
* @return {Promise<Key[]>} The keys.
|
|
187
|
+
*/
|
|
188
|
+
orgKeys(type?: KeyType, page?: PageOpts): Promise<Key[]>;
|
|
189
|
+
/**
|
|
190
|
+
* Create a new role.
|
|
191
|
+
*
|
|
192
|
+
* @param {string?} name The name of the role.
|
|
193
|
+
* @return {Role} The new role.
|
|
194
|
+
*/
|
|
195
|
+
createRole(name?: string): Promise<Role>;
|
|
196
|
+
/**
|
|
197
|
+
* Get a role by id or name.
|
|
198
|
+
*
|
|
199
|
+
* @param {string} roleId The id or name of the role to get.
|
|
200
|
+
* @return {Role} The role.
|
|
201
|
+
*/
|
|
202
|
+
getRole(roleId: string): Promise<Role>;
|
|
203
|
+
/**
|
|
204
|
+
* List all roles in the org.
|
|
205
|
+
*
|
|
206
|
+
* @param {PageOpts} page Pagination options. Defaults to fetching the entire result set.
|
|
207
|
+
* @return {Role[]} The roles.
|
|
208
|
+
*/
|
|
209
|
+
listRoles(page?: PageOpts): Promise<Role[]>;
|
|
210
|
+
/**
|
|
211
|
+
* List all users in the org.
|
|
212
|
+
*
|
|
213
|
+
* Same as {@link orgUsersList}
|
|
214
|
+
*/
|
|
215
|
+
get listUsers(): () => Promise<{
|
|
216
|
+
email: string;
|
|
217
|
+
id: string;
|
|
218
|
+
}[]>;
|
|
219
|
+
/**
|
|
220
|
+
* Approve a pending MFA request.
|
|
221
|
+
*
|
|
222
|
+
* Same as {@link mfaApprove}
|
|
223
|
+
*/
|
|
224
|
+
get approveMfaRequest(): (mfaId: string) => Promise<{
|
|
225
|
+
expires_at: number;
|
|
226
|
+
id: string;
|
|
227
|
+
receipt?: {
|
|
228
|
+
confirmation: string;
|
|
229
|
+
final_approver: string;
|
|
230
|
+
timestamp: number;
|
|
231
|
+
} | null | undefined;
|
|
232
|
+
request: {
|
|
233
|
+
body?: unknown;
|
|
234
|
+
method: string;
|
|
235
|
+
path: string;
|
|
236
|
+
};
|
|
237
|
+
status: {
|
|
238
|
+
allowed_approvers: string[];
|
|
239
|
+
allowed_mfa_types?: ({
|
|
240
|
+
FidoKey: {
|
|
241
|
+
key_id: string;
|
|
242
|
+
};
|
|
243
|
+
} | "CubeSigner" | "Totp" | "Fido")[] | null | undefined;
|
|
244
|
+
approved_by: {
|
|
245
|
+
[key: string]: {
|
|
246
|
+
[key: string]: {
|
|
247
|
+
timestamp: number;
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
count: number;
|
|
252
|
+
num_auth_factors: number;
|
|
253
|
+
};
|
|
254
|
+
}>;
|
|
255
|
+
/**
|
|
256
|
+
* Approve a pending MFA request using TOTP.
|
|
257
|
+
*
|
|
258
|
+
* Same as {@link mfaApproveTotp}
|
|
259
|
+
*/
|
|
260
|
+
get totpApprove(): (mfaId: string, code: string) => Promise<{
|
|
261
|
+
expires_at: number;
|
|
262
|
+
id: string;
|
|
263
|
+
receipt?: {
|
|
264
|
+
confirmation: string;
|
|
265
|
+
final_approver: string;
|
|
266
|
+
timestamp: number;
|
|
267
|
+
} | null | undefined;
|
|
268
|
+
request: {
|
|
269
|
+
body?: unknown;
|
|
270
|
+
method: string;
|
|
271
|
+
path: string;
|
|
272
|
+
};
|
|
273
|
+
status: {
|
|
274
|
+
allowed_approvers: string[];
|
|
275
|
+
allowed_mfa_types?: ({
|
|
276
|
+
FidoKey: {
|
|
277
|
+
key_id: string;
|
|
278
|
+
};
|
|
279
|
+
} | "CubeSigner" | "Totp" | "Fido")[] | null | undefined;
|
|
280
|
+
approved_by: {
|
|
281
|
+
[key: string]: {
|
|
282
|
+
[key: string]: {
|
|
283
|
+
timestamp: number;
|
|
284
|
+
};
|
|
285
|
+
};
|
|
286
|
+
};
|
|
287
|
+
count: number;
|
|
288
|
+
num_auth_factors: number;
|
|
289
|
+
};
|
|
290
|
+
}>;
|
|
291
|
+
/**
|
|
292
|
+
* Initiate approval of an existing MFA request using FIDO.
|
|
293
|
+
*
|
|
294
|
+
* Returns a {@link MfaFidoChallenge} that must be answered by calling
|
|
295
|
+
* {@link MfaFidoChallenge.answer} or {@link fidoApproveComplete}.
|
|
296
|
+
*
|
|
297
|
+
* Same as {@link mfaApproveFidoInit}
|
|
298
|
+
*/
|
|
299
|
+
get fidoApproveStart(): (mfaId: string) => Promise<MfaFidoChallenge>;
|
|
300
|
+
/**
|
|
301
|
+
* Answer the MFA approval with FIDO challenge issued by {@link fidoApproveStart}.
|
|
302
|
+
*
|
|
303
|
+
* Same as {@link mfaApproveFidoComplete}
|
|
304
|
+
*/
|
|
305
|
+
get fidoApproveComplete(): (mfaId: string, challengeId: string, credential: {
|
|
306
|
+
clientExtensionResults?: unknown;
|
|
307
|
+
id: string;
|
|
308
|
+
response: {
|
|
309
|
+
authenticatorData: string;
|
|
310
|
+
clientDataJSON: string;
|
|
311
|
+
signature: string;
|
|
312
|
+
userHandle?: string | null | undefined;
|
|
313
|
+
} | {
|
|
314
|
+
attestationObject: string;
|
|
315
|
+
clientDataJSON: string;
|
|
316
|
+
};
|
|
317
|
+
}) => Promise<{
|
|
318
|
+
expires_at: number;
|
|
319
|
+
id: string;
|
|
320
|
+
receipt?: {
|
|
321
|
+
confirmation: string;
|
|
322
|
+
final_approver: string;
|
|
323
|
+
timestamp: number;
|
|
324
|
+
} | null | undefined;
|
|
325
|
+
request: {
|
|
326
|
+
body?: unknown;
|
|
327
|
+
method: string;
|
|
328
|
+
path: string;
|
|
329
|
+
};
|
|
330
|
+
status: {
|
|
331
|
+
allowed_approvers: string[];
|
|
332
|
+
allowed_mfa_types?: ({
|
|
333
|
+
FidoKey: {
|
|
334
|
+
key_id: string;
|
|
335
|
+
};
|
|
336
|
+
} | "CubeSigner" | "Totp" | "Fido")[] | null | undefined;
|
|
337
|
+
approved_by: {
|
|
338
|
+
[key: string]: {
|
|
339
|
+
[key: string]: {
|
|
340
|
+
timestamp: number;
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
count: number;
|
|
345
|
+
num_auth_factors: number;
|
|
346
|
+
};
|
|
347
|
+
}>;
|
|
348
|
+
/**
|
|
349
|
+
* Get a pending MFA request by its id.
|
|
350
|
+
*
|
|
351
|
+
* Same as {@link mfaGet}
|
|
352
|
+
*/
|
|
353
|
+
get getMfaInfo(): (mfaId: string) => Promise<{
|
|
354
|
+
expires_at: number;
|
|
355
|
+
id: string;
|
|
356
|
+
receipt?: {
|
|
357
|
+
confirmation: string;
|
|
358
|
+
final_approver: string;
|
|
359
|
+
timestamp: number;
|
|
360
|
+
} | null | undefined;
|
|
361
|
+
request: {
|
|
362
|
+
body?: unknown;
|
|
363
|
+
method: string;
|
|
364
|
+
path: string;
|
|
365
|
+
};
|
|
366
|
+
status: {
|
|
367
|
+
allowed_approvers: string[];
|
|
368
|
+
allowed_mfa_types?: ({
|
|
369
|
+
FidoKey: {
|
|
370
|
+
key_id: string;
|
|
371
|
+
};
|
|
372
|
+
} | "CubeSigner" | "Totp" | "Fido")[] | null | undefined;
|
|
373
|
+
approved_by: {
|
|
374
|
+
[key: string]: {
|
|
375
|
+
[key: string]: {
|
|
376
|
+
timestamp: number;
|
|
377
|
+
};
|
|
378
|
+
};
|
|
379
|
+
};
|
|
380
|
+
count: number;
|
|
381
|
+
num_auth_factors: number;
|
|
382
|
+
};
|
|
383
|
+
}>;
|
|
384
|
+
/**
|
|
385
|
+
* List pending MFA requests accessible to the current user.
|
|
386
|
+
*
|
|
387
|
+
* Same as {@link mfaList}
|
|
388
|
+
*/
|
|
389
|
+
get listMfaInfos(): () => Promise<{
|
|
390
|
+
expires_at: number;
|
|
391
|
+
id: string;
|
|
392
|
+
receipt?: {
|
|
393
|
+
confirmation: string;
|
|
394
|
+
final_approver: string;
|
|
395
|
+
timestamp: number;
|
|
396
|
+
} | null | undefined;
|
|
397
|
+
request: {
|
|
398
|
+
body?: unknown;
|
|
399
|
+
method: string;
|
|
400
|
+
path: string;
|
|
401
|
+
};
|
|
402
|
+
status: {
|
|
403
|
+
allowed_approvers: string[];
|
|
404
|
+
allowed_mfa_types?: ({
|
|
405
|
+
FidoKey: {
|
|
406
|
+
key_id: string;
|
|
407
|
+
};
|
|
408
|
+
} | "CubeSigner" | "Totp" | "Fido")[] | null | undefined;
|
|
409
|
+
approved_by: {
|
|
410
|
+
[key: string]: {
|
|
411
|
+
[key: string]: {
|
|
412
|
+
timestamp: number;
|
|
413
|
+
};
|
|
414
|
+
};
|
|
415
|
+
};
|
|
416
|
+
count: number;
|
|
417
|
+
num_auth_factors: number;
|
|
418
|
+
};
|
|
419
|
+
}[]>;
|
|
420
|
+
/**
|
|
421
|
+
* Obtain a proof of authentication.
|
|
422
|
+
*
|
|
423
|
+
* Same as {@link identityProve}
|
|
424
|
+
*/
|
|
425
|
+
get proveIdentity(): () => Promise<{
|
|
426
|
+
aud?: string | null | undefined;
|
|
427
|
+
email: string;
|
|
428
|
+
exp_epoch: number;
|
|
429
|
+
identity?: {
|
|
430
|
+
iss: string;
|
|
431
|
+
sub: string;
|
|
432
|
+
} | null | undefined;
|
|
433
|
+
user_info?: {
|
|
434
|
+
configured_mfa: ({
|
|
435
|
+
type: "totp";
|
|
436
|
+
} | {
|
|
437
|
+
id: string;
|
|
438
|
+
name: string;
|
|
439
|
+
type: "fido";
|
|
440
|
+
})[];
|
|
441
|
+
initialized: boolean;
|
|
442
|
+
user_id: string;
|
|
443
|
+
} | null | undefined;
|
|
444
|
+
} & {
|
|
445
|
+
id: string;
|
|
446
|
+
}>;
|
|
447
|
+
/**
|
|
448
|
+
* Check if a given proof of OIDC authentication is valid.
|
|
449
|
+
*
|
|
450
|
+
* Same as {@link identityVerify}
|
|
451
|
+
*/
|
|
452
|
+
get verifyIdentity(): (proof: {
|
|
453
|
+
aud?: string | null | undefined;
|
|
454
|
+
email: string;
|
|
455
|
+
exp_epoch: number;
|
|
456
|
+
identity?: {
|
|
457
|
+
iss: string;
|
|
458
|
+
sub: string;
|
|
459
|
+
} | null | undefined;
|
|
460
|
+
user_info?: {
|
|
461
|
+
configured_mfa: ({
|
|
462
|
+
type: "totp";
|
|
463
|
+
} | {
|
|
464
|
+
id: string;
|
|
465
|
+
name: string;
|
|
466
|
+
type: "fido";
|
|
467
|
+
})[];
|
|
468
|
+
initialized: boolean;
|
|
469
|
+
user_id: string;
|
|
470
|
+
} | null | undefined;
|
|
471
|
+
} & {
|
|
472
|
+
id: string;
|
|
473
|
+
}) => Promise<void>;
|
|
474
|
+
/**
|
|
475
|
+
* Creates a request to add a new FIDO device.
|
|
476
|
+
*
|
|
477
|
+
* Returns a {@link AddFidoChallenge} that must be answered by calling {@link AddFidoChallenge.answer}.
|
|
478
|
+
*
|
|
479
|
+
* MFA may be required.
|
|
480
|
+
*
|
|
481
|
+
* Same as {@link userFidoRegisterInit}
|
|
482
|
+
*/
|
|
483
|
+
get addFidoStart(): (name: string, mfaReceipt?: MfaReceipt | undefined) => Promise<import("./response").CubeSignerResponse<AddFidoChallenge>>;
|
|
484
|
+
/**
|
|
485
|
+
* Delete a FIDO key from the user's account.
|
|
486
|
+
* Allowed only if TOTP is also defined.
|
|
487
|
+
* MFA via TOTP is always required.
|
|
488
|
+
*
|
|
489
|
+
* Same as {@link userFidoDelete}
|
|
490
|
+
*/
|
|
491
|
+
get deleteFido(): (fidoId: string, mfaReceipt?: MfaReceipt | undefined) => Promise<import("./response").CubeSignerResponse<{
|
|
492
|
+
status: string;
|
|
493
|
+
}>>;
|
|
494
|
+
/**
|
|
495
|
+
* Creates a request to change user's TOTP. Returns a {@link TotpChallenge}
|
|
496
|
+
* that must be answered by calling {@link TotpChallenge.answer} or
|
|
497
|
+
* {@link resetTotpComplete}.
|
|
498
|
+
*
|
|
499
|
+
* Same as {@link userTotpResetInit}
|
|
500
|
+
*/
|
|
501
|
+
get resetTotpStart(): (issuer?: string | undefined, mfaReceipt?: MfaReceipt | undefined) => Promise<import("./response").CubeSignerResponse<TotpChallenge>>;
|
|
502
|
+
/**
|
|
503
|
+
* Answer the TOTP challenge issued by {@link resetTotpStart}. If successful,
|
|
504
|
+
* user's TOTP configuration will be updated to that of the TOTP challenge.
|
|
505
|
+
*
|
|
506
|
+
* Same as {@link userTotpResetComplete}
|
|
507
|
+
*/
|
|
508
|
+
get resetTotpComplete(): (totpId: string, code: string) => Promise<void>;
|
|
509
|
+
/**
|
|
510
|
+
* Verifies a given TOTP code against the current user's TOTP configuration.
|
|
511
|
+
* Throws an error if the verification fails.
|
|
512
|
+
*
|
|
513
|
+
* Same as {@link userTotpVerify}
|
|
514
|
+
*/
|
|
515
|
+
get verifyTotp(): (code: string) => Promise<void>;
|
|
516
|
+
/**
|
|
517
|
+
* Delete TOTP from the user's account.
|
|
518
|
+
* Allowed only if at least one FIDO key is registered with the user's account.
|
|
519
|
+
* MFA via FIDO is always required.
|
|
520
|
+
*
|
|
521
|
+
* Same as {@link userTotpDelete}.
|
|
522
|
+
*/
|
|
523
|
+
get deleteTotp(): (mfaReceipt?: MfaReceipt | undefined) => Promise<import("./response").CubeSignerResponse<{
|
|
524
|
+
status: string;
|
|
525
|
+
}>>;
|
|
526
|
+
/**
|
|
527
|
+
* Sign a stake request.
|
|
528
|
+
*
|
|
529
|
+
* Same as {@link signStake}
|
|
530
|
+
*/
|
|
531
|
+
get stake(): (req: {
|
|
532
|
+
chain_id: number;
|
|
533
|
+
deposit_type: "Canonical" | "Wrapper";
|
|
534
|
+
staking_amount_gwei?: number | undefined;
|
|
535
|
+
unsafe_conf?: {
|
|
536
|
+
deposit_contract_addr?: string | null | undefined;
|
|
537
|
+
genesis_fork_version?: string | null | undefined;
|
|
538
|
+
} | null | undefined;
|
|
539
|
+
validator_key?: string | null | undefined;
|
|
540
|
+
withdrawal_addr: string;
|
|
541
|
+
}, mfaReceipt?: MfaReceipt | undefined) => Promise<import("./response").CubeSignerResponse<{
|
|
542
|
+
created_validator_key_id: string;
|
|
543
|
+
deposit_tx: {
|
|
544
|
+
chain_id: number;
|
|
545
|
+
deposit_txn: Record<string, never>;
|
|
546
|
+
new_validator_pk: string;
|
|
547
|
+
};
|
|
548
|
+
}>>;
|
|
549
|
+
/**
|
|
550
|
+
* Sign an unstake request.
|
|
551
|
+
*
|
|
552
|
+
* Same as {@link signUnstake}
|
|
553
|
+
*/
|
|
554
|
+
get unstake(): (key: string | Key, req: {
|
|
555
|
+
epoch?: string | null | undefined;
|
|
556
|
+
fork: {
|
|
557
|
+
current_version: string;
|
|
558
|
+
epoch: string;
|
|
559
|
+
previous_version: string;
|
|
560
|
+
};
|
|
561
|
+
genesis_data: {
|
|
562
|
+
genesis_fork_version: string;
|
|
563
|
+
genesis_time: string;
|
|
564
|
+
genesis_validators_root: string;
|
|
565
|
+
};
|
|
566
|
+
network: "mainnet" | "prater" | "goerli" | "holesky";
|
|
567
|
+
validator_index: string;
|
|
568
|
+
}, mfaReceipt?: MfaReceipt | undefined) => Promise<import("./response").CubeSignerResponse<{
|
|
569
|
+
message: {
|
|
570
|
+
epoch: string;
|
|
571
|
+
validator_index: string;
|
|
572
|
+
};
|
|
573
|
+
signature: string;
|
|
574
|
+
}>>;
|
|
575
|
+
}
|