Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Div
classtitle-box lead


Excerpt

COmanage Registry supports several types of Plugins in order to easily customize and extend Registry functionality. In addition, you can write your own plugins to customize Registry to work in the ways and with the systems that you need. This page provides background about COmanage Registry plugins including how to make them available to your instance of COmanage, a description of each of the plugin types with a list of the known plugins of each type, and references to documentation to create your own plugins.




Panel
bgColor#d9d9d9
titleColor#3e3e3f
titleBGColor#bed73b
borderStylenone
titleOn this Page

Table of Contents
maxLevel3
indent20px
stylenone



About Plugins

Installing Plugins

There are a few different ways to make Plugins available for use within Registry, according to how the Plugin is distributed.

  1. Core Plugins - Commonly used. These plugins ship with COmanage and enabled by default.
  2. Supported Non-core Plugins - Less widely used. Shipped with COmanage, but not enabled by default.  
  3. External Plugins - Finally, Plugins can come from other sources (including those you write yourself) to support your needs.

Core Plugins

Many Plugins are already set up, and provided as “Core Plugins”; these Plugins ship with COmanage, and are enabled by default. They can be found in the app/Plugin directory.

Supported Non-core Plugins

In addition, there are some Plugins that are less widely used. While they are shipped with COmanage, they are not enabled by default because of the related overhead (and, in some cases, external dependencies) associated with Plugins that may only be useful to some deployments. These plugins are also shipped with Registry and can be found in the app/AvailablePlugin directory.

The simplest way to enable a Non-Core Plugin (assuming you have met any external dependencies the Plugin may require) is to symlink it from your local/Plugin directory.

After creating the symlink, you should clear caches and then update your database schema to reflect the newly available plugin.

Code Block
languagebash
themeRDark
titleEnabling a Non-core Plugin
$ cd $REGISTRY/local/Plugin
$ ln -s ../../app/AvailablePlugin/SomePlugin .
$ cd $REGISTRY/app
$ su -c "./Console/clearcache" ${APACHE_USER}
$ su -c "./Console/cake database" ${APACHE_USER}

External Plugins

Plugins that come from other sources (including those you write yourself) should be placed in the local/Plugin directory.

Configuring & Using Plugins

Once a Plugin is installed and enabled for use, how it is actually used and/or configured varies according to the Plugin type.

Plugin TypeDescriptionWhere the plugin is configured in COmanage
AuthenticatorAuthenticators are used to prove a CO Person's identity to an application or service. Because Authenticators are collaboration issued, they are attached to the CO Person, not to Organizational Identities (as for external credentials).ClusterClusters are used to represent a CO Person's accounts within a given application or service. The typical use case is managing accounts on (eg) one or more Unix servers, but there is no specific requirement for this type of service.Dashboard WidgetRegistry v3.2.0 introduces Dashboards, simple information portals. Information is provided by Dashboard Widgets, which are implemented as Dashboard Widget Plugins. Multiple Dashboards can be defined within a CO. Dashboards include header and footer text areas appropriate for providing arbitrary html content on the landing page of a CO.

Excerpt Include
Authenticators
Authenticators
nopaneltrue

Configuration > Authenticators
Cluster

Excerpt Include
Clusters
Clusters
nopaneltrue

Configuration > Clusters
Dashboard Widget

Excerpt Include
Registry Dashboards
Registry Dashboards
nopaneltrue

Configuration > Dashboards
Data Filter
Configuration > Data Filters
Enrollment Flow
Configuration > Enrollment Flows
Identifier Validation
Configuration > Identifier Validators
Data FilterEnrollment FlowIdentifier ValidationInvitation Confirmer

Job

LDAP Schema

Normalization

Organizational Identity Source
Configuration >  Organizational Identity Sources
Provisioner

Provisioning refers to action of using Registry data to create or remove access to applications and services. COmanage Registry provides three models to provision data:

  • Push Provisioning: Registry notifies apps when data changes
  • Pull Provisioning: Applications pull data from Registry on demand
  • Messaging: Message is sent to a message queue when data changes

    Excerpt Include
    Provisioning From Registry
    Provisioning From Registry
    nopaneltrue

    Configuration >  Provisioning Targets

    Creating Your Own Plugins

    Building your own plugin is a great was to get started with custom development for COmanage. Through plugins you can build powerful extensions to the existing Registry functionality. Building a Registry Plugin requires knowledge of PHP, CakePHP, and COmanage.

    Start Here

    The general documentation for building plugins can be found on the Writing Registry Plugins page. All plugins follow some standard conventions which are outlined on this page. In addition, some types have additional requirements as listed below.

    Additional Requirements by Plugin Type

    As described above, there are several different Plugin Types, each with their own additional requirements. You can find these details at the links below:


    Plugin Library

    Below is a list of known plugins that are available to the COmanage Registry community. Please let us know if you know of other plugins that are not listed below. (Or, maybe you have created your own plugin that you want to share here!)

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleAuthenticator Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "authenticator"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleCluster Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "cluster"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleDashboard Widget Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "dashboard"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleData Filter Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "data_filter"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleEnrollment Flow Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "enrollment_flow"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleIdentifier Validator Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "identifier_validator"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleInvitation Confirmer Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "invitation_confirmer"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleJob Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "job"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleLDAP Schema Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "ldap_schema"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleNormalization Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "normalization"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleOrganizational Identity Source Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "org_identity_source"

    Content by Label
    showLabelsfalse
    showSpacefalse
    sorttitle
    titleProvisioner Plugins
    excerptTypesimple
    cqllabel = "plugin" and label = "provisioner"

    Content by Label
    showLabelsfalse
    titleVetting Plugins
    cqllabel = "plugin" and label = "vetting"



    CSS Stylesheet
    .home-banner {
      background: #ffffff;
      color: #d44415;
      font-size: 20px;
      padding: 20px;
    }
    .home-banner h1 {
      color: #5e2b97;
      font-size:2.5em;
    }
    .title-box {
      border: 0px solid #ff5b2d
      padding: 10px;
      padding-bottom: 30px;
    }
      .title-box > h2 {
      /*background: #5e2b97;*/
      border-top: 3px solid #c2d6d6;
      bottom: 10px;
      /*color: #c2d6d6;*/
      /*margin-left: -10px;*/
      /*margin-right: -10px;*/
      padding: 1em 0 0;
      position: relative;
    }
    .cfm-blog-image > img {
      display: block;
      margin-left: auto;
      margin-right: auto;
    }
    .lead > p {
      line-height: 2;
      font-size: 1.5em;
    }
    .about-box {
      border-top: 1px solid #c2d6d6;
      border-bottom: 2px solid #c2d6d6;
      padding: 10px;
      padding-top: 30px;
      padding-bottom: 30px;
    }
    .about-box > p {
      font-size: 0.9em;
      font-style: italic;
    }
    .about-box > h3 {
      font-size: 0.9em;
    }