@skedulo/pulse-solution-services 0.0.12 → 0.0.14
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/CHANGELOG.md +4 -0
- package/README.md +48 -3
- package/dist/clients/files-api-client.js +1 -0
- package/dist/clients/index.js +1 -1
- package/dist/constants/tenant-endpoints.js +1 -1
- package/dist/core/execution-context.js +1 -1
- package/dist/core/request-header-constants.js +1 -1
- package/dist/index.d.ts +550 -530
- package/dist/interfaces/index.js +1 -1
- package/dist/{services/batch-processor → monitoring}/index.js +1 -1
- package/dist/services/graphql/graphql-service.js +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/resource-availability/builder/resource-availability-service.d.ts +1 -1
- package/dist/services/resource-availability/validator/index.d.ts +1 -0
- package/dist/services/resource-availability/validator/index.js +1 -1
- package/dist/services/resource-availability/validator/resource-job-validation.d.ts +1 -1
- package/dist/services/resource-availability/validator/resource-validator.d.ts +1 -1
- package/dist/services/resource-availability/validator/validation-result.d.ts +1 -1
- package/package.json +6 -2
- package/yarn.lock +246 -12
- package/dist/monitoring/monitor-call.decorator.js +0 -1
- package/dist/services/batch-processor/batch-orchestrator.d.ts +0 -18
- package/dist/services/batch-processor/batch-orchestrator.js +0 -1
- package/dist/services/batch-processor/constants.d.ts +0 -22
- package/dist/services/batch-processor/constants.js +0 -1
- package/dist/services/batch-processor/fetching-strategies/batch-number-fetching-strategy.d.ts +0 -6
- package/dist/services/batch-processor/fetching-strategies/batch-number-fetching-strategy.js +0 -1
- package/dist/services/batch-processor/fetching-strategies/cursor-based-fetching-strategy.d.ts +0 -8
- package/dist/services/batch-processor/fetching-strategies/cursor-based-fetching-strategy.js +0 -1
- package/dist/services/batch-processor/fetching-strategies/date-based-fetching-strategy.d.ts +0 -4
- package/dist/services/batch-processor/fetching-strategies/date-based-fetching-strategy.js +0 -1
- package/dist/services/batch-processor/fetching-strategies/fetching-strategy-factory.d.ts +0 -9
- package/dist/services/batch-processor/fetching-strategies/fetching-strategy-factory.js +0 -1
- package/dist/services/batch-processor/fetching-strategies/index.d.ts +0 -1
- package/dist/services/batch-processor/fetching-strategies/index.js +0 -1
- package/dist/services/batch-processor/index.d.ts +0 -2
- package/dist/services/batch-processor/interfaces.d.ts +0 -33
- package/dist/services/batch-processor/interfaces.js +0 -1
- package/dist/services/batch-processor/workers/custom-worker.d.ts +0 -5
- package/dist/services/batch-processor/workers/custom-worker.js +0 -1
- package/dist/services/batch-processor/workers/delete-worker.d.ts +0 -4
- package/dist/services/batch-processor/workers/delete-worker.js +0 -1
- package/dist/services/batch-processor/workers/index.d.ts +0 -2
- package/dist/services/batch-processor/workers/index.js +0 -1
- package/dist/services/batch-processor/workers/update-worker.d.ts +0 -4
- package/dist/services/batch-processor/workers/update-worker.js +0 -1
- package/dist/services/batch-processor/workers/worker-factory.d.ts +0 -6
- package/dist/services/batch-processor/workers/worker-factory.js +0 -1
- package/dist/services/batch-processor/workers/worker-interfaces.d.ts +0 -4
- package/dist/services/batch-processor/workers/worker-interfaces.js +0 -1
- package/dist/services/locking-service.js +0 -1
- /package/dist/interfaces/{locking-service-interfaces.js → files.js} +0 -0
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
- [Mobile Notification Client](#mobile-notification-client)
|
|
16
16
|
- [Configuration Templates](#configuration-templates)
|
|
17
17
|
- [Geo API Client](#geo-api-client)
|
|
18
|
+
- [Files API Client](#files-api-client)
|
|
18
19
|
- [Artifact Client](#artifact-client)
|
|
19
20
|
- [GraphQL Service](#graphql-service)
|
|
20
21
|
- [Query Data](#query-data)
|
|
@@ -122,9 +123,34 @@ const context = ExecutionContext.fromContext(skedContext, {
|
|
|
122
123
|
limits
|
|
123
124
|
});
|
|
124
125
|
```
|
|
126
|
+
### Config Helper
|
|
127
|
+
Retrieves the values of configuration variables defined within a function. To use this helper, the execution context must be initialized from `skedContext`.
|
|
128
|
+
```javascript
|
|
129
|
+
const secretValue = context.configHelper.getString('SECRET_NAME');
|
|
130
|
+
```
|
|
131
|
+
In addition to `getString()`, other available methods include `getNumber()` and `getJson()`.
|
|
125
132
|
|
|
126
133
|
### API Clients
|
|
127
134
|
|
|
135
|
+
#### Base API Client
|
|
136
|
+
Handles requests to any Skedulo API that does not have a dedicated API client implementation.
|
|
137
|
+
|
|
138
|
+
**GET request**
|
|
139
|
+
```javascript
|
|
140
|
+
context.baseClient.performRequest({
|
|
141
|
+
endpoint: `files/avatar?user_ids=<id1>,<id2>`,
|
|
142
|
+
});
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**POST request**
|
|
146
|
+
```javascript
|
|
147
|
+
context.baseClient.performRequest({
|
|
148
|
+
method: "POST",
|
|
149
|
+
endpoint: `function/hello-func/hello-func/ping`,
|
|
150
|
+
body: { message: "Hello" }
|
|
151
|
+
});
|
|
152
|
+
```
|
|
153
|
+
|
|
128
154
|
#### Metadata Client
|
|
129
155
|
Fetches metadata from `/metadata` endpoints.
|
|
130
156
|
```javascript
|
|
@@ -177,7 +203,7 @@ await context.configVarClient.create({
|
|
|
177
203
|
description: "TEST_DESCRIPTION",
|
|
178
204
|
});
|
|
179
205
|
|
|
180
|
-
// Gets a config var
|
|
206
|
+
// Gets a plain-text config var
|
|
181
207
|
const config = await context.configVarClient.get('TEST_KEY');
|
|
182
208
|
|
|
183
209
|
// Deletes a config var
|
|
@@ -381,6 +407,23 @@ console.log(availability[0].entries);
|
|
|
381
407
|
|
|
382
408
|
```
|
|
383
409
|
|
|
410
|
+
#### Files API Client
|
|
411
|
+
**Get avatars**
|
|
412
|
+
```javascript
|
|
413
|
+
// Calls /files/avatar to get a map of (userId -> url) for the given userIds
|
|
414
|
+
const params: GetAvatarParams = {
|
|
415
|
+
userIds: ["<user1>", "<user2>"],
|
|
416
|
+
sizeHint: "small", // Optional - small, thumbnail or full image otherwise
|
|
417
|
+
};
|
|
418
|
+
const result = await context.filesAPIClient.getAvatar(params);
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
**Get attachments**
|
|
422
|
+
```javascript
|
|
423
|
+
// Calls /files/attachments/{parentId} to attachments that belong to the parent
|
|
424
|
+
const attachments = await context.filesAPIClient.getAttachments(parentId);
|
|
425
|
+
```
|
|
426
|
+
|
|
384
427
|
#### Artifact Client
|
|
385
428
|
The `ArtifactClient` provides a unified way to manage various artifact types.
|
|
386
429
|
```javascript
|
|
@@ -449,9 +492,9 @@ await client.delete(
|
|
|
449
492
|
|
|
450
493
|
#### Query data
|
|
451
494
|
```javascript
|
|
452
|
-
// Create a query builder for the
|
|
495
|
+
// Create a query builder for the Jobs object
|
|
453
496
|
const queryBuilder = context.newQueryBuilder({
|
|
454
|
-
objectName: '
|
|
497
|
+
objectName: 'Jobs',
|
|
455
498
|
operationName: 'fetchJobWithJobAllocations',
|
|
456
499
|
readOnly: true
|
|
457
500
|
});
|
|
@@ -494,10 +537,12 @@ const updateResult = await context.graphqlService.mutate({
|
|
|
494
537
|
operationName: 'updateResources',
|
|
495
538
|
records: recordsToUpdate,
|
|
496
539
|
bulkOperation: true // optional
|
|
540
|
+
suppressChangeEvents: true // optional
|
|
497
541
|
});
|
|
498
542
|
```
|
|
499
543
|
|
|
500
544
|
The `bulkOperation` and `readOnly` options help optimize large-scale mutations and read-heavy queries. When enabled, they automatically add the `X-Skedulo-Bulk-Operation` (for mutations) and `X-Skedulo-Read-Only` (for queries) headers to improve performance.
|
|
545
|
+
To reduce the impact on change event processing, especially during high-volume mutations, the `suppressChangeEvents` option can be used. This disables change history tracking, helping to minimize delays.
|
|
501
546
|
|
|
502
547
|
#### Pagination with offset
|
|
503
548
|
```javascript
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __decorate=this&&this.__decorate||function(t,e,n,a){var i,o=arguments.length,r=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r},__metadata=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},__awaiter=this&&this.__awaiter||function(t,e,n,a){return new(n||(n=Promise))((function(i,o){function r(t){try{c(a.next(t))}catch(t){o(t)}}function s(t){try{c(a.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(r,s)}c((a=a.apply(t,e||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FilesAPIClient=void 0;const constants_1=require("../constants"),monitor_call_1=require("../monitoring/decorators/monitor-call"),base_client_1=require("./base-client");class FilesAPIClient extends base_client_1.BaseClient{getAvatar(t){return __awaiter(this,void 0,void 0,(function*(){const{userIds:e,sizeHint:n}=t,a={user_ids:e.join(",")};return n&&(a.size_hint=n),this._performRequest({method:constants_1.HttpMethod.GET,endpoint:constants_1.TENANT_ENDPOINTS.FILES.AVATAR,queryParams:a})}))}getAttachments(t){return __awaiter(this,void 0,void 0,(function*(){return this._performRequest({method:constants_1.HttpMethod.GET,endpoint:constants_1.TENANT_ENDPOINTS.FILES.ATTACHMENTS(t)})}))}}exports.FilesAPIClient=FilesAPIClient,__decorate([(0,monitor_call_1.MonitorCall)(),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],FilesAPIClient.prototype,"getAvatar",null),__decorate([(0,monitor_call_1.MonitorCall)(),__metadata("design:type",Function),__metadata("design:paramtypes",[String]),__metadata("design:returntype",Promise)],FilesAPIClient.prototype,"getAttachments",null);
|
package/dist/clients/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,i){void 0===i&&(i=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,i,o)}:function(e,r,t,i){void 0===i&&(i=t),e[i]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,i){void 0===i&&(i=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,i,o)}:function(e,r,t,i){void 0===i&&(i=t),e[i]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./artifact-client"),exports),__exportStar(require("./availability-api-client"),exports),__exportStar(require("./base-client"),exports),__exportStar(require("./config-features-client"),exports),__exportStar(require("./config-template-client"),exports),__exportStar(require("./config-var-client"),exports),__exportStar(require("./files-api-client"),exports),__exportStar(require("./geo-api-client"),exports),__exportStar(require("./graphql-client"),exports),__exportStar(require("./metadata-client"),exports),__exportStar(require("./mobile-notification-client"),exports),__exportStar(require("./org-preference-client"),exports),__exportStar(require("./vocabulary-client"),exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TENANT_ENDPOINTS=void 0,exports.TENANT_ENDPOINTS={CONFIG_VAR:{CREATE:"configuration/extension",GET:e=>`configuration/extension/${e}`,UPDATE:e=>`configuration/extension/${e}`,DELETE:e=>`configuration/extension/${e}`,SEARCH:"configuration/extension/search"},GRAPHQL:{SINGLE:"graphql/graphql",BATCH:"graphql/graphql/batch"},METADATA:{ALL:"custom/metadata",OBJECT:e=>`custom/metadata/${e}`},ORG_PREFERENCE:{GET:"config/org_preference",UPDATE:"config/org_preference"},CONFIG_TEMPLATE:{GET_TEMPLATES:e=>`config/templates/${e}`,GET_VALUES:e=>`config/template/${e}/values`,UPDATE_VALUES:e=>`config/template/${e}/values`,CREATE:"config/template",DELETE:e=>`config/template/${e}`},CONFIG_FEATURES:{GET:"config/features",UPDATE:e=>`config/features/${e}`},VOCABULARY:{GET_ITEMS:(e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TENANT_ENDPOINTS=void 0,exports.TENANT_ENDPOINTS={CONFIG_VAR:{CREATE:"configuration/extension",GET:e=>`configuration/extension/${e}`,UPDATE:e=>`configuration/extension/${e}`,DELETE:e=>`configuration/extension/${e}`,SEARCH:"configuration/extension/search"},GRAPHQL:{SINGLE:"graphql/graphql",BATCH:"graphql/graphql/batch"},METADATA:{ALL:"custom/metadata",OBJECT:e=>`custom/metadata/${e}`},ORG_PREFERENCE:{GET:"config/org_preference",UPDATE:"config/org_preference"},CONFIG_TEMPLATE:{GET_TEMPLATES:e=>`config/templates/${e}`,GET_VALUES:e=>`config/template/${e}/values`,UPDATE_VALUES:e=>`config/template/${e}/values`,CREATE:"config/template",DELETE:e=>`config/template/${e}`},CONFIG_FEATURES:{GET:"config/features",UPDATE:e=>`config/features/${e}`},VOCABULARY:{GET_ITEMS:(e,t)=>`custom/vocabulary/${e}/${t}`,ADD_ITEM:(e,t)=>`custom/vocabulary/${e}/${t}`,UPDATE_ITEM:(e,t,i)=>`custom/vocabulary/${e}/${t}/${i}`},NOTIFICATIONS:{GET_TEMPLATES:"notifications/v2/templates",DELETE_TEMPLATE:(e,t)=>`notifications/v2/template/${e}/${t}`,SET_TEMPLATE:(e,t)=>`notifications/v2/template/${e}/${t}`,DISPATCH:"notifications/dispatch",NOTIFY:"notifications/notify",NOTIFY_CANCEL:"notifications/notify_cancel",ONE_OFF:"notifications/oneoff",SEND_SMS:"notifications/sms",SMS_CONFIRMATION_REQUEST:"notifications/sms/confirmation_request"},GEOSERVICES:{DISTANCE_MATRIX:"geoservices/distanceMatrix",DIRECTIONS:"geoservices/directions",GEOCODE:"geoservices/geocode",AUTOCOMPLETE:"geoservices/autocomplete",PLACE:"geoservices/place",TIMEZONE:"geoservices/timezone"},AVAILABILITY:{SIMPLE:"availability/simple"},FILES:{AVATAR:"files/avatar",ATTACHMENTS:e=>`files/attachments/${e}`}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExecutionContext=void 0;const function_utilities_1=require("@skedulo/function-utilities"),clients_1=require("../clients"),artifact_client_1=require("../clients/artifact-client"),availability_api_client_1=require("../clients/availability-api-client"),config_features_client_1=require("../clients/config-features-client"),config_template_client_1=require("../clients/config-template-client"),config_var_client_1=require("../clients/config-var-client"),geo_api_client_1=require("../clients/geo-api-client"),graphql_client_1=require("../clients/graphql-client"),metadata_client_1=require("../clients/metadata-client"),mobile_notification_client_1=require("../clients/mobile-notification-client"),org_preference_client_1=require("../clients/org-preference-client"),vocabulary_client_1=require("../clients/vocabulary-client"),logger_1=__importDefault(require("../logging/logger")),monitoring_constants_1=require("../monitoring/monitoring-constants"),monitoring_registry_1=require("../monitoring/monitoring-registry"),cache_service_1=require("../services/cache/cache-service"),storage_1=require("../services/cache/storage"),geoservice_1=require("../services/geoservice"),graphql_1=require("../services/graphql"),lock_service_1=require("../services/lock-service"),metadata_service_1=require("../services/metadata-service"),data_service_1=require("../services/resource-availability/builder/data-service"),resource_availability_service_1=require("../services/resource-availability/builder/resource-availability-service"),resource_builder_1=require("../services/resource-availability/builder/resource-builder"),utils_1=require("../utils"),request_header_constants_1=require("./request-header-constants");class ExecutionContext{constructor(e,t={},i){this.logger=logger_1.default,this.services=new Map,this.skedContext=e,this.contextData={},this._executionOptions=t,this.baseConfig={apiToken:e.auth.token,apiServer:e.auth.baseUrl},(0,monitoring_registry_1.initGlobalMonitorManager)(i)}static fromContext(e,t={},i=monitoring_constants_1.DEFAULT_THRESHOLD_CONFIG){return ExecutionContext.instance?ExecutionContext.instance.updateConfig(e,t,i):ExecutionContext.instance=new ExecutionContext(e,t,Object.assign(Object.assign({},monitoring_constants_1.DEFAULT_THRESHOLD_CONFIG),i)),ExecutionContext.instance}static fromCredentials(e,t={},i=monitoring_constants_1.DEFAULT_THRESHOLD_CONFIG){const r={Authorization:`Bearer ${e.apiToken}`,[request_header_constants_1.REQUEST_HEADERS.SKED_API_SERVER]:e.apiServer},n=(0,function_utilities_1.createSkedContext)(r);return ExecutionContext.instance?ExecutionContext.instance.updateConfig(n,t,i,e):ExecutionContext.instance=new ExecutionContext(n,t,Object.assign(Object.assign({},monitoring_constants_1.DEFAULT_THRESHOLD_CONFIG),i)),ExecutionContext.instance}updateConfig(e,t,i,r){this.skedContext=e,this._executionOptions=Object.assign(Object.assign({},this._executionOptions),t),r&&(this.baseConfig=Object.assign(Object.assign({},r),this.baseConfig))}set executionOptions(e){this._executionOptions=Object.assign(Object.assign({},this._executionOptions),e)}get executionOptions(){return this._executionOptions}getOrCreateService(e,t){return this.services.has(e)||this.services.set(e,t()),this.services.get(e)}get configHelper(){return this.getOrCreateService("configHelper",(()=>new utils_1.ConfigHelper(this.skedContext.configVars)))}get baseClient(){return this.getOrCreateService("baseClient",(()=>new clients_1.BaseClient(this.baseConfig,this.executionOptions)))}get graphqlClient(){return this.getOrCreateService("graphqlClient",(()=>new graphql_client_1.GraphQLClient(this.baseConfig,this.executionOptions)))}get graphqlService(){return this.getOrCreateService("graphqlService",(()=>new graphql_1.GraphQLService(this.graphqlClient)))}get metadataClient(){return this.getOrCreateService("metadataClient",(()=>new metadata_client_1.MetadataClient(this.baseConfig,this.executionOptions)))}get metadataService(){return this.getOrCreateService("metadataService",(()=>new metadata_service_1.MetadataService(this.metadataClient)))}get vocabularyClient(){return this.getOrCreateService("vocabularyClient",(()=>new vocabulary_client_1.VocabularyClient(this.baseConfig,this.executionOptions)))}get orgPreferencesClient(){return this.getOrCreateService("orgPreferencesClient",(()=>new org_preference_client_1.OrgPreferenceClient(this.baseConfig,this.executionOptions)))}get configTemplateClient(){return this.getOrCreateService("configTemplateClient",(()=>new config_template_client_1.ConfigTemplateClient(this.baseConfig,this.executionOptions)))}get configFeaturesClient(){return this.getOrCreateService("configFeaturesClient",(()=>new config_features_client_1.ConfigFeaturesClient(this.baseConfig,this.executionOptions)))}get configVarClient(){return this.getOrCreateService("configVarClient",(()=>new config_var_client_1.ConfigVarClient(this.baseConfig,this.executionOptions)))}get mobileNotificationClient(){return this.getOrCreateService("mobileNotificationClient",(()=>new mobile_notification_client_1.MobileNotificationClient(this.baseConfig,this.executionOptions)))}get geoAPIClient(){return this.getOrCreateService("geoAPIClient",(()=>new geo_api_client_1.GeoAPIClient(this.baseConfig,this.executionOptions)))}get availabilityAPIClient(){return this.getOrCreateService("availabilityAPIClient",(()=>new availability_api_client_1.AvailabilityAPIClient(this.baseConfig,this.executionOptions)))}get geoService(){return this.getOrCreateService("geoService",(()=>new geoservice_1.GeoService(this.geoAPIClient)))}get lockService(){return this.getOrCreateService("lockService",(()=>new lock_service_1.LockService(this.configVarClient)))}get configVarCache(){return this.getOrCreateService("configVarCache",(()=>new cache_service_1.CacheService(new storage_1.ConfigVarCacheStorage(this.configVarClient))))}get inMemoryCache(){return this.getOrCreateService("inMemoryCache",(()=>{const e=new cache_service_1.CacheService(new storage_1.InMemoryCacheStorage);return e.setSecondaryCache(this.configVarCache),e}))}get resourceAvailabilityService(){return this.getOrCreateService("resourceAvailabilityService",(()=>new resource_availability_service_1.ResourceAvailabilityService(this.availabilityAPIClient)))}get dataService(){return this.getOrCreateService("dataService",(()=>new data_service_1.DataService(this.graphqlService)))}get resourceBuilder(){return this.getOrCreateService("resourceBuilder",(()=>new resource_builder_1.ResourceBuilder(this.dataService,this.resourceAvailabilityService)))}newQueryBuilder(e){const t=new graphql_1.GraphQLQueryBuilder(e);return t.setGraphqlService(this.graphqlService),t}newArtifactClient(e){return this.getOrCreateService(`${e}Client`,(()=>new artifact_client_1.ArtifactClient(this.baseConfig,e,this.executionOptions)))}dispose(){this.services.clear()}getExecutionMetrics(){return(0,monitoring_registry_1.getGlobalMonitorManager)().getExecutionMetrics()}}exports.ExecutionContext=ExecutionContext,ExecutionContext.instance=null;
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExecutionContext=void 0;const function_utilities_1=require("@skedulo/function-utilities"),clients_1=require("../clients"),artifact_client_1=require("../clients/artifact-client"),availability_api_client_1=require("../clients/availability-api-client"),config_features_client_1=require("../clients/config-features-client"),config_template_client_1=require("../clients/config-template-client"),config_var_client_1=require("../clients/config-var-client"),files_api_client_1=require("../clients/files-api-client"),geo_api_client_1=require("../clients/geo-api-client"),graphql_client_1=require("../clients/graphql-client"),metadata_client_1=require("../clients/metadata-client"),mobile_notification_client_1=require("../clients/mobile-notification-client"),org_preference_client_1=require("../clients/org-preference-client"),vocabulary_client_1=require("../clients/vocabulary-client"),logger_1=__importDefault(require("../logging/logger")),monitoring_constants_1=require("../monitoring/monitoring-constants"),monitoring_registry_1=require("../monitoring/monitoring-registry"),cache_service_1=require("../services/cache/cache-service"),storage_1=require("../services/cache/storage"),geoservice_1=require("../services/geoservice"),graphql_1=require("../services/graphql"),lock_service_1=require("../services/lock-service"),metadata_service_1=require("../services/metadata-service"),data_service_1=require("../services/resource-availability/builder/data-service"),resource_availability_service_1=require("../services/resource-availability/builder/resource-availability-service"),resource_builder_1=require("../services/resource-availability/builder/resource-builder"),utils_1=require("../utils"),request_header_constants_1=require("./request-header-constants");class ExecutionContext{constructor(e,t={},i){this.logger=logger_1.default,this.services=new Map,this.skedContext=e,this.contextData={},this._executionOptions=t,this.baseConfig={apiToken:e.auth.token,apiServer:e.auth.baseUrl},(0,monitoring_registry_1.initGlobalMonitorManager)(i)}static fromContext(e,t={},i=monitoring_constants_1.DEFAULT_THRESHOLD_CONFIG){return ExecutionContext.instance?ExecutionContext.instance.updateConfig(e,t,i):ExecutionContext.instance=new ExecutionContext(e,t,Object.assign(Object.assign({},monitoring_constants_1.DEFAULT_THRESHOLD_CONFIG),i)),ExecutionContext.instance}static fromCredentials(e,t={},i=monitoring_constants_1.DEFAULT_THRESHOLD_CONFIG){const r={Authorization:`Bearer ${e.apiToken}`,[request_header_constants_1.REQUEST_HEADERS.SKED_API_SERVER]:e.apiServer},n=(0,function_utilities_1.createSkedContext)(r);return ExecutionContext.instance?ExecutionContext.instance.updateConfig(n,t,i,e):ExecutionContext.instance=new ExecutionContext(n,t,Object.assign(Object.assign({},monitoring_constants_1.DEFAULT_THRESHOLD_CONFIG),i)),ExecutionContext.instance}updateConfig(e,t,i,r){this.skedContext=e,this._executionOptions=Object.assign(Object.assign({},this._executionOptions),t),r&&(this.baseConfig=Object.assign(Object.assign({},r),this.baseConfig))}set executionOptions(e){this._executionOptions=Object.assign(Object.assign({},this._executionOptions),e)}get executionOptions(){return this._executionOptions}getOrCreateService(e,t){return this.services.has(e)||this.services.set(e,t()),this.services.get(e)}get configHelper(){return this.getOrCreateService("configHelper",(()=>new utils_1.ConfigHelper(this.skedContext.configVars)))}get baseClient(){return this.getOrCreateService("baseClient",(()=>new clients_1.BaseClient(this.baseConfig,this.executionOptions)))}get graphqlClient(){return this.getOrCreateService("graphqlClient",(()=>new graphql_client_1.GraphQLClient(this.baseConfig,this.executionOptions)))}get graphqlService(){return this.getOrCreateService("graphqlService",(()=>new graphql_1.GraphQLService(this.graphqlClient)))}get metadataClient(){return this.getOrCreateService("metadataClient",(()=>new metadata_client_1.MetadataClient(this.baseConfig,this.executionOptions)))}get metadataService(){return this.getOrCreateService("metadataService",(()=>new metadata_service_1.MetadataService(this.metadataClient)))}get vocabularyClient(){return this.getOrCreateService("vocabularyClient",(()=>new vocabulary_client_1.VocabularyClient(this.baseConfig,this.executionOptions)))}get orgPreferencesClient(){return this.getOrCreateService("orgPreferencesClient",(()=>new org_preference_client_1.OrgPreferenceClient(this.baseConfig,this.executionOptions)))}get configTemplateClient(){return this.getOrCreateService("configTemplateClient",(()=>new config_template_client_1.ConfigTemplateClient(this.baseConfig,this.executionOptions)))}get configFeaturesClient(){return this.getOrCreateService("configFeaturesClient",(()=>new config_features_client_1.ConfigFeaturesClient(this.baseConfig,this.executionOptions)))}get configVarClient(){return this.getOrCreateService("configVarClient",(()=>new config_var_client_1.ConfigVarClient(this.baseConfig,this.executionOptions)))}get mobileNotificationClient(){return this.getOrCreateService("mobileNotificationClient",(()=>new mobile_notification_client_1.MobileNotificationClient(this.baseConfig,this.executionOptions)))}get geoAPIClient(){return this.getOrCreateService("geoAPIClient",(()=>new geo_api_client_1.GeoAPIClient(this.baseConfig,this.executionOptions)))}get availabilityAPIClient(){return this.getOrCreateService("availabilityAPIClient",(()=>new availability_api_client_1.AvailabilityAPIClient(this.baseConfig,this.executionOptions)))}get filesAPIClient(){return this.getOrCreateService("filesAPIClient",(()=>new files_api_client_1.FilesAPIClient(this.baseConfig,this.executionOptions)))}get geoService(){return this.getOrCreateService("geoService",(()=>new geoservice_1.GeoService(this.geoAPIClient)))}get lockService(){return this.getOrCreateService("lockService",(()=>new lock_service_1.LockService(this.configVarClient)))}get configVarCache(){return this.getOrCreateService("configVarCache",(()=>new cache_service_1.CacheService(new storage_1.ConfigVarCacheStorage(this.configVarClient))))}get inMemoryCache(){return this.getOrCreateService("inMemoryCache",(()=>{const e=new cache_service_1.CacheService(new storage_1.InMemoryCacheStorage);return e.setSecondaryCache(this.configVarCache),e}))}get resourceAvailabilityService(){return this.getOrCreateService("resourceAvailabilityService",(()=>new resource_availability_service_1.ResourceAvailabilityService(this.availabilityAPIClient)))}get dataService(){return this.getOrCreateService("dataService",(()=>new data_service_1.DataService(this.graphqlService)))}get resourceBuilder(){return this.getOrCreateService("resourceBuilder",(()=>new resource_builder_1.ResourceBuilder(this.dataService,this.resourceAvailabilityService)))}newQueryBuilder(e){const t=new graphql_1.GraphQLQueryBuilder(e);return t.setGraphqlService(this.graphqlService),t}newArtifactClient(e){return this.getOrCreateService(`${e}Client`,(()=>new artifact_client_1.ArtifactClient(this.baseConfig,e,this.executionOptions)))}dispose(){this.services.clear()}getExecutionMetrics(){return(0,monitoring_registry_1.getGlobalMonitorManager)().getExecutionMetrics()}}exports.ExecutionContext=ExecutionContext,ExecutionContext.instance=null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.REQUEST_HEADERS=void 0,exports.REQUEST_HEADERS={X_SKEDULO_BULK_OPERATION:"X-Skedulo-Bulk-Operation",X_SKEDULO_READ_ONLY:"X-Skedulo-Read-Only",X_SKEDULO_SOURCE:"X-Skedulo-Source",X_GRAPHQL_OPERATION:"X-Graphql-Operation",SKED_FUNCTION_EXECUTION_TYPE:"Sked-Function-Execution-Type",SKED_API_SERVER:"sked-api-server",USER_AGENT:"User-Agent"};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.REQUEST_HEADERS=void 0,exports.REQUEST_HEADERS={X_SKEDULO_BULK_OPERATION:"X-Skedulo-Bulk-Operation",X_SKEDULO_READ_ONLY:"X-Skedulo-Read-Only",X_SKEDULO_SOURCE:"X-Skedulo-Source",X_GRAPHQL_OPERATION:"X-Graphql-Operation",SKED_FUNCTION_EXECUTION_TYPE:"Sked-Function-Execution-Type",SKED_API_SERVER:"sked-api-server",USER_AGENT:"User-Agent",X_SKEDULO_SUPPRESS_CHANGE_EVENTS:"X-Skedulo-Suppress-Change-Events"};
|