Skip to content

Releases: bbernhard/signal-cli-rest-api

Version 0.100

11 Jun 22:27

Choose a tag to compare

  • updated signal-cli to v0.14.5

  • the receive endpoint in the Swagger API now contains the correct schema (thanks to @Gara-Dorta)

  • various improvements to the signal-cli-rest-api Github CI jobs (thanks to @Gara-Dorta and @arnehuang)

  • fixed potential crash in base64 attachment parsing (thanks to @SAY-5)

  • improved the plugin mechanism. (if you are using your own plugins, please consider migrating your plugin to the new plugin format).

  • added possibility to persist all received messages into a sqlite3 database.

    This is a feature that was requested a few times over the past years, but I never wanted to implement, because:

    • coming up with a database schema which serves every purpose is hard (which data should be stored? just the messages? the attachments too? what about the events?)

    • it adds additional (unnecessary) dependencies to third party libraries (sqlite3, lua script, etc) which increase the potential attack vector. While adding dependencies is justifyable if you get something in return, it's bad for people who don't want to use that feature - which I guess will be the majority.

    By providing that functionality as a plugin, both of those points are considered. If you aren't happy with the database schema and/or which data is stored, you can easily adapt the lua script to your needs. Since all the additional dependencies are compiled into a dedicated shared object, which is only loaded if the plugins are explicitly enabled. I think that's a acceptable tradeoff.

    If you want to give this new plugin a try, have a look here.


Rootless Image: bbernhard/signal-cli-rest-api:0.100-rootless

If you want to know the difference between the main version and the rootless version, have a look at the release notes of the last release.

Important Information:
If no issues appear, I am planning to merge the rootless image into the main image with the next release. That means, beginning with next release there will only be one image. If you haven't tested the rootless image yet, I am encouraging you to give it a try and check if everything works for you. If not, please raise an issue!

Version 0.100-pre

02 Jun 21:03

Choose a tag to compare

Version 0.100-pre Pre-release
Pre-release
  • updated signal-cli to v0.14.4.1

  • the receive endpoint in the Swagger API now contains the correct schema (thanks to @Gara-Dorta)

  • various improvements to the signal-cli-rest-api Github CI jobs (thanks to @Gara-Dorta and @arnehuang)

  • fixed potential crash in base64 attachment parsing (thanks to @SAY-5)

  • improved the plugin mechanism. (if you are using your own plugins, please consider migrating your plugin to the new plugin format).

  • added possibility to persist all received messages into a sqlite3 database.

    This is a feature that was requested a few times over the past years, but I never wanted to implement, because:

    • coming up with a database schema which serves every purpose is hard (which data should be stored? just the messages? the attachments too? what about the events?)

    • it adds additional (unnecessary) dependencies to third party libraries (sqlite3, lua script, etc) which increase the potential attack vector. While adding dependencies is justifyable if you get something in return, it's bad for people who don't want to use that feature - which I guess will be the majority.

    By providing that functionality as a plugin, both of those points are considered. If you aren't happy with the database schema and/or which data is stored, you can easily adapt the lua script to your needs. Since all the additional dependencies are compiled into a dedicated shared object, which is only loaded if the plugins are explicitly enabled. I think that's a acceptable tradeoff.

    If you want to give this new plugin a try, have a look here,

This is a pre-release. If you want to give it a try, please use this version bbernhard/signal-cli-rest-api:0.202-dev


Rootless Image: bbernhard/signal-cli-rest-api:0.202-rootless-dev

If you want to know the difference between the main version and the rootless version, have a look at the release notes of the last release.

Important Information:
If no issues appear, I am planning to merge the rootless image into the main image with the next release. That means, beginning with next release there will only be one image. If you haven't tested the rootless image yet, I am encouraging you to give it a try and check if everything works for you. If not, please raise an issue!

Version 0.99

29 Apr 21:32

Choose a tag to compare

  • updated signal-cli to v0.14.3
  • various swagger documentation improvements (thanks to @Gara-Dorta)
  • improved error handling in JSON-RPC mode (thanks to @philljolly)
  • added API endpoints to pin/unpin messages in groups
  • added new json-rpc-native mode, which combines the advantages of the native mode (faster startup, lower memory consumption) with the advantages of the json-rpc mode (asynchronous message retrieval). It is available for x86-64 and arm64.

Important information:
With this release, a dedicated rootless container image is now available for testing. This allows the container to be run in rootless mode, further enhancing security.

The new image is a drop-in replacement for the existing one - fully compatible and requiring no changes on your side. However, if you prefer, you can now switch your Docker or Podman setup to run in rootless mode.

From a technical perspective, the new image uses s6 instead of supervisorctl for process monitoring - which doesn't require root access.

For the time being, the rootless image will be distributed separately. This approach allows to gather community feedback and ensure there are no unintended regressions. Once sufficient feedback has been gathered, these changes will be merged into the main image.

I strongly encourage everyone to try out the new image and share your feedback - this ensures a smooth tranistion to the new image architecture.

Thanks to @poggenpower for implementing the majority of this functionality!

If you want to give the rootless image a try, please use this version: bbernhard/signal-cli-rest-api:0.99-rootless

Version 0.99-pre

19 Apr 19:56

