From 5adbfa520c749d66d7dd58c579d5c856c9a26640 Mon Sep 17 00:00:00 2001 From: EagleTrooper Date: Wed, 19 Nov 2025 13:36:15 -0600 Subject: [PATCH 1/7] Updated BASE_URL and AUTH_DOMAIN in env example and pages --- api/.env.example | 19 +++++++++++++++++++ api/src/routes/auth.js | 14 +++++++------- ui/.env.example | 2 ++ 3 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 api/.env.example create mode 100644 ui/.env.example diff --git a/api/.env.example b/api/.env.example new file mode 100644 index 0000000..dd67aa1 --- /dev/null +++ b/api/.env.example @@ -0,0 +1,19 @@ +# DATABASE SETTINGS +DB_HOST= +DB_PORT= +DB_DATABASE= +DB_USERNAME= +DB_PASSWORD= + +# AUTH SETTINGS +AUTH_DOMAIN= +AUTH_ISSUER= +AUTH_CLIENT_ID= +AUTH_CLIENT_SECRET= +AUTH_REDIRECT_URI= +AUTH_REVOCATION_URI= +# AUTH_MODE=mock #uncomment this to bypass authentik + +# SERVER SETTINGS +SERVER_PORT=3000 + diff --git a/api/src/routes/auth.js b/api/src/routes/auth.js index a0ec0b8..2c3f1f4 100644 --- a/api/src/routes/auth.js +++ b/api/src/routes/auth.js @@ -12,9 +12,9 @@ const querystring = require('querystring'); passport.use(new OpenIDConnectStrategy({ issuer: process.env.AUTH_ISSUER, - authorizationURL: 'https://sso.iceberg-gaming.com/application/o/authorize/', - tokenURL: 'https://sso.iceberg-gaming.com/application/o/token/', - userInfoURL: 'https://sso.iceberg-gaming.com/application/o/userinfo/', + authorizationURL: process.env.AUTH_DOMAIN +'/authorize/', + tokenURL: process.env.AUTH_DOMAIN +'/token/', + userInfoURL: process.env.AUTH_DOMAIN +'/userinfo/', clientID: process.env.AUTH_CLIENT_ID, clientSecret: process.env.AUTH_CLIENT_SECRET, callbackURL: process.env.AUTH_REDIRECT_URI, @@ -69,7 +69,7 @@ router.get('/login', (req, res, next) => { // router.get('/callback', (req, res, next) => { // passport.authenticate('openidconnect', { // successRedirect: req.session.redirectTo, -// failureRedirect: 'https://aj17thdev.nexuszone.net/' +// failureRedirect: process.env.BASE_URL // }) // }); @@ -77,13 +77,13 @@ router.get('/callback', (req, res, next) => { const redirectURI = req.session.redirectTo; passport.authenticate('openidconnect', (err, user) => { if (err) return next(err); - if (!user) return res.redirect('https://aj17thdev.nexuszone.net/'); + if (!user) return res.redirect(process.env.BASE_URL); req.logIn(user, err => { if (err) return next(err); // Use redirect saved from session - const redirectTo = redirectURI || 'https://aj17thdev.nexuszone.net/'; + const redirectTo = redirectURI || process.env.BASE_URL; delete req.session.redirectTo; return res.redirect(redirectTo); }); @@ -95,7 +95,7 @@ router.post('/logout', function (req, res, next) { if (err) { return next(err); } var params = { client_id: process.env.AUTH_CLIENT_ID, - returnTo: 'https://aj17thdev.nexuszone.net/' + returnTo: process.env.BASE_URL }; res.redirect(process.env.AUTH_DOMAIN + '/v2/logout?' + querystring.stringify(params)); }); diff --git a/ui/.env.example b/ui/.env.example new file mode 100644 index 0000000..ac971e4 --- /dev/null +++ b/ui/.env.example @@ -0,0 +1,2 @@ +# SITE SETTINGS +BASE_URL= From 8845024f7623ffe89d4f9a14b6aaf5c17796996a Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Wed, 19 Nov 2025 20:50:41 -0500 Subject: [PATCH 2/7] removed hardcoded auth url from client --- ui/src/router/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/src/router/index.js b/ui/src/router/index.js index b688592..84d7189 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -37,6 +37,9 @@ const router = createRouter({ ] }) +const addr = import.meta.env.VITE_APIHOST; + + router.beforeEach(async (to) => { const user = useUserStore() @@ -49,7 +52,7 @@ router.beforeEach(async (to) => { if (to.meta.requiresAuth && !user.isLoggedIn) { // Redirect back to original page after login const redirectUrl = encodeURIComponent(window.location.origin + to.fullPath) - window.location.href = `https://aj17thdevapi.nexuszone.net/login?redirect=${redirectUrl}` + window.location.href = `${addr}/login?redirect=${redirectUrl}` return false // Prevent Vue Router from continuing } From eb91f678a8968964d8e15d3c74259604d31965d1 Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Wed, 19 Nov 2025 20:52:47 -0500 Subject: [PATCH 3/7] whoops wrong env --- ui/src/router/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/router/index.js b/ui/src/router/index.js index 84d7189..3f08f3d 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -37,7 +37,7 @@ const router = createRouter({ ] }) -const addr = import.meta.env.VITE_APIHOST; +const addr = import.meta.env.BASE_URL; router.beforeEach(async (to) => { From a1a5654f6363264c4852d4beec78e64ece49ddf2 Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Wed, 19 Nov 2025 21:13:33 -0500 Subject: [PATCH 4/7] fixed leftover hardcoded API logic --- ui/src/App.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ui/src/App.vue b/ui/src/App.vue index af9f817..96772f3 100644 --- a/ui/src/App.vue +++ b/ui/src/App.vue @@ -24,9 +24,10 @@ const userStore = useUserStore(); // console.log(data); // userStore.user = data; // }); +const APIHOST = import.meta.env.BASE_URL; async function logout() { - await fetch(`${import.meta.env.VITE_APIHOST}/logout`, { + await fetch(`${APIHOST}/logout`, { method: 'POST', credentials: 'include', }); @@ -112,7 +113,7 @@ function formatDate(dateStr) { - Login + Login From ca5066249f50cd63ab47d20f407476173ac3348a Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Wed, 19 Nov 2025 21:21:49 -0500 Subject: [PATCH 5/7] Updated client env references --- ui/src/App.vue | 2 +- ui/src/api/application.ts | 2 +- ui/src/api/loa.ts | 2 +- ui/src/api/member.ts | 2 +- ui/src/api/rank.ts | 2 +- ui/src/api/roles.ts | 2 +- ui/src/api/status.ts | 2 +- ui/src/stores/user.ts | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ui/src/App.vue b/ui/src/App.vue index 96772f3..850f521 100644 --- a/ui/src/App.vue +++ b/ui/src/App.vue @@ -17,7 +17,7 @@ import AlertDescription from './components/ui/alert/AlertDescription.vue'; const userStore = useUserStore(); // onMounted(async () => { -// const res = await fetch(`${import.meta.env.VITE_APIHOST}/members/me`, { +// const res = await fetch(`${import.meta.env.BASE_URL}/members/me`, { // credentials: 'include', // }); // const data = await res.json(); diff --git a/ui/src/api/application.ts b/ui/src/api/application.ts index 7ef6086..cbaad31 100644 --- a/ui/src/api/application.ts +++ b/ui/src/api/application.ts @@ -71,7 +71,7 @@ export enum ApplicationStatus { Denied = "Denied", } // @ts-ignore -const addr = import.meta.env.VITE_APIHOST; +const addr = import.meta.env.BASE_URL; export async function loadApplication(id: number | string): Promise { const res = await fetch(`${addr}/application/${id}`) diff --git a/ui/src/api/loa.ts b/ui/src/api/loa.ts index 6f9314b..125f63a 100644 --- a/ui/src/api/loa.ts +++ b/ui/src/api/loa.ts @@ -8,7 +8,7 @@ export type LOARequest = { reason?: string; }; // @ts-ignore -const addr = import.meta.env.VITE_APIHOST; +const addr = import.meta.env.BASE_URL; export async function submitLOA(request: LOARequest): Promise<{ id?: number; error?: string }> { const res = await fetch(`${addr}/loa`, { diff --git a/ui/src/api/member.ts b/ui/src/api/member.ts index b97e7ac..389662c 100644 --- a/ui/src/api/member.ts +++ b/ui/src/api/member.ts @@ -9,7 +9,7 @@ export type Member = { }; // @ts-ignore -const addr = import.meta.env.VITE_APIHOST; +const addr = import.meta.env.BASE_URL; export async function getMembers(): Promise { const response = await fetch(`${addr}/members`, { diff --git a/ui/src/api/rank.ts b/ui/src/api/rank.ts index 1fdcf09..63a3a74 100644 --- a/ui/src/api/rank.ts +++ b/ui/src/api/rank.ts @@ -6,7 +6,7 @@ export type Rank = { } // @ts-ignore -const addr = import.meta.env.VITE_APIHOST; +const addr = import.meta.env.BASE_URL; export async function getRanks(): Promise { const res = await fetch(`${addr}/ranks`) diff --git a/ui/src/api/roles.ts b/ui/src/api/roles.ts index c128dbf..33fe3b2 100644 --- a/ui/src/api/roles.ts +++ b/ui/src/api/roles.ts @@ -7,7 +7,7 @@ export type Role = { }; // @ts-ignore -const addr = import.meta.env.VITE_APIHOST; +const addr = import.meta.env.BASE_URL; export async function getRoles(): Promise { const res = await fetch(`${addr}/roles`) diff --git a/ui/src/api/status.ts b/ui/src/api/status.ts index 9e26383..b4d2fdf 100644 --- a/ui/src/api/status.ts +++ b/ui/src/api/status.ts @@ -7,7 +7,7 @@ export type Status = { }; // @ts-ignore -const addr = import.meta.env.VITE_APIHOST; +const addr = import.meta.env.BASE_URL; export async function getAllStatuses(): Promise { const res = await fetch(`${addr}/status`) diff --git a/ui/src/stores/user.ts b/ui/src/stores/user.ts index e50c323..dd19e5d 100644 --- a/ui/src/stores/user.ts +++ b/ui/src/stores/user.ts @@ -10,7 +10,7 @@ export const useUserStore = defineStore('user', () => { async function loadUser() { //@ts-ignore - const res = await fetch(`${import.meta.env.VITE_APIHOST}/members/me`, { + const res = await fetch(`${import.meta.env.BASE_URL}/members/me`, { credentials: 'include', }); From 2d28582962e59d5edc209df296b5f6f78060abd2 Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Wed, 19 Nov 2025 21:32:12 -0500 Subject: [PATCH 6/7] Revert "Updated client env references" This reverts commit ca5066249f50cd63ab47d20f407476173ac3348a. --- ui/src/App.vue | 2 +- ui/src/api/application.ts | 2 +- ui/src/api/loa.ts | 2 +- ui/src/api/member.ts | 2 +- ui/src/api/rank.ts | 2 +- ui/src/api/roles.ts | 2 +- ui/src/api/status.ts | 2 +- ui/src/stores/user.ts | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ui/src/App.vue b/ui/src/App.vue index 850f521..96772f3 100644 --- a/ui/src/App.vue +++ b/ui/src/App.vue @@ -17,7 +17,7 @@ import AlertDescription from './components/ui/alert/AlertDescription.vue'; const userStore = useUserStore(); // onMounted(async () => { -// const res = await fetch(`${import.meta.env.BASE_URL}/members/me`, { +// const res = await fetch(`${import.meta.env.VITE_APIHOST}/members/me`, { // credentials: 'include', // }); // const data = await res.json(); diff --git a/ui/src/api/application.ts b/ui/src/api/application.ts index cbaad31..7ef6086 100644 --- a/ui/src/api/application.ts +++ b/ui/src/api/application.ts @@ -71,7 +71,7 @@ export enum ApplicationStatus { Denied = "Denied", } // @ts-ignore -const addr = import.meta.env.BASE_URL; +const addr = import.meta.env.VITE_APIHOST; export async function loadApplication(id: number | string): Promise { const res = await fetch(`${addr}/application/${id}`) diff --git a/ui/src/api/loa.ts b/ui/src/api/loa.ts index 125f63a..6f9314b 100644 --- a/ui/src/api/loa.ts +++ b/ui/src/api/loa.ts @@ -8,7 +8,7 @@ export type LOARequest = { reason?: string; }; // @ts-ignore -const addr = import.meta.env.BASE_URL; +const addr = import.meta.env.VITE_APIHOST; export async function submitLOA(request: LOARequest): Promise<{ id?: number; error?: string }> { const res = await fetch(`${addr}/loa`, { diff --git a/ui/src/api/member.ts b/ui/src/api/member.ts index 389662c..b97e7ac 100644 --- a/ui/src/api/member.ts +++ b/ui/src/api/member.ts @@ -9,7 +9,7 @@ export type Member = { }; // @ts-ignore -const addr = import.meta.env.BASE_URL; +const addr = import.meta.env.VITE_APIHOST; export async function getMembers(): Promise { const response = await fetch(`${addr}/members`, { diff --git a/ui/src/api/rank.ts b/ui/src/api/rank.ts index 63a3a74..1fdcf09 100644 --- a/ui/src/api/rank.ts +++ b/ui/src/api/rank.ts @@ -6,7 +6,7 @@ export type Rank = { } // @ts-ignore -const addr = import.meta.env.BASE_URL; +const addr = import.meta.env.VITE_APIHOST; export async function getRanks(): Promise { const res = await fetch(`${addr}/ranks`) diff --git a/ui/src/api/roles.ts b/ui/src/api/roles.ts index 33fe3b2..c128dbf 100644 --- a/ui/src/api/roles.ts +++ b/ui/src/api/roles.ts @@ -7,7 +7,7 @@ export type Role = { }; // @ts-ignore -const addr = import.meta.env.BASE_URL; +const addr = import.meta.env.VITE_APIHOST; export async function getRoles(): Promise { const res = await fetch(`${addr}/roles`) diff --git a/ui/src/api/status.ts b/ui/src/api/status.ts index b4d2fdf..9e26383 100644 --- a/ui/src/api/status.ts +++ b/ui/src/api/status.ts @@ -7,7 +7,7 @@ export type Status = { }; // @ts-ignore -const addr = import.meta.env.BASE_URL; +const addr = import.meta.env.VITE_APIHOST; export async function getAllStatuses(): Promise { const res = await fetch(`${addr}/status`) diff --git a/ui/src/stores/user.ts b/ui/src/stores/user.ts index dd19e5d..e50c323 100644 --- a/ui/src/stores/user.ts +++ b/ui/src/stores/user.ts @@ -10,7 +10,7 @@ export const useUserStore = defineStore('user', () => { async function loadUser() { //@ts-ignore - const res = await fetch(`${import.meta.env.BASE_URL}/members/me`, { + const res = await fetch(`${import.meta.env.VITE_APIHOST}/members/me`, { credentials: 'include', }); From 93440eab9527823d56748cd36b194b2800d68e8f Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Wed, 19 Nov 2025 21:37:16 -0500 Subject: [PATCH 7/7] fixed reserved env name --- ui/src/App.vue | 2 +- ui/src/router/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/src/App.vue b/ui/src/App.vue index 96772f3..7277bc0 100644 --- a/ui/src/App.vue +++ b/ui/src/App.vue @@ -24,7 +24,7 @@ const userStore = useUserStore(); // console.log(data); // userStore.user = data; // }); -const APIHOST = import.meta.env.BASE_URL; +const APIHOST = import.meta.env.VITE_APIHOST; async function logout() { await fetch(`${APIHOST}/logout`, { diff --git a/ui/src/router/index.js b/ui/src/router/index.js index 3f08f3d..84d7189 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -37,7 +37,7 @@ const router = createRouter({ ] }) -const addr = import.meta.env.BASE_URL; +const addr = import.meta.env.VITE_APIHOST; router.beforeEach(async (to) => {