Skip to content

Remove spa and signalserver - #107

Merged
shaddi merged 4 commits into
mainfrom
remove-spa-and-signalserver
Jul 7, 2026
Merged

Remove spa and signalserver#107
shaddi merged 4 commits into
mainfrom
remove-spa-and-signalserver

Conversation

@shaddi

@shaddi shaddi commented Jul 7, 2026

Copy link
Copy Markdown
Member

The old signalserver and single-page app versions of BDK have been superseded, so this removes all the dead code.

shaddi added 4 commits July 7, 2026 09:59
The tower/coverage-prediction stack (Signal-Server command builder,
raster processing, raster-to-vector conversion) was reachable only from
the retired SPA and has been dead code for some time. Removed end to
end: the wireless blueprint and its 9 /api routes, the three celery
tasks (run_signalserver, preview_fabric_locaiton_coverage,
raster2vector), the signalserver_controller package, the
tower/towerinfo/rasterdata ops modules and models, and migration
c7f3a84e91d2 drops their tables (downgrade recreates them as the
initial migration defined them).

test_migrations._drop_everything now recreates the schema instead of
metadata.drop_all: drop_all only knows the current models, so a table
removed from the models (like these) would survive and break the next
blank-slate on its foreign keys.
The Next.js front-end is fully replaced by the server-rendered app
(production has served only the backend since the deploy tooling
landed). Removed:

- front-end/ (app, components, jest suite) and its CI job, compose
  service, env vars, and the local nginx SPA proxying (nginx.conf.local
  now routes everything to the backend, same shape as prod); the
  orphaned Dockerfile.nginx + start-nginx.sh expect wrapper
- every /api route that only the SPA called: the whole auth/users/
  organizations/filings/challenge/tasks blueprints, and the SPA-only
  routes in files/fabric/edit/export. The server-rendered app keeps
  what it actually uses: tiles, jobs/events, regenerate_map, delfiles,
  address-search, downloadexport, get-edit-geojson-centroid
- the challenge_locations table (migration e4b8c62f17a9; the BDC
  challenge export was SPA-only) and the join-organization email flow
  (its tokens were consumable only by the removed /api/verify_token)

Behavioral test coverage moved to the server-rendered surface instead
of being dropped: registration/login/logout auditing, disabled-account
gates, login rate limiting, email-token purpose-binding and single-use,
CSRF double-submit, cookie flags, and legacy-password migration now
run against /auth/* and the kept /api routes. Test files dedicated to
removed endpoints are deleted; conftest's login_page_session registers
through /auth/register.
The server-rendered upload paths never wrote audit rows — the only
log_action("upload") call lived in the removed SPA endpoint, so since
cutover, uploads were absent from the tamper-evident trail (only the
operational celerytaskinfo rows recorded them). For an FCC-filing
system the ingest of provider data belongs in the audit log.

Both intake services now log on successful dispatch — coverage uploads
in upload_service.dispatch_upload, fabric deliveries in
fabric_service.intake_fabric — so all four page routes (/files and
/setup doors) inherit it, tagged with kind, task id, and filenames.
The SPA version of BDK exposed a raw /api request as a defacto health
check for CI; removing the SPA code broke this. This adds back a
dedicated health check API endpoint in the new version of BDK.
@shaddi
shaddi merged commit fb2b949 into main Jul 7, 2026
2 checks passed
@shaddi
shaddi deleted the remove-spa-and-signalserver branch July 7, 2026 15:48
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.

1 participant