Skip to content

Releases: remp2020/remp

3.10.0

25 Oct 12:39
Compare
Choose a tag to compare

[Beam]

  • [Tracker] Fixed Tracker not publishing messages to pub/sub due to prematurely closed client. remp/remp#1384
  • [Segments] Fixed Elasticsearch 8 incompatibility in mapping caching. remp/remp#1385
  • Fixed newsletters being marked as finished in some occurences. remp/respekt#289

[Campaign]

  • Fixed missing session source on showtime requests which got executed before the session source could be stored. remp/web#2656
  • Fixed campaign-module migrations by moving country seeder into campaign-module. remp/remp#1287
  • Added option to use Campaign and Banner UUIDs in the search box.
  • Fixed ARIA-compatibility of close buttons in Campaign banners. remp/helpdesk#3037

[Mailer]

  • Added ability to set custom health check TTL for ProcessJobCommand. remp/remp#1376
  • Fixed parsing of attachment's filename from header within MailgunMailer. remp/remp#1386
    • Previous implementation incorrectly parsed filenames with dash. Filename of attached file "invoice-2024-09-24.pdf" would be only last part "24.pdf".
    • Added MailHeaderTrait with method getHeaderParameter() and tests to validate it.
  • Fixed mail type stats when groupped by week or month. remp/remp#1374
  • Changed behavior of rtm_click parameter. If the mail template disables click tracking, rtm_click is not added to the links anymore. remp/respekt#305
  • Fixed removed <a> by the newsfilter replace rules which didn't expect anchors without href attribute. remp/helpdesk#3082
  • Fixed possible issues with chart rendering if there's no data to evaluate yet.

3.9.3

11 Sep 10:07
Compare
Choose a tag to compare

[Beam]

  • [Segments] Fixed Elasticsearch 8 incompatibility in mapping caching. remp/remp#1385

3.9.2

11 Sep 08:00
Compare
Choose a tag to compare

[Beam]

  • [Tracker] Fixed Tracker not publishing messages to pub sub due to prematurely closed client. remp/remp#1384

[Mailer]

  • Added ability to set custom health check TTL for ProcessJobCommand. remp/remp#1376

3.9.0

04 Sep 09:40
Compare
Choose a tag to compare

[Beam]

  • IMPORTANT Removed section Visitors. remp/remp#1349
    • Related data (tables session_devices & session_referers) are persisted in DB until the next major update.
    • New data are not processed (command pageviews:process-sessions was removed).
  • IMPORTANT Removed section Google Analytics Reporting. remp/remp#1349
    • Data were loaded from discontinued version of Google Analytics.
  • [Tracker] Fixed PubSub implementation of message broker to avoid unnecessary log records. remp/remp#1372

[Campaign]

  • BREAKING: Changed internals of the application causing cached/generated files not to work anymore.
    • After the release, please run php artisan optimize:clear on each server the app is deployed to. This applies also to the development environment after you checkout the latest version. If you deploy to the clean environment, you can skip this step.
    • After the release, please run php artisan campaigns:refresh-cache command at least once to refresh the Redis cache.
  • IMPORTANT: Changed /showtime.php path to /vendor/campaign/showtime.php in remplib.js remp/remp#1287
    • Make sure this new path is accessible on your running installations.
  • Extracted campaign to separate campaign module, that will be includable by the skeleton app in the future. remp/remp#1287
  • Added copy buttons to the campaign edit and detail pages. remp/remp#1369

[Mailer]

  • IMPORTANT: Changed setting of Symfony Console to stop quietly catch exceptions. remp/remp#1364
    • Changed setting of Symfony\Component\Console\Application->setCatchExceptions() to false.
    • We don't want Symfony to catch these errors (and only show them in the command's output). We want all exceptions of the application to bubble up to Tracy.
    • If you want to keep previous behaviour, you can override it within your config.local.neon by calling setCatchExceptions(true) within setup directive of console service.
      console:
        setup:
          - setCatchExceptions(true)
  • Fixed default sender in template form - update it to default of newsletter list when newsletter list is selected. remp/respekt#220
  • Added functionality to duplicate newsletter lists with the possibility to copy subscribers. remp/remp#1363
  • Set opened and clicked columns in TemplatePresenter template listing, to not orderable in favor of more precise numbers. remp/remp#611
  • Fixed description of auto subscribe toggle when editing newsletter list. remp/remp#1366
    • If auto subscribe is enabled:
      • When adding newsletter list, all existing users are subscribed to this new newsletter list (see \Remp\MailerModule\Hermes\ListCreatedHandler).
      • When editing newsletter list, only new users will be subscribed to edited newsletter list.
  • Added article url support to DailyMinuteGenerator. remp/remp#1370
  • Added ability to export sent emails stats in ListPresenter. remp/remp#1362
  • Fixed Delete User API response not being actually as empty as HTTP code states. remp/remp#1378

