Release announcements, helpful tips, and community discussion


Cerb (8.1.2) is a maintenance update released on September 18, 2017. It includes 18 fixes and minor features from community feedback covering the 8.1 update. You can follow these instructions to upgrade.

  • [Calendars] Fixed an issue with editing an app-owned calendar that synced with another calendar. The list of available calendars was always empty when re-edited.

  • [Tests] When running the installation test suite, the version.php file is now created automatically so Cerb doesn’t need to prompt to run /update before the webdriver tests can continue.

  • [Worklists/Subtotals] Fixed an issue with worklist subtotals. If the worklist was filtered by a deleted record (e.g. a removed language in the translation worklist), the subtotals could break.

  • [Workspaces/Notifications] Fixed a bug with retrieving the URL for a workspace page from notifications and the activity log.

  • [Notifications] In notifications, the ‘mark read’ URLs now work for workspace pages, tabs, and widgets. These records currently lack profile pages to display notifications themselves.

  • [Packages] In packages, added a new default placeholder dictionary with keys for base_url, group_id, bucket_id, replyto_id, and replyto_email. This simplifies the automated personalization of packages based on an existing Cerb environment.

  • [Notifications] In notifications, the cache for a worker’s notification count was previously invalidated only on creation. Now the cache can be invalidated when a notification is updated, as this is now possible from packages, bots, and the API.

  • [Calendars] Fixed an issue when editing calendar records. When using the color picker for available/unavailable events, the color chooser could be clipped by the popup window.

  • [Worklists/Bots] In worklists that have been modified by bots, the notification about this at the top of the worklist is now more compact. Previously this displayed one bot and behavior combination per line. Now just behaviors are displayed in a horizontal list.

  • [Developers/Validation] In the validation service, any field can now use setUnique(). Previously this was only available for text-based fields.

  • [Developers/Validation] In the validation service, a new addFormatter($callable) option provides a way to clean up field values before validation takes place.

  • [Developers/Validation] In the validation service, added a formatter implementation for context(). This allows contexts to be specified by their ID or an alias (e.g. cerberusweb.contexts.ticket or ticket).

  • [Developers/Validation] In the validation service, added an emails() validator. This validates a comma-separated list of email addresses.

  • [Developers/Validation] In the validation service, a new image() validator can check base64-encoded PNG images: min/max width, min/max height, and max size.

  • [Workspaces/Calendars] Fixed two issues with calendars on workspace tabs. The ‘Start on Monday’ setting and event occlusion (e.g. all-day busy events covering available events) were both being ignored on the first display.

  • [Security] In the framework.config.php file, a new APP_SECURITY_FIREWALL_ALLOWLIST option defines a comma-separated IP allowlist for accessing Cerb. This restricts worker activity that requires a login, but not /cron, /update, /debug, or /portal.

  • [Connected Accounts/OAuth] In connected accounts, service providers that use OAuth can now support refresh tokens for automatically renewing an access token without user interaction.

  • [Workspaces/Dashboards] Fixed an issue with charts on dashboards. Some combinations of x-axis and y-axis fields could result in a broken chart due to recent versions of MySQL defaulting to sql_mode=only_full_group_by.