From 45f75945724767e828d6ebdc8d451b68d323bb4c Mon Sep 17 00:00:00 2001 From: gzukowski Date: Fri, 1 Dec 2023 14:33:25 +0000 Subject: [PATCH 1/8] Pagination types --- packages/types/src/rest-api-manager/common.ts | 6 ++++ .../src/rest-api-manager/get-instances.ts | 3 +- .../types/src/rest-api-manager/get-list.ts | 30 ++++++++++--------- .../src/rest-api-manager/get-sequences.ts | 3 +- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/packages/types/src/rest-api-manager/common.ts b/packages/types/src/rest-api-manager/common.ts index f958bd3fe..24b828f71 100644 --- a/packages/types/src/rest-api-manager/common.ts +++ b/packages/types/src/rest-api-manager/common.ts @@ -22,3 +22,9 @@ export type HealthCheckInfo = { [key: string]: boolean; }; } + +export type Pagination = { + pagination: { + total: number + } +} diff --git a/packages/types/src/rest-api-manager/get-instances.ts b/packages/types/src/rest-api-manager/get-instances.ts index c51b12af8..8c867eae9 100644 --- a/packages/types/src/rest-api-manager/get-instances.ts +++ b/packages/types/src/rest-api-manager/get-instances.ts @@ -1,3 +1,4 @@ import { GetInstanceResponse } from "../rest-api-sth"; +import { Pagination } from "./common"; -export type GetInstancesResponse = GetInstanceResponse[]; +export type GetInstancesResponse = Pagination & { data: GetInstanceResponse[]}; diff --git a/packages/types/src/rest-api-manager/get-list.ts b/packages/types/src/rest-api-manager/get-list.ts index 6b98bf649..6a64e315e 100644 --- a/packages/types/src/rest-api-manager/get-list.ts +++ b/packages/types/src/rest-api-manager/get-list.ts @@ -1,15 +1,17 @@ -import { ConnectedSTHInfoDetails } from "./common"; +import { ConnectedSTHInfoDetails, Pagination } from "./common"; -export type GetListResponse = { - id: string, - info: ConnectedSTHInfoDetails, - healthy: boolean, - selfHosted: boolean, - isConnectionActive: boolean, - description?: string, - tags?: string[], - disconnectReason?: string, - topics : string[], - sequences: string[], - instances: string[], -}[] +export type GetListResponse = Pagination & { + data: { + id: string, + info: ConnectedSTHInfoDetails, + healthy: boolean, + selfHosted: boolean, + isConnectionActive: boolean, + description?: string, + tags?: string[], + disconnectReason?: string, + topics : string[], + sequences: string[], + instances: string[], + }[] +} diff --git a/packages/types/src/rest-api-manager/get-sequences.ts b/packages/types/src/rest-api-manager/get-sequences.ts index 91d579029..7f1fe7754 100644 --- a/packages/types/src/rest-api-manager/get-sequences.ts +++ b/packages/types/src/rest-api-manager/get-sequences.ts @@ -1,3 +1,4 @@ +import { Pagination } from "./common"; import { GetSequenceResponse } from "./get-sequence"; -export type GetSequencesResponse = GetSequenceResponse[]; +export type GetSequencesResponse = Pagination & { data: GetSequenceResponse[]} From f3a9924f4eb973efcfd385f686aaa4bc3deba445 Mon Sep 17 00:00:00 2001 From: Budleigh Salterton Date: Mon, 4 Dec 2023 11:34:29 +0000 Subject: [PATCH 2/8] Fix type references in runner --- packages/manager-api-client/src/manager-client.ts | 4 ++-- packages/runner/src/runner-app-context.ts | 6 +++--- packages/runner/src/runner.ts | 2 +- packages/types/src/app-context.ts | 6 ++++-- packages/types/src/manager-api-client/manager-client.ts | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/manager-api-client/src/manager-client.ts b/packages/manager-api-client/src/manager-client.ts index 383b84981..b9bce1bb8 100644 --- a/packages/manager-api-client/src/manager-client.ts +++ b/packages/manager-api-client/src/manager-client.ts @@ -1,9 +1,9 @@ import { HostClient, } from "@scramjet/api-client"; import { ClientUtils, ClientProvider, HttpClient } from "@scramjet/client-utils"; -import { MRestAPI, LoadCheckStat } from "@scramjet/types"; +import { MRestAPI, LoadCheckStat, IManagerClient } from "@scramjet/types"; import { Readable } from "stream"; -export class ManagerClient implements ClientProvider { +export class ManagerClient implements ClientProvider, IManagerClient { apiBase: string; #_client: ClientUtils; diff --git a/packages/runner/src/runner-app-context.ts b/packages/runner/src/runner-app-context.ts index 848f828ac..b9617ad3c 100644 --- a/packages/runner/src/runner-app-context.ts +++ b/packages/runner/src/runner-app-context.ts @@ -3,7 +3,7 @@ import { ObjLogger } from "@scramjet/obj-logger"; import { EventMessageData, KeepAliveMessageData, MonitoringMessageFromRunnerData, AppConfig, AppError, AppErrorConstructor, AppContext, WritableStream, - FunctionDefinition, KillHandler, StopHandler, MonitoringHandler, IObjectLogger, HostClient, ManagerClient + FunctionDefinition, KillHandler, StopHandler, MonitoringHandler, IObjectLogger, HostClient, IManagerClient } from "@scramjet/types"; import { EventEmitter } from "events"; @@ -33,11 +33,11 @@ implements AppContext { exitTimeout: number = 10000; logger: IObjectLogger = new ObjLogger("Sequence"); hub: HostClient; - space: ManagerClient; + space: IManagerClient; instanceId: string; constructor(config: AppConfigType, monitorStream: WritableStream, - emitter: EventEmitter, runner: RunnerProxy, hostClient: HostClient, spaceClient: ManagerClient, id: string) { + emitter: EventEmitter, runner: RunnerProxy, hostClient: HostClient, spaceClient: IManagerClient, id: string) { this.config = config; this.monitorStream = monitorStream; this.emitter = emitter; diff --git a/packages/runner/src/runner.ts b/packages/runner/src/runner.ts index 358696556..c4cf5cf8e 100644 --- a/packages/runner/src/runner.ts +++ b/packages/runner/src/runner.ts @@ -442,7 +442,7 @@ export class Runner implements IComponent { this.emitter, runner, hostApiClient as HostClient, - managerApiClient as ManagerClient, + managerApiClient, this.instanceId ); this._context.logger.pipe(this.logger); diff --git a/packages/types/src/app-context.ts b/packages/types/src/app-context.ts index fe5d2ca2a..7615d1c8b 100644 --- a/packages/types/src/app-context.ts +++ b/packages/types/src/app-context.ts @@ -5,6 +5,8 @@ import { FunctionDefinition } from "./messages/describe-sequence"; import { IObjectLogger } from "./object-logger"; import { MaybePromise } from "./utils"; import { MonitoringMessageFromRunnerData } from "./messages"; +import { HostClient } from "./api-client/host-client"; +import { ManagerClient as IManagerClient } from "./manager-api-client/manager-client"; /** * A callback that will be called when the Sequence is being stopped gracefully. @@ -181,10 +183,10 @@ export interface AppContext exitTimeout: number; /** Allows to access Hub, for datails please refer to @scramjet/api-client */ - hub: import("./api-client/host-client").HostClient; + hub: HostClient; /** Allows to access Space, for datails please refer to @scramjet/manager-api-client */ - space: import("./manager-api-client/manager-client").ManagerClient; + space: IManagerClient; /** Instance Id */ instanceId: string; diff --git a/packages/types/src/manager-api-client/manager-client.ts b/packages/types/src/manager-api-client/manager-client.ts index d36fa277b..4ce635020 100644 --- a/packages/types/src/manager-api-client/manager-client.ts +++ b/packages/types/src/manager-api-client/manager-client.ts @@ -20,7 +20,7 @@ export declare class ManagerClient { getLogStream(requestInit?: RequestInit): ReturnType; getAuditStream(requestInit?: RequestInit): ReturnType; getConfig(): Promise; - getSequences(sequenceId: string): Promise; + getSequences(): Promise; getInstances(): Promise; getTopics(): Promise; } From 1dd79861c1c0c605cce0400a71862668265fc4fd Mon Sep 17 00:00:00 2001 From: gzukowski Date: Tue, 5 Dec 2023 13:07:31 +0000 Subject: [PATCH 3/8] /list as an object --- packages/manager-api-client/src/manager-client.ts | 2 +- packages/types/src/manager-api-client/manager-client.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/manager-api-client/src/manager-client.ts b/packages/manager-api-client/src/manager-client.ts index b9bce1bb8..30a49c03b 100644 --- a/packages/manager-api-client/src/manager-client.ts +++ b/packages/manager-api-client/src/manager-client.ts @@ -23,7 +23,7 @@ export class ManagerClient implements ClientProvider, IManagerClient { } async getHosts() { - return this.client.get("list"); + return this.client.get("list"); } async getVersion(): Promise { diff --git a/packages/types/src/manager-api-client/manager-client.ts b/packages/types/src/manager-api-client/manager-client.ts index 4ce635020..b4975b357 100644 --- a/packages/types/src/manager-api-client/manager-client.ts +++ b/packages/types/src/manager-api-client/manager-client.ts @@ -13,7 +13,7 @@ export declare class ManagerClient { constructor(apiBase: string, utils: ClientUtils | undefined); getHostClient(id: string, hostApiBase: string): import("../api-client/host-client").HostClient; - getHosts(): Promise; + getHosts(): Promise; getVersion(): Promise; sendNamedData(topic: string, stream: Parameters[1], requestInit?: RequestInit, contentType?: string, end?: boolean): Promise; getNamedData(topic: string, requestInit?: RequestInit): ReturnType; From 2149530558591cfd0604566ca9db5558fc55ee11 Mon Sep 17 00:00:00 2001 From: gzukowski Date: Tue, 5 Dec 2023 13:17:09 +0000 Subject: [PATCH 4/8] . --- packages/types/src/manager-api-client/manager-client.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/types/src/manager-api-client/manager-client.ts b/packages/types/src/manager-api-client/manager-client.ts index b4975b357..1016b136f 100644 --- a/packages/types/src/manager-api-client/manager-client.ts +++ b/packages/types/src/manager-api-client/manager-client.ts @@ -1,5 +1,6 @@ /// +// eslint-disable-next-line import/no-cycle import { MRestAPI } from ".."; import * as STHRestAPI from "../rest-api-sth"; From 3cc692f8fa7b1b85b63991a8a1551c61b13680e6 Mon Sep 17 00:00:00 2001 From: gzukowski Date: Thu, 7 Dec 2023 14:29:36 +0000 Subject: [PATCH 5/8] . --- packages/cli/src/lib/helpers/various.ts | 2 +- packages/cli/src/lib/platform/common.ts | 2 +- packages/types/src/manager-api-client/manager-client.ts | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/lib/helpers/various.ts b/packages/cli/src/lib/helpers/various.ts index 78a59faca..7594d90e4 100644 --- a/packages/cli/src/lib/helpers/various.ts +++ b/packages/cli/src/lib/helpers/various.ts @@ -5,7 +5,7 @@ import { getMiddlewareClient } from "../platform"; export async function getInfo() { const { lastSpaceId: space, lastHubId: id } = sessionConfig.get(); const managerClient = getMiddlewareClient().getManagerClient(space); - const hosts = await managerClient.getHosts(); + const hosts = (await managerClient.getHosts()).data; const host = hosts.find((h: any) => h.id === id); return { managerClient, host, hosts }; diff --git a/packages/cli/src/lib/platform/common.ts b/packages/cli/src/lib/platform/common.ts index 2f58017de..5dd931ca4 100644 --- a/packages/cli/src/lib/platform/common.ts +++ b/packages/cli/src/lib/platform/common.ts @@ -64,7 +64,7 @@ export const setPlatformDefaults = async () => { const selectedManager = managers[0]; const managerClient = middlewareClient.getManagerClient(selectedManager.id); - const hosts = await managerClient.getHosts(); + const hosts = (await managerClient.getHosts()).data; if (!hosts.length) return false; diff --git a/packages/types/src/manager-api-client/manager-client.ts b/packages/types/src/manager-api-client/manager-client.ts index 1016b136f..b4975b357 100644 --- a/packages/types/src/manager-api-client/manager-client.ts +++ b/packages/types/src/manager-api-client/manager-client.ts @@ -1,6 +1,5 @@ /// -// eslint-disable-next-line import/no-cycle import { MRestAPI } from ".."; import * as STHRestAPI from "../rest-api-sth"; From e6f834c4db54d11aff216b9d8a0b302634aa1eaa Mon Sep 17 00:00:00 2001 From: gzukowski Date: Thu, 7 Dec 2023 14:35:48 +0000 Subject: [PATCH 6/8] . --- packages/cli/src/lib/commands/hub.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/commands/hub.ts b/packages/cli/src/lib/commands/hub.ts index a02cc749c..79a7f0934 100644 --- a/packages/cli/src/lib/commands/hub.ts +++ b/packages/cli/src/lib/commands/hub.ts @@ -34,7 +34,7 @@ export const hub: CommandDefinition = (program) => { .action(async (id: string) => { const space = sessionConfig.lastSpaceId; const managerClient = getMiddlewareClient().getManagerClient(space); - const hosts = await managerClient.getHosts(); + const hosts = (await managerClient.getHosts()).data; const host = hosts.find((h: any) => h.id === id); if (!host) { From b40c2e0efae69ee66b73279db2586d1eb056dc25 Mon Sep 17 00:00:00 2001 From: gzukowski Date: Fri, 8 Dec 2023 11:50:05 +0000 Subject: [PATCH 7/8] . --- packages/runner/src/runner-app-context.ts | 6 +++--- packages/types/src/app-context.ts | 6 ++---- packages/types/src/manager-api-client/manager-client.ts | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/runner/src/runner-app-context.ts b/packages/runner/src/runner-app-context.ts index b9617ad3c..848f828ac 100644 --- a/packages/runner/src/runner-app-context.ts +++ b/packages/runner/src/runner-app-context.ts @@ -3,7 +3,7 @@ import { ObjLogger } from "@scramjet/obj-logger"; import { EventMessageData, KeepAliveMessageData, MonitoringMessageFromRunnerData, AppConfig, AppError, AppErrorConstructor, AppContext, WritableStream, - FunctionDefinition, KillHandler, StopHandler, MonitoringHandler, IObjectLogger, HostClient, IManagerClient + FunctionDefinition, KillHandler, StopHandler, MonitoringHandler, IObjectLogger, HostClient, ManagerClient } from "@scramjet/types"; import { EventEmitter } from "events"; @@ -33,11 +33,11 @@ implements AppContext { exitTimeout: number = 10000; logger: IObjectLogger = new ObjLogger("Sequence"); hub: HostClient; - space: IManagerClient; + space: ManagerClient; instanceId: string; constructor(config: AppConfigType, monitorStream: WritableStream, - emitter: EventEmitter, runner: RunnerProxy, hostClient: HostClient, spaceClient: IManagerClient, id: string) { + emitter: EventEmitter, runner: RunnerProxy, hostClient: HostClient, spaceClient: ManagerClient, id: string) { this.config = config; this.monitorStream = monitorStream; this.emitter = emitter; diff --git a/packages/types/src/app-context.ts b/packages/types/src/app-context.ts index 7615d1c8b..fe5d2ca2a 100644 --- a/packages/types/src/app-context.ts +++ b/packages/types/src/app-context.ts @@ -5,8 +5,6 @@ import { FunctionDefinition } from "./messages/describe-sequence"; import { IObjectLogger } from "./object-logger"; import { MaybePromise } from "./utils"; import { MonitoringMessageFromRunnerData } from "./messages"; -import { HostClient } from "./api-client/host-client"; -import { ManagerClient as IManagerClient } from "./manager-api-client/manager-client"; /** * A callback that will be called when the Sequence is being stopped gracefully. @@ -183,10 +181,10 @@ export interface AppContext exitTimeout: number; /** Allows to access Hub, for datails please refer to @scramjet/api-client */ - hub: HostClient; + hub: import("./api-client/host-client").HostClient; /** Allows to access Space, for datails please refer to @scramjet/manager-api-client */ - space: IManagerClient; + space: import("./manager-api-client/manager-client").ManagerClient; /** Instance Id */ instanceId: string; diff --git a/packages/types/src/manager-api-client/manager-client.ts b/packages/types/src/manager-api-client/manager-client.ts index b4975b357..63e93d1b5 100644 --- a/packages/types/src/manager-api-client/manager-client.ts +++ b/packages/types/src/manager-api-client/manager-client.ts @@ -1,6 +1,6 @@ /// -import { MRestAPI } from ".."; +import * as MRestAPI from "../rest-api-manager"; import * as STHRestAPI from "../rest-api-sth"; import { PublicSTHConfiguration } from "../sth-configuration"; From f237d525356e205ab8e97b1309af2d1780c5f0af Mon Sep 17 00:00:00 2001 From: gzukowski Date: Fri, 8 Dec 2023 11:56:40 +0000 Subject: [PATCH 8/8] . --- packages/manager-api-client/src/manager-client.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/manager-api-client/src/manager-client.ts b/packages/manager-api-client/src/manager-client.ts index 30a49c03b..713fc867f 100644 --- a/packages/manager-api-client/src/manager-client.ts +++ b/packages/manager-api-client/src/manager-client.ts @@ -1,9 +1,9 @@ import { HostClient, } from "@scramjet/api-client"; import { ClientUtils, ClientProvider, HttpClient } from "@scramjet/client-utils"; -import { MRestAPI, LoadCheckStat, IManagerClient } from "@scramjet/types"; +import { MRestAPI, LoadCheckStat } from "@scramjet/types"; import { Readable } from "stream"; -export class ManagerClient implements ClientProvider, IManagerClient { +export class ManagerClient implements ClientProvider { apiBase: string; #_client: ClientUtils;