Increase the specificity of Header breadcrumb styles so that Link defaults do not override contextual typography when stylesheets are loaded in a different order.
Add a patch changeset for @backstage/ui.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
DatabaseEventBusStore: 500ms → 2000ms for the performance threshold
when cleaning 100k rows — this is intentionally a perf test so a real
time assertion is correct, it just needs more headroom for CI.
DatabaseKeyStore: replace fixed 500ms sleep with waitForExpect polling
so the test adapts to however long the async deletion actually takes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Replace ensureSelectContains with ensureMinimumSelect that adds all
fields our code requires (id for photo fetching and Map keys,
accountEnabled for disabled user filtering). Separates the minimum
viable set from the default projection list.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
The Microsoft Graph API does NOT include accountEnabled in the
default user projection — it requires an explicit $select. Without
it, the client-side filterDisabledUsers check cannot work because
the field is undefined in the response.
Add a DEFAULT_USER_SELECT constant with all default Graph API user
fields plus accountEnabled. ensureSelectContains now falls back to
this list when no custom userSelect is configured.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Consistently use 'accountEnabled === false' everywhere to describe
which users are filtered out.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
- Fix two remaining config.d.ts entries that still referenced the
automatic accountEnabled base filter
- Add tests verifying that userFilter + userGroupMemberFilter and
userFilter + userGroupMemberSearch are rejected
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Cover the disabled user filtering and select augmentation for both
the /users and group members paths, with and without userSelect
configured.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
The === true check would silently drop all users if accountEnabled
is not in the API response (e.g. if the default projection omits
it). The !== false check is safer: it only filters users that are
explicitly disabled, and passes through users with unset
accountEnabled (same as pre-v1.51.0 behavior).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Accept undefined input (returns undefined, preserving default
projection). Inline the calls at both use sites per review feedback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
- Use accountEnabled === true instead of !== false (stricter,
excludes users with unset accountEnabled)
- Update doc comments to mention client-side filtering and remove
accountEnabled from the filter example
- Update changeset to mention userGroupMemberSearch exclusivity
- Add accountEnabled: true to test mocks
- Add regression tests for disabled user filtering
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Revert the server-side accountEnabled base filter from #34165 which
broke the group members endpoint. Filter disabled users client-side
in both the /users and group members paths. Restore the mutual
exclusivity check between userFilter and userGroupMemberFilter.
Fixes#34422
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
The actions/setup-node@v6.4.0 upgrade stopped auto-shimming yarn onto
PATH via corepack. The yarn-plugin test spawns yarn via Node's
child_process.spawn() which does a raw PATH lookup, causing
ENOENT failures. Adding corepack: true ensures the yarn shim is
available.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
* docs: add backend.startup configuration documentation
Add a new 'Startup Configuration' section at the bottom of the
building-backends guide documenting the backend.startup config block.
- Explains onPluginBootFailure per-plugin control
- Explains onPluginModuleBootFailure per-module control
- Shows how to set a global default via backend.startup.default
- Includes a full YAML configuration reference
Closes#34075
Signed-off-by: ahmetoguzhanengin <ahmetoguzhanengin@gmail.com>
* docs: fix backend.startup examples per Copilot review
- Replace 'githubEntityProvider' with 'github' (the actual moduleId)
as declared in createBackendModule({ moduleId: '...' })
- Replace 'abort | continue' YAML values with 'abort # or continue'
to avoid invalid literal string interpretation
Signed-off-by: Ahmet Oğuzhan Engin <ahmetoguzhanengin@gmail.com>
Signed-off-by: ahmetoguzhanengin <ahmetoguzhanengin@gmail.com>
---------
Signed-off-by: ahmetoguzhanengin <ahmetoguzhanengin@gmail.com>
Signed-off-by: Ahmet Oğuzhan Engin <ahmetoguzhanengin@gmail.com>
Switch the dockerized MySQL container to mysql_native_password (single
challenge-response) instead of the default caching_sha2_password
(extra RSA key exchange round-trip on non-TLS connections). Also
disable binary logging since tests don't need replication. Both
reduce per-connection overhead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
The mysql2 driver defaults to a 10-second connect timeout, which is
too short when many test suites share a single MySQL container under
CI load. Increase the connect timeout to 30 seconds and add pool
acquire/create timeouts of 30 seconds to reduce flaky ETIMEDOUT
failures.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>