Skip to content

Latest commit

 

History

History
305 lines (246 loc) · 66.7 KB

CHANGELOG.md

File metadata and controls

305 lines (246 loc) · 66.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Extract common fields from \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivatePayload and \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Deactivate\PortalExtensionDeactivatePayload into \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Contract\PortalExtensionActiveChangePayloadContract
  • Extract common fields from \Heptacom\HeptaConnect\Storage\Base\Action\Job\Fail\JobFailPayload, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Finish\JobFinishPayload, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Schedule\JobSchedulePayload and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Start\JobStartPayload into \Heptacom\HeptaConnect\Storage\Base\Action\Job\Contract\JobStateChangePayloadContract
  • Add class \Heptacom\HeptaConnect\Storage\Base\Contract\UiAuditTrailKeyInterface with its collection \Heptacom\HeptaConnect\Storage\Base\UiAuditTrailKeyCollection as storage key for UI action audit trails
  • Add storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\UiAuditTrail\UiAuditTrailBeginActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\UiAuditTrail\UiAuditTrailBegin\UiAuditTrailBeginPayload and \Heptacom\HeptaConnect\Storage\Base\Action\UiAuditTrail\UiAuditTrailBegin\UiAuditTrailBeginResult to create an audit trail for UI actions
  • Add storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\UiAuditTrail\UiAuditTrailLogOutputActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\UiAuditTrail\UiAuditTrailLogOutput\UiAuditTrailLogOutputPayload to attach output to the audit trail
  • Add storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\UiAuditTrail\UiAuditTrailLogErrorActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\UiAuditTrail\UiAuditTrailLogError\UiAuditTrailLogErrorPayload and its collection \Heptacom\HeptaConnect\Storage\Base\Action\UiAuditTrail\UiAuditTrailLogError\UiAuditTrailLogErrorPayloadCollection to attach an error message to the audit trail
  • Add storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\UiAuditTrail\UiAuditTrailEndActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\UiAuditTrail\UiAuditTrailEnd\UiAuditTrailEndPayload to marks the audit trail as finished
  • Add method \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface::getUiAuditTrailBeginAction and \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::createUiAuditTrailBeginAction to get an instance of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\UiAuditTrail\UiAuditTrailBeginActionInterface
  • Add method \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface::getUiAuditTrailLogOutputAction and \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::createUiAuditTrailLogOutputAction to get an instance of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\UiAuditTrail\UiAuditTrailLogOutputActionInterface
  • Add method \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface::getUiAuditTrailLogErrorAction and \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::createUiAuditTrailLogErrorAction to get an instance of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\UiAuditTrail\UiAuditTrailLogErrorActionInterface
  • Add method \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface::getUiAuditTrailEndAction and \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::createUiAuditTrailEndAction to get an instance of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\UiAuditTrail\UiAuditTrailEndActionInterface
  • Add filter for source portal node, target portal node, entity type and capability to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewCriteria to limit the overview to certain results

