Commit Graph

225 Commits

Author SHA1 Message Date
Dennis Oelkers
9dd1a00330 Upgrade @testing-library/user-event from v13 to v14 (#25248)
* Upgrade @testing-library/user-event from v13 to v14

Migrate all test files to the v14 API:
- Add `await` to all userEvent calls (v14 returns promises)
- Replace `paste(element, text)` with `paste(text)` or fireEvent
- Replace `{selectall}` in type() with clear() + type()
- Remove `{ ctrlKey: true }` from click(), use keyboard modifiers
- Remove redundant act() wrappers (v14 handles act internally)
- Add `userEvent.setup({ advanceTimers })` for fake timer tests
- Use fireEvent.change() for number/spinbutton controlled inputs
- Fix selectEvent.ts fake timer detection for Jest 30

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Remove unused fireEvent import in InputSetupWizard.StartInput.test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix lint errors from user-event v14 upgrade

- Fix import group ordering in AggregationWizard test files
- Move setupUser definition before first usage in SavedSearchForm.test
- Add eslint-disable for intentional fireEvent usage on controlled inputs
- Fix eslint issues in selectEvent helper and rename createUser to setup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Linus Pahl <linus.pahl@graylog.com>
2026-03-10 13:49:16 +01:00
Dennis Oelkers
26721094f8 Migrate MetricsStore and GlobalThroughputStore from Reflux to React Query (#25247)
* Migrate MetricsStore and GlobalThroughputStore from Reflux to React Query

Replace the Reflux-based MetricsStore and GlobalThroughputStore with a
shared MetricsProvider context that batches all metric subscriptions into
a single react-query POST to /cluster/metrics/multiple. This eliminates
Reflux from the metrics subsystem entirely.

New infrastructure:
- src/types/metrics.ts: shared metric type definitions
- src/contexts/MetricsProvider.tsx: batching context with ref-counted
  subscriptions, 2s refetchInterval, fetchPeriodically
- src/hooks/useMetrics.ts: useMetrics, useNodeMetrics, useMetricsNames,
  useGlobalThroughput hooks

Migrated 22 consumer files from useStore(MetricsStore) + MetricsActions
add/remove pattern to the new hooks. Deleted MetricsStore,
GlobalThroughputStore, and GlobalThroughputStore.test.ts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix MetricsContext singleton for cross-bundle compatibility

The MetricsContext was created with plain createContext(), causing
enterprise plugin bundles to get a separate context instance. Use the
singleton pattern (matching NodesContext, StreamsContext, etc.) so the
same context instance is shared across all bundles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix remaining MetricsStore type import in InputThroughputUtils

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add MetricsProvider to test WrappingContainer

Tests rendering components that use useMetrics (e.g. Navigation with
GlobalThroughput) need MetricsProvider in the test wrapper, matching
how it's provided in the app via LoggedInPage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add useMetric and useNodeMetric convenience hooks for single metrics

Avoids the repetitive `useMemo(() => [name], [name])` wrapper pattern
when subscribing to a single metric name.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use asMock helper in PipelineProcessingErrors test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix type errors in PipelineProcessingErrors test mock data

Add missing `full_name` and `name` properties to mock meter metrics
to satisfy the `BaseMetric<MeterMetric>` type requirements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
2026-03-10 10:45:46 +01:00
Linus Pahl
0c17237804 Render DefaultQueryParamProvider by default in component unit tests. (#25145)
* Render DefaultQueryParamProvider by default in wrappedTestingLibrary and remove redundant test wrappers.

* Fix `WidgetFocusProvider.test`.

* Fixing linter hints

* Fixing test
2026-02-27 16:58:38 +01:00
Linus Pahl
1aa3308b2d Remove perspectives plugin and context. (#25002)
* Remove perspectives switch from navigation.

* Remove no longer needed filtering of navigation items, based on active perspective.

* Route to default welcome page instead of perspective specific page on start page.

* Remove action to switch perspective from quick jump modal.

* Remove perspective info from telemetry events.

* Remove not needed imports

* Remove perspectives context.

* Remove mocking of perspectives in tests.

* Cleanup

* Fixing tests

* Adding changelog.

* Extend `UPGRADING.md`.

* Update tests

* Cleanup

* Improve changelog
2026-02-18 16:38:21 +01:00
Maksym Yadlovskyi
1219493b72 Feat/add event info to sidebar bulk action (#24767) 2026-02-06 10:54:22 +01:00
Dennis Oelkers
f32b0324bc Fixing Quick Jump for API Browser. (#24790)
* Fixing Quick Jump for API Browser.

* Adding test.

* Restoring exports, but making them explicit.

* Adding missing exports.

* Using cleaner type.

* Exporting `cleanup` as well.
2026-01-22 15:35:12 +01:00
Zack King
49eedf0f0f Add dynamic Event Title field to Event Definitions (#24578)
* Add dynamic Event Title field to event definition

* processor unit tests

* changelog

* optional -> nullable for consistency

* Add new field to fixtures

* Fix test finding multiple components

* Rename Event Title to Event Summary Template

* Address PR feedback

* Add event definition fields to filter event templated fields
2026-01-05 11:04:45 -06:00
Dennis Oelkers
e6d64404eb Typing permissions in frontend. (#24511)
* Typing permissions.

* Improving type for permissions.

* Improving typing for `IfPermitted`, cleaning up.

* Improving typing for `usePermissions`, cleaning up.

* Improving types for permission helpers.

* Fixing typing fallout.

* Fixing typing fallout pt. II.

* Fixing permission that was previously wrong.

* Adding missing entities/actions.

* Typing more attributes.

* Relaxing setter.

---------

Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
2025-12-17 08:27:34 +01:00
Maxwell
bd3719ca4b Revamp/server input pagination (#24057)
* first iteration of pagination

* commit state

* fix import and add license header

* fix import

* fix compliation issues

* fix static field deserilization

* Move inputsList to  PaginatedEntityDataTable (#24113)

* Implement entity data table for Inputs

* Update InputsDotBadge with cluster endpoint

* Delete graylog2-web-interface/src/components/inputs/InputsOveriew/cells/.#ThroughputCell.tsx

* add Expanded Title section to show config and static fields

* remove InputList and InputListItem 

- format files

* make row clickable and have a single expanded section

- remove unnecessary components

* fix linter

* fix lint

* fix lint

* refactor imports

* fix review

---------

Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>

* continue refactoring

* Remove unused CatApi impl (#24215)

* Position leftCol component to the left in ModalSubmit (#24111)

* Updating yarn lockfile (#24217)

Co-authored-by: Gary Bot <garybot2@graylog.com>

* Bump auto-value.version from 1.11.0 to 1.11.1 (#24201)

Bumps `auto-value.version` from 1.11.0 to 1.11.1.

Updates `com.google.auto.value:auto-value-annotations` from 1.11.0 to 1.11.1
- [Release notes](https://github.com/google/auto/releases)
- [Commits](https://github.com/google/auto/compare/auto-value-1.11.0...auto-value-1.11.1)

Updates `com.google.auto.value:auto-value` from 1.11.0 to 1.11.1
- [Release notes](https://github.com/google/auto/releases)
- [Commits](https://github.com/google/auto/compare/auto-value-1.11.0...auto-value-1.11.1)

---
updated-dependencies:
- dependency-name: com.google.auto.value:auto-value-annotations
  dependency-version: 1.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.google.auto.value:auto-value
  dependency-version: 1.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump io.modelcontextprotocol.sdk:mcp-bom from 0.15.0 to 0.16.0 (#24211)

Bumps [io.modelcontextprotocol.sdk:mcp-bom](https://github.com/modelcontextprotocol/java-sdk) from 0.15.0 to 0.16.0.
- [Release notes](https://github.com/modelcontextprotocol/java-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/java-sdk/compare/v0.15.0...v0.16.0)

---
updated-dependencies:
- dependency-name: io.modelcontextprotocol.sdk:mcp-bom
  dependency-version: 0.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.hibernate.validator:hibernate-validator (#24173)

Bumps [org.hibernate.validator:hibernate-validator](https://github.com/hibernate/hibernate-validator) from 9.0.1.Final to 9.1.0.Final.
- [Release notes](https://github.com/hibernate/hibernate-validator/releases)
- [Changelog](https://github.com/hibernate/hibernate-validator/blob/main/changelog.txt)
- [Commits](https://github.com/hibernate/hibernate-validator/compare/9.0.1.Final...9.1.0.Final)

---
updated-dependencies:
- dependency-name: org.hibernate.validator:hibernate-validator
  dependency-version: 9.1.0.Final
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump software.amazon.msk:aws-msk-iam-auth from 2.3.4 to 2.3.5 (#24157)

Bumps [software.amazon.msk:aws-msk-iam-auth](https://github.com/aws/aws-msk-iam-auth) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/aws/aws-msk-iam-auth/releases)
- [Commits](https://github.com/aws/aws-msk-iam-auth/compare/v2.3.4...v2.3.5)

---
updated-dependencies:
- dependency-name: software.amazon.msk:aws-msk-iam-auth
  dependency-version: 2.3.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Refactor ClusterStateApi to use os3 client (#24196)

* Refactor ClusterStateApi to use os3 client

* fix empty properties indices

* fix conflict

* better index deletion handling for unavailable indices

* fix deletion of indices

* code cleanup

* better record name and javadoc

* commit compiling state

* switch pagination

* fix removed class

* fix encrypted values

* fix extractors

* add missing headers

* remove import

* fix forbidden api call

* fix test

* fix forbidden api failure

* Update InputsOverview.tsx

* fix updating input

* add back validation

* add changelog

* fix lint

* ignore os java client (#24285)

* Refector data_node_status (#24267)

* refector data_node_status

* Revert "refector data_node_status"

This reverts commit 29c78d4017.

* Refector data_node_status to datanode_status

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>

* add more test cases

* fix imports

* linter fixes

* linter fixes

* add node filter when node is set

* clean up input to use set pattern on builder

* remove not needed prop

* Add additional column to inputs page  (#24268)

* add additional columns

- add InputActions test

* add expanded section actions

* use product name

* fix lint

* fix lint

---------

Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>

* fix lint errors

* fix desired state and buildFromMap

* make returned list immutable again

* Update InputsOverview.tsx

* add Inputs notifications for failed, setup and stopped state and improve input creation (#24283)

* add Inputs notifications for failed, setup and stopped state

* fix lint

* improve input creation

- open wizard after saving input

* remove navigation

* remove filter copy

* adjust to upstream changes

* Update InputsPage.tsx

* Update graylog2-web-interface/src/util/DocsHelper.ts

Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>

* reset field after opening wizard

* fix typo

* add column width

---------

Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>
Co-authored-by: Tomas Dvorak <tomas.dvorak@graylog.com>
Co-authored-by: Maksym Yadlovskyi <maksym.yadlovskyi@graylog.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Gary Bot <garybot2@graylog.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ousmane Samba <ousmane.samba@graylog.com>
Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
Co-authored-by: Patrick Mann <patrickmann@users.noreply.github.com>
Co-authored-by: patrickmann <patrick.mann@graylog.com>
2025-12-01 07:47:19 +01:00
Linus Pahl
0536ea4c1a Ensure that newly introduced columns are displayed by default in entity data tables. (#24165)
* Install `@tanstack/react-table`.

* Implement tanstack table for core functionality of `EntityDataTable`.

* Reimplement sorting.

* Include bulk select column in tanstack table columns.

* Cleanup code

* Further cleanup code

* Create seperate component for `TableRow` again to be able to use `React.memo`.

* Cleanup `onSortChange` handler.

* Create separate hook to create react table object.

* Create separate hook for column definition generation.

* Move `useElementsWidth` hook into separate file.

* Start making use of tanstac table for row selection logic.

* Only create accessor columns for columns which exist as attributes in the entities.

* Fix linter hints

* Maintain column visibility in tanstack table.

* Use row id which does not include row index.

* Improve memorization of table rows. Fix issue where table row did not update after changing column visibility.

* Fixing tests

* Make use of tanstack table for logic related to selected entities.

* Align actions to the right.

* Fix name of `useColumnsWidth` hook.

* Add `indeterminate` prop for `Checkbox` component.

* Simplify bulk select col header.

* Remove errorprone `TableRow` memorization.

* Simplify `renderCell` usage.

* Avoid unnessecary unmounts of cell and header components.

* Extending entity list preferences with ability to hide columns + ordering.

* Adding tests.

* Do not return absent values.

* Improve naming of column related variables.

* Cleanup code

* Use only one array for information about column order and visibility. Before the arrays contained redundant information.

* Get rid of small `TableRow` component.

* Reverting accidental change.

* Restructure column definition creation.

* Migrating to JUnit6, fixing `ObjectMapper`.

* Properly type column definition meta.

* Injecting `MongoCollections` directly.

* Reverting accidental change.

* Fix column renderes for lookup table overview.

* Fixing finder query.

* Fix check if entity is selectable.

* Use stable refernece for `renderActions` functions, to fix tests.

* Fixing sort icon description

* Remove not needed file.

* Fix linter hints

* Cleanup code

* Fix issue with absent actions col.

* Update frontend implementation of user table preferences regarding API changes.

* Revert naming `EntityDataTable` prop `visibleColumns` to `visibleColumnOrder`

* Replace `visibleColumns` array prop in `EntityDataTable` for new `columnPreferences` object.

The `columnPreferences` also include information about hidden columns and custom column width.
With this change newly intorduced columns will be displayed by default.

* Update tests.

* Fixing type.

* Update style guide examples

* Remove no longer needed `BulkSelectHead`.

* Only update user column visibility preference for columns which have been explicitly hidden or shown.

* Fixing merge conflicts.

* Remove not needed file.

---------

Co-authored-by: Dennis Oelkers <dennis@graylog.com>
2025-11-18 10:46:35 +01:00
Dennis Oelkers
ef34daa25e Extending entity list preferences with ability to hide columns + ordering. (#24122)
* Extending entity list preferences with ability to hide columns + ordering.

* Adding tests.

* Do not return absent values.

* Reverting accidental change.

* Migrating to JUnit6, fixing `ObjectMapper`.

* Injecting `MongoCollections` directly.

* Reverting accidental change.

* Fixing finder query.

* Update frontend implementation of user table preferences regarding API changes.

* Simplifying `SortPreferences` by removing polymorphism.

* Fixing test.

---------

Co-authored-by: Linus Pahl <linus.pahl@graylog.com>
2025-11-11 09:39:35 +01:00
Nithin Kasam
5cb73ceb74 Disable automatic auth for aws cloud enabled inputs (#23756)
* disable automatic authentication

* updated consistency and added change log

* fix tests

* Remove change log

---------

Co-authored-by: Dan Torrey <dan.torrey@graylog.com>
Co-authored-by: Ryan Carroll <ryan.carroll@graylog.com>
2025-10-02 10:46:04 -05:00
Zack King
7d5d068555 Add SourcedScopedEntity and implement in EventDefinitionDto (#23574)
* Add SourcedScopedEntity and implement in EventDefinitionDto

* Copyright header

* Add unit test validation

* Add bulk delete methods for entitySource

* Add filters to event definitions

* Add search filters to query from frontendg

* Add _entity_source to frontend type

* Add required _entity_source to test fixtures

* more appeasing yarn

* tsc fixes unrelated to this changeset?

* Fix typing issue

* Post-merge conflict resolution cleanup

* Remove unused import. Fix column rendering
2025-09-17 12:03:49 -05:00
Dennis Oelkers
163cdfdff3 Updating to Mantine 8. (#23522)
* Bump the mantine group in /graylog2-web-interface with 4 updates

Bumps the mantine group in /graylog2-web-interface with 4 updates: [@mantine/core](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core), [@mantine/dropzone](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/dropzone), [@mantine/hooks](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/hooks) and [@mantine/notifications](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/notifications).


Updates `@mantine/core` from 7.17.7 to 8.0.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/8.0.0/packages/@mantine/core)

Updates `@mantine/dropzone` from 7.17.7 to 8.0.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/8.0.0/packages/@mantine/dropzone)

Updates `@mantine/hooks` from 7.17.7 to 8.0.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/8.0.0/packages/@mantine/hooks)

Updates `@mantine/notifications` from 7.17.7 to 8.0.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/8.0.0/packages/@mantine/notifications)

---
updated-dependencies:
- dependency-name: "@mantine/core"
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: mantine
- dependency-name: "@mantine/dropzone"
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: mantine
- dependency-name: "@mantine/hooks"
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: mantine
- dependency-name: "@mantine/notifications"
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: mantine
...

Signed-off-by: dependabot[bot] <support@github.com>

* Passing test environment to Mantine theme provider.

* Correcting assertion in test.

* Making sure that `div` is not ancestor of `tr`.

* Suppressing nested element warnings for now.

* Suppressing nested `form` error until usage of `NestedForms` is fixed.

* Improving tests.

* Fixing type.

* Use `:hover` pseudo-class to fix hover color for menu items.

* Updating yarn lockfile.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Linus Pahl <linus.pahl@graylog.com>
2025-09-03 08:51:33 +02:00
Linus Pahl
a7d1a3083d Simplify react-select usage in tests. (#22790)
* Simplify react-select usage in tests.

* Fixing TS error

* Fixing test

* Allow using `within` in new selectors.

* Cleanup

* Simplify finding an option.

* Remove not needed `matchProp` props from select component.

* Properly stringify labels in custom filter

* Remove not needed import

* Implement select helper methods for furhter cases.

* Fix selecting an option when input already has a value.

* Improve naming of custom methods.

* Implement new custom methods for further cases.

* Fixing test

* Simplify implementation

* Implement `selectEvent.chooseOption` for `AggregationConditionExpression.test.tsx`.
2025-08-13 09:13:00 +02:00
github-actions[bot]
9b1560ac56 Running lint --fix & prettier (#23112)
Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>
2025-07-09 13:40:37 +02:00
Ousmane SAMBA
bf8fc9f75a Implement entity share request for collection (#22945)
* Add "Valid" annotation to CreateEntityRequest#entity (#22820)

Enables cascading validations.

* Expose MongoCollection#findOneAndUpdate method with update pipeline (#22820)

This is required to use update aggregation pipelines.

* Add more helper methods to PluginModule (#22820)

- addGRNTypeProvider
- addCapabilityPermissions
- addSyncedEntitiesResolver

* Map USERS_READ and USERS_EDIT to capabilities (#22820)

This makes it possible to create working grants for users/teams.

* Expose another ObjectMapper constructor for testing (#22820)

We need to be able to customize the GRN registry.

* Fix TestUserService#loadByIds method (#22820)

The given IDs must be converted to ObjectIDs.

* checkpoint

* add collections to create request

* license header

* use utility methods

* adjust stream create to new api

* adjust eventDefinition create to new endpoint

- add create event definition hook

* adjust event definition types

* adjust Notication create to new api

* adjust view endpoint to new API

* fix linter

* use pluggable entitshare form group

* add hook

* add license

- renaming

* update test

* adjust label

* rename hook

* add collection binding for backend test

* fix test

* adjust tests for modified entity creation request

* fix merge conflict

* adjust more backend tests to modified signature

* check for selected_grantee_capabilities

* cleanup merge

* upgrading.md and remove unneeded default implementation

---------

Co-authored-by: Bernd Ahlers <bernd@graylog.com>
Co-authored-by: Bernd Ahlers <bernd@users.noreply.github.com>
Co-authored-by: Othello Maurer <othello@graylog.com>
Co-authored-by: patrickmann <patrick.mann@graylog.com>
Co-authored-by: Patrick Mann <patrickmann@users.noreply.github.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>
Co-authored-by: Anton Ebel <anton.ebel@graylog.com>
2025-07-09 07:41:28 +02:00
Dennis Oelkers
4c16c72af7 Removing residues from enzyme. (#22809)
* Removing `enzyme`.

* Migrating `react-hooks` test utilities.

* Removing unneeded version pins, adding lockfile.

* Fixing linter hints.
2025-06-11 12:02:01 +02:00
Dennis Oelkers
718874338e Migrating tests from enzyme to testing-library. (#22775)
* Migrating test for `RequirementsProvided`.

* Migrating `WidgetGrid` test.

* Migrating `WidgetColorContext` test.

* Migrating `MessageTable` test.

* Migrating `ContentPackConstraints` test.

* Migrating `Input` test.

* Migrating test for `ContentPackDetails` component.

* Migrating test for `ContentPackInstall` component.

* Fixing linter hints, adding types.

* Migrating `DataTableEntry` test.

* Migrating `DataAdapterCreate` test.

* Migrating `DataTable` test.

* Migrating `ActionHandler` test.

* Migrating `Headers` test.

* Removing obsolete snapshots.

* Migrating `ContentPackSelection` test.

* Fixing linter hints.

* Migrating test for `AutoFontSizer`.

* Migrating test for `NumberVisualization`.

* Migrating test for `AreaVisualization`.

* Migrating test for `HeatmapVisualization`.

* Migrating test for `WorldMapVisualization`.

* Migrating test for `DataTable`.

* Typing test for `AggregationBuilder`.

* Migrating test for `AggregationBuilder`.

* Migrating test for `GenericPlot`.

* Fixing types in test due to better typing.

* Migrating test for `ContentPackEditParameter`.

* Migrating test for `DrilldownContextProvider`.

* Migrating test for `NumberRefExpression`.

* Fixing linter hints.

* Removing unused import.

* Fixing obsolete usage of type.

* Fixing recent changes.
2025-06-05 17:29:15 +02:00
Nithin Kasam
c91fdab281 AWS Kinesis/Cloudwatch input: Fix several issues (#22370)
* error visibility and proceed with empty messages in stream fix

* reverted change

* added additional message fields and updated test cases

* fix lint errors

* update lint errors fix

* updated lint errors

* Fix build errors

* fix build issue

* updated lint errors

* updated input setup fix

* stream arn update to configuration

* fix lint errors

* fix lint error

* resolve conficts

* review comments commit

* naming consistency

* fixed compile errors

* Use client builder for ARN request, refactoring

* Cleanup

* fix bot error and update test cases

* Remove None log type, default to Kinesis Raw

* Silence verbose SDK messages

* Improve handling of missing stream ARN, cleanup

* Fix tests

* Add missing Override Source field on the review page

* Post string source

---------

Co-authored-by: Dan Torrey <dan.torrey@graylog.com>
2025-06-04 18:28:42 -05:00
Dennis Oelkers
57f93e1810 Remove usages of $PropertyType and related imports. (#22624)
* Remove usages of `$PropertyType` and related imports.

* Replacing missed usage.

* Fixing linter hint.
2025-05-27 15:22:20 +02:00
Ousmane SAMBA
76937a1ae7 Add entity share on create (#22281)
* prepare share without entity

* allow null entity

* optional share request for stream creation

* clone grants when cloning stream

* event definition share request

* share request for notifications

* fix types

* share request for views

* break circular dependency

* fix illegal API warning

* missing license header

* extract grantee selector form group into component

* use create share endpoint when GRN is not provided

* add EntityShare form group

* add entityShare to stream creation

* refactor with generic entity create request

* remove unneeded interface

* refactor to eliminate optional method parameters

* use new endpoint for stream with share_request

* unit test

* filter seleted grantee from available

* remove formik context and use callback prop for share

* add views update with sharing request

* add share options to saveSearch firm

* fix GRN types

* update tests

* show share only on create strea

* move form element to CapabilitySelect

* extract shared components

* revert form to CapabilitySelect and fix lint

* fix linter

* use CreateGranteesListItem when creating

- add test

* disable add Collaborator when none is selected

* add test cases for sharing

* fix reviews

* use correct type for eventdef creation

* fix import

* fix test

* decrease z-index of Popover to fix select

* handle update sharing on saveSearch

* fix lint

* reorder field

---------

Co-authored-by: patrickmann <patrickmann@hotmail.com>
Co-authored-by: Patrick Mann <patrickmann@users.noreply.github.com>
Co-authored-by: Maxwell <98284293+kodjo-anipah@users.noreply.github.com>
2025-05-05 13:03:41 +02:00
Linus Pahl
81ebed5537 Use portal for select menu by default. (#22412)
* Always use `document.body` as `menuPortalTarget` for `Select` component.

* Remove no longer needed usage of `menuPortalTarget` prop.

* Create abstraction for `react-select-event` and consider menu portal.

* Update select test.

* Remove no longer needed JSX file.

* Fixing linter hints
2025-04-25 15:26:10 +02:00
Jan Heise
210b715c1d Remove field that was added by error to group_by for event replay (#22343)
* remove field that was added by error from group_by for event replay

* adding changelog

* casting unknown to string array

* fixed field order in test

* fixed type

* fixed type

* adding missing types

* fixing summary widget

* removing unnecessary code

* removing unnecessary code
2025-04-22 14:01:37 +02:00
Ousmane SAMBA
7d1a665a41 Set high default value for TTL for service account (#22238)
* set default ttl for service account to 100Y

* fix import
2025-04-04 15:48:52 +02:00
Linus Pahl
59677e263f Implement helper function to mock window.confirm in tests. (#21816)
* Implement helper function to mock `window.confirm` in tests.

* Add missing license header

* Fixing linter hint

* Improve naming
2025-03-03 11:44:20 +01:00
github-actions[bot]
e913e0d5f3 Running lint --fix & prettier (#21515)
Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>
2025-02-13 08:15:43 +01:00
Dennis Oelkers
611bbc2688 Removing prop-types remainders. (#21425)
* Removing `prop-types` remainders.

* Fixing linter hint.
2025-01-30 16:17:26 +01:00
Dennis Oelkers
d778c30aec Removing frontend integration tests. (#20857) 2024-11-07 16:52:21 +01:00
Dennis Oelkers
ca8fce0bbc Removing usage of ReactDOM.findDOMNode. (#20845)
* Removing usage of `ReactDOM.findDOMNode`.

* Removing unused imports.

* Addressing linter hints.

* Addressing linter hints.

* Restoring props.
2024-11-06 11:51:20 +01:00
Ezequiel Lopez
72f7085993 feat: Include stream categories in Query.filter (#20549) 2024-09-26 14:06:58 -03:00
Zack King
16ff8aa736 Adds stream categories to dashboard widgets (#20199)
* Move StreamCategory resolution to SearchExecutor from SearchBackend
* Add logic to populate queries with streamcategories with streamIds
* Move streamcategory mapping from CommandFactory to MessagesResource
* Replace StreamCategoryFilters with StreamFilters in place instead of at top level
* Move StreamCategory to StreamFilter logic and address other feedback
* Add stream categories to SearchBar and WidgetQueryControls (#20226)
* Add stream categories to SearchBar and WidgetQueryControls
* Add query validation and stream_categories to Widgets
* feat: Hide stream categories dropdown if no categories
* account for categories for search types
* Map stream categories before adding all streams to queries without streams


---------

Co-authored-by: Ezequiel Lopez <ezequiel.lopez@graylog.com>
Co-authored-by: Ryan Carroll <ryan.carroll@graylog.com>
2024-09-04 16:49:16 -05:00
Tomas Dvorak
76cd8bb41d Propagate datanode version through node service (#19691)
* Propagate datanode version through node service

* Datanode version displayed in datanodes table

* added changelog

* lint error fixed

* fixed lint errors

* fixed nullable annotation import

* Added datanode version to the detail page

* Define datanode_version in types.ts

* Provide datanode version during initial register in NodePingPeriodical

* define datanode_version in preflight types.ts

* fix tests

---------

Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
Co-authored-by: Mohamed Ould Hocine <mohamed.ould.hocine@graylog.com>
Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-06-28 13:45:40 +02:00
Linus Pahl
d380b13b61 Create shared component for SingleMessageFieldTypesProvider. (#19614)
* Add shared component for `SingleMessageFieldTypesProvider`.

* Adding fixtures.

* Remove custom useStreams hook.

* Fixing test
2024-06-24 11:46:06 +02:00
Dennis Oelkers
a36aa56e86 Removing withStreams. (#19631)
* Migrate components to TS.

* Improving typing.

* Removing `withStreams`.

* Adding license header.

* Fixing linter hints.
2024-06-17 14:21:34 +02:00
Linus Pahl
9b92b9b3ab Add correct type for event fields. (#19370) 2024-05-16 14:18:56 +02:00
luk-kaminski
a41c07e526 Search cancellation after configured number of seconds (#18308)
* Alpha version of cancel time config and usage for Maksym, so that he can start experimenting

* Cancellation after defined time works on ES as well, though has a more coarse-grained behavior. Custom error for aborted search types.

* Add cancel_after_seconds interval timeout to search configuration on FE

* More FE improvements

* Fixed import

* add cancel_after_seconds to search config tests

* add cancel_after_seconds to search config tests

* Unused import removed

* fix behaviour when user clear field

* Some FE refactoring

* Fixed json prop. name

---------

Co-authored-by: Maksym Yadlovskyi <maksym.yadlovskyi@graylog.com>
2024-04-25 10:14:54 +02:00
Linus Pahl
9ba33bcec0 Only fetch event definitions in events widget, when user has required permissions (#18953)
* Only fetch event definitions in events widget, when user has required permissions.

* Only offer replay search action when user has permissions for related event definition.

* Adding changelog.

* Improve naming

* Adding tests
2024-04-10 12:18:35 +02:00
Linus Pahl
d6ebb2680e Improve reusability of event definition wizard. (#18731)
* Unify event definition type.

* Remove redundant event definition type.

* Create component for event definition form buttons.

* Make event definition form controls pluggable.

* Fixing linter hint.

* Default to first step when in security mode

* Fix duplicate in event definition form (#18722)

* register event definition export globally

- EventDefinitionsBindings, EventNotificationsBindings, FieldValueProvidersBindings

* fix types

* Fix search query being erased while typing

* fix test

* fix types

* Make initial step configurable.

* Only set URL query param `step` when necessary.

* Refactor from controls.

* Update props:

* Reimplement `onChange` in `FilterForm` to fix problem with params.

* make embryonic only constrained to FilterForm

* Fixing linter hints.

---------

Co-authored-by: Simon Huang <simon.huang@graylog.com>
Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
Co-authored-by: Ousmane Samba <ousmanesamba@gmail.com>
2024-03-21 16:12:11 +01:00
Linus Pahl
f09dcdb1f4 Implement events widget (UI) (#18637)
* Implement foundation for security widgets.

* Migrate `AddWidgetButton` to functional component.

* Make creator condition a hook.

* Add widget creator.

* Cleanup code.

* Refactor `WithDispatch` in `AddWidgetButton`.

* Create `TableHead` component.

* Make effective time range for search type execution optional.

* Display loading indicator when changing data table sort.

* Fixing world map test.

* Create type for select ref.

* Create abstraction for types from react-beautiful-dnd.

* Implement foundation for events widget.

* Create shared components for widget configuration.

* Adding more filters.

* Implement action icons

* Fixing table styles

* Add event details.

* Reformat code.

* Fixing TS errors.

* Implement owner filter.

* Implement type filter.

* Fixing pagination for evens widget.

* Fix events in aggregations.

* Always display time range info for events widget.

* Fixing event type filter.

* Do not display event definition name as link in filters overview.

* implement event widget actions.

* Disable sort for event description.

* Onl allow defining one date filter.

* Change default columns for events widget.

* Display default event definitions details for core.

* Add further event attributes.

* Display info for unknown columns

* Fixing date filter

* Hide widget query controls for widgets with fixed filters.

* Remove timestamp filter.

* Do not display execution info for widgets with fixed filters.

* Improve styling.

* Fixing linter hints

* Add missing license header

* Fixing test

* Remove feature flag

* Make attribute sort icon reusable.

* Cleanup code.

* Fixing label of selected sort.

* Add priority filter for events widget.

* Add missing import.
2024-03-15 18:49:13 +01:00
Marco Pfatschbacher
14d6fcb598 Add search "EXPLAIN" endpoint (#17992)
* Add search explain endpoint

The data tiering feature needs a way to indicate to the user
that a search request will be reaching into indices that
are stored in the warm tier.
Those requests are possibly slow and expensive, so we want
to inform the user about this fact.
This new endpoint can be queried from the UI with a regular search request,
before it is executed.
It returns which indices will be used for the search and whether
those indices are stored in the warm tier or not.
Furthermore it contains the timerange info for each index, so the
frontend can give the user suggestions on how to shorten the query so it
does not reach the warm tiered indices.

This kind of functionality fits perfectly into a more generic "explain"
endpoint.
So instead of a adding a special endpoint for just the warm tier index
range info, we decided to build a more generic version which also
contains a preview of the generated OS/ES query and a list of search
validation errors.

Example response:
```
{
  "search_id": "647f0565d060431199a12e96",
  "search": {
    "queries": {
      "a1647eb6-a064-4fe6-b459-1e4267d3f659": {
        "search_types": {
          "22249f29-f042-4bd8-b745-252b00a35891": {
            "query_string": "{\"from\":0,\"size\":0,\"query\":{\"bool\":{\"must\":[{\"bool\":{\"filter\":[{\"match_all\":{\"boost\":1.0}},{\"bool\":{\"adjust_pure_negative\":true,\"boost\":1.0}}],\"adjust_pure_negative\":true,\"boost\":1.0}},{\"range\":{\"timestamp\":{\"from\":\"2023-09-11 20:55:50.185\",\"to\":\"2024-01-18 14:49:10.185\",\"include_lower\":true,\"include_upper\":false,\"boost\":1.0}}},{\"terms\":{\"streams\":[\"63d6d52ebf9c684b3da2deb3\",\"63a5ab32e71520111ed3ce06\",\"000000000000000000000001\"],\"boost\":1.0}}],\"adjust_pure_negative\":true,\"boost\":1.0}},\"track_total_hits\":2147483647,\"aggregations\":{\"agg\":{\"filters\":{\"filters\":[{\"bool\":{\"should\":[{\"exists\":{\"field\":\"source\",\"boost\":1.0}}],\"adjust_pure_negative\":true,\"boost\":1.0}}],\"other_bucket\":true,\"other_bucket_key\":\"_other_\"},\"aggregations\":{\"agg\":{\"terms\":{\"script\":{\"source\":\"(doc.containsKey('source') && doc['source'].size() > 0\\n? doc['source'].size() > 1\\n    ? doc['source']\\n    : String.valueOf(doc['source'].value)\\n: \\\"(Empty Value)\\\")\\n\",\"lang\":\"painless\"},\"size\":10,\"min_doc_count\":1,\"shard_min_doc_count\":0,\"show_term_doc_count_error\":false,\"order\":[{\"_count\":\"desc\"},{\"_key\":\"asc\"}]}}}},\"timestamp-min\":{\"min\":{\"field\":\"timestamp\"}},\"timestamp-max\":{\"max\":{\"field\":\"timestamp\"}}}}",
            "searched_index_ranges": [
              {
                "index_name": "graylog_0",
                "begin": 0,
                "end": 0,
                "is_warm_tiered": false
              },
              {
                "index_name": "bar_1512",
                "begin": 1705589036047,
                "end": 1705589284808,
                "is_warm_tiered": false
              },
              {
                "index_name": "bar_1513",
                "begin": 0,
                "end": 0,
                "is_warm_tiered": false
              },
              {
                "index_name": "bar_warm_1511",
                "begin": 1705588785906,
                "end": 1705589035782,
                "is_warm_tiered": true
              }
            ]
          },
          "5e9a9bfe-7a97-4835-86fd-896f40b20531": {
            "query_string": "{\"from\":0,\"size\":0,\"query\":{\"bool\":{\"must\":[{\"bool\":{\"filter\":[{\"match_all\":{\"boost\":1.0}},{\"bool\":{\"adjust_pure_negative\":true,\"boost\":1.0}}],\"adjust_pure_negative\":true,\"boost\":1.0}},{\"range\":{\"timestamp\":{\"from\":\"2023-09-11 20:55:50.185\",\"to\":\"2024-01-18 14:49:10.185\",\"include_lower\":true,\"include_upper\":false,\"boost\":1.0}}},{\"terms\":{\"streams\":[\"63d6d52ebf9c684b3da2deb3\",\"63a5ab32e71520111ed3ce06\",\"000000000000000000000001\"],\"boost\":1.0}}],\"adjust_pure_negative\":true,\"boost\":1.0}},\"track_total_hits\":2147483647,\"aggregations\":{\"agg\":{\"filters\":{\"filters\":[{\"bool\":{\"should\":[{\"exists\":{\"field\":\"source\",\"boost\":1.0}}],\"adjust_pure_negative\":true,\"boost\":1.0}}],\"other_bucket\":true,\"other_bucket_key\":\"_other_\"},\"aggregations\":{\"agg\":{\"terms\":{\"script\":{\"source\":\"(doc.containsKey('source') && doc['source'].size() > 0\\n? doc['source'].size() > 1\\n    ? doc['source']\\n    : String.valueOf(doc['source'].value)\\n: \\\"(Empty Value)\\\")\\n\",\"lang\":\"painless\"},\"size\":15,\"min_doc_count\":1,\"shard_min_doc_count\":0,\"show_term_doc_count_error\":false,\"order\":[{\"_count\":\"desc\"},{\"_key\":\"asc\"}]}}}},\"timestamp-min\":{\"min\":{\"field\":\"timestamp\"}},\"timestamp-max\":{\"max\":{\"field\":\"timestamp\"}}}}",
            "searched_index_ranges": [
              {
                "index_name": "graylog_0",
                "begin": 0,
                "end": 0,
                "is_warm_tiered": false
              }
            ]
          }
        }
      }
    }
  },
  "search_errors": [
  ]
}

```

Use uniqe class names for Search API

The API generator cannot handle identical class names under the same
endpoint.

The resulting code will fail with errors like:

```
[INFO] $ /home/marco/code/graylog-project-repos/graylog2-server/graylog2-web-interface/node_modules/.bin/tsc
[INFO] target/api/Search.ts(153,11): error TS6196: 'IndexRangeResult' is declared but never used.
```

* cleanup

* add index range results to search validation response

* Add context for search explain and info for warm tier widgets

* Add test for SearchExplainContextProvider

* Only show warm tier info on dashboards

* Also call explain when overriding dashboard and after widget update

* Refetch Search explain when states update, but only for created dashboard

* Check for warm tier indices on query validation

* set status to warning if query validation contains warm indices

* Fix spelling

* Add tests

* Update copy

* fix compile error in ElasticsearchBackendTest

* fix compile error in OpenSearchBackendTest

* Extract warm tier validation logic into own components

* Only show widget info for non edit view

* Address review comments

* Remove obsolete function in bindings

* fix review findings: remove code duplication

* Add warning for event definition with Warm Tier (#18591)

---------

Co-authored-by: Anton Ebel <anton.ebel@graylog.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <laura.bergenthalgrotlueschen@graylog.com>
Co-authored-by: Laura <grotlue@users.noreply.github.com>
2024-03-15 15:10:36 +01:00
Linus Pahl
1603e45f95 Update sawmill usage, use styled-components theme as an abstraction for mantine theme. (#17410)
* Update sawmill usage.

* Update color usage in button.

* Replace content box border with box-shadow.

* Update types

* use mantine style for disabled buttons.

* Use default query input border color for query input.

* Update theme usage in components.

* Fix disabled button color.

* Implement new button colors.

* Update sawmill to 2.0.12.

* Updating tests
2024-03-04 14:26:50 +01:00
Linus Pahl
8200b36182 Replace preflight Icon component with common Icon component. (#18391)
* Replace preflight Icon component with common Icon component.

* Import icon styles.

* Remove `@fortawesome` dependency.
2024-02-27 10:17:45 +01:00
Linus Pahl
27262a9bc6 Replace font awesome with material symbol icons. (#18208)
* Replace font awesome with material symbol icons.

* Remove custom implementations of font awesome icons.

* Fix icon sizes

* Fix pagination icons.

* Remove no longer needed font awesome related code.

* Unify drag handle icon

* Use icon name type from material symbols library

* Implement brand icon.

* Fix sort icons.

* Change icon size to match previous icon size.

* Fic navigation height.

* Fixin icon spin.

* Fix icon fill.

* Cleanup icons.

* Fix brand icon color problem.

* Remove no longer needed icon props.

* Fixing thermometer icon.

* Remove no longer needed support link component.

* Replace icon stack with identical icon.

* Update icon names

* Use rounded instead of outlined icons.

* Improve widget icons.

* Fix `ExpandableList` test.

* Fix further tests

* Fix list field test.

* Adding examples.

* Update props.

* Adding title for buttons in search action menu.

* Update icon names.

* Add custom helper function for `selectEvent` clearAll.

* Fixing test
2024-02-23 09:07:15 +01:00
Dennis Oelkers
4172fb1cc5 Updating to React 18. (#18092)
* Using new render API.

* Updating `react` packages.

* Migrating `SplitButton` to Mantine.

* Allow providing `width` prop to `SplitButton`.

* Updating React testing-library to 14.x

* Using 3rd party React 18 adapter for enzyme.

* Updating test snapshot.

* Updating yarn lockfile.

* Fixing up test.

* Fixing up tests.

* Improving test.

* Improving tests.

* Improving tests.

* Improving tests.

* Improving tests.

* Improving tests.

* Improving tests.

* Suppressing act-warnings temporarily.

* Improving tests.

* Improving tests.

* Adding `disabled` prop to `SplitButton`.

* Fixing `onClick` for `SplitButton`.

* Only disable button, not menu.

* Improving tests.

* Improving tests.

* Fixing up linter hint.

---------

Co-authored-by: Linus Pahl <linus@graylog.com>
2024-02-07 11:48:16 +01:00
maxiadlovskii
1013d5f062 Add profile creation from selected types (#18027)
* Add useSelectedEntitiesData

* add test

* merge fixes and change log

* fix tsc

* add clearable select to index set form for profile

* rename var

* use cache to get selected field type data

* Returning index field types when creating/resetting field type mapping.

* changes for e2e

* fix with problem empty string profile id on editing index set

* Safe-guarding against missing types for index set.

* Return original bulk response as well.

* Fixing up retrieval of field types by index names.

* Refactoring. Change selected item collecting approach. Fixes

* add aria label

* add telemetry to profile creation from selected items

* Add close to end

* refactoring

---------

Co-authored-by: Dennis Oelkers <dennis@graylog.com>
2024-02-06 10:57:48 +01:00
Dan Torrey
e46c0bedf4 Add enterprise Search Filter support for Event Definitions (#17879)
* Add search filter support in MoreSearch and Event Definitions

Adds search filter support in Filter and Aggregation event definitions. Note that similar to the main Search page, the search filters may only be used in valid Enterprise installations.

* Fix AggregationEventProcessorTest

* feat: Add Search Filters component to the UI

* Add missing ES filters usage

* Add tests

* feat: Add filters to event preview and summary

* Add support for refreshing search filters for events

* Create separate plugin entity for search components in event definitions form.

* Remove hook from class component.

* Remove not needed import

* Complete support for refreshing saved filters

* Filter/Aggregation filters in content packs

* Consolidate search API methods

Add List<UsedSearchFilter> filters param to existing methods and adjusts existing constructors.

* feat: New shared searchfilters component to use on forms

* feat: Add filters to initial Aggregation filter config

* feat: Fix Show and Hide filter banner

* feat: Fix all failing tests

* feat: Add filters to event definition replay view

* feat: Update mocks and fix compile errors

* feat: Add extendedTimeout to failing tests

---------

Co-authored-by: Ezequiel Lopez <ezequiel.lopez@graylog.com>
Co-authored-by: Linus Pahl <linus@graylog.com>
Co-authored-by: Ezequiel Lopez <105670363+zeeklop@users.noreply.github.com>
2024-01-26 11:44:38 -03:00
maxiadlovskii
bb165a4de9 Improvements of the field type profile feature: (#17956) 2024-01-24 09:30:01 +01:00
Dennis Oelkers
c8d84e8e96 Improve test reliability in preparation of React 18. (#17990)
* Improve test reliability in preparation of React 18.

* Improving more tests.

* Updating `react-select-event`.

* Improving more tests.

* Improving test.

* Using `act` when needed.

* Migrate `connect` test to testing-library.

* Make sure enzyme types are present.
2024-01-19 14:01:05 +01:00
luk-kaminski
9d6f5d0ea5 Index profiles' mappings from profiles visible in the summary. (#17878) 2024-01-16 19:47:29 +01:00