@transai/connector-runner-otto-fleet-manager-v2 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/index.cjs +1 -1
- package/index.cjs.map +3 -3
- package/libs/connector-runner-otto-fleet-manager-v2/src/lib/actions/actions-handler.d.ts +1 -2
- package/libs/connector-runner-otto-fleet-manager-v2/src/lib/connector-runner-otto-fleet-manager-v2.d.ts +1 -2
- package/libs/connector-runner-otto-fleet-manager-v2/src/lib/types.d.ts +1 -1
- package/libs/connector-runtime-sdk/src/lib/sdk/offset-store.sdk.interface.d.ts +1 -0
- package/libs/connector-runtime-sdk/src/lib/sdk/processing.sdk.interface.d.ts +17 -0
- package/package.json +1 -1
- package/index.js +0 -2
- package/index.js.map +0 -7
- package/libs/types/src/index.d.ts +0 -7
- package/libs/types/src/lib/cube-query-config.types.d.ts +0 -20
- package/libs/types/src/lib/file-action.types.d.ts +0 -5
- package/libs/types/src/lib/http-status-codes.enum.d.ts +0 -64
- package/libs/types/src/lib/management-api/action-definition.interface.d.ts +0 -12
- package/libs/types/src/lib/management-api/author.interface.d.ts +0 -11
- package/libs/types/src/lib/management-api/chart.interface.d.ts +0 -9
- package/libs/types/src/lib/management-api/connector/connector.interface.d.ts +0 -52
- package/libs/types/src/lib/management-api/connector/connectors.interface.d.ts +0 -38
- package/libs/types/src/lib/management-api/connector-orchestrator-config.interface.d.ts +0 -14
- package/libs/types/src/lib/management-api/cube-dataset.interface.d.ts +0 -94
- package/libs/types/src/lib/management-api/dashboard.interface.d.ts +0 -35
- package/libs/types/src/lib/management-api/dataset/collection.interface.d.ts +0 -10
- package/libs/types/src/lib/management-api/dataset/dataset-record.interface.d.ts +0 -41
- package/libs/types/src/lib/management-api/dataset/dataset.interface.d.ts +0 -118
- package/libs/types/src/lib/management-api/dataset/datasets.interface.d.ts +0 -96
- package/libs/types/src/lib/management-api/dataset/dimension.interface.d.ts +0 -53
- package/libs/types/src/lib/management-api/dataset/dimensions.interface.d.ts +0 -33
- package/libs/types/src/lib/management-api/dataset/filter-group.interface.d.ts +0 -8
- package/libs/types/src/lib/management-api/dataset/filter.interface.d.ts +0 -14
- package/libs/types/src/lib/management-api/dataset/filters.interface.d.ts +0 -7
- package/libs/types/src/lib/management-api/dataset/measure.interface.d.ts +0 -27
- package/libs/types/src/lib/management-api/dataset/measures.interface.d.ts +0 -17
- package/libs/types/src/lib/management-api/dataset/meta.interface.d.ts +0 -9
- package/libs/types/src/lib/management-api/dataset/pre-aggregate.interface.d.ts +0 -41
- package/libs/types/src/lib/management-api/dataset/pre-aggregations.interface.d.ts +0 -26
- package/libs/types/src/lib/management-api/dataset/relation.interface.d.ts +0 -16
- package/libs/types/src/lib/management-api/dataset/relations.interface.d.ts +0 -12
- package/libs/types/src/lib/management-api/dataset/segment.interface.d.ts +0 -17
- package/libs/types/src/lib/management-api/dataset/segments.interface.d.ts +0 -15
- package/libs/types/src/lib/management-api/dataset/switch.interface.d.ts +0 -20
- package/libs/types/src/lib/management-api/dataset/when-item.interface.d.ts +0 -15
- package/libs/types/src/lib/management-api/dataset/when-items.interface.d.ts +0 -14
- package/libs/types/src/lib/management-api/event-origin.interface.d.ts +0 -24
- package/libs/types/src/lib/management-api/index.d.ts +0 -40
- package/libs/types/src/lib/management-api/semantic-trigger/custom-cron-trigger-record.interface.d.ts +0 -6
- package/libs/types/src/lib/management-api/semantic-trigger/index.d.ts +0 -6
- package/libs/types/src/lib/management-api/semantic-trigger/semantic-trigger-filter.interface.d.ts +0 -12
- package/libs/types/src/lib/management-api/semantic-trigger/semantic-trigger-filters.interface.d.ts +0 -10
- package/libs/types/src/lib/management-api/semantic-trigger/semantic-trigger-record.interface.d.ts +0 -6
- package/libs/types/src/lib/management-api/semantic-trigger/semantic-trigger.interface.d.ts +0 -35
- package/libs/types/src/lib/management-api/semantic-trigger/semantic-triggers.interface.d.ts +0 -22
- package/libs/types/src/lib/management-api/template-implementation-overrides.interface.d.ts +0 -150
- package/libs/types/src/lib/management-api/template-implementation.interface.d.ts +0 -314
- package/libs/types/src/lib/management-api/template.interface.d.ts +0 -190
- package/libs/types/src/lib/management-api/tenant.interface.d.ts +0 -8
- package/libs/types/src/lib/management-api/type-enums.d.ts +0 -91
- package/libs/types/src/lib/management-api/web/generic-filter.dto.d.ts +0 -37
- package/libs/types/src/lib/management-api/web/index.d.ts +0 -2
- package/libs/types/src/lib/management-api/web/paginated-response.interface.d.ts +0 -17
- package/libs/types/src/lib/management-api/workflow/action.interface.d.ts +0 -71
- package/libs/types/src/lib/management-api/workflow/enums/index.d.ts +0 -3
- package/libs/types/src/lib/management-api/workflow/enums/node-types.enum.d.ts +0 -14
- package/libs/types/src/lib/management-api/workflow/enums/trigger-types.enum.d.ts +0 -14
- package/libs/types/src/lib/management-api/workflow/enums/workflow-status.enum.d.ts +0 -16
- package/libs/types/src/lib/management-api/workflow/index.d.ts +0 -7
- package/libs/types/src/lib/management-api/workflow/offset.interface.d.ts +0 -14
- package/libs/types/src/lib/management-api/workflow/parameter-mapper.interface.d.ts +0 -26
- package/libs/types/src/lib/management-api/workflow/workflow-definition.interface.d.ts +0 -66
- package/libs/types/src/lib/management-api/workflow/workflow-drawing.interface.d.ts +0 -96
- package/libs/types/src/lib/management-api/workflow/workflow-run.interface.d.ts +0 -57
- package/libs/types/src/lib/message.types.d.ts +0 -59
- package/libs/types/src/lib/response.types.d.ts +0 -27
- package/libs/types/src/lib/types.d.ts +0 -134
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
## 0.13.0 (2026-03-16)
|
|
2
|
+
|
|
3
|
+
### 🧱 Updated Dependencies
|
|
4
|
+
|
|
5
|
+
- Updated @transai/connector-runtime-sdk to 0.10.0
|
|
6
|
+
|
|
7
|
+
## 0.12.0 (2026-03-13)
|
|
8
|
+
|
|
9
|
+
### 🚀 Features
|
|
10
|
+
|
|
11
|
+
- use sdk typings instead of general typings ([#1087](https://github.com/xip-online-applications/xod-core/pull/1087))
|
|
12
|
+
|
|
13
|
+
### 🧱 Updated Dependencies
|
|
14
|
+
|
|
15
|
+
- Updated @transai/connector-runtime-sdk to 0.9.3
|
|
16
|
+
|
|
17
|
+
### ❤️ Thank You
|
|
18
|
+
|
|
19
|
+
- Youri Lefers @yourilefers
|
|
20
|
+
|
|
21
|
+
## 0.11.0 (2026-03-06)
|
|
22
|
+
|
|
23
|
+
This was a version bump only for connector-runner-otto-fleet-manager-v2 to align it with other projects, there were no code changes.
|
|
24
|
+
|
|
1
25
|
## 0.10.1 (2026-03-06)
|
|
2
26
|
|
|
3
27
|
This was a version bump only for connector-runner-otto-fleet-manager-v2 to align it with other projects, there were no code changes.
|
package/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var b=Object.create;var m=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var A=(r,t)=>{for(var e in t)m(r,e,{get:t[e],enumerable:!0})},I=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of y(t))!P.call(r,o)&&o!==e&&m(r,o,{get:()=>t[o],enumerable:!(n=h(t,o))||n.enumerable});return r};var v=(r,t,e)=>(e=r!=null?b(x(r)):{},I(t||!r||!r.__esModule?m(e,"default",{value:r,enumerable:!0}):e,r)),O=r=>I(m({},"__esModule",{value:!0}),r);var k={};A(k,{ConnectorRunnerOttoFleetManagerV2:()=>u});module.exports=O(k);var i=v(require("node:process")),f=class{#e="connector-runtime";#t;constructor(t,e){this.#t=e,i.default.on?i.default.on("message",n=>{n.cmd===this.#e&&e.logger.verbose(`${i.default.pid} Received message from parent process:`,n)}):e.logger.warn("IPC channel is not available. process.on is undefined."),i.default.send||e.logger.warn("IPC channel is not available. process.send is undefined."),t.actions?.forEach(n=>{if(n.config.templates===void 0)return;let o={};Object.entries(n.config.templates).forEach(([a,p])=>{try{o[a]=e.templating.compile(p)}catch(d){e.logger.error(`Error compiling template ${a} for action ${n.identifier}`,d)}}),n.config.parsedTemplates=o})}init=()=>Promise.resolve();start=()=>Promise.resolve();stop=()=>Promise.resolve();set callbackFunction(t){this.connectorSDK.receiver.registerCallback(this.#r(t))}get connectorSDK(){return this.#t}#r(t){return async e=>{let n=await this.#t.receiver.getActionConfig(e);return n?t(e,n):this.#t.receiver.responses.badRequest("Action not found")(e)}}};var l=class{#e;constructor(t){this.#e=t}get jsonrpc(){return"2.0"}async execute(t){let e=Math.floor(1e7+Math.random()*9e7);return(await this.#e.post("/operations",{id:e,jsonrpc:this.jsonrpc,method:this.method,params:t})).data.result.id}};var s=class extends l{static TYPE="create-mission";get method(){return"createMission"}};var g=class{#e;#t;constructor(t,e){this.#e=t,this.#t={[s.TYPE]:new s(e)}}get callbackFunctionChain(){return this.#r(this.#e.receiver.emitEventType(this.#e.receiver.responses.created()))}#r(t){return async(e,n)=>{let o=n.config.parsedTemplates,a=o.action({inputs:e.payload}).trim(),p=this.#t[a];if(!p)return this.#e.receiver.responses.badRequest(`Action ${a} does not exist.`)(e);let d=o.params({inputs:e.payload}).trim(),C=await p.execute(JSON.parse(d));return this.#e.logger.info(`Action ${a} executed successfully with id: ${C}`),t(e)}}};var c=class r{static NAME="otto-fleet-manager-v2-extractor-missions";static INTERVAL=60;#e;#t;constructor(t,e){this.#e=t,this.#t=e}get name(){return r.NAME}async onRun(){let t=new URLSearchParams({limit:"100",offset:"0"});for(;;){let e=await this.#t.get(`/missions?${t.toString()}`);if(await this.#e.sender.documents(e.data.results,{collection:"missions",keyField:"id"}),!e.data.next)break;let n=new URL(e.data.next);if(!n.searchParams.get("offset"))break;t.set("offset",n.searchParams.get("offset")||"0")}}};var u=class extends f{#e;constructor(t,e){super(t,e);let{config:n}=this.connectorSDK;this.#e=this.connectorSDK.httpClient({baseUrl:`https://${n.hostname}/api/fleet/v2`});let o=new g(this.connectorSDK,this.#e);this.callbackFunction=o.callbackFunctionChain}init=async()=>{await Promise.all([this.connectorSDK.processing.registerInterval(c.INTERVAL,new c(this.connectorSDK,this.#e))])}};0&&(module.exports={ConnectorRunnerOttoFleetManagerV2});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../libs/connector-runner-otto-fleet-manager-v2/src/index.ts", "../../../libs/connector-runtime-sdk/src/lib/connector-runtime.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/actions/base-action.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/actions/create-mission.action.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/actions/actions-handler.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/extractors/missions.extractor.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/connector-runner-otto-fleet-manager-v2.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './lib/connector-runner-otto-fleet-manager-v2';\n", "import process from 'node:process';\n\nimport { ConnectorRuntimeInterface } from './connector-runtime.interface';\nimport { CompileDelegate, ConnectorSDKInterface } from './sdk';\nimport {\n ActionInterface,\n BaseConnectorConfig,\n ConnectorInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from './types';\n\nexport interface IpcMessage {\n cmd: string;\n message: string;\n}\n\nexport abstract class ConnectorRuntimeSDK<\n T extends BaseConnectorConfig = BaseConnectorConfig,\n> implements ConnectorRuntimeInterface {\n readonly #IPC_CHANNEL = 'connector-runtime';\n\n readonly #connectorSDK: ConnectorSDKInterface<T>;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK as ConnectorSDKInterface<T>;\n\n if (process.on) {\n process.on('message', (message: IpcMessage) => {\n if (message.cmd === this.#IPC_CHANNEL) {\n connectorSDK.logger.verbose(\n `${process.pid} Received message from parent process:`,\n message,\n );\n }\n });\n } else {\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.on is undefined.',\n );\n }\n\n if (!process.send) {\n // Check if process.send is available\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.send is undefined.',\n );\n }\n\n // eslint-disable-next-line no-restricted-syntax\n connector.actions?.forEach((action: ActionInterface) => {\n if (action.config['templates'] === undefined) {\n return;\n }\n\n const containers: {\n [key: string]: CompileDelegate;\n } = {};\n\n Object.entries(action.config['templates']).forEach(([key, value]) => {\n try {\n // eslint-disable-next-line security/detect-object-injection\n containers[key] = connectorSDK.templating.compile(value);\n } catch (error: unknown) {\n connectorSDK.logger.error(\n `Error compiling template ${key} for action ${action.identifier}`,\n error,\n );\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n action.config['parsedTemplates'] = containers;\n });\n }\n\n public init: () => Promise<void> = () => Promise.resolve();\n\n public start: () => Promise<void> = () => Promise.resolve();\n\n public stop: () => Promise<void> = () => Promise.resolve();\n\n set callbackFunction(\n callback: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ) {\n this.connectorSDK.receiver.registerCallback(\n this.#enrichWithActionConfig(callback),\n );\n }\n\n protected get connectorSDK(): ConnectorSDKInterface<T> {\n return this.#connectorSDK;\n }\n\n #enrichWithActionConfig(\n callbackFunction: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ): (message: XodJobType) => Promise<KafkaCallbackResponse> {\n return async (message: XodJobType) => {\n const action = await this.#connectorSDK.receiver.getActionConfig(message);\n if (!action) {\n return this.#connectorSDK.receiver.responses.badRequest(\n 'Action not found',\n )(message);\n }\n return callbackFunction(message, action);\n };\n }\n}\n", "import { HttpClientSDKInterface } from '@transai/connector-runtime-sdk';\n\nimport { OttoFleetManagerApiAction } from '../types';\n\nexport abstract class BaseAction<\n T = Record<string, string | number | unknown>,\n R = string,\n> implements OttoFleetManagerApiAction<T, R>\n{\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(httpClient: HttpClientSDKInterface) {\n this.#httpClient = httpClient;\n }\n\n get jsonrpc(): string {\n return '2.0';\n }\n\n abstract get method(): string;\n\n async execute(params: T): Promise<R> {\n // 8 digits random id\n const id = Math.floor(10000000 + Math.random() * 90000000);\n\n const response = await this.#httpClient.post<\n { id: number; result: { id: string } },\n {\n id: number;\n jsonrpc: string;\n method: string;\n params: T;\n }\n >('/operations', {\n id,\n jsonrpc: this.jsonrpc,\n method: this.method,\n params,\n });\n\n return response.data.result.id as R;\n }\n}\n", "import { OttoFleetManagerApiMission, OttoFleetManagerApiTask } from '../types';\n\nimport { BaseAction } from './base-action';\n\ntype CreateMissionParams = {\n mission: OttoFleetManagerApiMission;\n tasks?: Array<OttoFleetManagerApiTask>;\n};\n\nexport class CreateMissionAction extends BaseAction<CreateMissionParams> {\n static readonly TYPE = 'create-mission';\n\n get method(): string {\n return 'createMission';\n }\n}\n", "import {\n CompileDelegate,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n} from '@transai/connector-runtime-sdk';\nimport {\n ActionInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { OttoFleetManagerApiAction, OttoFleetManagerV2Config } from '../types';\n\nimport { CreateMissionAction } from './create-mission.action';\n\nexport class ActionsHandler {\n readonly #sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>;\n\n readonly #actionsMap: Record<string, OttoFleetManagerApiAction>;\n\n constructor(\n sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#sdk = sdk;\n this.#actionsMap = {\n [CreateMissionAction.TYPE]: new CreateMissionAction(httpClient),\n };\n }\n\n get callbackFunctionChain(): (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse> {\n return this.#actionCallbackFunction(\n this.#sdk.receiver.emitEventType(this.#sdk.receiver.responses.created()),\n );\n }\n\n #actionCallbackFunction(\n callbackFunction: (message: XodJobType) => Promise<KafkaCallbackResponse>,\n ) {\n return async (\n message: XodJobType,\n action: ActionInterface,\n ): Promise<KafkaCallbackResponse> => {\n const handleBars = action.config['parsedTemplates'] as {\n action: CompileDelegate;\n params: CompileDelegate;\n };\n\n const parsedAction = handleBars\n .action({\n inputs: message.payload,\n })\n .trim();\n\n const actionInstance = this.#actionsMap[parsedAction];\n if (!actionInstance) {\n return this.#sdk.receiver.responses.badRequest(\n `Action ${parsedAction} does not exist.`,\n )(message);\n }\n\n const parsedParams = handleBars\n .params({\n inputs: message.payload,\n })\n .trim();\n\n const id = await actionInstance.execute(JSON.parse(parsedParams));\n this.#sdk.logger.info(\n `Action ${parsedAction} executed successfully with id: ${id}`,\n );\n\n return callbackFunction(message);\n };\n }\n}\n", "import {\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n IntervalHandler,\n} from '@transai/connector-runtime-sdk';\n\nimport {\n OttoFleetManagerApiMission,\n OttoFleetManagerApiResponse,\n OttoFleetManagerV2Config,\n} from '../types';\n\nexport class MissionsExtractor implements IntervalHandler {\n static readonly NAME = 'otto-fleet-manager-v2-extractor-missions';\n\n static readonly INTERVAL = 60;\n\n readonly #sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#sdk = sdk;\n this.#httpClient = httpClient;\n }\n\n get name(): string {\n return MissionsExtractor.NAME;\n }\n\n async onRun(): Promise<void> {\n const searchParams = new URLSearchParams({\n limit: '100',\n offset: '0',\n });\n\n while (true) {\n const missions =\n // eslint-disable-next-line no-await-in-loop\n await this.#httpClient.get<\n OttoFleetManagerApiResponse<OttoFleetManagerApiMission>\n >(`/missions?${searchParams.toString()}`);\n\n // eslint-disable-next-line no-await-in-loop\n await this.#sdk.sender.documents<OttoFleetManagerApiMission>(\n missions.data.results,\n {\n collection: 'missions',\n keyField: 'id',\n },\n );\n\n if (!missions.data.next) {\n break;\n }\n\n const url = new URL(missions.data.next);\n if (!url.searchParams.get('offset')) {\n break;\n }\n\n searchParams.set('offset', url.searchParams.get('offset') || '0');\n }\n }\n}\n", "import {\n ConnectorRuntimeSDK,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n} from '@transai/connector-runtime-sdk';\nimport { ConnectorInterface } from '@xip-online-data/types';\n\nimport { ActionsHandler } from './actions/actions-handler';\nimport { MissionsExtractor } from './extractors/missions.extractor';\nimport { OttoFleetManagerV2Config } from './types';\n\nexport class ConnectorRunnerOttoFleetManagerV2 extends ConnectorRuntimeSDK<OttoFleetManagerV2Config> {\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n super(connector, connectorSDK);\n\n const { config } = this.connectorSDK;\n this.#httpClient = this.connectorSDK.httpClient({\n baseUrl: `https://${config.hostname}/api/fleet/v2`,\n });\n\n const actionsHandler = new ActionsHandler(\n this.connectorSDK,\n this.#httpClient,\n );\n\n this.callbackFunction = actionsHandler.callbackFunctionChain;\n }\n\n override init = async (): Promise<void> => {\n await Promise.all([\n this.connectorSDK.processing.registerInterval(\n MissionsExtractor.INTERVAL,\n new MissionsExtractor(this.connectorSDK, this.#httpClient),\n ),\n ]);\n };\n}\n"],
|
|
5
|
-
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uCAAAE,IAAA,eAAAC,EAAAH,GCAA,IAAAI,EAAoB,2BAiBEC,EAAf,KAEgC,
|
|
6
|
-
"names": ["index_exports", "__export", "ConnectorRunnerOttoFleetManagerV2", "__toCommonJS", "import_node_process", "ConnectorRuntimeSDK", "
|
|
4
|
+
"sourcesContent": ["export * from './lib/connector-runner-otto-fleet-manager-v2';\n", "import process from 'node:process';\n\nimport { ConnectorRuntimeInterface } from './connector-runtime.interface';\nimport { CompileDelegate, ConnectorSDKInterface } from './sdk';\nimport {\n ActionInterface,\n BaseConnectorConfig,\n ConnectorInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from './types';\n\nexport interface IpcMessage {\n cmd: string;\n message: string;\n}\n\nexport abstract class ConnectorRuntimeSDK<\n T extends BaseConnectorConfig = BaseConnectorConfig,\n> implements ConnectorRuntimeInterface {\n readonly #IPC_CHANNEL = 'connector-runtime';\n\n readonly #connectorSDK: ConnectorSDKInterface<T>;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK as ConnectorSDKInterface<T>;\n\n if (process.on) {\n process.on('message', (message: IpcMessage) => {\n if (message.cmd === this.#IPC_CHANNEL) {\n connectorSDK.logger.verbose(\n `${process.pid} Received message from parent process:`,\n message,\n );\n }\n });\n } else {\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.on is undefined.',\n );\n }\n\n if (!process.send) {\n // Check if process.send is available\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.send is undefined.',\n );\n }\n\n // eslint-disable-next-line no-restricted-syntax\n connector.actions?.forEach((action: ActionInterface) => {\n if (action.config['templates'] === undefined) {\n return;\n }\n\n const containers: {\n [key: string]: CompileDelegate;\n } = {};\n\n Object.entries(action.config['templates']).forEach(([key, value]) => {\n try {\n // eslint-disable-next-line security/detect-object-injection\n containers[key] = connectorSDK.templating.compile(value);\n } catch (error: unknown) {\n connectorSDK.logger.error(\n `Error compiling template ${key} for action ${action.identifier}`,\n error,\n );\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n action.config['parsedTemplates'] = containers;\n });\n }\n\n public init: () => Promise<void> = () => Promise.resolve();\n\n public start: () => Promise<void> = () => Promise.resolve();\n\n public stop: () => Promise<void> = () => Promise.resolve();\n\n set callbackFunction(\n callback: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ) {\n this.connectorSDK.receiver.registerCallback(\n this.#enrichWithActionConfig(callback),\n );\n }\n\n protected get connectorSDK(): ConnectorSDKInterface<T> {\n return this.#connectorSDK;\n }\n\n #enrichWithActionConfig(\n callbackFunction: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ): (message: XodJobType) => Promise<KafkaCallbackResponse> {\n return async (message: XodJobType) => {\n const action = await this.#connectorSDK.receiver.getActionConfig(message);\n if (!action) {\n return this.#connectorSDK.receiver.responses.badRequest(\n 'Action not found',\n )(message);\n }\n return callbackFunction(message, action);\n };\n }\n}\n", "import { HttpClientSDKInterface } from '@transai/connector-runtime-sdk';\n\nimport { OttoFleetManagerApiAction } from '../types';\n\nexport abstract class BaseAction<\n T = Record<string, string | number | unknown>,\n R = string,\n> implements OttoFleetManagerApiAction<T, R>\n{\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(httpClient: HttpClientSDKInterface) {\n this.#httpClient = httpClient;\n }\n\n get jsonrpc(): string {\n return '2.0';\n }\n\n abstract get method(): string;\n\n async execute(params: T): Promise<R> {\n // 8 digits random id\n const id = Math.floor(10000000 + Math.random() * 90000000);\n\n const response = await this.#httpClient.post<\n { id: number; result: { id: string } },\n {\n id: number;\n jsonrpc: string;\n method: string;\n params: T;\n }\n >('/operations', {\n id,\n jsonrpc: this.jsonrpc,\n method: this.method,\n params,\n });\n\n return response.data.result.id as R;\n }\n}\n", "import { OttoFleetManagerApiMission, OttoFleetManagerApiTask } from '../types';\n\nimport { BaseAction } from './base-action';\n\ntype CreateMissionParams = {\n mission: OttoFleetManagerApiMission;\n tasks?: Array<OttoFleetManagerApiTask>;\n};\n\nexport class CreateMissionAction extends BaseAction<CreateMissionParams> {\n static readonly TYPE = 'create-mission';\n\n get method(): string {\n return 'createMission';\n }\n}\n", "import {\n CompileDelegate,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n ActionInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from '@transai/connector-runtime-sdk';\n\nimport { OttoFleetManagerApiAction, OttoFleetManagerV2Config } from '../types';\n\nimport { CreateMissionAction } from './create-mission.action';\n\nexport class ActionsHandler {\n readonly #sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>;\n\n readonly #actionsMap: Record<string, OttoFleetManagerApiAction>;\n\n constructor(\n sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#sdk = sdk;\n this.#actionsMap = {\n [CreateMissionAction.TYPE]: new CreateMissionAction(httpClient),\n };\n }\n\n get callbackFunctionChain(): (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse> {\n return this.#actionCallbackFunction(\n this.#sdk.receiver.emitEventType(this.#sdk.receiver.responses.created()),\n );\n }\n\n #actionCallbackFunction(\n callbackFunction: (message: XodJobType) => Promise<KafkaCallbackResponse>,\n ) {\n return async (\n message: XodJobType,\n action: ActionInterface,\n ): Promise<KafkaCallbackResponse> => {\n const handleBars = action.config['parsedTemplates'] as {\n action: CompileDelegate;\n params: CompileDelegate;\n };\n\n const parsedAction = handleBars\n .action({\n inputs: message.payload,\n })\n .trim();\n\n const actionInstance = this.#actionsMap[parsedAction];\n if (!actionInstance) {\n return this.#sdk.receiver.responses.badRequest(\n `Action ${parsedAction} does not exist.`,\n )(message);\n }\n\n const parsedParams = handleBars\n .params({\n inputs: message.payload,\n })\n .trim();\n\n const id = await actionInstance.execute(JSON.parse(parsedParams));\n this.#sdk.logger.info(\n `Action ${parsedAction} executed successfully with id: ${id}`,\n );\n\n return callbackFunction(message);\n };\n }\n}\n", "import {\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n IntervalHandler,\n} from '@transai/connector-runtime-sdk';\n\nimport {\n OttoFleetManagerApiMission,\n OttoFleetManagerApiResponse,\n OttoFleetManagerV2Config,\n} from '../types';\n\nexport class MissionsExtractor implements IntervalHandler {\n static readonly NAME = 'otto-fleet-manager-v2-extractor-missions';\n\n static readonly INTERVAL = 60;\n\n readonly #sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#sdk = sdk;\n this.#httpClient = httpClient;\n }\n\n get name(): string {\n return MissionsExtractor.NAME;\n }\n\n async onRun(): Promise<void> {\n const searchParams = new URLSearchParams({\n limit: '100',\n offset: '0',\n });\n\n while (true) {\n const missions =\n // eslint-disable-next-line no-await-in-loop\n await this.#httpClient.get<\n OttoFleetManagerApiResponse<OttoFleetManagerApiMission>\n >(`/missions?${searchParams.toString()}`);\n\n // eslint-disable-next-line no-await-in-loop\n await this.#sdk.sender.documents<OttoFleetManagerApiMission>(\n missions.data.results,\n {\n collection: 'missions',\n keyField: 'id',\n },\n );\n\n if (!missions.data.next) {\n break;\n }\n\n const url = new URL(missions.data.next);\n if (!url.searchParams.get('offset')) {\n break;\n }\n\n searchParams.set('offset', url.searchParams.get('offset') || '0');\n }\n }\n}\n", "import {\n ConnectorRuntimeSDK,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n ConnectorInterface,\n} from '@transai/connector-runtime-sdk';\n\nimport { ActionsHandler } from './actions/actions-handler';\nimport { MissionsExtractor } from './extractors/missions.extractor';\nimport { OttoFleetManagerV2Config } from './types';\n\nexport class ConnectorRunnerOttoFleetManagerV2 extends ConnectorRuntimeSDK<OttoFleetManagerV2Config> {\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n super(connector, connectorSDK);\n\n const { config } = this.connectorSDK;\n this.#httpClient = this.connectorSDK.httpClient({\n baseUrl: `https://${config.hostname}/api/fleet/v2`,\n });\n\n const actionsHandler = new ActionsHandler(\n this.connectorSDK,\n this.#httpClient,\n );\n\n this.callbackFunction = actionsHandler.callbackFunctionChain;\n }\n\n override init = async (): Promise<void> => {\n await Promise.all([\n this.connectorSDK.processing.registerInterval(\n MissionsExtractor.INTERVAL,\n new MissionsExtractor(this.connectorSDK, this.#httpClient),\n ),\n ]);\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["index_exports", "__export", "ConnectorRunnerOttoFleetManagerV2", "__toCommonJS", "import_node_process", "ConnectorRuntimeSDK", "#IPC_CHANNEL", "#connectorSDK", "connector", "connectorSDK", "process", "message", "action", "containers", "key", "value", "error", "callback", "#enrichWithActionConfig", "callbackFunction", "BaseAction", "#httpClient", "httpClient", "params", "id", "CreateMissionAction", "BaseAction", "ActionsHandler", "#sdk", "#actionsMap", "sdk", "httpClient", "CreateMissionAction", "#actionCallbackFunction", "callbackFunction", "message", "action", "handleBars", "parsedAction", "actionInstance", "parsedParams", "id", "MissionsExtractor", "_MissionsExtractor", "#sdk", "#httpClient", "sdk", "httpClient", "searchParams", "missions", "url", "ConnectorRunnerOttoFleetManagerV2", "ConnectorRuntimeSDK", "#httpClient", "connector", "connectorSDK", "config", "actionsHandler", "ActionsHandler", "MissionsExtractor"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ConnectorSDKInterface, HttpClientSDKInterface } from '@transai/connector-runtime-sdk';
|
|
2
|
-
import { ActionInterface, KafkaCallbackResponse, XodJobType } from '@xip-online-data/types';
|
|
1
|
+
import { ConnectorSDKInterface, HttpClientSDKInterface, ActionInterface, KafkaCallbackResponse, XodJobType } from '@transai/connector-runtime-sdk';
|
|
3
2
|
import { OttoFleetManagerV2Config } from '../types';
|
|
4
3
|
export declare class ActionsHandler {
|
|
5
4
|
#private;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ConnectorRuntimeSDK, ConnectorSDKInterface } from '@transai/connector-runtime-sdk';
|
|
2
|
-
import { ConnectorInterface } from '@xip-online-data/types';
|
|
1
|
+
import { ConnectorRuntimeSDK, ConnectorSDKInterface, ConnectorInterface } from '@transai/connector-runtime-sdk';
|
|
3
2
|
import { OttoFleetManagerV2Config } from './types';
|
|
4
3
|
export declare class ConnectorRunnerOttoFleetManagerV2 extends ConnectorRuntimeSDK<OttoFleetManagerV2Config> {
|
|
5
4
|
#private;
|
|
@@ -1,11 +1,28 @@
|
|
|
1
|
+
/** The default timeout is 10 minutes */
|
|
2
|
+
export declare const DEFAULT_TIMEOUT_SECONDS: number;
|
|
1
3
|
export interface IntervalHandler {
|
|
2
4
|
name?: string;
|
|
3
5
|
onInit?: () => Promise<void> | void;
|
|
4
6
|
onRun: () => Promise<void> | void;
|
|
5
7
|
onStop?: () => Promise<void> | void;
|
|
6
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Options for configuring an interval registered via {@link ProcessingSDKInterface.registerInterval}.
|
|
11
|
+
*/
|
|
7
12
|
export type RegisterIntervalOptions = {
|
|
13
|
+
/**
|
|
14
|
+
* If true, the handler will be invoked immediately once on registration,
|
|
15
|
+
* in addition to subsequent scheduled executions.
|
|
16
|
+
*/
|
|
8
17
|
immediate?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Optional timeout, in seconds, for the interval.
|
|
20
|
+
*
|
|
21
|
+
* This value should be a positive number representing the maximum time,
|
|
22
|
+
* in seconds, that the interval is allowed to run before being considered
|
|
23
|
+
* timed out. Callers should not pass 0 or negative values.
|
|
24
|
+
*/
|
|
25
|
+
timeout?: number;
|
|
9
26
|
};
|
|
10
27
|
export interface ProcessingSDKInterface {
|
|
11
28
|
registerInterval(intervalSeconds: number, handler: IntervalHandler, options?: RegisterIntervalOptions): Promise<string>;
|
package/package.json
CHANGED
package/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import p from"node:process";var m=class{constructor(t,e){this.#e="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#t=e,p.on?p.on("message",r=>{r.cmd===this.#e&&e.logger.verbose(`${p.pid} Received message from parent process:`,r)}):e.logger.warn("IPC channel is not available. process.on is undefined."),p.send||e.logger.warn("IPC channel is not available. process.send is undefined."),t.actions?.forEach(r=>{if(r.config.templates===void 0)return;let o={};Object.entries(r.config.templates).forEach(([n,c])=>{try{o[n]=e.templating.compile(c)}catch(g){e.logger.error(`Error compiling template ${n} for action ${r.identifier}`,g)}}),r.config.parsedTemplates=o})}#e;#t;set callbackFunction(t){this.connectorSDK.receiver.registerCallback(this.#r(t))}get connectorSDK(){return this.#t}#r(t){return async e=>{let r=await this.#t.receiver.getActionConfig(e);return r?t(e,r):this.#t.receiver.responses.badRequest("Action not found")(e)}}};var f=class{#e;constructor(t){this.#e=t}get jsonrpc(){return"2.0"}async execute(t){let e=Math.floor(1e7+Math.random()*9e7);return(await this.#e.post("/operations",{id:e,jsonrpc:this.jsonrpc,method:this.method,params:t})).data.result.id}};var i=class extends f{static{this.TYPE="create-mission"}get method(){return"createMission"}};var l=class{#e;#t;constructor(t,e){this.#e=t,this.#t={[i.TYPE]:new i(e)}}get callbackFunctionChain(){return this.#r(this.#e.receiver.emitEventType(this.#e.receiver.responses.created()))}#r(t){return async(e,r)=>{let o=r.config.parsedTemplates,n=o.action({inputs:e.payload}).trim(),c=this.#t[n];if(!c)return this.#e.receiver.responses.badRequest(`Action ${n} does not exist.`)(e);let g=o.params({inputs:e.payload}).trim(),u=await c.execute(JSON.parse(g));return this.#e.logger.info(`Action ${n} executed successfully with id: ${u}`),t(e)}}};var s=class a{static{this.NAME="otto-fleet-manager-v2-extractor-missions"}static{this.INTERVAL=60}#e;#t;constructor(t,e){this.#e=t,this.#t=e}get name(){return a.NAME}async onRun(){let t=new URLSearchParams({limit:"100",offset:"0"});for(;;){let e=await this.#t.get(`/missions?${t.toString()}`);if(await this.#e.sender.documents(e.data.results,{collection:"missions",keyField:"id"}),!e.data.next)break;let r=new URL(e.data.next);if(!r.searchParams.get("offset"))break;t.set("offset",r.searchParams.get("offset")||"0")}}};var d=class extends m{constructor(e,r){super(e,r);this.init=async()=>{await Promise.all([this.connectorSDK.processing.registerInterval(s.INTERVAL,new s(this.connectorSDK,this.#e))])};let{config:o}=this.connectorSDK;this.#e=this.connectorSDK.httpClient({baseUrl:`https://${o.hostname}/api/fleet/v2`});let n=new l(this.connectorSDK,this.#e);this.callbackFunction=n.callbackFunctionChain}#e};export{d as ConnectorRunnerOttoFleetManagerV2};
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
package/index.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../libs/connector-runtime-sdk/src/lib/connector-runtime.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/actions/base-action.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/actions/create-mission.action.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/actions/actions-handler.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/extractors/missions.extractor.ts", "../../../libs/connector-runner-otto-fleet-manager-v2/src/lib/connector-runner-otto-fleet-manager-v2.ts"],
|
|
4
|
-
"sourcesContent": ["import process from 'node:process';\n\nimport { ConnectorRuntimeInterface } from './connector-runtime.interface';\nimport { CompileDelegate, ConnectorSDKInterface } from './sdk';\nimport {\n ActionInterface,\n BaseConnectorConfig,\n ConnectorInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from './types';\n\nexport interface IpcMessage {\n cmd: string;\n message: string;\n}\n\nexport abstract class ConnectorRuntimeSDK<\n T extends BaseConnectorConfig = BaseConnectorConfig,\n> implements ConnectorRuntimeInterface {\n readonly #IPC_CHANNEL = 'connector-runtime';\n\n readonly #connectorSDK: ConnectorSDKInterface<T>;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK as ConnectorSDKInterface<T>;\n\n if (process.on) {\n process.on('message', (message: IpcMessage) => {\n if (message.cmd === this.#IPC_CHANNEL) {\n connectorSDK.logger.verbose(\n `${process.pid} Received message from parent process:`,\n message,\n );\n }\n });\n } else {\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.on is undefined.',\n );\n }\n\n if (!process.send) {\n // Check if process.send is available\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.send is undefined.',\n );\n }\n\n // eslint-disable-next-line no-restricted-syntax\n connector.actions?.forEach((action: ActionInterface) => {\n if (action.config['templates'] === undefined) {\n return;\n }\n\n const containers: {\n [key: string]: CompileDelegate;\n } = {};\n\n Object.entries(action.config['templates']).forEach(([key, value]) => {\n try {\n // eslint-disable-next-line security/detect-object-injection\n containers[key] = connectorSDK.templating.compile(value);\n } catch (error: unknown) {\n connectorSDK.logger.error(\n `Error compiling template ${key} for action ${action.identifier}`,\n error,\n );\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n action.config['parsedTemplates'] = containers;\n });\n }\n\n public init: () => Promise<void> = () => Promise.resolve();\n\n public start: () => Promise<void> = () => Promise.resolve();\n\n public stop: () => Promise<void> = () => Promise.resolve();\n\n set callbackFunction(\n callback: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ) {\n this.connectorSDK.receiver.registerCallback(\n this.#enrichWithActionConfig(callback),\n );\n }\n\n protected get connectorSDK(): ConnectorSDKInterface<T> {\n return this.#connectorSDK;\n }\n\n #enrichWithActionConfig(\n callbackFunction: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ): (message: XodJobType) => Promise<KafkaCallbackResponse> {\n return async (message: XodJobType) => {\n const action = await this.#connectorSDK.receiver.getActionConfig(message);\n if (!action) {\n return this.#connectorSDK.receiver.responses.badRequest(\n 'Action not found',\n )(message);\n }\n return callbackFunction(message, action);\n };\n }\n}\n", "import { HttpClientSDKInterface } from '@transai/connector-runtime-sdk';\n\nimport { OttoFleetManagerApiAction } from '../types';\n\nexport abstract class BaseAction<\n T = Record<string, string | number | unknown>,\n R = string,\n> implements OttoFleetManagerApiAction<T, R>\n{\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(httpClient: HttpClientSDKInterface) {\n this.#httpClient = httpClient;\n }\n\n get jsonrpc(): string {\n return '2.0';\n }\n\n abstract get method(): string;\n\n async execute(params: T): Promise<R> {\n // 8 digits random id\n const id = Math.floor(10000000 + Math.random() * 90000000);\n\n const response = await this.#httpClient.post<\n { id: number; result: { id: string } },\n {\n id: number;\n jsonrpc: string;\n method: string;\n params: T;\n }\n >('/operations', {\n id,\n jsonrpc: this.jsonrpc,\n method: this.method,\n params,\n });\n\n return response.data.result.id as R;\n }\n}\n", "import { OttoFleetManagerApiMission, OttoFleetManagerApiTask } from '../types';\n\nimport { BaseAction } from './base-action';\n\ntype CreateMissionParams = {\n mission: OttoFleetManagerApiMission;\n tasks?: Array<OttoFleetManagerApiTask>;\n};\n\nexport class CreateMissionAction extends BaseAction<CreateMissionParams> {\n static readonly TYPE = 'create-mission';\n\n get method(): string {\n return 'createMission';\n }\n}\n", "import {\n CompileDelegate,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n} from '@transai/connector-runtime-sdk';\nimport {\n ActionInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { OttoFleetManagerApiAction, OttoFleetManagerV2Config } from '../types';\n\nimport { CreateMissionAction } from './create-mission.action';\n\nexport class ActionsHandler {\n readonly #sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>;\n\n readonly #actionsMap: Record<string, OttoFleetManagerApiAction>;\n\n constructor(\n sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#sdk = sdk;\n this.#actionsMap = {\n [CreateMissionAction.TYPE]: new CreateMissionAction(httpClient),\n };\n }\n\n get callbackFunctionChain(): (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse> {\n return this.#actionCallbackFunction(\n this.#sdk.receiver.emitEventType(this.#sdk.receiver.responses.created()),\n );\n }\n\n #actionCallbackFunction(\n callbackFunction: (message: XodJobType) => Promise<KafkaCallbackResponse>,\n ) {\n return async (\n message: XodJobType,\n action: ActionInterface,\n ): Promise<KafkaCallbackResponse> => {\n const handleBars = action.config['parsedTemplates'] as {\n action: CompileDelegate;\n params: CompileDelegate;\n };\n\n const parsedAction = handleBars\n .action({\n inputs: message.payload,\n })\n .trim();\n\n const actionInstance = this.#actionsMap[parsedAction];\n if (!actionInstance) {\n return this.#sdk.receiver.responses.badRequest(\n `Action ${parsedAction} does not exist.`,\n )(message);\n }\n\n const parsedParams = handleBars\n .params({\n inputs: message.payload,\n })\n .trim();\n\n const id = await actionInstance.execute(JSON.parse(parsedParams));\n this.#sdk.logger.info(\n `Action ${parsedAction} executed successfully with id: ${id}`,\n );\n\n return callbackFunction(message);\n };\n }\n}\n", "import {\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n IntervalHandler,\n} from '@transai/connector-runtime-sdk';\n\nimport {\n OttoFleetManagerApiMission,\n OttoFleetManagerApiResponse,\n OttoFleetManagerV2Config,\n} from '../types';\n\nexport class MissionsExtractor implements IntervalHandler {\n static readonly NAME = 'otto-fleet-manager-v2-extractor-missions';\n\n static readonly INTERVAL = 60;\n\n readonly #sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n sdk: ConnectorSDKInterface<OttoFleetManagerV2Config>,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#sdk = sdk;\n this.#httpClient = httpClient;\n }\n\n get name(): string {\n return MissionsExtractor.NAME;\n }\n\n async onRun(): Promise<void> {\n const searchParams = new URLSearchParams({\n limit: '100',\n offset: '0',\n });\n\n while (true) {\n const missions =\n // eslint-disable-next-line no-await-in-loop\n await this.#httpClient.get<\n OttoFleetManagerApiResponse<OttoFleetManagerApiMission>\n >(`/missions?${searchParams.toString()}`);\n\n // eslint-disable-next-line no-await-in-loop\n await this.#sdk.sender.documents<OttoFleetManagerApiMission>(\n missions.data.results,\n {\n collection: 'missions',\n keyField: 'id',\n },\n );\n\n if (!missions.data.next) {\n break;\n }\n\n const url = new URL(missions.data.next);\n if (!url.searchParams.get('offset')) {\n break;\n }\n\n searchParams.set('offset', url.searchParams.get('offset') || '0');\n }\n }\n}\n", "import {\n ConnectorRuntimeSDK,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n} from '@transai/connector-runtime-sdk';\nimport { ConnectorInterface } from '@xip-online-data/types';\n\nimport { ActionsHandler } from './actions/actions-handler';\nimport { MissionsExtractor } from './extractors/missions.extractor';\nimport { OttoFleetManagerV2Config } from './types';\n\nexport class ConnectorRunnerOttoFleetManagerV2 extends ConnectorRuntimeSDK<OttoFleetManagerV2Config> {\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n super(connector, connectorSDK);\n\n const { config } = this.connectorSDK;\n this.#httpClient = this.connectorSDK.httpClient({\n baseUrl: `https://${config.hostname}/api/fleet/v2`,\n });\n\n const actionsHandler = new ActionsHandler(\n this.connectorSDK,\n this.#httpClient,\n );\n\n this.callbackFunction = actionsHandler.callbackFunctionChain;\n }\n\n override init = async (): Promise<void> => {\n await Promise.all([\n this.connectorSDK.processing.registerInterval(\n MissionsExtractor.INTERVAL,\n new MissionsExtractor(this.connectorSDK, this.#httpClient),\n ),\n ]);\n };\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["process", "ConnectorRuntimeSDK", "connector", "connectorSDK", "#IPC_CHANNEL", "#connectorSDK", "message", "action", "containers", "key", "value", "error", "callback", "#enrichWithActionConfig", "callbackFunction", "BaseAction", "#httpClient", "httpClient", "params", "id", "CreateMissionAction", "BaseAction", "ActionsHandler", "#sdk", "#actionsMap", "sdk", "httpClient", "CreateMissionAction", "#actionCallbackFunction", "callbackFunction", "message", "action", "handleBars", "parsedAction", "actionInstance", "parsedParams", "id", "MissionsExtractor", "_MissionsExtractor", "#sdk", "#httpClient", "sdk", "httpClient", "searchParams", "missions", "url", "ConnectorRunnerOttoFleetManagerV2", "ConnectorRuntimeSDK", "connector", "connectorSDK", "MissionsExtractor", "#httpClient", "config", "actionsHandler", "ActionsHandler"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './lib/types';
|
|
2
|
-
export * from './lib/response.types';
|
|
3
|
-
export * from './lib/message.types';
|
|
4
|
-
export * from './lib/cube-query-config.types';
|
|
5
|
-
export * from './lib/file-action.types';
|
|
6
|
-
export * from './lib/management-api';
|
|
7
|
-
export * from './lib/http-status-codes.enum';
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Query } from '@cubejs-client/core';
|
|
2
|
-
export interface CubeQueryConfig {
|
|
3
|
-
tenantId: string;
|
|
4
|
-
query: Query;
|
|
5
|
-
nullable?: boolean;
|
|
6
|
-
subqueries: Array<CubeSubQueryConfig>;
|
|
7
|
-
}
|
|
8
|
-
export interface CubeSubQueryConfig {
|
|
9
|
-
tenantId?: string;
|
|
10
|
-
query: Query;
|
|
11
|
-
nullable?: boolean;
|
|
12
|
-
field: string;
|
|
13
|
-
joinConditions: Array<CubeJoinCondition>;
|
|
14
|
-
}
|
|
15
|
-
export interface CubeJoinCondition {
|
|
16
|
-
selectField: string;
|
|
17
|
-
operator: string;
|
|
18
|
-
valueField: Array<string>;
|
|
19
|
-
valueMap?: Array<any>;
|
|
20
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
export declare enum HttpStatusCode {
|
|
2
|
-
Continue = 100,
|
|
3
|
-
SwitchingProtocols = 101,
|
|
4
|
-
Processing = 102,
|
|
5
|
-
OK = 200,
|
|
6
|
-
Created = 201,
|
|
7
|
-
Accepted = 202,
|
|
8
|
-
NonAuthoritativeInformation = 203,
|
|
9
|
-
NoContent = 204,
|
|
10
|
-
ResetContent = 205,
|
|
11
|
-
PartialContent = 206,
|
|
12
|
-
MultiStatus = 207,
|
|
13
|
-
AlreadyReported = 208,
|
|
14
|
-
IMUsed = 226,
|
|
15
|
-
MultipleChoices = 300,
|
|
16
|
-
MovedPermanently = 301,
|
|
17
|
-
Found = 302,
|
|
18
|
-
SeeOther = 303,
|
|
19
|
-
NotModified = 304,
|
|
20
|
-
UseProxy = 305,
|
|
21
|
-
TemporaryRedirect = 307,
|
|
22
|
-
PermanentRedirect = 308,
|
|
23
|
-
BadRequest = 400,
|
|
24
|
-
Unauthorized = 401,
|
|
25
|
-
PaymentRequired = 402,
|
|
26
|
-
Forbidden = 403,
|
|
27
|
-
NotFound = 404,
|
|
28
|
-
MethodNotAllowed = 405,
|
|
29
|
-
NotAcceptable = 406,
|
|
30
|
-
ProxyAuthenticationRequired = 407,
|
|
31
|
-
RequestTimeout = 408,
|
|
32
|
-
Conflict = 409,
|
|
33
|
-
Gone = 410,
|
|
34
|
-
LengthRequired = 411,
|
|
35
|
-
PreconditionFailed = 412,
|
|
36
|
-
PayloadTooLarge = 413,
|
|
37
|
-
URITooLong = 414,
|
|
38
|
-
UnsupportedMediaType = 415,
|
|
39
|
-
RangeNotSatisfiable = 416,
|
|
40
|
-
ExpectationFailed = 417,
|
|
41
|
-
ImATeapot = 418,
|
|
42
|
-
MisdirectedRequest = 421,
|
|
43
|
-
UnprocessableEntity = 422,
|
|
44
|
-
Locked = 423,
|
|
45
|
-
FailedDependency = 424,
|
|
46
|
-
TooEarly = 425,
|
|
47
|
-
UpgradeRequired = 426,
|
|
48
|
-
PreconditionRequired = 428,
|
|
49
|
-
TooManyRequests = 429,
|
|
50
|
-
RequestHeaderFieldsTooLarge = 431,
|
|
51
|
-
UnavailableForLegalReasons = 451,
|
|
52
|
-
InternalServerError = 500,
|
|
53
|
-
NotImplemented = 501,
|
|
54
|
-
BadGateway = 502,
|
|
55
|
-
ServiceUnavailable = 503,
|
|
56
|
-
GatewayTimeout = 504,
|
|
57
|
-
HTTPVersionNotSupported = 505,
|
|
58
|
-
VariantAlsoNegotiates = 506,
|
|
59
|
-
InsufficientStorage = 507,
|
|
60
|
-
LoopDetected = 508,
|
|
61
|
-
NotExtended = 510,
|
|
62
|
-
NetworkAuthenticationRequired = 511,
|
|
63
|
-
Aborted = 512
|
|
64
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { TenantInterface } from './tenant.interface';
|
|
2
|
-
import { CubeQueryConfig } from '../cube-query-config.types';
|
|
3
|
-
export interface ActionDefinitionInterface {
|
|
4
|
-
tenant: TenantInterface;
|
|
5
|
-
eventType: string;
|
|
6
|
-
eventTopic: string;
|
|
7
|
-
destinationTopic: string;
|
|
8
|
-
actionIdentifier: string;
|
|
9
|
-
template: string;
|
|
10
|
-
fileNameTemplate: string | undefined;
|
|
11
|
-
queryConfig: CubeQueryConfig | undefined;
|
|
12
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export interface AuthorInterface {
|
|
3
|
-
name: string;
|
|
4
|
-
email?: string;
|
|
5
|
-
website?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const AuthorSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
8
|
-
name: z.ZodString;
|
|
9
|
-
email: z.ZodOptional<z.ZodEmail>;
|
|
10
|
-
website: z.ZodOptional<z.ZodURL>;
|
|
11
|
-
}, z.core.$strip>]>;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { BaseConnectorConfig, ConfiguredConnectorTypes } from '../../types';
|
|
3
|
-
import { ConnectorOrigin } from '../type-enums';
|
|
4
|
-
import { ActionInterface } from '../workflow';
|
|
5
|
-
export declare const ConnectorSchema: z.ZodObject<{
|
|
6
|
-
identifier: z.ZodString;
|
|
7
|
-
connectorType: z.ZodEnum<typeof ConfiguredConnectorTypes>;
|
|
8
|
-
name: z.ZodString;
|
|
9
|
-
location: z.ZodString;
|
|
10
|
-
config: z.ZodObject<{}, z.core.$loose>;
|
|
11
|
-
enabled: z.ZodBoolean;
|
|
12
|
-
actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13
|
-
identifier: z.ZodString;
|
|
14
|
-
version: z.ZodString;
|
|
15
|
-
name: z.ZodString;
|
|
16
|
-
description: z.ZodOptional<z.ZodString>;
|
|
17
|
-
config: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
18
|
-
inputParameters: z.ZodArray<z.ZodObject<{
|
|
19
|
-
name: z.ZodString;
|
|
20
|
-
description: z.ZodOptional<z.ZodString>;
|
|
21
|
-
type: z.ZodEnum<{
|
|
22
|
-
string: "string";
|
|
23
|
-
number: "number";
|
|
24
|
-
boolean: "boolean";
|
|
25
|
-
array: "array";
|
|
26
|
-
}>;
|
|
27
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
28
|
-
items: z.ZodOptional<z.ZodArray<z.ZodAny>>;
|
|
29
|
-
}, z.core.$strip>>;
|
|
30
|
-
outputParameters: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
31
|
-
mode: z.ZodOptional<z.ZodEnum<typeof ConnectorOrigin>>;
|
|
32
|
-
createdAt: z.ZodOptional<z.ZodDate>;
|
|
33
|
-
updatedAt: z.ZodOptional<z.ZodDate>;
|
|
34
|
-
}, z.core.$strip>>>;
|
|
35
|
-
createdAt: z.ZodOptional<z.ZodDate>;
|
|
36
|
-
updatedAt: z.ZodOptional<z.ZodDate>;
|
|
37
|
-
}, z.core.$strip>;
|
|
38
|
-
export interface ConnectorInterface<T = Partial<BaseConnectorConfig>> {
|
|
39
|
-
identifier: string;
|
|
40
|
-
connectorType: ConfiguredConnectorTypes;
|
|
41
|
-
tenantIdentifier: string;
|
|
42
|
-
name: string;
|
|
43
|
-
location: string;
|
|
44
|
-
config?: T;
|
|
45
|
-
enabled: boolean;
|
|
46
|
-
actions?: Array<ActionInterface>;
|
|
47
|
-
mode?: ConnectorOrigin;
|
|
48
|
-
createdAt?: Date;
|
|
49
|
-
updatedAt?: Date;
|
|
50
|
-
}
|
|
51
|
-
export type CreateConnectorInterface<T = Partial<BaseConnectorConfig>> = Omit<ConnectorInterface<T>, 'id' | 'createdAt' | 'updatedAt' | 'mode'>;
|
|
52
|
-
export type UpdateConnectorInterface<T = Partial<BaseConnectorConfig>> = Partial<Omit<ConnectorInterface<T>, 'id' | 'tenantIdentifier' | 'identifier' | 'createdAt' | 'mode'>>;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { ConnectorInterface } from '../index';
|
|
3
|
-
export declare const ConnectorsSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
|
|
4
|
-
identifier: z.ZodString;
|
|
5
|
-
connectorType: z.ZodEnum<typeof import("../../types").ConfiguredConnectorTypes>;
|
|
6
|
-
name: z.ZodString;
|
|
7
|
-
location: z.ZodString;
|
|
8
|
-
config: z.ZodObject<{}, z.core.$loose>;
|
|
9
|
-
enabled: z.ZodBoolean;
|
|
10
|
-
actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
11
|
-
identifier: z.ZodString;
|
|
12
|
-
version: z.ZodString;
|
|
13
|
-
name: z.ZodString;
|
|
14
|
-
description: z.ZodOptional<z.ZodString>;
|
|
15
|
-
config: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
16
|
-
inputParameters: z.ZodArray<z.ZodObject<{
|
|
17
|
-
name: z.ZodString;
|
|
18
|
-
description: z.ZodOptional<z.ZodString>;
|
|
19
|
-
type: z.ZodEnum<{
|
|
20
|
-
string: "string";
|
|
21
|
-
number: "number";
|
|
22
|
-
boolean: "boolean";
|
|
23
|
-
array: "array";
|
|
24
|
-
}>;
|
|
25
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
26
|
-
items: z.ZodOptional<z.ZodArray<z.ZodAny>>;
|
|
27
|
-
}, z.core.$strip>>;
|
|
28
|
-
outputParameters: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
29
|
-
mode: z.ZodOptional<z.ZodEnum<typeof import("../type-enums").ConnectorOrigin>>;
|
|
30
|
-
createdAt: z.ZodOptional<z.ZodDate>;
|
|
31
|
-
updatedAt: z.ZodOptional<z.ZodDate>;
|
|
32
|
-
}, z.core.$strip>>>;
|
|
33
|
-
createdAt: z.ZodOptional<z.ZodDate>;
|
|
34
|
-
updatedAt: z.ZodOptional<z.ZodDate>;
|
|
35
|
-
}, z.core.$strip>, z.ZodBoolean]>>;
|
|
36
|
-
export interface ConnectorsInterface {
|
|
37
|
-
[key: string]: ConnectorInterface | boolean;
|
|
38
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ConnectorInterface } from './connector/connector.interface';
|
|
2
|
-
export interface ConnectorOrchestratorConfigInterface {
|
|
3
|
-
awsAccessKeyId?: string;
|
|
4
|
-
awsSecretAccessKey?: string;
|
|
5
|
-
awsRegion?: string;
|
|
6
|
-
datadogApiKey?: string;
|
|
7
|
-
}
|
|
8
|
-
export interface ConnectorOrchestratorConfigWithKafkaInterface extends ConnectorOrchestratorConfigInterface {
|
|
9
|
-
kafkaBrokers?: Array<string>;
|
|
10
|
-
}
|
|
11
|
-
export interface ConnectorOrchestratorFullConfigurationInterface {
|
|
12
|
-
config: ConnectorOrchestratorConfigWithKafkaInterface;
|
|
13
|
-
connectors: Array<ConnectorInterface>;
|
|
14
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { MetaInterface } from './dataset/meta.interface';
|
|
2
|
-
export interface CubePreAggregationInterface {
|
|
3
|
-
type?: 'rollup' | 'original_sql' | 'rollup_join';
|
|
4
|
-
measures?: Array<string>;
|
|
5
|
-
dimensions?: Array<string>;
|
|
6
|
-
segments?: Array<string>;
|
|
7
|
-
timeDimension?: string;
|
|
8
|
-
granularity?: string;
|
|
9
|
-
rollups?: Array<string>;
|
|
10
|
-
refreshKeySql?: string;
|
|
11
|
-
refreshKeyEvery?: string;
|
|
12
|
-
refreshKeyIncremental?: boolean;
|
|
13
|
-
refreshKeyUpdateWindow?: string;
|
|
14
|
-
lambdaAggregation?: boolean;
|
|
15
|
-
}
|
|
16
|
-
export interface CubePreAggregationsInterface {
|
|
17
|
-
[key: string]: CubePreAggregationInterface;
|
|
18
|
-
}
|
|
19
|
-
export interface CubeDatasetInterface {
|
|
20
|
-
id: string;
|
|
21
|
-
dataSource: string;
|
|
22
|
-
name: string;
|
|
23
|
-
description: string;
|
|
24
|
-
tenantId: string;
|
|
25
|
-
parentId?: string;
|
|
26
|
-
sql?: string;
|
|
27
|
-
refreshSql?: string;
|
|
28
|
-
meta?: MetaInterface;
|
|
29
|
-
dimensions: CubeDimensionsInterface;
|
|
30
|
-
segments?: CubeSegmentsInterface;
|
|
31
|
-
relations?: CubeRelationsInterface;
|
|
32
|
-
measures?: CubeMeasuresInterface;
|
|
33
|
-
preAggregations?: CubePreAggregationsInterface;
|
|
34
|
-
}
|
|
35
|
-
export interface CubeDimensionsInterface {
|
|
36
|
-
[key: string]: CubeDimensionInterface;
|
|
37
|
-
}
|
|
38
|
-
export interface CubeDimensionInterface {
|
|
39
|
-
title: string;
|
|
40
|
-
description: string;
|
|
41
|
-
index?: boolean;
|
|
42
|
-
upperIndex?: boolean;
|
|
43
|
-
type: string;
|
|
44
|
-
format?: string;
|
|
45
|
-
primaryKey?: boolean;
|
|
46
|
-
public?: boolean;
|
|
47
|
-
subQuery?: boolean;
|
|
48
|
-
sql?: string;
|
|
49
|
-
case?: CubeDimensionCaseInterface;
|
|
50
|
-
meta?: MetaInterface;
|
|
51
|
-
granularities?: {
|
|
52
|
-
[key: string]: {
|
|
53
|
-
interval: string;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
export interface CubeDimensionCaseInterface {
|
|
58
|
-
when: Array<CubeDimensionCaseWhenInterface>;
|
|
59
|
-
else: {
|
|
60
|
-
label: string;
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
export interface CubeDimensionCaseWhenInterface {
|
|
64
|
-
label: string;
|
|
65
|
-
sql: string;
|
|
66
|
-
}
|
|
67
|
-
export interface CubeRelationsInterface {
|
|
68
|
-
[key: string]: CubeRelationInterface;
|
|
69
|
-
}
|
|
70
|
-
export interface CubeRelationInterface {
|
|
71
|
-
relationship: string;
|
|
72
|
-
sql: string;
|
|
73
|
-
}
|
|
74
|
-
export interface CubeSegmentsInterface {
|
|
75
|
-
[key: string]: CubeSegmentInterface;
|
|
76
|
-
}
|
|
77
|
-
export interface CubeSegmentInterface {
|
|
78
|
-
public: boolean;
|
|
79
|
-
sql: string;
|
|
80
|
-
title?: string;
|
|
81
|
-
description?: string;
|
|
82
|
-
}
|
|
83
|
-
export interface CubeMeasuresInterface {
|
|
84
|
-
[key: string]: CubeMeasureInterface;
|
|
85
|
-
}
|
|
86
|
-
export interface CubeMeasureInterface {
|
|
87
|
-
title: string;
|
|
88
|
-
description?: string;
|
|
89
|
-
public?: boolean;
|
|
90
|
-
type: string;
|
|
91
|
-
format?: string;
|
|
92
|
-
sql: string;
|
|
93
|
-
meta?: MetaInterface;
|
|
94
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export type DashboardPositionValue = string | number | boolean | null | Record<string, unknown> | Array<unknown>;
|
|
2
|
-
export interface DashboardPositionJson {
|
|
3
|
-
[key: string]: DashboardPositionValue;
|
|
4
|
-
}
|
|
5
|
-
export interface CreateDashboardInterface {
|
|
6
|
-
id: number;
|
|
7
|
-
title: string | null;
|
|
8
|
-
slug: string | null;
|
|
9
|
-
description: string | null;
|
|
10
|
-
positionJson: DashboardPositionJson | null;
|
|
11
|
-
isPublished: boolean;
|
|
12
|
-
tenantIdentifier: string;
|
|
13
|
-
charts: Array<number>;
|
|
14
|
-
roles: Array<string>;
|
|
15
|
-
supersetId: number | null;
|
|
16
|
-
}
|
|
17
|
-
export interface UpdateDashboardInterface {
|
|
18
|
-
title: string | null;
|
|
19
|
-
slug: string | null;
|
|
20
|
-
description: string | null;
|
|
21
|
-
positionJson: DashboardPositionJson | null;
|
|
22
|
-
isPublished: boolean;
|
|
23
|
-
roles: Array<string>;
|
|
24
|
-
charts: Array<number>;
|
|
25
|
-
supersetId: number | null;
|
|
26
|
-
}
|
|
27
|
-
export interface DashboardInterface extends CreateDashboardInterface {
|
|
28
|
-
createdAt: Date;
|
|
29
|
-
updatedAt: Date;
|
|
30
|
-
}
|
|
31
|
-
export interface DashboardExportInterface {
|
|
32
|
-
exportData: DashboardInterface;
|
|
33
|
-
exportType: string;
|
|
34
|
-
exportedAt: string;
|
|
35
|
-
}
|