@cloudflare/containers 0.1.1 → 0.2.1

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/README.md CHANGED
@@ -5,6 +5,7 @@ A class for interacting with Containers on Cloudflare Workers.
5
5
  ## Features
6
6
 
7
7
  - HTTP request proxying and WebSocket forwarding
8
+ - Outbound request interception by host or catch-all handler
8
9
  - Simple container lifecycle management (starting and stopping containers)
9
10
  - Event hooks for container lifecycle events (onStart, onStop, onError)
10
11
  - Configurable sleep timeout that renews on requests
@@ -110,7 +111,6 @@ See [this example](#http-example-with-lifecycle-hooks).
110
111
  - `onStart()`
111
112
 
112
113
  Called when container starts successfully.
113
-
114
114
  - called when states transition from `stopped` -> `running`, `running` -> `healthy`
115
115
 
116
116
  - `onStop()`
@@ -150,7 +150,6 @@ See [this example](#http-example-with-lifecycle-hooks).
150
150
  Note: `containerFetch` does not work with websockets.
151
151
 
152
152
  Sends an HTTP request to the container. Supports both standard fetch API signatures:
153
-
154
153
  - `containerFetch(request, port?)`: Traditional signature with Request object
155
154
  - `containerFetch(url, init?, port?)`: Standard fetch-like signature with URL string/object and RequestInit options
156
155
 
@@ -188,7 +187,6 @@ See [this example](#http-example-with-lifecycle-hooks).
188
187
  Starts the container, without waiting for any ports to be ready.
189
188
 
190
189
  You might want to use this instead of `startAndWaitForPorts` if you want to:
191
-
192
190
  - Start a container without blocking until a port is available
193
191
  - Initialize a container that doesn't expose ports
194
192
  - Perform custom port availability checks separately
@@ -249,10 +247,52 @@ See [this example](#http-example-with-lifecycle-hooks).
249
247
 
250
248
  Manually renews the container activity timeout (extends container lifetime).
251
249
 
250
+ ##### Outbound Interception
251
+
252
+ Use outbound interception when you want to control what the container can reach, or proxy outbound requests through Worker code.
253
+
254
+ - `setOutboundByHost(host: string, method: string): Promise<void>`
255
+
256
+ Routes a specific hostname to a named handler from `static outboundHandlers`.
257
+
258
+ - `setOutboundByHosts(handlers: Record<string, string>): Promise<void>`
259
+
260
+ Replaces all runtime host-specific overrides at once.
261
+
262
+ - `removeOutboundByHost(host: string): Promise<void>`
263
+
264
+ Removes a runtime host-specific override.
265
+
266
+ - `setOutboundHandler(method: string): Promise<void>`
267
+
268
+ Sets the catch-all outbound handler to a named handler from `static outboundHandlers`.
269
+
270
+ To configure interception on the class itself:
271
+
272
+ - `static outbound = (req, env, ctx) => Response`
273
+
274
+ Catch-all handler for outbound requests.
275
+
276
+ - `static outboundByHost = { [host]: handler }`
277
+
278
+ Per-host handlers for exact hostname matches such as `google.com` or an IP address.
279
+
280
+ - `static outboundHandlers = { [name]: handler }`
281
+
282
+ Named handlers that can be selected at runtime with `setOutboundHandler` and `setOutboundByHost`.
283
+
284
+ Matching order is:
285
+
286
+ 1. Runtime `setOutboundByHost` override
287
+ 2. Static `outboundByHost`
288
+ 3. Runtime `setOutboundHandler` catch-all
289
+ 4. Static `outbound`
290
+
291
+ If nothing matches, the request goes out normally when `enableInternet` is `true`, and is blocked when `enableInternet` is `false`.
292
+
252
293
  - `schedule<T = string>(when: Date | number, callback: string, payload?: T): Promise<Schedule<T>>`
253
294
 
254
295
  Options:
255
-
256
296
  - `when`: When to execute the task (Date object or number of seconds delay)
257
297
  - `callback`: Name of the function to call as a string
258
298
  - `payload`: Data to pass to the callback
@@ -371,6 +411,45 @@ export class ConfiguredContainer extends Container {
371
411
 
372
412
  You can also set these on a per-instance basis with `start` or `startAndWaitForPorts`
373
413
 
414
+ ### Outbound Interception
415
+
416
+ This lets you intercept requests the container makes to the outside world.
417
+
418
+ ```typescript
419
+ import { Container, OutboundHandlerContext } from '@cloudflare/containers';
420
+
421
+ export class MyContainer extends Container {
422
+ defaultPort = 8080;
423
+ enableInternet = false;
424
+
425
+ static outboundByHost = {
426
+ 'google.com': (_req: Request, _env: unknown, ctx: OutboundHandlerContext) => {
427
+ return new Response('hi ' + ctx.containerId + ' i am google');
428
+ },
429
+ };
430
+
431
+ static outboundHandlers = {
432
+ async github(_req: Request, _env: unknown, _ctx: OutboundHandlerContext) {
433
+ return new Response('i am github');
434
+ },
435
+ };
436
+
437
+ static outbound = (req: Request) => {
438
+ return new Response(`Hi ${req.url}, I can't handle you`);
439
+ };
440
+
441
+ async routeGithubThroughHandler(): Promise<void> {
442
+ await this.setOutboundByHost('github.com', 'github');
443
+ }
444
+
445
+ async makeEverythingUseGithubHandler(): Promise<void> {
446
+ await this.setOutboundHandler('github');
447
+ }
448
+ }
449
+ ```
450
+
451
+ Use `outboundByHost` for fixed host rules, `outbound` for a default catch-all, and `outboundHandlers` for reusable named handlers you want to switch on at runtime.
452
+
374
453
  ### Multiple Ports and Custom Routing
375
454
 
376
455
  You can create a container that doesn't use a default port and instead routes traffic to different ports based on request path or other factors:
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- export { Container } from './lib/container';
1
+ export { Container, ContainerProxy, outboundParams } from './lib/container';
2
+ export type { OutboundHandler, OutboundHandlerContext, OutboundHandlerParams, OutboundHandlerParamsOf, OutboundHandlers, } from './lib/container';
2
3
  export { getRandom, loadBalance, getContainer, switchPort } from './lib/utils';
3
4
  export type { ContainerOptions, ContainerEventHandler, ContainerMessage, ContainerStartConfigOptions, StopParams, WaitOptions, State, } from './types';
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Container } from './lib/container';
1
+ export { Container, ContainerProxy, outboundParams } from './lib/container';
2
2
  export { getRandom, loadBalance, getContainer, switchPort } from './lib/utils';
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQ5E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -1,8 +1,59 @@
1
1
  import type { ContainerOptions, ContainerStartOptions, ContainerStartConfigOptions, Schedule, StopParams, State, WaitOptions, CancellationOptions, StartAndWaitForPortsOptions } from '../types';
2
- import { DurableObject } from 'cloudflare:workers';
2
+ import { DurableObject, WorkerEntrypoint } from 'cloudflare:workers';
3
+ export type OutboundHandlerContext<Params = unknown> = {
4
+ containerId: string;
5
+ className: string;
6
+ } & ([Params] extends [undefined] ? {
7
+ params?: undefined;
8
+ } : undefined extends Params ? {
9
+ params?: Params;
10
+ } : {
11
+ params: Params;
12
+ });
13
+ type OutboundParamsArg<Params> = [Params] extends [undefined] ? [] : undefined extends Params ? [params?: Params] : [params: Params];
14
+ export type OutboundHandler<E = Cloudflare.Env, P = unknown> = {
15
+ bivarianceHack(req: Request, env: E, ctx: OutboundHandlerContext<P>): Promise<Response> | Response;
16
+ }['bivarianceHack'];
17
+ export type OutboundHandlerParams = Record<string, unknown>;
18
+ export type OutboundHandlerParamsOf<THandler> = THandler extends (req: Request, env: unknown, ctx: OutboundHandlerContext<infer Params>) => Promise<Response> | Response ? Params : never;
19
+ export declare function outboundParams<THandler extends OutboundHandler<unknown, unknown>>(_handler: THandler, params: OutboundHandlerParamsOf<THandler>): OutboundHandlerParamsOf<THandler>;
20
+ export type OutboundHandlers<ParamsByMethod extends OutboundHandlerParams, E = Cloudflare.Env> = {
21
+ [Method in keyof ParamsByMethod]?: OutboundHandler<E, ParamsByMethod[Method]>;
22
+ };
23
+ type OutboundHandlerOverride<Params = unknown> = {
24
+ method: string;
25
+ } & ([Params] extends [undefined] ? {
26
+ params?: undefined;
27
+ } : undefined extends Params ? {
28
+ params?: Params;
29
+ } : {
30
+ params: Params;
31
+ });
32
+ type OutboundByHostOverrides = Record<string, OutboundHandlerOverride>;
33
+ type OutboundByHostOverrideInput<Params = unknown> = Record<string, string | OutboundHandlerOverride<Params>>;
3
34
  export type Signal = 'SIGKILL' | 'SIGINT' | 'SIGTERM';
4
35
  export type SignalInteger = number;
36
+ type ContainerProxyOptions = {
37
+ enableInternet?: boolean;
38
+ containerId: string;
39
+ className: string;
40
+ outboundByHostOverrides?: OutboundByHostOverrides;
41
+ outboundHandlerOverride?: OutboundHandlerOverride;
42
+ };
43
+ export declare class ContainerProxy extends WorkerEntrypoint<Cloudflare.Env, ContainerProxyOptions> {
44
+ fetch(request: Request): Promise<Response>;
45
+ }
5
46
  export declare class Container<Env = Cloudflare.Env> extends DurableObject<Env> {
47
+ static get outboundByHost(): Record<string, OutboundHandler> | undefined;
48
+ static set outboundByHost(handlers: Record<string, OutboundHandler>);
49
+ static get outboundHandlers(): Record<string, OutboundHandler> | undefined;
50
+ static set outboundHandlers(handlers: Record<string, OutboundHandler>);
51
+ static get outbound(): OutboundHandler | undefined;
52
+ static set outbound(handler: OutboundHandler);
53
+ static get outboundProxies(): Record<string, OutboundHandler> | undefined;
54
+ static set outboundProxies(handlers: Record<string, OutboundHandler>);
55
+ static get outboundProxy(): OutboundHandler | undefined;
56
+ static set outboundProxy(handler: OutboundHandler);
6
57
  defaultPort?: number;
7
58
  requiredPorts?: number[];
8
59
  sleepAfter: string | number;
@@ -10,12 +61,49 @@ export declare class Container<Env = Cloudflare.Env> extends DurableObject<Env>
10
61
  entrypoint: ContainerStartOptions['entrypoint'];
11
62
  enableInternet: ContainerStartOptions['enableInternet'];
12
63
  pingEndpoint: string;
64
+ applyOutboundInterceptionPromise: Promise<void>;
65
+ usingInterception: boolean;
13
66
  constructor(ctx: DurableObject['ctx'], env: Env, options?: ContainerOptions);
14
67
  /**
15
68
  * Gets the current state of the container
16
69
  * @returns Promise<State>
17
70
  */
18
71
  getState(): Promise<State>;
72
+ /**
73
+ * Set the catch-all outbound handler to a named method from `outboundHandlers`.
74
+ * Overrides the default `outbound` at runtime via ContainerProxy props.
75
+ *
76
+ * @param methodName - Name of a method defined in `static outboundHandlers`
77
+ * @param params - Optional params passed to the handler as `ctx.params`
78
+ * @throws Error if the method name is not found in `outboundHandlers`
79
+ */
80
+ setOutboundHandler<Params = unknown>(methodName: string, ...paramsArg: OutboundParamsArg<Params>): Promise<void>;
81
+ /**
82
+ * Add or override a hostname-specific outbound handler at runtime,
83
+ * referencing a named method from `outboundHandlers`.
84
+ * Overrides any matching entry in `static outboundByHost` for this hostname.
85
+ *
86
+ * @param hostname - The hostname or ip:port to intercept (e.g. `'google.com'`)
87
+ * @param methodName - Name of a method defined in `static outboundHandlers`
88
+ * @param params - Optional params passed to the handler as `ctx.params`
89
+ * @throws Error if the method name is not found in `outboundHandlers`
90
+ */
91
+ setOutboundByHost<Params = unknown>(hostname: string, methodName: string, ...paramsArg: OutboundParamsArg<Params>): Promise<void>;
92
+ /**
93
+ * Remove a runtime hostname override added via `setOutboundByHost`.
94
+ * The default handler from `static outboundByHost` (if any) will be used again.
95
+ *
96
+ * @param hostname - The hostname or ip:port to stop overriding
97
+ */
98
+ removeOutboundByHost(hostname: string): Promise<void>;
99
+ /**
100
+ * Replace all runtime hostname overrides at once.
101
+ * Each value may be either a method name or an object with `method` and `params`.
102
+ *
103
+ * @param handlers - Record mapping hostnames to handler configs in `outboundHandlers`
104
+ * @throws Error if any method name is not found in `outboundHandlers`
105
+ */
106
+ setOutboundByHosts<Params = unknown>(handlers: OutboundByHostOverrideInput<Params>): Promise<void>;
19
107
  /**
20
108
  * Start the container if it's not running and set up monitoring and lifecycle hooks,
21
109
  * without waiting for ports to be ready.
@@ -105,6 +193,12 @@ export declare class Container<Env = Cloudflare.Env> extends DurableObject<Env>
105
193
  * Call this method whenever there is activity on the container
106
194
  */
107
195
  renewActivityTimeout(): void;
196
+ /**
197
+ * Decrement the inflight request counter.
198
+ * When the counter transitions to 0, renew the activity timeout so the
199
+ * inactivity window starts fresh from the moment the last request completes.
200
+ */
201
+ private decrementInflight;
108
202
  /**
109
203
  * Schedule a task to be executed in the future.
110
204
  *
@@ -148,6 +242,23 @@ export declare class Container<Env = Cloudflare.Env> extends DurableObject<Env>
148
242
  private monitor;
149
243
  private monitorSetup;
150
244
  private sleepAfterMs;
245
+ private inflightRequests;
246
+ private outboundByHostOverrides;
247
+ private outboundHandlerOverride?;
248
+ /**
249
+ * Validates that a method name exists in the outboundHandlers registry for this class.
250
+ * @throws Error if the method name is not found
251
+ */
252
+ private validateOutboundHandlerMethodName;
253
+ private getOutboundConfiguration;
254
+ private persistOutboundConfiguration;
255
+ private restoreOutboundConfiguration;
256
+ private refreshOutboundInterception;
257
+ /**
258
+ * Applies (or re-applies) outbound HTTP interception with the current
259
+ * default registries + runtime overrides passed through ContainerProxy props.
260
+ */
261
+ private applyOutboundInterception;
151
262
  /**
152
263
  * Execute SQL queries against the Container's database
153
264
  */
@@ -196,3 +307,4 @@ export declare class Container<Env = Cloudflare.Env> extends DurableObject<Env>
196
307
  getSchedule<T = string>(id: string): Promise<Schedule<T> | undefined>;
197
308
  private isActivityExpired;
198
309
  }
310
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { generateId, parseTimeExpression } from './helpers';
2
- import { DurableObject } from 'cloudflare:workers';
2
+ import { DurableObject, WorkerEntrypoint } from 'cloudflare:workers';
3
3
  // ====================
4
4
  // ====================
5
5
  // CONSTANTS
@@ -10,6 +10,7 @@ const RUNTIME_SIGNALLED_ERROR = 'runtime signalled the container to exit:';
10
10
  const UNEXPECTED_EXIT_ERROR = 'container exited with unexpected exit code:';
11
11
  const NOT_LISTENING_ERROR = 'the container is not listening';
12
12
  const CONTAINER_STATE_KEY = '__CF_CONTAINER_STATE';
13
+ const OUTBOUND_CONFIGURATION_KEY = 'OUTBOUND_CONFIGURATION';
13
14
  // maxRetries before scheduling next alarm is purposely set to 3,
14
15
  // as according to DO docs at https://developers.cloudflare.com/durable-objects/api/alarms/
15
16
  // the maximum amount for alarm retries is 6.
@@ -28,6 +29,15 @@ const TIMEOUT_TO_GET_PORTS_MS = 20_000;
28
29
  // If user has specified no ports and we need to check one
29
30
  // to see if the container is up at all.
30
31
  const FALLBACK_PORT_TO_CHECK = 33;
32
+ export function outboundParams(_handler, params) {
33
+ return params;
34
+ }
35
+ // class name to named outbound handlers (includes the default outbound handler)
36
+ const outboundHandlersRegistry = new Map();
37
+ // class name to default catch-all outbound handler method name in outboundHandlersRegistry
38
+ const defaultOutboundHandlerNameRegistry = new Map();
39
+ // class name to hostname to default outbound handler function
40
+ const outboundByHostRegistry = new Map();
31
41
  const signalToNumbers = {
32
42
  SIGINT: 2,
33
43
  SIGTERM: 15,
@@ -143,12 +153,88 @@ class ContainerState {
143
153
  await this.storage.put(CONTAINER_STATE_KEY, this.status);
144
154
  }
145
155
  }
156
+ export class ContainerProxy extends WorkerEntrypoint {
157
+ async fetch(request) {
158
+ const url = new URL(request.url);
159
+ const { className, containerId, outboundByHostOverrides, outboundHandlerOverride, enableInternet, } = this.ctx.props;
160
+ const handlers = outboundHandlersRegistry.get(className);
161
+ const baseCtx = { containerId, className };
162
+ // Runtime handler override takes priority over static outboundByHost
163
+ const outboundByHostOverride = outboundByHostOverrides?.[url.hostname];
164
+ if (outboundByHostOverride && handlers?.[outboundByHostOverride.method]) {
165
+ return handlers[outboundByHostOverride.method](request, this.env, {
166
+ ...baseCtx,
167
+ params: outboundByHostOverride.params,
168
+ });
169
+ }
170
+ // Static outboundByHost
171
+ const handlersByHost = outboundByHostRegistry.get(className);
172
+ if (handlersByHost && url.hostname in handlersByHost) {
173
+ return handlersByHost[url.hostname](request, this.env, baseCtx);
174
+ }
175
+ // Runtime catch-all handler override
176
+ if (outboundHandlerOverride && handlers?.[outboundHandlerOverride.method]) {
177
+ return handlers[outboundHandlerOverride.method](request, this.env, {
178
+ ...baseCtx,
179
+ params: outboundHandlerOverride.params,
180
+ });
181
+ }
182
+ // Default catch-all handler (static outbound)
183
+ const defaultOutboundHandlerName = defaultOutboundHandlerNameRegistry.get(className);
184
+ if (defaultOutboundHandlerName && handlers?.[defaultOutboundHandlerName]) {
185
+ return handlers[defaultOutboundHandlerName](request, this.env, baseCtx);
186
+ }
187
+ // enableInternet fallback
188
+ if (enableInternet) {
189
+ return fetch(request);
190
+ }
191
+ return new Response('Origin is disallowed', { status: 520 });
192
+ }
193
+ }
146
194
  // ===============================
147
195
  // ===============================
148
196
  // MAIN CONTAINER CLASS
149
197
  // ===============================
150
198
  // ===============================
199
+ //
151
200
  export class Container extends DurableObject {
201
+ static get outboundByHost() {
202
+ return outboundByHostRegistry.get(this.name);
203
+ }
204
+ static set outboundByHost(handlers) {
205
+ outboundByHostRegistry.set(this.name, handlers);
206
+ }
207
+ static get outboundHandlers() {
208
+ return outboundHandlersRegistry.get(this.name);
209
+ }
210
+ static set outboundHandlers(handlers) {
211
+ const existing = outboundHandlersRegistry.get(this.name) ?? {};
212
+ outboundHandlersRegistry.set(this.name, { ...existing, ...handlers });
213
+ }
214
+ static get outbound() {
215
+ const handlerName = defaultOutboundHandlerNameRegistry.get(this.name);
216
+ if (!handlerName)
217
+ return undefined;
218
+ return outboundHandlersRegistry.get(this.name)?.[handlerName];
219
+ }
220
+ static set outbound(handler) {
221
+ const key = '__outbound__';
222
+ const existing = outboundHandlersRegistry.get(this.name) ?? {};
223
+ outboundHandlersRegistry.set(this.name, { ...existing, [key]: handler });
224
+ defaultOutboundHandlerNameRegistry.set(this.name, key);
225
+ }
226
+ static get outboundProxies() {
227
+ return this.outboundHandlers;
228
+ }
229
+ static set outboundProxies(handlers) {
230
+ this.outboundHandlers = handlers;
231
+ }
232
+ static get outboundProxy() {
233
+ return this.outbound;
234
+ }
235
+ static set outboundProxy(handler) {
236
+ this.outbound = handler;
237
+ }
152
238
  // =========================
153
239
  // Public Attributes
154
240
  // =========================
@@ -173,6 +259,8 @@ export class Container extends DurableObject {
173
259
  // but it's still useful if you want to control the path that
174
260
  // the Container class uses to send HTTP requests to.
175
261
  pingEndpoint = 'ping';
262
+ applyOutboundInterceptionPromise = Promise.resolve();
263
+ usingInterception = false;
176
264
  // =========================
177
265
  // PUBLIC INTERFACE
178
266
  // =========================
@@ -188,6 +276,15 @@ export class Container extends DurableObject {
188
276
  await this.scheduleNextAlarm();
189
277
  });
190
278
  this.container = ctx.container;
279
+ const persistedOutboundConfiguration = this.restoreOutboundConfiguration();
280
+ const ctor = this.constructor;
281
+ if (persistedOutboundConfiguration !== undefined ||
282
+ ctor.outboundByHost !== undefined ||
283
+ ctor.outbound !== undefined ||
284
+ ctor.outboundHandlers !== undefined) {
285
+ this.usingInterception = true;
286
+ this.applyOutboundInterceptionPromise = this.applyOutboundInterception();
287
+ }
191
288
  // Apply options if provided
192
289
  if (options) {
193
290
  if (options.defaultPort !== undefined)
@@ -219,6 +316,71 @@ export class Container extends DurableObject {
219
316
  async getState() {
220
317
  return { ...(await this.state.getState()) };
221
318
  }
319
+ // ====================================
320
+ // OUTBOUND INTERCEPTION CONFIG
321
+ // ====================================
322
+ /**
323
+ * Set the catch-all outbound handler to a named method from `outboundHandlers`.
324
+ * Overrides the default `outbound` at runtime via ContainerProxy props.
325
+ *
326
+ * @param methodName - Name of a method defined in `static outboundHandlers`
327
+ * @param params - Optional params passed to the handler as `ctx.params`
328
+ * @throws Error if the method name is not found in `outboundHandlers`
329
+ */
330
+ async setOutboundHandler(methodName, ...paramsArg) {
331
+ this.validateOutboundHandlerMethodName(methodName);
332
+ this.outboundHandlerOverride =
333
+ paramsArg.length === 0
334
+ ? { method: methodName }
335
+ : { method: methodName, params: paramsArg[0] };
336
+ await this.refreshOutboundInterception();
337
+ }
338
+ /**
339
+ * Add or override a hostname-specific outbound handler at runtime,
340
+ * referencing a named method from `outboundHandlers`.
341
+ * Overrides any matching entry in `static outboundByHost` for this hostname.
342
+ *
343
+ * @param hostname - The hostname or ip:port to intercept (e.g. `'google.com'`)
344
+ * @param methodName - Name of a method defined in `static outboundHandlers`
345
+ * @param params - Optional params passed to the handler as `ctx.params`
346
+ * @throws Error if the method name is not found in `outboundHandlers`
347
+ */
348
+ async setOutboundByHost(hostname, methodName, ...paramsArg) {
349
+ this.validateOutboundHandlerMethodName(methodName);
350
+ this.outboundByHostOverrides[hostname] =
351
+ paramsArg.length === 0
352
+ ? { method: methodName }
353
+ : { method: methodName, params: paramsArg[0] };
354
+ await this.refreshOutboundInterception();
355
+ }
356
+ /**
357
+ * Remove a runtime hostname override added via `setOutboundByHost`.
358
+ * The default handler from `static outboundByHost` (if any) will be used again.
359
+ *
360
+ * @param hostname - The hostname or ip:port to stop overriding
361
+ */
362
+ async removeOutboundByHost(hostname) {
363
+ delete this.outboundByHostOverrides[hostname];
364
+ await this.refreshOutboundInterception();
365
+ }
366
+ /**
367
+ * Replace all runtime hostname overrides at once.
368
+ * Each value may be either a method name or an object with `method` and `params`.
369
+ *
370
+ * @param handlers - Record mapping hostnames to handler configs in `outboundHandlers`
371
+ * @throws Error if any method name is not found in `outboundHandlers`
372
+ */
373
+ async setOutboundByHosts(handlers) {
374
+ for (const handler of Object.values(handlers)) {
375
+ const methodName = typeof handler === 'string' ? handler : handler.method;
376
+ this.validateOutboundHandlerMethodName(methodName);
377
+ }
378
+ this.outboundByHostOverrides = Object.fromEntries(Object.entries(handlers).map(([hostname, handler]) => [
379
+ hostname,
380
+ typeof handler === 'string' ? { method: handler } : handler,
381
+ ]));
382
+ await this.refreshOutboundInterception();
383
+ }
222
384
  // ==========================
223
385
  // CONTAINER STARTING
224
386
  // ==========================
@@ -362,7 +524,7 @@ export class Container extends DurableObject {
362
524
  }
363
525
  // Wait a bit before trying again
364
526
  await Promise.any([
365
- new Promise(resolve => setTimeout(resolve, waitOptions.waitInterval)),
527
+ new Promise(resolve => setTimeout(resolve, pollInterval)),
366
528
  abortedSignal,
367
529
  ]);
368
530
  if (waitOptions.signal?.aborted) {
@@ -415,6 +577,7 @@ export class Container extends DurableObject {
415
577
  * By default, this method calls `this.stop()`
416
578
  */
417
579
  async onActivityExpired() {
580
+ console.log('Activity expired, signalling container to stop');
418
581
  if (!this.container.running) {
419
582
  return;
420
583
  }
@@ -439,6 +602,17 @@ export class Container extends DurableObject {
439
602
  const timeoutInMs = parseTimeExpression(this.sleepAfter) * 1000;
440
603
  this.sleepAfterMs = Date.now() + timeoutInMs;
441
604
  }
605
+ /**
606
+ * Decrement the inflight request counter.
607
+ * When the counter transitions to 0, renew the activity timeout so the
608
+ * inactivity window starts fresh from the moment the last request completes.
609
+ */
610
+ decrementInflight() {
611
+ this.inflightRequests = Math.max(0, this.inflightRequests - 1);
612
+ if (this.inflightRequests === 0) {
613
+ this.renewActivityTimeout();
614
+ }
615
+ }
442
616
  // ==================
443
617
  // SCHEDULING
444
618
  // ==================
@@ -538,13 +712,84 @@ export class Container extends DurableObject {
538
712
  const tcpPort = this.container.getTcpPort(port);
539
713
  // Create URL for the container request
540
714
  const containerUrl = request.url.replace('https:', 'http:');
715
+ this.inflightRequests++;
541
716
  try {
542
717
  // Renew the activity timeout whenever a request is proxied
543
718
  this.renewActivityTimeout();
544
719
  const res = await tcpPort.fetch(containerUrl, request);
720
+ if (res.webSocket !== null) {
721
+ // WebSocket response: proxy by accepting both sides and forwarding messages
722
+ const containerWs = res.webSocket;
723
+ const [client, server] = Object.values(new WebSocketPair());
724
+ // Guard to ensure we only decrement inflight once per WebSocket,
725
+ // since both close and error events can fire.
726
+ let settled = false;
727
+ const settleInflight = () => {
728
+ if (!settled) {
729
+ settled = true;
730
+ this.decrementInflight();
731
+ }
732
+ };
733
+ // Accept both WebSocket ends
734
+ containerWs.accept();
735
+ server.accept();
736
+ // Forward messages from client to container
737
+ server.addEventListener('message', (event) => {
738
+ this.renewActivityTimeout();
739
+ try {
740
+ containerWs.send(event.data);
741
+ }
742
+ catch {
743
+ server.close(1011, 'Failed to forward message to container');
744
+ }
745
+ });
746
+ // Forward messages from container to client
747
+ containerWs.addEventListener('message', (event) => {
748
+ this.renewActivityTimeout();
749
+ try {
750
+ server.send(event.data);
751
+ }
752
+ catch {
753
+ containerWs.close(1011, 'Failed to forward message to client');
754
+ }
755
+ });
756
+ // Forward close from client to container
757
+ server.addEventListener('close', (event) => {
758
+ settleInflight();
759
+ // Codes 1005 (No Status Received) and 1006 (Abnormal Closure) are
760
+ // reserved and cannot be sent in a close frame — fall back to 1000.
761
+ const code = event.code === 1005 || event.code === 1006 ? 1000 : event.code;
762
+ containerWs.close(code, event.reason);
763
+ });
764
+ // Forward close from container to client
765
+ containerWs.addEventListener('close', (event) => {
766
+ settleInflight();
767
+ const code = event.code === 1005 || event.code === 1006 ? 1000 : event.code;
768
+ server.close(code, event.reason);
769
+ });
770
+ // Forward errors
771
+ server.addEventListener('error', () => {
772
+ settleInflight();
773
+ containerWs.close(1011, 'Client WebSocket error');
774
+ });
775
+ containerWs.addEventListener('error', () => {
776
+ settleInflight();
777
+ server.close(1011, 'Container WebSocket error');
778
+ });
779
+ return new Response(null, { status: 101, webSocket: client });
780
+ }
781
+ if (res.body !== undefined) {
782
+ let { readable, writable } = new TransformStream();
783
+ res.body?.pipeTo(writable).finally(() => {
784
+ this.decrementInflight();
785
+ });
786
+ return new Response(readable, res);
787
+ }
788
+ this.decrementInflight();
545
789
  return res;
546
790
  }
547
791
  catch (e) {
792
+ this.decrementInflight();
548
793
  if (!(e instanceof Error)) {
549
794
  throw e;
550
795
  }
@@ -595,9 +840,96 @@ export class Container extends DurableObject {
595
840
  monitor;
596
841
  monitorSetup = false;
597
842
  sleepAfterMs = 0;
843
+ inflightRequests = 0;
844
+ // Outbound interception runtime overrides (passed through ContainerProxy props)
845
+ outboundByHostOverrides = {};
846
+ outboundHandlerOverride;
598
847
  // ==========================
599
848
  // GENERAL HELPERS
600
849
  // ==========================
850
+ /**
851
+ * Validates that a method name exists in the outboundHandlers registry for this class.
852
+ * @throws Error if the method name is not found
853
+ */
854
+ validateOutboundHandlerMethodName(methodName) {
855
+ const handlers = outboundHandlersRegistry.get(this.constructor.name);
856
+ if (!handlers || !(methodName in handlers)) {
857
+ throw new Error(`Outbound handler method '${methodName}' not found in outboundHandlers for ${this.constructor.name}`);
858
+ }
859
+ }
860
+ getOutboundConfiguration() {
861
+ return {
862
+ enableInternet: this.enableInternet,
863
+ outboundByHostOverrides: Object.keys(this.outboundByHostOverrides).length > 0
864
+ ? this.outboundByHostOverrides
865
+ : undefined,
866
+ outboundHandlerOverride: this.outboundHandlerOverride,
867
+ };
868
+ }
869
+ persistOutboundConfiguration(configuration) {
870
+ this.ctx.storage.kv.put(OUTBOUND_CONFIGURATION_KEY, configuration);
871
+ }
872
+ restoreOutboundConfiguration() {
873
+ const configuration = this.ctx.storage.kv.get(OUTBOUND_CONFIGURATION_KEY);
874
+ if (!configuration) {
875
+ return undefined;
876
+ }
877
+ if (configuration.enableInternet !== undefined) {
878
+ this.enableInternet = configuration.enableInternet;
879
+ }
880
+ this.outboundHandlerOverride = undefined;
881
+ if (configuration.outboundHandlerOverride !== undefined) {
882
+ try {
883
+ this.validateOutboundHandlerMethodName(configuration.outboundHandlerOverride.method);
884
+ this.outboundHandlerOverride = configuration.outboundHandlerOverride;
885
+ }
886
+ catch (error) {
887
+ console.warn('Ignoring invalid persisted outbound handler override:', error);
888
+ }
889
+ }
890
+ this.outboundByHostOverrides = {};
891
+ for (const [hostname, override] of Object.entries(configuration.outboundByHostOverrides ?? {})) {
892
+ try {
893
+ this.validateOutboundHandlerMethodName(override.method);
894
+ this.outboundByHostOverrides[hostname] = override;
895
+ }
896
+ catch (error) {
897
+ console.warn(`Ignoring invalid persisted outbound override for ${hostname}:`, error);
898
+ }
899
+ }
900
+ return this.getOutboundConfiguration();
901
+ }
902
+ async refreshOutboundInterception() {
903
+ if (!this.usingInterception) {
904
+ return;
905
+ }
906
+ this.applyOutboundInterceptionPromise = this.applyOutboundInterception();
907
+ await this.applyOutboundInterceptionPromise;
908
+ }
909
+ /**
910
+ * Applies (or re-applies) outbound HTTP interception with the current
911
+ * default registries + runtime overrides passed through ContainerProxy props.
912
+ */
913
+ async applyOutboundInterception() {
914
+ const ctx = this.ctx;
915
+ if (ctx.exports === undefined) {
916
+ throw new Error('ctx.exports is undefined, please try to update your compatibility date or export ContainerProxy from the containers package in your worker entrypoint');
917
+ }
918
+ if (ctx.exports.ContainerProxy === undefined) {
919
+ throw new Error('ctx.exports.ContainerProxy is undefined, export ContainerProxy from the containers package in your worker entrypoint');
920
+ }
921
+ const outboundConfiguration = this.getOutboundConfiguration();
922
+ this.persistOutboundConfiguration(outboundConfiguration);
923
+ await this.container.interceptAllOutboundHttp(ctx.exports.ContainerProxy({
924
+ props: {
925
+ enableInternet: outboundConfiguration.enableInternet,
926
+ containerId: this.ctx.id.toString(),
927
+ className: this.constructor.name,
928
+ outboundByHostOverrides: outboundConfiguration.outboundByHostOverrides,
929
+ outboundHandlerOverride: outboundConfiguration.outboundHandlerOverride,
930
+ },
931
+ }));
932
+ }
601
933
  /**
602
934
  * Execute SQL queries against the Container's database
603
935
  */
@@ -689,6 +1021,8 @@ export class Container extends DurableObject {
689
1021
  const envVars = options?.envVars ?? this.envVars;
690
1022
  const entrypoint = options?.entrypoint ?? this.entrypoint;
691
1023
  const enableInternet = options?.enableInternet ?? this.enableInternet;
1024
+ // TODO: hopefully, enableInternet can be false in a future where we enable DNS
1025
+ // and TLS paths.
692
1026
  // Only include properties that are defined
693
1027
  const startConfig = {
694
1028
  enableInternet,
@@ -721,6 +1055,7 @@ export class Container extends DurableObject {
721
1055
  }
722
1056
  await this.scheduleNextAlarm();
723
1057
  if (!this.container.running) {
1058
+ await this.refreshOutboundInterception();
724
1059
  this.container.start(startConfig);
725
1060
  this.monitor = this.container.monitor();
726
1061
  }
@@ -1000,6 +1335,9 @@ export class Container extends DurableObject {
1000
1335
  return this.toSchedule(schedule);
1001
1336
  }
1002
1337
  isActivityExpired() {
1338
+ if (this.inflightRequests > 0) {
1339
+ return false;
1340
+ }
1003
1341
  return this.sleepAfterMs <= Date.now();
1004
1342
  }
1005
1343
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/lib/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/lib/container.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudflare/containers",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "Helper class for container-enabled Durable Objects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,7 +40,7 @@
40
40
  "license": "ISC",
41
41
  "devDependencies": {
42
42
  "@changesets/cli": "^2.29.6",
43
- "@cloudflare/workers-types": "^4.20250620.0",
43
+ "@cloudflare/workers-types": "^4.20260228.1",
44
44
  "@types/jest": "^29.5.14",
45
45
  "@types/node": "^22.15.3",
46
46
  "@typescript-eslint/eslint-plugin": "^8.31.1",