Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion mkdocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,6 @@ nav:
- About:
- about/index.md
- What's New in 2.3: about/whats-new-23.md
- What's New in 2.2.4: about/whats-new-2-2-4.md
- What's New in 2.2: about/whats-new-22.md
- What's New in 2.1: about/whats-new-21.md
- What's New in 2.0: about/whats-new-2.md
Expand Down Expand Up @@ -193,6 +192,9 @@ plugins:
# provenance.md was renamed to trace.md when the provenance framing
# was retired; keep the published URL working.
reference/specs/provenance.md: reference/specs/trace.md
# whats-new-2-2-4 was folded into whats-new-22 (Changes in 2.2.4);
# keep the published URL working.
about/whats-new-2-2-4.md: about/whats-new-22.md
- mermaid2
- section-index
- autorefs
Expand Down
137 changes: 0 additions & 137 deletions src/about/whats-new-2-2-4.md

This file was deleted.

9 changes: 9 additions & 0 deletions src/about/whats-new-22.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ DataJoint 2.2 introduces **isolated instances** and **thread-safe mode** for app

> **Citation:** Yatsenko D, Nguyen TT. *DataJoint 2.0: A Computational Substrate for Agentic Scientific Workflows.* arXiv:2602.16585. 2026. [doi:10.48550/arXiv.2602.16585](https://doi.org/10.48550/arXiv.2602.16585)

## Changes in 2.2.4

2.2.4 is a patch release on the 2.2 line, adding **env-var-only configuration of object storage** and a **public plugin contract for third-party storage protocols**. If you are upgrading from **2.2.0–2.2.3** there are no breaking changes — the new environment variables are purely additive.

- **`DJ_STORES`** — configure object stores entirely from the environment. The variable holds a JSON object identical to the `stores` block of `datajoint.json`, so config moves between file and env var by copy-paste. See [Manage Secrets](../how-to/manage-secrets.md) and [Configure Object Storage](../how-to/configure-storage.md).
- **`DJ_IGNORE_CONFIG_FILE`** — set to `true` to skip `datajoint.json` and the `.secrets/` and `/run/secrets/datajoint/` directories entirely, so only environment variables and defaults apply. Intended for env-var-only deployments (Kubernetes, Lambda, the DataJoint platform).
- **`.secrets/stores.<name>.<attr>` accepts any attribute**, not just `access_key` / `secret_key` — plugin-registered adapters can supply their own fields (a Bearer `token`, an `api_key`, etc.).
- **Storage-adapter plugin contract.** The `datajoint.storage` entry-point group is now part of the public API: third-party packages register additional storage protocols by subclassing `dj.StorageAdapter` and declaring an entry point. Built-in `file`/`s3`/`gcs`/`azure` are unaffected. See [Storage Adapter API](../reference/specs/storage-adapter-api.md).

## Overview

DataJoint has traditionally used a global singleton pattern: one configuration (`dj.config`), one connection (`dj.conn()`), shared across all tables in a process. This works well for interactive sessions and single-user scripts, but breaks down when:
Expand Down
Loading