Changed

  • Change $entityType parameter in \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreatePayload::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreatePayload::setEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Mapping::__construct and \Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStruct::__construct to be a \Heptacom\HeptaConnect\Dataset\Base\EntityType instead of a string for better type safe class strings
  • Change $entityType parameter in \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindCriteria::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindCriteria::setEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Get\RouteGetResult::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListCriteria::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListCriteria::setEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Create\IdentityRedirectCreatePayload::setEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Create\IdentityRedirectCreatePayload::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Overview\IdentityRedirectOverviewResult::__construct and \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Overview\IdentityOverviewResult::__construct to be a \Heptacom\HeptaConnect\Dataset\Base\Contract\ClassStringReferenceContract instead of a string for better type safe class strings
  • Update implementation Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStruct to match changes in \Heptacom\HeptaConnect\Dataset\Base\Contract\ForeignKeyAwareInterface and \Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingInterface
  • Change $entityTypeFilter parameter in \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Overview\IdentityOverviewCriteria::setEntityTypeFilter to be an array of \Heptacom\HeptaConnect\Dataset\Base\EntityType instead of an array of string for better type safe class strings
  • Change $entityTypeFilter parameter in \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Overview\IdentityRedirectOverviewCriteria::setEntityTypeFilter to be \Heptacom\HeptaConnect\Dataset\Base\ClassStringReferenceCollection instead of a \Heptacom\HeptaConnect\Dataset\Base\ScalarCollection\StringCollection for better type safe class strings
  • Change return type of \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreatePayload::getEntityType, \Heptacom\HeptaConnect\Storage\Base\Contract\MappingNodeStructInterface::getEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Create\IdentityRedirectCreatePayload::getEntityType and \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Mapping::getEntityType to be \Heptacom\HeptaConnect\Dataset\Base\EntityType instead of a string for better type safe class strings
  • Change return type of \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindCriteria::getEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Get\RouteGetResult::getEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListCriteria::getEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult::getEntityType, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Overview\IdentityRedirectOverviewResult::getEntityType and \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Overview\IdentityOverviewResult::getEntityType to be \Heptacom\HeptaConnect\Dataset\Base\Contract\ClassStringReferenceContract instead of a string for better type safe class strings
  • Change return type of \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Overview\IdentityOverviewCriteria::getEntityTypeFilter to be an array of \Heptacom\HeptaConnect\Dataset\Base\EntityType instead of an array of string for better type safe class strings
  • Change return type of \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Overview\IdentityRedirectOverviewCriteria::setEntityTypeFilter to be an \Heptacom\HeptaConnect\Dataset\Base\ClassStringReferenceCollection instead of \Heptacom\HeptaConnect\Dataset\Base\ScalarCollection\StringCollection for better type safe class strings
  • Change return type of \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Create\PortalNodeCreatePayload::getPortalClass and \Heptacom\HeptaConnect\Storage\Base\PreviewPortalNodeKey::getPortalType to be a \Heptacom\HeptaConnect\Portal\Base\Portal\PortalType instead of a string for better type safe class strings
  • Change return type of \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivatePayload::getExtensions, \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivateResult::getPassedActivations, \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivateResult::getFailedActivations, \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Deactivate\PortalExtensionDeactivateResult::getPassedDeactivations and \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Deactivate\PortalExtensionDeactivateResult::getFailedDeactivations to be a \Heptacom\HeptaConnect\Portal\Base\Portal\PortalExtensionTypeCollection instead of an array of string for better type safe class strings
  • Change return type of \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Get\PortalNodeGetResult::getPortalClass, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Overview\PortalNodeOverviewResult::getPortalClass, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult::getSourcePortalClass and \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult::getTargetPortalClass to be a \Heptacom\HeptaConnect\Dataset\Base\Contract\ClassStringReferenceContract instead of a string for better type safe class strings
  • Change return type of \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Overview\PortalNodeOverviewCriteria::getClassNameFilter to be a \Heptacom\HeptaConnect\Dataset\Base\Support\ClassStringReferenceCollection instead of an array of string for better type safe class strings
  • Change string parameter in \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivatePayload::addExtension, \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivatePayload::removeExtension, \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Deactivate\PortalExtensionDeactivatePayload::addExtension and \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Deactivate\PortalExtensionDeactivatePayload::removeExtension to be a \Heptacom\HeptaConnect\Portal\Base\Portal\PortalExtensionType instead of a string for better type safe class strings
  • Change array of string parameter in \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivateResult::__construct to be a \Heptacom\HeptaConnect\Portal\Base\Portal\PortalExtensionTypeCollection instead of a string for better type safe class strings
  • Change string parameter in \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Create\PortalNodeCreatePayload::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Create\PortalNodeCreatePayload::setPortalClass and \Heptacom\HeptaConnect\Storage\Base\PreviewPortalNodeKey::__construct to be a \Heptacom\HeptaConnect\Portal\Base\Portal\PortalType instead of a string for better type safe class strings
  • Change string parameter in \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Get\PortalNodeGetResult::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Overview\PortalNodeOverviewResult::__construct, \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Find\PortalExtensionFindResult::add and \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult::__construct to be a \Heptacom\HeptaConnect\Dataset\Base\Contract\ClassStringReferenceContract instead of a string for better type safe class strings
  • Change array of string parameter in \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Overview\PortalNodeOverviewCriteria::setClassNameFilter to be a \Heptacom\HeptaConnect\Dataset\Base\Support\ClassStringReferenceCollection instead of a string for better type safe class strings
  • Implement \Heptacom\HeptaConnect\Dataset\Base\Contract\AttachmentAwareInterface in \Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStruct
  • Change type of capabilities on \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult from untyped array to \Heptacom\HeptaConnect\Dataset\Base\ScalarCollection\StringCollection
  • Combine portalNodeKey and path parameter in \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload::__construct and \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria::__construct using \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStackIdentifier
  • Replace \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria::getPortalNodeKey and \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria::getPath methods with \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria::getStackIdentifier using \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStackIdentifier
  • Replace \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria::setPortalNodeKey and \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria::setPath methods with \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria::setStackIdentifier using \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStackIdentifier
  • Replace \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload::getPortalNodeKey and \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload::getPath methods with \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload::getStackIdentifier using \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStackIdentifier
  • Replace \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload::setPortalNodeKey and \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload::setPath methods with \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload::setStackIdentifier using \Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStackIdentifier

