@or-sdk/api-tokens 1.0.1-beta.4010.0 → 1.0.1-beta.4019.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/dist/cjs/ApiTokens.js +32 -0
- package/dist/cjs/ApiTokens.js.map +1 -1
- package/dist/esm/ApiTokens.js +18 -0
- package/dist/esm/ApiTokens.js.map +1 -1
- package/dist/types/ApiTokens.d.ts +4 -2
- package/dist/types/ApiTokens.d.ts.map +1 -1
- package/dist/types/types.d.ts +5 -14
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ApiTokens.ts +29 -6
- package/src/types.ts +5 -16
package/dist/cjs/ApiTokens.js
CHANGED
|
@@ -163,6 +163,38 @@ var ApiTokens = (function (_super) {
|
|
|
163
163
|
});
|
|
164
164
|
});
|
|
165
165
|
};
|
|
166
|
+
ApiTokens.prototype.revoke = function (id) {
|
|
167
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
168
|
+
var data;
|
|
169
|
+
return __generator(this, function (_a) {
|
|
170
|
+
switch (_a.label) {
|
|
171
|
+
case 0: return [4, this.callApiV2({
|
|
172
|
+
method: 'POST',
|
|
173
|
+
route: "/v1/api-tokens/".concat(id, "/revoke"),
|
|
174
|
+
})];
|
|
175
|
+
case 1:
|
|
176
|
+
data = _a.sent();
|
|
177
|
+
return [2, data];
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
ApiTokens.prototype.rotate = function (id) {
|
|
183
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
184
|
+
var data;
|
|
185
|
+
return __generator(this, function (_a) {
|
|
186
|
+
switch (_a.label) {
|
|
187
|
+
case 0: return [4, this.callApiV2({
|
|
188
|
+
method: 'POST',
|
|
189
|
+
route: "/v1/api-tokens/".concat(id, "/rotate"),
|
|
190
|
+
})];
|
|
191
|
+
case 1:
|
|
192
|
+
data = _a.sent();
|
|
193
|
+
return [2, data];
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
};
|
|
166
198
|
ApiTokens.prototype.validate = function (token) {
|
|
167
199
|
return __awaiter(this, void 0, void 0, function () {
|
|
168
200
|
var data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiTokens.js","sourceRoot":"","sources":["../../src/ApiTokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,yCAA0C;
|
|
1
|
+
{"version":3,"file":"ApiTokens.js","sourceRoot":"","sources":["../../src/ApiTokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,yCAA0C;AAgB1C;IAA+B,6BAAI;IAUjC,mBAAY,MAAuB;QACzB,IAAA,KAAK,GAAiC,MAAM,MAAvC,EAAE,YAAY,GAAmB,MAAM,aAAzB,EAAE,YAAY,GAAK,MAAM,aAAX,CAAY;QACrD,OAAA,MAAK,YAAC;YACJ,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,uBAAW;SACxB,CAAC,SAAC;IACL,CAAC;IAWK,0BAAM,GAAZ,UAAa,MAAyB;;;;;4BACvB,WAAM,IAAI,CAAC,SAAS,CAAW;4BAC1C,MAAM,EAAE,MAAM;4BACd,KAAK,EAAE,gBAAgB;4BACvB,IAAI,EAAE,MAAM;yBACb,CAAC,EAAA;;wBAJI,IAAI,GAAG,SAIX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAMK,wBAAI,GAAV;;;;;4BACe,WAAM,IAAI,CAAC,SAAS,CAAa;4BAC5C,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,gBAAgB;yBACxB,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAOK,2BAAO,GAAb,UAAc,EAAU;;;;;4BACT,WAAM,IAAI,CAAC,SAAS,CAAW;4BAC1C,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,yBAAkB,EAAE,CAAE;yBAC9B,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAOK,6BAAS,GAAf,UAAgB,IAAY;;;;;4BACb,WAAM,IAAI,CAAC,SAAS,CAAW;4BAC1C,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,iCAA0B,kBAAkB,CAAC,IAAI,CAAC,CAAE;yBAC5D,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAaK,0BAAM,GAAZ,UAAa,EAAU,EAAE,MAAyB;;;;;4BACnC,WAAM,IAAI,CAAC,SAAS,CAAW;4BAC1C,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,yBAAkB,EAAE,CAAE;4BAC7B,IAAI,EAAE,MAAM;yBACb,CAAC,EAAA;;wBAJI,IAAI,GAAG,SAIX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAOK,0BAAM,GAAZ,UAAa,EAAU;;;;;4BACR,WAAM,IAAI,CAAC,SAAS,CAAuB;4BACtD,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,yBAAkB,EAAE,CAAE;yBAC9B,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAOK,0BAAM,GAAZ,UAAa,EAAU;;;;;4BACR,WAAM,IAAI,CAAC,SAAS,CAAW;4BAC1C,MAAM,EAAE,MAAM;4BACd,KAAK,EAAE,yBAAkB,EAAE,YAAS;yBACrC,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAOK,0BAAM,GAAZ,UAAa,EAAU;;;;;4BACR,WAAM,IAAI,CAAC,SAAS,CAAW;4BAC1C,MAAM,EAAE,MAAM;4BACd,KAAK,EAAE,yBAAkB,EAAE,YAAS;yBACrC,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAOK,4BAAQ,GAAd,UAAe,KAAa;;;;;4BACb,WAAM,IAAI,CAAC,SAAS,CAA2B;4BAC1D,MAAM,EAAE,MAAM;4BACd,KAAK,EAAE,yBAAyB;4BAChC,IAAI,EAAE,EAAE,KAAK,OAAA,EAAE;yBAChB,CAAC,EAAA;;wBAJI,IAAI,GAAG,SAIX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IACH,gBAAC;AAAD,CAAC,AApJD,CAA+B,WAAI,GAoJlC;AApJY,8BAAS"}
|
package/dist/esm/ApiTokens.js
CHANGED
|
@@ -75,6 +75,24 @@ export class ApiTokens extends Base {
|
|
|
75
75
|
return data;
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
+
revoke(id) {
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const data = yield this.callApiV2({
|
|
81
|
+
method: 'POST',
|
|
82
|
+
route: `/v1/api-tokens/${id}/revoke`,
|
|
83
|
+
});
|
|
84
|
+
return data;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
rotate(id) {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const data = yield this.callApiV2({
|
|
90
|
+
method: 'POST',
|
|
91
|
+
route: `/v1/api-tokens/${id}/rotate`,
|
|
92
|
+
});
|
|
93
|
+
return data;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
78
96
|
validate(token) {
|
|
79
97
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
98
|
const data = yield this.callApiV2({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiTokens.js","sourceRoot":"","sources":["../../src/ApiTokens.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiTokens.js","sourceRoot":"","sources":["../../src/ApiTokens.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgB1C,MAAM,OAAO,SAAU,SAAQ,IAAI;IAUjC,YAAY,MAAuB;QACjC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QACrD,KAAK,CAAC;YACJ,KAAK;YACL,YAAY;YACZ,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;IACL,CAAC;IAWK,MAAM,CAAC,MAAyB;;YACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAW;gBAC1C,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAMK,IAAI;;YACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAa;gBAC5C,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,gBAAgB;aACxB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAOK,OAAO,CAAC,EAAU;;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAW;gBAC1C,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,kBAAkB,EAAE,EAAE;aAC9B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAOK,SAAS,CAAC,IAAY;;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAW;gBAC1C,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,0BAA0B,kBAAkB,CAAC,IAAI,CAAC,EAAE;aAC5D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAaK,MAAM,CAAC,EAAU,EAAE,MAAyB;;YAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAW;gBAC1C,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,kBAAkB,EAAE,EAAE;gBAC7B,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAOK,MAAM,CAAC,EAAU;;YACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAuB;gBACtD,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,kBAAkB,EAAE,EAAE;aAC9B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAOK,MAAM,CAAC,EAAU;;YACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAW;gBAC1C,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,kBAAkB,EAAE,SAAS;aACrC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAOK,MAAM,CAAC,EAAU;;YACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAW;gBAC1C,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,kBAAkB,EAAE,SAAS;aACrC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAOK,QAAQ,CAAC,KAAa;;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAA2B;gBAC1D,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,EAAE,KAAK,EAAE;aAChB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Base } from '@or-sdk/base';
|
|
2
|
-
import { ApiToken, ApiTokensConfig,
|
|
2
|
+
import { ApiToken, ApiTokensConfig, CreateApiTokenDto, UpdateApiTokenDto, ValidateApiTokenResponse } from './types';
|
|
3
3
|
export declare class ApiTokens extends Base {
|
|
4
4
|
constructor(params: ApiTokensConfig);
|
|
5
|
-
create(params: CreateApiTokenDto): Promise<
|
|
5
|
+
create(params: CreateApiTokenDto): Promise<ApiToken>;
|
|
6
6
|
list(): Promise<ApiToken[]>;
|
|
7
7
|
getById(id: string): Promise<ApiToken>;
|
|
8
8
|
getByName(name: string): Promise<ApiToken>;
|
|
@@ -10,6 +10,8 @@ export declare class ApiTokens extends Base {
|
|
|
10
10
|
delete(id: string): Promise<{
|
|
11
11
|
success: boolean;
|
|
12
12
|
}>;
|
|
13
|
+
revoke(id: string): Promise<ApiToken>;
|
|
14
|
+
rotate(id: string): Promise<ApiToken>;
|
|
13
15
|
validate(token: string): Promise<ValidateApiTokenResponse>;
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=ApiTokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiTokens.d.ts","sourceRoot":"","sources":["../../src/ApiTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EACL,QAAQ,EACR,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"ApiTokens.d.ts","sourceRoot":"","sources":["../../src/ApiTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EACL,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AASjB,qBAAa,SAAU,SAAQ,IAAI;gBAUrB,MAAM,EAAE,eAAe;IAmB7B,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAapD,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAa3B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAatC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmB1C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAchE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAajD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAarC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAarC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAQjE"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export type ApiToken = {
|
|
|
10
10
|
role: string;
|
|
11
11
|
accountId: string;
|
|
12
12
|
isActive: boolean;
|
|
13
|
+
isRevoked: boolean;
|
|
13
14
|
expiresAt?: string;
|
|
14
15
|
metadata?: Record<string, unknown>;
|
|
15
16
|
permissions?: string[];
|
|
@@ -17,36 +18,26 @@ export type ApiToken = {
|
|
|
17
18
|
createdAt: string;
|
|
18
19
|
updatedAt: string;
|
|
19
20
|
};
|
|
20
|
-
export type ApiTokenWithRawValue = ApiToken & {
|
|
21
|
-
token: string;
|
|
22
|
-
};
|
|
23
21
|
export type CreateApiTokenDto = {
|
|
24
22
|
name: string;
|
|
25
|
-
role: string;
|
|
26
23
|
expiresAt?: string;
|
|
27
24
|
metadata?: Record<string, unknown>;
|
|
28
25
|
permissions?: string[];
|
|
29
26
|
};
|
|
30
27
|
export type UpdateApiTokenDto = {
|
|
31
28
|
name?: string;
|
|
32
|
-
role?: string;
|
|
33
29
|
isActive?: boolean;
|
|
34
30
|
expiresAt?: string;
|
|
35
31
|
metadata?: Record<string, unknown>;
|
|
36
32
|
permissions?: string[];
|
|
37
33
|
};
|
|
38
|
-
export type PermissionGroup = {
|
|
39
|
-
serviceName: string;
|
|
40
|
-
permissions: {
|
|
41
|
-
name: string;
|
|
42
|
-
effect: boolean;
|
|
43
|
-
}[];
|
|
44
|
-
};
|
|
45
34
|
export type ValidateApiTokenResponse = {
|
|
46
35
|
allow: boolean;
|
|
47
|
-
|
|
36
|
+
reason?: string;
|
|
37
|
+
tokenId?: string;
|
|
38
|
+
expire?: number | null;
|
|
48
39
|
accountId?: string;
|
|
49
40
|
role?: string;
|
|
50
|
-
permissions?:
|
|
41
|
+
permissions?: string[];
|
|
51
42
|
};
|
|
52
43
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,eAAe,GAAG;IAI5B,KAAK,EAAE,KAAK,CAAC;IAIb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,eAAe,GAAG;IAI5B,KAAK,EAAE,KAAK,CAAC;IAIb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAE9B,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAE9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC"}
|
package/package.json
CHANGED
package/src/ApiTokens.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { SERVICE_KEY } from './constants';
|
|
|
4
4
|
import {
|
|
5
5
|
ApiToken,
|
|
6
6
|
ApiTokensConfig,
|
|
7
|
-
ApiTokenWithRawValue,
|
|
8
7
|
CreateApiTokenDto,
|
|
9
8
|
UpdateApiTokenDto,
|
|
10
9
|
ValidateApiTokenResponse,
|
|
@@ -41,14 +40,13 @@ export class ApiTokens extends Base {
|
|
|
41
40
|
* Creates a new API token
|
|
42
41
|
* @param {CreateApiTokenDto} params - Token creation data
|
|
43
42
|
* @param {string} params.name - Name of the API token
|
|
44
|
-
* @param {string} params.role - Role assigned to the API token
|
|
45
43
|
* @param {string} [params.expiresAt] - Token expiration date (ISO 8601)
|
|
46
44
|
* @param {Record<string, unknown>} [params.metadata] - Additional metadata
|
|
47
45
|
* @param {string[]} [params.permissions] - Permission scopes
|
|
48
|
-
* @returns {Promise<
|
|
46
|
+
* @returns {Promise<ApiToken>} Created token including the raw token string
|
|
49
47
|
*/
|
|
50
|
-
async create(params: CreateApiTokenDto): Promise<
|
|
51
|
-
const data = await this.callApiV2<
|
|
48
|
+
async create(params: CreateApiTokenDto): Promise<ApiToken> {
|
|
49
|
+
const data = await this.callApiV2<ApiToken>({
|
|
52
50
|
method: 'POST',
|
|
53
51
|
route: '/v1/api-tokens',
|
|
54
52
|
data: params,
|
|
@@ -99,7 +97,6 @@ export class ApiTokens extends Base {
|
|
|
99
97
|
* @param {string} id - API Token identifier
|
|
100
98
|
* @param {UpdateApiTokenDto} params - Fields to update
|
|
101
99
|
* @param {string} [params.name] - Name of the API token
|
|
102
|
-
* @param {string} [params.role] - Role assigned to the API token
|
|
103
100
|
* @param {boolean} [params.isActive] - Whether the token is active
|
|
104
101
|
* @param {string} [params.expiresAt] - Token expiration date (ISO 8601)
|
|
105
102
|
* @param {Record<string, unknown>} [params.metadata] - Additional metadata
|
|
@@ -128,6 +125,32 @@ export class ApiTokens extends Base {
|
|
|
128
125
|
return data;
|
|
129
126
|
}
|
|
130
127
|
|
|
128
|
+
/**
|
|
129
|
+
* Revokes an API token (soft-disable)
|
|
130
|
+
* @param {string} id - API Token identifier
|
|
131
|
+
* @returns {Promise<ApiToken>} The revoked token
|
|
132
|
+
*/
|
|
133
|
+
async revoke(id: string): Promise<ApiToken> {
|
|
134
|
+
const data = await this.callApiV2<ApiToken>({
|
|
135
|
+
method: 'POST',
|
|
136
|
+
route: `/v1/api-tokens/${id}/revoke`,
|
|
137
|
+
});
|
|
138
|
+
return data;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Rotates an API token — generates a new token value and invalidates the old one
|
|
143
|
+
* @param {string} id - API Token identifier
|
|
144
|
+
* @returns {Promise<ApiToken>} The token with the new raw token string
|
|
145
|
+
*/
|
|
146
|
+
async rotate(id: string): Promise<ApiToken> {
|
|
147
|
+
const data = await this.callApiV2<ApiToken>({
|
|
148
|
+
method: 'POST',
|
|
149
|
+
route: `/v1/api-tokens/${id}/rotate`,
|
|
150
|
+
});
|
|
151
|
+
return data;
|
|
152
|
+
}
|
|
153
|
+
|
|
131
154
|
/**
|
|
132
155
|
* Validates a raw API token string
|
|
133
156
|
* @param {string} token - Raw API token string to validate
|
package/src/types.ts
CHANGED
|
@@ -18,6 +18,7 @@ export type ApiToken = {
|
|
|
18
18
|
role: string;
|
|
19
19
|
accountId: string;
|
|
20
20
|
isActive: boolean;
|
|
21
|
+
isRevoked: boolean;
|
|
21
22
|
expiresAt?: string;
|
|
22
23
|
metadata?: Record<string, unknown>;
|
|
23
24
|
permissions?: string[];
|
|
@@ -26,16 +27,9 @@ export type ApiToken = {
|
|
|
26
27
|
updatedAt: string;
|
|
27
28
|
};
|
|
28
29
|
|
|
29
|
-
export type ApiTokenWithRawValue = ApiToken & {
|
|
30
|
-
/** Raw token string, only returned on creation */
|
|
31
|
-
token: string;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
30
|
export type CreateApiTokenDto = {
|
|
35
31
|
/** Name of the API token */
|
|
36
32
|
name: string;
|
|
37
|
-
/** Role assigned to the API token (e.g. 'guest', 'user', 'admin') */
|
|
38
|
-
role: string;
|
|
39
33
|
/** Token expiration date (ISO 8601) */
|
|
40
34
|
expiresAt?: string;
|
|
41
35
|
/** Additional metadata */
|
|
@@ -47,8 +41,6 @@ export type CreateApiTokenDto = {
|
|
|
47
41
|
export type UpdateApiTokenDto = {
|
|
48
42
|
/** Name of the API token */
|
|
49
43
|
name?: string;
|
|
50
|
-
/** Role assigned to the API token */
|
|
51
|
-
role?: string;
|
|
52
44
|
/** Whether the token is active */
|
|
53
45
|
isActive?: boolean;
|
|
54
46
|
/** Token expiration date (ISO 8601) */
|
|
@@ -59,15 +51,12 @@ export type UpdateApiTokenDto = {
|
|
|
59
51
|
permissions?: string[];
|
|
60
52
|
};
|
|
61
53
|
|
|
62
|
-
export type PermissionGroup = {
|
|
63
|
-
serviceName: string;
|
|
64
|
-
permissions: { name: string; effect: boolean }[];
|
|
65
|
-
};
|
|
66
|
-
|
|
67
54
|
export type ValidateApiTokenResponse = {
|
|
68
55
|
allow: boolean;
|
|
69
|
-
|
|
56
|
+
reason?: string;
|
|
57
|
+
tokenId?: string;
|
|
58
|
+
expire?: number | null;
|
|
70
59
|
accountId?: string;
|
|
71
60
|
role?: string;
|
|
72
|
-
permissions?:
|
|
61
|
+
permissions?: string[];
|
|
73
62
|
};
|