Merged in fix/seamless-auth (pull request #1255)

fix: reduce the need for multiple SEAMLESS_LOGIN/SEAMLESS_LOGOUT

* fix: reduce the need for multiple SEAMLESS_LOGIN/SEAMLESS_LOGOUT

* fix: reduce the need for multiple SEAMLESS_LOGIN/SEAMLESS_LOGOUT

* fix: defaulted values that are the same in each environment


Approved-by: Christian Andolf
Approved-by: Linus Flood
This commit is contained in:
Joakim Jäderberg
2025-02-05 10:01:38 +00:00
committed by Linus Flood
parent 68f4a5b86d
commit 691c493522
2 changed files with 68 additions and 38 deletions

14
.env
View File

@@ -2,15 +2,5 @@ NEXTAUTH_DEBUG="false"
DEBUG_QUERIES="false" DEBUG_QUERIES="false"
SEAMLESS_ENVIRONMENT_SUBDOMAIN="www" SEAMLESS_ENVIRONMENT_SUBDOMAIN="www"
SEAMLESS_LOGIN_DA="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.dk/updatelogin" SEAMLESS_LOGIN="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.{topleveldomain}/updatelogin"
SEAMLESS_LOGIN_DE="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.de/updatelogin" SEAMLESS_LOGOUT="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.{topleveldomain}/updatelogout?newweb=1"
SEAMLESS_LOGIN_EN="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.com/updatelogin"
SEAMLESS_LOGIN_FI="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.fi/updatelogin"
SEAMLESS_LOGIN_NO="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.no/updatelogin"
SEAMLESS_LOGIN_SV="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.sv/updatelogin"
SEAMLESS_LOGOUT_DA="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.dk/updatelogout?newweb=1"
SEAMLESS_LOGOUT_DE="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.de/updatelogout?newweb=1"
SEAMLESS_LOGOUT_EN="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.com/updatelogout?newweb=1"
SEAMLESS_LOGOUT_FI="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.fi/updatelogout?newweb=1"
SEAMLESS_LOGOUT_NO="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.no/updatelogout?newweb=1"
SEAMLESS_LOGOUT_SV="https://${SEAMLESS_ENVIRONMENT_SUBDOMAIN}.scandichotels.sv/updatelogout?newweb=1"

92
env/server.ts vendored
View File

@@ -30,8 +30,8 @@ export const env = createEnv({
CMS_PREVIEW_URL: z.string(), CMS_PREVIEW_URL: z.string(),
CMS_URL: z.string(), CMS_URL: z.string(),
CMS_BRANCH: z.enum(["development", "production"]), CMS_BRANCH: z.enum(["development", "production"]),
CURITY_CLIENT_ID_USER: z.string(), CURITY_CLIENT_ID_USER: z.string().default("scandichotels-web"),
CURITY_CLIENT_ID_SERVICE: z.string(), CURITY_CLIENT_ID_SERVICE: z.string().default("scandichotels-web-backend"),
CURITY_CLIENT_SECRET_SERVICE: z.string(), CURITY_CLIENT_SECRET_SERVICE: z.string(),
CURITY_CLIENT_SECRET_USER: z.string(), CURITY_CLIENT_SECRET_USER: z.string(),
CURITY_ISSUER_USER: z.string(), CURITY_ISSUER_USER: z.string(),
@@ -58,18 +58,42 @@ export const env = createEnv({
PUBLIC_URL: z.string().default(""), PUBLIC_URL: z.string().default(""),
REVALIDATE_SECRET: z.string(), REVALIDATE_SECRET: z.string(),
SALESFORCE_PREFERENCE_BASE_URL: z.string(), SALESFORCE_PREFERENCE_BASE_URL: z.string(),
SEAMLESS_LOGIN_DA: z.string(), SEAMLESS_LOGIN_DA: z
SEAMLESS_LOGIN_DE: z.string(), .string()
SEAMLESS_LOGIN_EN: z.string(), .transform((s) => replaceTopLevelDomain(s, "dk")),
SEAMLESS_LOGIN_FI: z.string(), SEAMLESS_LOGIN_DE: z
SEAMLESS_LOGIN_NO: z.string(), .string()
SEAMLESS_LOGIN_SV: z.string(), .transform((s) => replaceTopLevelDomain(s, "de")),
SEAMLESS_LOGOUT_DA: z.string(), SEAMLESS_LOGIN_EN: z
SEAMLESS_LOGOUT_DE: z.string(), .string()
SEAMLESS_LOGOUT_EN: z.string(), .transform((s) => replaceTopLevelDomain(s, "com")),
SEAMLESS_LOGOUT_FI: z.string(), SEAMLESS_LOGIN_FI: z
SEAMLESS_LOGOUT_NO: z.string(), .string()
SEAMLESS_LOGOUT_SV: z.string(), .transform((s) => replaceTopLevelDomain(s, "fi")),
SEAMLESS_LOGIN_NO: z
.string()
.transform((s) => replaceTopLevelDomain(s, "no")),
SEAMLESS_LOGIN_SV: z
.string()
.transform((s) => replaceTopLevelDomain(s, "se")),
SEAMLESS_LOGOUT_DA: z
.string()
.transform((s) => replaceTopLevelDomain(s, "dk")),
SEAMLESS_LOGOUT_DE: z
.string()
.transform((s) => replaceTopLevelDomain(s, "de")),
SEAMLESS_LOGOUT_EN: z
.string()
.transform((s) => replaceTopLevelDomain(s, "com")),
SEAMLESS_LOGOUT_FI: z
.string()
.transform((s) => replaceTopLevelDomain(s, "fi")),
SEAMLESS_LOGOUT_NO: z
.string()
.transform((s) => replaceTopLevelDomain(s, "no")),
SEAMLESS_LOGOUT_SV: z
.string()
.transform((s) => replaceTopLevelDomain(s, "se")),
SHOW_SIGNUP_FLOW: z SHOW_SIGNUP_FLOW: z
.string() .string()
// only allow "true" or "false" // only allow "true" or "false"
@@ -181,18 +205,30 @@ export const env = createEnv({
PUBLIC_URL: process.env.PUBLIC_URL, PUBLIC_URL: process.env.PUBLIC_URL,
REVALIDATE_SECRET: process.env.REVALIDATE_SECRET, REVALIDATE_SECRET: process.env.REVALIDATE_SECRET,
SALESFORCE_PREFERENCE_BASE_URL: process.env.SALESFORCE_PREFERENCE_BASE_URL, SALESFORCE_PREFERENCE_BASE_URL: process.env.SALESFORCE_PREFERENCE_BASE_URL,
SEAMLESS_LOGIN_DA: process.env.SEAMLESS_LOGIN_DA, SEAMLESS_LOGIN_DA:
SEAMLESS_LOGIN_DE: process.env.SEAMLESS_LOGIN_DE, process.env.SEAMLESS_LOGIN || process.env.SEAMLESS_LOGIN_DA,
SEAMLESS_LOGIN_EN: process.env.SEAMLESS_LOGIN_EN, SEAMLESS_LOGIN_DE:
SEAMLESS_LOGIN_FI: process.env.SEAMLESS_LOGIN_FI, process.env.SEAMLESS_LOGIN || process.env.SEAMLESS_LOGIN_DE,
SEAMLESS_LOGIN_NO: process.env.SEAMLESS_LOGIN_NO, SEAMLESS_LOGIN_EN:
SEAMLESS_LOGIN_SV: process.env.SEAMLESS_LOGIN_SV, process.env.SEAMLESS_LOGIN || process.env.SEAMLESS_LOGIN_EN,
SEAMLESS_LOGOUT_DA: process.env.SEAMLESS_LOGOUT_DA, SEAMLESS_LOGIN_FI:
SEAMLESS_LOGOUT_DE: process.env.SEAMLESS_LOGOUT_DE, process.env.SEAMLESS_LOGIN || process.env.SEAMLESS_LOGIN_FI,
SEAMLESS_LOGOUT_EN: process.env.SEAMLESS_LOGOUT_EN, SEAMLESS_LOGIN_NO:
SEAMLESS_LOGOUT_FI: process.env.SEAMLESS_LOGOUT_FI, process.env.SEAMLESS_LOGIN || process.env.SEAMLESS_LOGIN_NO,
SEAMLESS_LOGOUT_NO: process.env.SEAMLESS_LOGOUT_NO, SEAMLESS_LOGIN_SV:
SEAMLESS_LOGOUT_SV: process.env.SEAMLESS_LOGOUT_SV, process.env.SEAMLESS_LOGIN || process.env.SEAMLESS_LOGIN_SV,
SEAMLESS_LOGOUT_DA:
process.env.SEAMLESS_LOGOUT || process.env.SEAMLESS_LOGOUT_DA,
SEAMLESS_LOGOUT_DE:
process.env.SEAMLESS_LOGOUT || process.env.SEAMLESS_LOGOUT_DE,
SEAMLESS_LOGOUT_EN:
process.env.SEAMLESS_LOGOUT || process.env.SEAMLESS_LOGOUT_EN,
SEAMLESS_LOGOUT_FI:
process.env.SEAMLESS_LOGOUT || process.env.SEAMLESS_LOGOUT_FI,
SEAMLESS_LOGOUT_NO:
process.env.SEAMLESS_LOGOUT || process.env.SEAMLESS_LOGOUT_NO,
SEAMLESS_LOGOUT_SV:
process.env.SEAMLESS_LOGOUT || process.env.SEAMLESS_LOGOUT_SV,
SHOW_SIGNUP_FLOW: process.env.SHOW_SIGNUP_FLOW, SHOW_SIGNUP_FLOW: process.env.SHOW_SIGNUP_FLOW,
WEBVIEW_ENCRYPTION_KEY: process.env.WEBVIEW_ENCRYPTION_KEY, WEBVIEW_ENCRYPTION_KEY: process.env.WEBVIEW_ENCRYPTION_KEY,
BOOKING_ENCRYPTION_KEY: process.env.BOOKING_ENCRYPTION_KEY, BOOKING_ENCRYPTION_KEY: process.env.BOOKING_ENCRYPTION_KEY,
@@ -215,3 +251,7 @@ export const env = createEnv({
CACHE_TIME_HOTELS: process.env.CACHE_TIME_HOTELS, CACHE_TIME_HOTELS: process.env.CACHE_TIME_HOTELS,
}, },
}) })
function replaceTopLevelDomain(url: string, domain: string) {
return url.replaceAll("{topleveldomain}", domain)
}