|
93 | 93 | |-------|-------------|----------| |
94 | 94 | | `name` | Identifier for the port (used to generate environment variables) | Yes | |
95 | 95 | | `port` | The port number to expose | Yes | |
| 96 | +| `unauthenticated` | Skip authentication for this port's preview URL (`false` by default). See [Public Ports](#public-ports-unauthenticated) | No | |
96 | 97 | | `proxied` | Whether traffic goes through the auth proxy (`true` by default). Set to `false` for direct port access (see [Direct Port Access](#direct-port-access-non-proxied)) | No | |
97 | 98 | | `initial_path` | Default path to append to the preview URL | No | |
98 | 99 | | `subdomain` | Subdomain to set on the `Host` header when forwarding requests to the app | No | |
@@ -195,6 +196,28 @@ Invalid examples: |
195 | 196 | - **Admin panels**: Serve an admin interface on `admin.localhost:3000` while the main app runs on the root domain |
196 | 197 | - **Subdomain APIs**: Frameworks like Rails can use `api.localhost:3000` to route API requests to a separate controller namespace |
197 | 198 |
|
| 199 | +### Public Ports (Unauthenticated) |
| 200 | + |
| 201 | +By default, all preview URLs require authentication -- visitors must be signed in to your Roo Code Cloud organization to access them. Setting `unauthenticated: true` on a port disables this auth check while keeping the proxy layer intact. |
| 202 | + |
| 203 | +```yaml |
| 204 | +ports: |
| 205 | + - name: DOCS |
| 206 | + port: 4000 |
| 207 | + unauthenticated: true |
| 208 | + - name: WEBHOOK |
| 209 | + port: 3002 |
| 210 | + unauthenticated: true |
| 211 | +``` |
| 212 | + |
| 213 | +Use `unauthenticated: true` when you need: |
| 214 | + |
| 215 | +- **Public-facing endpoints** like documentation sites or landing pages |
| 216 | +- **Webhook receivers** that need to accept requests from external services (e.g., Stripe, GitHub) |
| 217 | +- **Health checks** or status pages accessed by monitoring tools |
| 218 | + |
| 219 | +The port still goes through the proxy, so it benefits from HTTPS termination and domain routing. Only the authentication requirement is removed. |
| 220 | + |
198 | 221 | ### Direct Port Access (Non-Proxied) |
199 | 222 |
|
200 | 223 | By default, all ports are proxied through an authentication layer that validates requests before forwarding them to your application. Setting `proxied: false` bypasses this proxy entirely and exposes the port directly on the sandbox domain. |
|
0 commit comments