Deprecated

  • Deprecate method \Heptacom\HeptaConnect\Storage\Base\TypedMappingCollection::getType in favour of new method \Heptacom\HeptaConnect\Storage\Base\TypedMappingCollection::getEntityType for better type safe class strings

Removed

  • Remove support for php: 7.4 as it will not receive any updates anymore, it is unlikely to be used. By raising the minimum PHP version we also make use of features introduced by PHP 8.0, which mainly have no effect on public API
  • Remove deprecated Heptacom\HeptaConnect\Dataset\Base\Support\AttachmentAwareTrait::unattach

Fixed

Security

[0.9.7.0] - 2024-02-10

Fixed

  • Fix deprecation notice Creation of dynamic property by explicitly declaring property \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::$portalNodeStorageSetAction

[0.9.6.0] - 2023-07-10

[0.9.5.0] - 2023-05-27

Fixed

  • Fix default sort assignment in \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Overview\IdentityOverviewCriteria, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Overview\IdentityRedirectOverviewCriteria, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Overview\PortalNodeOverviewCriteria, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Overview\PortalNodeAliasOverviewCriteria, \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\RouteCapability\Overview\RouteCapabilityOverviewCriteria by making \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Overview\IdentityOverviewCriteria::$sort protected again
  • Fix syntax error in \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Create\IdentityRedirectCreatePayload affecting php: ^7.4

[0.9.4.0] - 2023-03-04

Added

  • Add storage key interface \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\IdentityRedirectKeyInterface with \Heptacom\HeptaConnect\Storage\Base\IdentityRedirectKeyCollection
  • Add identity redirect create action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityRedirect\IdentityRedirectCreateActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Create\IdentityRedirectCreatePayload, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Create\IdentityRedirectCreatePayloadCollection, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Create\IdentityRedirectCreateResult and \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Create\IdentityRedirectCreateResultCollection
  • Add methods \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface::getIdentityRedirectCreateAction, \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::getIdentityRedirectCreateAction, \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::createIdentityRedirectCreateAction and \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\Psr11StorageFacade::createIdentityRedirectCreateAction to access the storage implementation for \Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityRedirect\IdentityRedirectCreateActionInterface
  • Add identity redirect delete action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityRedirect\IdentityRedirectDeleteActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Delete\IdentityRedirectDeleteCriteria
  • Add methods \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface::getIdentityRedirectDeleteAction, \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::getIdentityRedirectDeleteAction, \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::createIdentityRedirectDeleteActionInterface and \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\Psr11StorageFacade::createIdentityRedirectDeleteActionInterface to access the storage implementation for \Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityRedirect\IdentityRedirectDeleteActionInterface
  • Add identity redirect overview action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityRedirect\IdentityRedirectOverviewActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Overview\IdentityRedirectOverviewCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\IdentityRedirect\Overview\IdentityRedirectOverviewResult
  • Add methods \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface::getIdentityRedirectOverviewAction, \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::getIdentityRedirectOverviewAction, \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade::createIdentityRedirectOverviewActionInterface and \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\Psr11StorageFacade::createIdentityRedirectOverviewActionInterface to access the storage implementation for \Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityRedirect\IdentityRedirectOverviewActionInterface

[0.9.3.0] - 2022-11-26

[0.9.2.0] - 2022-10-16

[0.9.1.1] - 2022-09-28

[0.9.1.0] - 2022-08-15

[0.9.0.2] - 2022-04-23

[0.9.0.1] - 2022-04-19

[0.9.0.0] - 2022-04-02

