Server supporting the Signal Private Messenger applications on Android, Desktop, and iOS
Go to file
Ehren Kret 0dcb4b645c
Build Dynamo DB backed Message Store (#358)
* Work in progress...

* Finish first pass draft of MessagesDynamoDb

* Use begins_with everywhere for destination device id

* Remove now unused methods

* First basic test built

* Add another test case

* Remove comment

* Verify more of the message contents

* Ensure all methods are tested

* Integrate MessagesDynamoDb into the MessagesManager

This change plugs the MessagesDynamoDb class into the live serving
flow in MessagesManager.

Tests are not yet as comprehensive for this big a change as they
should be, but they now compile and pass so checkpointing here with a
commit.

* Put DynamoDB before RDBS when deleting specific messages

* Extract method

* Make aws sdk version into a property

* Rename clientBuilder

* Discard messages with no GUID

* Unify batching logic into one function

* Comment on the source of the value in this constant

* Inline method

* Variable name swizzle

* Add timers to all public methods

* Add missing return statements

* Reject messages that are too large with response code 413

* Add configuration to control dynamo DB timeouts

* Set server timestamp from the ReceiptSender

* Change to shorter key names to optimize IOPS

* Fix tests broken by changing column names

* Fix broken copyright template output

* Remove copyright template error text

* Add experiments to control use of dynamo and rds in message storage

* Specify instance profile credentials for the dynamic configuration manager

* Use property for aws sdk version

* Switch dynamo to instance profile credentials

* Add metrics to the batch write loop

* Use placeholders in logging
2021-02-03 10:03:19 -06:00
.github/workflows add GitHub Actions CI 2020-06-29 10:43:40 -04:00
.jdk-overlay/jre/lib/security Squashed History 2013-12-08 23:11:09 -08:00
gcm-sender-async Build Dynamo DB backed Message Store (#358) 2021-02-03 10:03:19 -06:00
redis-dispatch Make copyright notices consistent 2020-10-23 10:16:02 -05:00
service Build Dynamo DB backed Message Store (#358) 2021-02-03 10:03:19 -06:00
websocket-resources Include client age/UA string when closing due to a spurious keepalive request. 2020-11-10 11:45:12 -05:00
.gitignore Bump version to 3.26 2020-05-12 10:06:07 -07:00
LICENSE Make copyright notices consistent 2020-10-23 10:16:02 -05:00
README.md Make copyright notices consistent 2020-10-23 10:16:02 -05:00
pom.xml Build Dynamo DB backed Message Store (#358) 2021-02-03 10:03:19 -06:00

README.md

Signal-Server

Documentation

Looking for protocol documentation? Check out the website!

https://signal.org/docs/

Cryptography Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

License

Copyright 2013-2020 Signal Messenger, LLC

Licensed under the AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html