---
title: "Breaking: #101291 - Introduce capabilities bit set"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-101291-1688740732"
source: "Changelog/13.0/Breaking-101291-IntroduceCapabilitiesBitSet.rst"
typo3-version: "13.0"
typo3-major: 13
type: "breaking"
issue: 101291
forge: "https://forge.typo3.org/issues/101291"
tags: ["FAL", "PHP-API", "NotScanned", "ext:core"]
rendered: "2026-10-03T08:19:36+00:00"
---

# Breaking: #101291 - Introduce capabilities bit set {#breaking-101291-1688740732}

See [forge#101291](https://forge.typo3.org/issues/101291)

## Description {#description}

The capabilities property of the `ResourceStorage` and drivers
(`LocalDriver`/`AbstractDriver`) have been converted from an integer
(holding a bit value) to an instance of a new `BitSet` class
`\TYPO3\CMS\Core\Resource\Capabilities`.

This affects the public API of the following interface methods:

-   `\TYPO3\CMS\Core\Resource\Driver\DriverInterface::getCapabilities()`
-   `\TYPO3\CMS\Core\Resource\Driver\DriverInterface::mergeConfigurationCapabilities()`

In consequence, all mentioned methods of implementations are affected as well,
those of:

-   `\TYPO3\CMS\Core\Resource\Driver\AbstractDriver::getCapabilities()`
-   `\TYPO3\CMS\Core\Resource\Driver\LocalDriver::mergeConfigurationCapabilities()`

Also the following constants have been removed:

-   `\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_BROWSABLE`
-   `\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_PUBLIC`
-   `\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_WRITABLE`
-   `\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_HIERARCHICAL_IDENTIFIERS`

## Impact {#impact}

The return type of the following methods, respective their implementations have
changed from `int` to `\TYPO3\CMS\Core\Resource\Capabilities`:

-   `\TYPO3\CMS\Core\Resource\Driver\DriverInterface::getCapabilities()`
-   `\TYPO3\CMS\Core\Resource\Driver\DriverInterface::mergeConfigurationCapabilities()`

The type of the parameter `$capabilities` of the method
`mergeConfigurationCapabilities()` has been changed from `int` to
`\TYPO3\CMS\Core\Resource\Capabilities`.

The usage of the mentioned, removed constants of
`\TYPO3\CMS\Core\Resource\ResourceStorageInterface` will lead to errors.

## Affected installations {#affected-installations}

Installations that implement custom drivers and therefore directly implement
`\TYPO3\CMS\Core\Resource\Driver\DriverInterface` or extend
`\TYPO3\CMS\Core\Resource\Driver\AbstractDriver`.

Also, installations that use the removed constants of
`\TYPO3\CMS\Core\Resource\ResourceStorageInterface`.

## Migration {#migration}

When using mentioned methods that formerly returned the bit value as integer or
expected the bit value as integer parameter need to use the `Capabilities`
class instead. It behaves exactly the same as the plain integer. If the plain
integer value needs to be retrieved, `__toInt()` can be called on
`Capabilities` instances.

The following removed constants

-   `\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_BROWSABLE`
-   `\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_PUBLIC`
-   `\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_WRITABLE`
-   `\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_HIERARCHICAL_IDENTIFIERS`

can be replaced with public constants of the new `Capabilities` class:

-   `\TYPO3\CMS\Core\Resource\Capabilities::CAPABILITY_BROWSABLE`
-   `\TYPO3\CMS\Core\Resource\Capabilities::CAPABILITY_PUBLIC`
-   `\TYPO3\CMS\Core\Resource\Capabilities::CAPABILITY_WRITABLE`
-   `\TYPO3\CMS\Core\Resource\Capabilities::CAPABILITY_HIERARCHICAL_IDENTIFIERS`
