Evgeny Poberezkin
8d9816809f
simplify queue rotation protocol ( #550 )
...
* simplify queue rotation protocol
* use simplified rotation protocol, update tests
* simplify schema
* delete all connection queues
* refactor
* switch notifications to the new queue, tests
* remove TODO
* refactor
* rfc correction
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
* remove duplicate set active
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-10-31 13:33:28 +04:00
Evgeny Poberezkin
29332a5e9f
lints ( #539 )
...
* lints
* revert
* add import
* remove StrictData
2022-10-01 11:51:52 +01:00
JRoberts
b215bd954d
remove token if token replace fails with permanent error ( #511 )
2022-08-31 21:12:44 +04:00
Evgeny Poberezkin
0437796232
support multiple server hosts with notifications ( #498 )
...
* support multiple server hosts with notifications
* remove unused type
* remove unused import
* update server hosts during parsing
2022-08-14 21:10:34 +01:00
Evgeny Poberezkin
68138c08d2
support multiple server hostnames per queue ( #494 )
...
* store SMP client version per queue
* use versioned format for queue addresses (not compatible with v1)
* multiple server hosts in queue URI/data, versioned encoding (cross-version tests fail)
* choose server host based on socksProxy setting
* test works
* multiple server addresses mostly work
* add onion hosts for provided servers
* update SMP hosts
2022-08-12 11:32:04 +01:00
Evgeny Poberezkin
b76ef03dbe
ntf: server stats ( #487 )
...
* nts: server stats
* ntf: collect stats, refactor
* rename property
* fixes
2022-08-01 08:42:23 +01:00
Evgeny Poberezkin
a6f401041a
SMP protocol v4: batching multiple server commands/responses in a transport block ( #470 )
...
* batch server commands in one transport block
* subscribe to multiple queues using batched commands
* agent method to subscribe to multiple queues using batched commands
* refactor
* test for batched subscriptions
* delete part of connections in batched test
* add resubscribeConnections
* remove comment
* update SMP protocol doc
2022-07-17 10:10:38 +01:00
Evgeny Poberezkin
9f5e6bfd19
ntf protocol version negotiation ( #467 )
2022-07-09 12:04:13 +01:00
Evgeny Poberezkin
7a238812b7
ntf server: fix resubscribing to SMP server after it was restarted, test ( #465 )
2022-07-08 14:46:01 +01:00
Evgeny Poberezkin
991548b64d
ntf server: do not resubscribe to error/ended subscriptions on restart ( #464 )
2022-07-06 18:20:49 +01:00
Evgeny Poberezkin
abd694bd5a
parameterize protocol server by scheme ( #459 )
2022-07-05 21:56:14 +01:00
Evgeny Poberezkin
9c1b43791c
SMP v3: encrypt message timestamp and flags together with the body between server and recipient ( #457 )
...
* SMP v3: encrypt message timestamp and flags together with the body between server and recipient
* v3 tests
* update protocol doc
* add test for max size message
* delay in notifications test
* simplify v3
* encrypt server message to the recipient when sent
* refactor
* exit on error restoring the messages
* refactor, increase test timeout
* style
* add prints to the test
* remove error from unsafeMaxLenBS
* update protocol
* lint, improve test, change func param
2022-07-05 21:08:05 +01:00
Evgeny Poberezkin
2c52c514c0
ntf: fix TRPL to send verification to the new token ( #456 )
2022-07-02 15:07:20 +01:00
Evgeny Poberezkin
6b6ea78eac
ntf server error handling ( #448 )
...
* ntf server error handling
* refactor
* fix
2022-07-01 12:25:08 +01:00
JRoberts
c3012173e3
ntf: recover from failed/in-deletion subscriptions ( #446 )
...
* ntf: recover from failed/in-deletion subscriptions
* check NASNew status on subscription recover
* carryOnWithDeletion
* logs
* SCHK
2022-06-30 20:18:12 +04:00
Evgeny Poberezkin
f6a321e198
handle SMP errors in ntf subscriber ( #441 )
2022-06-30 16:04:01 +01:00
JRoberts
c82fae72f2
ntf: refactor NtfSubAction ( #445 )
2022-06-30 15:34:16 +04:00
JRoberts
9695786aa5
ntf: separate types into their own module ( #444 )
2022-06-30 14:31:36 +04:00
Evgeny Poberezkin
56ef95e8ae
ntf: fix null action ts ( #443 )
...
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-06-30 14:01:34 +04:00
JRoberts
2c7cad5378
ntf: update subscription status, error handling on SMP errors / agent events ( #439 )
...
* ntf: error handling on SMP errors / agent events
* refactor
* CASubError case
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* refactor
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* fix lint
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-29 15:14:44 +04:00
JRoberts
09b51dc44f
ntf: retry to deliver notification with new push client ( #437 )
...
* ntf: retry to deliver notification with new push client
* update statuses
* remove token update
* increase tokenTTL
2022-06-28 22:03:06 +04:00
Evgeny Poberezkin
85d507d5d3
ntf-server store log ( #435 )
...
* ntf-server store log
* ntf serevr: restore log when server is started, save compacted store log
* log ntf server store changes
* test, store log works
* update ntf-server exe
2022-06-28 17:10:50 +01:00
Evgeny Poberezkin
0c7c0d066d
support dev/prod APNS hosts ( #433 )
...
* support dev/prod APNS hosts
* fix test
2022-06-27 19:20:23 +01:00
JRoberts
3d6ad64d62
ntf: registerNtfToken rework, notification modes ( #431 )
...
* check mode for new subscriptions
* check token inside actions
* migration - apple -> apns
* wip
* register logic, modes
* update mode, cron config, verify token changes
* refactor
* fix test
* NTFMODE
* server: delete subscriptions on deleteToken
* refactor markNtfSubscriptionForDeletion
* remove NTFMODE
* remove subscriptions when token is deleted
* refactor
* lint
* test
* check ntfMode
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-27 21:54:35 +04:00
Evgeny Poberezkin
a8260290e7
token encodings ( #430 )
2022-06-25 16:17:39 +01:00
JRoberts
2809963a2e
ntf: register token with NotificationsMode ( #429 )
2022-06-25 17:34:08 +04:00
JRoberts
9e0e6b1afc
ntf: server retry to deliver notification ( #426 )
...
* ntf: server retry to deliver notification
* refactor
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-24 20:40:35 +04:00
Evgeny Poberezkin
b82452fe03
add category to mutable content notification ( #424 )
2022-06-24 15:35:50 +01:00
JRoberts
a92827c986
ntf: notification server SDEL command; subscription deletion in agent ( #421 )
2022-06-23 17:05:43 +04:00
Evgeny Poberezkin
f10e3f697c
notification server TRPL command ( #420 )
...
* notification server TRPL command
* test
* client methods
* only remove current token registration
2022-06-23 08:35:33 +01:00
JRoberts
ef4d4c9e16
ntf: remove notification subscription ( #417 )
2022-06-22 20:32:32 +04:00
Evgeny Poberezkin
0ab44b1836
get multiple messages when notification is processed ( #411 )
...
* get multiple messages when notification is processed
* change notification property
2022-06-19 13:23:35 +01:00
JRoberts
ec70429106
ntf: getNotificationMessage' ( #406 )
...
* ntf: getNotificationMessage'
* refactor
* ntfTs
* fix parser
* length
* fix test
* fix encryption, test
* remove test focus
* getActiveNtfToken
* rename
* Update src/Simplex/Messaging/Protocol.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* getNtfRcvQueue
* refactor
* don't fail
* Update src/Simplex/Messaging/Notifications/Protocol.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Update src/Simplex/Messaging/Notifications/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Update src/Simplex/Messaging/Server.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* import
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-18 18:21:35 +04:00
JRoberts
3336f987c3
ntf: SCHK, cancel actions on errors, wait until action ts before executing ( #402 )
...
* SCHK
* NSACheck
* updateSubFutureTs
* dont execute too early
* fix diffTimeToMillis
* rename function
* errors
* nested status
* increase ntfSubCheckInterval
* adjust import
* Update src/Simplex/Messaging/Agent/NtfSubSupervisor.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Update src/Simplex/Messaging/Agent/NtfSubSupervisor.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* refactor rescheduleAction
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-16 16:11:46 +04:00
JRoberts
f7bd8a3982
ntf: agent ntf workers implementation, store methods ( #394 )
2022-06-14 14:34:18 +04:00
JRoberts
9c12b4edc0
ntf: agent spike, NtfSupervisor ( #392 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-06-10 16:35:06 +04:00
Evgeny Poberezkin
c1348aa54f
SMP connection handshake v2 ( #390 )
...
* SMP connection handshake v2
* hadshake v2 [mostly] works
* all tests pass, some race conditions remain
* fix build
* fix race conditions, send CON after all HELLOs in duplexHandshake mode
* add comments
* comment
* add comments
2022-06-09 13:47:07 +01:00
JRoberts
bfb556c860
ntf: test notification subscription ( #389 )
2022-06-07 19:14:51 +04:00
Evgeny Poberezkin
4b3d04bd27
support message flags visible to SMP server to control notifications (and for any future extensions) ( #386 )
...
* support stopping and resuming agent (#385 )
* export agentDbPath
* support fully closing and resuming agent
* whitespace
* clean up
* support message flags visible to SMP server to control notifications (and for any future extensions)
* simplify message flags encoding
* GET command
2022-06-06 12:59:45 +01:00
JRoberts
0dc34cd287
ntf: NMSG, remove NtfTokenId from subscriptionLookup key ( #384 )
2022-06-06 14:52:22 +04:00
JRoberts
46ba047077
ntf: IDSUB response, check notifierKey and return subId on repeat SNEW ( #383 )
2022-06-02 19:36:56 +04:00
JRoberts
facb6f4561
ntf: separate notifierKey from SMPQueueNtf ( #382 )
2022-06-02 15:36:16 +04:00
JRoberts
6a27b82759
ntf: SMP subscribers logic ( #381 )
2022-06-02 14:52:14 +04:00
JRoberts
b5ccce0f6a
ntf: store get methods ( #380 )
2022-06-01 21:03:32 +04:00
JRoberts
b60408837a
notifications: SNEW draft ( #378 )
2022-06-01 18:42:35 +04:00
JRoberts
c2ec691a46
ntf subscription diagram ( #377 )
2022-05-31 15:40:43 +04:00
Evgeny Poberezkin
ef7c66762e
update script to send test notifications
2022-05-30 21:16:25 +01:00
Evgeny Poberezkin
1064e9c315
disconnect inactive clients ( #366 )
...
* disconnect inactive clients
* update test description
* use one thread per client to disconnect inactive clients
* remove comments
* more comments
2022-04-30 10:56:01 +01:00
Evgeny Poberezkin
633cd675b5
ToJSON instance for NtfTknStatus ( #362 )
2022-04-22 20:02:02 +01:00
Evgeny Poberezkin
7652ece045
registerNtfToken returns token status
2022-04-22 17:50:30 +01:00