binwiederhier
341e84f643
Limit number of webpush subscriptions per subscriber IP
2023-06-16 21:59:07 -04:00
binwiederhier
c43a1166e2
Docs, mostly
2023-06-16 16:55:42 -04:00
binwiederhier
6e95d62726
Cosmetic changess
2023-06-15 22:25:05 -04:00
binwiederhier
2d0c043dfd
Derp
2023-06-12 21:03:49 -04:00
binwiederhier
a8def0aed2
Make allowed endpoints a list of patterns
2023-06-12 21:01:43 -04:00
binwiederhier
58992fc795
Make DELETE endpoint, add different UI description
2023-06-10 21:09:01 -04:00
binwiederhier
1abcc88fce
Add subscription_topic table, change updated_at type to INT, split expire function
2023-06-09 23:17:48 -04:00
nimbleghost
4704b2a0e4
Set default TTL for web push to the cache duration
2023-06-09 11:32:44 +02:00
binwiederhier
966ffe1669
More refactor
2023-06-08 23:09:38 -04:00
binwiederhier
9d38aeb863
Docs in server.yml, schemaVersion table, refactoring
2023-06-08 21:45:52 -04:00
binwiederhier
d3ac976d05
Remove web-push-(enabled|duration*), change endpoint, other cosmetic changes
2023-06-08 14:30:19 -04:00
binwiederhier
75a4b5bd88
Small refactor
2023-06-08 12:20:12 -04:00
nimbleghost
46f34ca1e3
Add push service allowlist and topic limit
2023-06-07 21:09:13 +02:00
nimbleghost
0f0074cbab
Implement push subscription expiry
2023-06-07 21:09:13 +02:00
nimbleghost
47ad024ec7
Simplify web push UX and updates
...
- Use a single endpoint
- Use a declarative web push sync hook. This thus handles all edge cases
that had to be manually handled before: logout, login, account sync,
etc.
- Simplify UX: browser notifications are always enabled (unless denied),
web push toggle only shows up if permissions are already granted.
2023-06-07 20:38:21 +02:00
nimbleghost
0c25425346
Use readJSONWithLimit for web push sub/unsub
2023-06-07 20:38:21 +02:00
nimbleghost
4648f83669
Format emojis in the service worker directly
2023-06-07 20:38:21 +02:00
nimbleghost
44913c1668
Replace if err-nil-Fatal check with require.Nil
2023-06-07 20:38:21 +02:00
binwiederhier
20c7650e51
server.yml update
2023-06-07 20:38:21 +02:00
binwiederhier
e8139ad655
Move web-push-config endpoint to config.js
2023-06-07 20:38:21 +02:00
binwiederhier
9e0687e142
Random tiny changes
2023-06-07 20:38:21 +02:00
binwiederhier
7f3e4b5f47
Move stuff to server_web_push.go
2023-06-07 20:38:21 +02:00
binwiederhier
7b23158e0a
Cosmetic changes
2023-06-07 20:38:21 +02:00
nimbleghost
a9fef387fa
Add web push tests
2023-06-07 20:38:21 +02:00
nimbleghost
ff5c854192
Add PWA, service worker and Web Push
...
- Use new notification request/opt-in flow for push
- Implement unsubscribing
- Implement muting
- Implement emojis in title
- Add iOS specific PWA warning
- Don’t use websockets when web push is enabled
- Fix duplicate notifications
- Implement default web push setting
- Implement changing subscription type
- Implement web push subscription refresh
- Implement web push notification click
2023-06-07 20:38:20 +02:00
binwiederhier
d084a415f3
Do not forward UP messages to upstream
2023-05-31 15:36:02 -04:00
binwiederhier
7d46f1eed9
Merge branch 'main' into markdown
2023-05-26 21:15:38 -04:00
binwiederhier
7812eb9d19
WIP: Markdown
2023-05-24 20:37:27 -04:00
nimbleghost
e21327cec5
Add vite
...
Changes according to Vite defaults:
- Move index.html to root
- Replace `%PUBLIC_URL%` with plain `/`
2023-05-24 22:16:10 +02:00
binwiederhier
f8a00dd411
Fix test
2023-05-23 14:24:11 -04:00
binwiederhier
da06ae4485
Clarify error message for poll requests
2023-05-23 13:20:43 -04:00
binwiederhier
168ad8bf1b
Support encoding any header as RFC 2047
2023-05-21 20:56:56 -04:00
binwiederhier
3b3e6ac2cd
Rename twilio-from-number to twilio-phone-number
2023-05-18 13:32:27 -04:00
binwiederhier
25d3a66f91
Upstream access token
2023-05-18 13:08:10 -04:00
binwiederhier
fc1087a42b
The last one
2023-05-17 11:19:48 -04:00
binwiederhier
92c384374a
More self-review
2023-05-17 10:58:28 -04:00
binwiederhier
ac029c389e
Self-review
2023-05-17 10:39:15 -04:00
binwiederhier
2c81773d01
Add call verification
2023-05-16 22:27:48 -04:00
binwiederhier
496d6e74b0
Staticcheck
2023-05-16 15:12:18 -04:00
binwiederhier
7c574d73de
Cont'd Twilio stuff
2023-05-16 14:15:58 -04:00
binwiederhier
deb4f24856
Cont'd, getting there
2023-05-15 22:06:43 -04:00
binwiederhier
4b9e0c5c38
Phone number verification in publishing
2023-05-15 20:42:43 -04:00
binwiederhier
69b01bc468
Merge branch 'main' into twilio
2023-05-15 20:02:51 -04:00
binwiederhier
f14f0aaa26
Add tests for users, slightly change API a bit
2023-05-15 10:42:24 -04:00
binwiederhier
4f4165f46f
Merge branch 'main' into access-api
2023-05-14 20:43:07 -04:00
Philipp C. Heckel
8f87e9008b
Merge pull request #728 from wunter8/attachment-filename
...
set attachment filename when download through browser
2023-05-14 14:15:31 -04:00
Hunter Kehoe
4fa0655438
set attachment filename when download through browser
2023-05-14 11:19:49 -06:00
binwiederhier
97fc287b78
User endpoint
2023-05-13 22:07:54 -04:00
binwiederhier
625b13280f
WIP: Access API
2023-05-13 14:39:31 -04:00
binwiederhier
539ba43cd1
WIP twilio
2023-05-13 12:26:14 -04:00
Michael Manganiello
49bd6129ff
Convert mailer_emoji JSON file to map
...
This fixes a pending TODO comment regarding inefficient tags to emojis
mapping, by requiring a full scan over emoji aliases to determine
matches.
Instead, now the JSON file is a map, with aliases as keys, and emojis as
values. The script to convert the file with Python was:
```python
import json
with open("./mailer_emoji.json", "r", encoding="utf-8") as f:
content = json.load(f)
emoji_map = {}
for emoji in content:
for alias in emoji["aliases"]:
if alias in emoji_map:
print("WARNING: Duplicate alias:", alias)
continue
emoji_map[alias] = str(emoji["emoji"])
sorted_emoji_map = {k: emoji_map[k] for k in sorted(emoji_map)}
with open("./mailer_emoji_map.json", "w", encoding="utf-8") as f:
json.dump(sorted_emoji_map, f, indent=4, ensure_ascii=False)
```
2023-05-13 11:43:47 -03:00
binwiederhier
cea434a57c
WIP Twilio
2023-05-12 21:47:41 -04:00
binwiederhier
f99159ee5b
WIP calls, remove SMS
2023-05-12 20:01:12 -04:00
binwiederhier
d4767caf30
Verify
2023-05-11 13:50:10 -04:00
binwiederhier
a26a6be62b
Merge branch 'main' into twilio
2023-05-10 14:18:55 -04:00
binwiederhier
f4e6874ff0
Formatting
2023-05-09 20:57:09 -04:00
Guillaume Taquet Gasperini
5b8520b4e0
Add quoted-printable decoding to smtp server
...
Some e-mails are sent using quoted-printable encoding [0], resulting in
notifications with weird characters.
This commit adds support for this encoding, resulting in the following:
**Before**
```
A
=3D=3D=3D=3D=3D
B
=3D=3D=3D=3D=3D
C
```
**After**
```
A
=====
B
=====
C
```
[0] https://www.rfc-editor.org/rfc/rfc2045.html
2023-05-08 10:54:34 +02:00
binwiederhier
eb0805a470
Update web app with SMS and calls stuff
2023-05-07 22:28:07 -04:00
binwiederhier
f9e2d6ddcb
Add limiters and database changes
2023-05-07 11:59:15 -04:00
binwiederhier
113b7c8a08
Metrics, tests
2023-05-06 14:23:48 -04:00
binwiederhier
3863357207
WIP
2023-05-05 20:14:46 -04:00
binwiederhier
1c0162c434
WIP: Twilio
2023-05-05 16:22:54 -04:00
binwiederhier
c997e4911a
Fix test and retry
2023-05-02 14:16:59 -04:00
Rahul Tyagi
d2fa768151
fix: removes an issue with topic.Subscribe function not checking duplicate ID
2023-05-02 21:40:27 +05:30
binwiederhier
6ad3b2e802
Remove old homepage
2023-05-01 11:58:49 -04:00
binwiederhier
59a5077713
Add RFC 2047 encoding support for tags
2023-04-24 13:00:14 -04:00
binwiederhier
35eac5b9ad
Simplify
2023-04-21 21:07:07 -04:00
binwiederhier
cfa8d92af1
UTF-8 headers
2023-04-21 18:45:27 -04:00
binwiederhier
91d2603fe0
Add tests, and proper rate
2023-04-21 11:09:13 -04:00
binwiederhier
6be95f8285
WIP: persist message stats
2023-04-20 22:04:11 -04:00
binwiederhier
d88dbbc90f
WIP
2023-04-02 13:59:26 -04:00
binwiederhier
bdae48afba
Disable iOS polling entirely
2023-03-30 14:48:52 -04:00
binwiederhier
46c798c71a
Just comment the test for now
2023-03-29 15:03:41 -04:00
binwiederhier
4596e4bcab
Blog posts, fix lint
2023-03-29 00:23:08 -04:00
binwiederhier
29c9551548
Profiling support
2023-03-28 14:41:16 -04:00
binwiederhier
502d0a0abd
Fix delayed message sending from authenticated users, closes #679
2023-03-22 15:30:20 -04:00
binwiederhier
73069ae9a0
Fix test
2023-03-17 22:05:07 -04:00
binwiederhier
e20fd0f84f
Changelog
2023-03-16 22:40:52 -04:00
binwiederhier
ca9fed7b67
More metrics
2023-03-16 22:19:20 -04:00
binwiederhier
358b344916
Allow /metrics on default port; reduce memory if not enabled
2023-03-15 22:34:06 -04:00
binwiederhier
fe731d43cd
More metrics
2023-03-14 10:19:15 -04:00
binwiederhier
754b456320
Merge branch 'main' into metrics
2023-03-12 21:23:24 -04:00
binwiederhier
c6bfdd45be
Increase allowed auth failure attempts, Increase maximum incremental backoff retry interval
2023-03-08 14:51:47 -05:00
binwiederhier
9370acbcfe
Cosmetic changes
2023-03-06 23:12:46 -05:00
binwiederhier
2783a52cad
WIP metrics
2023-03-06 22:16:10 -05:00
Hunter Kehoe
25be5b47e4
allow default-token and per-subscription tokens in client.yml
2023-03-05 22:57:51 -07:00
binwiederhier
6f4b260035
Tiny changes
2023-03-04 09:32:29 -05:00
binwiederhier
346d8d7967
Works
2023-03-03 22:22:07 -05:00
binwiederhier
3eeeac2c13
Merge branch 'enable-subscriber-rate-limiting' into matrix-507-reject
2023-03-03 20:34:33 -05:00
binwiederhier
94f6d2d5b5
Rename flag
2023-03-03 20:23:18 -05:00
binwiederhier
1c4420bca8
EnableRateVisitor flag
2023-03-03 14:55:37 -05:00
binwiederhier
1ce92714c4
Add visitor_seen
to the log context
2023-03-03 13:56:48 -05:00
binwiederhier
90db1283dd
Allow SMTP servers without auth
2023-03-02 20:25:13 -05:00
binwiederhier
983afb2b45
Fix some iffy tests with waitFor function
2023-03-01 11:36:48 -05:00
binwiederhier
4d22ccc7f6
WIP Reject 507s after a while
2023-02-28 22:25:13 -05:00
binwiederhier
fe3a225f8f
Add billing-contact
config option
2023-02-28 14:38:31 -05:00
binwiederhier
8ca08ce868
Fix panic when using Firebase without users
2023-02-27 22:07:22 -05:00
binwiederhier
ba46630138
Various things
2023-02-27 21:13:15 -05:00
binwiederhier
217ca81b17
Remove broken test, replace with simpler one
2023-02-27 14:07:06 -05:00
binwiederhier
7edcebad1f
Give test more time
2023-02-27 11:06:03 -05:00