Skip to main content
FissionPlane routes HTTPS traffic to any port inside a running sandbox through a stable URL. By default every port is private: access requires a short-lived capability token managed by the SDK. You can make a specific port public when you need anonymous browser access or third-party webhooks — but that is an explicit, audited action that is off by default.

Default behavior: private ports

Until you call ports.expose(), no port inside the sandbox is reachable from outside the node. When you expose a port as "private", FissionPlane allocates a stable HTTPS URL for that port and requires a valid capability token on every request. The SDK handles token negotiation for you automatically when you access a private port from application code.
When your code accesses a private port URL through the SDK, the capability token is attached automatically. You do not need to manage tokens manually for private port access — the SDK handles minting and refreshing them on your behalf.

Expose a port as private

Call ports.expose(port, 'private') to make a port reachable over HTTPS with token-gated access. The returned exposure object includes the URL.

Expose a port as public

Pass 'public' to make the port anonymously accessible. Use this only when you need a browser preview or a third-party service to reach the sandbox without a token.
Public port exposure makes the port accessible to anyone with the URL — no authentication or capability token is required. Only expose a port publicly when anonymous access is explicitly required for your use case. FissionPlane logs every public exposure for audit purposes and the feature is disabled by default. Management ports and agent ports can never be made public.

URL format

Exposed port URLs follow this pattern:
For example, port 3000 on sandbox sbx-abc123 at sandbox.example.com becomes:
The URL is stable for the lifetime of the exposure record. If you unexpose a port and re-expose it, the URL remains the same.

List exposed ports

ports.list() returns all active exposure records for the sandbox, including their port numbers, visibility settings, and URLs.

Unexpose a port

ports.unexpose(port) removes the exposure record for the given port. After this call, the port returns to private access and the URL becomes unreachable.