Releases: bbernhard/signal-cli-rest-api
Version 0.100
-
updated signal-cli to v0.14.5
-
the
receiveendpoint 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
-
updated signal-cli to v0.14.4.1
-
the
receiveendpoint 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
- updated
signal-clito 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-nativemode, which combines the advantages of thenativemode (faster startup, lower memory consumption) with the advantages of thejson-rpcmode (asynchronous message retrieval). It is available forx86-64andarm64.
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
- updated
signal-clito 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-nativemode, which combines the advantages of thenativemode (faster startup, lower memory consumption) with the advantages of thejson-rpcmode (asynchronous message retrieval). It is available forx86-64andarm64.
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
- updated
signal-clito v0.14.1 - added possibility to prevent the download of stickers and avatars - thanks to @bexelbie
- made the
json-rpcmode more reliable by using thesignal-clidaemon mode and doing an automatic re-connect in case the connection tosignal-cligets interrupted - correctly set
pending_invitesandpending_requestsin thegroupsendpoint - thanks to @revilo951 - fixed the error handling in the
/groups/<number>/<groupid>/membersPOST endpoint - added
all_recipientsquery parameter to thecontactsGET 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
groupsGET endpoint
Version 0.98-pre
- updated
signal-clito v0.14.1 - added possibility to prevent the download of stickers and avatars - thanks to @bexelbie
- made the
json-rpcmode more reliable by using thesignal-clidaemon mode and doing an automatic re-connect in case the connection tosignal-cligets interrupted - correctly set
pending_invitesandpending_requestsin thegroupsendpoint - thanks to @revilo951 - fixed the error handling in the
/groups/<number>/<groupid>/membersPOST endpoint - added
all_recipientsquery parameter to thecontactsGET 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
groupsGET 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
- updated signal-cli to v0.13.23
- the
/v1/devicesendpoint 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/unregisterendpoint now also works injson-rpcmode
Version 0.96
- fixed bug in styled formatting in
sendendpoint (see #757) - updated signal-cli to version 0.13.22
Version 0.95
- 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 thechownon 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
- query parameters can now be accessed in the plugins mechanism (thanks @d-rk)
- added optional webhook mechanism to json-rpc mode (see
RECEIVE_WEBHOOK_URLenv. variable) - updated signal-cli to version 0.13.18
- the group link state can now be set via the
groupsPUT request - added
view_onceparameter to the/v2/sendendpoint (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
groupsPOST/PUT endpoints