Skip to content

Move board admin to Azure Static Web Apps with Entra ID sign-in - #22

Merged
selectdimensions merged 1 commit into
mainfrom
azure-cutover
Oct 4, 2026
Merged

selectdimensions merged 1 commit into
mainfrom
azure-cutover

Conversation

@selectdimensions

Copy link
Copy Markdown
Collaborator

Same changes as #21, squashed into one signed commit. #21 was blocked by the "unattributed changes" rule because of the unsigned workflow commit Azure created.

See #21 for the summary and test plan. Staging and production were both verified working before this PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_018KR2ZSHK8Skmyd1zyTaw7v

Squashed from azure-migration (PR #21) so every commit on main is signed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018KR2ZSHK8Skmyd1zyTaw7v
Copilot AI balanced review requested due to automatic review settings October 4, 2026 22:05
@vercel

vercel Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
interactive-map Ready Ready Preview Oct 4, 2026 10:05pm UTC

@selectdimensions
selectdimensions merged commit 1882cbf into main Oct 4, 2026
4 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Authentication currently permits a GitHub-provider bypass and mishandles expired API sessions through global redirects.

Review effort: Balanced
Findings: 1 High severity · 1 Medium severity

Open (2)
What changed in this PR

Migrates the board administration application from Vercel functions and passphrase authentication to Azure Static Web Apps, Azure Functions v4, and Microsoft Entra ID.

Changes:

  • Ports Gist, publishing, and geocoding APIs to Azure Functions.
  • Replaces local sessions with Static Web Apps authentication.
  • Adds Azure deployment configuration, CI validation, and updated API tests.
File Description
test/​api.test.js Updates API tests for Azure request/response objects.
staticwebapp.config.json Configures routing, authentication, and security headers.
package.json Adds API syntax checks and category staging.
index.html Adds the Azure-required root document.
api/​src/​functions/​publish.js Ports publishing to Azure Functions v4.
api/​src/​functions/​gist.js Adds the Azure Gist endpoint.
api/​src/​functions/​geocode.js Ports geocoding to Azure Functions v4.
api/​package.json Defines the Functions application package.
api/​package-lock.json Locks API runtime dependencies.
api/​logout.js Removes local-session logout.
api/​host.json Configures the Functions host.
api/​gist.js Removes the Vercel Gist handler.
api/​auth.js Removes passphrase authentication.
api/​_lib/​session.js Removes custom session management.
api/​_lib/​rateLimit.js Retains only geocoding throttling.
api/​_lib/​http.js Adds Azure response helpers.
api/​_lib/​githubGist.js Exposes the Gist update timestamp.
api/​_lib/​clientPrincipal.js Parses Static Web Apps identities.
api/​_lib/​categories.js Reads staged API category data.
admin/​index.html Makes the dashboard the primary admin page.
admin/​dashboard.html Removes the separate dashboard document.
admin/​admin.js Integrates Entra login/logout and timestamps.
admin/​admin.css Removes obsolete login styling.
admin/​admin-auth.js Removes passphrase login logic.
.gitignore Ignores generated API and local-secret files.
.github/​workflows/​ci.yml Installs, audits, and validates the API package.
.github/​workflows/​azure-static-web-apps-wonderful-field-0cd14c010.yml Deploys production and staging to Azure.
Files not reviewed (1)
  • api/package-lock.json: Generated file

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread staticwebapp.config.json
Comment on lines +2 to +3
"routes": [
{ "route": "/", "redirect": "/admin", "statusCode": 302 },
Comment thread staticwebapp.config.json
Comment on lines +27 to +28
"responseOverrides": {
"401": { "redirect": "/.auth/login/aad", "statusCode": 302 }

This branch was successfully deployed

1 active deployment
Preview — 3c81720c Deployed Oct 4, 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.

3 participants