Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
de0dc36
feat(sdks): add webhook types and endpoints
squelix Aug 5, 2026
a147518
test(sdks): cover all six webhook endpoints
squelix Aug 5, 2026
9b31472
feat(server): add webhooks table and repository
squelix Aug 5, 2026
4492c8c
test(server): make transposed webhook bool binds detectable
squelix Aug 5, 2026
3bbbff6
test(server): catch every transposition of the webhook bool binds
squelix Aug 5, 2026
aa69691
feat(server): add webhook event bus and dispatcher
squelix Aug 5, 2026
113e33f
fix(server): subscribe before spawning the webhook dispatcher
squelix Aug 5, 2026
fa27d1f
feat(server): webhook payload variables and handlebars templates
squelix Aug 5, 2026
e5f2647
fix(server): webhook template escaping, season parity and public_url …
squelix Aug 5, 2026
91878a1
feat(server): webhook delivery with generic and discord destinations
squelix Aug 5, 2026
f0adfbc
refactor(server): discord webhook options become template variables
squelix Aug 5, 2026
401bf99
fix(server): redact webhook urls in logs, bound deliveries per hook, …
squelix Aug 5, 2026
220a7d8
fix(server): clamp Retry-After before converting, and honour it only …
squelix Aug 5, 2026
a0a89a3
feat(server): webhook admin crud api
squelix Aug 5, 2026
eb16c97
fix(server): stop echoing webhook responses, block redirects, bound t…
squelix Aug 5, 2026
d0f29f1
feat(server): emit webhook events across server
squelix Aug 5, 2026
cd01a88
fix(server): make the webhook wants probe self-healing and stop-event…
squelix Aug 5, 2026
1eeb02d
feat(dashboard): webhooks management page
squelix Aug 5, 2026
8523853
fix(dashboard): surface webhook mutation failures and normalise embed…
squelix Aug 5, 2026
067c32f
fix(dashboard): clear the webhook error banner on save and keep test …
squelix Aug 5, 2026
cbb14cc
test(server): webhook end-to-end integration tests
squelix Aug 5, 2026
0314424
test(server): unpin the test suite from the torrent peer port range
squelix Aug 5, 2026
6d8cb42
fix(webhooks): apply the final whole-branch review
squelix Aug 5, 2026
c66d242
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 5, 2026
0a63184
docs(webhooks): trim comments to the constraints that matter
squelix Aug 5, 2026
cfe9b24
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 6, 2026
1f570e6
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 7, 2026
d8243df
Merge remote-tracking branch 'upstream/main' into feat/webhooks
squelix Aug 7, 2026
a863a8d
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 7, 2026
9872a75
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 7, 2026
1f4df0a
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 7, 2026
601c360
fix(webhooks): adapt the enrich_item fixture to the removed series_im…
squelix Aug 8, 2026
882d23e
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 8, 2026
af46d70
refactor(utils): make the retry backoff curve a shared function
squelix Aug 9, 2026
32248e7
refactor(sdks): derive EnumIter on NotificationType
squelix Aug 9, 2026
520dbec
fix(webhooks): harden template validation, event pacing and reload re…
squelix Aug 9, 2026
e685d3d
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 9, 2026
abbc132
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 10, 2026
a398f38
fix(db): restore collection child counts so empty collections stay hi…
squelix Aug 10, 2026
179bec4
Merge remote-tracking branch 'upstream/main' into feat/webhooks
squelix Aug 10, 2026
fa8bbb5
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 10, 2026
bb25141
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 11, 2026
489499f
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 12, 2026
0ad8b8c
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 14, 2026
9e249b8
Merge branch 'lostb1t:main' into feat/webhooks
squelix Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions crates/remux-dashboard/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ js-sys = "0.3"
serde_json = "1"
base64 = "0.22"
urlencoding = "2.1.3"
# `IntoEnumIterator`, for the `EnumIter` the SDK derives on `NotificationType`.
strum = "0.27"

[profile.release]
opt-level = "z"
Expand Down
7 changes: 7 additions & 0 deletions crates/remux-dashboard/src/layout.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ pub fn DashboardLayout() -> Element {
Route::SettingsBrandingRoute => "Branding",
Route::SettingsIntroRoute => "Intro",
Route::SettingsRemuxdbRoute => "Remuxdb",
Route::SettingsWebhooksRoute => "Webhooks",
Route::AccessUsersRoute => "Users",
Route::AccessApiKeysRoute => "API Keys",
Route::TasksRoute => "Tasks",
Expand Down Expand Up @@ -198,6 +199,7 @@ pub fn DashboardLayout() -> Element {
| Route::SettingsBrandingRoute
| Route::SettingsIntroRoute
| Route::SettingsRemuxdbRoute
| Route::SettingsWebhooksRoute
),
NavSubItem {
label: "General",
Expand Down Expand Up @@ -234,6 +236,11 @@ pub fn DashboardLayout() -> Element {
active: route == Route::SettingsBrandingRoute,
on_click: move |_| { navigator().push(Route::SettingsBrandingRoute); sidebar_open.set(false); },
}
NavSubItem {
label: "Webhooks",
active: route == Route::SettingsWebhooksRoute,
on_click: move |_| { navigator().push(Route::SettingsWebhooksRoute); sidebar_open.set(false); },
}
}

SidebarGroup {
Expand Down
2 changes: 2 additions & 0 deletions crates/remux-dashboard/src/pages/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ pub mod iptv;
pub mod settings;
pub mod streams;
pub mod users;
pub mod webhooks;

pub use addons::AddonsPage;
pub use api_keys::ApiKeysPage;
Expand All @@ -22,3 +23,4 @@ pub use settings::{
};
pub use streams::StreamGroupsCard;
pub use users::UsersPage;
pub use webhooks::WebhooksPage;
Loading
Loading