Added

  • Add job state transition to schedule jobs after they failed with \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobScheduleActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Schedule\JobSchedulePayload and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Schedule\JobScheduleResult
  • Add job state transition to fail jobs after they run with \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFailActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Fail\JobFailPayload and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Fail\JobFailResult
  • Add job state transition message to \Heptacom\HeptaConnect\Storage\Base\Action\Job\Schedule\JobSchedulePayload, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Fail\JobFailPayload, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Finish\JobFinishPayload and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Start\JobStartPayload
  • Add portal node extension activation action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalExtension\PortalExtensionActivateActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivatePayload and \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Activate\PortalExtensionActivateResult
  • Add portal node extension deactivation action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalExtension\PortalExtensionDeactivateActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Deactivate\PortalExtensionDeactivatePayload and \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Deactivate\PortalExtensionDeactivateResult
  • Add portal node extension activity find action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalExtension\PortalExtensionFindActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\PortalExtension\Find\PortalExtensionFindResult
  • Add interface \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface for bridges and new composer package heptacom/heptaconnect-test-suite-storage to have central point to access storage
  • Add supporting base class \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\Psr11StorageFacade to implement \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface based upon a service container
  • Add supporting base class \Heptacom\HeptaConnect\Storage\Base\Bridge\Support\AbstractSingletonStorageFacade to implement \Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface that ensures in the implementation that services are only factorized once
  • Add exception \Heptacom\HeptaConnect\Storage\Base\Exception\ReadException for storage actions to express issues on reading
  • Add route delete action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\RouteDeleteActionInterface with \Heptacom\HeptaConnect\Storage\Base\Action\Route\Delete\RouteDeleteCriteria
  • Add class \Heptacom\HeptaConnect\Storage\Base\Action\FileReference\RequestGet\FileReferenceGetRequestCriteria as input for \Heptacom\HeptaConnect\Storage\Base\Contract\Action\FileReference\FileReferenceGetRequestActionInterface::getRequest
  • Add class \Heptacom\HeptaConnect\Storage\Base\Action\FileReference\RequestGet\FileReferenceGetRequestResult as output for \Heptacom\HeptaConnect\Storage\Base\Contract\Action\FileReference\FileReferenceGetRequestActionInterface::getRequest
  • Add class \Heptacom\HeptaConnect\Storage\Base\Action\FileReference\RequestPersist\FileReferencePersistRequestPayload as input for \Heptacom\HeptaConnect\Storage\Base\Contract\Action\FileReference\FileReferencePersistRequestActionInterface::persistRequest
  • Add class \Heptacom\HeptaConnect\Storage\Base\Action\FileReference\RequestPersist\FileReferencePersistRequestResult as output for \Heptacom\HeptaConnect\Storage\Base\Contract\Action\FileReference\FileReferencePersistRequestActionInterface::persistRequest
  • Add class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\FileReference\FileReferenceGetRequestActionInterface to read serialized requests from storage
  • Add class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\FileReference\FileReferencePersistRequestActionInterface to write serialized requests to storage
  • Add class \Heptacom\HeptaConnect\Storage\Base\Contract\FileReferenceRequestKeyInterface as storage key for stored request objects
  • Add class \Heptacom\HeptaConnect\Storage\Base\FileReferenceRequestKeyCollection as collection for \Heptacom\HeptaConnect\Storage\Base\Contract\FileReferenceRequestKeyInterface
  • Add \Heptacom\HeptaConnect\Storage\Base\AliasAwarePortalNodeStorageKey as implementation to identify a portal node key that must be displayed as alias whenever possible
  • Add storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeAlias\PortalNodeAliasFindActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Find\PortalNodeAliasFindCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Find\PortalNodeAliasFindResult to find portal node keys by alias
  • Add storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeAlias\PortalNodeAliasGetActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Get\PortalNodeAliasGetCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Get\PortalNodeAliasGetResult to get aliases by portal node keys
  • Add storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeAlias\PortalNodeAliasOverviewActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Overview\PortalNodeAliasOverviewCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Overview\PortalNodeAliasOverviewResult to overview all defined portal node aliases
  • Add storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeAlias\PortalNodeAliasSetActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Set\PortalNodeAliasSetPayload and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeAlias\Set\PortalNodeAliasSetPayloads to set and unset portal node aliases
  • Add exception \Heptacom\HeptaConnect\Storage\Base\Exception\UpdateException to identify errors on updates in the storage

