Extensions: Getting Started

Extension Deployment Processing Flow

Extension Behavior

When the extension is uploaded:

  • ExtensionService validates the manifest and copies the .jar to the tmp directory 
  • The extension will try to start
  • If started, save the .jar and manifest info to the database
  • Broadcast to the other nodes
  • Extensions are tracked by the manifest attribute extension-id to prevent loading two versions of the same thing; the last .jar will be used

When the extension is reloaded, the ExtensionService:

  • Stops the current plugin
  • Deletes the current extension
  • Moves the new extension to the tmp directory
  • Starts the new extension

When the extension is deleted:

  • The extension is stopped and deleted from the tmp directory
  • The extension is deleted from the database
  • The extension disassociates from all RPApps

Upon server shutdown:

  • ExtensionService unloads all extensions in the tmp directory
  • .jar and configuration data stays persisted in the database

Deploying in a Cluster

The deployment process is the same for a cluster. Upon upload via CC UI:

  • The extension is started on the node processing the upload
  • If successful, the extension .jar is stored in the database
  • A cluster broadcast message asks the other nodes to load the extension from the database and start it

Upload an Extension

Add extensions to the server by uploading them using the CC UI. Administrator access to CC is needed.
The extension will automatically be propagated to all nodes if the current one is in a cluster.

See Intelligent Extensions under Control Center Advanced Mode for how to upload an Extension.

Associate the Extension to a HYPR Application

Extensions must be associated with one or more RP applications in CC. The extension(s) associated with an RP Application will receive callbacks when the RP Application is used for registration or authentication.

See Extensions under Control Center Advanced Mode: Advanced Config menu for how to associate an Extension.