Teffen Ellis 67889a079b web: stop embedded table search from closing the dialog around it
Searching inside a selection dialog closed it. Two independent leaks, both from a
table's search escaping the component that renders it:

- `Table` wrote its search and page into the document URL unconditionally. That
  navigates, the route re-renders, and a dialog the page mounted imperatively is torn
  down mid-search. `searchParam` is now nullable and opt-in: set it and the table owns
  those parameters, leave it and the state stays local. `TablePage` — the table that
  *is* the page — sets `q`. Reading the page out of the URL moves from the constructor
  to `connectedCallback`, since a subclass's `searchParam` initializer hasn't run yet
  while the base constructor is still going.

- `ak-search-ql` dispatched its synthetic submit with `composed: true`, so it crossed
  the shadow boundary and reached `window`, where every connected `Table` treats a
  submit as "refresh". Searching in a dialog refetched the table behind it. Native
  `submit` doesn't cross shadow boundaries either.

Repro before this change: open a group, Users, Add Existing User, pick the user
selector, type a name, press Enter — both dialogs vanish and the group's own user
search is left holding the term. The URL gained `?q=<term>` from a table two dialogs
deep.

Also braces the single-statement `if`s this stack introduced (the search-param
registry helpers); pre-existing ones are left as they were.

Fixes `400-groups` "Simple group" and "Edit group from related group list". Serial
suite: 30 passed / 6 failed to 32 passed / 4 failed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 23:43:49 +01:00
2026-04-27 01:08:32 +02:00
2026-08-26 20:06:45 +01:00
2026-08-26 20:06:45 +01:00
2026-03-31 11:33:46 +02:00
2026-07-29 15:12:35 +01:00
2026-08-25 15:50:06 +00:00
2026-08-03 19:48:58 +00:00
2026-06-24 19:50:08 +02:00
2025-09-02 21:38:53 +00:00
2026-08-26 20:06:45 +01:00
2023-04-19 16:13:45 +02:00
2026-04-27 01:08:32 +02:00

authentik logo


Join Discord GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status Code Coverage Latest version

What is authentik?

authentik is an open-source Identity Provider (IdP) for modern SSO. It supports SAML, OAuth2/OIDC, LDAP, RADIUS, and more, designed for self-hosting from small labs to large production clusters.

Our enterprise offering is available for organizations to securely replace existing IdPs such as Okta, Auth0, Entra ID, and Ping Identity for robust, large-scale identity management.

Installation

  • Docker Compose: recommended for small/test setups. See the documentation.
  • Kubernetes (Helm Chart): recommended for larger setups. See the documentation and the Helm chart repository.
  • AWS CloudFormation: deploy on AWS using our official templates. See the documentation.
  • DigitalOcean Marketplace: one-click deployment via the official Marketplace app. See the app listing.

Screenshots

Light Dark

Development and contributions

See the Developer Documentation for information about setting up local build environments, testing your contributions, and our contribution process.

When you contribute documentation, either to accompany a code change or as a standalone contribution, please be sure to follow our documentation Style Guide.

Security

Please see SECURITY.md.

Adoption

Using authentik? We'd love to hear your story and feature your logo. Email us at hello@goauthentik.io or open a GitHub Issue/PR!

License

MIT License CC BY-SA 4.0 authentik EE License

Languages
Python 55.4%
TypeScript 34%
Rust 3.5%
JavaScript 2.6%
CSS 2.3%
Other 2.1%