Docs »

Plugins

Add new functionality to Cerb

While Cerb’s source code is 100% public, any customizations you make to the platform itself will likely “conflict” with ongoing improvements made by the official developers. This makes it more difficult for you to upgrade.

You can avoid these issues by using plugins – optional bundles of files that seamlessly contribute new functionality to Cerb.

Even the built-in functionality in Cerb is contributed by plugins. This way, as we continue to improve Cerb, we’re also automatically expanding the ability for other people to build their own customizations too.

Common uses for plugins are:

  • Integration with third-party services
  • Adding new record types
  • Augmenting bots with new actions
  • Expanding workspaces and dashboards with new widgets and data sources
  • …and much more

Plugins also allow unused functionality to be removed to keep everything simpler and more efficient.

IDs

Every plugin must have a unique ID comprised of lowercase letters (a-z), numbers (0-9), underscores (_), and dots (.).

By convention, the first segment of a plugin’s ID is a namespace unique to its author. One way to ensure uniqueness is to base your namespace on a domain name you own.

For instance: com.example.plugin_name

Structure

Every plugin is a directory with the same name as its ID, using the following filesystem structure:

Path Description
api/ Extensions
patches/ Patches
resources/ Resources (images, scripts, stylesheets)
templates/ Templates
plugin.xml Manifest
strings.xml Translations

The minimal set of plugins required for Cerb to work properly are called features. You’ll find them in the features/ directory.

Third-party plugins are found in the storage/plugins/ directory. These plugins are installed and automatically updated from the Plugin Library.

Plugins

Features

Devblocks devblocks.core
Cerb Core cerberusweb.core
Chat Bots cerb.bots.portal.widget
Knowledgebase cerberusweb.kb
Project Boards cerb.project_boards
Support Center cerberusweb.support_center
Web Services API (JSON/XML) cerberusweb.restapi
Webhooks cerb.webhooks

Authentication

LDAP Integration wgm.ldap
OpenID Integration cerberusweb.openid
Two-Factor Authentication wgm.login.password.google_auth

Integration

Amazon Web Services (AWS) Integration wgm.aws
Api.ai Integration wgm.apiai
Campfire Integration wgm.campfire
Clickatell Integration wgm.clickatell
Dropbox Integration wgm.dropbox
Facebook Integration wgm.facebook
Freshbooks Integration wgm.freshbooks
GitHub Integration wgm.github
GitLab Integration wgm.gitlab
Google Integration wgm.google
HipChat Integration wgm.hipchat
JIRA Integration wgm.jira
LinkedIn Integration wgm.linkedin
Nest Integration wgm.nest
Salesforce integration wgm.salesforce
ShiftPlanning.com Integration wgm.shiftplanning
Slack Integration wgm.slack
Spotify Integration wgm.spotify
Stripe.com Integration wgm.stripe
Twilio.com Integration wgm.twilio
Twitter Integration wgm.twitter

Legacy

Legacy Printing cerb.legacy.print
Legacy Profile Attachments Download cerb.legacy.profile.attachments.zip
Ticket Profile “Move To” Shortcut cerb.profile.ticket.moveto
Notifications Emailer wgm.notifications.emailer
Record Simulator cerberusweb.simulator

Localization

Translation Editor cerberusweb.translators

Record Types

Asset Tracking cerberusweb.assets
Call Logging cerberusweb.calls
Collaborative Feed Reader cerberusweb.feed_reader
Domains cerberusweb.datacenter.domains
Feedback Capture cerberusweb.feedback
Opportunity Tracking cerberusweb.crm
Sensors cerberusweb.datacenter.sensors
Servers cerberusweb.datacenter.servers
Time Tracking cerberusweb.timetracking

Storage

S3 Gatekeeper Storage Engine wgm.storage.s3.gatekeeper