Repository navigation
Move board admin to Azure Static Web Apps with Entra ID sign-in - #22
Merged
Merged
Conversation
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
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
2 of 4 tasks
There was a problem hiding this comment.
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
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 on lines
+2
to
+3
| "routes": [ | ||
| { "route": "/", "redirect": "/admin", "statusCode": 302 }, |
Comment on lines
+27
to
+28
| "responseOverrides": { | ||
| "401": { "redirect": "/.auth/login/aad", "statusCode": 302 } |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


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