Skip to content

v2.5.1

Choose a tag to compare

@github-actions github-actions released this 22 Jun 11:55

Highlights

  • Fixed a crash in ArchiveExtractTool and RescanIndexTool when running on processing nodes, caused by resolving IObjectsManager (not registered on the node container).
  • Extracted IDatasetCacheInvalidator from IObjectsManager so dataset cache invalidation works correctly on both web hosts and processing nodes.
  • Added ProcessingNodeDiCompletenessTests to catch missing DI registrations before they reach runtime on deployed processing nodes.

Added / Changed

  • Added IDatasetCacheInvalidator port and DatasetCacheInvalidator adapter, registered as a singleton on every host (web server and processing node) through AddProcessingPlatform.
  • Added ProcessingNodeServiceCollectionExtensions.AddProcessingNodeServices extension method to centralize the processing-node DI container, enabling the same container to be built in tests.
  • Added ForOgcCapabilitiesPattern and ForOgcLayersPattern helpers to CacheCategories; OgcLayerCatalog updated to use them.
  • Added ProcessingNodeDiCompletenessTests: regression tests that build the processing-node container and assert all heavy-tool dependencies resolve correctly.
  • Added DatasetCacheInvalidatorTests covering all cache categories, OGC key patterns, and best-effort failure swallowing.
  • Added OrphanedDatasetCleanupCron, JobIndexCleanupCron, and JobIndexRetentionDays (default 60 days) to appsettings-default.json.
  • Added ExternalAuthUrl: null explicit default to appsettings-default.json.
  • ObjectsManager.InvalidateAllDatasetCaches now delegates to IDatasetCacheInvalidator instead of owning the logic inline.
  • Refactored Program.RunAsProcessingNode to call AddProcessingNodeServices instead of registering services inline.
  • [Hub] Added copy-to-clipboard button for file hash in the detail panel properties table.
  • [Hub] Removed raw hash field from the file properties display; hash is now accessible only via the copy button.
  • [Hub] Added .p-button-icon { cursor: pointer } CSS fix.

Fixed

  • Fixed ArchiveExtractTool resolving IUtils (quota check) and IObjectsManager (cache invalidation) on the Hangfire worker, where neither service is registered. Quota check is now skipped when ctx.Caller is null (worker context); cache invalidation uses IDatasetCacheInvalidator instead.
  • Fixed RescanIndexTool resolving IObjectsManager for cache invalidation on the processing node; switched to IDatasetCacheInvalidator.
  • Fixed ArchiveExtractToolTests.ValidateAsync not covering the processing-node (no-caller, no-IUtils) scenario; added ValidateAsync_NoCaller_SkipsQuotaCheck test.
  • [Hub] Fixed copyableValues prop not being forwarded through nested PropsTable components.

Full Changelog: v2.5.0...v2.5.1