Auto-derive session cookie domain; AI prompt page = formula builder hub
Session (no env needed): - SESSION_COOKIE_DOMAIN env removed. Config.SessionCookieParentDomain() derives the cookie Domain from WEB_ORIGIN + PUBLIC_API_URL, which the API already requires: sibling hosts of one parent (descrybe.io + api.descrybe.io) share the parent domain so SvelteKit SSR (/admin gate, user switching) receives the session cookie; localhost, IPs, same-host, and unrelated hosts stay host-only. Deploying the new build is the whole fix — nothing to configure. AI generation prompt page: - Each section now embeds its formula editor next to the per-language prompt instructions: Title = full title formula builder (preview, elements, separator, variable selector, custom variables), Description = description formula sections editor (type + instructions + export id, drag reorder), Meta = meta title / meta description formula fields. One Save writes categories.prompt + title_template + description_template together; Assign copies all three to the selected categories. - New $lib/categories/formula-variables.ts loads every usable field for the builder: custom variables (/api/variables), company attributes (/api/attributes — attribute_key, name, unit, example), and standard fields (/api/standard-fields). Used by both the prompt page and the title-formula page (which previously ignored attributes). Verified locally: svelte-check clean for changed files, unit tests pass, and the full save contract exercised over HTTP as the page does it (login → load variables/attributes/standard-fields → PATCH prompt + title-formula + description-formula → round-trip read), then the test category restored via repair-category-prompts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+3
-6
@@ -105,12 +105,9 @@ APP_ENCRYPTION_KEY=
|
||||
# Optional RATE_LIMIT_REPLICAS divides HTTP middleware caps only (not lockout/StartLimiter/AI/email)
|
||||
# — not a shared store. RATE_LIMIT_BACKEND=redis|postgres is docs-only and forced to memory.
|
||||
# SESSION_COOKIE_NAME=descrybe_session
|
||||
# Session cookie Domain attribute. Empty = host-only (localhost / same-host).
|
||||
# REQUIRED when web + api run on sibling subdomains (descrybe.io + api.descrybe.io):
|
||||
# set the parent domain so the browser also sends the session cookie to the web
|
||||
# host — SvelteKit SSR gates (/admin) forward it to /api/auth/me and otherwise
|
||||
# always see 401 (login loops back to /login?next=...).
|
||||
# SESSION_COOKIE_DOMAIN=descrybe.io
|
||||
# Session cookie Domain is derived automatically from WEB_ORIGIN + PUBLIC_API_URL:
|
||||
# sibling hosts of one parent (descrybe.io + api.descrybe.io) share the parent
|
||||
# domain so SvelteKit SSR receives the session cookie; localhost stays host-only.
|
||||
# CSRF_COOKIE_NAME=descrybe_csrf
|
||||
# PUBLIC_CSRF_COOKIE_NAME=descrybe_csrf
|
||||
# SESSION_IDLE_HOURS=24
|
||||
|
||||
Reference in New Issue
Block a user