Blog

What’s Coming in CKAN 2.12 — and the Road to CKAN 3.0

After months of development, CKAN 2.12 is nearly ready — and it's more than just another release. As the last in the 2.x series, it lays the architectural groundwork for CKAN 3.0 while delivering meaningful improvements to file management, data store performance, and the user interface. Here's a full recap of what the core team shared at Monthly Live Session #40 on February 18, 2026.

The road to CKAN 3.0
Watch the session recording CKAN Monthly Live #40

After months of development, CKAN 2.12 is nearly ready — and it's more than just another release. As the last in the 2.x series, it lays the architectural groundwork for CKAN 3.0 while delivering meaningful improvements to file management, data store performance, and the user interface. Here's a full recap of what the core team shared at Monthly Live Session #40 on February 18, 2026.

Roadmap
🗺️
CKAN 2.12 & the Vision for 3.0
Presented by Adrià Mercader

CKAN 2.12 is close to release and marks a historic milestone: it will be the final release in the 2.x series. It's designed as a deliberate stepping stone toward 3.0, and will receive extended long-term support to give the community ample time to migrate. A soft release deadline has been set for the end of March.

CKAN 2.12
Releasing end of March
  • Initial new files backend
  • Midnight Blue theme (opt-in)
  • Data store performance gains
  • Advanced filtering API
  • Latest Python version support
  • New JS modules & background job scheduler
CKAN 3.0
Future milestone
  • New search backend (multi-provider)
  • Midnight Blue as default theme
  • Data dictionary models & actions
  • Namespacing & foundation improvements
  • API simplification & consistency fixes
New File Management System
📁
Files as First-Class Entities
Presented by Sergay Motornyuk

The new file management system is one of the most significant architectural additions in 2.12. It's fully opt-in — upgrading will not disrupt any existing setup. Portal maintainers must explicitly enable the new logic via a configuration option, ensuring backward compatibility with existing cloud storage extensions.

Files are now independent entities that can be uploaded separately from resources, owned by a user, resource, or organization, and tracked throughout their lifecycle. Each file carries its own extensible metadata, enabling filtering, duplicate detection via file hashes, and blocking of unwanted file types.

Portal maintainers can configure multiple storages simultaneously — routing files to local disk, AWS S3, Google Cloud Storage, Azure Blob Storage, or databases depending on their purpose. Cloud support is provided via the companion extension ckanext-filekeeper-cloud, using a standardized config syntax across all providers.

The permission model is layered: access can be cascaded from file to owner, or split between file content and metadata. Future possibilities unlocked by this foundation include "file-first" dataset creation, multiple files per resource, and resource versioning via retained historical file IDs.

Opt-in & backward compatible Multi-storage support Extensible metadata Cascaded permissions AWS S3 · GCS · Azure ckanext-filekeeper-cloud
Data Store Improvements
Keyset Pagination for Large Dataset Downloads
Presented by Yan Rudenko

Downloading datasets with millions of records has historically been slow due to offset pagination, which degrades in performance as the offset grows. The team replaced it with keyset pagination, which maintains consistent iteration speed even across tens of millions of records — solving the problem at the core rather than through workarounds like pre-generated download files.

Keyset pagination Consistent speed at scale Tens of millions of records
🔍
Advanced Filtering for the Data Store API
Presented by Ian Ward

Alongside the pagination improvements, the Data Store API now supports a generic, expressive filtering system. Filters can use comparison operators — <, <=, >, >= — defined as objects in the filter spec. Queries can be combined into OR conditions via lists, and AND/OR logic can be arbitrarily nested for complex filtering scenarios.

Comparison operators OR / AND nesting Object-based filter spec
Advanced Filtering in Action: Data Tables View
Presented by Eric Soroos

Eric shared a real-world application of the new filtering features: his team successfully deployed them on a client site requiring time-based filtering on large, native Data Store resources. Users can now filter by any column — selecting a specific week, month, or custom date range — directly within the Data Tables view. A pull request for this functionality is coming soon.

Time-based filtering Data Tables view PR coming soon
New Theme
🎨
Midnight Blue — A Modern UI for CKAN
Presented by Adrià Mercader

The new Midnight Blue theme is the result of a dedicated effort to replace CKAN's UI — largely unchanged since version 2.0. In 2.12 it ships as opt-in, requiring manual configuration to enable. In CKAN 3.0, it will become the default, potentially alongside a rethought approach to theme building and extension packaging.

Key highlights include a faster, modern interface, HTMX-powered partial page updates (such as on dataset pages), and significant accessibility improvements.

Modern & faster HTMX partial updates Improved accessibility Default in CKAN 3.0
More Highlights in 2.12
🛠️
Python, JavaScript & Background Jobs

CKAN 2.12 adds support for the latest Python versions, delivering security and performance improvements, with backports available for existing 2.11 instances. New JavaScript modules offer more flexibility for building custom UIs. Background jobs have also been improved with support for a scheduler to run tasks at defined intervals. A comprehensive changelog and upgrade wiki page will be released alongside the branch.

Latest Python support New JS modules Background job scheduler Upgrade guide coming
Next Steps
Release Branch The team will finalize file reviews, create the release branch, and kick off the formal process.
Get Involved
🤝
How You Can Help with the 2.12 Release

Once the release branch is established, the CKAN team will need community support across several fronts: testing against your own environments and extensions, reporting or fixing broken elements, contributing translations, and helping upgrade extensions (expected to be straightforward, though time-intensive). A tracking issue will be created listing official extensions and the testing protocol. Security issues should always be reported privately — never as public GitHub issues.

Session Recording

CKAN Monthly Live #40 — CKAN 2.12 & the Road to 3.0

February 18, 2026

Watch on YouTube