Datastore overview

Datastore is a fully-managed, document-oriented data service that uses blueprints (API specifications and data models) to simplify storing and querying data for web applications.

Using Datastore, you can focus on delivering the customer experience by leveraging blueprints to automate backend tasks normally associated with server-side coding, database engineering, building APIs, and developer operations.

Key features

Fast and scalable microservices

Add a blueprint to Datastore, which automatically constructs a set of web-accessible endpoints with appropriate HTTP methods, data models and security, as a discrete containerized microservice. Your blueprint’s endpoints map to the exact functionality of your web application.

Flexible data modelling

Structure and organize primitive and composite data types, such as numbers, booleans, strings, dates, and arrays, as key-value pairs within document-oriented and nestable collections.

Local simulation environment

Easily configure Datastore’s complete local simulation environment to learn more about Datastore’s core concepts and capabilities, and test your own blueprints before uploading them into production.

CLI tools for blueprint management

Add, update, list, and rename blueprints in Squiz DXP Console (DXP Console) directly from your terminal using friendly command line interface (CLI) tools, without having to rely on developer operations (DevOps) for assistance.

JavaScript SDK

Authenticate requests, as well as add, update, remove, filter, sort, and paginate data the same way across clients and projects using a software development kit (SDK) library of JavaScript query and filter methods.

Access controls

Deny access to your Datastore data by default. Developers can implement access control rules in their blueprint to define user-level access to data. Authenticating requests with JSON web tokens (JWTs) (obtained by a user authenticating to an identity service provider) to access Datastore data is then required for these requests to succeed.

Automated upgrades

Leverage DXP Console’s SaaS architecture to ensure your web application’s blueprints are always up to date with the latest bug fixes and new features, without having to manage outages and maintenance windows.

Open standards

Use industry-leading OpenAPI v3 and JSON Schema standards (along with their community tools and best practices) to increase reusability and maintainability of code across projects.

Blueprints and how they work

A blueprint is a single API specification file and one or more data model files that define the structure of your data storage requirements for a specific project. Your blueprint’s files are uploaded to DXP Console to automatically generate a Datastore service.

The API specification file (based on OpenAPI v3) is in YAML format and each data model file (based on JSON Schema) is, unsurprisingly, in JSON format. All these files define a blueprint’s data organization within collections and documents, along with the blueprint’s set of endpoints, HTTP methods, access controls, and data types that can be mapped to the exact functionality of the client application.

Before working on developing your application, first design or reuse an existing blueprint to describe the structure and shape of your data storage needs, and how that data should be queried by your application. Blueprints that share common data structures across multiple projects can be reused and tweaked if necessary.

Once comfortable with your blueprint, use Datastore’s CLI tools to either add the blueprint to your local simulator (to test the blueprint’s functionality), and/or upload the blueprint directly to DXP Console for use in production. Once your blueprint has been added to either the simulator or DXP Console, the CLI tool output provides you with fully working URLs for your Datastore service environment, which can be accessed through the JavaScript SDK.

Use cases and examples

Datastore is extremely flexible and particularly helpful in the following situations and scenarios.

Primary use cases

  1. Build high performance JavaScript apps in Squiz Matrix (Matrix) websites. Using Datastore, you can build:

    • Page widgets ranging from simple submission forms through to complex multi-step forms that integrate with third party applications.

    • Single-page apps (SPAs) that encompasses an entire web page. The tutorial series in this documentation builds an event management app, which is an example of an SPA.

    • Multi-page apps (MPAs) that require their own underlying information architecture, and usually encompasses a subsection of a website (including a number of URL paths) to support the user experience. Learn more about the differences between SPAs and MPAs on medium.com.

    • Progressive web apps (PWAs) that encompass an entire domain and must adhere to Google guidelines, resulting in fast and engaging native mobile applications.

  2. Create and maintain an up-to-date user profile including app configuration details and extra information such as IP address, geolocation, email, browser, and device details. Use that data to personalize the app experience.

  3. Store information about how end users interact with an app, such as past and current behaviour, and specific interaction events. Use that information for analytics purposes or to personalize the app experience.

Implementation examples

Use Datastore to:

  • Rapidly pick up from where you leave, for example, in a complex, multi-step government or council application process.

  • Present recommendations based on behaviour and location, for example, university courses a student might be interested in.

  • Track progress in a task-based workflow, for example, knowing which learning modules have been completed in a training course.

  • Tailor the look and feel of an app based on user settings and preferences.

  • Build dashboards to report on what customers are doing with your application.

Learn more

To learn more about Datastore’s capabilities, refer to the Tutorials section.