diff --git a/rivetkit-typescript/packages/rivetkit/src/registry/config/index.ts b/rivetkit-typescript/packages/rivetkit/src/registry/config/index.ts index 89646a5e79..8bd9bff61e 100644 --- a/rivetkit-typescript/packages/rivetkit/src/registry/config/index.ts +++ b/rivetkit-typescript/packages/rivetkit/src/registry/config/index.ts @@ -160,17 +160,17 @@ export const RegistryConfigSchema = z }); } - // advertiseEndpoint required in production without endpoint + // clientEndpoint required in production without endpoint if ( !isDevEnv && !resolvedEndpoint && - !config.serverless.advertiseEndpoint + !config.serverless.clientEndpoint ) { ctx.addIssue({ code: "custom", message: - "advertiseEndpoint is required in production mode without endpoint", - path: ["advertiseEndpoint"], + "clientEndpoint is required in production mode without endpoint", + path: ["clientEndpoint"], }); } } @@ -185,87 +185,60 @@ export const RegistryConfigSchema = z const token = resolvedEndpoint?.token ?? config.token ?? getRivetToken(); - if (config.serverless) { - let serveManager: boolean; - let advertiseEndpoint: string; - - if (endpoint) { - // Remote endpoint provided: - // - Do not start manager server - // - Redirect clients to remote endpoint - serveManager = config.serveManager ?? false; - advertiseEndpoint = - config.serverless.advertiseEndpoint ?? endpoint; - } else if (isDevEnv) { - // Development mode, no endpoint: - // - Start manager server - // - Redirect clients to local server - serveManager = config.serveManager ?? true; - advertiseEndpoint = - config.serverless.advertiseEndpoint ?? - `http://localhost:${config.managerPort}`; - } else { - // Production mode, no endpoint: - // - Do not start manager server - // - Use file system driver - serveManager = config.serveManager ?? false; - invariant( - config.serverless.advertiseEndpoint, - "advertiseEndpoint is required in production mode without endpoint", - ); - advertiseEndpoint = config.serverless.advertiseEndpoint; - } - - // If endpoint is set or spawning engine, we'll use engine driver - disable manager inspector - const willUseEngine = !!endpoint || config.serverless.spawnEngine; - const inspector = willUseEngine - ? { - ...config.inspector, - enabled: { manager: false, actor: true }, - } - : config.inspector; + // Logic: + // - If endpoint provided: do not start manager server + // - If dev mode without endpoint: start manager server + // - If prod mode without endpoint: do not start manager server + let serveManager: boolean; + let clientEndpoint: string; - return { - ...config, - endpoint, - namespace, - token, - serveManager, - advertiseEndpoint, - inspector, - }; + if (endpoint) { + // Remote endpoint provided: + // - Do not start manager server + // - Redirect clients to remote endpoint + serveManager = config.serveManager ?? false; + clientEndpoint = config.serverless.clientEndpoint ?? endpoint; + } else if (isDevEnv) { + // Development mode, no endpoint: + // - Start manager server + // - Redirect clients to local server + serveManager = config.serveManager ?? true; + clientEndpoint = + config.serverless.clientEndpoint ?? + `http://localhost:${config.managerPort}`; } else { - // Runner logic: - // - If endpoint provided: do not start manager server - // - If dev mode without endpoint: start manager server - // - If prod mode without endpoint: do not start manager server - let serveManager: boolean; - if (endpoint) { - serveManager = config.serveManager ?? false; - } else if (isDevEnv) { - serveManager = config.serveManager ?? true; - } else { - serveManager = config.serveManager ?? false; - } + // Production mode, no endpoint: + // - Do not start manager server + // - Use file system driver + serveManager = config.serveManager ?? false; + invariant( + config.serverless.clientEndpoint, + "clientEndpoint is required in production mode without endpoint", + ); + clientEndpoint = config.serverless.clientEndpoint; + } - // If endpoint is set, we'll use engine driver - disable manager inspector - const willUseEngine = !!endpoint; - const inspector = willUseEngine - ? { - ...config.inspector, - enabled: { manager: false, actor: true }, - } - : config.inspector; + // If endpoint is set or spawning engine, we'll use engine driver - disable manager inspector + const willUseEngine = !!endpoint || config.serverless.spawnEngine; + const inspector = willUseEngine + ? { + ...config.inspector, + enabled: { manager: false, actor: true }, + } + : config.inspector; - return { - ...config, - endpoint, - namespace, - token, - serveManager, - inspector, - }; - } + return { + ...config, + serverless: { + ...config.serverless, + clientEndpoint, + }, + endpoint, + namespace, + token, + serveManager, + inspector, + }; }); export type RegistryConfig = z.infer; diff --git a/rivetkit-typescript/packages/rivetkit/src/registry/config/serverless.ts b/rivetkit-typescript/packages/rivetkit/src/registry/config/serverless.ts index 14545160b0..3747263c3e 100644 --- a/rivetkit-typescript/packages/rivetkit/src/registry/config/serverless.ts +++ b/rivetkit-typescript/packages/rivetkit/src/registry/config/serverless.ts @@ -53,7 +53,7 @@ export const ServerlessConfigSchema = z.object({ * * Auto-determined based on endpoint and NODE_ENV if not specified. */ - advertiseEndpoint: z.string().optional(), + clientEndpoint: z.string().optional(), }); export type ServerlessConfigInput = z.input; export type ServerlessConfig = z.infer; diff --git a/rivetkit-typescript/packages/rivetkit/src/registry/index.ts b/rivetkit-typescript/packages/rivetkit/src/registry/index.ts index 78e6346cf6..30db038dac 100644 --- a/rivetkit-typescript/packages/rivetkit/src/registry/index.ts +++ b/rivetkit-typescript/packages/rivetkit/src/registry/index.ts @@ -244,7 +244,7 @@ export class Registry { (kind === "serverless" && config.serverless.spawnEngine) ) { console.log( - ` - Endpoint: ${config.serverless.advertiseEndpoint}`, + ` - Endpoint: ${config.endpoint ?? config.serverless.clientEndpoint}`, ); } if (kind === "serverless" && config.serverless.spawnEngine) { diff --git a/rivetkit-typescript/packages/rivetkit/src/serverless/router.ts b/rivetkit-typescript/packages/rivetkit/src/serverless/router.ts index fd87f1f36a..a9c680eb60 100644 --- a/rivetkit-typescript/packages/rivetkit/src/serverless/router.ts +++ b/rivetkit-typescript/packages/rivetkit/src/serverless/router.ts @@ -99,7 +99,7 @@ export function buildServerlessRouter( c, config, { serverless: {} }, - config.serverless.advertiseEndpoint, + config.serverless.clientEndpoint, ), ); });