Client-side proxy support and more

The new Shadow client v1.17.0 introduces client-side support for proxying the client-server traffic. Registering on a Shadow server via a proxy is also made possible. The proxy server information can be shared directly or via an Android deep link (much like with Shadow groups). The Shadow proxy module will be published with the forthcoming release of the Shadow server.

Beside that, the new release of the client brings forth chat wallpapers, editable user status descriptions and last, but not least, internet connectivity check upon initial registration. Yes, the most popular technical support case has been that a user tried to register without internet connectivity on their smartphone – hopefully, now there’s the end to that.

Group links

Starting with Shadow client v1.15.0, one can access a Shadow group via a group link. The group link is just an HTTPS link. Despite its being tied to our domain, it is not intended to bring the Shadow client anywhere on our website or other servers. Instead, it is used by the Shadow client to parse information encoded in the link itself (even without resolving it into an IP address) – which subsequently allows it to access the group in question. During this process, the Shadow client does not hit our servers at all (and hence your IP address is not revealed to us).

The only case when you would hit our website using the group link is when you open it with a web browser – the obvious scenario for that, of course, being when you do not have a Shadow client installed (and the web page where you land will tell you exactly that). If you have Shadow installed, then Android is instructed to open group links with Shadow, not with your web browser.

ZK groups

The new Shadow client v1.13.0 brings forth the following functionality:

  • zero-knowledge groups
  • mentions
  • controllable updates (the Shadow server admin is now able to forbid client updates)
  • server-side control of attachment limits
  • official support for Android 10

It is not backward compatible with old versions of the Shadow server and requires Shadow server v2.03.

Server-side ZK group support

The new Shadow server v2.03 introduces server-side support for ZK (stands for “zero-knowledge”) group system – a group system based on anonymous credentials. The client-side ZK group functionality will be activated in the forthcoming release of the Shadow client, hence it is recommended that you upgrade your server to v2.03 without delay, lest new group creation is broken for you with the client update.

Delete messages remotely

Starting with the Shadow client v1.12.2, the feature of remote deletion is available. Having posted a message erroneously, one can delete it not only for themselves, but also for the remote part of the conversation. This kind of deletion can be performed within a reasonable interval of time since the message of question has been posted (currently three hours).

Truncate chats by time

The new Shadow client v1.11.0 introduces the possibility to set the depth of message storage in terms of time – this in addition to the same in terms of number of messages in a chat (which option has long been available and remains to stay). All messages older than the specified amount of time are automatically deleted. This is local to your client and applies to all messages in all chats at once, as opposed to the “Disappearing messages” functionality applicable to individual chats. Of course you still can keep messages forever if you wish.

The setting is accessible via the Storage -> Keep messages menu.

Old activation model phased out

With new Shadow client v1.10.0 the old client-side activation model is phased out. The new client requires Shadow server v2.00 or above and is incompatible with old server versions.

New activation paradigm and more

The new Shadow server v2.00 is the first release to implement the new activation paradigm. Instead of activating each Shadow client individually, a single activation key related to the Shadow server itself has to be used. Currently, the only parameter “activated” is the number of user accounts (active and pending) provisioned on the server. It is important that this parameter is completely deindividualized in relation to usernames or client devices – only the total number matters. What is perhaps even more important, no activation at all is required if the number of accounts is three or less!

For a short transition period the two activation schemes (old and new) are run in parallel, but the old client-related activation will be phased out with the next release of the Shadow client. The old client activation API of the server will still be supported for some time for backward compatibility.

Another notable change in v2.00 is that the admin-side “soft deletion” is no more: a removed account is now removed from the server completely (and not simply inactivated).

Link previews and certificate pull

The new Shadow client v1.9.x brings two notable improvements. The first one is that link previews are now available for arbitrary web links, and not only for a subset of pre-approved websites as it has been hitherto. The second improvement addresses the possibility of the unfortunate event of the server certificates’ expiry having been missed. Previously that would either make new registrations impossible or lock the existing users out of service, depending on whether the administrator chose to keep expired certificates or rotate for the new ones. Starting with Shadow client 1.9.2, certificate pull is introduced, enabling users to download new certificates from the server while still trusting the old (expired) ones. This way, certificate rotation on the server can be done without interrupting service for the end-users.