Choose a tag to compare

Version 0.99-pre Pre-release
Pre-release
  • updated signal-cli to v0.14.2
  • various swagger documentation improvements (thanks to @Gara-Dorta)
  • improved error handling in JSON-RPC mode (thanks to @philljolly)
  • added API endpoints to pin/unpin messages in groups
  • added new json-rpc-native mode, which combines the advantages of the native mode (faster startup, lower memory consumption) with the advantages of the json-rpc mode (asynchronous message retrieval). It is available for x86-64 and arm64.

This is a pre-release. If you want to give it a try, please use this version: bbernhard/signal-cli-rest-api:0.200-dev


Important information:
With this release, a dedicated rootless container image is now available for testing. This allows the container to be run in rootless mode, further enhancing security.

The new image is a drop-in replacement for the existing one - fully compatible and requiring no changes on your side. However, if you prefer, you can now switch your Docker or Podman setup to run in rootless mode.

From a technical perspective, the new image uses s6 instead of supervisorctl for process monitoring - which doesn't require root access.

For the time being, the rootless image will be distributed separately. This approach allows to gather community feedback and ensure there are no unintended regressions. Once sufficient feedback has been gathered, these changes will be merged into the main image.

I strongly encourage everyone to try out the new image and share your feedback - this ensures a smooth tranistion to the new image architecture.

Thanks to @poggenpower for implementing the majority of this functionality!

If you want to give the rootless image a try, please use this version: bbernhard/signal-cli-rest-api:0.200-rootless-dev

Version 0.98

10 Mar 21:11

Choose a tag to compare

  • updated signal-cli to v0.14.1
  • added possibility to prevent the download of stickers and avatars - thanks to @bexelbie
  • made the json-rpc mode more reliable by using the signal-cli daemon mode and doing an automatic re-connect in case the connection to signal-cli gets interrupted
  • correctly set pending_invites and pending_requests in the groups endpoint - thanks to @revilo951
  • fixed the error handling in the /groups/<number>/<groupid>/members POST endpoint
  • added all_recipients query parameter to the contacts GET endpoint to return all known recipients and not only contacts - thanks to @dangnabit
  • added possibility to look up contacts via the UUID - thanks to @dangnabit
  • the group permissions are now correctly returned in the groups GET endpoint

Version 0.98-pre

09 Mar 18:53

Choose a tag to compare

Version 0.98-pre Pre-release
Pre-release
  • updated signal-cli to v0.14.1
  • added possibility to prevent the download of stickers and avatars - thanks to @bexelbie
  • made the json-rpc mode more reliable by using the signal-cli daemon mode and doing an automatic re-connect in case the connection to signal-cli gets interrupted
  • correctly set pending_invites and pending_requests in the groups endpoint - thanks to @revilo951
  • fixed the error handling in the /groups/<number>/<groupid>/members POST endpoint
  • added all_recipients query parameter to the contacts GET endpoint to return all known recipients and not only contacts - thanks to @dangnabit
  • added possibility to look up contacts via the UUID - thanks to @dangnabit
  • the group permissions are now correctly returned in the groups GET endpoint

This is a pre-release. If you want to give it a try, please use this docker image tag: bbernhard/signal-cli-rest-api:0.199-dev

Version 0.97

31 Jan 12:43

Choose a tag to compare

  • updated signal-cli to v0.13.23
  • the /v1/devices endpoint now also returns the device id (thanks to @Kamaradas)
  • added a new endpoint to remove a device (thanks to @Kamaradas)
  • added a new endpoint to remove the local account data (thanks to @Kamaradas)
  • added a new endpoint to return the raw linking code, instead of the QR code (thanks to @Kamaradas)
  • added REST API endpoints to create, delete and vote in Signal Polls
  • the /v1/unregister endpoint now also works in json-rpc mode

Version 0.96

02 Dec 21:50

Choose a tag to compare

  • fixed bug in styled formatting in send endpoint (see #757)
  • updated signal-cli to version 0.13.22

Version 0.95

03 Oct 19:03

Choose a tag to compare

  • updated signal-cli to v0.13.20
  • added possibility to change permissions with the groups PUT request
  • added possibility to change the send messages permission when creating
    a group with the POST request
  • added new remote-delete endpoint (thanks to @Era-Dorta)
  • whitespaces in phone numbers do not result in validation errors anymore
  • added new env variable SIGNAL_CLI_CHOWN_ON_STARTUP - which skips the chown on startup (thanks to @WKeaganW)
  • added missing description parameter to the link preview payload
  • various documentation improvements (thanks to @jakommo, @f2calv, @CodeShellDev, @Era-Dorta)

Version 0.94

26 Jul 21:02

Choose a tag to compare

  • query parameters can now be accessed in the plugins mechanism (thanks @d-rk)
  • added optional webhook mechanism to json-rpc mode (see RECEIVE_WEBHOOK_URL env. variable)
  • updated signal-cli to version 0.13.18
  • the group link state can now be set via the groups PUT request
  • added view_once parameter to the /v2/send endpoint (be aware: this parameter can only be used when sending images!)
  • added env variables to ignore the download of attachments and stories in json-rpc mode
  • Signal usernames can now be used in the groups POST/PUT endpoints