Files
twenty/packages/twenty-docs/user-guide/settings/capabilities/domains-settings.mdx
T
Félix Malfait b5b6e110b0 Merge app Public URL and Public Domains settings into one App URL section (#22666)
## Context

The app settings tab showed two sections for the same concept: a "Public
URL" block with a very technical description (Permissions-Policy, COOP,
COEP), a blue info banner about the legacy `/s/` endpoint, and a
separate "Public Domains" block. Confusing, and scary-sounding for apps
whose routes are not really "public".

## Changes

**One merged "App URL" section** (still only rendered for apps that
actually expose HTTP-triggered functions):
- Title renamed to the neutral "App URL" with a one-line description:
"This app's routes are served from this URL. Add a custom domain to use
your own."
- Read-only copyable base URL input, custom domain list card right below
it.
- Removed the info banner and all header/CORS jargon.

**Always show the real URL**: `getFunctionsBaseUrl` now takes
`serverBaseUrl` and falls back to `${serverBaseUrl}/s` instead of
returning `undefined`, so self-hosted instances (no dedicated function
domain) see their actual base URL instead of nothing. This centralizes
the fallback previously duplicated in `FrontComponentRenderer` and
`getLogicFunctionHttpUrl`.

**"Public Domain" renamed to "Custom Domain"** in all user-facing
strings (add card, footer button, detail page, snackbars). Internal
identifiers, GraphQL types and routes keep the `PublicDomain` name to
match the backend entity.

**Polish**:
- Domain rows and the add card use a world icon instead of the mail
icon.
- Row description shows "Added x days ago" instead of a raw ISO
timestamp, via a new shared `useGetAddedRelativeDateDescription` hook
also adopted by the approved access domains card that had the same
inline helper.
- `FrontComponentRenderer` consumes `functionsBaseUrl` from
`useGetLogicFunctionHttpUrl` instead of re-deriving it from the same
atoms.
- User docs updated accordingly.

## Testing

- Ran the app locally (Postgres/Redis + server + front), synced a
fixture app with an HTTP-triggered logic function, and verified the
merged section renders correctly with the copyable URL and Add Custom
Domain card, no banner, no duplicate section.
- `getLogicFunctionHttpUrl` unit tests updated and passing (7/7), `npx
nx typecheck twenty-front` and `lint:diff-with-main` green.
- Locale catalogs are untouched; Crowdin sync regenerates them from the
new source strings.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01NyEWoybMBq62cSNfAFdJAT)_

<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/22666?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->
2026-07-08 16:44:26 +02:00

51 lines
1.7 KiB
Plaintext

---
title: Domain Settings
description: Configure workspace domain, approved access domains, and app custom domains.
---
Domain settings live in three places, depending on what you're configuring.
## Workspace Domain
Configure under **Settings → General → Workspace Domain**.
Edit your subdomain name or set a custom domain for your workspace.
### Customize Domain
1. Click **Customize Domain**
2. Edit your subdomain (e.g., `yourcompany.twenty.com`)
3. Or set up a custom domain (e.g., `crm.yourcompany.com`)
For custom domains, you'll need to configure DNS settings with your domain provider.
## Approved Domains
Configure under **Settings → Members → Invite**.
Anyone with an email address at these domains is allowed to sign up for this workspace automatically.
### Add Approved Access Domain
1. Click **Add Approved Access Domain**
2. Enter your company domain (e.g., `yourcompany.com`)
3. Save
Once configured, anyone with an email address at that domain can join your workspace without needing a direct invitation.
<Note>
This is useful for allowing your entire team to self-register while keeping the workspace restricted to your organization.
</Note>
## App Custom Domains
Configure under **Settings → Apps → your app → Settings → App URL**.
Apps that expose routes on the web are served from a dedicated URL, shown in the **App URL** section. You can serve an app from a domain you own instead.
### Add Custom Domain
1. Click **Add Custom Domain**
2. Enter the domain you want to use (e.g., `app.yourcompany.com`)
3. Configure DNS settings as instructed
4. Verify the domain
Only that app's routes are reachable on the domain. SSL certificates are provisioned automatically.