From 4e32e351c4f3fecbde6f158c12633237d1ab1c57 Mon Sep 17 00:00:00 2001 From: Camille Moussu Date: Tue, 8 Jul 2025 11:40:42 +0200 Subject: [PATCH] [#24] changed .env to be a public js file script loaded by index.html --- .env.examble | 8 -------- .gitignore | 8 ++++---- public/.env.example.js | 8 ++++++++ public/index.html | 1 + src/features/Calendars/CalendarApi.ts | 4 ++-- src/features/User/oidcAuth.ts | 14 +++++++------- src/features/User/userAPI.ts | 2 +- 7 files changed, 23 insertions(+), 22 deletions(-) delete mode 100644 .env.examble create mode 100644 public/.env.example.js diff --git a/.env.examble b/.env.examble deleted file mode 100644 index 71b2bd3..0000000 --- a/.env.examble +++ /dev/null @@ -1,8 +0,0 @@ -PUBLIC_SSO_BASE_URL="https://example.com" -PUBLIC_SSO_CLIENT_ID="example" -PUBLIC_SSO_SCOPE="openid name email" -PUBLIC_SSO_REDIRECT_URI="https://example.com/callback" -PUBLIC_SSO_RESPONSE_TYPE="code" -PUBLIC_SSO_CODE_CHALLENGE_METHOD="S256" -PUBLIC_SSO_POST_LOGOUT_REDIRECT="http://example.com?logout=1" -PUBLIC_CALENDAR_BASE_URL="https://calendar.example.com" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1941808..b6b95a5 100644 --- a/.gitignore +++ b/.gitignore @@ -13,10 +13,10 @@ # secrets .DS_Store -.env -.env.development -.env.test -.env.production +.env.js +.env.development.js +.env.test.js +.env.production.js npm-debug.log* yarn-debug.log* diff --git a/public/.env.example.js b/public/.env.example.js new file mode 100644 index 0000000..eec9c95 --- /dev/null +++ b/public/.env.example.js @@ -0,0 +1,8 @@ +var SSO_BASE_URL = "https://example.com"; +var SSO_CLIENT_ID = "example"; +var SSO_SCOPE = "openid name email"; +var SSO_REDIRECT_URI = "https://example.com/callback"; +var SSO_RESPONSE_TYPE = "code"; +var SSO_CODE_CHALLENGE_METHOD = "S256"; +var SSO_POST_LOGOUT_REDIRECT = "http://example.com?logout=1"; +var CALENDAR_BASE_URL = "https://calendar.example.com"; diff --git a/public/index.html b/public/index.html index 4612f99..6c49f1e 100644 --- a/public/index.html +++ b/public/index.html @@ -31,6 +31,7 @@ rel="stylesheet" /> React App + diff --git a/src/features/Calendars/CalendarApi.ts b/src/features/Calendars/CalendarApi.ts index b4ab247..422f987 100644 --- a/src/features/Calendars/CalendarApi.ts +++ b/src/features/Calendars/CalendarApi.ts @@ -2,7 +2,7 @@ import { cp } from "node:fs"; export async function getCalendars(userId: string, opaque_token: string) { const response = await fetch( - `${process.env.PUBLIC_CALENDAR_BASE_URL}/dav/calendars/${userId}.json?personal=true&sharedDelegationStatus=accepted&sharedPublicSubscription=true&withRights=true`, + `${(window as any).CALENDAR_BASE_URL}/dav/calendars/${userId}.json?personal=true&sharedDelegationStatus=accepted&sharedPublicSubscription=true&withRights=true`, { headers: { Accept: "application/calendar+json", @@ -16,7 +16,7 @@ export async function getCalendars(userId: string, opaque_token: string) { export async function getCalendar(id: string, opaque_token: string) { const response = await fetch( - `${process.env.PUBLIC_CALENDAR_BASE_URL}/dav/calendars/${id}.json`, + `${(window as any).CALENDAR_BASE_URL}/dav/calendars/${id}.json`, { method: "REPORT", headers: { diff --git a/src/features/User/oidcAuth.ts b/src/features/User/oidcAuth.ts index 7e38621..1556464 100644 --- a/src/features/User/oidcAuth.ts +++ b/src/features/User/oidcAuth.ts @@ -1,13 +1,13 @@ import * as client from "openid-client"; export const clientConfig = { - url: process.env.PUBLIC_SSO_BASE_URL ?? "", - client_id: process.env.PUBLIC_SSO_CLIENT_ID ?? "", - scope: process.env.PUBLIC_SSO_SCOPE ?? "", - redirect_uri: process.env.PUBLIC_SSO_REDIRECT_URI ?? "", - response_type: process.env.PUBLIC_SSO_RESPONSE_TYPE ?? "", - code_challenge_method: process.env.PUBLIC_SSO_CODE_CHALLENGE_METHOD ?? "", - post_logout_redirect_uri: process.env.PUBLIC_SSO_POST_LOGOUT_REDIRECT ?? "", + url: (window as any).SSO_BASE_URL ?? "", + client_id: (window as any).SSO_CLIENT_ID ?? "", + scope: (window as any).SSO_SCOPE ?? "", + redirect_uri: (window as any).SSO_REDIRECT_URI ?? "", + response_type: (window as any).SSO_RESPONSE_TYPE ?? "", + code_challenge_method: (window as any).SSO_CODE_CHALLENGE_METHOD ?? "", + post_logout_redirect_uri: (window as any).SSO_POST_LOGOUT_REDIRECT ?? "", }; export async function getClientConfig() { diff --git a/src/features/User/userAPI.ts b/src/features/User/userAPI.ts index 153ebd5..5cfcc04 100644 --- a/src/features/User/userAPI.ts +++ b/src/features/User/userAPI.ts @@ -1,6 +1,6 @@ export default async function getOpenPaasUserId(opaque_token: string) { const response = await fetch( - `${process.env.PUBLIC_CALENDAR_BASE_URL}/api/user`, + `${(window as any).CALENDAR_BASE_URL}/api/user`, { headers: { Authorization: `Bearer ${opaque_token}`,