Skip to content

[ResponseOps] [Reporting] Scheduled reports list table#224086

Closed
js-jankisalvi wants to merge 167 commits intoelastic:scheduled-reports-uifrom
js-jankisalvi:scheduled-reports-list-ui
Closed

[ResponseOps] [Reporting] Scheduled reports list table#224086
js-jankisalvi wants to merge 167 commits intoelastic:scheduled-reports-uifrom
js-jankisalvi:scheduled-reports-list-ui

Conversation

@js-jankisalvi
Copy link
Copy Markdown
Contributor

@js-jankisalvi js-jankisalvi commented Jun 16, 2025

Summary

Resolves #216322

This PR includes work of scheduled-reports feature branch hence includes more code which is already being reviewed in #221028.

Please focus on x-pack/platform/plugins/private/reporting/public/ folder for review of UI changes.

Checklist

Check the PR satisfies following conditions.

What to test

  • Verify tabs
  • Verify exports table shows list of all reports
  • Verify schedules table shows list of scheduled report
  • Verify you can disable scheduled report
  • Verify pagination in both tables

ersin-erdal and others added 30 commits April 9, 2025 18:38
…:ersin-erdal/kibana into 216308-support-rrule-for-task-scheduling
… src/core/server/integration_tests/ci_checks'
…:ersin-erdal/kibana into 216308-support-rrule-for-task-scheduling
…:ersin-erdal/kibana into 216308-support-rrule-for-task-scheduling
… src/core/server/integration_tests/ci_checks'
…:ersin-erdal/kibana into 216308-support-rrule-for-task-scheduling
ymao1 and others added 19 commits May 30, 2025 16:09
…tic#222824)

## Summary

Fixes elastic#221882 

This is a possible take of the enhancement request in elastic#221882.
In this scenario the chart automatically enters the `alwaysShowSign`
mode when rendering the delta difference with the Primary Metric in the
Secondary badge.

Some notes:
* The user has no control over it.
* The behaviour is disabled automatically when moving into `Static
value` mode, while it can be replicated using the `custom format` in the
`Value format` control
* The affected formats are `number`, `bytes`, `bits`, `percentage` in
any possible configuration (i.e. also compact mode)
* I've noticed that some formats change a bit when the sign is displayed
(ie Currency goes from `$ xx.xxx` to `+ xx.xx $`)

**Compare to Primary Metric**
| Default | Number | Number (compact) | Custom Format (i.e. Currency) |
Percentage | Bytes | Bits |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| <img width="819" alt="Screenshot 2025-06-05 at 14 41 09"
src="https://github.com/user-attachments/assets/3e836e07-a5eb-479a-96af-463069cabc35"
/> | <img width="473" alt="Screenshot 2025-06-05 at 15 40 37"
src="https://github.com/user-attachments/assets/097548c5-4c68-4041-89a7-a46af228fd7a"
/> | <img width="472" alt="Screenshot 2025-06-05 at 15 41 29"
src="https://github.com/user-attachments/assets/52943f01-c302-4631-8c2c-55fc60d91d99"
/> | <img width="480" alt="Screenshot 2025-06-05 at 15 42 33"
src="https://github.com/user-attachments/assets/b2dbbaec-4c11-4e3f-80ac-20f810511bf7"
/> | <img width="472" alt="Screenshot 2025-06-05 at 14 48 18"
src="https://github.com/user-attachments/assets/13a1b102-30dd-46b4-b8f4-52ade1e9eadb"
/> | <img width="478" alt="Screenshot 2025-06-05 at 15 44 11"
src="https://github.com/user-attachments/assets/e9acbb69-6535-4ee2-962a-f1e5446b93dd"
/> | <img width="477" alt="Screenshot 2025-06-05 at 14 47 54"
src="https://github.com/user-attachments/assets/c6bb99af-5f08-4d0d-b302-e8fbe42a764b"
/> |

When using Static value:

