Skip to content

Develop#19

Merged
x42en merged 4 commits intomainfrom
develop
May 4, 2026
Merged

Develop#19
x42en merged 4 commits intomainfrom
develop

Conversation

@x42en
Copy link
Copy Markdown
Contributor

@x42en x42en commented May 4, 2026

This pull request introduces significant improvements to OAuth resource server audience management (RFC 8707), CORS origin handling, and the developer experience in the application detail view. The changes ensure that both CORS origins and valid OAuth audiences are now dynamically managed and updated in real-time, without requiring a server restart. Additionally, the frontend now provides clearer integration instructions and a more comprehensive overview of supported OAuth scopes and claims.

Dynamic configuration and OAuth improvements:

  • Refactored CORS and OAuth audience handling to use live, mutable sets (trustedOrigins, validAudiences) that are seeded from environment variables and application URLs at startup, and updated automatically on application create/update/delete. This ensures immediate reflection of changes without a restart. (src/auth.ts, src/index.ts, .env.example, docker-compose.yml) [1] [2] [3] [4] [5] [6] [7] [8]

  • Updated the OAuth provider configuration to support the phone scope and to include additional user claims (such as emailVerified, image, phone, updatedAt) in both ID tokens and access tokens, improving standards compliance and downstream integration. (src/auth.ts, frontend/src/components/applications/ApplicationFormModal.vue) [1] [2] [3] [4] [5]

Frontend developer experience enhancements:

  • Overhauled the Application Detail view to provide dynamic, tabbed code examples for TypeScript (oauth4webapi), Python (authlib), and IOServer (ioserver-oidc), all demonstrating correct use of the resource parameter for RFC 8707 JWT access tokens. The view now also displays key endpoints (JWKS URI, discovery endpoint), the configured audience/resource, and warnings if the application URL is missing. (frontend/src/views/ApplicationDetailView.vue) [1] [2] [3] [4]

  • Added a comprehensive "Scopes & Claims" table to the Application Detail view, showing which scopes are enabled for the application, their types (standard OIDC vs. custom), and the claims they return. This helps developers understand the available data and permissions at a glance. (frontend/src/views/ApplicationDetailView.vue)

These changes collectively improve standards compliance, security, and developer usability for OAuth integrations.

x42en and others added 4 commits May 4, 2026 08:30
Add a dedicated two-factor authentication page and integrate it into the
auth routing system. This includes a new standalone MFA challenge page
to handle page reloads and bookmarks, as well as an enhanced login
template with a sliding transition for inline MFA prompts and OTP
input styling.

- Add `/two-factor` route to `authPageRoutes`
- Update `PageName` type to include `two-factor`
- Implement `templates/default/two-factor.html`
- Update `templates/default/login.html` with MFA slider and OTP UI components
…d CORS

Introduce a runtime configuration system to manage OAuth resource server audiences and CORS origins dynamically. This removes the need for server restarts when adding or updating applications in the admin UI.

- Create `src/runtime-config.ts` to manage mutable sets of origins and audiences
- Seed runtime config from environment variables and database application URLs at startup
- Integrate dynamic updates into application CRUD operations in `src/routes/admin/applications.ts`
- Update `src/auth.ts` to use live configuration for `trustedOrigins` and `validAudiences`
- Expand OIDC claims to include `phone`, `email_verified`, `picture`, and `updated_at`
- Add `phone` scope to available OAuth scopes
- Update frontend `ApplicationDetailView.
Co-authored-by: Copilot <copilot@github.com>
@x42en x42en self-assigned this May 4, 2026
@x42en x42en added bug Something isn't working enhancement New feature or request labels May 4, 2026
@x42en x42en merged commit f620b75 into main May 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant