Backend User Configuration

Access privileges and page mounts

REST API

The REST API’s write permissions are drawn from the authenticated backend user. You can configure the user in the TYPO3 backend as any other user. We recommend using a non-admin user with permissions limited to exactly the tables, page mounts, and file storage that are required.

Authenticating admin users is also possible and slightly more performant. However, it also comes with potential security risks.

CLI commands

The write permissions of the CLI commands is drawn from the default _cli_ backend user.

UserTS Configuration

Since calls to the Interest extension are not happening within a page scope, extension-specific configurations are made using TypoScript in UserTS. Many properties support stdWrap, so it is possible to configure advanced data transformations.

Accessing metadata

Both the CLI commands and REST endpoints support sending metadata alongside with the record data. The metadata is common to the command or request, and it can e.g. be used to set storage PID dependent on a criteria.

Here’s an example using market metadata to configure the PID:

tx_interest.persistence {
  storagePid {
    cObject = CASE
    cObject {
      key.data = field : metaData | market

      Denmark = TEXT
      Denmark.value =

      Norway = TEXT
      Norway.value = 1814

      Sweden = TEXT
      Sweden.value =
    }
  }

UserTS properties

UserTS configuration properties are set within tx_interest in the UserTS field of a backend user or backend user group, or within a .userts file.

persistence.hashedSubfolders
Required:false
Type:int
Default:0

The number of layers of subfolders to create within fileUploadFolderPath. Each folder is named using characters from a hash of the file name.

If the file name is image.jpg and hashedSubfolders = 3, the file will be saved in 0/d/5/image.jpg within fileUploadFolderPath.

persistence.fileUploadFolderPath
Required:true
Type:string (combined storage identifier)
Default:1:tx_interest

The location where uploaded files will be stored.

persistence.storagePid
Required:false
Type:int | stdWrap
Default:

Where new records will be stored. Can also be supplied in the record data by setting the pid field.

relationOverrides.[table].[field]
Required:false
Type:bool | stdWrap

If a field is or isn’t wrongly a relation, this is your friend. Override whatever is in the TCA and whatever the extension itself thinks. Play God.

relationTypeOverride.[table].[field]
Required:false
Type:string | stdWrap

Override the TCA type of the field. E.g.: change “text” to “inline”. The incoming value is always set to the field’s current type.

isSingleRelationOverrides.[table].[field]
Required:false
Type:string | stdWrap

Override whether a field supports 1:n or m:n relations. Should be set to true (1) if it is a 1:n relation and false (0) if it is a m:n relation.