Guhyoun Nam
784c04ea81
FEATURE: Add Mechanism to redeliver all failed webhook events ( #27609 )
...
Background:
In order to redrive failed webhook events, an operator has to go through and click on each. This PR is adding a mechanism to retry all failed events to help resolve issues quickly once the underlying failure has been resolved.
What is the change?:
Previously, we had to redeliver each webhook event. This merge is adding a 'Redeliver Failed' button next to the webhook event filter to redeliver all failed events. If there is no failed webhook events to redeliver, 'Redeliver Failed' gets disabled. If you click it, a window pops up to confirm the operator. Failed webhook events will be added to the queue and webhook event list will show the redelivering progress. Every minute, a job will be ran to go through 20 events to redeliver. Every hour, a job will cleanup the redelivering events which have been stored more than 8 hours.
2024-07-08 15:43:16 -05:00
Gabriel Grubba
f3a89620a1
FEATURE: Add WebHookEventsDailyAggregate ( #27542 )
...
* FEATURE: Add WebHookEventsDailyAggregate
Add WebHookEventsDailyAggregate model to store daily aggregates of web hook events.
Add AggregateWebHooksEvents job to aggregate web hook events daily.
Add spec for WebHookEventsDailyAggregate model.
* DEV: Update annotations for web_hook_events_daily_aggregate.rb
* DEV: Update app/jobs/scheduled/aggregate_web_hooks_events.rb
Co-authored-by: Martin Brennan <martin@discourse.org>
* DEV: Address review feedback
Solves:
- https://github.com/discourse/discourse/pull/27542#discussion_r1646961101
- https://github.com/discourse/discourse/pull/27542#discussion_r1646958890
- https://github.com/discourse/discourse/pull/27542#discussion_r1646976808
- https://github.com/discourse/discourse/pull/27542#discussion_r1646979846
- https://github.com/discourse/discourse/pull/27542#discussion_r1646981036
* A11Y: Add translation to retain_web_hook_events_aggregate_days key
* FEATURE: Purge old web hook events daily aggregate
Solves: https://github.com/discourse/discourse/pull/27542#discussion_r1646961101
* DEV: Update tests for web_hook_events_daily_aggregate
Update WebHookEventsDailyAggregate to not use save! at the end
Solves: https://github.com/discourse/discourse/pull/27542#discussion_r1646984601
* PERF: Change job query to use WebHook table instead of WebHookEvent table
* DEV: Update tests to use `fab!`
* DEV: Address code review feedback.
Add idempotency to job
Add has_many to WebHook
* DEV: add test case for job and change job query
* DEV: Change AggregateWebHooksEvents job test name
---------
Co-authored-by: Martin Brennan <martin@discourse.org>
2024-06-25 13:56:47 -03:00
Krzysztof Kotlarek
c468110929
FEATURE: granular webhooks ( #23070 )
...
Before this change, webhooks could be only configured for specific groups like for example, all topic events.
We would like to have more granular control like for example topic_created or topic_destroyed.
Test are failing because plugins changed has to be merged as well:
discourse/discourse-assign#498
discourse/discourse-solved#248
discourse/discourse-topic-voting#159
2023-10-09 03:35:31 +00:00
David Taylor
05cd39d4d9
FIX: Do not log 'personal message view' when sending webhook ( #21375 )
...
Similar to the issue resolved by 3b55de90e5
2023-05-04 10:15:31 +01:00
David Taylor
5a003715d3
DEV: Apply syntax_tree formatting to `app/*`
2023-01-09 14:14:59 +00:00
David Taylor
68b4fe4cf8
SECURITY: Expand and improve SSRF Protections ( #18815 )
...
See https://github.com/discourse/discourse/security/advisories/GHSA-rcc5-28r3-23rr
Co-authored-by: OsamaSayegh <asooomaasoooma90@gmail.com>
Co-authored-by: Daniel Waterworth <me@danielwaterworth.com>
2022-11-01 16:33:17 +00:00
Jeff Wong
75e159f0ed
FEATURE: add support for like webhooks ( #12917 )
...
* FEATURE: add support for like webhooks
Add support for like webhooks. Webhook events only send on user membership
in the defined webhook group filters.
This also fixes group webhook events, as before this was never used, and
the logic was not correct.
2021-04-30 17:08:38 -07:00
David Taylor
5a4d3e7576
FIX: Ensure UserField changes are reflected instantly in webhooks ( #12291 )
...
The Guardian object memoizes a list of allowed user fields. Normally this is fine because Guardian objects only persist for a single request. However, the WebHook class was memoizing a guardian at the class level. This meant that an app restart was required for changes to be reflected. Plus, the Guardian was being shared across all sites in a multisite instance.
Initializing a guardian is cheap, so we can manage without memoization here.
2021-03-04 21:41:57 +00:00
Roman Rizzi
3259ea60a6
DEV: Remove code deprecated by the new Reviewable API ( #8023 )
...
* Remove flag hooks and endpoints
* Remove #reject_bulk for users
* Remove code for quued_posts_controller
2019-08-26 10:33:26 -03:00
Robin Ward
ecebff5060
Only show deprecation warning if the webhook is active
2019-06-10 16:23:12 -04:00
Sam Saffron
30990006a9
DEV: enable frozen string literal on all files
...
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.
Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
Robin Ward
b58867b6e9
FEATURE: New 'Reviewable' model to make reviewable items generic
...
Includes support for flags, reviewable users and queued posts, with REST API
backwards compatibility.
Co-Authored-By: romanrizzi <romanalejandro@gmail.com>
Co-Authored-By: jjaffeux <j.jaffeux@gmail.com>
2019-03-28 12:45:10 -04:00
Maja Komel
34730a0b16
UX: show if webhook is disabled ( #7217 )
...
+ show in staff logs when webhook is created/updated/destroyed
2019-03-21 16:13:09 +01:00
Vinoth Kannan
167d85c21f
FIX: post & topic destroyed hooks not triggering with tag filter
2019-03-06 22:52:54 +05:30
Robin Ward
95f263995d
FIX: Previous annotations were broken
2019-01-11 14:30:19 -05:00
Robin Ward
a3839495e0
Update annotations
2019-01-11 12:19:43 -05:00
Vinoth Kannan
57ba4b7cb2
DEV: remove unnecessary safe nav operators ( #6730 )
2018-12-05 20:07:18 +05:30
Vinoth Kannan
fb78414229
Add missing safe navigation operator
2018-12-05 16:23:43 +05:30
Vinoth Kannan
d33d031742
FEATURE: Filter topic and post web hook events by tags ( #6726 )
...
* FEATURE: Filter topic and post web hook events by tags
* Add a spec test with unmatched tags
2018-12-05 14:44:06 +05:30
Vinoth Kannan
8430ea927e
FIX: Generate webhook payloads before destroy events ( #6325 )
2018-10-05 16:53:59 +08:00
Guo Xiang Tan
ad5082d969
Make rubocop happy again.
2018-06-07 13:28:18 +08:00
Guo Xiang Tan
b3860c82da
FIX: Don't enqueue web hooks inside a deferred queue.
...
* The deferred queue is meant for short lived jobs
and does not guarantee execution. We need to ensure
that web hooks are always run.
2018-05-24 15:03:17 +08:00
Guo Xiang Tan
8a1aab4e8a
PERF: Select distinct active web hooks at the db level.
2018-05-24 14:56:40 +08:00
Guo Xiang Tan
ae3a7ca08d
Fix unexpected return error.
2018-05-21 22:28:44 +08:00
Guo Xiang Tan
bf84037f79
FIX: Payload for webhooks should be current as of the time the event was triggered.
...
https://meta.discourse.org/t/group-category-tag-user-deleted-webhooks-not-firing/87752
2018-05-21 17:29:58 +08:00
Guo Xiang Tan
226ace1643
Update annotations.
2018-02-20 14:28:58 +08:00
Guo Xiang Tan
9644569a28
FIX: Wildcard webhooks could send duplicated events.
2018-01-03 17:00:44 +08:00
Arpit Jalan
3c56c9b637
FIX: strip webhook payload_url
2017-12-11 13:48:11 +05:30
Arpit Jalan
daeb7694bc
update annotations
2017-12-05 21:03:20 +05:30
Sam
c68999e128
annotate models
...
WARNING annotators out there, be to run bin/annotate on RAILS_ENV=test on a clean db
2017-08-16 10:38:11 -04:00
Guo Xiang Tan
5012d46cbd
Add rubocop to our build. ( #5004 )
2017-07-28 10:20:09 +09:00
Guo Xiang Tan
66a7b0c30b
FIX: Add web hook `DiscourseEvent`s in initializer.
2017-04-12 11:55:49 +08:00
Guo Xiang Tan
bf78c228f4
FIX: User created web hook being enqueued before record has been saved.
...
* Improve web hook tests as well.
2017-03-16 14:44:09 +08:00
Erick Guan
cfbfea0596
FEATURE: Allow easier customization to the web hook event serialization.
2017-03-16 10:09:05 +08:00
Guo Xiang Tan
69330f8bc2
Add user_updated event to webhooks.
2016-12-13 11:26:26 +08:00
Guo Xiang Tan
e51574bea0
FIX: No need to fetch the model.
2016-12-02 17:17:03 +08:00
Erick Guan
8c8549b27b
FIX: missing post and topic edited webhooks
2016-11-30 20:49:45 +01:00
Arpit Jalan
e03c1e4cdf
annotate models
2016-10-31 15:02:11 +05:30
Erick Guan
c463cf63d4
FEATURE: Webhook for user creation and approval
2016-09-19 10:12:55 +08:00
Erick Guan
7423140825
FIX: show event name in webhook headers
2016-09-12 17:48:54 +08:00
Erick Guan
9ce61b4586
FEATURE: Webhooks.
2016-09-05 18:44:00 +08:00