Skip to main content

Pipeline Plugins

Pipeline plugins extend Mimir AIP with custom pipeline step actions compiled from Go source at runtime.

List Pipeline Plugins

Get all installed pipeline plugins.
curl -X GET http://localhost:8080/api/plugins
Response:
[
  {
    "name": "http-auth",
    "description": "HTTP request with OAuth2 authentication",
    "repository": "https://github.com/example/mimir-plugin-http-auth",
    "version": "v1.2.0",
    "installed_at": "2026-03-01T10:00:00Z"
  }
]
name
string
Plugin identifier
description
string
Human-readable description
repository
string
Git repository URL
version
string
Git tag or branch
installed_at
string
ISO 8601 timestamp

Install Pipeline Plugin

Install a pipeline plugin from a Git repository.
curl -X POST http://localhost:8080/api/plugins \
  -H "Content-Type: application/json" \
  -d '{
    "name": "http-auth",
    "repository": "https://github.com/example/mimir-plugin-http-auth",
    "version": "v1.2.0",
    "description": "HTTP request with OAuth2 authentication"
  }'
name
string
required
Unique plugin identifier
repository
string
required
Git repository URL (must be accessible)
version
string
required
Git tag, branch, or commit SHA
description
string
Human-readable description
Response: 201 Created
Workers clone and compile plugins at runtime. Ensure Go 1.21+ is available in the worker image.

Get Pipeline Plugin

Get details for a specific pipeline plugin.
curl -X GET http://localhost:8080/api/plugins/http-auth

Update Pipeline Plugin

Pull the latest version from the plugin’s repository.
curl -X PUT http://localhost:8080/api/plugins/http-auth \
  -H "Content-Type: application/json" \
  -d '{
    "version": "v1.3.0"
  }'

Uninstall Pipeline Plugin

Remove a pipeline plugin.
curl -X DELETE http://localhost:8080/api/plugins/http-auth
Response: 204 No Content

Storage Plugins

Storage plugins add custom storage backend support compiled from Go source at runtime.

List Storage Plugins

Get all installed storage plugins.
curl -X GET http://localhost:8080/api/storage-plugins
Response:
[
  {
    "name": "cassandra",
    "description": "Apache Cassandra storage backend",
    "repository": "https://github.com/example/mimir-storage-cassandra",
    "version": "v2.1.0",
    "installed_at": "2026-03-01T10:00:00Z",
    "loaded": true
  }
]
loaded
boolean
Whether the plugin .so is currently loaded in memory

Install Storage Plugin

Install a storage plugin from a Git repository.
curl -X POST http://localhost:8080/api/storage-plugins \
  -H "Content-Type: application/json" \
  -d '{
    "name": "cassandra",
    "repository": "https://github.com/example/mimir-storage-cassandra",
    "version": "v2.1.0",
    "description": "Apache Cassandra storage backend"
  }'
name
string
required
Unique plugin identifier (used as storage config plugin_type)
repository
string
required
Git repository URL. Must export var Plugin satisfying models.StoragePlugin.
version
string
required
Git tag, branch, or commit SHA
description
string
Human-readable description
Response: 201 Created
The repository must export a Go variable named Plugin that implements the models.StoragePlugin interface.

Get Storage Plugin

Get details for a specific storage plugin.
curl -X GET http://localhost:8080/api/storage-plugins/cassandra

Uninstall Storage Plugin

Remove a storage plugin.
curl -X DELETE http://localhost:8080/api/storage-plugins/cassandra
Response: 204 No Content
Go plugins cannot be unloaded from memory. An orchestrator restart is required for full removal.

Plugin Development

See Plugin Development for guidelines on creating custom plugins.

Build docs developers (and LLMs) love