Skip to main content

Component Manifest Specification

All plugins in the Conncentric platform are schema-driven. This means that the Setup Wizard (the form you see when configuring an adapter) and the Operational Dashboard (the real-time stats and buttons) are defined by a JSON manifest file included in your plugin.

This approach ensures that your custom logic integrates seamlessly with the platform's UI without requiring any frontend code.


1. Core Metadata

The top-level of a manifest defines the basic identity of your component:

  • id: Unique functional identifier (e.g., my-custom-processor).
  • pluginId: The ID of the owner JAR (e.g., my-plugin-bundle).
  • category: Must be one of CONNECTOR, TRANSFORMER, or PROCESSOR.
  • configuration: The JSON Schema defining the Setup Wizard.
  • ui: The configuration for the Operational Dashboard.

2. Configuration Schema (configuration)

The configuration block uses standard JSON Schema (Draft 07) to define fields. We use several custom extension keys (prefixed with x-) to control how the platform renders the form:

Extension KeyDescription
x-orderRequired. A list of property keys in the exact order they should appear in the form.
x-section-titleAdds a header and a visual separator above a specific field.
x-advancedMoves the field into an "Advanced Settings" accordion to reduce clutter.
x-visible-ifConditional logic to show/hide fields based on other selections.
x-widgetForces a specific UI widget (e.g., password, switch, textarea, dynamic-select).

3. Dashboard Configuration (ui)

The ui block defines the real-time monitoring view for your component. It is organized into Pages and Widgets.

Widgets

The platform provides several built-in widgets:

  • Data Cards: Display "Big Stats" or lists of status values fetched from an API.
  • Action Widgets: Render buttons to trigger operations (e.g., "Reset Statistics" or "Flush Cache").
  • Custom Components: For complex views like message logs or charts, you can link to pre-built UI components.

4. Best Practices

  1. Why over How: When naming your configuration fields, use terms that are familiar to an operator (e.g., Heartbeat Interval instead of hb_int_ms).
  2. Use Defaults: Always provide sensible default values in your JSON Schema to help operators get started quickly.
  3. Validation: Use standard JSON Schema validation (e.g., minimum, maximum, pattern) to provide immediate feedback in the UI before a configuration is even saved.
Automatic UI Generation

Because these manifests are schema-driven, the platform automatically handles validation, tooltips, and responsive layout across all devices.