Changed

  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::add, \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContract::add and \Heptacom\HeptaConnect\Storage\Base\Repository\JobAdd with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobCreateActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Create\JobCreatePayloads, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Create\JobCreatePayload, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Create\JobCreateResults and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Create\JobCreateResult to allow batch writing and collected writing of jobs and their payload
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::get and \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContract::get with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobGetActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Get\JobGetCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Get\JobGetResult to allow batch reading and collected reading of jobs and their payload
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::start with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobStartActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Start\JobStartPayload and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Start\JobStartResult to allow batch state change
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::finish with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFinishActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Finish\JobFinishPayload and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Finish\JobFinishResult to allow batch state change
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::remove and \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContract::remove with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobCreateActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Create\JobCreatePayloads, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Create\JobCreatePayload, \Heptacom\HeptaConnect\Storage\Base\Action\Job\Create\JobCreateResults and \Heptacom\HeptaConnect\Storage\Base\Action\Job\Create\JobCreateResult to allow batch deletion and collected deletion of jobs and their payloads
  • Split up \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::cleanup and \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContract::cleanup into storage actions \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobListFinishedActionInterface and \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobDeleteActionInterface to separate searching and finding deletable jobs
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeCreateActionInterface to create portal nodes by the given \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Create\PortalNodeCreatePayloads and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Create\PortalNodeCreatePayload to return a \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Create\PortalNodeCreateResults and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Create\PortalNodeCreateResult
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeDeleteActionInterface to delete portal nodes by the given \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Delete\PortalNodeDeleteCriteria
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeGetActionInterface to get portal nodes by the given \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Get\PortalNodeGetCriteria to return a \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Get\PortalNodeGetResult
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeListActionInterface to get all portal nodes and return a \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Listing\PortalNodeListResult
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeOverviewActionInterface to an overview of portal nodes by the given \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Overview\PortalNodeOverviewCriteria to return a \Heptacom\HeptaConnect\Storage\Base\Action\PortalNode\Overview\PortalNodeOverviewResult
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ReceptionRouteListCriteria to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListCriteria
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ReceptionRouteListResult to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListResult
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Overview\RouteOverviewCriteria to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewCriteria
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Overview\RouteOverviewResult to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Find\RouteFindCriteria to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindCriteria
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Find\RouteFindResult to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindResult
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetCriteria to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Get\RouteGetCriteria
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetResult to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Get\RouteGetResult
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreatePayloads to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreatePayloads
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreatePayload to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreatePayload
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreateResults to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreateResults
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreateResult to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreateResult
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\RouteCapability\Overview\RouteCapabilityOverviewCriteria to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\RouteCapability\Overview\RouteCapabilityOverviewCriteria
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\RouteCapability\Overview\RouteCapabilityOverviewResult to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\RouteCapability\Overview\RouteCapabilityOverviewResult
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindResult to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindResult
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayloads to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayloads
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload to a new namespace \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ListReceptionRouteListActionInterface to a new namespace \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\ReceptionRouteListActionInterface
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Overview\RouteOverviewActionInterface to a new namespace \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\RouteOverviewActionInterface
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Find\RouteFindActionInterface to a new namespace \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\RouteFindActionInterface
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetActionInterface to a new namespace \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\RouteGetActionInterface
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Croute\RouteCreateActionInterface to a new namespace \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\RouteCreateActionInterface
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\RouteCapability\Overview\RouteCapabilityOverviewActionInterface to a new namespace \Heptacom\HeptaConnect\Storage\Base\Contract\Action\RouteCapability\RouteCapabilityOverviewActionInterface
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindActionInterface to a new namespace \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\WebHttpHandlerConfigurationFindActionInterface
  • Move class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetActionInterface to a new namespace \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\WebHttpHandlerConfigurationSetActionInterface
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\ConfigurationStorageContract::getConfiguration with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeConfiguration\PortalNodeConfigurationGetActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeConfiguration\Get\PortalNodeConfigurationGetCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeConfiguration\Get\PortalNodeConfigurationGetResult that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\ConfigurationStorageContract::setConfiguration with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeConfiguration\PortalNodeConfigurationSetActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeConfiguration\Set\PortalNodeConfigurationSetPayload and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeConfiguration\Set\PortalNodeConfigurationSetPayloads that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\EntityMapperContract::mapEntities with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityMapActionInterface::map, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Mapping, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Map\IdentityMapPayload and \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Map\IdentityMapResult that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\MappingPersister\Contract\MappingPersisterContract::persist, \Heptacom\HeptaConnect\Storage\Base\MappingPersistPayload and \Heptacom\HeptaConnect\Storage\Base\MappingPersister\Exception\MappingConflictException with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityPersistActionInterface::persist, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Persist\IdentityPersistPayload, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Persist\IdentityPersistPayloadCollection, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Persist\IdentityPersistPayloadContract, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Persist\IdentityPersistCreatePayload, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Persist\IdentityPersistDeletePayload, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Persist\IdentityPersistUpdatePayload and \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Exception\IdentityConflictException that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract::listByMappingNode, \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract::listByPortalNodeAndType, \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract::read, \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract::listByTypeAndPortalNodeAndExternalIds and \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract::read with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityOverviewActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Overview\IdentityOverviewCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Overview\IdentityOverviewResult that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\EntityReflectorContract::reflectEntities with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityReflectActionInterface::reflect and \Heptacom\HeptaConnect\Storage\Base\Action\Identity\Reflect\IdentityReflectPayload that allows for optimizations for different use-cases
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreatePayload and \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreatePayloads to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreatePayloads
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreateResult and \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreateResults to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Create\RouteCreateResults
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindCriteria to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindCriteria
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindResult to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Find\RouteFindResult
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Get\RouteGetCriteria to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Get\RouteGetCriteria
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Get\RouteGetResult to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Get\RouteGetResult
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListCriteria to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListCriteria
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListResult to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Listing\ReceptionRouteListResult
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewCriteria to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewCriteria
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\Route\Overview\RouteOverviewResult
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\RouteCapability\Overview\RouteCapabilityOverviewCriteria to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\RouteCapability\Overview\RouteCapabilityOverviewCriteria
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\RouteCapability\Overview\RouteCapabilityOverviewResult to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\RouteCapability\Overview\RouteCapabilityOverviewResult
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindResult to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindResult
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload and \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayloads to ensure correct usage of implementation. To still add custom data the \Heptacom\HeptaConnect\Dataset\Base\AttachmentAwareInterface is implemented by \Heptacom\HeptaConnect\Storage\Base\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayloads
  • Add final modifier to \Heptacom\HeptaConnect\Storage\Base\PreviewPortalNodeKey and \Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStruct to ensure correct usage of implementation. Decoration by their interfaces or base classes is still possible
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::clear with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageClearActionInterface::clear and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Clear\PortalNodeStorageClearCriteria that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::deleteMultiple and \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::unset with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageDeleteActionInterface::delete and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Delete\PortalNodeStorageDeleteCriteria that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::getMultiple, \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::getValue, \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::getType and \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::has with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageGetActionInterface::get and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Get\PortalNodeStorageGetCriteria, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Get\PortalNodeStorageGetResult, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\PortalNodeStorageItemContract that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::setMultiple and \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::set with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageSetActionInterface::set and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Set\PortalNodeStorageSetItem, \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Set\PortalNodeStorageSetItems and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Set\PortalNodeStorageSetPayload that allows for optimizations for different use-cases
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::list with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageListActionInterface::list and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Listing\PortalNodeStorageListCriteria and \Heptacom\HeptaConnect\Storage\Base\Action\PortalNodeStorage\Listing\PortalNodeStorageListResult that allows for optimizations for different use-cases
  • Rename \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\MappingExceptionKeyInterface to \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\IdentityErrorKeyInterface
  • Replace \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingExceptionRepositoryContract::create with storage action \Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityError\IdentityErrorCreateActionInterface, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityError\Create\IdentityErrorCreateResults, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityError\Create\IdentityErrorCreateResult, \Heptacom\HeptaConnect\Storage\Base\Action\IdentityError\Create\IdentityErrorCreatePayloads and \Heptacom\HeptaConnect\Storage\Base\Action\IdentityError\Create\IdentityErrorCreatePayload to allow batch writing of identity errors
  • Move interface \Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\RouteKeyInterface to \Heptacom\HeptaConnect\Storage\Base\Contract\RouteKeyInterface
  • Move class \Heptacom\HeptaConnect\Portal\Base\StorageKey\RouteKeyCollection to \Heptacom\HeptaConnect\Storage\Base\RouteKeyCollection

