@cubist-labs/cubesigner-sdk 0.4.227 → 0.4.229
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/dist/package.json +1 -1
- package/dist/src/client/api_client.d.ts +33 -5
- package/dist/src/client/api_client.d.ts.map +1 -1
- package/dist/src/client/api_client.js +76 -9
- package/dist/src/key.d.ts +5 -3
- package/dist/src/key.d.ts.map +1 -1
- package/dist/src/key.js +6 -4
- package/dist/src/role.d.ts +11 -1
- package/dist/src/role.d.ts.map +1 -1
- package/dist/src/role.js +12 -1
- package/dist/src/schema.d.ts +101 -4
- package/dist/src/schema.d.ts.map +1 -1
- package/dist/src/schema.js +1 -1
- package/dist/src/schema_types.d.ts +7 -1
- package/dist/src/schema_types.d.ts.map +1 -1
- package/dist/src/schema_types.js +1 -1
- package/dist/src/scopes.d.ts.map +1 -1
- package/dist/src/scopes.js +2 -1
- package/package.json +1 -1
- package/src/client/api_client.ts +155 -76
- package/src/key.ts +10 -3
- package/src/role.ts +17 -0
- package/src/schema.ts +101 -2
- package/src/schema_types.ts +9 -1
- package/src/scopes.ts +1 -0
package/src/client/api_client.ts
CHANGED
|
@@ -63,6 +63,10 @@ import type {
|
|
|
63
63
|
AuditLogRequest,
|
|
64
64
|
AuditLogResponse,
|
|
65
65
|
AuditLogEntry,
|
|
66
|
+
RoleInfoJwt,
|
|
67
|
+
KeyAttestationQuery,
|
|
68
|
+
RoleAttestationQuery,
|
|
69
|
+
ErrorResponse,
|
|
66
70
|
} from "../schema_types";
|
|
67
71
|
import { encodeToBase64 } from "../util";
|
|
68
72
|
import {
|
|
@@ -79,80 +83,85 @@ import { Page, Paginator } from "../paginator";
|
|
|
79
83
|
import type { KeyPolicy } from "../role";
|
|
80
84
|
import { loadSubtleCrypto } from "../user_export";
|
|
81
85
|
import type * as policy from "../policy";
|
|
82
|
-
import
|
|
83
|
-
AddIdentityRequest,
|
|
84
|
-
AvaChain,
|
|
85
|
-
EnvInterface,
|
|
86
|
-
EotsCreateNonceRequest,
|
|
87
|
-
EotsCreateNonceResponse,
|
|
88
|
-
EotsSignRequest,
|
|
89
|
-
EotsSignResponse,
|
|
90
|
-
JrpcResponse,
|
|
91
|
-
JsonArray,
|
|
92
|
-
ListIdentityResponse,
|
|
93
|
-
ListKeyRolesResponse,
|
|
94
|
-
ListKeysResponse,
|
|
95
|
-
ListRoleKeysResponse,
|
|
96
|
-
ListRoleUsersResponse,
|
|
97
|
-
ListRolesResponse,
|
|
98
|
-
MmiJrpcMethod,
|
|
99
|
-
PendingMessageInfo,
|
|
100
|
-
PendingMessageSignResponse,
|
|
101
|
-
RatchetConfig,
|
|
102
|
-
Scope,
|
|
103
|
-
SessionData,
|
|
104
|
-
SessionLifetime,
|
|
105
|
-
SessionsResponse,
|
|
106
|
-
TaprootSignRequest,
|
|
107
|
-
TaprootSignResponse,
|
|
108
|
-
BabylonRegistrationRequest,
|
|
109
|
-
BabylonRegistrationResponse,
|
|
110
|
-
BabylonStakingRequest,
|
|
111
|
-
BabylonStakingResponse,
|
|
112
|
-
UpdateUserMembershipRequest,
|
|
113
|
-
HistoricalTx,
|
|
114
|
-
ListHistoricalTxResponse,
|
|
115
|
-
PublicOrgInfo,
|
|
116
|
-
ImportDeriveKeyProperties,
|
|
117
|
-
PasswordResetRequest,
|
|
118
|
-
EmailOtpResponse,
|
|
119
|
-
AuthenticationRequest,
|
|
120
|
-
AuthenticationResponse,
|
|
121
|
-
CreateKeyProperties,
|
|
122
|
-
InvitationAcceptRequest,
|
|
123
|
-
MfaReceipts,
|
|
124
|
-
SuiSignRequest,
|
|
125
|
-
SuiSignResponse,
|
|
126
|
-
QueryMetricsRequest,
|
|
127
|
-
QueryMetricsResponse,
|
|
128
|
-
CreateOrgRequest,
|
|
129
|
-
KeyTypeAndDerivationPath,
|
|
130
|
-
DeriveMultipleKeyTypesProperties,
|
|
131
|
-
ContactInfo,
|
|
132
|
-
ListContactsResponse,
|
|
133
|
-
JsonValue,
|
|
134
|
-
EditPolicy,
|
|
135
|
-
UpdateContactRequest,
|
|
136
|
-
AddressMap,
|
|
137
|
-
RolePolicy,
|
|
138
|
-
InvokePolicyResponse,
|
|
139
|
-
InvokePolicyRequest,
|
|
140
|
-
UploadWasmPolicyRequest,
|
|
141
|
-
UploadWasmPolicyResponse,
|
|
142
|
-
LoginRequest,
|
|
143
|
-
PasskeyAssertAnswer,
|
|
144
|
-
schemas,
|
|
145
|
-
KeyWithPoliciesInfo,
|
|
146
|
-
GetRoleKeyOptions,
|
|
147
|
-
GetUserByEmailResponse,
|
|
148
|
-
GetUserByOidcResponse,
|
|
149
|
-
EmailTemplatePurpose,
|
|
86
|
+
import {
|
|
87
|
+
type AddIdentityRequest,
|
|
88
|
+
type AvaChain,
|
|
89
|
+
type EnvInterface,
|
|
90
|
+
type EotsCreateNonceRequest,
|
|
91
|
+
type EotsCreateNonceResponse,
|
|
92
|
+
type EotsSignRequest,
|
|
93
|
+
type EotsSignResponse,
|
|
94
|
+
type JrpcResponse,
|
|
95
|
+
type JsonArray,
|
|
96
|
+
type ListIdentityResponse,
|
|
97
|
+
type ListKeyRolesResponse,
|
|
98
|
+
type ListKeysResponse,
|
|
99
|
+
type ListRoleKeysResponse,
|
|
100
|
+
type ListRoleUsersResponse,
|
|
101
|
+
type ListRolesResponse,
|
|
102
|
+
type MmiJrpcMethod,
|
|
103
|
+
type PendingMessageInfo,
|
|
104
|
+
type PendingMessageSignResponse,
|
|
105
|
+
type RatchetConfig,
|
|
106
|
+
type Scope,
|
|
107
|
+
type SessionData,
|
|
108
|
+
type SessionLifetime,
|
|
109
|
+
type SessionsResponse,
|
|
110
|
+
type TaprootSignRequest,
|
|
111
|
+
type TaprootSignResponse,
|
|
112
|
+
type BabylonRegistrationRequest,
|
|
113
|
+
type BabylonRegistrationResponse,
|
|
114
|
+
type BabylonStakingRequest,
|
|
115
|
+
type BabylonStakingResponse,
|
|
116
|
+
type UpdateUserMembershipRequest,
|
|
117
|
+
type HistoricalTx,
|
|
118
|
+
type ListHistoricalTxResponse,
|
|
119
|
+
type PublicOrgInfo,
|
|
120
|
+
type ImportDeriveKeyProperties,
|
|
121
|
+
type PasswordResetRequest,
|
|
122
|
+
type EmailOtpResponse,
|
|
123
|
+
type AuthenticationRequest,
|
|
124
|
+
type AuthenticationResponse,
|
|
125
|
+
type CreateKeyProperties,
|
|
126
|
+
type InvitationAcceptRequest,
|
|
127
|
+
type MfaReceipts,
|
|
128
|
+
type SuiSignRequest,
|
|
129
|
+
type SuiSignResponse,
|
|
130
|
+
type QueryMetricsRequest,
|
|
131
|
+
type QueryMetricsResponse,
|
|
132
|
+
type CreateOrgRequest,
|
|
133
|
+
type KeyTypeAndDerivationPath,
|
|
134
|
+
type DeriveMultipleKeyTypesProperties,
|
|
135
|
+
type ContactInfo,
|
|
136
|
+
type ListContactsResponse,
|
|
137
|
+
type JsonValue,
|
|
138
|
+
type EditPolicy,
|
|
139
|
+
type UpdateContactRequest,
|
|
140
|
+
type AddressMap,
|
|
141
|
+
type RolePolicy,
|
|
142
|
+
type InvokePolicyResponse,
|
|
143
|
+
type InvokePolicyRequest,
|
|
144
|
+
type UploadWasmPolicyRequest,
|
|
145
|
+
type UploadWasmPolicyResponse,
|
|
146
|
+
type LoginRequest,
|
|
147
|
+
type PasskeyAssertAnswer,
|
|
148
|
+
type schemas,
|
|
149
|
+
type KeyWithPoliciesInfo,
|
|
150
|
+
type GetRoleKeyOptions,
|
|
151
|
+
type GetUserByEmailResponse,
|
|
152
|
+
type GetUserByOidcResponse,
|
|
153
|
+
type EmailTemplatePurpose,
|
|
154
|
+
ErrResponse,
|
|
150
155
|
} from "../index";
|
|
151
156
|
import { assertOk, op, type Op, type Operation, apiFetch } from "../fetch";
|
|
152
157
|
import { BaseClient, type ClientConfig, signerSessionFromSessionInfo } from "./base_client";
|
|
153
158
|
import { retryOn5XX } from "../retry";
|
|
154
159
|
import { PasskeyLoginChallenge } from "../passkey";
|
|
155
160
|
|
|
161
|
+
// these types are used in doc comments only
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
163
|
+
import type { RoleAttestationClaims, KeyAttestationClaims } from "../schema_types";
|
|
164
|
+
|
|
156
165
|
/**
|
|
157
166
|
* String returned by API when a user does not have an email address (for backwards compatibility)
|
|
158
167
|
*/
|
|
@@ -817,12 +826,17 @@ export class ApiClient extends BaseClient {
|
|
|
817
826
|
* The response is a JWT whose claims are the properties of the requested key.
|
|
818
827
|
*
|
|
819
828
|
* @param keyId The id of the key.
|
|
820
|
-
* @
|
|
829
|
+
* @param query Query parameters:
|
|
830
|
+
* @param query.include_roles if specified, include all the roles the key is in.
|
|
831
|
+
* @returns A JWT whose claims are the properties of the key. The type of the returned JWT payload is {@link KeyAttestationClaims}.
|
|
821
832
|
*/
|
|
822
|
-
async keyAttest(keyId: string): Promise<KeyInfoJwt> {
|
|
833
|
+
async keyAttest(keyId: string, query?: KeyAttestationQuery): Promise<KeyInfoJwt> {
|
|
823
834
|
const o = op("/v0/org/{org_id}/keys/{key_id}/attest", "get");
|
|
824
835
|
return this.exec(o, {
|
|
825
|
-
params: {
|
|
836
|
+
params: {
|
|
837
|
+
path: { key_id: keyId },
|
|
838
|
+
query,
|
|
839
|
+
},
|
|
826
840
|
});
|
|
827
841
|
}
|
|
828
842
|
|
|
@@ -1184,7 +1198,7 @@ export class ApiClient extends BaseClient {
|
|
|
1184
1198
|
|
|
1185
1199
|
// #endregion
|
|
1186
1200
|
|
|
1187
|
-
// #region ROLES: roleCreate, roleRead, roleUpdate, roleDelete, rolesList
|
|
1201
|
+
// #region ROLES: roleCreate, roleGet, roleAttest, roleRead, roleUpdate, roleDelete, rolesList
|
|
1188
1202
|
|
|
1189
1203
|
/**
|
|
1190
1204
|
* Create a new role.
|
|
@@ -1216,6 +1230,27 @@ export class ApiClient extends BaseClient {
|
|
|
1216
1230
|
});
|
|
1217
1231
|
}
|
|
1218
1232
|
|
|
1233
|
+
/**
|
|
1234
|
+
* Attest to role properties.
|
|
1235
|
+
*
|
|
1236
|
+
* The response is a JWT whose claims are the properties of the requested role.
|
|
1237
|
+
*
|
|
1238
|
+
* @param roleId The id of the role.
|
|
1239
|
+
* @param query Query parameters:
|
|
1240
|
+
* @param query.verbosity Role properties to include in an attestation. Defaults to basic role properties, including associated users, but excluding associated keys.
|
|
1241
|
+
* @param query.key_filter Filter down to a single associated key. Defaults to including all associated keys.
|
|
1242
|
+
* @returns A JWT whose claims are the role properties. The type of the returned JWT payload is {@link RoleAttestationClaims}.
|
|
1243
|
+
*/
|
|
1244
|
+
async roleAttest(roleId: string, query?: RoleAttestationQuery): Promise<RoleInfoJwt> {
|
|
1245
|
+
const o = op("/v0/org/{org_id}/roles/{role_id}/attest", "get");
|
|
1246
|
+
return this.exec(o, {
|
|
1247
|
+
params: {
|
|
1248
|
+
path: { role_id: roleId },
|
|
1249
|
+
query,
|
|
1250
|
+
},
|
|
1251
|
+
});
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1219
1254
|
/**
|
|
1220
1255
|
* Update a role.
|
|
1221
1256
|
*
|
|
@@ -2680,9 +2715,35 @@ export class ApiClient extends BaseClient {
|
|
|
2680
2715
|
method: method,
|
|
2681
2716
|
params: params,
|
|
2682
2717
|
};
|
|
2683
|
-
const func = async (headers?: HeadersInit) =>
|
|
2684
|
-
|
|
2685
|
-
|
|
2718
|
+
const func = async (headers?: HeadersInit) => {
|
|
2719
|
+
const resp = await this.exec(o, { headers, body });
|
|
2720
|
+
if (resp.error) {
|
|
2721
|
+
const data = resp.error.data as ErrorResponse | undefined;
|
|
2722
|
+
throw new ErrResponse({
|
|
2723
|
+
message: resp.error.message,
|
|
2724
|
+
errorCode: data?.error_code,
|
|
2725
|
+
requestId: data?.request_id,
|
|
2726
|
+
});
|
|
2727
|
+
}
|
|
2728
|
+
return resp;
|
|
2729
|
+
};
|
|
2730
|
+
const resp = await CubeSignerResponse.create(this.env, func);
|
|
2731
|
+
return resp.data();
|
|
2732
|
+
}
|
|
2733
|
+
|
|
2734
|
+
/**
|
|
2735
|
+
* Retrieve a proof of this session's CubeSigner identity.
|
|
2736
|
+
*
|
|
2737
|
+
* @returns a JWT that can be validated against the JWKS from {@link customerProofJwksUrl}.
|
|
2738
|
+
*/
|
|
2739
|
+
async getCustomerProof(): Promise<string> {
|
|
2740
|
+
const resp = await this.mmi("custodian_getCustomerProof", []);
|
|
2741
|
+
const jwt = resp.result?.jwt;
|
|
2742
|
+
if (!jwt || typeof jwt !== "string") {
|
|
2743
|
+
console.warn("Unexpected getCustomerProof response", resp);
|
|
2744
|
+
throw new Error("The type JWT included in the customer proof response is not string");
|
|
2745
|
+
}
|
|
2746
|
+
return jwt;
|
|
2686
2747
|
}
|
|
2687
2748
|
|
|
2688
2749
|
/**
|
|
@@ -2728,6 +2789,24 @@ export class ApiClient extends BaseClient {
|
|
|
2728
2789
|
return await this.exec(o, { params: { path: { msg_id: msgId } } });
|
|
2729
2790
|
}
|
|
2730
2791
|
|
|
2792
|
+
/**
|
|
2793
|
+
* @returns JSON Web Key Set (JWKS) URL with the keys used for key/role attestations (see {@link keyAttest} and {@link roleAttest}).
|
|
2794
|
+
*/
|
|
2795
|
+
attestationJwksUrl(): URL {
|
|
2796
|
+
const url = "/v0/attestation/.well-known/jwks.json";
|
|
2797
|
+
op(url, "get"); // just to type check the url above
|
|
2798
|
+
return new URL(`${this.env.SignerApiRoot.replace(/\/$/, "")}${url}`);
|
|
2799
|
+
}
|
|
2800
|
+
|
|
2801
|
+
/**
|
|
2802
|
+
* @returns JSON Web Key Set (JWKS) URL with the keys used for validating JWTs returned by the {@link customerProof} method.
|
|
2803
|
+
*/
|
|
2804
|
+
customerProofJwksUrl(): URL {
|
|
2805
|
+
const url = "/v0/mmi/v3/.well-known/jwks.json";
|
|
2806
|
+
op(url, "get"); // just to type check the url above
|
|
2807
|
+
return new URL(`${this.env.SignerApiRoot.replace(/\/$/, "")}${url}`);
|
|
2808
|
+
}
|
|
2809
|
+
|
|
2731
2810
|
// #endregion
|
|
2732
2811
|
|
|
2733
2812
|
/**
|
|
@@ -2748,7 +2827,7 @@ export class ApiClient extends BaseClient {
|
|
|
2748
2827
|
}
|
|
2749
2828
|
|
|
2750
2829
|
/**
|
|
2751
|
-
* Returns a JSON Web Key Set (JWKS) with the keys used for key attestations (see {@link keyAttest}).
|
|
2830
|
+
* Returns a JSON Web Key Set (JWKS) with the keys used for key attestations (see {@link keyAttest} and {@link roleAttest}).
|
|
2752
2831
|
*
|
|
2753
2832
|
* @param env The CubeSigner environment
|
|
2754
2833
|
* @returns A JWKS with they keys used for key attestation.
|
package/src/key.ts
CHANGED
|
@@ -28,6 +28,7 @@ import type {
|
|
|
28
28
|
DiffieHellmanRequest,
|
|
29
29
|
DiffieHellmanResponse,
|
|
30
30
|
KeyInfoJwt,
|
|
31
|
+
KeyAttestationQuery,
|
|
31
32
|
} from "./schema_types";
|
|
32
33
|
import type {
|
|
33
34
|
ApiClient,
|
|
@@ -51,6 +52,10 @@ import { CubeSignerClient, delay } from ".";
|
|
|
51
52
|
import { loadSubtleCrypto } from "./user_export";
|
|
52
53
|
import { encodeToHex, encodeToBase64 } from "./util";
|
|
53
54
|
|
|
55
|
+
// these types are used in doc comments only
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
57
|
+
import type { KeyAttestationClaims } from "./schema_types";
|
|
58
|
+
|
|
54
59
|
/** Secp256k1 key type */
|
|
55
60
|
export enum Secp256k1 {
|
|
56
61
|
Evm = "SecpEthAddr",
|
|
@@ -165,10 +170,12 @@ export class Key {
|
|
|
165
170
|
/**
|
|
166
171
|
* Attest to key properties.
|
|
167
172
|
*
|
|
168
|
-
* @
|
|
173
|
+
* @param query Query parameters:
|
|
174
|
+
* @param query.include_roles If specified, include all the roles the key is in.
|
|
175
|
+
* @returns A JWT whose claims are the properties of the key. The type of the returned JWT payload is {@link KeyAttestationClaims}.
|
|
169
176
|
*/
|
|
170
|
-
async attest(): Promise<KeyInfoJwt> {
|
|
171
|
-
return await this.#apiClient.keyAttest(this.id);
|
|
177
|
+
async attest(query?: KeyAttestationQuery): Promise<KeyInfoJwt> {
|
|
178
|
+
return await this.#apiClient.keyAttest(this.id, query);
|
|
172
179
|
}
|
|
173
180
|
|
|
174
181
|
/** @returns The type of key. */
|
package/src/role.ts
CHANGED
|
@@ -19,9 +19,14 @@ import type {
|
|
|
19
19
|
GetRoleKeyOptions,
|
|
20
20
|
EditPolicy,
|
|
21
21
|
MfaPolicy,
|
|
22
|
+
RoleInfoJwt,
|
|
22
23
|
} from ".";
|
|
23
24
|
import { Key, SignerSessionInfo } from ".";
|
|
24
25
|
|
|
26
|
+
// these types are used in doc comments only
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
|
+
import type { RoleAttestationClaims, RoleAttestationQuery } from "./schema_types";
|
|
29
|
+
|
|
25
30
|
type NameOrAddressOrNull = string | null;
|
|
26
31
|
|
|
27
32
|
/**
|
|
@@ -610,6 +615,18 @@ export class Role {
|
|
|
610
615
|
return this.#data;
|
|
611
616
|
}
|
|
612
617
|
|
|
618
|
+
/**
|
|
619
|
+
* Attest to role properties.
|
|
620
|
+
*
|
|
621
|
+
* @param query Query parameters:
|
|
622
|
+
* @param query.verbosity Role properties to include in an attestation. Defaults to basic role properties, including associated users, but excluding associated keys.
|
|
623
|
+
* @param query.key_filter Filter down to a single associated key. Defaults to including all associated keys.
|
|
624
|
+
* @returns A JWT whose claims are the role properties. The type of the returned JWT payload is {@link RoleAttestationClaims}.
|
|
625
|
+
*/
|
|
626
|
+
async attest(query?: RoleAttestationQuery): Promise<RoleInfoJwt> {
|
|
627
|
+
return await this.#apiClient.roleAttest(this.id, query);
|
|
628
|
+
}
|
|
629
|
+
|
|
613
630
|
/**
|
|
614
631
|
* Delete the role.
|
|
615
632
|
*
|
package/src/schema.ts
CHANGED
|
@@ -1129,6 +1129,15 @@ export interface paths {
|
|
|
1129
1129
|
*/
|
|
1130
1130
|
put: operations["addUserToRole"];
|
|
1131
1131
|
};
|
|
1132
|
+
"/v0/org/{org_id}/roles/{role_id}/attest": {
|
|
1133
|
+
/**
|
|
1134
|
+
* Attest to Role Properties
|
|
1135
|
+
* @description Attest to Role Properties
|
|
1136
|
+
*
|
|
1137
|
+
* The response is a JWT whose claims are the requested role properties.
|
|
1138
|
+
*/
|
|
1139
|
+
get: operations["attestRole"];
|
|
1140
|
+
};
|
|
1132
1141
|
"/v0/org/{org_id}/roles/{role_id}/keys": {
|
|
1133
1142
|
/**
|
|
1134
1143
|
* List Role Keys
|
|
@@ -2923,6 +2932,7 @@ export interface components {
|
|
|
2923
2932
|
| "ResetMemberMfa"
|
|
2924
2933
|
| "CompleteResetMemberMfa"
|
|
2925
2934
|
| "CreateRole"
|
|
2935
|
+
| "AttestRole"
|
|
2926
2936
|
| "GetRole"
|
|
2927
2937
|
| "ListTokenKeys"
|
|
2928
2938
|
| "ListRoles"
|
|
@@ -4614,6 +4624,7 @@ export interface components {
|
|
|
4614
4624
|
| "manage:role:create"
|
|
4615
4625
|
| "manage:role:delete"
|
|
4616
4626
|
| "manage:role:get:*"
|
|
4627
|
+
| "manage:role:attest"
|
|
4617
4628
|
| "manage:role:get:keys"
|
|
4618
4629
|
| "manage:role:get:keys:list"
|
|
4619
4630
|
| "manage:role:get:keys:get"
|
|
@@ -5320,6 +5331,13 @@ export interface components {
|
|
|
5320
5331
|
/** @description The keys included in this set */
|
|
5321
5332
|
keys: Record<string, never>[];
|
|
5322
5333
|
};
|
|
5334
|
+
KeyAttestationClaims: {
|
|
5335
|
+
exp: components["schemas"]["EpochDateTime"];
|
|
5336
|
+
iat: components["schemas"]["EpochDateTime"];
|
|
5337
|
+
key_info: components["schemas"]["KeyInfo"];
|
|
5338
|
+
/** @description If requested, the roles the key is currently in. */
|
|
5339
|
+
key_roles?: components["schemas"]["KeyInRoleInfo"][] | null;
|
|
5340
|
+
};
|
|
5323
5341
|
KeyCountDimensions: {
|
|
5324
5342
|
/** @description The key type */
|
|
5325
5343
|
key_type: string;
|
|
@@ -7552,13 +7570,32 @@ export interface components {
|
|
|
7552
7570
|
* @enum {string}
|
|
7553
7571
|
*/
|
|
7554
7572
|
RoleAction: "CreateToken" | "GetKey";
|
|
7573
|
+
RoleAttestationClaims: {
|
|
7574
|
+
exp: components["schemas"]["EpochDateTime"];
|
|
7575
|
+
iat: components["schemas"]["EpochDateTime"];
|
|
7576
|
+
query: components["schemas"]["RoleAttestationQuery"];
|
|
7577
|
+
role_info: components["schemas"]["RoleInfo"];
|
|
7578
|
+
/** @description The information about the keys currently in this role. */
|
|
7579
|
+
role_keys?: components["schemas"]["KeyInRoleInfo"][] | null;
|
|
7580
|
+
/** @description The IDs of the users who are currently in this role. */
|
|
7581
|
+
role_users: string[];
|
|
7582
|
+
};
|
|
7583
|
+
RoleAttestationQuery: {
|
|
7584
|
+
key_filter?: components["schemas"]["Id"] | null;
|
|
7585
|
+
verbosity?: components["schemas"]["RoleAttestationVerbosity"];
|
|
7586
|
+
};
|
|
7587
|
+
/**
|
|
7588
|
+
* @description Specifies which role properties to include in an attestation
|
|
7589
|
+
* @enum {string}
|
|
7590
|
+
*/
|
|
7591
|
+
RoleAttestationVerbosity: "Summary" | "WithKeys" | "Full";
|
|
7555
7592
|
RoleInfo: components["schemas"]["CommonFields"] & {
|
|
7556
7593
|
/**
|
|
7557
7594
|
* @description Whether the role is enabled
|
|
7558
7595
|
* @example true
|
|
7559
7596
|
*/
|
|
7560
7597
|
enabled: boolean;
|
|
7561
|
-
/** @description Deprecated The CubeSigner IDs of at most 100 keys associated with this role */
|
|
7598
|
+
/** @description Deprecated. The CubeSigner IDs of at most 100 keys associated with this role. */
|
|
7562
7599
|
keys?: components["schemas"]["KeyInRoleInfo"][] | null;
|
|
7563
7600
|
/**
|
|
7564
7601
|
* @description Whether the current user is a member of the role. This is always true,
|
|
@@ -7595,6 +7632,11 @@ export interface components {
|
|
|
7595
7632
|
/** @description Deprecated. The list of at most 100 users with access to the role. */
|
|
7596
7633
|
users?: string[] | null;
|
|
7597
7634
|
};
|
|
7635
|
+
/** @description Response returned when requesting a role attestation. */
|
|
7636
|
+
RoleInfoJwt: {
|
|
7637
|
+
/** @description A JSON Web Token whose claims contain the `RoleInfo` structure. */
|
|
7638
|
+
jwt: string;
|
|
7639
|
+
};
|
|
7598
7640
|
/** @description All scopes for accessing CubeSigner APIs */
|
|
7599
7641
|
Scope: components["schemas"]["ExplicitScope"] | string;
|
|
7600
7642
|
/** @description A set of scopes. */
|
|
@@ -10326,7 +10368,7 @@ export interface components {
|
|
|
10326
10368
|
* @example true
|
|
10327
10369
|
*/
|
|
10328
10370
|
enabled: boolean;
|
|
10329
|
-
/** @description Deprecated The CubeSigner IDs of at most 100 keys associated with this role */
|
|
10371
|
+
/** @description Deprecated. The CubeSigner IDs of at most 100 keys associated with this role. */
|
|
10330
10372
|
keys?: components["schemas"]["KeyInRoleInfo"][] | null;
|
|
10331
10373
|
/**
|
|
10332
10374
|
* @description Whether the current user is a member of the role. This is always true,
|
|
@@ -10365,6 +10407,15 @@ export interface components {
|
|
|
10365
10407
|
};
|
|
10366
10408
|
};
|
|
10367
10409
|
};
|
|
10410
|
+
/** @description Response returned when requesting a role attestation. */
|
|
10411
|
+
RoleInfoJwt: {
|
|
10412
|
+
content: {
|
|
10413
|
+
"application/json": {
|
|
10414
|
+
/** @description A JSON Web Token whose claims contain the `RoleInfo` structure. */
|
|
10415
|
+
jwt: string;
|
|
10416
|
+
};
|
|
10417
|
+
};
|
|
10418
|
+
};
|
|
10368
10419
|
SessionInfo: {
|
|
10369
10420
|
content: {
|
|
10370
10421
|
"application/json": components["schemas"]["SessionMetadata"] & {
|
|
@@ -12780,6 +12831,9 @@ export interface operations {
|
|
|
12780
12831
|
*/
|
|
12781
12832
|
attestKey: {
|
|
12782
12833
|
parameters: {
|
|
12834
|
+
query?: {
|
|
12835
|
+
include_roles?: boolean | null;
|
|
12836
|
+
};
|
|
12783
12837
|
path: {
|
|
12784
12838
|
/**
|
|
12785
12839
|
* @description Name or ID of the desired Org
|
|
@@ -14234,6 +14288,9 @@ export interface operations {
|
|
|
14234
14288
|
*/
|
|
14235
14289
|
getRole: {
|
|
14236
14290
|
parameters: {
|
|
14291
|
+
query?: {
|
|
14292
|
+
summarize?: boolean | null;
|
|
14293
|
+
};
|
|
14237
14294
|
path: {
|
|
14238
14295
|
/**
|
|
14239
14296
|
* @description Name or ID of the desired Org
|
|
@@ -14440,6 +14497,48 @@ export interface operations {
|
|
|
14440
14497
|
};
|
|
14441
14498
|
};
|
|
14442
14499
|
};
|
|
14500
|
+
/**
|
|
14501
|
+
* Attest to Role Properties
|
|
14502
|
+
* @description Attest to Role Properties
|
|
14503
|
+
*
|
|
14504
|
+
* The response is a JWT whose claims are the requested role properties.
|
|
14505
|
+
*/
|
|
14506
|
+
attestRole: {
|
|
14507
|
+
parameters: {
|
|
14508
|
+
query?: {
|
|
14509
|
+
/**
|
|
14510
|
+
* @description Role properties to include in an attestation. Defaults to basic role
|
|
14511
|
+
* properties, including associated users, but excluding associated keys.
|
|
14512
|
+
*/
|
|
14513
|
+
verbosity?: components["schemas"]["RoleAttestationVerbosity"];
|
|
14514
|
+
/**
|
|
14515
|
+
* @description Associated keys filter, i.e., when specified, out all other associated
|
|
14516
|
+
* keys are filtered out. Defaults to including all associated keys.
|
|
14517
|
+
*/
|
|
14518
|
+
key_filter?: components["schemas"]["Id"] | null;
|
|
14519
|
+
};
|
|
14520
|
+
path: {
|
|
14521
|
+
/**
|
|
14522
|
+
* @description Name or ID of the desired Org
|
|
14523
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
14524
|
+
*/
|
|
14525
|
+
org_id: string;
|
|
14526
|
+
/**
|
|
14527
|
+
* @description Name or ID of the desired Role
|
|
14528
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
14529
|
+
*/
|
|
14530
|
+
role_id: string;
|
|
14531
|
+
};
|
|
14532
|
+
};
|
|
14533
|
+
responses: {
|
|
14534
|
+
200: components["responses"]["RoleInfoJwt"];
|
|
14535
|
+
default: {
|
|
14536
|
+
content: {
|
|
14537
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
14538
|
+
};
|
|
14539
|
+
};
|
|
14540
|
+
};
|
|
14541
|
+
};
|
|
14443
14542
|
/**
|
|
14444
14543
|
* List Role Keys
|
|
14445
14544
|
* @description List Role Keys
|
package/src/schema_types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { components, operations } from "./schema";
|
|
1
|
+
import type { components, operations, paths } from "./schema";
|
|
2
2
|
import type { JsonMap, JsonValue } from "./util";
|
|
3
3
|
|
|
4
4
|
export type schemas = components["schemas"];
|
|
@@ -81,6 +81,14 @@ export type KeyProperties = schemas["CreateAndUpdateKeyProperties"];
|
|
|
81
81
|
export type CreateKeyRequest = schemas["CreateKeyRequest"];
|
|
82
82
|
export type KeyInfo = schemas["KeyInfo"];
|
|
83
83
|
export type KeyInfoJwt = schemas["KeyInfoJwt"];
|
|
84
|
+
export type KeyAttestationClaims = schemas["KeyAttestationClaims"];
|
|
85
|
+
export type KeyAttestationQuery =
|
|
86
|
+
paths["/v0/org/{org_id}/keys/{key_id}/attest"]["get"]["parameters"]["query"];
|
|
87
|
+
export type RoleInfoJwt = schemas["RoleInfoJwt"];
|
|
88
|
+
export type RoleAttestationClaims = schemas["RoleAttestationClaims"];
|
|
89
|
+
export type RoleAttestationQuery =
|
|
90
|
+
paths["/v0/org/{org_id}/roles/{role_id}/attest"]["get"]["parameters"]["query"];
|
|
91
|
+
export type RoleAttestationVerbosity = schemas["RoleAttestationVerbosity"];
|
|
84
92
|
export type KeyInRoleInfo = schemas["KeyInRoleInfo"];
|
|
85
93
|
export type GetUsersInOrgResponse = schemas["PaginatedGetUsersInOrgResponse"];
|
|
86
94
|
export type GetUserByEmailResponse = schemas["GetUserByEmailResponse"];
|
package/src/scopes.ts
CHANGED
|
@@ -129,6 +129,7 @@ export const AllScopes: Record<ExplicitScope, string> =
|
|
|
129
129
|
"manage:policy:createImportKey" : "Allows access only to the policy key endpoint",
|
|
130
130
|
"manage:role:*" : "Allows access to all role endpoints",
|
|
131
131
|
"manage:role:readonly" : "Allows access to all role readonly endpoints",
|
|
132
|
+
"manage:role:attest" : "Allows access only to the role 'attest' endpoint",
|
|
132
133
|
"manage:role:create" : "Allows access only to the role 'create' endpoint",
|
|
133
134
|
"manage:role:delete" : "Allows access only to the role 'delete' endpoint",
|
|
134
135
|
"manage:role:get:*" : "Allows access only to the role 'get' endpoint",
|