v22.0.0
[v22.0.0] 2026-05-12
Breaking Changes
- CUMULUS-4780
- Database Partitioning: The database schema has been rebuilt using a partitioned structure.
- Incompatibility: Because the table structures have fundamentally changed, existing databases
cannot be updated. A fresh database is required.
Added
- CUMULUS-4829
- Add background job to refresh stale DuckDB connections for iceberg API
- CUMULUS-4815
- Add support for file-related searches to go to the files_table in iceberg
- CUMULUS-4709
- Fix stale connections problem in iceberg API
- CUMULUS-4710
- Implement list of stats route in iceberg search api
- Add warming up of duckdb connections
- CUMULUS-4708
- Implement list of executions route in iceberg search api
- CUMULUS-4707
- Implement list of granules route in iceberg search api
- CUMULUS-4534
- collection db model has added non-optional cmr_provider field
- update requires db-migration to add cmr_provider to collection model
- CUMULUS-4706
- Define and serve the iceberg search api routes through the iceberg api server.
- CUMULUS-4606
- Add terraform module and example deployment for RDS to Iceberg replication Fargate cluster
and associated service/task.
- Add terraform module and example deployment for RDS to Iceberg replication Fargate cluster
- CUMULUS-4558
- Added provisioning ECS Fargate infrastructure for cumulus api using terraform.
- CUMULUS-4557
- Make a containerized iceberg api that can be deployed to ECS.
- async-operations-update
- Update Async Operation container to new version 56,
cumuluss/async-operation:56. Users should update their references toasync-operationwith the new version.
- Update Async Operation container to new version 56,
- CUMULUS-4780
- Implemented partitioned schema for the consolidated database tables.
- CUMULUS-4804
- Updated application logic to ensure compatibility with partitioned database schemas.
- CUMULUS-4839
- Updated
@cumulus/db/searchGranuleSearchquery builder to prepend the partition key
collection_cumulus_idto sort orders when collection filters are present.
- Updated
Changed
-
CUMULUS-4789 Update Docusaurus to latest version - 3.10
-
CSD-104
PVLNumericnow stores the original string value asrawValuebefore converting toNumber(), preserving precision for large numeric strings.- Fixed
PDRParsingErrorwhen a PDR contains an MD5FILE_CKSUM_VALUEthat is an unquoted all-decimal string (e.g.73806951753129206387143405718909). The PVL parser previously classified such values as numeric, causing precision loss via JavaScript'sNumber()conversion. The original string is now preserved viaPVLNumeric.rawValueand used for MD5 checksum validation. - MD5 checksum values are now validated as 32-character hex strings, providing a clearer error message for values that are not valid MD5 hashes.
-
CUMULUS-4576 Upgrade Cumulus to use the latest version of TEA (3.0.0)
** UPGRADE NOTE: When upgrading the TEA module version, use a two-phase apply to prevent rollback failures
caused by Terraform destroying old lambda S3 objects before the CloudFormation stack update completes.Migration Notes
All core tasks that enqueue messages to launch workflows are updated to use collection defined cmrProvider. Any daac/consolidation tasks which perform the same function need to ensure they do the same.
Phase 1 — upload new S3 objects and update CF stack (keeps old S3 objects intact as rollback targets if the CF update fails):
terraform apply \ -target=module.thin_egress_app.aws_s3_object.cloudformation_template \ -target=module.thin_egress_app.aws_s3_object.lambda_source \ -target=module.thin_egress_app.aws_s3_object.lambda_code_dependency_archive \ -target=module.thin_egress_app.aws_s3_bucket.lambda_source \ -target=module.thin_egress_app.aws_cloudformation_stack.thin_egress_app \ -var-file=env/sandbox.tfvarsPhase 2 — full apply to clean up old S3 objects and apply remaining changes:
terraform apply -var-file=env/sandbox.tfvars -
CUMULUS-4788
- split replication service into multiple services, one for each replication table group
-
CUMULUS-4534
- collection translate functions pass cmr_provider/cmrProvider back and forth
- sf-scheduler lambda function uses collection cmr_provider to fill provider in cmr section of message template meta
- enqueueParsePdrMessage, enqueueGranuleIngestMessage, enqueueWorkflowMessage also use collection cmr_provider to fill provider in cmr section of message template meta
- enqueueWorkflowMessage (used in queue-workflow task) uses collection cmr_provider to fill provider in cmr section of message template meta
- enqueueParsePdrMessage (used in queue-pdrs task) uses collection cmr_provider to fill provider in cmr section of message template meta
- enqueueGranuleIngestMessage (used in queue-granules task) uses collection cmr_provider to fill provider in cmr section of message template meta
-
CUMULUS-4567
- Add SQL and TypeScript migration files to alter the executions_cumulus_id sequence type.
Fixed
- Security Vulnerabilities
- Upgraded package
lodashto version 4.18.1. - Updated package overrides to address CVEs GHSA-43fc-jf86-j433 and GHSA-r5fr-rjxr-66jc.
- added a
webpackoverride to/website/package.jsondue to docusaurus conflicts - Upgraded package
uuidto version ^11.1.1.
- Upgraded package
- CSD-100
- made changes to the
PrivateApiLambdaandApiEndpointslambdas to ensure the environment variables
are loaded after the handler invocation to circumventInvalidSignatureExceptionerrors that were being reported
- made changes to the
- CUMULUS-4606
- Added prefix to IAM resource names to prevent collisions from multiple deployments in sandbox environment
- CUMULUS-4844
- Fixed
@cumulus/dbBaseSearch.shouldEstimateRowcount()to compare against SQL generated
bybaseCountQuery()instead of a hardcoded query string, ensuring accurate detection of table count queries.
- Fixed
- CUMULUS-4874
- Fixed
@cumulus/apiendpoints/rules/patchRuleto delete old Kinesis and SNS resources prior
to allocating new resources. - Refactored
@cumulus/apiaddSnsTriggerto verify active Lambda permissions before adding permission. - Updated snsRuleSpec.js integration test to verify that the updated rule with an existing
subscription topic correctly triggers workflows. - Updated
packages/test-data.nc mock granule files to match the checksums defined in their
signal validation files.
- Fixed