Removed

  • Remove class \Heptacom\HeptaConnect\Storage\Base\Contract\JobInterface
  • Remove class \Heptacom\HeptaConnect\Storage\Base\Contract\JobPayloadKeyInterface
  • Remove class \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContract
  • Remove class \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract
  • Remove class \Heptacom\HeptaConnect\Storage\Base\Repository\JobAdd
  • With storage restructure explained in this ADR we remove implementation \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\PortalNodeRepositoryContract::read in favour of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeGetActionInterface::get that allows for optimizations for different use-cases
  • With storage restructure explained in this ADR we remove implementation \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\PortalNodeRepositoryContract::listAll in favour of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeListActionInterface::list that allows for optimizations for different use-cases
  • With storage restructure explained in this ADR we remove implementation \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\PortalNodeRepositoryContract::listByClass in favour of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeOverviewActionInterface::overview that allows for optimizations for different use-cases
  • With storage restructure explained in this ADR we remove implementation \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\PortalNodeRepositoryContract::create in favour of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeCreateActionInterface::create that allows for optimizations for different use-cases
  • With storage restructure explained in this ADR we remove implementation \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\PortalNodeRepositoryContract::create in favour of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeDeleteActionInterface::delete that allows for optimizations for different use-cases
  • Remove contracts and exceptions \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\CronjobRepositoryContract and \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\CronjobRunRepositoryContract as the feature of cronjobs in its current implementation is removed
  • Remove unused contract method \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract::listByNodes
  • Remove unused contract method \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract::listUnsavedExternalIds
  • Remove unused contract method \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract::updateExternalId
  • Remove unused contract method \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract::listByTypeAndPortalNodeAndExternalId
  • Remove unused contract method \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract::create
  • Move contract \Heptacom\HeptaConnect\Storage\Base\Contract\ResourceLockStorageContract to \Heptacom\HeptaConnect\Core\Parallelization\Contract\ResourceLockStorageContract as it will be provided by integration and not storage
  • Remove unused contract \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract
  • Remove unused \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingExceptionRepositoryContract::listByMapping, \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingExceptionRepositoryContract::listByMappingAndType and \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingExceptionRepositoryContract::delete
  • Remove unused \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract
  • Remove deprecated \Heptacom\HeptaConnect\Storage\Base\Contract\StorageKeyGeneratorContract::generateKey

