Commit Graph

522 Commits

Author SHA1 Message Date
binwiederhier
b1eb90addc Move NewPollRequestMessage 2026-02-21 18:01:36 -05:00
binwiederhier
4b6979aa89 Move model constants 2026-02-21 10:42:34 -05:00
binwiederhier
a28d8e7924 Update docs, manual changes 2026-02-20 16:36:41 -05:00
binwiederhier
a4c836b531 Refine 2026-02-20 15:36:12 -05:00
binwiederhier
e818b063f7 Fmt 2026-02-20 08:25:32 -05:00
binwiederhier
039d555689 Fix tests 2026-02-20 08:19:25 -05:00
binwiederhier
4cbd80c68e Use one PG connection, add support for connection params 2026-02-19 22:34:53 -05:00
binwiederhier
2716ede6e1 Extract message cache into message/ package with model/ types
Move message cache from server/message_cache.go into a dedicated
message/ package with Store interface, SQLite and PostgreSQL
implementations. Extract shared types into model/ package.
2026-02-18 20:22:44 -05:00
binwiederhier
07c3e280bf Refactor user package to Store interface with PostgreSQL support
Extract database operations from Manager into a Store interface with
SQLite and PostgreSQL implementations using a shared commonStore.
Split SQLite migrations into store_sqlite_migrations.go, use shared
schema_version table for PostgreSQL, rename user_user/user_tier tables
to "user"/tier, and wire up database-url in CLI commands.
2026-02-16 22:39:54 -05:00
binwiederhier
4e5f95ba0c Refactor webpush store to eliminate code duplication
Consolidate SQLite and Postgres store implementations into a single
commonStore with database-specific SQL queries passed via configuration.
This eliminates ~100 lines of duplicate code while maintaining full
functionality for both backends.

Key changes:
- Move all store methods to commonStore in store.go
- Remove sqliteStore and postgresStore wrapper structs
- Refactor SQLite to use QueryRow() pattern like Postgres
- Pass database-specific queries via storeQueries struct
- Make store types unexported, only expose Store interface

All tests pass for both SQLite and PostgreSQL backends.
2026-02-16 19:53:34 -05:00
binwiederhier
e432bf2886 Rename PostgreSQL table prefix from wp_ to webpush_ 2026-02-16 12:13:10 -05:00
binwiederhier
cfdc364e3f Version API endpoint 2026-02-08 14:28:27 -05:00
binwiederhier
65050ef4dc Fix server crash (nil pointer panic) when subscriber disconnects during publish 2026-02-08 11:23:31 -05:00
binwiederhier
3647d3975c Fix panic in handleSubscribeHTTP when client disconnects during publish
Replace wlock.TryLock() with a proper Lock() + closed flag to prevent
writing to a response writer that has been cleaned up after the handler
returns. The previous TryLock approach could not guarantee the response
writer was still valid when a concurrent Publish goroutine called Flush.
2026-02-08 10:49:31 -05:00
binwiederhier
570b188a88 Support for templating the priority header 2026-02-04 09:46:09 -08:00
binwiederhier
08eaafa77b Fix log spam from http: response.WriteHeader on hijacked connection for WebSocket errors 2026-02-04 06:05:54 -08:00
binwiederhier
d8232e539a PWA description 2026-01-19 20:38:42 -05:00
binwiederhier
602f201bae Derp 2026-01-18 19:15:10 -05:00
binwiederhier
ac9cfbfaf4 Delete attachments 2026-01-18 16:04:42 -05:00
binwiederhier
c23d201186 Updated/cancel scheduled messages 2026-01-18 15:50:40 -05:00
binwiederhier
856f150958 Better 2026-01-18 10:46:15 -05:00
binwiederhier
cc9f9c0d24 Update checker 2026-01-17 20:36:15 -05:00
binwiederhier
96638b516c Fix service worker handling for updating/deleting 2026-01-14 20:46:18 -05:00
binwiederhier
a3c16d81f8 Rename to clear 2026-01-13 16:31:13 -05:00
binwiederhier
37d71051de Refine 2026-01-08 20:57:55 -05:00
binwiederhier
5ad3de2904 Switch to event type 2026-01-08 20:50:23 -05:00
binwiederhier
66ea25c18b Add JSON publishing support 2026-01-08 15:45:50 -05:00
binwiederhier
1ab7ca876c Rename to sequence_id 2026-01-08 14:27:18 -05:00
binwiederhier
dffee9ea7d Remove forJSON 2026-01-08 11:39:32 -05:00
binwiederhier
2dd152df3f Manual fixes for AI slop 2026-01-06 18:02:08 -05:00
binwiederhier
2856793eff Deleted 2026-01-06 14:22:55 -05:00
binwiederhier
aca9a77498 Remove mtime 2026-01-05 21:14:29 -05:00
binwiederhier
1c2550d749 Merge branch 'main' into 303-update-notifications 2026-01-05 15:34:42 -05:00
Hunter Kehoe
83b5470bc5 publish messages with a custom sequence ID 2025-10-17 19:01:41 -06:00
binwiederhier
3de04b27ab Redirect to login page if require-login is enabled 2025-08-24 13:48:19 -04:00
binwiederhier
ec1f97b726 Merge remote-tracking branch 'theatischbein/feat_optional_require_login' into require-login 2025-08-24 13:34:22 -04:00
binwiederhier
ea338ae4fa Make it easy to build without Stripe 2025-08-07 16:41:39 +02:00
binwiederhier
32fa8d43c1 Merge branch 'main' into debian-stripe 2025-08-07 15:34:54 +02:00
binwiederhier
23ec7702fc Add "auth-tokens" 2025-07-31 07:08:35 +02:00
binwiederhier
fe545423c5 Change to auth-(users|access), upgrade manually added users to provision users 2025-07-27 12:10:16 +02:00
binwiederhier
f3c67f1d71 Refuse to update manually created users 2025-07-27 11:02:34 +02:00
binwiederhier
27b3a89247 Merge branch 'main' of github.com:binwiederhier/ntfy into predefined-users 2025-07-27 10:16:55 +02:00
binwiederhier
1470afb715 Make templateMode more understandable 2025-07-27 10:15:48 +02:00
binwiederhier
b495a744c9 Merge branch 'main' of github.com:binwiederhier/ntfy into predefined-users 2025-07-27 09:36:45 +02:00
Hunter Kehoe
0d36ab8af3 allow newlines in in-line go templates 2025-07-27 00:01:51 -06:00
binwiederhier
f59df0f40a Works 2025-07-21 17:44:00 +02:00
binwiederhier
51af114b2e Merge branch 'main' of github.com:binwiederhier/ntfy into predefined-users 2025-07-21 11:57:14 +02:00
binwiederhier
f0d5392e9e Self-review 2025-07-19 21:32:05 +02:00
binwiederhier
dde07adbdc Add some limits 2025-07-19 16:46:53 +02:00
binwiederhier
4603802f62 WIP 2025-07-16 21:50:29 +02:00