3.8.0

12 Jul 11:43
Compare
Choose a tag to compare

[Beam]

  • Added a custom Carbon date request validator and integrated it into ArticleDetailsController::dtReferers to validate visited_to and visited_from request inputs. remp/remp#1101
  • [Tracker] Updated list of referer sources so that the newer social/searches are recognized. remp/remp#1313
  • Fixed an XSS vulnerability within creating and editing a segment. remp/remp#1343
  • Added mobile concurrents percentage value to DashboardController::mostReadArticles response. remp/remp#1352
  • Added custom Carbon date request validator to validate date inputs in requests. remp/remp#1101

[Campaign]

  • Fixed an XSS vulnerability within creating and editing a campaign. remp/remp#1343
  • IMPORTANT: Added unique suffix to banner position (for hidden html banners) in Showtime::prioritizeCampaignBannerOnPosition. Prevents suppressing other banners. remp/remp#1346
  • Added custom Carbon date request validator to validate date inputs in campaigns/{campaign}/stats/data API endpoint. remp/remp#1101

[Mailer]

  • Changed the maximum length of the name column in the mail_templates table to 768 characters. remp/remp#1257
  • Added match x.com domain in EmbedParser::isTwitterLink. remp/helpdesk#2759
  • Updated Chart.js library which handles charts in the application. remp/remp#1361
  • Fixed chart on the newsletter list detail, so it makes some sense now. remp/remp#1361
  • Added ability to edit newsletter list category. remp/remp#724
  • Added option to prefill newsletter list preview URL by using existing email's public preview URL. remp/remp#724
  • Added support for group actions in data_table.latte. remp/remp#724
  • Added edit button to newsletter list detail. remp/remp#1367
  • Changed Preview url and List image buttons to disabled if their url is not provided. remp/remp#1367
  • Added edit and show button to sent emails detail. remp/remp#1367
  • Added preview and fullscreen edit for text layout. remp/remp#1094
  • Added locked parameter to NewsfilterGenerator params to differentiate between locked and unlocked version when rendering template. remp/remp#1358

3.7.1

24 May 13:30
Compare
Choose a tag to compare

[Beam]

  • Fixed newsletters not being sent anymore if there was an issue with sending for more than two sending periods. remp/remp#1351
  • [Tracker] Updated Goa library from v1 to v3. remp/remp#1341
  • [Segments] Updated Goa library from v1 to v3. remp/remp#1341
  • [Segments] Added load_progress attribute to journal list pageviews. remp/remp#1335

[Mailer]

  • BREAKING: Removed autoload flag from configs table and ConfigsRepository::loadAllAutoload.
  • BREAKING: Removed command mail:remove-old-batches. remp/remp#1354
    • Use newly added application:cleanup instead.
  • BREAKING: Fixed RedisClientTrait default database value from 0 to null. remp/remp#1357
    • This affects you only if you configure Redis database manually to something other than 0 in your config.
    • The change fixes use of RedisClientTrait ignoring database configured in RedisClientFactory and forcing DB 0 instead, causing your data to be stored in DB 0 even if you configured your environment/RedisClientFactory to use other database.
    • IMPORTANT: It is important to move hermes keys hermes_tasks_high, hermes_tasks, hermes_tasks_low (with MOVE command) to correct Redis DB after you shut down your old Hermes workers, and before you start the new ones.
    • IMPORTANT: We also recommend not having any active jobs (processing or sending) during the release process.
  • Added option to track variant subscriptions to Tracker. remp/web#2404
  • Added Mailer's segment "Everyone" which lists all subscribers known to Mailer. remp/crm#2973
    • This segment should ideally replace all_users provided by CRM and effectively serve as a default. Mailer still filters users based on their newsletter subscription to the email they're receiving.
  • URL parser generator's segment is now optional. remp/crm#2973
    • If not provided, Mailer's segment with subscribers of selected mail type is used as a default.
  • Fixed duplicate entry error when subscribing to already subscribed variant within UserSubscriptionsRepository->subscribeUser. remp/remp#1355
  • Added application:cleanup command to execute configured data retention policies. remp/remp#1354
    • By default, the system purges all expired autologin tokens and processed batches not sent within 24 hours.
    • You can configure/change the retention polices in config.neon, see README for more information.
  • Fixed status set to batch by ProcessJobCommand after processing failed. Batch is now set to original status. remp/remp#1360
  • Fixed ContentGenerator bug where static time from class instance creation was being passed to the email template instead of an actual time. remp/remp#1316
  • Added ability to filter mail_logs by mail template codes in LogsHandler api handler. remp/respekt#211

