THIS REPOSITORY AND PACKAGE WILL BE DEPRECATED IN JULY 2024

Google Cloud Datastore Sessions

NPM

@google-cloud/connect-datastore is aGoogle Cloud Datastoresession store backed by@google-cloud/datastore.

Note: Cloud Datastore is a persistent, distributed, transactional database.Often, it's more appropriate to choose a different storage solution for sessionssuch as Memcache or Redis as their designs offer much faster operation in thisuse case.

Installation

npm install @google-cloud/connect-datastore

Configuration

You must have a Google Cloud project and credentials.

Seegcloud node's documentation on setting up authentication.

Usage Example

const {Datastore} = require('@google-cloud/datastore');const {DatastoreStore} = require('@google-cloud/connect-datastore');const express = require('express');const session = require('express-session');const app = express();app.use(session({  store: newDatastoreStore({    kind: 'express-sessions',    // Optional: expire the session after this many milliseconds.    // note: datastore does not automatically delete all expired sessions    // you may want to run separate cleanup requests to remove expired sessions    // 0 means do not expire    expirationMs: 0,    dataset: new Datastore({      // For convenience, @google-cloud/datastore automatically looks for the      // GCLOUD_PROJECT environment variable. Or you can explicitly pass in a      // project ID here:      projectId: process.env.GCLOUD_PROJECT,      // For convenience, @google-cloud/datastore automatically looks for the      // GOOGLE_APPLICATION_CREDENTIALS environment variable. Or you can      // explicitly pass in that path to your key file here:      keyFilename: process.env.GOOGLE_APPLICATION_CREDENTIALS    })  }),  secret: 'my-secret'}));

Expiration

If a session is fetched with the delta between the createdAt time and currenttime greater than expirationMs, the session will not be returned and willinstead be destroyed.

Datastore does not support attl, and tokens are only deleted if a sessionis fetched. You will likely want to implement logic to occasionally deleteexpired sessions.

Contributing

License

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-10-30 UTC.