From 452ed916810dc7750056a490d1a88835d8360a9d Mon Sep 17 00:00:00 2001 From: Aidan Jones Date: Wed, 12 Nov 2025 11:27:52 -0600 Subject: [PATCH 01/12] Install packages --- package-lock.json | 118 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 6 +++ 2 files changed, 121 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 057e923..859517f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,8 @@ "s3-sync-client": "^4.3.1" }, "devDependencies": { + "@auth/core": "^0.41.1", + "@auth/sveltekit": "^1.11.1", "@bull-board/api": "^6.13.1", "@bull-board/hono": "^6.13.1", "@bull-board/ui": "^6.13.1", @@ -71,6 +73,65 @@ "license": "MIT", "optional": true }, + "node_modules/@auth/core": { + "version": "0.41.1", + "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.41.1.tgz", + "integrity": "sha512-t9cJ2zNYAdWMacGRMT6+r4xr1uybIdmYa49calBPeTqwgAFPV/88ac9TEvCR85pvATiSPt8VaNf+Gt24JIT/uw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@panva/hkdf": "^1.2.1", + "jose": "^6.0.6", + "oauth4webapi": "^3.3.0", + "preact": "10.24.3", + "preact-render-to-string": "6.5.11" + }, + "peerDependencies": { + "@simplewebauthn/browser": "^9.0.1", + "@simplewebauthn/server": "^9.0.2", + "nodemailer": "^7.0.7" + }, + "peerDependenciesMeta": { + "@simplewebauthn/browser": { + "optional": true + }, + "@simplewebauthn/server": { + "optional": true + }, + "nodemailer": { + "optional": true + } + } + }, + "node_modules/@auth/sveltekit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@auth/sveltekit/-/sveltekit-1.11.1.tgz", + "integrity": "sha512-cWNfXcKrNIVtJYOY1tq7H7m03j89Wg7xrTvOJALu18fZdYulzYCPIAdTw8XSEzOp6KyhOGo7tmW7VtzRNtr/8Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "@auth/core": "0.41.1", + "set-cookie-parser": "^2.7.0" + }, + "peerDependencies": { + "@simplewebauthn/browser": "^9.0.1", + "@simplewebauthn/server": "^9.0.3", + "@sveltejs/kit": "^1.0.0 || ^2.0.0", + "nodemailer": "^7.0.7", + "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@simplewebauthn/browser": { + "optional": true + }, + "@simplewebauthn/server": { + "optional": true + }, + "nodemailer": { + "optional": true + } + } + }, "node_modules/@aws-crypto/crc32": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", @@ -3310,6 +3371,16 @@ "node": ">= 8" } }, + "node_modules/@panva/hkdf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz", + "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/@pkgr/core": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", @@ -6192,9 +6263,9 @@ } }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, "license": "MIT", "engines": { @@ -8206,6 +8277,16 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/jose": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.1.0.tgz", + "integrity": "sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -8901,6 +8982,16 @@ "node": "^14.16.0 || >=16.10.0" } }, + "node_modules/oauth4webapi": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.2.tgz", + "integrity": "sha512-FzZZ+bht5X0FKe7Mwz3DAVAmlH1BV5blSak/lHMBKz0/EBMhX6B10GlQYI51+oRp8ObJaX0g6pXrAxZh5s8rjw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -9302,6 +9393,27 @@ "node": ">=4" } }, + "node_modules/preact": { + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "6.5.11", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz", + "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "preact": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/package.json b/package.json index 2348211..aeb468f 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,8 @@ "lint": "eslint ." }, "devDependencies": { + "@auth/core": "^0.41.1", + "@auth/sveltekit": "^1.11.1", "@bull-board/api": "^6.13.1", "@bull-board/hono": "^6.13.1", "@bull-board/ui": "^6.13.1", @@ -56,5 +58,9 @@ "@prisma/client": "^6.15.0", "prisma": "^6.15.0", "s3-sync-client": "^4.3.1" + }, + "//auth": "@auth/core has a peerDep on v6, but it is never used", + "overrides": { + "cookie": "^0.7.0" } } From cd0738d157c814d6b23393478442d56eb25d64f7 Mon Sep 17 00:00:00 2001 From: Aidan Jones Date: Wed, 12 Nov 2025 11:28:11 -0600 Subject: [PATCH 02/12] Initial (non-functional) config --- src/auth.ts | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/auth.ts diff --git a/src/auth.ts b/src/auth.ts new file mode 100644 index 0000000..e428bec --- /dev/null +++ b/src/auth.ts @@ -0,0 +1,9 @@ +import { type SvelteKitAuthConfig } from '@auth/sveltekit'; + +const config: SvelteKitAuthConfig = { + trustHost: true, + providers: [{}], + session: { + maxAge: 60 * 60 * 24 // 24 hours + } +}; From 7b85318225e9e085e12f34a1b2b3fc70aaf37917 Mon Sep 17 00:00:00 2001 From: Aidan Jones Date: Thu, 18 Dec 2025 09:34:13 -0600 Subject: [PATCH 03/12] Move UI to group folder --- src/routes/{ => (ui)}/+layout.svelte | 0 src/routes/{ => (ui)}/+page.svelte | 0 src/routes/{ => (ui)}/about/+page.svelte | 0 src/routes/{ => (ui)}/build-admin/+page.server.ts | 0 src/routes/{ => (ui)}/build-admin/+page.svelte | 0 src/routes/{ => (ui)}/build-admin/update/+page.server.ts | 0 src/routes/{ => (ui)}/build-admin/update/+page.svelte | 0 src/routes/{ => (ui)}/build-admin/view/+page.server.ts | 0 src/routes/{ => (ui)}/build-admin/view/+page.svelte | 0 src/routes/{ => (ui)}/client-admin/+page.server.ts | 0 src/routes/{ => (ui)}/client-admin/+page.svelte | 0 src/routes/{ => (ui)}/client-admin/create/+page.server.ts | 0 src/routes/{ => (ui)}/client-admin/create/+page.svelte | 0 src/routes/{ => (ui)}/client-admin/update/+page.server.ts | 0 src/routes/{ => (ui)}/client-admin/update/+page.svelte | 0 src/routes/{ => (ui)}/client-admin/valibot.ts | 0 src/routes/{ => (ui)}/client-admin/view/+page.server.ts | 0 src/routes/{ => (ui)}/client-admin/view/+page.svelte | 0 src/routes/{ => (ui)}/job-admin/+page.server.ts | 0 src/routes/{ => (ui)}/job-admin/+page.svelte | 0 src/routes/{ => (ui)}/job-admin/update/+page.server.ts | 0 src/routes/{ => (ui)}/job-admin/update/+page.svelte | 0 src/routes/{ => (ui)}/job-admin/view/+page.server.ts | 0 src/routes/{ => (ui)}/job-admin/view/+page.svelte | 0 src/routes/{ => (ui)}/project-admin/+page.server.ts | 0 src/routes/{ => (ui)}/project-admin/+page.svelte | 0 src/routes/{ => (ui)}/project-admin/update/+page.server.ts | 0 src/routes/{ => (ui)}/project-admin/update/+page.svelte | 0 src/routes/{ => (ui)}/project-admin/view/+page.server.ts | 0 src/routes/{ => (ui)}/project-admin/view/+page.svelte | 0 src/routes/{ => (ui)}/queue-admin/[...rest]/+page.svelte | 0 src/routes/{ => (ui)}/release-admin/+page.server.ts | 0 src/routes/{ => (ui)}/release-admin/+page.svelte | 0 src/routes/{ => (ui)}/release-admin/update/+page.server.ts | 0 src/routes/{ => (ui)}/release-admin/update/+page.svelte | 0 src/routes/{ => (ui)}/release-admin/view/+page.server.ts | 0 src/routes/{ => (ui)}/release-admin/view/+page.svelte | 0 37 files changed, 0 insertions(+), 0 deletions(-) rename src/routes/{ => (ui)}/+layout.svelte (100%) rename src/routes/{ => (ui)}/+page.svelte (100%) rename src/routes/{ => (ui)}/about/+page.svelte (100%) rename src/routes/{ => (ui)}/build-admin/+page.server.ts (100%) rename src/routes/{ => (ui)}/build-admin/+page.svelte (100%) rename src/routes/{ => (ui)}/build-admin/update/+page.server.ts (100%) rename src/routes/{ => (ui)}/build-admin/update/+page.svelte (100%) rename src/routes/{ => (ui)}/build-admin/view/+page.server.ts (100%) rename src/routes/{ => (ui)}/build-admin/view/+page.svelte (100%) rename src/routes/{ => (ui)}/client-admin/+page.server.ts (100%) rename src/routes/{ => (ui)}/client-admin/+page.svelte (100%) rename src/routes/{ => (ui)}/client-admin/create/+page.server.ts (100%) rename src/routes/{ => (ui)}/client-admin/create/+page.svelte (100%) rename src/routes/{ => (ui)}/client-admin/update/+page.server.ts (100%) rename src/routes/{ => (ui)}/client-admin/update/+page.svelte (100%) rename src/routes/{ => (ui)}/client-admin/valibot.ts (100%) rename src/routes/{ => (ui)}/client-admin/view/+page.server.ts (100%) rename src/routes/{ => (ui)}/client-admin/view/+page.svelte (100%) rename src/routes/{ => (ui)}/job-admin/+page.server.ts (100%) rename src/routes/{ => (ui)}/job-admin/+page.svelte (100%) rename src/routes/{ => (ui)}/job-admin/update/+page.server.ts (100%) rename src/routes/{ => (ui)}/job-admin/update/+page.svelte (100%) rename src/routes/{ => (ui)}/job-admin/view/+page.server.ts (100%) rename src/routes/{ => (ui)}/job-admin/view/+page.svelte (100%) rename src/routes/{ => (ui)}/project-admin/+page.server.ts (100%) rename src/routes/{ => (ui)}/project-admin/+page.svelte (100%) rename src/routes/{ => (ui)}/project-admin/update/+page.server.ts (100%) rename src/routes/{ => (ui)}/project-admin/update/+page.svelte (100%) rename src/routes/{ => (ui)}/project-admin/view/+page.server.ts (100%) rename src/routes/{ => (ui)}/project-admin/view/+page.svelte (100%) rename src/routes/{ => (ui)}/queue-admin/[...rest]/+page.svelte (100%) rename src/routes/{ => (ui)}/release-admin/+page.server.ts (100%) rename src/routes/{ => (ui)}/release-admin/+page.svelte (100%) rename src/routes/{ => (ui)}/release-admin/update/+page.server.ts (100%) rename src/routes/{ => (ui)}/release-admin/update/+page.svelte (100%) rename src/routes/{ => (ui)}/release-admin/view/+page.server.ts (100%) rename src/routes/{ => (ui)}/release-admin/view/+page.svelte (100%) diff --git a/src/routes/+layout.svelte b/src/routes/(ui)/+layout.svelte similarity index 100% rename from src/routes/+layout.svelte rename to src/routes/(ui)/+layout.svelte diff --git a/src/routes/+page.svelte b/src/routes/(ui)/+page.svelte similarity index 100% rename from src/routes/+page.svelte rename to src/routes/(ui)/+page.svelte diff --git a/src/routes/about/+page.svelte b/src/routes/(ui)/about/+page.svelte similarity index 100% rename from src/routes/about/+page.svelte rename to src/routes/(ui)/about/+page.svelte diff --git a/src/routes/build-admin/+page.server.ts b/src/routes/(ui)/build-admin/+page.server.ts similarity index 100% rename from src/routes/build-admin/+page.server.ts rename to src/routes/(ui)/build-admin/+page.server.ts diff --git a/src/routes/build-admin/+page.svelte b/src/routes/(ui)/build-admin/+page.svelte similarity index 100% rename from src/routes/build-admin/+page.svelte rename to src/routes/(ui)/build-admin/+page.svelte diff --git a/src/routes/build-admin/update/+page.server.ts b/src/routes/(ui)/build-admin/update/+page.server.ts similarity index 100% rename from src/routes/build-admin/update/+page.server.ts rename to src/routes/(ui)/build-admin/update/+page.server.ts diff --git a/src/routes/build-admin/update/+page.svelte b/src/routes/(ui)/build-admin/update/+page.svelte similarity index 100% rename from src/routes/build-admin/update/+page.svelte rename to src/routes/(ui)/build-admin/update/+page.svelte diff --git a/src/routes/build-admin/view/+page.server.ts b/src/routes/(ui)/build-admin/view/+page.server.ts similarity index 100% rename from src/routes/build-admin/view/+page.server.ts rename to src/routes/(ui)/build-admin/view/+page.server.ts diff --git a/src/routes/build-admin/view/+page.svelte b/src/routes/(ui)/build-admin/view/+page.svelte similarity index 100% rename from src/routes/build-admin/view/+page.svelte rename to src/routes/(ui)/build-admin/view/+page.svelte diff --git a/src/routes/client-admin/+page.server.ts b/src/routes/(ui)/client-admin/+page.server.ts similarity index 100% rename from src/routes/client-admin/+page.server.ts rename to src/routes/(ui)/client-admin/+page.server.ts diff --git a/src/routes/client-admin/+page.svelte b/src/routes/(ui)/client-admin/+page.svelte similarity index 100% rename from src/routes/client-admin/+page.svelte rename to src/routes/(ui)/client-admin/+page.svelte diff --git a/src/routes/client-admin/create/+page.server.ts b/src/routes/(ui)/client-admin/create/+page.server.ts similarity index 100% rename from src/routes/client-admin/create/+page.server.ts rename to src/routes/(ui)/client-admin/create/+page.server.ts diff --git a/src/routes/client-admin/create/+page.svelte b/src/routes/(ui)/client-admin/create/+page.svelte similarity index 100% rename from src/routes/client-admin/create/+page.svelte rename to src/routes/(ui)/client-admin/create/+page.svelte diff --git a/src/routes/client-admin/update/+page.server.ts b/src/routes/(ui)/client-admin/update/+page.server.ts similarity index 100% rename from src/routes/client-admin/update/+page.server.ts rename to src/routes/(ui)/client-admin/update/+page.server.ts diff --git a/src/routes/client-admin/update/+page.svelte b/src/routes/(ui)/client-admin/update/+page.svelte similarity index 100% rename from src/routes/client-admin/update/+page.svelte rename to src/routes/(ui)/client-admin/update/+page.svelte diff --git a/src/routes/client-admin/valibot.ts b/src/routes/(ui)/client-admin/valibot.ts similarity index 100% rename from src/routes/client-admin/valibot.ts rename to src/routes/(ui)/client-admin/valibot.ts diff --git a/src/routes/client-admin/view/+page.server.ts b/src/routes/(ui)/client-admin/view/+page.server.ts similarity index 100% rename from src/routes/client-admin/view/+page.server.ts rename to src/routes/(ui)/client-admin/view/+page.server.ts diff --git a/src/routes/client-admin/view/+page.svelte b/src/routes/(ui)/client-admin/view/+page.svelte similarity index 100% rename from src/routes/client-admin/view/+page.svelte rename to src/routes/(ui)/client-admin/view/+page.svelte diff --git a/src/routes/job-admin/+page.server.ts b/src/routes/(ui)/job-admin/+page.server.ts similarity index 100% rename from src/routes/job-admin/+page.server.ts rename to src/routes/(ui)/job-admin/+page.server.ts diff --git a/src/routes/job-admin/+page.svelte b/src/routes/(ui)/job-admin/+page.svelte similarity index 100% rename from src/routes/job-admin/+page.svelte rename to src/routes/(ui)/job-admin/+page.svelte diff --git a/src/routes/job-admin/update/+page.server.ts b/src/routes/(ui)/job-admin/update/+page.server.ts similarity index 100% rename from src/routes/job-admin/update/+page.server.ts rename to src/routes/(ui)/job-admin/update/+page.server.ts diff --git a/src/routes/job-admin/update/+page.svelte b/src/routes/(ui)/job-admin/update/+page.svelte similarity index 100% rename from src/routes/job-admin/update/+page.svelte rename to src/routes/(ui)/job-admin/update/+page.svelte diff --git a/src/routes/job-admin/view/+page.server.ts b/src/routes/(ui)/job-admin/view/+page.server.ts similarity index 100% rename from src/routes/job-admin/view/+page.server.ts rename to src/routes/(ui)/job-admin/view/+page.server.ts diff --git a/src/routes/job-admin/view/+page.svelte b/src/routes/(ui)/job-admin/view/+page.svelte similarity index 100% rename from src/routes/job-admin/view/+page.svelte rename to src/routes/(ui)/job-admin/view/+page.svelte diff --git a/src/routes/project-admin/+page.server.ts b/src/routes/(ui)/project-admin/+page.server.ts similarity index 100% rename from src/routes/project-admin/+page.server.ts rename to src/routes/(ui)/project-admin/+page.server.ts diff --git a/src/routes/project-admin/+page.svelte b/src/routes/(ui)/project-admin/+page.svelte similarity index 100% rename from src/routes/project-admin/+page.svelte rename to src/routes/(ui)/project-admin/+page.svelte diff --git a/src/routes/project-admin/update/+page.server.ts b/src/routes/(ui)/project-admin/update/+page.server.ts similarity index 100% rename from src/routes/project-admin/update/+page.server.ts rename to src/routes/(ui)/project-admin/update/+page.server.ts diff --git a/src/routes/project-admin/update/+page.svelte b/src/routes/(ui)/project-admin/update/+page.svelte similarity index 100% rename from src/routes/project-admin/update/+page.svelte rename to src/routes/(ui)/project-admin/update/+page.svelte diff --git a/src/routes/project-admin/view/+page.server.ts b/src/routes/(ui)/project-admin/view/+page.server.ts similarity index 100% rename from src/routes/project-admin/view/+page.server.ts rename to src/routes/(ui)/project-admin/view/+page.server.ts diff --git a/src/routes/project-admin/view/+page.svelte b/src/routes/(ui)/project-admin/view/+page.svelte similarity index 100% rename from src/routes/project-admin/view/+page.svelte rename to src/routes/(ui)/project-admin/view/+page.svelte diff --git a/src/routes/queue-admin/[...rest]/+page.svelte b/src/routes/(ui)/queue-admin/[...rest]/+page.svelte similarity index 100% rename from src/routes/queue-admin/[...rest]/+page.svelte rename to src/routes/(ui)/queue-admin/[...rest]/+page.svelte diff --git a/src/routes/release-admin/+page.server.ts b/src/routes/(ui)/release-admin/+page.server.ts similarity index 100% rename from src/routes/release-admin/+page.server.ts rename to src/routes/(ui)/release-admin/+page.server.ts diff --git a/src/routes/release-admin/+page.svelte b/src/routes/(ui)/release-admin/+page.svelte similarity index 100% rename from src/routes/release-admin/+page.svelte rename to src/routes/(ui)/release-admin/+page.svelte diff --git a/src/routes/release-admin/update/+page.server.ts b/src/routes/(ui)/release-admin/update/+page.server.ts similarity index 100% rename from src/routes/release-admin/update/+page.server.ts rename to src/routes/(ui)/release-admin/update/+page.server.ts diff --git a/src/routes/release-admin/update/+page.svelte b/src/routes/(ui)/release-admin/update/+page.svelte similarity index 100% rename from src/routes/release-admin/update/+page.svelte rename to src/routes/(ui)/release-admin/update/+page.svelte diff --git a/src/routes/release-admin/view/+page.server.ts b/src/routes/(ui)/release-admin/view/+page.server.ts similarity index 100% rename from src/routes/release-admin/view/+page.server.ts rename to src/routes/(ui)/release-admin/view/+page.server.ts diff --git a/src/routes/release-admin/view/+page.svelte b/src/routes/(ui)/release-admin/view/+page.svelte similarity index 100% rename from src/routes/release-admin/view/+page.svelte rename to src/routes/(ui)/release-admin/view/+page.svelte From 752b185f6a58fbfdd1642426b8ea228283b7b6ac Mon Sep 17 00:00:00 2001 From: Aidan Jones Date: Thu, 18 Dec 2025 09:34:34 -0600 Subject: [PATCH 04/12] Delete auth file --- src/auth.ts | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 src/auth.ts diff --git a/src/auth.ts b/src/auth.ts deleted file mode 100644 index e428bec..0000000 --- a/src/auth.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { type SvelteKitAuthConfig } from '@auth/sveltekit'; - -const config: SvelteKitAuthConfig = { - trustHost: true, - providers: [{}], - session: { - maxAge: 60 * 60 * 24 // 24 hours - } -}; From 056ac093c4bd06bc7c585b6cc33999df62711ada Mon Sep 17 00:00:00 2001 From: Aidan Jones Date: Thu, 18 Dec 2025 09:35:09 -0600 Subject: [PATCH 05/12] Use APP_ENV in queue prefix --- src/lib/server/bullmq/queues.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/lib/server/bullmq/queues.ts b/src/lib/server/bullmq/queues.ts index 1ccfaac..b38c3b8 100644 --- a/src/lib/server/bullmq/queues.ts +++ b/src/lib/server/bullmq/queues.ts @@ -2,14 +2,16 @@ import { Queue } from 'bullmq'; import { Redis } from 'ioredis'; import type { BuildJob, PollJob, ProjectJob, PublishJob, S3Job, SystemJob } from './types'; import { QueueName } from './types'; +import { env } from '$env/dynamic/private'; class Connection { private conn: Redis; private connected: boolean; - constructor(isQueueConnection = false) { + constructor(isQueueConnection = false, keyPrefix?: string) { this.conn = new Redis({ host: process.env.NODE_ENV === 'development' ? 'localhost' : process.env.VALKEY_HOST, - maxRetriesPerRequest: isQueueConnection ? undefined : null + maxRetriesPerRequest: isQueueConnection ? undefined : null, + keyPrefix }); this.connected = false; this.conn.on('close', () => { @@ -55,14 +57,20 @@ class Connection { let _workerConnection: Connection | undefined = undefined; let _queueConnection: Connection | undefined = undefined; +let _authConnection: Connection | undefined = undefined; export const QueueConnected = () => _queueConnection?.IsConnected() ?? false; +export const getAuthConnection = () => { + if (!_authConnection) _authConnection = new Connection(false, env.APP_ENV + '_be_auth'); + return _authConnection.connection(); +}; + export const getWorkerConfig = () => { if (!_workerConnection) _workerConnection = new Connection(false); return { connection: _workerConnection!.connection(), - prefix: 'build-engine' + prefix: env.APP_ENV + '_build-engine' } as const; }; @@ -70,7 +78,7 @@ export const getQueueConfig = () => { if (!_queueConnection) _queues = createQueues(); return { connection: _queueConnection!.connection(), - prefix: 'build-engine' + prefix: env.APP_ENV + '_build-engine' } as const; }; let _queues: ReturnType | undefined = undefined; From 03ce7e5bd6b6a7d28e7cbbd2526a3cbb1ac67251 Mon Sep 17 00:00:00 2001 From: Aidan Jones Date: Thu, 18 Dec 2025 09:35:26 -0600 Subject: [PATCH 06/12] Return stub info for versions --- src/routes/(api)/system/check/+server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(api)/system/check/+server.ts b/src/routes/(api)/system/check/+server.ts index 51c4128..33637f8 100644 --- a/src/routes/(api)/system/check/+server.ts +++ b/src/routes/(api)/system/check/+server.ts @@ -2,5 +2,5 @@ import type { RequestHandler } from './$types'; // GET system/check export const GET: RequestHandler = () => { - return new Response(JSON.stringify({})); + return new Response(JSON.stringify({ versions: {}, imageHash: '' })); }; From 0bec2fe9e515c6023fec8676bc6f130fe4892cd8 Mon Sep 17 00:00:00 2001 From: Aidan Jones Date: Thu, 18 Dec 2025 09:47:57 -0600 Subject: [PATCH 07/12] Move favicon/css import to root layout --- src/routes/(ui)/+layout.svelte | 9 --------- src/routes/+layout.svelte | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 src/routes/+layout.svelte diff --git a/src/routes/(ui)/+layout.svelte b/src/routes/(ui)/+layout.svelte index d80902f..f33050c 100644 --- a/src/routes/(ui)/+layout.svelte +++ b/src/routes/(ui)/+layout.svelte @@ -1,9 +1,5 @@ - - - {dev ? '[DEV] ' : ''}{$title || 'SIL AppBuilder Administration'} - -