3.6.0

24 Apr 06:54
Compare
Choose a tag to compare

[Beam]

  • BREAKING: Removed unused autoload property within Config. remp/remp#992
    • If you're loading configs yourself and actively using autoload property, you need to remove dependency on it before updating to this version.
  • DEPRECATED: Deprecated usage of ConversionRateConfig from DI container or creating directly through constructor. Use ConversionRateConfig::build() method instead. remp/remp#992
    • Remember, by using ConversionRateConfig::build() you'll get newer values from the config and not cached ones.
  • DEPRECATED: Deprecated Article::getConversionRateConfig(). Create your own instance of ConversionRateConfig instead. remp/remp#992
  • DEPRECATED: Deprecated usage of Article::getConversionRateAttribute without passing ConversionRateConfig as a first parameter. remp/remp#992
  • Fixed issue with load_timespent parameter in /journal/pageviews/list which didn't include the timespent into pageview object. remp/remp#1334
  • Added average spent times into article detail page. remp/remp#1328
  • Added parameter to pass ConversionRateConfig as a first parameter to Article::getConversionRateAttribute(). remp/remp#992
  • Added ConversionRateConfig::build() to create new instance of ConversionRateConfig with fresh values from the config. remp/remp#992
  • Added ability to cache values for 60 seconds within Article::getConversionRateConfig() for long-running processes/workers. remp/remp#992
  • Fixed slow load of datatables for systems with high amount of authors and tags. remp/remp#1347

[Campaign]

  • Fixed typo in event name for Newsletter banner in README.
  • Fixed loading of available countries for campaign copy action. remp/remp#1323
  • Fixed the paging of scheduled campaigns. remp/remp#1310
  • Refactored referer filter to traffic source filter. remp/remp#1336
  • Added ability to filter campaign by session referer (traffic source) in showtime. remp/remp#1336

