Stanko K.R.
34222b9717
Add missing actions
2025-09-16 20:23:50 +02:00
Stanko K.R.
b49e8d2d34
Remove URL field from edit form
2025-09-16 20:18:35 +02:00
Jason Zimdars
2e9273c6ab
Improve active state
2025-09-16 20:08:06 +02:00
Jason Zimdars
784d6cf690
Don't need to navigate this list
...
I doubt most collections will ever have more than a handul
2025-09-16 20:08:06 +02:00
Jason Zimdars
daee271940
Style show view
2025-09-16 20:08:06 +02:00
Jason Zimdars
a5b4c88d27
Style web hooks forms and list WIP
2025-09-16 20:08:06 +02:00
Stanko K.R.
ce1d6469e7
Rename methods for clarity
2025-09-16 20:08:06 +02:00
Stanko K.R.
63e64a060d
Use HTML5 validation for the URL
2025-09-16 20:08:06 +02:00
Stanko K.R.
5b3089e11e
Change the icon if there are webhooks on a collection
2025-09-16 20:08:06 +02:00
Stanko K.R.
dd3063b01d
Simplify delinquency tracking
2025-09-16 20:08:03 +02:00
Stanko K.R.
02a421675f
Scope Webhooks to Collections
2025-09-16 20:07:25 +02:00
Stanko K.R.
25b2daad93
Limit access to webhooks to admins
2025-09-16 20:04:20 +02:00
Stanko K.R.
1d192c9d42
Ignore low-volume webhooks for delinquency checks
2025-09-16 20:04:20 +02:00
Stanko K.R.
fee25a49ea
Periodically cleanup deliveries
2025-09-16 20:04:20 +02:00
Stanko K.R.
9d77b17b8c
Remove encryption
2025-09-16 20:04:20 +02:00
Stanko K.R.
d7db973397
Use the same timestamp from the body in the header
...
Else replay attack prevention doesn't work
2025-09-16 20:04:20 +02:00
Stanko K.R.
df87ee8b35
Rename private IP ranges to disallowed IP ranges
2025-09-16 20:04:20 +02:00
Stanko K.R.
b8317ce88d
Fix indentation
2025-09-16 20:04:20 +02:00
Stanko K.R.
5e4d15d802
Remove concurrency limit
...
It won't be useful in practice for now, and we can always put it back in if the need arises
2025-09-16 20:04:20 +02:00
Stanko K.R.
1b09a39b1a
Adhere to the redirect and params sanitization convention
2025-09-16 20:04:20 +02:00
Stanko K.R.
2fc9215b1d
Add support for Basecamp, Campfire & Slack webhooks
2025-09-16 20:04:20 +02:00
Stanko K.R.
4879995013
Serialize events
2025-09-16 20:04:20 +02:00
Stanko K.R.
0bdbc5f5e8
Add abuse prevention
2025-09-16 20:04:18 +02:00
Stanko K.R.
4da69fb69f
Move reactivation out of edit
2025-09-16 20:03:57 +02:00
Stanko K.R.
5c6cad057f
Extract triggering logic into a concern
2025-09-16 20:03:57 +02:00
Stanko K.R.
9d717239e7
Dispatch Webhooks on event creation
2025-09-16 20:03:57 +02:00
Stanko K.R.
1930067e08
Allow Webhooks to be disabled
2025-09-16 20:03:57 +02:00
Stanko K.R.
9cfd1e43af
Enable subscribing to specific actions
2025-09-16 20:03:57 +02:00
Stanko K.R.
a515ea3b1f
Create webhooks
2025-09-16 20:03:55 +02:00
Jorge Manrubia
7750b2e776
Merge pull request #1117 from basecamp/bundles-fixes
...
Fix problem where we can generate overlapping bundles due to flushing
2025-09-16 12:32:04 +02:00
Jorge Manrubia
a6eb928688
Fix: update ends_at when flushing bundles
...
If not, it can happen that the bundlers remains in a delivered state
even when it is not covering its window anymore because it has been delivered.
2025-09-16 12:10:06 +02:00
Stanko Krtalić
0e2c7f7d4d
Escape HTML everywhere where html_safe is used ( #1114 )
...
* Escape HTML everywhere where html_safe is used
* Mark search results as HTML safe at the attribute
2025-09-16 11:52:15 +02:00
Jorge Manrubia
97506c9a6c
Remove trace
2025-09-16 11:22:44 +02:00
Jorge Manrubia
09325403e5
Add missing test (we were only testing this logic via the bundle test)
2025-09-16 11:22:14 +02:00
Mike Dalessio
d5a4239d19
Rename the queenbee_id and signal_user_id columns
...
to be more generic for the open-source release.
Find the signal account via Account#external_account
Find the signal user via User#external_user
2025-09-15 13:57:53 -04:00
Andy Smith
60e515e462
Merge pull request #1098 from basecamp/collapsible-nav-sections
...
Collapsible nav sections
2025-09-15 12:54:21 -05:00
Jorge Manrubia
48f7f914dc
Fix: the system to filter at the current view was broken after moving menu to turbo frame
...
https://fizzy.37signals.com/5986089/cards/1723
2025-09-15 17:07:09 +02:00
Jorge Manrubia
2e4138b585
Tie etag to sessions
...
So that we don't get CSRF token issues if sharing sessions in the same browser
2025-09-15 16:31:01 +02:00
Jorge Manrubia
3d8437bd5f
Truncate summaries to keep within API limits
...
https://fizzy.37signals.com/5986089/cards/1739
2025-09-15 16:14:29 +02:00
Jorge Manrubia
0e3d25707c
Debug the overlapping bundle
2025-09-15 14:01:57 +02:00
Mike Dalessio
2630e4bd74
Extract 37id and QB controllers, models, and tests
2025-09-13 16:03:02 -04:00
Mike Dalessio
e7dcefb25b
Extract SignalUser and SignalAccount, and QB routes
2025-09-13 16:03:02 -04:00
Mike Dalessio
8f39c015ea
Tests now pass with local authentication
...
This is the first step of a multi-step SaaS engine extraction.
Looking ahead to an open source release, we need to make sure that
local authentication is treated as an "official" option, and not just
a hack I added for Kevin to do load testing outside our DC. So this PR
gets to green, and adds a CI step in "local authentication" mode.
This all probably feels a little hacky to you, Reader, but the goal of
this change is to ease the next step, which will be extracting the
37id and Queenbee integrations into a proprietary "SaaS mode" engine.
In service of that goal, this commit simply wraps all of the dependent
code and tests with a conditional check on
`config.x.local_authentication`.
2025-09-13 15:21:00 -04:00
Jason Zimdars
154c1a8a15
This was a debug value
2025-09-12 18:09:52 -05:00
Jason Zimdars
25a6a63952
Give it a little more width
2025-09-12 17:28:08 -05:00
Jason Zimdars
36c3571848
Fix spacing, simplify layout
2025-09-12 16:08:24 -05:00
Jason Zimdars
f0a2d50195
Move to constant, whitespace
2025-09-12 15:33:09 -05:00
Jason Zimdars
24d4bd2551
Limit to one row
2025-09-12 14:32:42 -05:00
Jason Zimdars
e717875dfc
Fix button style regression
2025-09-12 13:57:33 -05:00
Andy Smith
cab6992555
Merge branch 'main' into collapsible-nav-sections
...
* main: (32 commits)
Fix VCR fixtures
Format
Touch user on modification to invalidate cache
Fix add card not working in the cards screen
Submit and refresh results as you type terms
Fix: When expanding filters, submitting filters should keep the filters expanded
Invalidate cache when filter changes
Switch to gpt-5-chat
Reorded method and remove unnecessary param
Add migration to convert accesses
Handle filter toggles with JS
Prevent glitch where you see the filter bar expanded when you clear it
Remove unused templates
Fix: all collections link not working after moving to turbo frame
Restore cache I deleted by mistake
Speed up filter expansion with turbo stream
Fix: filtering collections not working after moving menu to turbo frame
Respect params when loading the menu or they won't be reflected!
Add HTTP cache for the menu
Load main menu lazily with a turbo frame
...
2025-09-12 12:53:44 -05:00