Releases: GetDKAN/dkan
2.21.0
Important
This release introduces several breaking changes to composer dependencies and the datastore API. See below for upgrade instructions.
Upgrade guide
- composer.json: Ensure that your project root composer.json includes
npm-asset/select2
andoomphinc/composer-installers-extender
in therequire
section, and asset-packagist in therepositories
section. See #4546 and the select2 readme for more information, or see this project template for an example. If you omit thenpm-asset/select2
dependency, your project should still build, but your metadata forms may break. - select2: You must require the development branch of select2 at a more recent commit than select2/select2#6332. There is unfortunately no stable release that is compatible with current versions of Drupal. This means that projects using DKAN must have minimum stability of
dev
in their composer files (or else omit the select2 library dependency and avoid using select2 on your forms). - API change: Using
"limit": 0
in a datastore query to get around the row limit in the datastore query endpoints will no longer work, and will produce a JSON validation error. Please update any frontend or third-party code. The only way to download a full result set from the datastore, without being affected by the row limit setting, is to use one of the download endpoints and consume the entire result as a CSV. - Config: If you save your project configuration to code, be sure to capture the changes to core.entity_form_display.node.data.default.yml as there has been an update to the JSON form plugin.
What's Changed
- Remove select2 asset from composer require. by @swirtSJW in #4546.
- Fix tagfield test by @dafeder in #4542
- Move JSON form plugin to metastore, de-DKAN-ifying json_form_widget by @dafeder in #4533
- Require dev version of select2 library by @dafeder in #4479
- Minimum of 1 for the "Limit" property in the datastore query schema by @kaise-lafrai in #4544
- dkan:harvest:register should validate options by @paul-m in #4498
- Better error-correction in HarvestUtility by @paul-m in #4268
- #4298 - Change some methods from private to protected by @stefan-korn in #4419
- Security: Update drupal/facets to ^3.0.1 by @paul-m in #4548
- Remove other unneeded properties from composer.json by @dafeder in #4547
- Update JSON Form Widget README by @janette in #4550
Full Changelog: 2.20.9...2.21.0
2.20.9
Important
As of Drupal 8.2.0, modules no longer require REST-specific permissions. This update begins the transition from a separate permission for API use to relying on the Drupal content authorship permissions. The permission post put delete datasets through the api
is deprecated. All API actions now require the same permissions needed to accomplish equivalent things in the Drupal UI. They will, for now, also respect the old "post put..." permission for backward compatibility, but we will remove this in a later release.
Please be advised that you should update the Data node permissions on your data publisher role(s) accordingly.
What's Changed
- Use entity access to negotiate API permissions by @dafeder in #4526
- Add documentation about permissions by @janette in #4537
What's Fixed
- Override file access to allow access to remote files for UploadAndLink by @beeyayjay in #4536
2.20.8
Note
This update adds a new configuration for the DKAN MySQL Importer module: "Disable strict mode for creating/altering MySQL tables". Previously the module would always attempt to disable innodb_strict_mode before creating or altering a datastore table. This is sometimes needed for edge cases where the data resource may exceed the header size limit. See #4505.
If a mysql user lacks the necessary permissions to disable strict mode, however, this will cause errors on table creation. If you do not need strict mode to be disabled or do not have the necessary permission, you should not be disabling innodb_strict_mode. After upgrading, visit /admin/dkan/datastore/mysql_import and uncheck the "Disable strict mode for creating/altering MySQL tables" option. (On new installations, it will be unchecked by default.)
What's Changed
- Allow null on addDistributionInfo in DatastoreInfo by @janette in #4509
- Migrate from code climate to qlty by @dafeder in #4513
- Strict mode opt-in for MySQL importer by @dafeder in #4512
- Split dashboard title search terms into multiple conditions in query to get accurate results by @kaise-lafrai in #4520
- Remove flaky test by @dafeder in #4522
- Isolate all DKAN logic in JSON Form widget to plugin file by @dafeder in #4486
- Test coverage for API delete, and for unauthorized request by @dafeder in #4523
What's Fixed
- Query Schema updates to throw json schema validation errors if any of the conditions are not met. @kaise-lafrai #4528
2.20.7
Note
This release contains updates to the administration views, if you have not customized these views you can pull in the updates with
drush cim --partial --source=modules/contrib/dkan/modules/metastore/modules/metastore_admin/config/install -y
.
What's New
- Add entity operations on DKAN content views by @paul-m in #4499 #4502
- Add drush command to find the dataset corresponding to a datastore table by @rovcase in #4399
What's Changed
- Switch to MariaDB for D11 tests to improve speed by @dafeder in #4496
- Split functional tests by @dafeder in #4487
What's Fixed
2.20.6
This release contains several significant improvements to the json_form_widget module, which is used to render the dataset and other metadata forms from JSON schemas. Arrays of fields or items can now be re-ordered, and individual fields/properties can also be given weights so that their order on the form does not need to reflect their order in the JSON schema document.
This is the result of quite a bit of trial and error with the Drupal Forms API. There is already one known issue (#4489); please submit any additional findings to the DKAN issue queue or discussions.
Note
(Updated 8/19/25) #4427 changes the namespacing for certain key Harvest classes. If you have custom code that depends on anything in the Harvest
namespace, it will need to be changed to Drupal\harvest
.
What's New
- Managed remote files by @dafeder in #4463
- Control The Order of the Form Elements by @zedmonds96 in #4457
- Move and remove elements from JSON arrays in form by @dafeder in #4472
What's Changed
- Deprecate EventDispatcherTrait by @zedmonds96 in #4386
- Move the harvest library into the harvest module by @beeyayjay in #4427
- Test new version of ddev-dkan add-on by @janette in #4447
- Rearrange harvest unit tests by @dafeder in #4481
Full Changelog: 2.20.5...2.20.6
2.20.5
Note
Module dependencies have changed. If you have custom services that depend on the harvest or datastore modules, but don't have those modules explicitly declared as dependencies of your module, your services may break. Make sure to add dkan:harvest
and/or dkan:datastore
to your module's .info.yml file.
What's Fixed
- Fix closure syntax in Data Dictionary form callback by @kaise-lafrai in #4459
What's Changed
- Make harvest_run id not a primary key. by @swirtSJW in #4346
- Lifecycle cleanup by @paul-m in #4338
- Remove circular dependencies on harvest and datastore by @dafeder in #4422
Full Changelog: 2.20.4...2.20.5
2.20.4
What's Changed
- Dashboard updates to display datasets with unsupported mime_types by @kaise-lafrai in #4429
- Migration from cypress 8.7 to 14.1 by @kaise-lafrai in #4437
- Initial update path tests by @dafeder in #4442
- Update to mock-chain 1.4.0 by @dafeder in #4440
- Add test for add and remove buttons, remove closures by @dafeder in #4450
Full Changelog: 2.20.3...2.20.4
2.20.3
This release brings, along with other minor fixes, full PHP 8.4 support to DKAN.
What's Changed
- Trim string value for converting to bool. by @beeyayjay in #4421
- Update some missing/incomplete/incorrect docs by @dafeder in #4438
- Setting sanitizedName to null if array key doesn't exsist by @tiffneybare in #4435
- Add PHP 8.4 compatibility/test coverage by @dafeder in #4428
Full Changelog: 2.20.2...2.20.3
2.20.2
This release brings official Drupal 11.x compatibility to DKAN.
Note
We have also dropped testing for Drupal 10.2, which is no longer supported. It is highly recommended that any sites still running Drupal 10.2 upgrade to 10.3 or 10.4. Also note that while Drupal 11.1 and 10.4 support PHP 8.4, this release of DKAN is only tested up to PHP 8.3. PHP 8.4 support is coming soon.
What's Changed
- Update the link to open licenses by @janette in #4423
- ValueHandler - change some methods to protected by @stefan-korn in #4418
- Add Drupal 11 testing to CI and module requirements by @dafeder in #4401
- Update Docs with recipe for modifying the dataset form by @janette in #4164
- Use the #config_target property in the datastore settings form by @jastraat in #4183
- Make dkan:dataset-info return string rather than print by @dafeder in #4431
- Progress indicator for file upload by @beeyayjay in #4433
Full Changelog: 2.20.1...2.20.2
2.20.1
Note - several changes focused on moving toward full Drupal 11 compatibility, but we're not quite there yet (we expect to be in 2.20.2).
Changes
- Set 404 exception if dataset ID isn't found. by @beeyayjay in #4379
- DB connection factory cleanup by @paul-m in #4390
- Update contributing documentation. Add new issue templates. by @janette in #4327
- Filter by title on the dataset import status dashboard by @paul-m in #4376
- Refactor DatasetInfo as plugin-based service that works w/o datastore by @dafeder in #4404
- Harvest library sorts JSON before calculating hash by @paul-m in #4374
- Refactor DrupalFiles to remove deprecated system_retrieve_file() by @dafeder in #4420
- Add config option in metastore settings to stop forcing redirect by @zedmonds96 in #4381
Fixes
- Some fixes for Drupal 11.0.x compatibility by @dafeder in #4354
- Post import status message by @kaise-lafrai in #4397
- Improve type translation for database table by @dafeder in #4403
- Updates to datastore install to create a valid schema for post import… by @kaise-lafrai in #4408
Full Changelog: 2.20.0...2.20.1