Thu, Jan 18, 2018
Mon, Jan 15, 2018
DreamFactory 2.11 now supports AMQP. As you may know, AMQP stands for Advanced Message Queuing Protocol. DreamFactory's AMQP client service is an implementation of the AMQP-0-9-1 Protocol. With this service you can now use DreamFactory as an AMQP client for your projects. Once you've configured the AMQP client service in DreamFactory, you can easily publish messages to exchange and consume messages from queues using REST APIs. We've tested this service with RabbitMQ.
Fri, Jan 12, 2018
DreamFactory 2.11 has shipped! 2.11 has a bunch of great new features, including support for GraphQL, RabbitMQ, and MongoDB GridFS file storage. You can get the DreamFactory 2.11 release now from Bitnami or GitHub. Here's what's new:
Fri, Nov 10, 2017
DreamFactory 2.10 is live! The 2.10 release adds support for the OpenAPI 3.0 spec, role-based access control for the DreamFactory Admin App, and a number of bug fixes. Head on over to Bitnami or GitHub to install DreamFactory 2.10. Here's what's new:
Mon, Oct 9, 2017
DreamFactory 2.9 supports Single Sign On (SSO) using Windows Authentication. DreamFactory's SQL Server service also supports Windows Authentication. However, SSO with Windows Authentication has some prerequisites. Here's what you need to know to set it up.
Wed, Oct 4, 2017
DreamFactory 2.9 introduces a new feature that allows you to link your event scripts and custom scripts to a file that is managed in your GitHub or GitLab account. This feature uses the new GitHub and GitLab services in DreamFactory 2.9. This eliminates the need to manually update your DreamFactory scripts when you update those scripts in your source control repo.
Thu, Sep 28, 2017
Over the years, we have used a few different cloud providers to host DreamFactory Developer Sandboxes. Every single cloud provider uses different terms and concepts for basically the same thing - compute, storage, transfer, gateways, and DNS routing, just to name a few. Having recently made the switch to the Oracle Bare Metal platform for our API Automation Portal, our team was immediately impressed by cost, performance, and ease of use.
Tue, Sep 26, 2017
DreamFactory 2.9 introduces two brand new services - GitHub and GitLab. This feature provides an easy way to connect to your project’s Git repositories and access them from DreamFactory. The real benefit here is the ability to create a live link to your DreamFactory server-side script that you manage on your own GitHub or GitLab account.
Sun, Sep 24, 2017
DreamFactory 2.9 has shipped! This release has some significant enhancements, including support for Active Directory Single Sign On, SQL Server Windows Authentication, and scripting integration with both GitHub and GitLab. You can get the 2.9 release from Bitnami or GitHub. Here's what's new:
Tue, Sep 12, 2017
One of DreamFactory's most popular features is the ability to pull in foreign key related records in an API call, and even to create your own virtual relationships between disparate data sets. This make compiling all the data you need in one place a matter of asking the API for the related items. You can use filters and ordering to select the exact records you want to display, and their related items come along for the ride. Simple. Easy.
Tue, Aug 15, 2017
Wed, Aug 9, 2017
DreamFactory 2.8 introduces the MQTT Client Service. As you may know, MQTT is a communication protocol for the publish-subscribe architecture. You can now use DreamFactory as a MQTT client for your IoT projects. It's easy to connect to any MQTT-based message broker using DreamFactory and easily publish and subscribe to any topic.
Mon, Aug 7, 2017
DreamFactory 2.8 just shipped! The 2.8 release is packed with new features, including support for FTP, SFTP, FTPS, WebDav, IBM Informix, MQTT, and SAML/OpenID SSO. Head on over to Bitnami or GitHub to install DreamFactory 2.8. Here's what's new:
Fri, Jul 28, 2017
On July 19th DreamFactory hosted another expert panel discussion, this time addressing the topic of microservices. The panel brought to the table two thought leaders and industry experts -- Kin Lane, the API Evangelist, and our friend, Analyst, Architect, Adviser, and frequent Forbes contributor Janakiram MSV, whom we couldn't get enough of following the IoT panel discussion.The discussion, moderated by VP of Product Ben Busse, took aim at the subject of designing web-scale workloads with microservices.
Tue, Jun 13, 2017
DreamFactory 2.7 introduces a new system endpoint - api/v2/system/import that allows you to import data files using a database service of your choice. Currently the feature supports CSV files. Support for XML and JSON is on our roadmap for future releases. This new endpoint is a DreamFactory native endpoint and it is a part of the “system” service. This endpoint is available to use right out of the box without the need for installing additional driver/extensions.
DreamFactory 2.7 has shipped! This release includes support for CSV file import, OpenID Connect, a new installer program to customize your DreamFactory installation, and many more bug fixes and enhancements. Get the 2.7 release from Bitnami or GitHub now. Here's what's new:
Mon, Jun 5, 2017
On May 24th DreamFactory hosted an IoT expert panel discussion. Moderated by VP of Product Ben Busse and featuring industry experts DreamFactory CEO Bill Appleton and IoT Industry thought leader, Advisor, Analyst and Architect Janakiram MSV. In case you missed it, let me give you the scoop.
Fri, Jun 2, 2017
There are many diverse organizations around the world leveraging the power of DreamFactory’s open source REST API to tackle some really cool projects. One government organization in Southeast Asia is using our REST API to power their Geographic Information System (GIS) website.
Mon, May 22, 2017
DreamFactory 2.7 Silver and Gold now includes the OpenID Connect service . As you may know, OpenID Connect is a wrapper around OAuth 2.0. This means you can now easily authenticate your users into a DreamFactory-based application using any OAuth 2.0/OpenID Connect service provider.
Dreamfactory has long touted our ability to securely generate REST APIs from a slew of different sources like SQL,NoSQL,SOAP, Files, AD/LDAP, SNS, SSO but Dreamfactory also allows you to connect existing REST services. In this short tutorial I’ll show you how to configure an HTTP service in DreamFactory using Open Data from data.gov, test it out and even infuse a little Swagger for documentation!
Tue, May 2, 2017
DreamFactory 2.6 has shipped! We've added Firebird SQL support and some major enhancements to API management as well as many API improvements and important bug fixes. You can download the 2.6 release from Bitnami or GitHub now. Here's what's new:
Mon, Mar 20, 2017
Along with the release of DreamFactory 2.5.0, we added the ability to control and limit API calls to your DreamFactory instance on several levels. This feature is currently available in DreamFactory Gold. The API limits feature makes it easy to set limits on an entire DreamFactory instance, for a specific user, role, or service. Additionally, you can set limits for each user, where every user will get a separate counter.
Thu, Mar 16, 2017
DreamFactory 2.5 now supports the Google Cloud Messaging Service (GCM). This blog post will show you how easy it is configure DreamFactory as your Android app’s push notification provider. Note that GCM support is a premium feature in DreamFactory's Silver and Gold products, not an open source feature.
Wed, Mar 15, 2017
DreamFactory 2.5 now supports Apple Push Notification Service (APNs). This blog post will show you how easy it is configure DreamFactory as your iOS app’s push notification provider. Note that APNs support is a premium feature in DreamFactory's Silver and Gold products, not an open source feature.
Mon, Mar 13, 2017
DreamFactory 2.5 has shipped! This is a significant release that adds API rate limits to DreamFactory Gold, new REST APIs for Apple Push Notification Service (APNs) and Google Cloud Messaging (GCM), an upgrade to the latest AWS SDK, and a number of important bug fixes. You can download the 2.5 release from Bitnami or GitHub now. Here's what's new:
Mon, Feb 27, 2017
We just conducted our latest developer survey in January and the results are in! Congratulations to Aaron Pace, winner of an Apple Watch for taking our survey! Thanks to everyone who took the time to provide your feedback to make DreamFactory better. We appreciate your time. Below are some highlights from the survey.
Mon, Feb 13, 2017
Introducing DreamFactory's SAML 2.0 SSO Service
DreamFactory 2.4.2 introduces the SAML 2.0 Single Sign On service. Now you can easily authenticate into DreamFactory using your external SAML 2.0 identity provider (IdP).
Mon, Feb 6, 2017
Introducing DreamFactory's Event-Driven Log Service
In DreamFactory 2.3.1 we introduced the Log service supporting Logstash, which allows you to send any log messages to a Logstash service, utilize the power of ELK stack, and get REST API usage data using visual tools like Kibana. However, there was one limitation: the DreamFactory Logstash service wasn't smart enough to do anything on its own.
Thu, Feb 2, 2017
One of the fundamental goals of the DreamFactory platform is to make it easy to get the data you want, in the format you want, from the sources you have available. Sometimes the type and/or format of the data in the database isn't easy to pass to and from a client RESTfully, particularly using JSON or XML payloads. DreamFactory's database functions support solves this problem.
Tue, Jan 31, 2017
DreamFactory 2.4.2 is live! This release adds new APIs for SAML and Azure Active Directory, event-driven configuration of the logging service, database function support, usability improvements to the schema manager, and a whole lot more. You can download the 2.4.2 release from Bitnami or GitHub now. Here's a roundup of 2.4.2 improvements:
Wed, Jan 11, 2017
A common use case is securely sharing your API docs in DreamFactory with other users who aren't DreamFactory admins. You might need to share specific API endpoints with partners, customers, or other developers. This short tutorial demonstrates how to set up role-based access control to specific API endpoints and easily share a secure link to DreamFactory's live Swagger API docs. Let's get started!
Tue, Dec 27, 2016
John Gilfillan, Software Engineer from Miracle Electronics, created Nurse Call or Care Call systems for Hospitals and Rest Homes. They wanted a REST API that could interact with their software, as well as to give users the ability to make changes to the system remotely. They run a software application called "Angel" on a P.C. which monitors call points located at the bedside of each Hospital patient or in the home of a Rest Home occupant.
Wed, Dec 21, 2016
DreamFactory’s power lies in the automatic generation of API endpoints and its standardization. There are times however, where you need something a little more custom, and that’s why we have scripting engines included. Let’s look at a specific use case for custom scripting that we have users ask about a lot.
Thu, Dec 15, 2016
Andrew Jenkins, engineer at Split Rock Software and DreamFactory Community member developed an app called Ice Report. He was looking for a prebuilt system to make information in a database easy to access and handle users in secure way and found DreamFactory. DreamFactory allowed him to build a basic user system with a minimal interface, as well as allow users to submit data for others to view in a quick and easy way.
Tue, Dec 13, 2016
DreamFactory has long supported scripting as a way of allowing users to extend the handling capabilities of existing APIs (i.e. performing actions pre- and post-processing like modifying the request or response), or adding new APIs altogether via scripted services. This has proven to be a very popular feature of DreamFactory, but until release 2.3 it was missing a very big "nice to have", that being a way to save or queue the scripts to be run at a later time and not take the hit of processing the script at the time of the API call. Thus the advent of queued scripting.
Thu, Dec 8, 2016
So you’ve installed DreamFactory and connected to your database, maybe you’ve tried a few API calls in API docs but what’s next? Certainly not writing the server-side code since DreamFactory graciously autogenerated your API endpoints. How about a REST client, perhaps we’ll start with a simple GET? Yeah! That sounds like a safe bet!
Simply put a GET request is a request for a representation of a resource, resource being the URL and the representation being the data. GET is considered safe since it won’t change the state of the resource.
Tue, Dec 6, 2016
In the early part of 2016, we introduced a feature called DataMesh, also known as Virtual Relationships, or Virtual Foreign Keys. The idea behind this feature is to allow users to set up “virtual foreign keys” to relate data across tables in the same SQL database where foreign keys did not exist or were not desired, or across different SQL databases altogether. We even allowed relating a SQL database table to a MongoDB collection, opening up a whole new way for a client to retrieve all the data it needed, molded in a way that was easily consumable.
Mon, Dec 5, 2016
Introducing the DreamFactory DocumentDB Service
DreamFactory 2.4 introduces the DocumentDB NoSQL database service. Now you can easily connect to a local or remote DocumentDB database from your DreamFactory instance and perform operations using the same RESTful API that you already use for other NoSQL databases in DreamFactory.
Fri, Dec 2, 2016
DreamFactory 2.4.1 has shipped! This release has some major enhancements, including new APIs for Couchbase and Azure DocumentDB, virtual foreign keys support for all table relationship types, and a new file service to retrieve log files from your DreamFactory instance. Head on over to Bitnami or GitHub to get DreamFactory 2.4.1. Here's what's new.
Wed, Nov 30, 2016
We are seeing many educational institutions adopt the DreamFactory REST API platform for a variety of innovative purposes. In some cases educational institutions are developing API services for internal use, and in other cases these services are provided for students writing applications. Hopefully this blog will outline how DreamFactory is being used in an educational setting, and maybe give some other colleges and universities out there some new ideas on how to take advantage of the platform. Here are some recent customer examples.
Tue, Nov 22, 2016
We are seeing many governmental institutions adopt the DreamFactory REST API platform for a variety of innovative purposes. The customer might be a foreign country, a state, a province, or a city. In many cases they are working with a software development partner who has recommended the DreamFactory platform. One very common use case is when a governmental institution needs to provide access to public information. DreamFactory makes it very easy to safely expose a database or services as a REST API for integration or application development. Hopefully this blog will outline how cities, states, and countries around the world are using DreamFactory. Here are some recent customer examples.
Tue, Nov 22, 2016
Tens of thousands of people affected by chronic pain could see long term relief with a new approach built with DreamFactory. Marc Mathys at the Department of Medical Psychology of Philipps-University of Marburg has created a device that measures the body’s response to pain and trains the nervous system to respond with natural relief.
Mon, Nov 21, 2016
We are seeing many medical institutions adopt the DreamFactory REST API platform for a wide variety of innovative purposes. In some cases, medical clinics are using DreamFactory for internally facing applications. In other cases, national healthcare systems are using DreamFactory to provide medical information directly to patients. DreamFactory is also helping to make medical claims easier to file with insurance companies and hospitals. Doctors and clinics are using DreamFactory services to send large documents like MRI photographs and medical videos. Hopefully this blog will outline how hospitals, clinics, doctors, nurses, patients, and insurance providers are using the DreamFactory REST API service platform. Here are some recent customer examples.
Thu, Nov 17, 2016
Logging API calls is an important security and reporting requirement for production applications. To understand traffic patterns, identify potential security risks, and analyze end-user behavior, you need API logging at two levels: a detailed record of each API call and an aggregated view of API traffic over time, segmented in various ways (for example by geography).
Mon, Nov 14, 2016
We had over 70 attendees at our Meetup in Boston! We piggybacked off of the wonderful APIStrat conference as their official meetup and partnered with APICraft Boston to put on an after hours event. For speakers, we had our Community and Developer Relations manager Alex Bowen talk about Reusable APIs, Mike Stowe from MuleSoft talked about Microservices, and the API Evangelist himself Kin Lane, had a fireside chat.
Fri, Nov 11, 2016
DreamFactory superuser, Crystal Taggart recently completed a Digital Transformation for MIKID - Mentally Ill Kids In Distress. A non profit that improves the behavioral health and wellness of children and youth through a family- centered approach. The idea was to bring this financial and resource constrained non profit into the modern tech age. With an old and broken website, and inefficient processes, Crystal from Build My App and three other companies came together to give them a digital transformation.
Thu, Nov 3, 2016
After 8 engineers worked for a year on an in-house ERP platform, TECHeGO found themselves at a critical junction. They faced another 10 months of development to launch and the clock was ticking. That’s when CEO and Enterprise Architect Seth Helgeson discovered DreamFactory.
Thu, Nov 3, 2016
Last week we announced the DreamFactory integration of MQTT communication for IoT applications. It's a powerful new addition to the capabilities of our robust REST API platform.
For this demo we're going to use DreamFactory as an MQTT broker for two Raspberry Pi computers acting as publisher and subscriber. We'll go over three scenarios covering key aspects of IoT deployments. Though the tutorials are based on Raspberry Pi, any microcontroller or SOC board can be used for exploring the features. A video walkthrough is also available, recorded from a webinar presentation in October.
Fri, Oct 28, 2016
Independent developer Aric Caley got tired of peeling API potatoes and was ready to be an app chef. After spending a lot of time prepping his own dev kitchen, he tried a few other platforms before finding DreamFactory. Once he did, his cooking got much better.
“At first, I wasn’t really sure what to think of it, it seemed like magic,” says Aric.
Wed, Oct 26, 2016
The Log service now supports integration with Logstash. Easily connect your DreamFactory instance to a Logstash service listening for input on UDP, TCP, or HTTP protocol. Once you create a DreamFactory Logstash service, you can utilize a unified REST API and start logging activities directly from your application or from DreamFactory using scripting services. Logstash is a native DreamFactory service and is supported by features such as role-service-access, lookup usage, live API documentation, and caching.
Mon, Oct 24, 2016
The Chief Architect at Global International needed to build a highly distributed, resilient, and real time logistical support solution. Imran Khan was looking to replace existing old software with something much more advanced and adaptable for his app, BuzyBeez. This is where DreamFactory came in.
Wed, Oct 19, 2016
One of my favorite features in DreamFactory is server-side scripting. Both event scripts and script services can really extend the DreamFactory platform, and customize it to your needs. If you are not familiar with DreamFactory server-side scripting, I recommend visiting the scripting documentation.
Tue, Oct 18, 2016
Developers trust DreamFactory to expose a broad range of data sources as REST APIs. Over the last few years, we have seen desktop, web, mobile developers build applications that are powered by DreamFactory. Today, we are excited to announce the support for MQTT, which will enable our customers to build solutions for Internet of Things (IoT).
Tue, Oct 18, 2016
DreamFactory 2.3.1 is live! The 2.3.1 release includes a bunch of important enhancements, including GitHub integration on server-side scripts, new APIs for Logstash and AWS Redshift, and security improvements. Head on over to Bitnami or GitHub to get DreamFactory 2.3.1. Here's the roundup of what's new.
Fri, Oct 14, 2016
Recently, 76 developers gathered at Verizon's campus, featuring a swanky waterfall, in Dallas to build, hack and make creative apps for mobile, web and IoT. We partnered up with Verizon and Mapquest to encourage the use of a diverse portfolio of assets.
Fri, Oct 14, 2016
We now have a sample application to help you get started using DreamFactory as the backend for your Ionic apps. This app is a simple address book that shows how to handle user authentication and registration, plus CRUD operations on SQL tables with related data. Ionic2 is used to create hybrid mobile apps. It's the latest framework built on top of Angular2 by Google.
Thu, Sep 22, 2016
DreamFactory partnered with Verizon and Mapquest to host an all day hackathon at the beautiful Verizon campus in Dallas,Texas filled with fun, food, drinks and prizes. The September hackathon hosted 76 developers coming from different career, education and programming backgrounds which fueled creativity, collaboration and ultimately the innovation that followed.
Thu, Sep 22, 2016
DreamFactory and Verizon recently hosted a hackathon where developers built location-aware apps with DreamFactory, MapQuest, and Verizon Cloud. Adding MapQuest as an API in DreamFactory takes less than five minutes. In this short tutorial, we'll show you how to securely store your MapQuest API in DreamFactory, call the MapQuest Geocoding API from a DreamFactory session, and easily add role-based access control to any MapQuest Geocoding API endpoint. Let's get started!
Thu, Sep 15, 2016
DreamFactory is a high performance request/response engine for REST API Services. You can hook up any SQL or NoSQL database and instantly get a comprehensive REST API for that data source. A big part of our platform is the support for JSON Web Tokens. JWT is an open standard for representing session information that is transferred between the client and server. JWT allows DreamFactory to run in a completely stateless manner, which makes the platform very easy to scale vertically with additional server capabilities or horizontally with multiple instances between a load balancer.
Twilio has a superb API for integrating SMS messages into your applications. It's easy to add Twilio as a remote HTTP service to any application you're building with DreamFactory. DreamFactory lets you securely store your Twilio authentication credentials, call the Twilio API directly from a DreamFactory session, and easily add role-based access control to any Twilio API endpoint. This brief tutorial shows you how to add Twilio to DreamFactory in five minutes.
Tue, Sep 6, 2016
DreamFactory 2.3 has shipped! This release includes major enhancements, including PHP 7 for faster performance, new APIs for Cassandra, Redis, and Memcached, and queued event scripts. Check out the release notes below and head on over to Bitnami or GitHub to get DreamFactory 2.3.
One of the most powerful features of DreamFactory is the ability to write server-side script in pre- and post-process events and use as a custom scripting service. This provides the ultimate flexibility and allows the platform to support all sorts of complex backend business logics. However, DreamFactory server-side scripts are stateless and their scope is gone once the original process is completed.
Thu, Sep 1, 2016
DreamFactory 2.3 introduces the Cassandra NoSQL database service. Now, you can easily connect to a local or remote Cassandra database from your DreamFactory instance and perform operations using the same RESTful API that you already use for other NoSQL databases in DreamFactory.
Tue, Aug 23, 2016
We are pleased to introduce another DreamFactory community member, Phil Schuler. You may have read one of his blog posts about DreamFactory. In this tutorial, he will be demonstrating how to generate SDK’s based on API service Swagger definitions in DreamFactory.
Mon, Aug 15, 2016
The location of the all powerful DreamFactory code will be located in a different place depending on what type of installation you did. We call this location the installation directory. In many cases, the version number is included as part of the path. In this example, we’ll assume you got verion 2.2.1-2 from Bitnami.
We recently profiled DreamFactory superuser Crystal Taggart and her upcoming book, Build My App! Crystal not only recommends DreamFactory to clients, she uses it to manage her own email distribution.
Thu, Aug 11, 2016
In recent posts about DreamFactory power user Crystal Taggart, we highlighted the ways she uses our open source platform to quickly build effective app architecture and add features on the fly. By using the power of Appery.io and Dreamfactory together she gets a useful visual interface for building apps in days instead of months.
Wed, Aug 10, 2016
We were really excited to interview DreamFactory superuser and renaissance woman, Crystal Taggart. Crystal is the author of the upcoming book called Build My App!, which teaches people how to build an app using low cost and open source platforms. We are honored to be featured as one of the main solutions.
Wed, Aug 3, 2016
DreamFactory can be used to turn an existing database into a REST API, as well as for a new project with fresh database. But, you can also use it to integrate multiple database types, in tandem.
Mon, Jul 25, 2016
DreamFactory will save you and your company hundreds of hours by auto-generating an API automatically for every major SQL database, including Oracle. In this tutorial, we’re going to walk through the process of connecting DreamFactory to your Oracle database, review the features automatically built into DreamFactory that’ll help you manage and customize your API, and go over scripting support and security features.
Thu, Jul 21, 2016
One of the most important parts of building great software is listening to your users and the wider developer community. We're always excited to get the chance to go out into the community to learn more about what you all are working on.
Thu, Jul 21, 2016
Wed, Jul 20, 2016
We’ve seen some incredible growth of the DreamFactory community over the past few years. That’s why we’re especially thrilled to announce our 100,000th admin sign up, Blaine Willhoft, and share his DreamFactory story!
Fri, Jul 15, 2016
The ability to discover and execute stored procedures and functions has been available in DreamFactory's REST API for a while now. With the 2.2.1 release, we have enhanced the usability of these resources quite a bit, adding the ability to retrieve their parameter information, as well as, simplifying the way you call them.
DreamFactory version 2.2.1 has shipped. v2.2.1 includes major enhancements to stored procedures, API improvements, UI improvements, and a number of bug fixes. See all the details below and grab the latest from Bitnami or GitHub.
Thu, Jul 7, 2016
There are a lot of great API managers available. Starting with the A’s, we have Akana, Apigee, AWS and Azure, among others. The first part of this post explores how you can use the DreamFactory REST API Platform with almost any API manager. The second part explores scenarios where DreamFactory is a more effective way to engage developers than an API management solution.
Fri, Jun 24, 2016
One of the most important ideas in the world of software engineering is the concept of loose coupling. In a loosely coupled design, components are independent, and changes in one will not affect the operation of others. This approach offers optimal flexibility and reusability when components are added, replaced, or modified. Conversely, a tightly coupled design means that components tend to be interdependent. Changes in a single component can have a system wide impact, with unanticipated and undesirable effects.
Thu, Jun 23, 2016
A few days I posted about using angular2-auth-component for managing logins with Angular 2 and Dreamfactory. Now we're going to focus on the new angular2-data-component, which handles data.
Tue, Jun 21, 2016
I’ve been working on DreamFactory's Angular SDK, sample app, and documentation. It's now available in Github with some good examples and details. There are some important things to consider when using Dreamfactory authentication with a custom Angular 2 component.
Thu, Jun 2, 2016
We're excited to announce DreamFactory Version 2.2. There are a number of important design improvements to services, scripting, and system resources. But the biggest change is that APIs for commercial databases will no longer be open source.
Wed, Jun 1, 2016
Docker containers are great when it comes to deploying your application for production, testing, and scaling up for performance. DreamFactory instances can take advantage of Docker containers as well. In fact, it’s even easier to horizontally scale DreamFactory instances (with or without Docker containers) because DreamFactory uses JSON Web Tokens (JWT).