[0.8.5] - 2021-12-28

Fixed

  • Change composer dependency bentools/iterable-functions: >=1 <2 to bentools/iterable-functions: >=1.4 <2 to ensure availability of iterable_map

[0.8.4] - 2021-12-16

Removed

  • Remove the code for unit tests, configuration for style checks as well as the Makefile

[0.8.3] - 2021-12-02

[0.8.2] - 2021-11-25

[0.8.1] - 2021-11-22

[0.8.0] - 2021-11-22

Added

  • Add \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::start for tracking the start of job processing
  • Add \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::finish for tracking the stop of job processing
  • Add \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::cleanup and \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContract::cleanup for cleaning up executed jobs and their payloads
  • Add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ReceptionRouteListActionInterface for listing reception routes by the given \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ReceptionRouteListCriteria to return a \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ReceptionRouteListResult
  • Add base class \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Overview\OverviewCriteriaContract for overview criterias
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Overview\RouteOverviewActionInterface for listing all routes by the given \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Overview\RouteOverviewCriteria to return a \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Overview\RouteOverviewResult
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Find\RouteFindActionInterface for checking the existence of a route by its components by the given \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Find\RouteFindCriteria to return a \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Find\RouteFindResult
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetActionInterface for reading metadata of routes by the given \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetCriteria to return a \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetResult
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreateActionInterface for creating routes by the given \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreatePayloads and \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreatePayload to return a \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreateResults of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreateResult
  • With storage restructure explained in this ADR we add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\RouteCapability\Overview\RouteCapabilityOverviewActionInterface for listing available route capabilities by the given \Heptacom\HeptaConnect\Storage\Base\Contract\Action\RouteCapability\Overview\RouteCapabilityOverviewCriteria to return a \Heptacom\HeptaConnect\Storage\Base\Contract\Action\RouteCapability\Overview\RouteCapabilityOverviewResult
  • Add \Heptacom\HeptaConnect\Storage\Base\Enum\RouteCapability to hold constant values for route capabilities
  • Add interface \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Create\CreatePayloadInterface to reference to create payloads more easily in exceptions
  • Add exception \Heptacom\HeptaConnect\Storage\Base\Exception\CreateException for all cases when creation failed
  • Add exception \Heptacom\HeptaConnect\Storage\Base\Exception\InvalidCreatePayloadException for all cases when creation failed due to invalid payload
  • Add exception \Heptacom\HeptaConnect\Storage\Base\Exception\InvalidOverviewCriteriaException for cases when overview criteria are malformed
  • Add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindActionInterface to get a configuration key for an HTTP handler by \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindCriteria into \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Find\WebHttpHandlerConfigurationFindResult
  • Add \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetActionInterface to set configuration keys for HTTP handlers by \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayloads and its \Heptacom\HeptaConnect\Storage\Base\Contract\Action\WebHttpHandlerConfiguration\Set\WebHttpHandlerConfigurationSetPayload

