Configuration 

Administrators configure Context Reporter in System > Context Reports: the Settings button is at the top right of the report list. The settings have the sections General, Privacy, Reports & storage, Email and Webhook. Only administrators can open them.

Where settings are stored 

The settings of the module are stored in the TYPO3 registry (table sys_registry , namespace tx_contextreporter), not in config/system/settings.php. Each section is saved on its own; the page shows when and by whom the settings were last saved.

Values in $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['context_reporter'] take precedence over the module. They are shown read-only on the settings page. Use this to pin values per environment, for example to switch off deliveries on a staging system that runs on a copy of the production database:

config/system/additional.php
if (!\TYPO3\CMS\Core\Core\Environment::getContext()->isProduction()) {
    $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['context_reporter']['email']['enabled'] = false;
    $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['context_reporter']['webhook']['enabled'] = false;
}
Copied!

The keys are the setting names below, grouped by section, for example ['reporting']['retentionDays']. Each key is pinned on its own; keys that are not set in the system configuration stay editable. The extension has no Extension Configuration form.

General 

general.enabled
Type
boolean
Default
true

Enables reporting for backend users. It can be disabled for individual users or groups with user TSconfig. Stored reports remain available when reporting is disabled.

general.projectName
Type
string
Default
site name

Shown in reports, email subjects and webhook payloads. When empty, the TYPO3 site name ($GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename']) is used.

general.projectIdentifier
Type
string
Default
(empty)

Optional stable key, for example customer-portal, that helps receiving systems to route reports. Up to 64 letters, digits, dots, hyphens and underscores.

general.environment
Type
string
Default
application context

Production, Staging, Development, Testing or a custom name of up to 50 characters. When empty, the TYPO3 application context is used.

Privacy 

The Privacy section also lists what every report contains and what it never contains, see Allowlist first.

privacy.reporterUid
Type
boolean
Default
true

Share the backend user UID of the reporter. The report history uses it to show who reported a problem.

privacy.reporterUsername
Type
boolean
Default
true

Share the username of the reporter.

privacy.reporterRealName
Type
boolean
Default
false

Share the real name of the reporter.

privacy.reporterEmail
Type
boolean
Default
false

Share the email address of the reporter. Required for email.replyToReporter.

privacy.reporterGroups
Type
boolean
Default
false

Share the backend user groups (UID and title) and the administrator flag.

privacy.browserDetails
Type
boolean
Default
true

Share browser and operating system, user agent, language, time zone, window and screen size, pixel ratio, color scheme and the reduced motion preference.

privacy.recentBackendErrors
Type
boolean
Default
false

Adds up to ten error and warning entries of the reporter from the backend log ( sys_log ) of the last 30 minutes, shortened. Log messages can contain record titles, file names or other sensitive diagnostic text, see Recent backend errors. Enable this only if everyone who receives reports may see such text.

Reports and storage 

reporting.maxScreenshotSizeKb
Type
integer
Default
5120

Maximum size of a screenshot in KB (100 to 15360). Larger screenshots are compressed in the browser, first as PNG, then as JPEG with a lower resolution. Screenshots are stored in the database; the limit must stay below the max_allowed_packet of MariaDB or MySQL, see Storage.

reporting.maxReportsPerUserPerHour
Type
integer
Default
20

Protects the destinations against floods (0 to 1000). 0 disables the limit.

reporting.retentionDays
Type
integer
Default
0 (keep forever)

How long reports, their screenshots and delivery history are kept: forever (0), 30, 90, 180 or 365 days, or a custom number of days (1 to 3650). Reports are only removed when an administrator runs the cleanup; changing the setting removes nothing.

The section also shows how many reports, screenshots (with their size) and delivery attempts are stored, and a preview of the cleanup. With the default retention, the history grows with every report.

Email 

Emails are sent with the mail transport of TYPO3 ($GLOBALS['TYPO3_CONF_VARS']['MAIL'], Admin Tools > Settings > Configure Installation-Wide Options). Context Reporter has no SMTP settings of its own.

email.enabled
Type
boolean
Default
false

Sends every report by email. Requires at least one recipient.

email.recipients
Type
string
Default
(empty)

Up to 20 email addresses, separated by commas, semicolons or line breaks.

email.senderAddress
Type
string
Default
(empty)

Sender address of the email. When empty, the TYPO3 default mail sender ($GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress']) is used.

email.senderName
Type
string
Default
(empty)

Sender name, used together with email.senderAddress.

email.subject
Type
string
Default
[{project.name}] {report.title} ({report.id})

Subject with markers.

email.bodyTemplate
Type
string
Default
EXT:context_reporter/Resources/Private/Templates/Email/Report.txt

Plain text template with markers. It must be a .txt file below Resources/Private/ of an extension, for example EXT:my_sitepackage/Resources/Private/Templates/Email/ContextReport.txt. Other paths are rejected, so no other file of the installation can end up in an email.

email.attachScreenshot
Type
boolean
Default
true

Attaches the screenshot.

email.attachJson
Type
boolean
Default
true

Attaches the report as JSON file, without the screenshot.

email.replyToReporter
Type
boolean
Default
false

Uses the reporter as Reply-To address. Only works when privacy.reporterEmail is enabled.

Email status and test email 

Next to the form, the Status panel explains whether reports can be sent by email with the saved settings: whether delivery is switched on, the recipients, the sender that is used, the TYPO3 mail transport (host and port, sendmail binary or DSN scheme and host; credentials are never shown) and the attachments. It warns when

  • email delivery is switched off or no recipient is configured,
  • the TYPO3 transport is null (emails are discarded) or mbox (emails are written to a file),
  • emails are spooled and only sent by vendor/bin/typo3 mailer:spool:send,
  • the transport points to a local mail catcher such as Mailpit, for example in DDEV projects, so emails do not reach real mailboxes,
  • no valid sender address is configured.

Send test email sends a short message without report data to the saved recipients, also while email delivery is switched off. Transport errors are shown without credentials.

Webhook 

webhook.enabled
Type
boolean
Default
false

Sends every report to the webhook endpoint.

webhook.url
Type
string
Default
(empty)

HTTPS endpoint that receives a JSON POST request. Accepts an environment variable reference. Webhook URLs often contain access tokens, so a stored URL is never shown again: the settings page only shows scheme and host. Leave the field empty to keep the stored URL.

webhook.secret
Type
string
Default
(empty)

Signs each request with HMAC-SHA256, see Verifying the signature. Accepts an environment variable reference.

webhook.authHeaderName
Type
string
Default
Authorization

Name of an additional authentication header, for example X-Api-Key.

webhook.authHeaderValue
Type
string
Default
(empty)

Value of the authentication header, for example Bearer <token>. The header is only sent when a value is set. Accepts an environment variable reference.

webhook.includeScreenshot
Type
boolean
Default
true

Embeds the screenshot as base64 in the request.

webhook.timeout
Type
integer
Default
10

Timeout in seconds (1 to 30). The reporter waits for the delivery.

webhook.allowInsecureHttp
Type
boolean
Default
false

Allows plain http:// URLs. Only for local development.

The webhook is configured by trusted administrators: the endpoint can be any host the TYPO3 server can reach. See Webhook: trusted administrators for the consequences and how to pin the webhook settings.

The secret fields are write-only: the settings page shows whether a value is configured, configured via an environment variable, or whether the environment variable is missing, but never the value. Leave a field empty to keep the stored value, or tick Remove the stored value.

Send test webhook posts the event test with the saved settings, also while webhook delivery is switched off, see Test deliveries. Test deliveries are not added to the delivery history.

Secrets from environment variables 

webhook.url, webhook.secret and webhook.authHeaderValue accept a value of the form %env(NAME)%, both in the settings page and in the system configuration. The value is read from the environment variable NAME when a report is delivered, so the secret itself is not stored in the database or in a configuration file. Settings that are entered directly are stored in sys_registry ; prefer environment variables for production secrets.

The resolved value is sent to the webhook endpoint, as signing key or header value. Any environment variable of the web server process can be referenced, so only reference variables that are meant for the webhook, and see Webhook: trusted administrators.

config/system/additional.php
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['context_reporter']['webhook']['secret']
    = '%env(CONTEXT_REPORTER_WEBHOOK_SECRET)%';
Copied!

Secrets are never shown in the backend, and they are removed from stored error messages.

User TSconfig 

Disable reporting for a user or group:

User TSconfig
options.contextReporter.enable = 0
Copied!

The toolbar button, the context menu item and the editing form button are removed, and the server rejects reports from this user.

Hide the context menu item for a table (standard TYPO3 option). Files and folders use the tables sys_file and sys_file_storage:

User TSconfig
options.contextMenu.table.tt_content.disableItems = contextReporterReport
options.contextMenu.table.sys_file.disableItems = contextReporterReport
Copied!

The list view of the file list shows the actions of options.file_list.primaryActions as buttons and all other actions in the More options menu. The extension ships this user TSconfig, which is the TYPO3 default plus the report action:

EXT:context_reporter/Configuration/user.tsconfig
options.file_list.primaryActions = view, metadata, translations, delete, contextReporterReport
Copied!

If your project defines its own list, add contextReporterReport to it to keep the action visible.

Access 

  • Every backend user can create reports, unless disabled with TSconfig.
  • A report can only reference pages and records that the reporter can access (web mounts, page permissions and table permissions), and files and folders in the reporter's file storages and file mounts, with read permission. File metadata can only be reported for accessible files. In a workspace, only live records and versions of the current workspace can be reported. See Protection of reports.
  • The System > Context Reports module, including the settings, test deliveries, the cleanup and the review state, is available to administrators only.
  • Reporters can download their own reports.