@mondaydotcomorg/monday-authorization 3.7.4 → 3.7.5-feat-shaime-delay-retry-when-response-code-is-429-c78b71b
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-internal-service.d.ts +12 -5
- package/dist/authorization-internal-service.d.ts.map +1 -1
- package/dist/authorization-internal-service.js +23 -15
- package/dist/authorization-service.d.ts +2 -2
- package/dist/authorization-service.d.ts.map +1 -1
- package/dist/esm/authorization-internal-service.d.ts +12 -5
- package/dist/esm/authorization-internal-service.d.ts.map +1 -1
- package/dist/esm/authorization-internal-service.mjs +21 -16
- package/dist/esm/authorization-service.d.ts +2 -2
- package/dist/esm/authorization-service.d.ts.map +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/authorization-internal-service.ts +33 -22
- package/src/authorization-service.ts +2 -3
- package/src/index.ts +4 -2
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { OnRetryCallback, RetryPolicy } from '@mondaydotcomorg/monday-fetch-api';
|
|
1
|
+
import { OnRetryCallback, Response, RetryPolicy, RetryDelayCallback } from '@mondaydotcomorg/monday-fetch-api';
|
|
3
2
|
import { IgniteClient } from '@mondaydotcomorg/ignite-sdk';
|
|
4
3
|
import { BaseRequest } from './types/general';
|
|
4
|
+
export declare const MAX_RETRIES = 3;
|
|
5
|
+
export declare const RETRY_DELAY_MS = 20;
|
|
5
6
|
export declare const logger: import("bunyan");
|
|
6
7
|
export declare const onRetryCallback: OnRetryCallback;
|
|
8
|
+
/**
|
|
9
|
+
* Exponential backoff retry delay callback
|
|
10
|
+
* Calculates delay as: baseDelay * 2^(attemptCount - 1)
|
|
11
|
+
* Example: attempt 1 -> 100ms, attempt 2 -> 200ms, attempt 3 -> 400ms
|
|
12
|
+
*/
|
|
13
|
+
export declare const calcDelayDurationInMs: RetryDelayCallback;
|
|
7
14
|
export declare class AuthorizationInternalService {
|
|
8
15
|
static igniteClient?: IgniteClient;
|
|
9
16
|
static skipAuthorization(requset: BaseRequest): void;
|
|
10
17
|
static markAuthorized(request: BaseRequest): void;
|
|
11
18
|
static failIfNotCoveredByAuthorization(request: BaseRequest): void;
|
|
12
|
-
static throwOnHttpErrorIfNeeded(response:
|
|
19
|
+
static throwOnHttpErrorIfNeeded(response: Response, placement: string): void;
|
|
13
20
|
static throwOnHttpError(status: number, placement: string): never;
|
|
14
21
|
static generateInternalAuthToken(accountId: number, userId: number): string;
|
|
15
|
-
static setRequestFetchOptions(customMondayFetchOptions:
|
|
16
|
-
static getRequestFetchOptions():
|
|
22
|
+
static setRequestFetchOptions(customMondayFetchOptions: RetryPolicy): void;
|
|
23
|
+
static getRequestFetchOptions(): RetryPolicy;
|
|
17
24
|
static setIgniteClient(client: IgniteClient): void;
|
|
18
25
|
static getRequestTimeout(): number;
|
|
19
26
|
static getRetriesPolicy(): RetryPolicy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-internal-service.d.ts","sourceRoot":"","sources":["../src/authorization-internal-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authorization-internal-service.d.ts","sourceRoot":"","sources":["../src/authorization-internal-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EACf,QAAQ,EACR,WAAW,EACX,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,MAAM,kBAA2B,CAAC;AAQ/C,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,kBAEnC,CAAC;AAIF,qBAAa,4BAA4B;IACvC,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACnC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIpD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIjD,MAAM,CAAC,+BAA+B,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMlE,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAc5E,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IAQjE,MAAM,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIlE,MAAM,CAAC,sBAAsB,CAAC,wBAAwB,EAAE,WAAW;IAOnE,MAAM,CAAC,sBAAsB,IAAI,WAAW;IAI5C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY;IAI3C,MAAM,CAAC,iBAAiB;IA2BxB,MAAM,CAAC,gBAAgB,IAAI,WAAW;CAavC"}
|
|
@@ -25,28 +25,29 @@ const MondayLogger__namespace = /*#__PURE__*/_interopNamespace(MondayLogger);
|
|
|
25
25
|
|
|
26
26
|
const INTERNAL_APP_NAME = 'internal_ms';
|
|
27
27
|
const MAX_RETRIES = 3;
|
|
28
|
-
const RETRY_DELAY_MS =
|
|
28
|
+
const RETRY_DELAY_MS = 20;
|
|
29
29
|
const logger = MondayLogger__namespace.getLogger();
|
|
30
30
|
const defaultMondayFetchOptions = {
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
useRetries: true,
|
|
32
|
+
maxRetries: MAX_RETRIES,
|
|
33
|
+
retryDelayMS: RETRY_DELAY_MS,
|
|
33
34
|
};
|
|
34
35
|
const onRetryCallback = (attempt, error) => {
|
|
35
36
|
if (attempt == MAX_RETRIES) {
|
|
36
37
|
logger.error({ tag: 'authorization-service', attempt, error }, 'Authorization attempt failed');
|
|
37
38
|
}
|
|
38
39
|
else {
|
|
39
|
-
logger.
|
|
40
|
+
logger.debug({ tag: 'authorization-service', attempt, error }, 'Authorization attempt failed, trying again');
|
|
40
41
|
}
|
|
41
42
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
43
|
+
/**
|
|
44
|
+
* Exponential backoff retry delay callback
|
|
45
|
+
* Calculates delay as: baseDelay * 2^(attemptCount - 1)
|
|
46
|
+
* Example: attempt 1 -> 100ms, attempt 2 -> 200ms, attempt 3 -> 400ms
|
|
47
|
+
*/
|
|
48
|
+
const calcDelayDurationInMs = retryData => {
|
|
49
|
+
return RETRY_DELAY_MS * Math.pow(2, retryData.attemptCount - 1);
|
|
50
|
+
};
|
|
50
51
|
let mondayFetchOptions = defaultMondayFetchOptions;
|
|
51
52
|
class AuthorizationInternalService {
|
|
52
53
|
static igniteClient;
|
|
@@ -110,15 +111,22 @@ class AuthorizationInternalService {
|
|
|
110
111
|
}
|
|
111
112
|
static getRetriesPolicy() {
|
|
112
113
|
const fetchOptions = AuthorizationInternalService.getRequestFetchOptions();
|
|
114
|
+
const retryDelayMS = calcDelayDurationInMs;
|
|
113
115
|
return {
|
|
114
|
-
useRetries: fetchOptions.
|
|
115
|
-
maxRetries: fetchOptions.
|
|
116
|
+
useRetries: fetchOptions.useRetries,
|
|
117
|
+
maxRetries: fetchOptions.maxRetries,
|
|
116
118
|
onRetry: onRetryCallback,
|
|
117
|
-
|
|
119
|
+
retryOn: (_attempt, _error, response) => {
|
|
120
|
+
return [439, 500].includes(response?.status);
|
|
121
|
+
},
|
|
122
|
+
retryDelayMS,
|
|
118
123
|
};
|
|
119
124
|
}
|
|
120
125
|
}
|
|
121
126
|
|
|
122
127
|
exports.AuthorizationInternalService = AuthorizationInternalService;
|
|
128
|
+
exports.MAX_RETRIES = MAX_RETRIES;
|
|
129
|
+
exports.RETRY_DELAY_MS = RETRY_DELAY_MS;
|
|
130
|
+
exports.calcDelayDurationInMs = calcDelayDurationInMs;
|
|
123
131
|
exports.logger = logger;
|
|
124
132
|
exports.onRetryCallback = onRetryCallback;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RetryPolicy } from '@mondaydotcomorg/monday-fetch-api';
|
|
2
2
|
import { IgniteClient } from '@mondaydotcomorg/ignite-sdk';
|
|
3
3
|
import { Action, AuthorizationObject, AuthorizationParams, AuthorizationResource } from './types/general';
|
|
4
4
|
import { ScopedAction, ScopedActionPermit, ScopedActionResponseObject, ScopeOptions } from './types/scoped-actions-contracts';
|
|
@@ -7,7 +7,7 @@ export interface AuthorizeResponse {
|
|
|
7
7
|
unauthorizedIds?: number[];
|
|
8
8
|
unauthorizedObjects?: AuthorizationObject[];
|
|
9
9
|
}
|
|
10
|
-
export declare function setRequestFetchOptions(customMondayFetchOptions:
|
|
10
|
+
export declare function setRequestFetchOptions(customMondayFetchOptions: RetryPolicy): void;
|
|
11
11
|
export declare class AuthorizationService {
|
|
12
12
|
private static get graphApi();
|
|
13
13
|
private static _graphApi?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-service.d.ts","sourceRoot":"","sources":["../src/authorization-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authorization-service.d.ts","sourceRoot":"","sources":["../src/authorization-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG1G,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACb,MAAM,kCAAkC,CAAC;AAY1C,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,WAAW,QAE3E;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,qBAAqB,EAAE,EAClC,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;WAMjB,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAAC,0BAA0B,EAAE,CAAC;mBA4CnB,oBAAoB;mBAUpB,oBAAoB;CAmF1C;AAED,wBAAgB,cAAc,CAC5B,MAAM,KAAA,EACN,sCAAsC,GAAE,MAAiD,QAY1F;AAED,wBAAsB,eAAe,kBAMpC;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAiBjH"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { OnRetryCallback, RetryPolicy } from '@mondaydotcomorg/monday-fetch-api';
|
|
1
|
+
import { OnRetryCallback, Response, RetryPolicy, RetryDelayCallback } from '@mondaydotcomorg/monday-fetch-api';
|
|
3
2
|
import { IgniteClient } from '@mondaydotcomorg/ignite-sdk';
|
|
4
3
|
import { BaseRequest } from './types/general';
|
|
4
|
+
export declare const MAX_RETRIES = 3;
|
|
5
|
+
export declare const RETRY_DELAY_MS = 20;
|
|
5
6
|
export declare const logger: import("bunyan");
|
|
6
7
|
export declare const onRetryCallback: OnRetryCallback;
|
|
8
|
+
/**
|
|
9
|
+
* Exponential backoff retry delay callback
|
|
10
|
+
* Calculates delay as: baseDelay * 2^(attemptCount - 1)
|
|
11
|
+
* Example: attempt 1 -> 100ms, attempt 2 -> 200ms, attempt 3 -> 400ms
|
|
12
|
+
*/
|
|
13
|
+
export declare const calcDelayDurationInMs: RetryDelayCallback;
|
|
7
14
|
export declare class AuthorizationInternalService {
|
|
8
15
|
static igniteClient?: IgniteClient;
|
|
9
16
|
static skipAuthorization(requset: BaseRequest): void;
|
|
10
17
|
static markAuthorized(request: BaseRequest): void;
|
|
11
18
|
static failIfNotCoveredByAuthorization(request: BaseRequest): void;
|
|
12
|
-
static throwOnHttpErrorIfNeeded(response:
|
|
19
|
+
static throwOnHttpErrorIfNeeded(response: Response, placement: string): void;
|
|
13
20
|
static throwOnHttpError(status: number, placement: string): never;
|
|
14
21
|
static generateInternalAuthToken(accountId: number, userId: number): string;
|
|
15
|
-
static setRequestFetchOptions(customMondayFetchOptions:
|
|
16
|
-
static getRequestFetchOptions():
|
|
22
|
+
static setRequestFetchOptions(customMondayFetchOptions: RetryPolicy): void;
|
|
23
|
+
static getRequestFetchOptions(): RetryPolicy;
|
|
17
24
|
static setIgniteClient(client: IgniteClient): void;
|
|
18
25
|
static getRequestTimeout(): number;
|
|
19
26
|
static getRetriesPolicy(): RetryPolicy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-internal-service.d.ts","sourceRoot":"","sources":["../../src/authorization-internal-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authorization-internal-service.d.ts","sourceRoot":"","sources":["../../src/authorization-internal-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EACf,QAAQ,EACR,WAAW,EACX,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,MAAM,kBAA2B,CAAC;AAQ/C,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,kBAEnC,CAAC;AAIF,qBAAa,4BAA4B;IACvC,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACnC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIpD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIjD,MAAM,CAAC,+BAA+B,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMlE,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAc5E,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IAQjE,MAAM,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIlE,MAAM,CAAC,sBAAsB,CAAC,wBAAwB,EAAE,WAAW;IAOnE,MAAM,CAAC,sBAAsB,IAAI,WAAW;IAI5C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY;IAI3C,MAAM,CAAC,iBAAiB;IA2BxB,MAAM,CAAC,gBAAgB,IAAI,WAAW;CAavC"}
|
|
@@ -3,28 +3,29 @@ import * as MondayLogger from '@mondaydotcomorg/monday-logger';
|
|
|
3
3
|
|
|
4
4
|
const INTERNAL_APP_NAME = 'internal_ms';
|
|
5
5
|
const MAX_RETRIES = 3;
|
|
6
|
-
const RETRY_DELAY_MS =
|
|
6
|
+
const RETRY_DELAY_MS = 20;
|
|
7
7
|
const logger = MondayLogger.getLogger();
|
|
8
8
|
const defaultMondayFetchOptions = {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
useRetries: true,
|
|
10
|
+
maxRetries: MAX_RETRIES,
|
|
11
|
+
retryDelayMS: RETRY_DELAY_MS,
|
|
11
12
|
};
|
|
12
13
|
const onRetryCallback = (attempt, error) => {
|
|
13
14
|
if (attempt == MAX_RETRIES) {
|
|
14
15
|
logger.error({ tag: 'authorization-service', attempt, error }, 'Authorization attempt failed');
|
|
15
16
|
}
|
|
16
17
|
else {
|
|
17
|
-
logger.
|
|
18
|
+
logger.debug({ tag: 'authorization-service', attempt, error }, 'Authorization attempt failed, trying again');
|
|
18
19
|
}
|
|
19
20
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
21
|
+
/**
|
|
22
|
+
* Exponential backoff retry delay callback
|
|
23
|
+
* Calculates delay as: baseDelay * 2^(attemptCount - 1)
|
|
24
|
+
* Example: attempt 1 -> 100ms, attempt 2 -> 200ms, attempt 3 -> 400ms
|
|
25
|
+
*/
|
|
26
|
+
const calcDelayDurationInMs = retryData => {
|
|
27
|
+
return RETRY_DELAY_MS * Math.pow(2, retryData.attemptCount - 1);
|
|
28
|
+
};
|
|
28
29
|
let mondayFetchOptions = defaultMondayFetchOptions;
|
|
29
30
|
class AuthorizationInternalService {
|
|
30
31
|
static igniteClient;
|
|
@@ -88,13 +89,17 @@ class AuthorizationInternalService {
|
|
|
88
89
|
}
|
|
89
90
|
static getRetriesPolicy() {
|
|
90
91
|
const fetchOptions = AuthorizationInternalService.getRequestFetchOptions();
|
|
92
|
+
const retryDelayMS = calcDelayDurationInMs;
|
|
91
93
|
return {
|
|
92
|
-
useRetries: fetchOptions.
|
|
93
|
-
maxRetries: fetchOptions.
|
|
94
|
+
useRetries: fetchOptions.useRetries,
|
|
95
|
+
maxRetries: fetchOptions.maxRetries,
|
|
94
96
|
onRetry: onRetryCallback,
|
|
95
|
-
|
|
97
|
+
retryOn: (_attempt, _error, response) => {
|
|
98
|
+
return [439, 500].includes(response?.status);
|
|
99
|
+
},
|
|
100
|
+
retryDelayMS,
|
|
96
101
|
};
|
|
97
102
|
}
|
|
98
103
|
}
|
|
99
104
|
|
|
100
|
-
export { AuthorizationInternalService, logger, onRetryCallback };
|
|
105
|
+
export { AuthorizationInternalService, MAX_RETRIES, RETRY_DELAY_MS, calcDelayDurationInMs, logger, onRetryCallback };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RetryPolicy } from '@mondaydotcomorg/monday-fetch-api';
|
|
2
2
|
import { IgniteClient } from '@mondaydotcomorg/ignite-sdk';
|
|
3
3
|
import { Action, AuthorizationObject, AuthorizationParams, AuthorizationResource } from './types/general';
|
|
4
4
|
import { ScopedAction, ScopedActionPermit, ScopedActionResponseObject, ScopeOptions } from './types/scoped-actions-contracts';
|
|
@@ -7,7 +7,7 @@ export interface AuthorizeResponse {
|
|
|
7
7
|
unauthorizedIds?: number[];
|
|
8
8
|
unauthorizedObjects?: AuthorizationObject[];
|
|
9
9
|
}
|
|
10
|
-
export declare function setRequestFetchOptions(customMondayFetchOptions:
|
|
10
|
+
export declare function setRequestFetchOptions(customMondayFetchOptions: RetryPolicy): void;
|
|
11
11
|
export declare class AuthorizationService {
|
|
12
12
|
private static get graphApi();
|
|
13
13
|
private static _graphApi?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-service.d.ts","sourceRoot":"","sources":["../../src/authorization-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authorization-service.d.ts","sourceRoot":"","sources":["../../src/authorization-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG1G,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACb,MAAM,kCAAkC,CAAC;AAY1C,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,WAAW,QAE3E;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,qBAAqB,EAAE,EAClC,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;WAMjB,wBAAwB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAAC,0BAA0B,EAAE,CAAC;mBA4CnB,oBAAoB;mBAUpB,oBAAoB;CAmF1C;AAED,wBAAgB,cAAc,CAC5B,MAAM,KAAA,EACN,sCAAsC,GAAE,MAAiD,QAY1F;AAED,wBAAsB,eAAe,kBAMpC;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAiBjH"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MondayFetchOptions } from '@mondaydotcomorg/monday-fetch';
|
|
2
1
|
import { MetricsClient } from './metrics-service';
|
|
3
2
|
import * as TestKit from './testKit';
|
|
3
|
+
import { RetryPolicy } from '@mondaydotcomorg/monday-fetch-api';
|
|
4
4
|
interface MetricsInitOptions {
|
|
5
5
|
client?: MetricsClient;
|
|
6
6
|
serviceName?: string;
|
|
@@ -10,7 +10,7 @@ interface MetricsInitOptions {
|
|
|
10
10
|
}
|
|
11
11
|
export interface InitOptions {
|
|
12
12
|
prometheus?: any;
|
|
13
|
-
mondayFetchOptions?:
|
|
13
|
+
mondayFetchOptions?: RetryPolicy;
|
|
14
14
|
redisClient?: any;
|
|
15
15
|
grantedFeatureRedisExpirationInSeconds?: number;
|
|
16
16
|
metrics?: MetricsInitOptions;
|
|
@@ -31,4 +31,5 @@ export { CustomRole, BasicRole, RoleType, RoleCreateRequest, RoleUpdateRequest,
|
|
|
31
31
|
export { AttributeAssignment, AttributeOperation, ResourceAttributeDeleteAssignment, ResourceAttributeUpsertOperation, ResourceAttributeDeleteOperation, EntityAttributeDeleteAssignment, EntityAttributeUpsertOperation, EntityAttributeDeleteOperation, ResourceAttributeAssignment as ResourceAttributeAssignmentContract, EntityAttributeAssignment as EntityAttributeAssignmentContract, } from './types/authorization-attributes-contracts';
|
|
32
32
|
export { BaseAuthorizationAttributesService as IAuthorizationAttributesService } from './base-authorization-attributes-service';
|
|
33
33
|
export { TestKit };
|
|
34
|
+
export type { RetryPolicy };
|
|
34
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,iBA6BnD;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,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,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;AACrH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iCAAiC,EACjC,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,IAAI,mCAAmC,EAClE,yBAAyB,IAAI,iCAAiC,GAC/D,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,kCAAkC,IAAI,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAEhI,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MondayFetchOptions } from '@mondaydotcomorg/monday-fetch';
|
|
2
1
|
import { MetricsClient } from './metrics-service';
|
|
3
2
|
import * as TestKit from './testKit';
|
|
3
|
+
import { RetryPolicy } from '@mondaydotcomorg/monday-fetch-api';
|
|
4
4
|
interface MetricsInitOptions {
|
|
5
5
|
client?: MetricsClient;
|
|
6
6
|
serviceName?: string;
|
|
@@ -10,7 +10,7 @@ interface MetricsInitOptions {
|
|
|
10
10
|
}
|
|
11
11
|
export interface InitOptions {
|
|
12
12
|
prometheus?: any;
|
|
13
|
-
mondayFetchOptions?:
|
|
13
|
+
mondayFetchOptions?: RetryPolicy;
|
|
14
14
|
redisClient?: any;
|
|
15
15
|
grantedFeatureRedisExpirationInSeconds?: number;
|
|
16
16
|
metrics?: MetricsInitOptions;
|
|
@@ -31,4 +31,5 @@ export { CustomRole, BasicRole, RoleType, RoleCreateRequest, RoleUpdateRequest,
|
|
|
31
31
|
export { AttributeAssignment, AttributeOperation, ResourceAttributeDeleteAssignment, ResourceAttributeUpsertOperation, ResourceAttributeDeleteOperation, EntityAttributeDeleteAssignment, EntityAttributeUpsertOperation, EntityAttributeDeleteOperation, ResourceAttributeAssignment as ResourceAttributeAssignmentContract, EntityAttributeAssignment as EntityAttributeAssignmentContract, } from './types/authorization-attributes-contracts';
|
|
32
32
|
export { BaseAuthorizationAttributesService as IAuthorizationAttributesService } from './base-authorization-attributes-service';
|
|
33
33
|
export { TestKit };
|
|
34
|
+
export type { RetryPolicy };
|
|
34
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,iBA6BnD;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,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,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;AACrH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iCAAiC,EACjC,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,IAAI,mCAAmC,EAClE,yBAAyB,IAAI,iCAAiC,GAC/D,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,kCAAkC,IAAI,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAEhI,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mondaydotcomorg/monday-authorization",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.5-feat-shaime-delay-retry-when-response-code-is-429-c78b71b",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "BSD-3-Clause",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@mondaydotcomorg/ignite-sdk": "^2.2.7",
|
|
24
|
-
"@mondaydotcomorg/monday-fetch": "^
|
|
24
|
+
"@mondaydotcomorg/monday-fetch": "^2.2.0",
|
|
25
25
|
"@mondaydotcomorg/monday-fetch-api": "^1.0.2",
|
|
26
26
|
"@mondaydotcomorg/monday-jwt": "^3.0.14",
|
|
27
27
|
"@mondaydotcomorg/monday-logger": "^4.0.11",
|
|
@@ -1,37 +1,44 @@
|
|
|
1
1
|
import { signAuthorizationHeader } from '@mondaydotcomorg/monday-jwt';
|
|
2
|
-
import { fetch, MondayFetchOptions } from '@mondaydotcomorg/monday-fetch';
|
|
3
2
|
import * as MondayLogger from '@mondaydotcomorg/monday-logger';
|
|
4
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
NullableErrorWithType,
|
|
5
|
+
OnRetryCallback,
|
|
6
|
+
Response,
|
|
7
|
+
RetryPolicy,
|
|
8
|
+
RetryDelayCallback,
|
|
9
|
+
} from '@mondaydotcomorg/monday-fetch-api';
|
|
5
10
|
import { IgniteClient } from '@mondaydotcomorg/ignite-sdk';
|
|
6
11
|
import { BaseRequest } from './types/general';
|
|
7
12
|
|
|
8
13
|
const INTERNAL_APP_NAME = 'internal_ms';
|
|
9
|
-
const MAX_RETRIES = 3;
|
|
10
|
-
const RETRY_DELAY_MS =
|
|
14
|
+
export const MAX_RETRIES = 3;
|
|
15
|
+
export const RETRY_DELAY_MS = 20;
|
|
11
16
|
export const logger = MondayLogger.getLogger();
|
|
12
17
|
|
|
13
|
-
const defaultMondayFetchOptions:
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
const defaultMondayFetchOptions: RetryPolicy = {
|
|
19
|
+
useRetries: true,
|
|
20
|
+
maxRetries: MAX_RETRIES,
|
|
21
|
+
retryDelayMS: RETRY_DELAY_MS,
|
|
16
22
|
};
|
|
17
23
|
|
|
18
24
|
export const onRetryCallback: OnRetryCallback = (attempt: number, error?: NullableErrorWithType) => {
|
|
19
25
|
if (attempt == MAX_RETRIES) {
|
|
20
26
|
logger.error({ tag: 'authorization-service', attempt, error }, 'Authorization attempt failed');
|
|
21
27
|
} else {
|
|
22
|
-
logger.
|
|
28
|
+
logger.debug({ tag: 'authorization-service', attempt, error }, 'Authorization attempt failed, trying again');
|
|
23
29
|
}
|
|
24
30
|
};
|
|
25
31
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Exponential backoff retry delay callback
|
|
34
|
+
* Calculates delay as: baseDelay * 2^(attemptCount - 1)
|
|
35
|
+
* Example: attempt 1 -> 100ms, attempt 2 -> 200ms, attempt 3 -> 400ms
|
|
36
|
+
*/
|
|
37
|
+
export const calcDelayDurationInMs: RetryDelayCallback = retryData => {
|
|
38
|
+
return RETRY_DELAY_MS * Math.pow(2, retryData.attemptCount - 1);
|
|
39
|
+
};
|
|
33
40
|
|
|
34
|
-
let mondayFetchOptions
|
|
41
|
+
let mondayFetchOptions = defaultMondayFetchOptions;
|
|
35
42
|
|
|
36
43
|
export class AuthorizationInternalService {
|
|
37
44
|
static igniteClient?: IgniteClient;
|
|
@@ -49,7 +56,7 @@ export class AuthorizationInternalService {
|
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
|
|
52
|
-
static throwOnHttpErrorIfNeeded(response:
|
|
59
|
+
static throwOnHttpErrorIfNeeded(response: Response, placement: string): void {
|
|
53
60
|
if (response.ok) {
|
|
54
61
|
return;
|
|
55
62
|
}
|
|
@@ -75,14 +82,14 @@ export class AuthorizationInternalService {
|
|
|
75
82
|
return signAuthorizationHeader({ appName: INTERNAL_APP_NAME, accountId, userId });
|
|
76
83
|
}
|
|
77
84
|
|
|
78
|
-
static setRequestFetchOptions(customMondayFetchOptions:
|
|
85
|
+
static setRequestFetchOptions(customMondayFetchOptions: RetryPolicy) {
|
|
79
86
|
mondayFetchOptions = {
|
|
80
87
|
...defaultMondayFetchOptions,
|
|
81
88
|
...customMondayFetchOptions,
|
|
82
89
|
};
|
|
83
90
|
}
|
|
84
91
|
|
|
85
|
-
static getRequestFetchOptions():
|
|
92
|
+
static getRequestFetchOptions(): RetryPolicy {
|
|
86
93
|
return mondayFetchOptions;
|
|
87
94
|
}
|
|
88
95
|
|
|
@@ -119,11 +126,15 @@ export class AuthorizationInternalService {
|
|
|
119
126
|
|
|
120
127
|
static getRetriesPolicy(): RetryPolicy {
|
|
121
128
|
const fetchOptions = AuthorizationInternalService.getRequestFetchOptions();
|
|
129
|
+
const retryDelayMS = calcDelayDurationInMs;
|
|
122
130
|
return {
|
|
123
|
-
useRetries: fetchOptions.
|
|
124
|
-
maxRetries: fetchOptions.
|
|
131
|
+
useRetries: fetchOptions.useRetries,
|
|
132
|
+
maxRetries: fetchOptions.maxRetries,
|
|
125
133
|
onRetry: onRetryCallback,
|
|
126
|
-
|
|
134
|
+
retryOn: (_attempt, _error, response) => {
|
|
135
|
+
return [439, 500].includes(response?.status);
|
|
136
|
+
},
|
|
137
|
+
retryDelayMS,
|
|
127
138
|
};
|
|
128
139
|
}
|
|
129
140
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { performance } from 'perf_hooks';
|
|
2
|
-
import { MondayFetchOptions } from '@mondaydotcomorg/monday-fetch';
|
|
3
2
|
import { Api } from '@mondaydotcomorg/trident-backend-api';
|
|
4
|
-
import { HttpFetcherError } from '@mondaydotcomorg/monday-fetch-api';
|
|
3
|
+
import { HttpFetcherError, RetryPolicy } from '@mondaydotcomorg/monday-fetch-api';
|
|
5
4
|
import { getIgniteClient, IgniteClient } from '@mondaydotcomorg/ignite-sdk';
|
|
6
5
|
import { Action, AuthorizationObject, AuthorizationParams, AuthorizationResource } from './types/general';
|
|
7
6
|
import { sendAuthorizationCheckResponseTimeMetric } from './prometheus-service';
|
|
@@ -29,7 +28,7 @@ export interface AuthorizeResponse {
|
|
|
29
28
|
unauthorizedObjects?: AuthorizationObject[];
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
export function setRequestFetchOptions(customMondayFetchOptions:
|
|
31
|
+
export function setRequestFetchOptions(customMondayFetchOptions: RetryPolicy) {
|
|
33
32
|
AuthorizationInternalService.setRequestFetchOptions(customMondayFetchOptions);
|
|
34
33
|
}
|
|
35
34
|
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { MondayFetchOptions } from '@mondaydotcomorg/monday-fetch';
|
|
2
1
|
import { setPrometheus } from './prometheus-service';
|
|
3
2
|
import { setIgniteClient, setRedisClient, setRequestFetchOptions } from './authorization-service';
|
|
4
3
|
import { initializeMetrics, MetricsClient } from './metrics-service';
|
|
5
4
|
import * as TestKit from './testKit';
|
|
5
|
+
import { RetryPolicy } from '@mondaydotcomorg/monday-fetch-api';
|
|
6
6
|
|
|
7
7
|
interface MetricsInitOptions {
|
|
8
8
|
client?: MetricsClient;
|
|
@@ -14,7 +14,7 @@ interface MetricsInitOptions {
|
|
|
14
14
|
|
|
15
15
|
export interface InitOptions {
|
|
16
16
|
prometheus?: any;
|
|
17
|
-
mondayFetchOptions?:
|
|
17
|
+
mondayFetchOptions?: RetryPolicy;
|
|
18
18
|
redisClient?: any;
|
|
19
19
|
grantedFeatureRedisExpirationInSeconds?: number;
|
|
20
20
|
metrics?: MetricsInitOptions;
|
|
@@ -94,3 +94,5 @@ export {
|
|
|
94
94
|
export { BaseAuthorizationAttributesService as IAuthorizationAttributesService } from './base-authorization-attributes-service';
|
|
95
95
|
|
|
96
96
|
export { TestKit };
|
|
97
|
+
|
|
98
|
+
export type { RetryPolicy };
|