CHANGELOG#
Note
The versions are synchronized between the Docker image versions of the daemon, the Python module olvid-bot and the Docker image bot-python-runner.
The versions follow the following semantics: MAJOR.MINOR.PATCH. All elements are assumed to work together as long as they share the same major and minor version. However, it is recommended to always use the same patch version.
Minor and/or major versions will be incremented at a minimum for each change in the gRPC-Protobuf API.
Latest version: 2.0.1#
Danger
Bot version 2 brings lots of changes and improvements but is NOT RETRO-COMPATIBLE. You might follow our migration process to update your existing code BEFORE updating your dependencies.
New Features#
Implemented new Olvid backups in anticipation of multi-device implementation in the daemon. To set up backups, see here.
Added parameters to configure the behavior of each identity on a daemon (invitations auto-accept, message cleanup, automatic addition of new Keycloak members).
Implementation of a new bot authentication mechanism in Keycloak that solves disconnection issues.
Performance and stability improvements.
Added the 📚️ Reference section in this documentation to describe and document all the possibilities of the daemon.
Added#
Daemon
SettingsCommandService: new service to change settings associated with a discussion or an identity.
BackupAdminService: new service for displaying and/or restoring backups.
DiscussionCommandService: added command DiscussionDownloadPhoto
ToolCommandService: new commands to check the version of the daemon and test client keys.
Invitation: addition of the optional field mediatorId containing the id of the contact who initiated the introduction.
Python Client
Improvements and simplification of the framework, see the migration guide.
N8N
Addition of the operation
Send a message and wait for approval or responseto add manual validation in Olvid (message or addition of reaction).
Deletions#
Python Client
tools: removal of AutoInvitationBot, DiscussionRetentionPolicyBot, SelfCleaningBot, KeycloakAutoInvitationBot classes. See the section Bonnes pratiques to replace them.
Fixes#
Daemon
MessageCommandService:
The “reaction” field is now optional for the MessageReact command in order to remove an existing reaction.
messageDelete: (v2.0.1) revision of the API behavior for the delete_everywhere field to reflect the reality of the implementation.
Addition of a database cleanup service to clean empty pages (VACUUM).
GroupNotificationService: (v2.0.1) solved many issues in notification filtering.
CLI
Improvement of the reliability of interactive commands (identity new, contact new, invitation send).
Version: 1.5.0#
New Features#
Three new modules are now officially supported :
@olvid/bot-node: a npm module written in TypeScript to develop amazing bots and scripts in TypeScript or Node.js. (cf: JavaScript Client)
@olvid/bot-web: a reworked version of the previous module that can run in a web browser to create web pages or business applications that interact Olvid. (cf: 🌐 Web Browser)
n8n-nodes-olvid: The Olvid node is now available in n8n as a community node. Easily integrate Olvid with external services in no-code workflow. (cf: 🟥 N8N)
Added#
Daemon
Addition of the tool service and the ping command. This is an unauthenticated endpoint that simply checks if a connection to the daemon is possible.
Fixes#
Daemon
The MessageDeletedNotification notification was sent twice when a message was remotely deleted.
MessageNotificationService: it was not possible to filter certain notifications by messageId for incoming messages. (messageBodyUpdated, messageReactionAdded, …)
MessageCommandService: It is no longer possible to respond to a message from another conversation
Version: 1.4.1#
Added#
Daemon
It is now possible to connect to a daemon using an HTTPS connection. The setup is documented here: Configuration SSL.
Python Client
tools.AutoInvitationBot: it is now possible to choose the types of invitations to accept (group invitation, introduction, …).
Fixes#
Daemon
TLS: Changed the JVM used in the Docker image. The previous one crashed during the setup of TLS encryption.
Miscellaneous fixes
Version: 1.4.0#
New Features#
Notification Filtering: It is now possible to use parameters when subscribing to a notification type. In this case, only notifications matching these parameters (filter, counter, etc.) will be sent to the client.
Minimalist call management: It is now possible to start calls with one or more contacts or in a discussion. You can als subscribe to events related to this call (someone picked up, someone is already on the phone, etc.)
Added#
Daemon
Notification Filtering: addition of parameters to all methods of the notification service, including filters and a counter. These parameters are all optional and therefore backward compatible.
Minimalist call management: Addition of gRPC services CallCommandService and CallNotificationService
commands: CallStartDiscussionCall, CallStartCustomCall
notifications: AppelEntrant, AppelSonnerie, AppelAccepte, AppelRefuse, LigneOccupee, AppelTermine.
datatypes: Call
CLI:
addition of the
call startcommand to begin a call using the new calling API (themessage voipcommand is now deprecated).addition of the
-ioption to theidentity getandcontact getcommands to display the identifier in bytes.
Fixes#
Daemon
Change in sending notifications
ContactNewNotification: is now sent the first time a contact is added (regardless of their one-to-one status). The notification is sent after a secure channel has been established and the contact’s capabilities have been downloaded.
DiscussionNewNotification: is always sent when a discussion is created or changes from the Locked to Unlocked status (returning to a group, transitioning a contact to one-to-one).
MessageReceivedNotification and AttachmentReceivedNotification: are now sent at the same time, when the message and all attachments have been correctly written to the database. (Resolves issues with listing newly arrived attachments).
Various corrections of notifications that could be sent twice
datatypes.ReactionFilter: field renamed,reactionbecomeshas_reaction
CLI
identity get -l: this command always returned the invitation link of the first identity.
Python Client
tools.SelfCleaningBot: messages could have been wrongly deleted when the function is_message_for_cleaning was provided.
Version: 1.3.0#
New Features#
It is now possible to send continuous location sharing messages 🗺️!
Added#
Daemon
Addition of location sharing in the
MessageCommandservice, with the methods MessageStartLocationSharing, MessageUpdateLocationSharing and MessageEndLocationSharing.Addition of the MessageLocationSent notification in the
MessageNotificationservice to harmonize the API.Modification of the behavior of methods MessageLocationSharingStart, MessageLocationSharingUpdate, and MessageLocationSharingEnd, which are now also emitted for outbound messages.
CLI
Addition of the
message locationcommand group with commands:message location sendmessage location startmessage location updatemessage location end
Addition of the
contact resetcommand (use with caution!) to resolve some blockages involving an identity and its contacts.Addition of the
storage resetcommand to remove all entries from storage (in global storage, and all discussion storages).
Fix#
Python Client
tools.ChatBot: help messages were sent twice in certain conditions.
tools.SelfCleaningBot: all messages were deleted on start when the function is_message_for_cleaning was provided.
Version 1.2.0#
Added#
Daemon
Addition of the service
KeycloakCommandwith methods KeycloakUserList and KeycloakAddUserAsContact to list users present on Keycloak and add them as contacts. (⚠️ Requires version 4.1 or higher of the Olvid plugin for Keycloak)Addition of the
downloadPhotocommand for identities, contacts and groups.Addition of
photoUpdatednotifications for contacts and groups.Addition of the
getBytesIdentifiercommands for identities, contacts, groups and conversations. This allows them to be uniquely identified in the long term, even in case of backup restoration.Addition of the
getInvitationLinkcommand for identities and contacts (datatypes.Identity.invitation_link is now marked as deprecated).Addition of the fields editedBody and forwarded in the message
datatypes.Message
Python Client
Addition of the class tools.KeycloakAutoInvitationBot to automatically add all new Keycloak users to its contacts.
CLI
Implementation of new entry points for the daemon in the following commands:
contact kc get/add: KeycloakCommandServiceidentity/contact/group photo save: downloadPhotoidentity/contact get -l: getInvitationLink
Fixes#
Daemon
The fields has_a_photo were not filled in correctly for contacts and groups.
CLI
storage get -f: the option was not handled properly.olvid-cli -kwas displaying an unnecessary error.group get -f: formatting fix.
Version 1.1.0#
Added#
Daemon
It is now possible to send location messages using the new gRPC method
messageSendLocation(implemented in clients and CLI).added the ability to encrypt communications between the daemon and clients using TLS. (Configuration TLS)
it is now possible to set custom options to the JVM and specifically to set up an HTTP proxy. (Configuration JVM)
Python Client
added subpackage
olvid.errorsto handle exceptions in a simpler way.
Modifications#
Python Client:
replaced environment variables DAEMON_HOSTNAME and DAEMON_PORT by DAEMON_TARGET.
.client_key and .admin_client_key files are deprecated, use a
.envfile instead.OlvidBotclass is now deprecated, please use the classOlvidClientinstead.
Docker:
The construction and size of Docker images bot-daemon and bot-python-runner have been greatly improved.
Fixes#
Python Client:
tools.SelfCleaningBot: the parametersclean_inbound_messagesandclean_outbound_messagesare now properly handled.
Version 1.0.0#
Initial version of the project.