From 6a71966c109d6a5d8af1ce88139a7e4d350d2f10 Mon Sep 17 00:00:00 2001 From: Peter Bittner Date: Tue, 13 Jun 2017 17:24:53 +0200 Subject: [PATCH 01/10] Update Sentry-PHP package reference for installation w/ composer --- composer.json | 2 +- cundd_composer.json | 30 ------------------------------ 2 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 cundd_composer.json diff --git a/composer.json b/composer.json index ec9c667..3b6964b 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "TYPO3 Extension for exception logging with sentry, see http://www.getsentry.com", "type": "typo3-cms-extension", "require": { - "typo3/cms-core": ">=6.2.0,<8.9.99" + "sentry/sentry": "^1.7" }, "license": [ "GPL-2.0+" diff --git a/cundd_composer.json b/cundd_composer.json deleted file mode 100644 index 17707c2..0000000 --- a/cundd_composer.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "lemming/sentry_client", - "description": "TYPO3 Extension for exception logging with sentry, see http://www.getsentry.com", - "type": "typo3-cms-extension", - "require": { - "sentry/sentry": "^1.6" - }, - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "Christoph Lehmann", - "email": "christoph.lehmann@networkteam.com" - }, - { - "name": "Daniel Corn", - "email": "daniel@iresults.li" - } - ], - "replace": { - "sentry_client": "self.version", - "typo3-ter/sentry_client": "self.version" - }, - "autoload": { - "psr-4": { - "Iresults\\SentryClient\\": "Classes" - } - } -} From 69bd7a8e10fc92698c135b8b9dd0b30d0db5e37a Mon Sep 17 00:00:00 2001 From: Peter Bittner Date: Fri, 16 Jun 2017 17:12:32 +0200 Subject: [PATCH 02/10] Set working default values for error reporting Covers values in both LocalConfiguration and TypoScript Update README --- Classes/ClientProvider.php | 2 +- Classes/DebugExceptionHandler.php | 2 +- Classes/ErrorHandler.php | 2 +- Classes/ProductionExceptionHandler.php | 2 +- Configuration/TypoScript/setup.txt | 3 + README.md | 76 ++++++++++++++++++++------ composer.json | 9 +-- ext_localconf.php | 13 +++++ 8 files changed, 83 insertions(+), 26 deletions(-) create mode 100644 Configuration/TypoScript/setup.txt diff --git a/Classes/ClientProvider.php b/Classes/ClientProvider.php index 6ce33d3..08d26ff 100644 --- a/Classes/ClientProvider.php +++ b/Classes/ClientProvider.php @@ -1,5 +1,5 @@ [ + // ... + 'devIPmask' => '', + 'displayErrors' => '0', + 'enable_errorDLOG' => '1', + 'enable_exceptionDLOG' => '1', + 'enableDeprecationLog' => 'devlog', + 'systemLog' => '', + 'systemLogLevel' => '0', + 'syslogErrorReporting' => E_ALL, + 'belogErrorReporting' => E_ALL, + 'errorHandler' => 'SentryClient\\ErrorHandler', + 'debugExceptionHandler' => 'SentryClient\\DebugExceptionHandler', + 'productionExceptionHandler' => 'SentryClient\\ProductionExceptionHandler', + ] +``` +Alternatively, you can [set those values]( +https://github.com/comsolit/sentry_client/blob/master/ext_localconf.php#L6-L17) +via the `Install Tool` or in `typo3conf/AdditionalConfiguration.php`. Configuration ------------- -Set the dsn (e.g. `http://public_key:secret_key@your-sentry-server.com/project-id`) in the `Extension Manager`. +Set the dsn (e.g. `http://public_key:secret_key@your-sentry-server.com/project-id`) +in the `Extension Manager`. + +NOTE: This will be added in your `typo3conf/LocalConfiguration.php` file at: +``` php +'EXT' => [ + 'extConf' => [ + 'sentry_client' => ... +``` Development ----------- -Development of this fork happens on https://github.com/iresults/sentry_client - -The original version can be found on https://github.com/networkteam/sentry_client \ No newline at end of file +Your contributions are welcome! Please fork the repo, make your changes, and +[open a pull request](https://github.com/comsolit/sentry_client/pulls). diff --git a/composer.json b/composer.json index 3b6964b..976ff8e 100644 --- a/composer.json +++ b/composer.json @@ -1,12 +1,13 @@ { - "name": "lemming/sentry_client", + "name": "comsolit/sentry_client", "description": "TYPO3 Extension for exception logging with sentry, see http://www.getsentry.com", "type": "typo3-cms-extension", "require": { - "sentry/sentry": "^1.7" + "typo3/cms-core": ">=6.2.0,<8.9.99", + "sentry/sentry": "^1.8@dev" }, "license": [ - "GPL-2.0+" + "GPL-3.0+" ], "authors": [ { @@ -24,7 +25,7 @@ }, "autoload": { "psr-4": { - "Iresults\\SentryClient\\": "Classes" + "SentryClient\\": "Classes" } } } diff --git a/ext_localconf.php b/ext_localconf.php index 329fe75..96c8636 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -2,3 +2,16 @@ if (!defined('TYPO3_MODE')) { die('Access denied.'); } + +$TYPO3_CONF_VARS['SYS']['devIPmask'] = ''; // show default TYPO3 error message +$TYPO3_CONF_VARS['SYS']['displayErrors'] = '0'; // don't turn errors into exceptions, use productionExceptionHandler +$TYPO3_CONF_VARS['SYS']['enable_errorDLOG'] = '1'; // developer log ('devlog' extension) +$TYPO3_CONF_VARS['SYS']['enable_exceptionDLOG'] = '1'; // developer log ('devlog' extension) +$TYPO3_CONF_VARS['SYS']['enableDeprecationLog'] = 'devlog'; +$TYPO3_CONF_VARS['SYS']['systemLog'] = ''; // no local logging (= maximum performance) +$TYPO3_CONF_VARS['SYS']['systemLogLevel'] = '0'; // log everything +$TYPO3_CONF_VARS['SYS']['syslogErrorReporting'] = E_ALL; +$TYPO3_CONF_VARS['SYS']['belogErrorReporting'] = E_ALL; +$TYPO3_CONF_VARS['SYS']['errorHandler'] = 'SentryClient\\ErrorHandler'; +$TYPO3_CONF_VARS['SYS']['debugExceptionHandler'] = 'SentryClient\\DebugExceptionHandler'; +$TYPO3_CONF_VARS['SYS']['productionExceptionHandler'] = 'SentryClient\\ProductionExceptionHandler'; From 298c5408542e1f561b334040f7242fe55073e9d4 Mon Sep 17 00:00:00 2001 From: Peter Bittner Date: Mon, 19 Jun 2017 17:02:53 +0200 Subject: [PATCH 03/10] Remove need for minimum-stability (composer) --- README.md | 1 - composer.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index a0e5383..ab0c7ff 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,6 @@ Installation "type": "git" } ], - "minimum-stability": "dev", "require": { "comsolit/sentry_client": "dev-master" } diff --git a/composer.json b/composer.json index 976ff8e..7cf6f91 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "type": "typo3-cms-extension", "require": { "typo3/cms-core": ">=6.2.0,<8.9.99", - "sentry/sentry": "^1.8@dev" + "sentry/sentry": "^1.7" }, "license": [ "GPL-3.0+" From 551d17f1fc6865d4b996ee5d4e8cdddc0acce46d Mon Sep 17 00:00:00 2001 From: Peter Bittner Date: Mon, 19 Jun 2017 19:48:19 +0200 Subject: [PATCH 04/10] Set LocalConfiguration values for extension correctly --- ext_localconf.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ext_localconf.php b/ext_localconf.php index 96c8636..7e6f69c 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -3,15 +3,15 @@ die('Access denied.'); } -$TYPO3_CONF_VARS['SYS']['devIPmask'] = ''; // show default TYPO3 error message -$TYPO3_CONF_VARS['SYS']['displayErrors'] = '0'; // don't turn errors into exceptions, use productionExceptionHandler -$TYPO3_CONF_VARS['SYS']['enable_errorDLOG'] = '1'; // developer log ('devlog' extension) -$TYPO3_CONF_VARS['SYS']['enable_exceptionDLOG'] = '1'; // developer log ('devlog' extension) -$TYPO3_CONF_VARS['SYS']['enableDeprecationLog'] = 'devlog'; -$TYPO3_CONF_VARS['SYS']['systemLog'] = ''; // no local logging (= maximum performance) -$TYPO3_CONF_VARS['SYS']['systemLogLevel'] = '0'; // log everything -$TYPO3_CONF_VARS['SYS']['syslogErrorReporting'] = E_ALL; -$TYPO3_CONF_VARS['SYS']['belogErrorReporting'] = E_ALL; -$TYPO3_CONF_VARS['SYS']['errorHandler'] = 'SentryClient\\ErrorHandler'; -$TYPO3_CONF_VARS['SYS']['debugExceptionHandler'] = 'SentryClient\\DebugExceptionHandler'; -$TYPO3_CONF_VARS['SYS']['productionExceptionHandler'] = 'SentryClient\\ProductionExceptionHandler'; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = ''; // show default TYPO3 error message +$GLOBALS['TYPO3_CONF_VARS']['SYS']['displayErrors'] = '0'; // don't turn errors into exceptions, use productionExceptionHandler +$GLOBALS['TYPO3_CONF_VARS']['SYS']['enable_errorDLOG'] = '1'; // developer log ('devlog' extension) +$GLOBALS['TYPO3_CONF_VARS']['SYS']['enable_exceptionDLOG'] = '1'; // developer log ('devlog' extension) +$GLOBALS['TYPO3_CONF_VARS']['SYS']['enableDeprecationLog'] = 'devlog'; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['systemLog'] = ''; // no local logging (= maximum performance) +$GLOBALS['TYPO3_CONF_VARS']['SYS']['systemLogLevel'] = '0'; // log everything +$GLOBALS['TYPO3_CONF_VARS']['SYS']['syslogErrorReporting'] = E_ALL; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['belogErrorReporting'] = E_ALL; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['errorHandler'] = 'SentryClient\\ErrorHandler'; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['debugExceptionHandler'] = 'SentryClient\\DebugExceptionHandler'; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['productionExceptionHandler'] = 'SentryClient\\ProductionExceptionHandler'; From 97871bdf971043c00e19da86f5c1550f83f3dcf6 Mon Sep 17 00:00:00 2001 From: Peter Bittner Date: Mon, 19 Jun 2017 20:11:33 +0200 Subject: [PATCH 05/10] Bump version (1.1.0 -> 1.3.0), update README --- README.md | 10 ++++++++-- composer.json | 6 +++++- ext_emconf.php | 28 +++++++++++----------------- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index ab0c7ff..380eacc 100644 --- a/README.md +++ b/README.md @@ -59,10 +59,11 @@ via the `Install Tool` or in `typo3conf/AdditionalConfiguration.php`. Configuration ------------- -Set the dsn (e.g. `http://public_key:secret_key@your-sentry-server.com/project-id`) +Set the [Sentry DSN](https://docs.sentry.io/quickstart/#about-the-dsn) +(e.g. `https://public_key:secret_key@your-sentry-server.com/project-id`) in the `Extension Manager`. -NOTE: This will be added in your `typo3conf/LocalConfiguration.php` file at: +This will be added in your `typo3conf/LocalConfiguration.php` file at: ``` php 'EXT' => [ @@ -70,6 +71,11 @@ NOTE: This will be added in your `typo3conf/LocalConfiguration.php` file at: 'sentry_client' => ... ``` +NOTE: For professional deployments you should consider using something like +[phpdotenv](https://packagist.org/packages/vlucas/phpdotenv) to manage your +secrets instead of using the Extension Manager, and leave your +`LocalConfiguration` under version control. + Development ----------- diff --git a/composer.json b/composer.json index 7cf6f91..8266c99 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "comsolit/sentry_client", - "description": "TYPO3 Extension for exception logging with sentry, see http://www.getsentry.com", + "description": "TYPO3 extension for error and exception logging with Sentry, https://sentry.io", "type": "typo3-cms-extension", "require": { "typo3/cms-core": ">=6.2.0,<8.9.99", @@ -17,6 +17,10 @@ { "name": "Daniel Corn", "email": "daniel@iresults.li" + }, + { + "name": "Peter Bittner", + "email": "bittner@comsolit.com" } ], "replace": { diff --git a/ext_emconf.php b/ext_emconf.php index 1415e11..7602600 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -1,10 +1,10 @@ 'Sentry Client', - 'description' => 'Sentry Client for TYPO3 - https://www.getsentry.com/', + 'description' => 'TYPO3 extension for error and exception logging with Sentry, https://sentry.io', 'category' => 'services', - 'version' => '1.1.0', + 'version' => '1.3.0', 'state' => 'beta', 'uploadfolder' => false, 'createDirs' => '', @@ -12,17 +12,11 @@ 'author' => 'Christoph Lehmann', 'author_email' => 'christoph.lehmann@networkteam.com', 'author_company' => 'networkteam GmbH', - 'constraints' => - array ( - 'depends' => - array ( - 'typo3' => '6.2.0-7.9.99', - ), - 'conflicts' => - array ( - ), - 'suggests' => - array ( - ), - ), -); + 'constraints' => [ + 'depends' => [ + 'typo3' => '6.2.0-8.9.99', + ], + 'conflicts' => [], + 'suggests' => [], + ], +]; From 0e698a3d1f752a0b2944d48241352e583fe7ec77 Mon Sep 17 00:00:00 2001 From: Peter Bittner Date: Wed, 21 Jun 2017 17:51:37 +0200 Subject: [PATCH 06/10] Add section on JavaScript error logging to README --- README.md | 29 +++++++++++++++++++++++++---- composer.json | 2 +- ext_emconf.php | 2 +- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 380eacc..b2d7531 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ Sentry Client for TYPO3 ======================= -A TYPO3 extension for exception logging with Sentry, https://www.sentry.io +A TYPO3 extension for PHP exception logging with Sentry, https://www.sentry.io -Logs frontend errors and exceptions to your Sentry instance. Note that logging -backend issues is not yet supported by TYPO3 (it's on the todo list for v9, -according to core developer Markus Klein). +Logs frontend PHP errors and exceptions to your Sentry instance. Note that +logging backend issues is not yet supported by TYPO3 (it's on the todo list +for v9, according to core developer Markus Klein). Based on the official Sentry PHP client, [`sentry/sentry`](https://packagist.org/packages/sentry/sentry). @@ -76,6 +76,27 @@ NOTE: For professional deployments you should consider using something like secrets instead of using the Extension Manager, and leave your `LocalConfiguration` under version control. +JavaScript Error Logging +------------------------ + +For logging your JavaScript errors to Sentry see the [JavaScript Sentry docs]( +https://docs.sentry.io/clients/javascript/). + +If you include your JavaScript sources via TypoScript it can be handy to avoid +hard-coding and define a `SENTRY_DSN_PUBLIC` value in your system environment +(e.g. via a `.env` file read by [phpdotenv](https://packagist.org/packages/vlucas/phpdotenv)). +You can read the value in TypoScript using the [`getenv` command]( +https://docs.typo3.org/typo3cms/TyposcriptReference/DataTypes/Gettext/Index.html#getenv) +like this: + +``` typo3_typoscript +page.headerData { + 99 = TEXT + 99.data = getenv : SENTRY_DSN_PUBLIC + 99.stdWrap.wrap = +} +``` + Development ----------- diff --git a/composer.json b/composer.json index 8266c99..850338f 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "comsolit/sentry_client", - "description": "TYPO3 extension for error and exception logging with Sentry, https://sentry.io", + "description": "TYPO3 extension for PHP error and exception logging with Sentry, https://sentry.io", "type": "typo3-cms-extension", "require": { "typo3/cms-core": ">=6.2.0,<8.9.99", diff --git a/ext_emconf.php b/ext_emconf.php index 7602600..06a5ef4 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -2,7 +2,7 @@ $EM_CONF[$_EXTKEY] = [ 'title' => 'Sentry Client', - 'description' => 'TYPO3 extension for error and exception logging with Sentry, https://sentry.io', + 'description' => 'TYPO3 extension for PHP error and exception logging with Sentry, https://sentry.io', 'category' => 'services', 'version' => '1.3.0', 'state' => 'beta', From a1a56be57a852d466883cd3376a593995c0c9da9 Mon Sep 17 00:00:00 2001 From: Peter Bittner Date: Thu, 22 Jun 2017 11:24:34 +0200 Subject: [PATCH 07/10] Add error filter values (defaults) to local configuration for reference --- README.md | 4 +++- ext_localconf.php | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b2d7531..e7d0eb5 100644 --- a/README.md +++ b/README.md @@ -47,13 +47,15 @@ Installation 'systemLogLevel' => '0', 'syslogErrorReporting' => E_ALL, 'belogErrorReporting' => E_ALL, + 'exceptionalErrors' => E_RECOVERABLE_ERROR | E_USER_DEPRECATED, + 'errorHandlerErrors' => E_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_RECOVERABLE_ERROR | E_DEPRECATED | E_USER_DEPRECATED, 'errorHandler' => 'SentryClient\\ErrorHandler', 'debugExceptionHandler' => 'SentryClient\\DebugExceptionHandler', 'productionExceptionHandler' => 'SentryClient\\ProductionExceptionHandler', ] ``` Alternatively, you can [set those values]( -https://github.com/comsolit/sentry_client/blob/master/ext_localconf.php#L6-L17) +https://github.com/comsolit/sentry_client/blob/master/ext_localconf.php#L6-L19) via the `Install Tool` or in `typo3conf/AdditionalConfiguration.php`. Configuration diff --git a/ext_localconf.php b/ext_localconf.php index 7e6f69c..c0a8245 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -12,6 +12,8 @@ $GLOBALS['TYPO3_CONF_VARS']['SYS']['systemLogLevel'] = '0'; // log everything $GLOBALS['TYPO3_CONF_VARS']['SYS']['syslogErrorReporting'] = E_ALL; $GLOBALS['TYPO3_CONF_VARS']['SYS']['belogErrorReporting'] = E_ALL; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['exceptionalErrors'] = E_RECOVERABLE_ERROR | E_USER_DEPRECATED; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['errorHandlerErrors'] = E_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_RECOVERABLE_ERROR | E_DEPRECATED | E_USER_DEPRECATED; $GLOBALS['TYPO3_CONF_VARS']['SYS']['errorHandler'] = 'SentryClient\\ErrorHandler'; $GLOBALS['TYPO3_CONF_VARS']['SYS']['debugExceptionHandler'] = 'SentryClient\\DebugExceptionHandler'; $GLOBALS['TYPO3_CONF_VARS']['SYS']['productionExceptionHandler'] = 'SentryClient\\ProductionExceptionHandler'; From f4299f5079007495e65045258498181eb9e39e6b Mon Sep 17 00:00:00 2001 From: Christian Lecherbauer Date: Wed, 6 Sep 2017 11:20:50 +0200 Subject: [PATCH 08/10] [7157][task] Set Release Information --- Classes/ClientProvider.php | 1 + README.md | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Classes/ClientProvider.php b/Classes/ClientProvider.php index 08d26ff..4a7a00d 100644 --- a/Classes/ClientProvider.php +++ b/Classes/ClientProvider.php @@ -94,6 +94,7 @@ private static function createClient() $client = new \Raven_Client(static::getDsn(), self::getClientOptions()); $client->user_context(static::getUserContext()); $client->tags_context(static::getTagsContext()); + $client->setRelease(getenv('APP_VERSION')); return $client; } else { diff --git a/README.md b/README.md index e7d0eb5..992c407 100644 --- a/README.md +++ b/README.md @@ -93,9 +93,23 @@ like this: ``` typo3_typoscript page.headerData { - 99 = TEXT - 99.data = getenv : SENTRY_DSN_PUBLIC - 99.stdWrap.wrap = + 999 = COA + 999 { + 10 = TEXT + 10.value = + 20 = TEXT + 20.value = + } } ``` From 05b76bcc7b19190e9e8033818d1c04affdef9921 Mon Sep 17 00:00:00 2001 From: Thomas Greber Date: Tue, 15 May 2018 09:29:42 +0200 Subject: [PATCH 09/10] [STGAG-7474] add type hint for exception parameter --- Classes/DebugExceptionHandler.php | 10 +--------- Classes/ProductionExceptionHandler.php | 16 ++-------------- 2 files changed, 3 insertions(+), 23 deletions(-) diff --git a/Classes/DebugExceptionHandler.php b/Classes/DebugExceptionHandler.php index 07cc170..a301f1b 100644 --- a/Classes/DebugExceptionHandler.php +++ b/Classes/DebugExceptionHandler.php @@ -1,25 +1,17 @@ = 7.0) object. - * @TODO #72293 This will change to \Throwable only if we are >= PHP7.0 only * * @throws \Exception */ - public function handleException($exception) + public function handleException(\Throwable $exception) { ClientProvider::captureException($exception); diff --git a/Classes/ProductionExceptionHandler.php b/Classes/ProductionExceptionHandler.php index 78678cf..73cf63a 100644 --- a/Classes/ProductionExceptionHandler.php +++ b/Classes/ProductionExceptionHandler.php @@ -1,25 +1,13 @@ = 7.0) object. - * @TODO #72293 This will change to \Throwable only if we are >= PHP7.0 only - * - * @throws \Exception + * @param \Exception|\Throwable $exception */ - public function handleException($exception) + public function handleException(\Throwable $exception) { ClientProvider::captureException($exception); From 5f9a02e66dd4a11f2e141edd6ae8b7c34f92f2ca Mon Sep 17 00:00:00 2001 From: Alexander Schneider Date: Fri, 31 Aug 2018 11:50:33 +0200 Subject: [PATCH 10/10] [STGAG-7528] set version to 8.0.0 --- composer.json | 1 + ext_emconf.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 850338f..6ce7f93 100644 --- a/composer.json +++ b/composer.json @@ -2,6 +2,7 @@ "name": "comsolit/sentry_client", "description": "TYPO3 extension for PHP error and exception logging with Sentry, https://sentry.io", "type": "typo3-cms-extension", + "version": "8.0.0", "require": { "typo3/cms-core": ">=6.2.0,<8.9.99", "sentry/sentry": "^1.7" diff --git a/ext_emconf.php b/ext_emconf.php index 06a5ef4..3fe9b0d 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -4,8 +4,8 @@ 'title' => 'Sentry Client', 'description' => 'TYPO3 extension for PHP error and exception logging with Sentry, https://sentry.io', 'category' => 'services', - 'version' => '1.3.0', - 'state' => 'beta', + 'version' => '8.0.0', + 'state' => 'stable', 'uploadfolder' => false, 'createDirs' => '', 'clearcacheonload' => true,