Skip to content

Plugins ​

Plugins extend what an instance can do without changing the platform itself. Server plugins add actions that workflows and administrators can invoke: sending email, calling an external API described by an OpenAPI document, reading platform data. Frontend plugins add tabs, panels and buttons to the web app.

Server plugins ​

A server plugin is installed on the instance by the operator. Once installed it appears under Admin Panel → Configuration → Plugins in the Installed Plugins list with its version, runtime and the number of actions it provides. View Actions shows each action with its input and output fields, whether it is idempotent, and its timeout.

Plugin instances ​

An installed plugin is used through instances. An instance is a named configuration of the plugin, for example "Hospital SMTP relay" or "Partner API (production)". One plugin can have several instances.

To create one:

  1. Choose Create Instance, pick the plugin definition and give the instance a display name.
  2. Fill in the Configuration form. The form is generated from the plugin's own configuration schema, so each plugin asks for exactly what it needs.
  3. For any credential, use the vault picker in the field and select a Secret. The reference $secret:name is stored instead of the value. See Vault.
  4. Save with Enabled on.

Instances can be edited, disabled (kept but not callable) and deleted. Disabling an instance stops workflows that use it from calling it.

Testing an action ​

From the instance list, Invoke opens a form built from the action's input fields, runs the action once and shows the result. This is the quickest way to check credentials after creating an instance.

Plugins in workflows ​

An Action node in a workflow selects a plugin instance and one of its actions, then maps values from the event or earlier nodes into the action's inputs. The action's declared outputs become available to later nodes. See Workflows.

Plugins that read platform data ​

Some plugins need to read from the instance, for example to evaluate a patient's latest scores. Such an instance is given an API key stored in the Vault. Every read the plugin performs is checked against that key's scopes, so the plugin can never see more than the key allows.

Plugins shipped with the platform ​

PluginActionsTypical use
Email (SMTP)Send emailNotifications to clinicians, reminders, escalations
OpenAPI clientCall an operationAny REST API that publishes an OpenAPI document; requests are validated against it before sending
Platform resourceCommand, list commandsReading analytics, questionnaires and other platform data from within a workflow

Custom plugins can be developed with the Plugin SDK. See Server Plugins.

Version changes ​

When the operator installs a newer version of a plugin, its instances are carried over to the new version automatically and the old version is retired.

Frontend plugins ​

Frontend plugins are packages that extend the Medipal web app itself. They can add:

  • buttons and panels in predefined places (navigation bar, side panel, login page, questionnaire page, patient page, designer),
  • new tabs on the questionnaire, patient, admin panel, admin system and user profile pages,
  • new pages under the admin panel.

Frontend plugins are installed with the web app by the operator; there is no runtime installation from the admin panel. They respect the same scopes as the rest of the interface. Development is described in Frontend Plugins.

Permissions ​

Viewing the Plugins tab requires plugin read rights; creating and editing instances require plugin write rights; invoking an action from the admin panel requires plugin execute rights. See Users, Roles & Scopes.

Troubleshooting ​

SymptomLikely causeWhat to do
The plugin is not in the Installed listNot installed on the instanceAsk the operator to install it; the list refreshes automatically.
Invoke fails with a configuration errorA required configuration field is missing or a vault reference is brokenEdit the instance; check the Vault entry exists and is enabled.
Invoke fails with an authentication error from the targetWrong credentialRotate the secret in the Vault and try again.
A workflow Action node lists no actionsThe instance is disabled or the plugin was retiredEnable the instance or select one on the current plugin version.
An OpenAPI call is rejected before sendingThe mapped input does not match the operation's schemaCompare with the action's input fields; use a Mapper node.