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!
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.
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
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.
๐ 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
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
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.
Top comments (4)
๐ฅ๐ฅ๐ฅ I hope more complex querying will be introduced soon,
It is something we always think of, we might even release some updates in the next version.
Are we gonna have related documents any soon?
This is in the works, and we hope to release some more database features in Q4 this year.