CKAN Turns 20: Two Decades of Open Data Infrastructure
CKAN turns 20. Explore how an open-source experiment became global data infrastructure, powering governments, research, and public-interest data worldwide.
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.
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.
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.
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.
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.
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.
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.
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.
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.
CKAN turns 20. Explore how an open-source experiment became global data infrastructure, powering governments, research, and public-interest data worldwide.
A year of performance breakthroughs, community growth, and the foundations being laid for CKAN's next chapter — as the project approaches its 20th anniversary.