Skip to content

Commit babfc79

Browse files
refactor(api keys): Display personal API keys as default view (#245261)
Closes #245255 ## Summary Changes the default display view of the API Keys page to show Personal keys only. ### Release note API Keys management page now defaults to showing personal API Keys only ### How to test - Start ES and Kibana - Navigate to Stack Management -> API Keys - Create a few different types of Keys: Personal, Cross Cluster - Create a Managed key by setting the metadata to ``` { "managed": true } ``` - Now when reloading the page, the default view should only show the Personal keys and the Personal filter tab should be selected. ### Screenshots - On Main <img width="1716" height="1284" alt="Screenshot 2025-12-04 at 15 49 35" src="https://github.com/user-attachments/assets/c693eab0-3e5a-4292-9895-9cb86b008dda" /> - On this PR <img width="1718" height="1287" alt="Screenshot 2025-12-04 at 15 50 06" src="https://github.com/user-attachments/assets/e0606424-fda8-42e4-b735-6fb7cfa5be8e" /> If no personal keys are present, but managed/cross cluster are then the view defaults to showing no keys and the filter still enabled <img width="1471" height="584" alt="image" src="https://github.com/user-attachments/assets/cdcdba01-0ebe-4309-bb78-b001a6c72b3f" /> ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) - [ ] Review the [backport guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing) and apply applicable `backport:*` labels. ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [ ] [See some risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) - [ ] ... (cherry picked from commit 0dd1c86)
1 parent 1a26dc0 commit babfc79

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

x-pack/platform/plugins/shared/security/public/management/api_keys/api_keys_grid/api_keys_grid_page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ const DEFAULT_TABLE_STATE = {
5353
},
5454
from: 0,
5555
size: 25,
56-
filters: {},
56+
filters: {
57+
type: 'rest' as const,
58+
},
5759
};
5860

5961
const PLUS_SIGN_REGEX = /[+]/g;

x-pack/platform/test/functional/apps/api_keys/home_page.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
506506
});
507507

508508
it('active/expired filter buttons work as expected', async () => {
509+
await pageObjects.apiKeys.clickTypeFilters('personal');
509510
await pageObjects.apiKeys.clickExpiryFilters('active');
510511
await ensureApiKeysExist(['my api key', 'Alerting: Managed', 'test_cross_cluster']);
511512
await ensureApiKeyDoesNotExist('test_api_key');
@@ -536,6 +537,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
536537
});
537538

538539
it('username filter buttons work as expected', async () => {
540+
await pageObjects.apiKeys.clickTypeFilters('personal');
539541
await pageObjects.apiKeys.clickUserNameDropdown();
540542
expect(
541543
await testSubjects.exists('userProfileSelectableOption-system_indices_superuser')
@@ -553,6 +555,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
553555
});
554556

555557
it('search bar works as expected', async () => {
558+
await pageObjects.apiKeys.clickTypeFilters('personal');
556559
await pageObjects.apiKeys.setSearchBarValue('test_user_api_key');
557560

558561
await ensureApiKeysExist(['test_user_api_key']);
@@ -563,6 +566,11 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
563566
await pageObjects.apiKeys.setSearchBarValue('"api"');
564567
await ensureApiKeysExist(['my api key']);
565568
});
569+
570+
it('loads default view', async () => {
571+
// Default view should be personal API keys
572+
await ensureApiKeysExist(['test_user_api_key', 'test_api_key']);
573+
});
566574
});
567575
});
568576
};

0 commit comments

Comments
 (0)