Commit Graph
100 Commits
Author SHA1 Message Date
binwiederhier 9e4a48b058 Make server tests also run against postgres 2026-02-19 20:48:01 -05:00
binwiederhier 939b3d1117 Fix lint, make pipeline use psotgres 2026-02-18 21:07:31 -05:00
binwiederhier 9cc9891f49 Add postgres to pipeline 2026-02-18 20:55:03 -05:00
binwiederhier 0d1f3444f2 fmt 2026-02-18 20:48:41 -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 ae5e1fe8d8 Merge branch 'postgres-webpush' into postgres-webpush+user 2026-02-17 20:15:27 -05:00
binwiederhier e3a402ed95 Make user tests work for postgres and sqlite 2026-02-17 20:14:45 -05:00
binwiederhier 1abc1005d0 Re-org 2026-02-17 12:04:51 -05:00
binwiederhier 909c3fe17b Add Store-level unit tests for SQLite and PostgreSQL backends
Add shared test functions in store_test.go covering all Store interface
operations (users, tokens, access control, tiers, billing, stats, etc.)
with per-backend wrappers in store_sqlite_test.go and store_postgres_test.go
following the webpush test pattern.

Fix broken isUniqueConstraintError() which used incorrect interface
assertions instead of string matching for SQLite/PostgreSQL errors.
2026-02-16 22:56:31 -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 b567b4e904 Merge branch 'main' into postgres-webpush 2026-02-16 21:05:04 -05:00
binwiederhier 60fa50f0d5 Merge branch 'main' into postgres-webpush+user 2026-02-16 21:04:46 -05:00
binwiederhier ceda5ec3d8 Move things in user package 2026-02-16 21:04:15 -05:00
binwiederhier 3d72845c81 Tests for user package 2026-02-16 20:49:17 -05:00
binwiederhier 82e15d84bd Manual changes 2026-02-16 20:02:19 -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 869b972a50 Manual review 2026-02-16 19:12:14 -05:00
binwiederhier bdd20197b3 Manual refinements 2026-02-16 19:06:45 -05:00
binwiederhier a8dcecdb6d Refactor webpush store tests and add coverage
- Add SetSubscriptionUpdatedAt to Store interface, remove DB() accessor
- Rename store files to store_sqlite.go and store_postgres.go
- Use camelCase for test function names
- Add tests for upsert field updates and multi-user removal
- Use transaction in setupNewPostgresDB
- Use lowercase "excluded." in PostgreSQL upsert query
2026-02-16 18:53:12 -05:00
binwiederhier 5331437664 Unify webpush store tests across SQLite and PostgreSQL backends
Share test logic in store_test.go with thin per-backend wrappers.
Add SetSubscriptionUpdatedAt to both stores, removing the need for
raw SQL and the DB() accessor in tests.
2026-02-16 12:38:00 -05:00
binwiederhier e432bf2886 Rename PostgreSQL table prefix from wp_ to webpush_ 2026-02-16 12:13:10 -05:00
binwiederhier 0edad84d86 Merge branch 'main' of https://hosted.weblate.org/git/ntfy/web 2026-02-16 10:55:17 -05:00
binwiederhier a03a37feb1 Merge branch 'main' into release-2.17.x 2026-02-08 22:31:35 -05:00
binwiederhier 4cd556f5aa Copy fix 2026-02-08 22:31:22 -05:00
binwiederhier 90aeb811ff Changelog 2026-02-08 22:18:45 -05:00
binwiederhier c6ab380ea4 Merge branch '1364-copy-action' 2026-02-08 20:46:54 -05:00
binwiederhier 7860f2142c Constants 2026-02-08 15:11:06 -05:00
binwiederhier 18d5d31bd2 Merge branch 'main' of github.com:binwiederhier/ntfy 2026-02-08 14:29:04 -05:00
binwiederhier cfdc364e3f Version API endpoint 2026-02-08 14:28:27 -05:00
binwiederhier 3f0a7b65ee Server/Web: Support "copy" action button to copy a value to the clipboard 2026-02-08 14:20:03 -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 06ea1f98ac Merge branch 'main' of github.com:binwiederhier/ntfy 2026-02-08 10:29:13 -05:00
binwiederhier 2827df26ee Merge branch 'main' of https://hosted.weblate.org/git/ntfy/web 2026-02-08 10:29:03 -05:00
binwiederhier fe6ee1efa0 Web: Show red notification dot on favicon when there are unread messages 2026-02-08 10:28:46 -05:00
binwiederhier 623fd4f224 Changelog 2026-02-06 06:53:58 -08:00
binwiederhier 1b554d5b08 Web: Fix clear=true on action buttons not clearing the notification 2026-02-05 09:40:18 -08:00
binwiederhier 6978fa69a8 Add better F-Droid logo 2026-02-04 18:32:08 -08:00
binwiederhier a1da18b99f Show last notification time for UnifiedPush subscriptions 2026-02-04 17:52:24 -08:00
binwiederhier 570b188a88 Support for templating the priority header 2026-02-04 09:46:09 -08:00
binwiederhier b34d23870b Release notes 2026-02-04 08:35:38 -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 fe386e31dd Changelog for #1112 (Android notification timestamp fix) 2026-02-03 18:36:53 -05:00
binwiederhier e01e9d6491 Changelog 2026-02-01 22:37:51 -05:00
binwiederhier f382a13109 Lint 2026-02-01 22:17:35 -05:00
binwiederhier b2f4046574 Release notes 2026-02-01 22:12:33 -05:00
binwiederhier fd836cacf6 Release notes, and send to ntfy extension 2026-02-01 20:52:06 -05:00
binwiederhier 7207839b2a Fix long lines in web app by adding horizontal scroll, closes #1363 2026-02-01 17:42:56 -05:00
binwiederhier 9fbf5e460e Release notes 2026-02-01 17:35:09 -05:00
binwiederhier 946a2b6fbe Use full URL in curl example on empty topic pages, closes #1535, closes #1435 2026-02-01 16:56:02 -05:00
binwiederhier 1cf23a6f86 Fix markdown message line height, closes #1139 2026-02-01 12:41:00 -05:00
binwiederhier 63e9b8425f Add validation to "add user" dialog, closes #1566 2026-02-01 12:33:19 -05:00
binwiederhier 4546eb02a1 Docs fix: Update Kustomize config file, closes #1367 2026-02-01 12:22:48 -05:00
binwiederhier c33f1494f5 Release notes 2026-02-01 12:20:19 -05:00
binwiederhier 27a4a71b23 Update docs 2026-02-01 12:01:57 -05:00
binwiederhier 11a8d2e3b4 Merge branch 'main' of https://hosted.weblate.org/git/ntfy/web 2026-02-01 08:18:25 -05:00
binwiederhier 448c5bfb88 Terms of service 2026-01-26 20:31:11 -05:00
binwiederhier 2ae962d957 Bump 2026-01-25 09:24:30 -05:00
binwiederhier 2343ce46bd Release notes 2026-01-25 09:16:36 -05:00
binwiederhier a12e18cf12 Merge branch 'main' of https://hosted.weblate.org/git/ntfy/web 2026-01-25 09:16:20 -05:00
binwiederhier 77872f1b6a Remove feature not released notice 2026-01-20 15:54:46 -05:00
binwiederhier 7a7c94cd40 Docs docs docs 2026-01-20 13:52:03 -05:00
binwiederhier 01ef1d3004 Add FreeBSD to the install instructions 2026-01-19 21:05:25 -05:00
binwiederhier d8232e539a PWA description 2026-01-19 20:38:42 -05:00
binwiederhier 860954bdc8 DerDerpp 2026-01-19 20:33:19 -05:00
binwiederhier f4fe62bd91 Logo update 2026-01-19 20:29:28 -05:00
binwiederhier 4b474a89b7 Docs 2026-01-19 18:29:45 -05:00
binwiederhier 5ba1c71140 Fix grouping issue with sequence ID 2026-01-18 21:30:12 -05:00
binwiederhier de81865c27 Bump deps 2026-01-18 20:11:48 -05:00
binwiederhier ed9c1bcb78 Wording change 2026-01-18 19:46:14 -05:00
binwiederhier 190d12cd54 Release banner 2026-01-18 19:41:34 -05:00
binwiederhier 014b7355c5 Re-org 2026-01-18 19:24:01 -05:00
binwiederhier 602f201bae Derp 2026-01-18 19:15:10 -05:00
binwiederhier 2739d8a325 Re-organize docs 2026-01-18 19:09:14 -05:00
binwiederhier b8e01fde33 Docs 2026-01-18 16:22:06 -05:00
binwiederhier 9ecf21c65a Docs 2026-01-18 16:16:04 -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 86157fc7f6 Lint 2026-01-18 11:14:07 -05:00
binwiederhier 279c164bf5 Fix build 2026-01-18 11:13:56 -05:00
binwiederhier 743b00e59c Merge branch 'main' of github.com:binwiederhier/ntfy 2026-01-18 10:57:10 -05:00
binwiederhier eddf654b96 Last fixes 2026-01-18 10:56:11 -05:00
binwiederhier 886be722bc Release notes 2026-01-18 10:52:27 -05:00
binwiederhier 6886ca24b1 Self-review 2026-01-18 10:51:36 -05:00
binwiederhier 856f150958 Better 2026-01-18 10:46:15 -05:00
binwiederhier 5a1aa68ead Refine 2026-01-18 09:44:21 -05:00
binwiederhier cc9f9c0d24 Update checker 2026-01-17 20:36:15 -05:00
binwiederhier 64b0bd63af Deps 2026-01-17 18:05:36 -05:00
binwiederhier 220372d65a Move client config file logic, docs 2026-01-17 17:51:33 -05:00
binwiederhier 353fedb93f Docs, lint 2026-01-17 14:59:43 -05:00
binwiederhier dfd12528f3 Manual nits 2026-01-17 14:48:32 -05:00
binwiederhier 6d5cc6aeac Windows server support 2026-01-17 14:43:43 -05:00
binwiederhier 9f3883eaf0 Build server on Windows 2026-01-17 14:00:08 -05:00
binwiederhier 11e9e1e6a0 Merge branch 'feature/twilio-call-format-file' 2026-01-17 05:00:03 -05:00
binwiederhier b23f6632b1 Use Go templates, update docs 2026-01-17 04:59:46 -05:00
binwiederhier 6bacf7dafc Works 2026-01-17 04:34:32 -05:00
binwiederhier 0e200b96e0 Merge branch 'main' of github.com:binwiederhier/ntfy into feature/twilio-call-format-file 2026-01-17 03:49:52 -05:00
binwiederhier 3ce56879ae Tidy 2026-01-17 03:49:33 -05:00
binwiederhier 48efdffa57 Fix indent 2026-01-17 03:29:40 -05:00
binwiederhier 711899ad35 Merge branch 'main' of https://hosted.weblate.org/git/ntfy/web 2026-01-17 03:20:47 -05:00