@mondaydotcomorg/monday-authorization 3.3.0-feat-add-graph-api-routing-support-c37c919 → 3.3.0-feat-add-graph-api-routing-support-34aa710
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/authorization-service.d.ts +1 -0
- package/dist/authorization-service.d.ts.map +1 -1
- package/dist/authorization-service.js +8 -4
- package/dist/clients/graph-api.d.ts +3 -2
- package/dist/clients/graph-api.d.ts.map +1 -1
- package/dist/clients/graph-api.js +15 -5
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/esm/authorization-service.d.ts +1 -0
- package/dist/esm/authorization-service.d.ts.map +1 -1
- package/dist/esm/authorization-service.mjs +8 -4
- package/dist/esm/clients/graph-api.d.ts +3 -2
- package/dist/esm/clients/graph-api.d.ts.map +1 -1
- package/dist/esm/clients/graph-api.mjs +15 -5
- package/dist/esm/constants.d.ts +1 -0
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.mjs +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ export declare class AuthorizationService {
|
|
|
13
13
|
private static _graphApi?;
|
|
14
14
|
private static get platformApi();
|
|
15
15
|
private static _platformApi?;
|
|
16
|
+
static resetApiClients(): void;
|
|
16
17
|
static redisClient?: any;
|
|
17
18
|
static grantedFeatureRedisExpirationInSeconds?: number;
|
|
18
19
|
static igniteClient?: IgniteClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-service.d.ts","sourceRoot":"","sources":["../src/authorization-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG7F,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACb,MAAM,kCAAkC,CAAC;AAe1C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC7C;AAED,wBAAgB,sBAAsB,CAAC,wBAAwB,EAAE,kBAAkB,QAElF;AAMD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,KAAK,QAAQ,GAK1B;IACD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAW;IAEpC,OAAO,CAAC,MAAM,KAAK,WAAW,GAK7B;IACD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAc;IAE1C,MAAM,CAAC,WAAW,CAAC,MAAC;IACpB,MAAM,CAAC,sCAAsC,CAAC,EAAE,MAAM,CAAC;IACvD,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAEnC;;;OAGG;WACU,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;WAEhB,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,2BAA2B,EAAE,mBAAmB,EAAE,GACjD,OAAO,CAAC,iBAAiB,CAAC;IAY7B;;;OAGG;WACU,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO,GAC1C,OAAO,CAAC,OAAO,CAAC;mBAkBE,6BAA6B;IAclD,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAIlB,gBAAgB,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAM9B,OAAO,CAAC,MAAM,CAAC,UAAU;WAsBZ,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAAC,0BAA0B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"authorization-service.d.ts","sourceRoot":"","sources":["../src/authorization-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG7F,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACb,MAAM,kCAAkC,CAAC;AAe1C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC7C;AAED,wBAAgB,sBAAsB,CAAC,wBAAwB,EAAE,kBAAkB,QAElF;AAMD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,KAAK,QAAQ,GAK1B;IACD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAW;IAEpC,OAAO,CAAC,MAAM,KAAK,WAAW,GAK7B;IACD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAc;IAE1C,MAAM,CAAC,eAAe,IAAI,IAAI;IAK9B,MAAM,CAAC,WAAW,CAAC,MAAC;IACpB,MAAM,CAAC,sCAAsC,CAAC,EAAE,MAAM,CAAC;IACvD,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAEnC;;;OAGG;WACU,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;WAEhB,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,2BAA2B,EAAE,mBAAmB,EAAE,GACjD,OAAO,CAAC,iBAAiB,CAAC;IAY7B;;;OAGG;WACU,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO,GAC1C,OAAO,CAAC,OAAO,CAAC;mBAkBE,6BAA6B;IAclD,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAIlB,gBAAgB,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAM9B,OAAO,CAAC,MAAM,CAAC,UAAU;WAsBZ,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAAC,0BAA0B,EAAE,CAAC;mBA+DnB,oBAAoB;mBAUpB,oBAAoB;CAoF1C;AAED,wBAAgB,cAAc,CAC5B,MAAM,KAAA,EACN,sCAAsC,GAAE,MAAiD,QAY1F;AAED,wBAAsB,eAAe,kBAMpC;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAepG"}
|
|
@@ -36,6 +36,10 @@ class AuthorizationService {
|
|
|
36
36
|
return this._platformApi;
|
|
37
37
|
}
|
|
38
38
|
static _platformApi;
|
|
39
|
+
static resetApiClients() {
|
|
40
|
+
this._graphApi = undefined;
|
|
41
|
+
this._platformApi = undefined;
|
|
42
|
+
}
|
|
39
43
|
static redisClient;
|
|
40
44
|
static grantedFeatureRedisExpirationInSeconds;
|
|
41
45
|
static igniteClient;
|
|
@@ -108,14 +112,13 @@ class AuthorizationService {
|
|
|
108
112
|
return [];
|
|
109
113
|
}
|
|
110
114
|
const shouldNavigateToGraph = Boolean(this.igniteClient?.isReleased(NAVIGATE_CAN_ACTION_IN_SCOPE_TO_GRAPH_FF, { accountId, userId }));
|
|
111
|
-
const internalAuthToken = authorizationInternalService.AuthorizationInternalService.generateInternalAuthToken(accountId, userId);
|
|
112
115
|
const startTime = perf_hooks.performance.now();
|
|
113
116
|
let scopedActionResponseObjects;
|
|
114
117
|
let apiType;
|
|
115
118
|
if (shouldNavigateToGraph) {
|
|
119
|
+
apiType = 'graph';
|
|
116
120
|
try {
|
|
117
|
-
scopedActionResponseObjects = await this.graphApi.checkPermissions(
|
|
118
|
-
apiType = 'graph';
|
|
121
|
+
scopedActionResponseObjects = await this.graphApi.checkPermissions(accountId, userId, scopedActions);
|
|
119
122
|
}
|
|
120
123
|
catch (error) {
|
|
121
124
|
const status = error instanceof mondayFetchApi.HttpFetcherError ? error.status : undefined;
|
|
@@ -130,9 +133,10 @@ class AuthorizationService {
|
|
|
130
133
|
}
|
|
131
134
|
}
|
|
132
135
|
else {
|
|
136
|
+
apiType = 'platform';
|
|
133
137
|
const profile = this.getProfile(accountId, userId);
|
|
138
|
+
const internalAuthToken = authorizationInternalService.AuthorizationInternalService.generateInternalAuthToken(accountId, userId);
|
|
134
139
|
scopedActionResponseObjects = await this.platformApi.checkPermissions(profile, internalAuthToken, userId, scopedActions);
|
|
135
|
-
apiType = 'platform';
|
|
136
140
|
}
|
|
137
141
|
const endTime = perf_hooks.performance.now();
|
|
138
142
|
const time = endTime - startTime;
|
|
@@ -5,6 +5,7 @@ import { GraphIsAllowedResponse } from '../types/graph-api.types';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare class GraphApi {
|
|
7
7
|
private readonly httpClient;
|
|
8
|
+
private readonly consumerAppName;
|
|
8
9
|
constructor();
|
|
9
10
|
/**
|
|
10
11
|
* Builds the request body for Graph API calls
|
|
@@ -13,7 +14,7 @@ export declare class GraphApi {
|
|
|
13
14
|
/**
|
|
14
15
|
* Fetches authorization data from the Graph API
|
|
15
16
|
*/
|
|
16
|
-
fetchPermissions(
|
|
17
|
+
fetchPermissions(authToken: string, scopedActions: ScopedAction[]): Promise<GraphIsAllowedResponse>;
|
|
17
18
|
/**
|
|
18
19
|
* Maps Graph API response to the expected format
|
|
19
20
|
*/
|
|
@@ -21,7 +22,7 @@ export declare class GraphApi {
|
|
|
21
22
|
/**
|
|
22
23
|
* Performs a complete authorization check using the Graph API
|
|
23
24
|
*/
|
|
24
|
-
checkPermissions(
|
|
25
|
+
checkPermissions(accountId: number, userId: number, scopedActions: ScopedAction[]): Promise<ScopedActionResponseObject[]>;
|
|
25
26
|
private static ensureGraphReason;
|
|
26
27
|
}
|
|
27
28
|
//# sourceMappingURL=graph-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-api.d.ts","sourceRoot":"","sources":["../../src/clients/graph-api.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,0BAA0B,EAG3B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAEL,sBAAsB,EAMvB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-api.d.ts","sourceRoot":"","sources":["../../src/clients/graph-api.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,0BAA0B,EAG3B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAEL,sBAAsB,EAMvB,MAAM,0BAA0B,CAAC;AASlC;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;;IAezC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAyB/B;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqCzG;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAiC1B;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAMxC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAWjC"}
|
|
@@ -7,19 +7,28 @@ const authorizationInternalService = require('../authorization-internal-service.
|
|
|
7
7
|
const attributionsService = require('../attributions-service.js');
|
|
8
8
|
const utils_authorization_utils = require('../utils/authorization.utils.js');
|
|
9
9
|
const metricsService = require('../metrics-service.js');
|
|
10
|
+
const mondayJwt = require('@mondaydotcomorg/monday-jwt');
|
|
11
|
+
const constants = require('../constants.js');
|
|
10
12
|
|
|
11
13
|
const CAN_ACTION_IN_SCOPE_GRAPH_PATH = '/permissions/is-allowed';
|
|
14
|
+
const APP_NAME_REQUIRED_ERROR = 'GraphApi: APP_NAME environment variable is required for Graph API authentication';
|
|
12
15
|
/**
|
|
13
16
|
* Client for handling Graph API authorization operations
|
|
14
17
|
*/
|
|
15
18
|
class GraphApi {
|
|
16
19
|
httpClient;
|
|
20
|
+
consumerAppName;
|
|
17
21
|
constructor() {
|
|
18
22
|
const httpClient = tridentBackendApi.Api.getPart('httpClient');
|
|
19
23
|
if (!httpClient) {
|
|
20
24
|
throw new Error('GraphApi: http client is not initialized');
|
|
21
25
|
}
|
|
26
|
+
const consumerAppName = process.env.APP_NAME?.trim();
|
|
27
|
+
if (!consumerAppName) {
|
|
28
|
+
throw new Error(APP_NAME_REQUIRED_ERROR);
|
|
29
|
+
}
|
|
22
30
|
this.httpClient = httpClient;
|
|
31
|
+
this.consumerAppName = consumerAppName;
|
|
23
32
|
}
|
|
24
33
|
/**
|
|
25
34
|
* Builds the request body for Graph API calls
|
|
@@ -49,18 +58,18 @@ class GraphApi {
|
|
|
49
58
|
/**
|
|
50
59
|
* Fetches authorization data from the Graph API
|
|
51
60
|
*/
|
|
52
|
-
async fetchPermissions(
|
|
61
|
+
async fetchPermissions(authToken, scopedActions) {
|
|
53
62
|
const attributionHeaders = attributionsService.getAttributionsFromApi();
|
|
54
63
|
const bodyPayload = GraphApi.buildRequestBody(scopedActions);
|
|
55
64
|
try {
|
|
56
65
|
const response = await this.httpClient.fetch({
|
|
57
66
|
url: {
|
|
58
|
-
appName:
|
|
67
|
+
appName: constants.GRAPH_APP_NAME,
|
|
59
68
|
path: CAN_ACTION_IN_SCOPE_GRAPH_PATH,
|
|
60
69
|
},
|
|
61
70
|
method: 'POST',
|
|
62
71
|
headers: {
|
|
63
|
-
Authorization:
|
|
72
|
+
Authorization: authToken,
|
|
64
73
|
'Content-Type': 'application/json',
|
|
65
74
|
...attributionHeaders,
|
|
66
75
|
},
|
|
@@ -112,8 +121,9 @@ class GraphApi {
|
|
|
112
121
|
/**
|
|
113
122
|
* Performs a complete authorization check using the Graph API
|
|
114
123
|
*/
|
|
115
|
-
async checkPermissions(
|
|
116
|
-
const
|
|
124
|
+
async checkPermissions(accountId, userId, scopedActions) {
|
|
125
|
+
const authToken = mondayJwt.signAuthorizationHeader({ appName: this.consumerAppName, accountId, userId });
|
|
126
|
+
const response = await this.fetchPermissions(authToken, scopedActions);
|
|
117
127
|
return GraphApi.mapResponse(scopedActions, response);
|
|
118
128
|
}
|
|
119
129
|
static ensureGraphReason(reason, context) {
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RecursivePartial } from '@mondaydotcomorg/monday-fetch-api';
|
|
2
2
|
import { FetcherConfig } from '@mondaydotcomorg/trident-backend-api';
|
|
3
3
|
export declare const APP_NAME = "authorization";
|
|
4
|
+
export declare const GRAPH_APP_NAME = "authorization-graph";
|
|
4
5
|
export declare const ERROR_MESSAGES: {
|
|
5
6
|
readonly HTTP_CLIENT_NOT_INITIALIZED: "MondayAuthorization: HTTP client is not initialized";
|
|
6
7
|
readonly REQUEST_FAILED: (method: string, status: number, reason: string) => string;
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,eAAO,MAAM,QAAQ,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AACxC,eAAO,MAAM,cAAc,wBAAwB,CAAC;AAEpD,eAAO,MAAM,cAAc;;sCAEA,MAAM,UAAU,MAAM,UAAU,MAAM;CAEvD,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAUjE,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
3
|
const APP_NAME = 'authorization';
|
|
4
|
+
const GRAPH_APP_NAME = 'authorization-graph';
|
|
4
5
|
const ERROR_MESSAGES = {
|
|
5
6
|
HTTP_CLIENT_NOT_INITIALIZED: 'MondayAuthorization: HTTP client is not initialized',
|
|
6
7
|
REQUEST_FAILED: (method, status, reason) => `MondayAuthorization: [${method}] request failed with status ${status} with reason: ${reason}`,
|
|
@@ -20,3 +21,4 @@ const DEFAULT_FETCH_OPTIONS = {
|
|
|
20
21
|
exports.APP_NAME = APP_NAME;
|
|
21
22
|
exports.DEFAULT_FETCH_OPTIONS = DEFAULT_FETCH_OPTIONS;
|
|
22
23
|
exports.ERROR_MESSAGES = ERROR_MESSAGES;
|
|
24
|
+
exports.GRAPH_APP_NAME = GRAPH_APP_NAME;
|
|
@@ -13,6 +13,7 @@ export declare class AuthorizationService {
|
|
|
13
13
|
private static _graphApi?;
|
|
14
14
|
private static get platformApi();
|
|
15
15
|
private static _platformApi?;
|
|
16
|
+
static resetApiClients(): void;
|
|
16
17
|
static redisClient?: any;
|
|
17
18
|
static grantedFeatureRedisExpirationInSeconds?: number;
|
|
18
19
|
static igniteClient?: IgniteClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-service.d.ts","sourceRoot":"","sources":["../../src/authorization-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG7F,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACb,MAAM,kCAAkC,CAAC;AAe1C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC7C;AAED,wBAAgB,sBAAsB,CAAC,wBAAwB,EAAE,kBAAkB,QAElF;AAMD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,KAAK,QAAQ,GAK1B;IACD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAW;IAEpC,OAAO,CAAC,MAAM,KAAK,WAAW,GAK7B;IACD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAc;IAE1C,MAAM,CAAC,WAAW,CAAC,MAAC;IACpB,MAAM,CAAC,sCAAsC,CAAC,EAAE,MAAM,CAAC;IACvD,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAEnC;;;OAGG;WACU,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;WAEhB,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,2BAA2B,EAAE,mBAAmB,EAAE,GACjD,OAAO,CAAC,iBAAiB,CAAC;IAY7B;;;OAGG;WACU,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO,GAC1C,OAAO,CAAC,OAAO,CAAC;mBAkBE,6BAA6B;IAclD,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAIlB,gBAAgB,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAM9B,OAAO,CAAC,MAAM,CAAC,UAAU;WAsBZ,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAAC,0BAA0B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"authorization-service.d.ts","sourceRoot":"","sources":["../../src/authorization-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG7F,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACb,MAAM,kCAAkC,CAAC;AAe1C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC7C;AAED,wBAAgB,sBAAsB,CAAC,wBAAwB,EAAE,kBAAkB,QAElF;AAMD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,KAAK,QAAQ,GAK1B;IACD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAW;IAEpC,OAAO,CAAC,MAAM,KAAK,WAAW,GAK7B;IACD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAc;IAE1C,MAAM,CAAC,eAAe,IAAI,IAAI;IAK9B,MAAM,CAAC,WAAW,CAAC,MAAC;IACpB,MAAM,CAAC,sCAAsC,CAAC,EAAE,MAAM,CAAC;IACvD,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAEnC;;;OAGG;WACU,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;WAEhB,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,2BAA2B,EAAE,mBAAmB,EAAE,GACjD,OAAO,CAAC,iBAAiB,CAAC;IAY7B;;;OAGG;WACU,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO,GAC1C,OAAO,CAAC,OAAO,CAAC;mBAkBE,6BAA6B;IAclD,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAIlB,gBAAgB,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAM9B,OAAO,CAAC,MAAM,CAAC,UAAU;WAsBZ,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAAC,0BAA0B,EAAE,CAAC;mBA+DnB,oBAAoB;mBAUpB,oBAAoB;CAoF1C;AAED,wBAAgB,cAAc,CAC5B,MAAM,KAAA,EACN,sCAAsC,GAAE,MAAiD,QAY1F;AAED,wBAAsB,eAAe,kBAMpC;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAepG"}
|
|
@@ -34,6 +34,10 @@ class AuthorizationService {
|
|
|
34
34
|
return this._platformApi;
|
|
35
35
|
}
|
|
36
36
|
static _platformApi;
|
|
37
|
+
static resetApiClients() {
|
|
38
|
+
this._graphApi = undefined;
|
|
39
|
+
this._platformApi = undefined;
|
|
40
|
+
}
|
|
37
41
|
static redisClient;
|
|
38
42
|
static grantedFeatureRedisExpirationInSeconds;
|
|
39
43
|
static igniteClient;
|
|
@@ -106,14 +110,13 @@ class AuthorizationService {
|
|
|
106
110
|
return [];
|
|
107
111
|
}
|
|
108
112
|
const shouldNavigateToGraph = Boolean(this.igniteClient?.isReleased(NAVIGATE_CAN_ACTION_IN_SCOPE_TO_GRAPH_FF, { accountId, userId }));
|
|
109
|
-
const internalAuthToken = AuthorizationInternalService.generateInternalAuthToken(accountId, userId);
|
|
110
113
|
const startTime = performance.now();
|
|
111
114
|
let scopedActionResponseObjects;
|
|
112
115
|
let apiType;
|
|
113
116
|
if (shouldNavigateToGraph) {
|
|
117
|
+
apiType = 'graph';
|
|
114
118
|
try {
|
|
115
|
-
scopedActionResponseObjects = await this.graphApi.checkPermissions(
|
|
116
|
-
apiType = 'graph';
|
|
119
|
+
scopedActionResponseObjects = await this.graphApi.checkPermissions(accountId, userId, scopedActions);
|
|
117
120
|
}
|
|
118
121
|
catch (error) {
|
|
119
122
|
const status = error instanceof HttpFetcherError ? error.status : undefined;
|
|
@@ -128,9 +131,10 @@ class AuthorizationService {
|
|
|
128
131
|
}
|
|
129
132
|
}
|
|
130
133
|
else {
|
|
134
|
+
apiType = 'platform';
|
|
131
135
|
const profile = this.getProfile(accountId, userId);
|
|
136
|
+
const internalAuthToken = AuthorizationInternalService.generateInternalAuthToken(accountId, userId);
|
|
132
137
|
scopedActionResponseObjects = await this.platformApi.checkPermissions(profile, internalAuthToken, userId, scopedActions);
|
|
133
|
-
apiType = 'platform';
|
|
134
138
|
}
|
|
135
139
|
const endTime = performance.now();
|
|
136
140
|
const time = endTime - startTime;
|
|
@@ -5,6 +5,7 @@ import { GraphIsAllowedResponse } from '../types/graph-api.types';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare class GraphApi {
|
|
7
7
|
private readonly httpClient;
|
|
8
|
+
private readonly consumerAppName;
|
|
8
9
|
constructor();
|
|
9
10
|
/**
|
|
10
11
|
* Builds the request body for Graph API calls
|
|
@@ -13,7 +14,7 @@ export declare class GraphApi {
|
|
|
13
14
|
/**
|
|
14
15
|
* Fetches authorization data from the Graph API
|
|
15
16
|
*/
|
|
16
|
-
fetchPermissions(
|
|
17
|
+
fetchPermissions(authToken: string, scopedActions: ScopedAction[]): Promise<GraphIsAllowedResponse>;
|
|
17
18
|
/**
|
|
18
19
|
* Maps Graph API response to the expected format
|
|
19
20
|
*/
|
|
@@ -21,7 +22,7 @@ export declare class GraphApi {
|
|
|
21
22
|
/**
|
|
22
23
|
* Performs a complete authorization check using the Graph API
|
|
23
24
|
*/
|
|
24
|
-
checkPermissions(
|
|
25
|
+
checkPermissions(accountId: number, userId: number, scopedActions: ScopedAction[]): Promise<ScopedActionResponseObject[]>;
|
|
25
26
|
private static ensureGraphReason;
|
|
26
27
|
}
|
|
27
28
|
//# sourceMappingURL=graph-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-api.d.ts","sourceRoot":"","sources":["../../../src/clients/graph-api.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,0BAA0B,EAG3B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAEL,sBAAsB,EAMvB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-api.d.ts","sourceRoot":"","sources":["../../../src/clients/graph-api.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,0BAA0B,EAG3B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAEL,sBAAsB,EAMvB,MAAM,0BAA0B,CAAC;AASlC;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;;IAezC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAyB/B;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqCzG;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAiC1B;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAMxC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAWjC"}
|
|
@@ -5,19 +5,28 @@ import { AuthorizationInternalService } from '../authorization-internal-service.
|
|
|
5
5
|
import { getAttributionsFromApi } from '../attributions-service.mjs';
|
|
6
6
|
import { scopeToResource } from '../utils/authorization.utils.mjs';
|
|
7
7
|
import { recordAuthorizationError } from '../metrics-service.mjs';
|
|
8
|
+
import { signAuthorizationHeader } from '@mondaydotcomorg/monday-jwt';
|
|
9
|
+
import { GRAPH_APP_NAME } from '../constants.mjs';
|
|
8
10
|
|
|
9
11
|
const CAN_ACTION_IN_SCOPE_GRAPH_PATH = '/permissions/is-allowed';
|
|
12
|
+
const APP_NAME_REQUIRED_ERROR = 'GraphApi: APP_NAME environment variable is required for Graph API authentication';
|
|
10
13
|
/**
|
|
11
14
|
* Client for handling Graph API authorization operations
|
|
12
15
|
*/
|
|
13
16
|
class GraphApi {
|
|
14
17
|
httpClient;
|
|
18
|
+
consumerAppName;
|
|
15
19
|
constructor() {
|
|
16
20
|
const httpClient = Api.getPart('httpClient');
|
|
17
21
|
if (!httpClient) {
|
|
18
22
|
throw new Error('GraphApi: http client is not initialized');
|
|
19
23
|
}
|
|
24
|
+
const consumerAppName = process.env.APP_NAME?.trim();
|
|
25
|
+
if (!consumerAppName) {
|
|
26
|
+
throw new Error(APP_NAME_REQUIRED_ERROR);
|
|
27
|
+
}
|
|
20
28
|
this.httpClient = httpClient;
|
|
29
|
+
this.consumerAppName = consumerAppName;
|
|
21
30
|
}
|
|
22
31
|
/**
|
|
23
32
|
* Builds the request body for Graph API calls
|
|
@@ -47,18 +56,18 @@ class GraphApi {
|
|
|
47
56
|
/**
|
|
48
57
|
* Fetches authorization data from the Graph API
|
|
49
58
|
*/
|
|
50
|
-
async fetchPermissions(
|
|
59
|
+
async fetchPermissions(authToken, scopedActions) {
|
|
51
60
|
const attributionHeaders = getAttributionsFromApi();
|
|
52
61
|
const bodyPayload = GraphApi.buildRequestBody(scopedActions);
|
|
53
62
|
try {
|
|
54
63
|
const response = await this.httpClient.fetch({
|
|
55
64
|
url: {
|
|
56
|
-
appName:
|
|
65
|
+
appName: GRAPH_APP_NAME,
|
|
57
66
|
path: CAN_ACTION_IN_SCOPE_GRAPH_PATH,
|
|
58
67
|
},
|
|
59
68
|
method: 'POST',
|
|
60
69
|
headers: {
|
|
61
|
-
Authorization:
|
|
70
|
+
Authorization: authToken,
|
|
62
71
|
'Content-Type': 'application/json',
|
|
63
72
|
...attributionHeaders,
|
|
64
73
|
},
|
|
@@ -110,8 +119,9 @@ class GraphApi {
|
|
|
110
119
|
/**
|
|
111
120
|
* Performs a complete authorization check using the Graph API
|
|
112
121
|
*/
|
|
113
|
-
async checkPermissions(
|
|
114
|
-
const
|
|
122
|
+
async checkPermissions(accountId, userId, scopedActions) {
|
|
123
|
+
const authToken = signAuthorizationHeader({ appName: this.consumerAppName, accountId, userId });
|
|
124
|
+
const response = await this.fetchPermissions(authToken, scopedActions);
|
|
115
125
|
return GraphApi.mapResponse(scopedActions, response);
|
|
116
126
|
}
|
|
117
127
|
static ensureGraphReason(reason, context) {
|
package/dist/esm/constants.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RecursivePartial } from '@mondaydotcomorg/monday-fetch-api';
|
|
2
2
|
import { FetcherConfig } from '@mondaydotcomorg/trident-backend-api';
|
|
3
3
|
export declare const APP_NAME = "authorization";
|
|
4
|
+
export declare const GRAPH_APP_NAME = "authorization-graph";
|
|
4
5
|
export declare const ERROR_MESSAGES: {
|
|
5
6
|
readonly HTTP_CLIENT_NOT_INITIALIZED: "MondayAuthorization: HTTP client is not initialized";
|
|
6
7
|
readonly REQUEST_FAILED: (method: string, status: number, reason: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,eAAO,MAAM,QAAQ,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AACxC,eAAO,MAAM,cAAc,wBAAwB,CAAC;AAEpD,eAAO,MAAM,cAAc;;sCAEA,MAAM,UAAU,MAAM,UAAU,MAAM;CAEvD,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAUjE,CAAC"}
|
package/dist/esm/constants.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const APP_NAME = 'authorization';
|
|
2
|
+
const GRAPH_APP_NAME = 'authorization-graph';
|
|
2
3
|
const ERROR_MESSAGES = {
|
|
3
4
|
HTTP_CLIENT_NOT_INITIALIZED: 'MondayAuthorization: HTTP client is not initialized',
|
|
4
5
|
REQUEST_FAILED: (method, status, reason) => `MondayAuthorization: [${method}] request failed with status ${status} with reason: ${reason}`,
|
|
@@ -15,4 +16,4 @@ const DEFAULT_FETCH_OPTIONS = {
|
|
|
15
16
|
},
|
|
16
17
|
};
|
|
17
18
|
|
|
18
|
-
export { APP_NAME, DEFAULT_FETCH_OPTIONS, ERROR_MESSAGES };
|
|
19
|
+
export { APP_NAME, DEFAULT_FETCH_OPTIONS, ERROR_MESSAGES, GRAPH_APP_NAME };
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,iBAuBnD;AAED,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5G,OAAO,EACL,WAAW,EACX,YAAY,EACZ,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErH,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -13,11 +13,12 @@ async function init(options = {}) {
|
|
|
13
13
|
if (options.prometheus) {
|
|
14
14
|
setPrometheus(options.prometheus);
|
|
15
15
|
}
|
|
16
|
+
const resolvedDisabled = options.metrics?.disabled ?? ['test', 'development'].includes((process.env.NODE_ENV ?? '').toLowerCase());
|
|
16
17
|
initializeMetrics({
|
|
17
18
|
serviceName: options.metrics?.serviceName ?? process.env.APP_NAME ?? 'authorization-sdk',
|
|
18
19
|
host: options.metrics?.host,
|
|
19
20
|
port: options.metrics?.port,
|
|
20
|
-
disabled:
|
|
21
|
+
disabled: resolvedDisabled,
|
|
21
22
|
});
|
|
22
23
|
if (options.mondayFetchOptions) {
|
|
23
24
|
setRequestFetchOptions(options.mondayFetchOptions);
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,iBAuBnD;AAED,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5G,OAAO,EACL,WAAW,EACX,YAAY,EACZ,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErH,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,11 +13,12 @@ async function init(options = {}) {
|
|
|
13
13
|
if (options.prometheus) {
|
|
14
14
|
prometheusService.setPrometheus(options.prometheus);
|
|
15
15
|
}
|
|
16
|
+
const resolvedDisabled = options.metrics?.disabled ?? ['test', 'development'].includes((process.env.NODE_ENV ?? '').toLowerCase());
|
|
16
17
|
metricsService.initializeMetrics({
|
|
17
18
|
serviceName: options.metrics?.serviceName ?? process.env.APP_NAME ?? 'authorization-sdk',
|
|
18
19
|
host: options.metrics?.host,
|
|
19
20
|
port: options.metrics?.port,
|
|
20
|
-
disabled:
|
|
21
|
+
disabled: resolvedDisabled,
|
|
21
22
|
});
|
|
22
23
|
if (options.mondayFetchOptions) {
|
|
23
24
|
authorizationService.setRequestFetchOptions(options.mondayFetchOptions);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mondaydotcomorg/monday-authorization",
|
|
3
|
-
"version": "3.3.0-feat-add-graph-api-routing-support-
|
|
3
|
+
"version": "3.3.0-feat-add-graph-api-routing-support-34aa710",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "BSD-3-Clause",
|