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 ofCONNECTOR,TRANSFORMER, orPROCESSOR.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 Key | Description |
|---|---|
x-order | Required. A list of property keys in the exact order they should appear in the form. |
x-section-title | Adds a header and a visual separator above a specific field. |
x-advanced | Moves the field into an "Advanced Settings" accordion to reduce clutter. |
x-visible-if | Conditional logic to show/hide fields based on other selections. |
x-widget | Forces 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
- Why over How: When naming your configuration fields, use terms that are familiar to an operator (e.g.,
Heartbeat Intervalinstead ofhb_int_ms). - Use Defaults: Always provide sensible default values in your JSON Schema to help operators get started quickly.
- Validation: Use standard JSON Schema validation (e.g.,
minimum,maximum,pattern) to provide immediate feedback in the UI before a configuration is even saved.
Because these manifests are schema-driven, the platform automatically handles validation, tooltips, and responsive layout across all devices.