| Default | Number | Number (compact) | Custom format (i.e. Currency) |
Percentage | Bytes | Bits |
| ---- | --- | ---- | ---- | ---- | ---- | ---- | 
| <img width="471" alt="Screenshot 2025-06-05 at 14 56 17"
src="https://github.com/user-attachments/assets/6135823f-b644-48aa-b236-076bcc0692ff"
/> | <img width="473" alt="Screenshot 2025-06-05 at 15 49 51"
src="https://github.com/user-attachments/assets/afe492ad-c908-45ee-b831-2108553c15ce"
/> | <img width="477" alt="Screenshot 2025-06-05 at 15 46 24"
src="https://github.com/user-attachments/assets/29eaccf5-0be8-46a6-9e87-3b6f99912e26"
/> | <img width="472" alt="Screenshot 2025-06-05 at 15 52 27"
src="https://github.com/user-attachments/assets/3867b435-a1e2-4cb3-9b4d-687a33f4ff78"
/> | <img width="482" alt="Screenshot 2025-06-05 at 15 46 40"
src="https://github.com/user-attachments/assets/0e1521b3-6ed3-45e4-a913-44e4f99f027a"
/> | <img width="480" alt="Screenshot 2025-06-05 at 15 45 50"
src="https://github.com/user-attachments/assets/0343fd8c-6d22-46bb-9676-f27cad4ca9ee"
/> | <img width="473" alt="Screenshot 2025-06-05 at 15 46 05"
src="https://github.com/user-attachments/assets/072e948d-71ce-48f0-862a-6932c5c510fa"
/> |

Extra bits:
* I did notice that when rendering in Icon mode only and the secondary
raw value is `null` an empty badge was rendered. Now it should not.
* When running Jest tests a warning about a missing `act` wrapping was
shown, which was due to the `jest.advanceTimers` call. Now it is
properly wrapped
* When testing with a time shift it is very likely to encounter into
elastic#221886 and have all badges set
to `NA`. In such case close the inline editor and hit `Refresh` again to
see fresh values.

### Checklist

