DEV Community

Cover image for Announcing Appwrite 0.15 with Phone Authentication & More!
Torsten Dittmann for Appwrite

Posted on

Announcing Appwrite 0.15 with Phone Authentication & More!

Today, we're thrilled to announce the official release of Appwrite 0.15, including one of our most anticipated features: Phone Authentication! ๐Ÿฅ

Besides Phone Authentication, Appwrite 0.15 also comes with some exciting features, including improved Metadata on all Resources, Webhook Signature, and multiple bug fixes.

๐Ÿค” New to Appwrite?

Appwrite is an open-source back-end-as-a-service that abstracts all the complexity of building a modern application by providing you with a set of REST and Realtime APIs for your core back-end needs. Appwrite takes the heavy lifting for developers and handles user authentication and authorization, databases, file storage, cloud functions, webhooks, and much more!

๐Ÿ“ฑ Phone Authentication is Here!

Phone Authentication
With this release, we are introducing a feature, which has been one of our longest open issues on the Appwrite GitHub repository. Now you are able to authenticate Users, by sending them 6 digits to their phone and have them enter them in your application. Phone authentication will be the 6th authentication method that is now supported at Appwrite alongside email/password, anonymous login, magic links, team invites and JWT.

Initially there are 3 providers which can be used with Appwrite to send SMS verification codes:

The following Environment Variables have been added for configuring Phone Authentication:

  • _APP_PHONE_PROVIDER
    Provider used for delivering SMS for Phone authentication. Use the following format: phone://[USER]:[SECRET]@[PROVIDER]. Available providers are twilio, text-magic and telesign.

  • _APP_PHONE_FROM
    Phone number used for sending out messages. Must start with a leading '+' and maximum of 15 digits without spaces (like +123456789).

Once you have set up your environment variables with your favorite provider credentials, you can call the createPhoneSession method, passing the phone number of the User. This method will send a six digit code to your user as an SMS message.
Once received by your user and submitted back to your application or website , you can verify your userโ€™s code - which is valid for 15 minutes - using the updatePhoneSession method.

Appwrite Phone Authentication

We have also added the phone and phoneVerified attributes to the User Object. These new attributes will help you know the user verification status and decide whether you want to force the user to verify his phone or not.

In summary, following endpoints have been added to the Account Service:

  • createPhoneSession
    For initializing the phone authentication.

  • updatePhoneSession
    For completing the phone authentication.

  • updatePhone
    For adding a phone number to your userโ€™s account.

  • createPhoneVerification
    For initializing phone verification.

  • updatePhoneVerification
    For completing phone verification.

Additionally the Users Service has these new endpoints:

  • updatePhone
    For updating the use phone number.

  • updatePhoneVerification
    For changing verification status.

๐Ÿ“€ Multiple Databases For Each Project

Appwrite Databases

Until now, each Appwrite project could only use a single database. Starting with version 0.15, this is no longer the case. We're happy to introduce a new database layer to allow you to have as many database instances as you want under a single Appwrite project. Currently, all your project databases still have to use the same database adapter under the hood as defined in your Appwrite's instance environment variables, but this is our first step towards adding support for multiple database adapters under the same Appwrite project.

In the next few months, we will continue to expand our database adapters support, and we can already share that besides existing support for MariaDB and MySQL, we are working on adding support for both MongoDB and Postgres. With the new database layer in place, we will allow you to have multiple adapters under the same project. This will allow you to micro-optimize your project's performance, choose the best technology for your specific use case, and give your team the flexibility and comfort to work with the tools and technologies you already love and trust. All of that is on top of the same Appwrite experience you are already familiar with.

Multiple Databases

๐ŸŽ‰ New $createdAt & $updatedAt Attributes

They are finally here, $createdAt and $updatedAt are now part of every Resource in Appwrite and contain a timestamp of the date of creation and the latest update. This comes in very handy, if the ordering of the resources is important or if you want to implement offline sync with your application. The new attributes are $createdAt and $updatedAt.

๐Ÿ” Webhook Signatures

Appwrite Webhook Signatures
Security is vital for everyone here at Appwrite, and we strive to give you easy-to-use tools to keep you and your users safe against web threats. This commitment to security is why with version 0.15, we have introduced the ability to validate webhooks with Appwrite. Webhooks now include a x-appwrite-webhook-signature which can be used in combination with a unique Signature Key found in the Webhook to validate the Webhook is actually coming from Appwrite.

๐Ÿ”ฎ New OAuth Provider for Dailymotion and Autodesk, Gitlab Got an Upgrade

Appwrite OAuth Provider

We introduced new OAuth providers for Dailymotion and Autodesk. These new adapters are taking our count to a total of 32(!) supported OAuth providers in Appwrite. On top of the new providers, the GitLab adapter has also been upgraded to support a custom hostname for those of you who are using a self-hosted edition of GitLab.

๐Ÿฅณ And More!

We still haven't covered everything! There's lots more bug fixes and other micro optimizations we made under the hood to make your experience with Appwrite better!

To get all the details on Appwrite 0.15, check out all the changes in the changelog on GitHub.

โญ Whatโ€™s Next?

Appwrite 0.16 is not far away and we promise it's going to be even more exciting ๐Ÿคฉ We'll continue improving upon Appwrite's solid performance, flexibility and adding amazing new features.

Do you have ideas for an exciting new feature ? Open up a Github Discussion so you can get feedback from the core team, maintainers and our ever growing community.

You're welcomed to join us on Discord to get all the latest updates about new Appwrite versions and chat directly with the Appwrite team.

Discussion (3)

Collapse
brianmutiso profile image
Brian Mutiso

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ I hope more complex querying will be introduced soon,

Collapse
eldadfux profile image
Eldad A. Fux

It is something we always think of, we might even release some updates in the next version.

Collapse
kingssamuel profile image
Samuel Kings

Are we gonna have related documents any soon?