Skip to content

feat: bundle SPA into Spring Boot - #6

Merged
ReaJason merged 1 commit into
masterfrom
feat/spa-spring-boot-bundle
Nov 6, 2026
Merged

ReaJason merged 1 commit into
masterfrom
feat/spa-spring-boot-bundle

Conversation

@ReaJason

@ReaJason ReaJason commented Nov 6, 2026

Copy link
Copy Markdown
Owner

Summary

React 19 + React Router SPA
  browser session + token refresh
  clientLoader/clientAction ──same-origin──> Spring Boot /api

Gradle webBuild
  Vite build/client ──processResources──> BOOT-INF/classes/static
  unknown non-API route ──SpaWebConfig──> index.html
  • Upgrade the frontend stack and replace SSR-only cookie/API plumbing with browser-side SPA auth, including concurrent refresh replay.
  • Package the SPA in the Boot JAR and remove Nginx, the frontend image, and their deployment configuration.
  • Fix browser-discovered regressions in user creation, activation, plugin IDs, dashboard links, filtering, permission validation, and insecure-context UUID generation.
  • Synchronize remote plugin state before reporting installation status.
  • Decouple shell route rendering from remote plugin requests and prefetch lightweight shell sections.

Evidence

  • Before: Files navigation waited for the remote directory request and took over 30 seconds on an unresponsive shell.
    After: The same Repeater → Files navigation rendered the interactive file manager in 384 ms, with no browser long tasks; directory loading continued in the background.
  • Before: Fresh plugin-status reads returned loaded: false for remotely installed plugins; both new regression tests failed.
    After: Single-plugin and all-plugin status tests synchronize the remote cache and pass, along with the complete server suite.
  • Before: LAN HTTP Repeater threw TypeError: crypto.randomUUID is not a function.
    After: The component regression test passes with randomUUID unavailable, including parameter-row interaction.
  • Full browser regression covered public/auth pages, administration, projects, profiles, plugins, generators, and shell-manager routes. Six discovered UI/API issues were fixed and retested. Successful remote command/file/plugin execution remains dependent on a compatible live shell.
  • ./gradlew --no-daemon :no-one-server:build — BUILD SUCCESSFUL.
  • Frontend format check, lint, and typecheck passed; 26 test files / 70 tests passed.
  • Packaged JAR verified over LAN: SPA login and deep routes returned HTML, while unauthenticated API requests returned 401.

Merge Danger

Door: Two-way

Revert the commit and redeploy the previous server/frontend images and Compose configuration to restore SSR deployment.

Blast Radius: Broad

Changes affect deployment topology, browser authentication, plugin status, and shell-page loading. Static deep-route fallback is restricted to non-API paths; /api/** authentication remains enforced.

@vercel

vercel Bot commented Nov 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
no-one Ready Ready Preview Nov 6, 2026 8:00am UTC

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 75.00000% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 52.95%. Comparing base (f8fff95) to head (7194971).

Files with missing lines Patch % Lines
...com/reajason/noone/server/config/SpaWebConfig.java 66.66% 2 Missing and 2 partials ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##             master       #6      +/-   ##
============================================
+ Coverage     52.57%   52.95%   +0.38%     
- Complexity      549      554       +5     
============================================
  Files           108      109       +1     
  Lines          3150     3165      +15     
  Branches        395      397       +2     
============================================
+ Hits           1656     1676      +20     
+ Misses         1251     1241      -10     
- Partials        243      248       +5     
Flag Coverage Δ
noone-server 52.95% <75.00%> (+0.38%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ReaJason
ReaJason merged commit 8d20920 into master Nov 6, 2026
5 checks passed

This branch was successfully deployed

1 active deployment
Preview — 71949710 Deployed Nov 6, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants