Commit d599eaa
authored
feat: Add UI support for RSS notification channels (#2441)
* feat(spanner): support intent-based RSS in storage layer and protect system channels
This change implements the storage layer requirements for the Intent-Based RSS notification architecture.
- Expose ChannelType in Subscriptions: Updated SavedSearchSubscriptionView to include ChannelType by joining with NotificationChannels in SelectOne and SelectList queries. This allows the API to return the channel type (e.g., 'rss') in subscription responses without extra lookups.
- Protect System Channels: Updated Get, Update, and Delete NotificationChannel methods to enforce that system-managed channels (like RSS) cannot be accessed or modified directly by users.
- Allow System Channels for Subscriptions: Updated createSavedSearchSubscription to allow linking to system channels during ownership checks.
- Fixed tests and lints: Resolved UUID type mismatches in backend_test.go and added ChannelType to struct literals to satisfy the exhaustruct linter.
* feat(api): implement XOR validation and enforce privacy for intent-based RSS
This change implements the server layer requirements for the Intent-Based RSS notification architecture.
- XOR Validation in CreateSubscription: Enforced that exactly one of 'channel_id' (Explicit Mode) or 'channel_type' (Implicit Mode) must be provided in CreateSubscription requests.
- Hiding RSS Channels: Ensured that system-managed RSS channels are not exposed in list responses or directly accessible via CRUD operations (returning 404).
- Hardening Create Notification Channel: Updated handler to explicitly reject manual creation of 'rss' channels, forcing users to use the intent-based subscription API.
- Updated tests to reflect the new behavior and verify validation rules.
* feat: Add UI support for RSS notification channels + tests
Move from manual RSS channel management to implicit when subscribing.1 parent 1e3f10c commit d599eaa
16 files changed
Lines changed: 405 additions & 57 deletions
File tree
- e2e/tests
- notification-channels.spec.ts-snapshots
- frontend/src/static/js
- api
- components
- test
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
64 | 63 | | |
65 | 64 | | |
66 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
| 197 | + | |
| 198 | + | |
197 | 199 | | |
198 | 200 | | |
199 | 201 | | |
| |||
295 | 297 | | |
296 | 298 | | |
297 | 299 | | |
| 300 | + | |
298 | 301 | | |
| 302 | + | |
299 | 303 | | |
300 | 304 | | |
301 | 305 | | |
302 | 306 | | |
303 | 307 | | |
304 | 308 | | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
305 | 313 | | |
306 | 314 | | |
307 | 315 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
31 | 35 | | |
32 | 36 | | |
33 | 37 | | |
| |||
Lines changed: 51 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
316 | 316 | | |
317 | 317 | | |
318 | 318 | | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
319 | 370 | | |
320 | 371 | | |
321 | 372 | | |
| |||
0 commit comments