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
4c0164c49e
fix: support msgFlag NULL in sql ( #458 )
2022-07-03 13:05:16 +01:00
JRoberts
57d83ae42d
ntf: notify client about ntf supervisor internal errors ( #455 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-07-02 12:27:09 +04:00
Evgeny Poberezkin
f9cd7e5416
suspend ntf operations when agent is suspended ( #453 )
...
* suspend ntf operations when agent is suspended
* end and begin ntf operation on loop
2022-07-01 22:43:18 +01:00
Evgeny Poberezkin
6b6ea78eac
ntf server error handling ( #448 )
...
* ntf server error handling
* refactor
* fix
2022-07-01 12:25:08 +01:00
Evgeny Poberezkin
238a2e7fe9
handle ntf supervisor errors ( #451 )
2022-07-01 15:22:20 +04:00
JRoberts
82eff6c757
ntf: internal error if ntf server is not configured at SCHK on AUTH error ( #450 )
...
* ntf: internal error if ntf server is not configured at SCHK on AUTH error
* refactor
* rename
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2022-07-01 14:09:05 +04:00
JRoberts
0392f849aa
ntf: reset subscription on SCHK AUTH error; launch only required workers ( #449 )
2022-07-01 13:19:56 +04:00
JRoberts
16f5fdeeb0
ntf: delete notifier creds on NSASmpDelete ( #447 )
...
* ntf: delete notifier creds on NSASmpDelete
* fix
2022-07-01 09:18:01 +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
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
Evgeny Poberezkin
926e515bc0
fix v2 connecting via v1 contact ( #438 )
2022-06-29 08:38:51 +01: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
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
51d0b48ce1
suspend/activate agent ( #432 )
...
* suspend/activate agent
* deliver pending messages before agent is suspended
* refactor
2022-06-26 14:15:33 +01:00
JRoberts
2809963a2e
ntf: register token with NotificationsMode ( #429 )
2022-06-25 17:34:08 +04:00
Evgeny Poberezkin
d2321b750d
get/set notification mode ( #428 )
...
* get/set notification mode
* update method
2022-06-25 14:48:15 +04:00
Evgeny Poberezkin
c2f1dabcd0
fix agent phase, test ( #427 )
2022-06-25 08:13:07 +01:00
JRoberts
58622c6aaf
ntf: catch worker errors ( #425 )
2022-06-24 20:40:25 +04:00
JRoberts
70e7c71762
ntf: read rcv queue separately from ntf subscription, fix deletion race condition ( #423 )
2022-06-24 16:51:42 +04: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
Evgeny Poberezkin
0d9d549cea
unlock next GET with ACK ( #418 )
2022-06-22 08:12:18 +01:00
JRoberts
7a72488275
ntf: use separate key to encrypt NMsgMeta ( #410 )
...
* ntf: use separate key to encrypt NMsgMeta
* key negotiation
* save key on server, use for encryption
* refactor?
* store error
* NtfQueueCreds
* server - NtfCreds
* comment, rename
* fix type
* ClientNtfCreds
* encoding
2022-06-20 17:16:26 +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
Evgeny Poberezkin
d1db7d6f79
withStore runs in a single transaction ( #408 )
...
* remove store typeclass
* make withStore run single transaction
* combine 2 store calls
* refactor
* add exports
* fix catch
* correction
2022-06-18 18:01:04 +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
Evgeny Poberezkin
1d56ef3a60
agent method to GET message ( #403 )
...
* agent method to GET message
* correction
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-06-16 12:35:17 +01:00
Evgeny Poberezkin
5f94240ed4
remove DB connection pool to prepare for using semaphores ( #400 )
2022-06-15 14:11:03 +01:00
JRoberts
331918bac7
ntf: agent tests ( #399 )
2022-06-15 14:22:55 +04:00
JRoberts
f7bd8a3982
ntf: agent ntf workers implementation, store methods ( #394 )
2022-06-14 14:34:18 +04:00
Evgeny Poberezkin
68c2682e70
ios: synchronizing processing between app & nse ( #398 )
...
* ios: synchronizing processing between app & nse
* update rfc
* add sequence diagram
* manage agent phase
* track agent operation and phase changes
* update
* remove APInactive
* Update src/Simplex/Messaging/Agent/Protocol.hs
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com >
2022-06-14 13:27:45 +04:00
Evgeny Poberezkin
62485b9367
re-deliver duplicate message if it was not acknowledged by the user, ignore otherwise ( #397 )
...
* re-deliver duplicate message if it was not acknowledged by the user, ignore otherwise
* delete message after ACK
2022-06-13 08:27:08 +01: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
Evgeny Poberezkin
60294521f4
add msgId to ACK to avoid the risks of losing messages with concurrent delivery (in app/NSE) ( #387 )
...
* add msgId to ACK to avoid the risks of losing messages with concurrent delivery (in app/NSE)
* update ACK to only remove message and update stats if msgId matches
* add tests, fix
* rename sameMsgId/msgDeleted
2022-06-07 10:18:40 +01: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
9f6316fa6d
fix getDeviceNtfToken ( #376 )
2022-05-30 22:58:47 +04:00
Evgeny Poberezkin
c74f4d729b
create/verify agent schema during tests ( #374 )
...
* create/verify agent schema during tests
* add --indent to .schema, enable all tests
* remove -threaded from test
2022-05-24 19:28:40 +01:00
Evgeny Poberezkin
2733a09a40
limit concurrency when resubscribing, method to resubscribe if not subscribed ( #368 )
2022-04-30 09:36:52 +01:00
Evgeny Poberezkin
7249cb0f0e
close socket on connection exception ( #365 )
2022-04-29 13:12:30 +01:00
Evgeny Poberezkin
f8ec838912
prevent servers from reconnecting when the agent is closed ( #364 )
...
* prevent servers reconnecting when the agent is closed
* fail creating NTF server connection when the agent is closed
2022-04-25 16:04:06 +01:00
Evgeny Poberezkin
c6dde772b4
batch all connections in DOWN/UP agent messages ( #363 )
2022-04-25 08:26:52 +01:00
Evgeny Poberezkin
a2204c9b84
remove comments, add EOL
2022-04-21 17:15:41 +01:00
Evgeny Poberezkin
e6fbaf5e50
primary tokens ( #356 )
...
* primary tokens
* support repeat token registration (TODO fix tests)
* fix notifications tests
* fix/test repeat/new registrations of the same token
* re-register token when subsequent ntf command fails with AUTH error (e.g. when server is re-started)
* cancel periodic notifications when token is deleted on the server
* debug failing test on CI
* fix notification test in CI
* debug CI test
* add delay in notificaitons test after server restart
2022-04-21 17:04:26 +01:00