Maxime Beauchemin
4dd1e80f4c
feat: Add "Trigger Now" functionality for Alerts & Reports
...
Add manual execution capability to Alerts & Reports CRUD interface with immediate trigger functionality.
- Add `/api/v1/report/{id}/execute` REST endpoint with proper RBAC
- Create `ExecuteReportScheduleNowCommand` following existing Command patterns
- Use `security_manager.raise_for_ownership()` for consistent permission checking
- Reuse existing `AsyncExecuteReportScheduleCommand` via Celery for execution
- Add `ReportScheduleExecuteResponseSchema` for structured API responses
- Add `ReportScheduleCeleryNotConfiguredError` for helpful Celery setup guidance
- Add "Trigger Now" (⚡ ) button to AlertReportList actions column
- Create `useExecuteReportSchedule` hook for API integration
- Implement per-button loading states with `executingIds` Set tracking
- Add success/error toast notifications with clear messaging
- Gate feature behind existing edit permissions (`allowEdit`)
- Add 5 comprehensive backend tests covering success, 404, 403, Celery errors, and feature disabled
- Detect Celery backend configuration issues with helpful error messages
- All tests passing with proper mocking and security validation
- One-click manual execution from CRUD list view
- Smart loading states preventing double-clicks
- Professional "Trigger Now" terminology throughout
- Proper error handling for missing Celery backend
- Maintains all existing security and permission patterns
Resolves common user need for immediate alert/report execution without waiting for scheduled cron jobs.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-21 11:29:59 -07:00
Hugh A. Miles II
966e231f94
feat: Add Dashboard Filter Support for Alert Reports ( #32196 )
...
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
Co-authored-by: Hugh A Miles II <hugh@Mac.home >
2025-09-16 10:52:28 -04:00
Maxime Beauchemin
cb27d5fe8d
chore: proper current_app.config proxy usage ( #34345 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-31 19:27:42 -07:00
Maxime Beauchemin
c42be77c25
feat(i18n): load language pack asynchronously ( #34119 )
2025-07-14 10:59:29 -07:00
Pat Buxton
2d26af25c1
feat: Python 3.12 support ( #33434 )
2025-06-02 10:00:37 -07:00
Vitor Avila
d2e0e2b79c
fix(Slack): Fix Slack recipients migration to V2 ( #32336 )
2025-03-06 08:52:15 -03:00
Evan Rusackas
90651dfe3e
fix(dev/ci): pre-commit fixes galore ( #32352 )
2025-02-24 11:26:45 -07:00
Ville Brofeldt
7482b20f7b
chore: replace selenium user with fixed user ( #31844 )
2025-01-22 12:46:06 -08:00
Vitor Avila
754ccd0448
feat: Mutate SQL query executed by alerts ( #31840 )
2025-01-15 00:43:40 -03:00
Maxime Beauchemin
e51b95ffa8
chore: enforce more ruff rules ( #31447 )
...
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
2024-12-18 17:41:34 -08:00
Beto Dealmeida
d6a82f7852
feat: fine-grain chart data telemetry ( #31273 )
2024-12-10 13:09:39 -05:00
Steven Liu
29e3f4bcc4
feat: allow exporting all tabs to a single PDF in report ( #30694 )
2024-11-03 17:39:09 -08:00
Elizabeth Thompson
4d5f70c694
chore: add link to Superset when report error ( #30576 )
2024-10-21 15:40:20 -07:00
Maxime Beauchemin
a849c29288
chore: enable lint PT009 'use regular assert over self.assert.*' ( #30521 )
2024-10-07 13:17:27 -07:00
Jack
2fda221b7c
feat(alert/reports): adding logic to handle downstream reports when tab is deleted from dashboard ( #29333 )
2024-08-23 15:26:26 -05:00
Elizabeth Thompson
57e8cd2ba2
fix: pass slack recipients correctly ( #29721 )
2024-08-02 10:42:40 -07:00
Jack
d21d7591c0
feat(alerts): enable tab selection for dashboard alerts/reports ( #29096 )
2024-07-30 16:25:19 -06:00
nsivarajan
27dde2a811
feat(alert/report): Added optional CC and BCC fields for email notifi… ( #29088 )
...
Co-authored-by: Sivarajan Narayanan <sivarajannarayanan@Sivarajans-MacBook-Pro.local >
Co-authored-by: Sivarajan Narayanan <narayanan_sivarajan@apple.com >
2024-07-22 19:33:47 +02:00
Elizabeth Thompson
6dbfe2aab9
feat: add slackv2 notification ( #29264 )
2024-07-17 15:14:32 -07:00
John Bodley
f9f70e3e55
chore(tests): Fix MySQL logic ( #29356 )
2024-06-25 10:20:04 -07:00
Beto Dealmeida
8e15d4807f
chore: s/MockFixture/MockerFixture/g ( #29160 )
2024-06-10 12:35:07 -04:00
Elizabeth Thompson
725375541d
fix: use channel id with new slack api for file uploads ( #28797 )
2024-06-04 15:18:29 -07:00
Elizabeth Thompson
a608bdb8d4
fix: use upload v2 for slack ( #28783 )
2024-05-30 14:10:05 -07:00
Eyal Ezer
07b2449bd7
refactor: Unify all json.(loads|dumps) usage to utils.json ( #28702 )
...
Co-authored-by: Eyal Ezer <eyal.ezer@ge.com >
2024-05-28 14:17:41 -07:00
Vitor Avila
1bf04015c6
feat(reports): Set a minimum interval for each report's execution ( #28176 )
2024-05-07 18:28:12 -07:00
Maxime Beauchemin
3ac387bb66
chore: enable ruff's isort equivalent ( #28267 )
2024-04-30 18:29:49 -07:00
Maxime Beauchemin
2d63722150
chore: set up ruff as a new linter/formatter ( #28158 )
2024-04-24 17:19:53 -07:00
John Bodley
bc65c245fe
chore(tests): Remove unnecessary/problematic app contexts ( #28159 )
2024-04-24 13:46:35 -07:00
Maxime Beauchemin
e9c0ca545f
feat: Slack Avatar integration ( #27849 )
2024-04-16 08:40:27 -07:00
Maxime Beauchemin
c225e17a75
chore: consolidate the Superset python package metadata ( #27884 )
2024-04-15 14:44:47 -07:00
Beto Dealmeida
99a1601aea
refactor: rename get_sqla_engine_with_context ( #28012 )
2024-04-12 13:31:05 -04:00
John Bodley
481a63da55
chore(tests): Remove ineffectual login ( #27149 )
2024-04-09 09:52:02 -07:00
Jack
30b497e758
feat(alerts-reports): adding pdf filetype to email and slack reports ( #27497 )
2024-03-22 17:54:30 +01:00
Vitor Avila
66bf70172f
fix(API): Updating assets via the API should preserve ownership configuration ( #27364 )
2024-03-06 16:40:41 +00:00
John Bodley
07bcfa9b5f
chore(command): Organize Commands according to SIP-92 ( #25850 )
2023-11-22 16:55:54 -03:00
John Bodley
dd58b31cc4
chore(sqlalchemy): Remove erroneous SQLAlchemy ORM session.merge operations ( #24776 )
2023-11-20 17:25:41 -08:00
Sebastian Liebscher
e585db85b6
chore: use contextlib.surpress instead of passing on error ( #24896 )
...
Co-authored-by: John Bodley <4567245+john-bodley@users.noreply.github.com >
2023-08-29 10:09:01 -06:00
John Bodley
e402c94a9f
fix: Use Celery task ETA for alert/report schedule ( #24537 )
2023-06-28 10:53:13 -07:00
Daniel Vaz Gaspar
0ddc0a6738
chore: remove marshmallow-enum dependency and bump FAB ( #24499 )
2023-06-27 08:37:43 +01:00
John Bodley
3e76736874
chore(dao): Organize DAOs according to SIP-92 ( #24331 )
...
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com >
2023-06-18 18:32:32 -07:00
John Bodley
a4d5d7c6b9
chore(pre-commit): Add pyupgrade and pycln hooks ( #24197 )
2023-06-01 12:01:10 -07:00
Ville Brofeldt
7114bba718
chore(thumbnails): change default executor to logged in user ( #22801 )
2023-05-17 20:32:20 +03:00
Daniel Vaz Gaspar
97482c57b5
chore: bump werkzeug and Flask ( #23965 )
2023-05-12 15:01:30 +01:00
EugeneTorap
4a828f57f4
chore: Update mypy and fix stubs issue ( #24033 )
2023-05-12 08:47:14 +01:00
Hugh A. Miles II
b820eb8235
chore: Update pre-commit packages ( #23173 )
2023-03-13 17:05:13 -06:00
Elizabeth Thompson
4ddf67fc14
chore: move dashboard screenshot standalone logic ( #23003 )
2023-02-15 14:35:08 -08:00
Josh Soref
02e5dcbbf2
chore(misc): Spelling ( #19678 )
...
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2023-01-25 16:35:08 -07:00
Elizabeth Thompson
c58dbf8b9c
fix: pass in slack error messages properly ( #22727 )
2023-01-17 13:30:51 -08:00
Elizabeth Thompson
7591acba54
fix: change type of slack error ( #22443 )
2023-01-06 17:50:43 -05:00
Ville Brofeldt
aa0cae9b49
feat(thumbnails): add support for user specific thumbs ( #22328 )
2022-12-14 15:02:31 +02:00