- [x] [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
## Bulk operations support `gap_range`

[issue](elastic#220772)
### Bug   
If a user has 100 rules in total and 20 of them have gaps:
- They click "Show only with gaps" — the UI shows just those 20.
- They hit "Select all" — it says 20 rules are selected.
- But when they perform a bulk action, it ends up applying to **all 100
rules**, not just the 20 with gaps.

This happens because the bulk action uses a query that doesn't include
gap info, so it ends up targeting everything.

### Fix  
We now support passing `gaps_range_start` and `gaps_range_end` along
with the bulk action.

On the API side:
- If a query is sent, we use the gap range to find the actual list of
rule IDs with gaps.
- Then we apply the bulk action only to those rules.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
…e, for air-gapped environment. (elastic#220510)

**Resolves: elastic#181808**

## Summary

I am fixing the issue of the Rules and Alerts tabs in Security, as well
as the Fleet tab in Management, that gets stalled in air-gapped
environment. I am doing so by enforcing the request to be sent to the
API even when offline.

### Historical context:
During investigation of the original issue elastic#181808 I proved that Kibana
doesn't try to reach to EPR in the air-gapped environment (that is, with
the `xpack.fleet.isAirGapped: true` flag, and WIFI being turned ON). I
commented this
[here](elastic#181808 (comment))
and we closed the issue. However, @111andre111 reached out to us saying
that this wasn't enough, as the real issue remains, that is, Kibana
doesn't behave properly when:
- `xpack.fleet.isAirGapped` flag is set to `true`
- there is no Internet connection (WIFI off or cable physically
disconnected)

That's why we reopened the ticket and I restarted the investigation. 
My first observation was that when I turn off the WIFI, I cannot see
requests to the API being sent in the Network tab in Dev Tools, most
importantly to the `_bootstrap` endpoint at the first entrance to the
Solution app, and other endpoints later. I searched that the browser
discovers being offline and suppresses such calls. When WIFI is back ON,
then the browser sends these requests. That was exactly what I saw in
the Network tab.
I searched and found an option to force browser to always send the
request, regardless of what it thinks about connectivity. Such option,
`networkMode: 'always'`, can be added to TanStackQuery client.

I started working on adding this option to occurences of `useQuery` and
`useMutation`, and immediately sounded success, as the behavior was
correct. However, @xcrzx rigthfully pointed out, that it would be much
better to only add it to one place, that is the configuration of the
QueryClient. I did it, and to my surprise, the problem returned.
I noticed that adding this option to the QueryClient in Fleet solved the
problem in the Fleet tab immediately, but adding this option to the
`SecuritySolutionQueryClient` does nothing, like it was completely
ignored.
I searched different options and spent two more days debugging the
problem, but then, when paired up again with Dmitrii, he found that the
`SecuritySolutionQueryClient` is overshadowed by some other QueryClient
present in the stack of components much below, the `CasesContext`. That
discovery enabled me to add this new setting to the other QueryClient,
and this fixes the issue. However, we think that it will be worth
investigating why we need this second context, as the situation when one
QueryClient overshadows another one, smells badly and may be a source of
other issues as well (I will reach out to the team responsible for the
CasesContext and ask if we can unify this somehow).

## BEFORE


https://github.com/user-attachments/assets/662dab73-b1bd-4d6b-9d15-c35efab679c6

## AFTER


https://github.com/user-attachments/assets/b905bde0-150d-478d-9734-9003fb5bcf66



### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] [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)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
…tic#222303)

Closes
[elastic#233](elastic/obs-ai-team#233)
## Summary

Update `retrieve_elastic_doc` prompt to generate the query always in
English, as the documentation is available only in English.

Co-authored-by: Viduni Wickramarachchi <viduni.wickramarachchi@elastic.co>
Co-authored-by: Søren Louv-Jansen <soren.louv@elastic.co>
…sualization (elastic#222823)

## Summary

Fix elastic#203977 

When the user clicked 'Edit visualization in Lens' from an aggregation
visualization, the button to return to the aggregation based
visualization editor showed the wrong app to return to (Dashboard). This
PR fixes the button text to return to the aggregation based
visualization.

Before: 
![Kapture 2025-06-05 at 16 42
22](https://github.com/user-attachments/assets/6bca154a-b550-41f6-ac59-08f36fe27545)

After: 
![Kapture 2025-06-05 at 16 33
39](https://github.com/user-attachments/assets/d272e9c2-794e-487f-a322-17571b7b13d5)

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] [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
…ic#223001)

Closes elastic#220512

This PR replaces deprecated `EuiFilterSelectItem` component with
`EuiSelectable` in ILM and Index Management plugins.
@js-jankisalvi js-jankisalvi self-assigned this Jun 16, 2025
@js-jankisalvi js-jankisalvi added the Team:ResponseOps Platform ResponseOps team (formerly the Cases and Alerting teams) t// label Jun 16, 2025
@elasticmachine
Copy link
Copy Markdown
Contributor

elasticmachine commented Jun 16, 2025

🤖 Jobs for this PR can be triggered through checkboxes. 🚧

ℹ️ To trigger the CI, please tick the checkbox below 👇

  • Click to trigger kibana-pull-request for this PR!
  • Click to trigger kibana-deploy-project-from-pr for this PR!
  • Click to trigger kibana-deploy-cloud-from-pr for this PR!

@elasticmachine
Copy link
Copy Markdown
Contributor

elasticmachine commented Jun 17, 2025

⏳ Build in-progress, with failures

Failed CI Steps

History

cc @js-jankisalvi

@js-jankisalvi
Copy link
Copy Markdown
Contributor Author

Opened PR: #224354

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Team:ResponseOps Platform ResponseOps team (formerly the Cases and Alerting teams) t//

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants