Cloudflare Docs
Workers
Edit this page on GitHub
Set theme to dark (⇧+D)

Xata

Xata is a serverless data platform powered by PostgreSQL. Xata uniquely combines multiple types of stores (relational databases, search engines, analytics engines) into a single service, accessible through a consistent REST API.

Database Integrations allow you to connect to a database from your Worker by getting the right configuration from your database provider and adding it as secrets to your Worker.

​​ Set up an integration with Xata

To set up an integration with Xata:

  1. You need to have an existing Xata database to connect to or create a new database from your Xata workspace Create a Database.

  2. In your database, you have several options for creating a table: you can start from scratch, use a template filled with sample data, or import data from a CSV file. For this guide, choose Start with sample data. This option automatically populates your database with two sample tables: Posts and Users.

  3. Add the Xata integration to your Worker:

    1. Log in to the Cloudflare dashboard and select your account.
    2. In Account Home, select Workers & Pages.
    3. In Overview, select your Worker.
    4. Select Integrations > Xata.
    5. Follow the setup flow, selecting the database created in step 1.
  4. Install the Xata CLI and authenticate the CLI by running the following commands:

    npm install -g @xata.io/cli
    xata auth login
  5. Once you have the CLI set up, In your Worker, run the following code in the root directory of your project:

    xata init

    Accept the default settings during the configuration process. After completion, a .env and .xatarc file will be generated in your project folder.

  6. To enable Cloudflare access the secret values generated when running in development mode, create a .dev.vars file in your project’s root directory and add the following content, replacing placeholders with the specific values:

    XATA_API_KEY=<YOUR_API_KEY_HERE>
    XATA_BRANCH=<YOUR_BRANCH_HERE>
    XATA_DATABASE_URL=<YOUR_DATABASE_URL_HERE>
  7. The following example shows how to make a query to your Xata database in a Worker. The credentials needed to connect to Xata have been automatically added as secrets to your Worker through the integration.

    Worker code
    export default {
    async fetch(request, env, ctx): Promise<Response> {
    const xata = new XataClient({
    apiKey: env.XATA_API_KEY,
    branch: env.XATA_BRANCH,
    databaseURL: env.XATA_DATABASE_URL,
    });
    const records = await xata.db.Posts.select([
    'id',
    'title',
    'author.name',
    'author.email',
    'author.bio',
    ]).getAll();
    return new Response(JSON.stringify(records), {
    status: 200
    });
    },
    } satisfies ExportedHandler<Env>;

To learn more about Xata, refer to Xata’s official documentation.