Skip to content

feat(KLEF-124): Idp readiness gate#18

Merged
isaacwallace123 merged 7 commits intomainfrom
feat/idp-readiness-gate
Apr 3, 2026
Merged

feat(KLEF-124): Idp readiness gate#18
isaacwallace123 merged 7 commits intomainfrom
feat/idp-readiness-gate

Conversation

@JeremyNRoos
Copy link
Copy Markdown
Contributor

Pull Request

Summary

  • Adds active IDP indicator (green "Active" badge) to the marketplace plugin cards
  • Adds "Activate" button to switch between installed IDP plugins
  • Extends the installed plugins API type with type and is_active_idp fields

Related Issues

Closes #


Changes

What's Included

  • src/lib/api/plugins.tstype and is_active_idp added to InstalledPlugin; setActiveIDP() API call added
  • src/app/(authenticated)/marketplace/page.tsxactiveIDPId state seeded from installed plugins on load; green "Active" badge on the active IDP card; "Activate" button for installed IDP plugins that are not yet active; handleActivate() handler with loading/error state

What's Not Included

  • Marketplace does not yet show plugin status (running/error/installing) — that's a separate card
  • No confirmation dialog before switching active IDP (token invalidation side-effect)

Testing

How Was This Tested?

  • Tested locally with docker compose up
  • Installed two IDP plugins, verified "Active" badge appears on the active one
  • Clicked "Activate" on the inactive IDP, verified badge switches

Test Coverage

  • Unit tests added or updated
  • Integration tests added or updated
  • Manually tested end-to-end

Breaking Changes

Does this PR introduce breaking changes?

  • Yes
  • No

Security Considerations

  • This PR affects authentication or authorization logic
  • This PR touches secrets, tokens, or environment variables
  • This PR affects infrastructure, deployment pipelines, or network configuration

"Activate" is only rendered when isAdmin is true. The underlying API endpoint is admin-gated server-side.


Documentation

Does this PR require documentation updates?

  • Yes
  • No

UI/UX (If Applicable)

  • Includes new components or views
  • Changes styles or theme tokens
  • Responsive behavior verified
  • Requires design approval

Screenshots or recordings: Active badge uses bg-emerald-600; "Activate" button uses variant="outline".


Pre-Merge Checklist

  • PR title follows semantic format (feat:, fix:, chore:, docs:, refactor:, test:)
  • All CI checks passing
  • Code follows project style guidelines
  • No debug logs or commented-out code left in
  • Dependencies reviewed (no unnecessary additions)
  • No sensitive information included

Reviewer Notes

JeremyNRoos and others added 5 commits April 2, 2026 22:20
Poll /api/v1/auth/config every 3s when ready:false (IDP installed but
container still starting). Show a "Starting identity provider…" loading
screen on the login page instead of the form, so the user isn't prompted
to spam credentials before Keycloak is ready.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Installed plugins now show a red Uninstall button instead of the
disabled Installed state. Errors (e.g. last IDP protection) surface
as a banner above the plugin grid.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
err.message was showing axios's generic "Request failed with status code
400" instead of the actual backend message. Now reads err.response.data.error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@JeremyNRoos JeremyNRoos self-assigned this Apr 3, 2026
@github-actions github-actions bot added feature New feature or enhancement chore Maintenance/devex security Security fix/hardening labels Apr 3, 2026
@isaacwallace123 isaacwallace123 merged commit 0e05255 into main Apr 3, 2026
6 checks passed
@isaacwallace123 isaacwallace123 deleted the feat/idp-readiness-gate branch April 3, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance/devex feature New feature or enhancement security Security fix/hardening

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants