@keystrokehq/hosting 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -54,6 +54,11 @@ type ProjectRuntimeDestroyInput = {
54
54
  runtimeId: string;
55
55
  hosting?: ProjectRuntimeHosting;
56
56
  };
57
+ type ProjectRuntimeReconcileInput = {
58
+ organizationId: string; /** The runtime to keep — every other runtime belonging to this org should be destroyed. */
59
+ keepRuntimeId: string;
60
+ hosting?: ProjectRuntimeHosting;
61
+ };
57
62
  type ProjectRuntimeResult = {
58
63
  runtimeId: string;
59
64
  baseUrl: string;
@@ -61,6 +66,13 @@ type ProjectRuntimeResult = {
61
66
  type ProjectRuntime = {
62
67
  start(input: ProjectRuntimeInput): Promise<ProjectRuntimeResult>;
63
68
  destroy?(input: ProjectRuntimeDestroyInput): Promise<void>;
69
+ /**
70
+ * Sweep away every runtime for this org except `keepRuntimeId`, retrying
71
+ * transient failures instead of giving up after one attempt. This catches
72
+ * orphans that a single {@link destroy} call missed (e.g. a previous deploy's
73
+ * destroy failed silently), not just the one runtime recorded as "previous."
74
+ */
75
+ reconcile?(input: ProjectRuntimeReconcileInput): Promise<void>;
64
76
  };
65
77
  type ProjectPingTarget = {
66
78
  baseUrl: string | null;
@@ -114,7 +126,8 @@ type WorkspacesMount = {
114
126
  };
115
127
  type DockerPluginOptions = HostingOptions & {
116
128
  docker?: Docker; /** Bind a shared host workspace dir into dev workers (VM sandbox proxy mount path). */
117
- workspacesMount?: WorkspacesMount;
129
+ workspacesMount?: WorkspacesMount; /** Additional Docker bind mounts (`host:container[:options]`). */
130
+ extraBinds?: string[];
118
131
  };
119
132
  //#endregion
120
133
  //#region src/docker/plugin.d.ts
@@ -204,5 +217,5 @@ type FetchDeployStatusOptions = {
204
217
  */
205
218
  declare function fetchDeployStatus(baseUrl: string, options?: FetchDeployStatusOptions): Promise<DeployStatusResponse | undefined>;
206
219
  //#endregion
207
- export { DEV_PLATFORM_WORKER_TOKEN, type DeployStatusResponse, type DockerPluginOptions, type FetchDeployStatusOptions, type HostingOptions, type HostingPlugin, type OrgArtifactSpec, type OrgProjectDeploy, type OrganizationHostingInput, type OrganizationHostingResult, PROJECT_DATABASE_ENV_KEYS, PROJECT_SERVER_DEPLOY_STATUS, PROJECT_SERVER_FRAMEWORK_NODE_MODULES, PROJECT_SERVER_FRAMEWORK_ROOT, PROJECT_SERVER_HEALTH, PROJECT_SERVER_IMAGE, PROJECT_SERVER_PORT, PROJECT_SERVER_ROOT, type PingProjectOptions, type ProjectDeployStatus, type ProjectPingTarget, type ProjectRuntime, type ProjectRuntimeDatabase, type ProjectRuntimeDestroyInput, type ProjectRuntimeHosting, type ProjectRuntimeInput, type ProjectRuntimeResult, RUNTIME_PING_TIMEOUT_MS, type RuntimeLaunchSpec, type WaitForHealthOptions, type WorkerRuntimeConfig, WorkerRuntimeConfigError, buildRuntimeEnv, canPingProjectTarget, defaultHostingPlugin, dockerPlugin, encodeOrgArtifacts, fetchDeployStatus, formatDockerEnv, parseOrgArtifactsFromEnv, pingProject, pingProjectTarget, projectDatabaseRuntimeEnv, resolvePlatformWorkerToken, resolveProjectServerImage, resolveRuntimeLaunch, resolveWorkerPlatformUrl, resolveWorkerRuntimeConfig, rewriteLoopbackHost, rewriteLoopbackUrl, waitForHealth };
220
+ export { DEV_PLATFORM_WORKER_TOKEN, type DeployStatusResponse, type DockerPluginOptions, type FetchDeployStatusOptions, type HostingOptions, type HostingPlugin, type OrgArtifactSpec, type OrgProjectDeploy, type OrganizationHostingInput, type OrganizationHostingResult, PROJECT_DATABASE_ENV_KEYS, PROJECT_SERVER_DEPLOY_STATUS, PROJECT_SERVER_FRAMEWORK_NODE_MODULES, PROJECT_SERVER_FRAMEWORK_ROOT, PROJECT_SERVER_HEALTH, PROJECT_SERVER_IMAGE, PROJECT_SERVER_PORT, PROJECT_SERVER_ROOT, type PingProjectOptions, type ProjectDeployStatus, type ProjectPingTarget, type ProjectRuntime, type ProjectRuntimeDatabase, type ProjectRuntimeDestroyInput, type ProjectRuntimeHosting, type ProjectRuntimeInput, type ProjectRuntimeReconcileInput, type ProjectRuntimeResult, RUNTIME_PING_TIMEOUT_MS, type RuntimeLaunchSpec, type WaitForHealthOptions, type WorkerRuntimeConfig, WorkerRuntimeConfigError, buildRuntimeEnv, canPingProjectTarget, defaultHostingPlugin, dockerPlugin, encodeOrgArtifacts, fetchDeployStatus, formatDockerEnv, parseOrgArtifactsFromEnv, pingProject, pingProjectTarget, projectDatabaseRuntimeEnv, resolvePlatformWorkerToken, resolveProjectServerImage, resolveRuntimeLaunch, resolveWorkerPlatformUrl, resolveWorkerRuntimeConfig, rewriteLoopbackHost, rewriteLoopbackUrl, waitForHealth };
208
221
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/constants.ts","../src/runtime.ts","../src/worker-runtime-config.ts","../src/plugin.ts","../src/docker/create-docker-runtime.ts","../src/docker/plugin.ts","../src/default-plugin.ts","../src/runtime-env.ts","../src/wait-for-health.ts","../src/runtime-constants.ts","../src/ping-project.ts","../src/ping-project-target.ts","../src/deploy-status.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/constants.ts","../src/runtime.ts","../src/worker-runtime-config.ts","../src/plugin.ts","../src/docker/create-docker-runtime.ts","../src/docker/plugin.ts","../src/default-plugin.ts","../src/runtime-env.ts","../src/wait-for-health.ts","../src/runtime-constants.ts","../src/ping-project.ts","../src/ping-project-target.ts","../src/deploy-status.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -54,6 +54,11 @@ type ProjectRuntimeDestroyInput = {
54
54
  runtimeId: string;
55
55
  hosting?: ProjectRuntimeHosting;
56
56
  };
57
+ type ProjectRuntimeReconcileInput = {
58
+ organizationId: string; /** The runtime to keep — every other runtime belonging to this org should be destroyed. */
59
+ keepRuntimeId: string;
60
+ hosting?: ProjectRuntimeHosting;
61
+ };
57
62
  type ProjectRuntimeResult = {
58
63
  runtimeId: string;
59
64
  baseUrl: string;
@@ -61,6 +66,13 @@ type ProjectRuntimeResult = {
61
66
  type ProjectRuntime = {
62
67
  start(input: ProjectRuntimeInput): Promise<ProjectRuntimeResult>;
63
68
  destroy?(input: ProjectRuntimeDestroyInput): Promise<void>;
69
+ /**
70
+ * Sweep away every runtime for this org except `keepRuntimeId`, retrying
71
+ * transient failures instead of giving up after one attempt. This catches
72
+ * orphans that a single {@link destroy} call missed (e.g. a previous deploy's
73
+ * destroy failed silently), not just the one runtime recorded as "previous."
74
+ */
75
+ reconcile?(input: ProjectRuntimeReconcileInput): Promise<void>;
64
76
  };
65
77
  type ProjectPingTarget = {
66
78
  baseUrl: string | null;
@@ -114,7 +126,8 @@ type WorkspacesMount = {
114
126
  };
115
127
  type DockerPluginOptions = HostingOptions & {
116
128
  docker?: Docker; /** Bind a shared host workspace dir into dev workers (VM sandbox proxy mount path). */
117
- workspacesMount?: WorkspacesMount;
129
+ workspacesMount?: WorkspacesMount; /** Additional Docker bind mounts (`host:container[:options]`). */
130
+ extraBinds?: string[];
118
131
  };
119
132
  //#endregion
120
133
  //#region src/docker/plugin.d.ts
@@ -204,5 +217,5 @@ type FetchDeployStatusOptions = {
204
217
  */
205
218
  declare function fetchDeployStatus(baseUrl: string, options?: FetchDeployStatusOptions): Promise<DeployStatusResponse | undefined>;
206
219
  //#endregion
207
- export { DEV_PLATFORM_WORKER_TOKEN, type DeployStatusResponse, type DockerPluginOptions, type FetchDeployStatusOptions, type HostingOptions, type HostingPlugin, type OrgArtifactSpec, type OrgProjectDeploy, type OrganizationHostingInput, type OrganizationHostingResult, PROJECT_DATABASE_ENV_KEYS, PROJECT_SERVER_DEPLOY_STATUS, PROJECT_SERVER_FRAMEWORK_NODE_MODULES, PROJECT_SERVER_FRAMEWORK_ROOT, PROJECT_SERVER_HEALTH, PROJECT_SERVER_IMAGE, PROJECT_SERVER_PORT, PROJECT_SERVER_ROOT, type PingProjectOptions, type ProjectDeployStatus, type ProjectPingTarget, type ProjectRuntime, type ProjectRuntimeDatabase, type ProjectRuntimeDestroyInput, type ProjectRuntimeHosting, type ProjectRuntimeInput, type ProjectRuntimeResult, RUNTIME_PING_TIMEOUT_MS, type RuntimeLaunchSpec, type WaitForHealthOptions, type WorkerRuntimeConfig, WorkerRuntimeConfigError, buildRuntimeEnv, canPingProjectTarget, defaultHostingPlugin, dockerPlugin, encodeOrgArtifacts, fetchDeployStatus, formatDockerEnv, parseOrgArtifactsFromEnv, pingProject, pingProjectTarget, projectDatabaseRuntimeEnv, resolvePlatformWorkerToken, resolveProjectServerImage, resolveRuntimeLaunch, resolveWorkerPlatformUrl, resolveWorkerRuntimeConfig, rewriteLoopbackHost, rewriteLoopbackUrl, waitForHealth };
220
+ export { DEV_PLATFORM_WORKER_TOKEN, type DeployStatusResponse, type DockerPluginOptions, type FetchDeployStatusOptions, type HostingOptions, type HostingPlugin, type OrgArtifactSpec, type OrgProjectDeploy, type OrganizationHostingInput, type OrganizationHostingResult, PROJECT_DATABASE_ENV_KEYS, PROJECT_SERVER_DEPLOY_STATUS, PROJECT_SERVER_FRAMEWORK_NODE_MODULES, PROJECT_SERVER_FRAMEWORK_ROOT, PROJECT_SERVER_HEALTH, PROJECT_SERVER_IMAGE, PROJECT_SERVER_PORT, PROJECT_SERVER_ROOT, type PingProjectOptions, type ProjectDeployStatus, type ProjectPingTarget, type ProjectRuntime, type ProjectRuntimeDatabase, type ProjectRuntimeDestroyInput, type ProjectRuntimeHosting, type ProjectRuntimeInput, type ProjectRuntimeReconcileInput, type ProjectRuntimeResult, RUNTIME_PING_TIMEOUT_MS, type RuntimeLaunchSpec, type WaitForHealthOptions, type WorkerRuntimeConfig, WorkerRuntimeConfigError, buildRuntimeEnv, canPingProjectTarget, defaultHostingPlugin, dockerPlugin, encodeOrgArtifacts, fetchDeployStatus, formatDockerEnv, parseOrgArtifactsFromEnv, pingProject, pingProjectTarget, projectDatabaseRuntimeEnv, resolvePlatformWorkerToken, resolveProjectServerImage, resolveRuntimeLaunch, resolveWorkerPlatformUrl, resolveWorkerRuntimeConfig, rewriteLoopbackHost, rewriteLoopbackUrl, waitForHealth };
208
221
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/runtime.ts","../src/worker-runtime-config.ts","../src/plugin.ts","../src/docker/create-docker-runtime.ts","../src/docker/plugin.ts","../src/default-plugin.ts","../src/runtime-env.ts","../src/wait-for-health.ts","../src/runtime-constants.ts","../src/ping-project.ts","../src/ping-project-target.ts","../src/deploy-status.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/runtime.ts","../src/worker-runtime-config.ts","../src/plugin.ts","../src/docker/create-docker-runtime.ts","../src/docker/plugin.ts","../src/default-plugin.ts","../src/runtime-env.ts","../src/wait-for-health.ts","../src/runtime-constants.ts","../src/ping-project.ts","../src/ping-project-target.ts","../src/deploy-status.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -621,6 +621,7 @@ const string$1 = (params) => {
621
621
  const integer = /^-?\d+$/;
622
622
  const number$2 = /^-?\d+(?:\.\d+)?$/;
623
623
  const boolean$1 = /^(?:true|false)$/i;
624
+ const _null$2 = /^null$/i;
624
625
  const lowercase = /^[^A-Z]*$/;
625
626
  const uppercase = /^[^a-z]*$/;
626
627
  //#endregion
@@ -1433,6 +1434,22 @@ const $ZodBoolean = /* @__PURE__ */ $constructor("$ZodBoolean", (inst, def) => {
1433
1434
  return payload;
1434
1435
  };
1435
1436
  });
1437
+ const $ZodNull = /* @__PURE__ */ $constructor("$ZodNull", (inst, def) => {
1438
+ $ZodType.init(inst, def);
1439
+ inst._zod.pattern = _null$2;
1440
+ inst._zod.values = new Set([null]);
1441
+ inst._zod.parse = (payload, _ctx) => {
1442
+ const input = payload.value;
1443
+ if (input === null) return payload;
1444
+ payload.issues.push({
1445
+ expected: "null",
1446
+ code: "invalid_type",
1447
+ input,
1448
+ inst
1449
+ });
1450
+ return payload;
1451
+ };
1452
+ });
1436
1453
  const $ZodUnknown = /* @__PURE__ */ $constructor("$ZodUnknown", (inst, def) => {
1437
1454
  $ZodType.init(inst, def);
1438
1455
  inst._zod.parse = (payload) => payload;
@@ -2679,6 +2696,13 @@ function _boolean(Class, params) {
2679
2696
  });
2680
2697
  }
2681
2698
  /* @__NO_SIDE_EFFECTS__ */
2699
+ function _null$1(Class, params) {
2700
+ return new Class({
2701
+ type: "null",
2702
+ ...normalizeParams(params)
2703
+ });
2704
+ }
2705
+ /* @__NO_SIDE_EFFECTS__ */
2682
2706
  function _unknown(Class) {
2683
2707
  return new Class({ type: "unknown" });
2684
2708
  }
@@ -3227,6 +3251,13 @@ const numberProcessor = (schema, ctx, _json, _params) => {
3227
3251
  const booleanProcessor = (_schema, _ctx, json, _params) => {
3228
3252
  json.type = "boolean";
3229
3253
  };
3254
+ const nullProcessor = (_schema, ctx, json, _params) => {
3255
+ if (ctx.target === "openapi-3.0") {
3256
+ json.type = "string";
3257
+ json.nullable = true;
3258
+ json.enum = [null];
3259
+ } else json.type = "null";
3260
+ };
3230
3261
  const neverProcessor = (_schema, _ctx, json, _params) => {
3231
3262
  json.not = {};
3232
3263
  };
@@ -3926,6 +3957,14 @@ const ZodBoolean = /* @__PURE__ */ $constructor("ZodBoolean", (inst, def) => {
3926
3957
  function boolean(params) {
3927
3958
  return /* @__PURE__ */ _boolean(ZodBoolean, params);
3928
3959
  }
3960
+ const ZodNull = /* @__PURE__ */ $constructor("ZodNull", (inst, def) => {
3961
+ $ZodNull.init(inst, def);
3962
+ ZodType.init(inst, def);
3963
+ inst._zod.processJSONSchema = (ctx, json, params) => nullProcessor(inst, ctx, json, params);
3964
+ });
3965
+ function _null(params) {
3966
+ return /* @__PURE__ */ _null$1(ZodNull, params);
3967
+ }
3929
3968
  const ZodUnknown = /* @__PURE__ */ $constructor("ZodUnknown", (inst, def) => {
3930
3969
  $ZodUnknown.init(inst, def);
3931
3970
  ZodType.init(inst, def);
@@ -6923,6 +6962,14 @@ object({
6923
6962
  uploadUrl: url(),
6924
6963
  storageKey: string().min(1)
6925
6964
  });
6965
+ function isValidIanaTimezone(value) {
6966
+ try {
6967
+ Intl.DateTimeFormat(void 0, { timeZone: value });
6968
+ return true;
6969
+ } catch {
6970
+ return false;
6971
+ }
6972
+ }
6926
6973
  const UserInterfaceThemeSchema = _enum([
6927
6974
  "system",
6928
6975
  "light",
@@ -6942,22 +6989,25 @@ const UserWorkspaceFavoriteSchema = object({
6942
6989
  ]),
6943
6990
  resourceId: string().min(1)
6944
6991
  });
6992
+ const UserSidebarPreferencesSchema = object({
6993
+ navIconVisibility: UserSidebarNavIconVisibilitySchema,
6994
+ footerChatRowVisibility: UserSidebarFooterChatRowVisibilitySchema,
6995
+ hiddenNavItemIds: array(string()),
6996
+ topNavItemOrderIds: array(string()),
6997
+ workspaceNavItemOrderIds: array(string())
6998
+ });
6999
+ const UserTimezoneSchema = string().refine(isValidIanaTimezone, { message: "Invalid IANA timezone" });
6945
7000
  object({
6946
7001
  interfaceTheme: UserInterfaceThemeSchema,
6947
7002
  surfaceContrast: UserSurfaceContrastSchema,
6948
7003
  layoutMode: UserWorkspaceLayoutModeSchema,
6949
7004
  fontSize: UserWorkspaceFontSizeSchema,
6950
- sidebar: object({
6951
- navIconVisibility: UserSidebarNavIconVisibilitySchema,
6952
- footerChatRowVisibility: UserSidebarFooterChatRowVisibilitySchema,
6953
- hiddenNavItemIds: array(string()),
6954
- topNavItemOrderIds: array(string()),
6955
- workspaceNavItemOrderIds: array(string())
6956
- }),
7005
+ sidebar: UserSidebarPreferencesSchema,
6957
7006
  favorites: array(UserWorkspaceFavoriteSchema),
6958
7007
  projectOrderIds: array(string()),
6959
7008
  projectDotColors: record(string(), string()),
6960
- onboardingTabVisible: boolean()
7009
+ onboardingTabVisible: boolean(),
7010
+ timezone: union([UserTimezoneSchema, _null()])
6961
7011
  });
6962
7012
  const UserSidebarPreferencesPatchSchema = object({
6963
7013
  navIconVisibility: UserSidebarNavIconVisibilitySchema.optional(),
@@ -6975,8 +7025,9 @@ object({
6975
7025
  favorites: array(UserWorkspaceFavoriteSchema).optional(),
6976
7026
  projectOrderIds: array(string()).optional(),
6977
7027
  projectDotColors: record(string(), string()).optional(),
6978
- onboardingTabVisible: boolean().optional()
6979
- }).refine((value) => value.interfaceTheme !== void 0 || value.surfaceContrast !== void 0 || value.layoutMode !== void 0 || value.fontSize !== void 0 || value.sidebar !== void 0 || value.favorites !== void 0 || value.projectOrderIds !== void 0 || value.projectDotColors !== void 0 || value.onboardingTabVisible !== void 0, { message: "At least one preference field is required" });
7028
+ onboardingTabVisible: boolean().optional(),
7029
+ timezone: union([UserTimezoneSchema, _null()]).optional()
7030
+ }).refine((value) => value.interfaceTheme !== void 0 || value.surfaceContrast !== void 0 || value.layoutMode !== void 0 || value.fontSize !== void 0 || value.sidebar !== void 0 || value.favorites !== void 0 || value.projectOrderIds !== void 0 || value.projectDotColors !== void 0 || value.onboardingTabVisible !== void 0 || value.timezone !== void 0, { message: "At least one preference field is required" });
6980
7031
  const OrganizationLogoVariantSchema = _enum(["light", "dark"]);
6981
7032
  object({
6982
7033
  customLogoEnabled: boolean(),
@@ -7605,55 +7656,63 @@ function sleep(ms) {
7605
7656
  const MINIO_DOCKER_NETWORK = process.env.MINIO_DOCKER_NETWORK ?? "keystroke";
7606
7657
  function createDockerRuntime(options = {}) {
7607
7658
  const docker = options.docker ?? new Docker();
7608
- return { async start(input) {
7609
- if (input.projects.length === 0) throw new Error("Docker org runtime requires at least one project deploy");
7610
- let launch = resolveRuntimeLaunch(options, input.projects.map((project) => ({
7611
- projectId: project.projectId,
7612
- artifactStorageKey: project.artifactStorageKey
7613
- })), input.database, input.env);
7614
- if (options.workspacesMount) {
7615
- const { hostPath, containerPath } = options.workspacesMount;
7616
- await mkdir(hostPath, { recursive: true });
7617
- launch = {
7618
- ...launch,
7619
- env: {
7620
- ...launch.env,
7621
- KEYSTROKE_WORKSPACES_ROOT: containerPath
7622
- }
7659
+ return {
7660
+ async start(input) {
7661
+ if (input.projects.length === 0) throw new Error("Docker org runtime requires at least one project deploy");
7662
+ let launch = resolveRuntimeLaunch(options, input.projects.map((project) => ({
7663
+ projectId: project.projectId,
7664
+ artifactStorageKey: project.artifactStorageKey
7665
+ })), input.database, input.env);
7666
+ if (options.workspacesMount) {
7667
+ const { hostPath, containerPath } = options.workspacesMount;
7668
+ await mkdir(hostPath, { recursive: true });
7669
+ launch = {
7670
+ ...launch,
7671
+ env: {
7672
+ ...launch.env,
7673
+ KEYSTROKE_WORKSPACES_ROOT: containerPath
7674
+ }
7675
+ };
7676
+ }
7677
+ await ensureImage(docker, launch.image);
7678
+ await removeExistingContainer(docker, input.organizationId);
7679
+ const binds = [...options.workspacesMount ? [`${options.workspacesMount.hostPath}:${options.workspacesMount.containerPath}`] : [], ...options.extraBinds ?? []];
7680
+ const container = await docker.createContainer({
7681
+ Image: launch.image,
7682
+ name: containerName(input.organizationId),
7683
+ Labels: {
7684
+ "keystroke.organization.id": input.organizationId,
7685
+ "keystroke.project.ids": input.projects.map((project) => project.projectId).join(",")
7686
+ },
7687
+ ExposedPorts: { [`${launch.port}/tcp`]: {} },
7688
+ HostConfig: {
7689
+ ExtraHosts: ["host.docker.internal:host-gateway"],
7690
+ PortBindings: { [`${launch.port}/tcp`]: [{ HostPort: "0" }] },
7691
+ ...binds.length > 0 ? { Binds: binds } : {}
7692
+ },
7693
+ NetworkingConfig: { EndpointsConfig: { [MINIO_DOCKER_NETWORK]: {} } },
7694
+ Env: formatDockerEnv(launch.env)
7695
+ });
7696
+ await container.start();
7697
+ const inspect = await container.inspect();
7698
+ const binding = inspect.NetworkSettings.Ports?.[`${launch.port}/tcp`]?.[0];
7699
+ if (!binding?.HostPort) throw new Error("Failed to resolve org container host port");
7700
+ const baseUrl = `http://127.0.0.1:${binding.HostPort}`;
7701
+ await waitForHealth(baseUrl, {
7702
+ fetchImpl: options.fetchImpl,
7703
+ timeoutMs: options.healthTimeoutMs
7704
+ });
7705
+ return {
7706
+ runtimeId: inspect.Id,
7707
+ baseUrl
7623
7708
  };
7709
+ },
7710
+ async destroy(input) {
7711
+ try {
7712
+ await docker.getContainer(input.runtimeId).remove({ force: true });
7713
+ } catch {}
7624
7714
  }
7625
- await ensureImage(docker, launch.image);
7626
- await removeExistingContainer(docker, input.organizationId);
7627
- const container = await docker.createContainer({
7628
- Image: launch.image,
7629
- name: containerName(input.organizationId),
7630
- Labels: {
7631
- "keystroke.organization.id": input.organizationId,
7632
- "keystroke.project.ids": input.projects.map((project) => project.projectId).join(",")
7633
- },
7634
- ExposedPorts: { [`${launch.port}/tcp`]: {} },
7635
- HostConfig: {
7636
- ExtraHosts: ["host.docker.internal:host-gateway"],
7637
- PortBindings: { [`${launch.port}/tcp`]: [{ HostPort: "0" }] },
7638
- ...options.workspacesMount ? { Binds: [`${options.workspacesMount.hostPath}:${options.workspacesMount.containerPath}`] } : {}
7639
- },
7640
- NetworkingConfig: { EndpointsConfig: { [MINIO_DOCKER_NETWORK]: {} } },
7641
- Env: formatDockerEnv(launch.env)
7642
- });
7643
- await container.start();
7644
- const inspect = await container.inspect();
7645
- const binding = inspect.NetworkSettings.Ports?.[`${launch.port}/tcp`]?.[0];
7646
- if (!binding?.HostPort) throw new Error("Failed to resolve org container host port");
7647
- const baseUrl = `http://127.0.0.1:${binding.HostPort}`;
7648
- await waitForHealth(baseUrl, {
7649
- fetchImpl: options.fetchImpl,
7650
- timeoutMs: options.healthTimeoutMs
7651
- });
7652
- return {
7653
- runtimeId: inspect.Id,
7654
- baseUrl
7655
- };
7656
- } };
7715
+ };
7657
7716
  }
7658
7717
  function containerName(organizationId) {
7659
7718
  return `keystroke-org-${organizationId}`;