[Mailer]

  • IMPORTANT: The default Hermes queue for asynchronous events is now hermes_tasks (medium priority) instead of hermes_tasks_low (low priority). remp/remp#1342
    • If you emit your own Hermes events with the default priority, please revise whether they should keep using the default priority, or whether they should be explicitly emitted as "low priority".
  • DEPRECATED: Deprecated autoload flag within configs. From now on, all configs are loaded regardless of this flag and this flag will be removed in the next major release. remp/remp#992
    • Consequently, we deprecated method ConfigsRepository::loadAllAutoload(). Use ConfigsRepository::all() instead.
  • DEPRECATED: Deprecated MailgunMailer::mailer(). Use MailgunMailer::createMailer() instead. remp/remp#992
  • Fixed incorrect /mailer/health healthcheck HTTP status code in case of failure (was always 200). remp/remp#1322
  • Fixed conditions to unreachable healthcheck messages. remp/remp#1322
  • Added new parameters between default template parameters to identify newsletter (newsletter_id, newsletter_code, newsletter_title) and variant (variant_id, variant_code, variant_title). remp/remp#1321
  • Added support for One-Click unsubscribe according to RFC8058. remp2020/mailer-module#3
  • Added option to configure maximum number of send attempts in SendEmailHandler. remp/remp#1331
    • You can configure this in your config.local.neon by calling e.g. setMaxRetries(10) within setup directive of sendEmailHermesHandler service.
  • Fixed issue with oversize images in MS Outlook. remp/remp#1330
  • Fixed issue with persistent embed cookies stored in system tmp folder, which were shared across releases. remp/helpdesk#2587
    • Each release now stores embed cookies in its own temp folder.
  • Added ability to set custom CURL settings for EmbedParser. remp/helpdesk#2594
  • Fixed buggy regexp pattern in NewsfilterGenerator causing elements to be removed non-voluntary. remp/crm#3151
  • Added ability to refresh internal config cache after a certain amount of time mainly for a longer running processes/workers. remp/remp#992
  • Added ability for MailgunMailer and SmtpMailer to refresh config during the runtime (for example when there's long-running worker and the config is changed). remp/remp#992
  • Added new events emitted before (Remp\MailerModule\Events\BeforeUserEmailChangeEvent) and after (Remp\MailerModule\Events\UserEmailChangedEvent) email change. remp/remp#1348

3.5.1

23 Jan 13:50
Compare
Choose a tag to compare

[Mailer]

  • Fixed issue with missing IUserStorage interface caused by removal of a dependency during nette/security update.

3.5.0

23 Jan 13:35
Compare
Choose a tag to compare

Project

  • Fixed possible redirect issue after login causing HTTP 404 after successful login. remp/remp#1235

[Beam]

  • Fixed entity and segment group seeder to avoid duplicates in the database. remp/remp#1317
  • Added --force parameter to migration in update-prod make target. remp/remp#1317

[Campaign]

  • Changed campaign display rules evaluation to evaluate pageview attributes before including campaign between active campaigns. remp/remp#1302
  • Fixed bug - when copying campaign, removal of assigned segment affected existing campaign segments. remp/remp#1308
  • Fixed reporting unknown country as exception. remp/remp#1314
  • Added --force parameter to migration in update-prod make target. remp/remp#1317

[Mailer]

  • BREAKING: Updated monolog/monolog to version ^3.0. remp/remp#1315
    • If any of your extensions rely on monolog, please review your implementation.
  • BREAKING: Updated robmorgan/phinx library to the latest version. remp/remp#1315
    • If you write your own migrations, you might want to test them against an empty DB. Types are now strict and older migrations could be broken if you used incorrect type in the past.
  • BREAKING: Updated latte/latte templating system to version ^3.0. remp/remp#1315
  • BREAKING: Updated nette/mail library to version ^4.0. remp/remp#1315
  • IMPORTANT: Updated Nette's underlying libraries to version ^4.0 (nette/robot-loader, nette/utils). remp/remp#1315
  • IMPORTANT: Updated mailgun/mailgun-php to version ^4.0. remp/remp#1315
  • Fixed possible render time / memory issues on job detail belonging to newsletter list with lots of emails.
  • Changed generator rule for <em> HTML tag - removed new line. remp/crm#3012
  • Changed command order in update-dev and update-prod make targets to clear cache before running other command. remp/remp#1317

[Sso]

  • Added --force parameter to migration in update-prod make target. remp/remp#1317

3.4.0

23 Nov 06:59
Compare
Choose a tag to compare

Project

  • Fixed possible redirect issue after login causing HTTP 404 after successful login. remp/remp#1235

[Campaign]

We want to thank @pulzarraider for the optimization-related contributions.

  • Fixed search by name on snippets listing. remp/remp#1303
  • Added snippet search to the universal search bar. remp/remp#1303
  • Fixed Campaign's showtime.php crashing if there are no active campaigns.
  • Added campaign collections. remp/remp#1286
  • Added ONE_TIME_BANNER_ENABLED env variable to disable fetching data for one time banners.
  • Added REDIS_PERSISTENT env variable to enable presistent redis connection.
  • Added showtime optimizations for better performance.
  • Fixed routes same name conflict.
  • Added support for Redis PHP extension.
  • Added REDIS_PARAMETER_LIMIT env variable to avoid errors when calling Redis functions with large arrays. remp/remp#1307
  • Added index to created_at and updated_at campaign columns. remp/remp#1286
  • Fixed sorting campaigns by is active column. remp/helpdesk#2231

[Mailer]

  • BREAKING: Removed EnvironmentConfig::setParam() and EnvironmentConfig::getParam() methods. remp/remp#1299
    • Use of these could lead to circular dependency issues if values were read by environment config itself.
    • We recommend the extraction of these values to their separate config classes.
  • Fixed circular dependency issue with configs using environment variables. remp/remp#1299
  • Added new parameter start_at into v1/mailer/jobs and v2/mailer/jobs to allow schedule the start of sending. remp/respekt#19
  • Added BeforeUsersDeleteEvent and UsersDeletedEvent events to emit before and after users are deleted. remp/remp#1301

[Sso]

  • Fixed scenario when invalidated token was allowed to be refreshed just to be evaluated as invalid again.
  • Fixed blacklist-related exception if token was blacklisted but the blacklist was not enabled.