Neos:
  Flow:
    persistence:
      doctrine:
        migrations:
          ignoredTables:
            'cr_.*': true

    # Improve debug output for node objects by ignoring large classes
    error:
      debugger:
        ignoredClasses:
          Neos\\ContentRepository\\SharedModel\\NodeType\\NodeTypeManager: true

    log:
      psr3:
        'Neos\Flow\Log\PsrLoggerFactory':
          contentRepositoryLogger:
            default:
              class: Neos\Flow\Log\Backend\FileBackend
              options:
                # todo context aware? FLOW_APPLICATION_CONTEXT .. but that contains /
                logFileURL: '%FLOW_PATH_DATA%Logs/ContentRepository.log'
                createParentDirectories: true
                severityThreshold: '%LOG_INFO%'
                maximumLogFileSize: 10485760
                logFilesToKeep: 1
                logMessageOrigin: false

  ContentRepositoryRegistry:
    contentRepositories:
      default:
        preset: default
        contentDimensions:
          # NOTE: Dimensions Config follows here

    presets:
      'default':

        eventStore:
          factoryObjectName: Neos\ContentRepositoryRegistry\Factory\EventStore\DoctrineEventStoreFactory

        nodeTypeManager:
          factoryObjectName: Neos\ContentRepositoryRegistry\Factory\NodeTypeManager\DefaultNodeTypeManagerFactory

        contentDimensionSource:
          factoryObjectName: Neos\ContentRepositoryRegistry\Factory\ContentDimensionSource\ConfigurationBasedContentDimensionSourceFactory

        authProvider:
          factoryObjectName: Neos\ContentRepositoryRegistry\Factory\AuthProvider\StaticAuthProviderFactory

        clock:
          factoryObjectName: Neos\ContentRepositoryRegistry\Factory\Clock\SystemClockFactory

        subscriptionStore:
          factoryObjectName: Neos\ContentRepositoryRegistry\Factory\SubscriptionStore\SubscriptionStoreFactory

        propertyConverters:
          DateTimeNormalizer:
            className: Symfony\Component\Serializer\Normalizer\DateTimeNormalizer
          ScalarNormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ScalarNormalizer
          EnumNormalizer:
            className: Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer
          ArrayNormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ArrayNormalizer
          UriNormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\UriNormalizer
          ValueObjectArrayDenormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ValueObjectArrayDenormalizer
          ValueObjectBoolDenormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ValueObjectBoolDenormalizer
          ValueObjectFloatDenormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ValueObjectFloatDenormalizer
          ValueObjectIntDenormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ValueObjectIntDenormalizer
          ValueObjectStringDenormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\ValueObjectStringDenormalizer
          DoctrinePersistentObjectNormalizer:
            className: Neos\ContentRepositoryRegistry\Infrastructure\Property\Normalizer\DoctrinePersistentObjectNormalizer
          CollectionTypeDenormalizer:
            className: Neos\ContentRepository\Core\Infrastructure\Property\Normalizer\CollectionTypeDenormalizer
          ProxyAwareObjectNormalizer:
            className: Neos\ContentRepositoryRegistry\Infrastructure\Property\Normalizer\ProxyAwareObjectNormalizer

        contentGraphProjection:
          # NOTE: This introduces a soft-dependency to the neos/contentgraph-doctrinedbaladapter package, but it can be overridden when a different adapter is used
          factoryObjectName: Neos\ContentGraph\DoctrineDbalAdapter\DoctrineDbalContentGraphProjectionFactory

          catchUpHooks:
            'Neos.ContentRepositoryRegistry:FlushSubgraphCachePool':
              factoryObjectName: Neos\ContentRepositoryRegistry\SubgraphCachingInMemory\FlushSubgraphCachePoolCatchUpHookFactory

        # additional projections:
        #
        # projections:
        #   'My.Package:SomeProjection': # just a name
        #     factoryObjectName: My\Package\Projection\SomeProjectionFactory
        #     options: {}
        #     catchUpHooks: {}

        # Command Hooks
        #
        # commandHooks:
        #   'My.Package:SomeCommandHook': # just a name
        #     factoryObjectName: My\Package\CommandHook\SomeCommandHookFactory

    nodeMigration:
      filterFactories:
        DimensionSpacePoints: Neos\ContentRepository\NodeMigration\Filter\DimensionSpacePointsFilterFactory
        NodeName: Neos\ContentRepository\NodeMigration\Filter\NodeNameFilterFactory
        NodeType: Neos\ContentRepository\NodeMigration\Filter\NodeTypeFilterFactory
        PropertyNotEmpty: Neos\ContentRepository\NodeMigration\Filter\PropertyNotEmptyFilterFactory
        PropertyValue: Neos\ContentRepository\NodeMigration\Filter\PropertyValueFilterFactory
      transformationFactories:
        AddDimensionShineThrough: Neos\ContentRepository\NodeMigration\Transformation\AddDimensionShineThroughTransformationFactory
        AddNewProperty: Neos\ContentRepository\NodeMigration\Transformation\AddNewPropertyConverterAwareTransformationFactory
        ChangeNodeType: Neos\ContentRepository\NodeMigration\Transformation\ChangeNodeTypeTransformationFactory
        ChangePropertyValue: Neos\ContentRepository\NodeMigration\Transformation\ChangePropertyValueConverterAwareTransformationFactory
        MoveDimensionSpacePoint: Neos\ContentRepository\NodeMigration\Transformation\MoveDimensionSpacePointTransformationFactory
        RemoveNode: Neos\ContentRepository\NodeMigration\Transformation\RemoveNodeTransformationFactory
        RemoveProperty: Neos\ContentRepository\NodeMigration\Transformation\RemovePropertyTransformationFactory
        RenameNodeAggregate: Neos\ContentRepository\NodeMigration\Transformation\RenameNodeAggregateTransformationFactory
        RenameProperty: Neos\ContentRepository\NodeMigration\Transformation\RenamePropertyTransformationFactory
        StripTagsOnProperty: Neos\ContentRepository\NodeMigration\Transformation\StripTagsOnPropertyTransformationFactory
        UpdateRootNodeAggregateDimensions: Neos\ContentRepository\NodeMigration\Transformation\UpdateRootNodeAggregateDimensionsTransformationFactory
