Evgeny Poberezkin
80f7be6dd7
Merge branch 'master' into db-messages
2025-09-13 09:31:23 +01:00
Evgeny
83721240a4
reset db connection on errors ( #1633 )
2025-09-13 09:30:01 +01:00
Evgeny
6c66cf367a
smp server: set message counts correctly after import ( #1632 )
2025-09-12 13:08:11 +01:00
Evgeny
a137d01c90
smp server: improve counts management and expiration for postgres message store ( #1631 )
...
* smp server: improve counts management and expiration for postgres message store
* one update
* fix expiration
2025-09-12 11:39:35 +01:00
Evgeny
bac6ea6e91
smp server: store messages in PostgreSQL ( #1622 )
...
* smp server: store messages in PostgreSQL
* stored procedures to write and to expire messages
* function to export messages
* move all message functions to PostgreSQL, remove delete trigger
* comments
* import messages to db
* fix message import, add export
* fix export
* fix export
* fix compilation flags
* import messages line by line
* fix server start with database storage
* fix compilation
* comments
2025-09-11 20:22:55 +01:00
Evgeny
0c1030cf02
smp server: faster export ( #1626 )
...
* smp server: faster export
* flush
* export messages with PostgreSQL database
* remove flush
* batch message writes
* Revert "batch message writes"
This reverts commit 61fb3c3b9e .
* remove $!
* fast journal export
* another approach
* Revert "smp server: remove dependency of message size on the version (#1627 )"
This reverts commit 8fea15245a .
* style
* faster?
* cleanup
* cleanup
* refactor
* refactor
* concurrent read messages
* Revert "concurrent read messages"
This reverts commit 05a32e6491 .
* concurrent read/write
* parameter to export to/import from another message log file
* Revert "parameter to export to/import from another message log file"
This reverts commit 4e88b035c4 .
* Revert "concurrent read/write"
This reverts commit a8eab1f7e3 .
2025-09-10 18:22:58 +01:00
Evgeny Poberezkin
23aff6b0b1
Revert "smp server: remove dependency of message size on the version ( #1627 )"
...
This reverts commit 8fea15245a .
2025-09-09 09:56:48 +01:00
spaced4ndy
a4f049d8da
agent: parameterize withWork, getWorkItem with StoreError; parameterized Binary for SQLite ( #1617 )
...
* agent: parameterize withWork StoreError
* getWorkItem
* export
* binary
* remove handleWrkErr AnyStoreError constraint
* put AnyError in AnyStoreError constraint
* move typeclass
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2025-09-08 16:38:08 +01:00
Evgeny
8fea15245a
smp server: remove dependency of message size on the version ( #1627 )
2025-09-08 11:28:42 +01:00
Evgeny Poberezkin
2a61085f07
backward compatible encoding for missing NetworkError
2025-09-07 15:04:06 +01:00
Evgeny
4386dd8b5a
smp server: option to expire messages when new message is sent (now off by default) ( #1625 )
...
* smp server: option to expire messages when new message is sent (now off by default)
* fix test
2025-09-07 09:02:32 +01:00
Evgeny
cb3250e7b4
servers: better socket leak prevention during TLS handshake, add NetworkError type to better diagnose connection errors ( #1619 )
...
* servers: better socket leak prevention during TLS handshake
* log tcp connection errors
* more detailed network error
* log full address
* rename error
* add encodings for NetworkError
* refactor
* comment
* bind
* style
* remove parameters of NETWORK error from encoding
2025-09-02 16:07:37 +01:00
Evgeny
77bf76e1f9
smp server: fix in-memory server not restoring queue/service associations after 2+ restarts ( #1618 )
...
* smp server: fix in-memory server not restoring queue/service associations after 2+ restarts
* fix test, do not reuse database
2025-09-01 17:45:31 +01:00
Evgeny
beafac1f73
agent: make agent workers usable from other contexts ( #1614 )
2025-08-29 08:33:55 +01:00
Evgeny
e48bedeaf2
servers: fix server pages when source code is not specified, include commit SHA in printed version and in web page. ( #1608 )
...
* smp server: fix server pages when source code is not specified
* servers: include git commit in version
* flexible alpn
* fix test
* fix ghc 8.10.7 build
2025-08-23 19:59:00 +01:00
spaced4ndy
46035af9a3
agent: add context to SEMsgNotFound error ( #1604 )
2025-08-18 10:59:57 +01:00
Evgeny
96e8b4a146
smp server: wrap all queries in transactions ( #1603 )
...
* smp server: wrap all queries in transactions
* fix test
* fix schema test
2025-08-17 10:38:20 +01:00
Evgeny
2cedb66667
agent: chat relay address type for short links ( #1602 )
2025-08-15 07:24:37 +01:00
Evgeny
e345671c76
agent: extend xrcp certificate validity 1 hour in the past, to allow out of sync clocks ( #1601 )
2025-08-14 22:48:11 +01:00
Evgeny
86fb2cddc5
smp server: support short SimpleX addresses in server information / pages ( #1600 )
2025-08-12 07:31:32 +01:00
Evgeny
79ba60e3ad
agent: update contact request server hosts to match server in short link ( #1597 )
2025-08-05 12:29:50 +01:00
Evgeny
fb477b24d7
smp server: support short link URI as queue identifier in control port commands ( #1596 )
2025-08-05 08:18:39 +01:00
Evgeny
f4e7469f96
xftp server: prometheus metrics ( #1595 )
...
* xftp server: prometheus metrics
* update
Co-authored-by: sh <37271604+shumvgolove@users.noreply.github.com >
---------
Co-authored-by: sh <37271604+shumvgolove@users.noreply.github.com >
2025-07-30 16:18:49 +01:00
Evgeny
4647d69d4b
smp server: do not include previously blocked queues in stats, prevent leak of client threads ( #1593 )
2025-07-30 11:12:57 +01:00
Evgeny
c0f357d817
servers: control port session improvements ( #1591 )
...
* servers: prohibit changing role during control port session
* quota for blocked queues
* allow disabling blocking and quota
* fix test
* fix INI file
2025-07-21 15:19:43 +01:00
Evgeny
40fc09a93d
smp server: additional stat counter for ntf credentials created together with the queue ( #1589 )
...
* smp server: additional stat counter for ntf credentials created together with the queue
* fix prometheus
* fix test
* fix qSub
2025-07-18 09:26:25 +01:00
Evgeny
2a90a2c552
smp protocol: create notification credentials via NEW command that creates the queue ( #1586 )
...
* smp protocol: create notification credentials via NEW command that creates the queue
* create ntf subscription for queues created with ntf credetials
* do not create ntf credentials when switching connection to another queue
2025-07-16 16:46:45 +01:00
Evgeny
62733ef4c1
smp server: refactor subscriptions and delivery in order to always response SOK on subscription with an optional message to follow. ( #1573 )
...
* smp server: refactor subscriptions and delivery
* metric for time between MSG and ACK
* cleanup
* refactor pattern match for ghc 8.10.7
* time buckets
* split max time metric
* histogram
* fix
2025-07-12 14:18:38 +01:00
Evgeny
99e59b73a3
agent: fix message delivery in case one of the connections has no snd queue for any reason - it could break delivery to all connections ( #1585 )
...
* agent: fix message delivery in case one of the connections has no snd queue for any reason - it could break delivery to all connections
* simplify
* comment
* refactor, also postpone failing on ratchet sync send prohibited errors
* postpone failing on connection errors to allow subsequent connections succeed
2025-07-10 10:21:12 +01:00
Evgeny
384a3352cf
ntf server: more efficient status update query ( #1584 )
2025-07-08 23:01:57 +01:00
Evgeny
ba3c75e58c
smp server: correctly track if ntf service is subscribed and total subscribed queues count (fixes race condition between NSUB and NSUBS from notification server) ( #1583 )
2025-07-07 18:49:47 +01:00
Evgeny
36f05e272e
agent: support different timeouts for interactive and background requests ( #1582 )
...
* agent: support different timeouts for interactive and background requests
* fix tests
* use one constructor for the first request and for retries
2025-07-07 09:38:52 +01:00
spaced4ndy
1b8613d767
build: do not exclude postgres modules for client_library flag ( #1579 )
...
* don't exclude postgres modules for client_library flag
* fix build with client and server postgres flag
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2025-07-04 17:31:57 +01:00
spaced4ndy
c5eb66038b
agent: allow to accept contact requests after address is deleted ( #1580 )
2025-07-03 09:29:39 +00:00
Evgeny
b4bcfd325b
agent: better handling errors during connection handshake retries ( #1578 )
...
* agent: handle invitation connection handshake errors
* fix/test retries for connecting via address
2025-06-25 19:06:00 +01:00
Evgeny
976bd3a389
agent: short link encodings ( #1577 )
2025-06-24 10:06:44 +01:00
Evgeny
455360205c
smp server: prometheus histogram for message confirmation times (ACK) ( #1575 )
...
* time buckets
* split max time metric
* histogram
* histogram for confirmed delivery times
* gaugehistogram
* fix created, _ in gauge_histogram
* remove comments
* fix metrics
2025-06-20 13:46:59 +01:00
Evgeny
79c67f2026
agent: JSON encoding for connection mode ( #1576 )
2025-06-19 11:21:29 +01:00
Evgeny
c8928626fc
ntf server: do not log subscription status updates on subscribing/unsubscribing ( #1574 )
2025-06-19 09:15:07 +01:00
Evgeny
b47d28a22a
smp server: prometheus metrics for delievered and not acknowledged messages (to monitor stuck deliveries) ( #1572 )
2025-06-17 21:10:09 +01:00
Evgeny
c5b7d3c7af
agent: use flexible (small/large) string encoding for contact link data, for backward/forward compatibility ( #1569 )
...
* agent: use large string encoding for contact link data
* size-dependent user link data encoding
* tag large user data encoding with \255
2025-06-16 11:11:59 +01:00
Evgeny Poberezkin
27b1f48929
Merge branch 'stable'
2025-06-14 21:05:59 +01:00
Evgeny
6ac7101f4f
agent: make decoding for short link data forward compatible ( #1568 )
2025-06-14 14:13:14 +01:00
Evgeny
65cc19842c
servers: restore constant time for absent queue/wrong key (regression in 6.4-beta.9) ( #1567 )
2025-06-14 07:10:51 +01:00
Evgeny
656f290660
agent: fix updating short invitation link data ( #1566 )
2025-06-13 21:27:46 +01:00
Evgeny
da37384335
smp server: batch commands ( #1559 )
...
* protocol: refactor types and encoding
* clean
* smp server: batch commands (#1560 )
* smp server: batch commands verification into one DB transaction
* ghc 8.10.7
* flatten transmission tuples
* diff
* only use batch logic if there is more than one transmission
* func
* reset NTF service when adding notifier
* version
* Revert "smp server: use separate database pool for reading queues and creating service records (#1561 )"
This reverts commit 3df2425162 .
* version
* Revert "version"
This reverts commit d80a6b74c5 .
2025-06-12 23:05:04 +01:00
Evgeny
1658048c2c
Revert "smp server: use separate database pool for reading queues and creating service records ( #1561 )" ( #1564 )
...
This reverts commit 3df2425162 .
2025-06-12 11:04:43 +01:00
Evgeny
27d38518e1
agent: use PQ keys in contact request data inside link container (but not in contact request link); use PQ keys in invitations sent to contact addresses ( #1563 )
...
* agent: use PQ keys in contact request data inside link container (but not in contact request link); use PQ keys in invitations sent to contact addresses
* do not use PQ keys in the link with old address versions
2025-06-11 18:22:37 +01:00
Evgeny
cf8088ac6a
smp server: do not require ALPN for HTTP to fix Android asset links, do not use port 443 in server-server SMP connections ( #1562 )
...
* log alpn
* always use HTTP when SNI is sent, regardless of ALPN
* decide credential based on SNI
* do not use web port in SMP/Ntf servers connecting to SMP servers
* simpler
* refactor
* fix
2025-06-10 22:09:07 +01:00
Evgeny
46ff37c362
ntf server: additional statistics ( #1558 )
...
* ntf server: additional statistics
* version
* fix stats
* add stats to track notifications without active token
* refactor
* fix stats parser
* version
2025-06-09 14:14:27 +01:00