Changed

  • Change parameter name in \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract::listByTypeAndPortalNodeAndExternalId from $datasetEntityClassName to $entityType
  • Change parameter name in \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract::listByTypeAndPortalNodeAndExternalIds from $datasetEntityClassName to $entityType
  • Change parameter name in \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract::create from $datasetEntityClassName to $entityType
  • Change parameter name in \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract::createList from $datasetEntityClassName to $entityType
  • Change parameter name in \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract::listUnsavedExternalIds from $datasetEntityClassName to $entityType
  • Change parameter name in \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingRepositoryContract::listByPortalNodeAndType from $datasetEntityType to $entityType
  • Change parameter name of \Heptacom\HeptaConnect\Storage\Base\Exception\UnsharableOwnerException::__construct from $expectedDatasetEntityClassName to $expectedEntityType
  • Change parameter name of \Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStruct::__construct from $datasetEntityClassName to $entityType
  • Change method name from \Heptacom\HeptaConnect\Storage\Base\Contract\MappingNodeStructInterface::getDatasetEntityClassName to \Heptacom\HeptaConnect\Storage\Base\Contract\MappingNodeStructInterface::getEntityType
  • Change method name from \Heptacom\HeptaConnect\Storage\Base\Exception\UnsharableOwnerException::getExpectedDatasetEntityClassName to \Heptacom\HeptaConnect\Storage\Base\Exception\UnsharableOwnerException::getExpectedEntityType
  • Change method name from \Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStructgetDatasetEntityClassName to \Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStruct::getEntityType
  • Change method name from \Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStruct::getForeignDatasetEntityClassName to \Heptacom\HeptaConnect\Storage\Base\PrimaryKeySharingMappingStruct::getForeignEntityType

Removed

  • With storage restructure explained in this ADR we remove implementation \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\RouteRepositoryContract::listBySourceAndEntityType in favour of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ReceptionRouteListActionInterface::list, \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Overview\RouteOverviewActionInterface::overview and \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Find\RouteFindActionInterface::find that allows for optimizations for different use-cases
  • With storage restructure explained in this ADR we remove implementation \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\RouteRepositoryContract::read in favour of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetActionInterface::get that allows for optimizations in the storage implementation
  • With storage restructure explained in this ADR we remove implementation \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\RouteRepositoryContract::create in favour of \Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Create\RouteCreateActionInterface::create that allows for optimizations in the storage implementation
  • Remove \Heptacom\HeptaConnect\Storage\Base\Contract\Repository\WebhookRepositoryContract

[0.7.0] - 2021-09-25

Added

  • Add methods in \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract (\Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::clear, \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::getMultiple and \Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract::deleteMultiple) to allow PSR simple cache compatibility
  • Add contract \Heptacom\HeptaConnect\Storage\Base\MappingPersister\Contract\MappingPersisterContract. It must be used with \Heptacom\HeptaConnect\Storage\Base\MappingPersistPayload. It can throw \Heptacom\HeptaConnect\Storage\Base\MappingPersister\Exception\MappingConflictException.

Changed

  • Change parameter in \Heptacom\HeptaConnect\Storage\Base\TypedMappingCollection::__construct to allow iterables to be consumed like its parent class

Fixed

  • Require previously soft-required bentools/iterable-functions: >=1 <2