THIS REPOSITORY AND PACKAGE WILL BE DEPRECATED IN JULY 2024 Stay organized with collections Save and categorize content based on your preferences.
Google Cloud Datastore Sessions
@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-datastoreConfiguration
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
- Apache 2.0 - SeeLICENSE
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.