Skip to main content

PluginStatusResponse

Response after enabling or disabling a plugin

healthCheckErrorstring | nullnullable

Health check error message (None if passed or not performed)

healthCheckLatencyMsinteger,null<int64>nullable

Health check latency in milliseconds (None if not performed)

Possible values: >= 0

Example: 150
healthCheckPassedboolean | nullnullable

Health check passed (None if not performed)

Example: true
healthCheckPerformedboolean

Whether a health check was performed

Example: true
messagestringrequired

Status change message

Example: Plugin enabled successfully
plugin objectrequired

A plugin (credentials are never exposed)

argsstring[]required

Command arguments

Example: ["/opt/codex/plugins/mangabaka/dist/index.js"]
autoMatchConditions

Auto-match conditions (JSON object with mode and rules)

commandstringrequired

Command to spawn the plugin

Example: node
configrequired

Plugin-specific configuration

createdAtstring<date-time>required

When the plugin was created

credentialDeliverystringrequired

How credentials are delivered to the plugin

Example: env
descriptionstring | nullnullable

Description of the plugin

Example: Fetch manga metadata from MangaBaka (MangaUpdates)
disabledReasonstring | nullnullable

Reason the plugin was disabled

displayNamestringrequired

Human-readable display name

Example: MangaBaka
enabledbooleanrequired

Whether the plugin is enabled

Example: true
envrequired

Additional environment variables (non-sensitive only)

failureCountinteger<int32>required

Number of consecutive failures

Example: 0
hasCredentialsbooleanrequired

Whether credentials have been set (actual credentials are never returned)

Example: true
healthStatusstringrequired

Health status: unknown, healthy, degraded, unhealthy, disabled

Example: healthy
idstring<uuid>required

Plugin ID

Example: 550e8400-e29b-41d4-a716-446655440000
internalConfig object
oneOf
null
lastFailureAtstring,null<date-time>nullable

When the last failure occurred

lastSuccessAtstring,null<date-time>nullable

When the last successful operation occurred

libraryIdsstring<uuid>[]required

Library IDs this plugin applies to (empty = all libraries)

Example: []
manifest object
oneOf
null
metadataTargetsstring[]nullable

Metadata targets: which resource types this plugin auto-matches against null = auto-detect from plugin capabilities

Example: ["series","book"]
namestringrequired

Unique identifier (e.g., "mangabaka")

Example: mangabaka
permissionsstring[]required

RBAC permissions for metadata writes

Example: ["metadata:write:summary","metadata:write:genres"]
pluginTypestringrequired

Plugin type: "system" (admin-configured) or "user" (per-user instances)

Example: system
rateLimitRequestsPerMinuteinteger,null<int32>nullable

Rate limit in requests per minute (None = no limit)

Example: 60
scopesstring[]required

Scopes where plugin can be invoked

Example: ["series:detail","series:bulk"]
searchPreprocessingRules

Preprocessing rules for search queries (JSON array of regex rules)

searchQueryTemplatestring | nullnullable

Handlebars template for customizing search queries

updatedAtstring<date-time>required

When the plugin was last updated

useExistingExternalIdbooleanrequired

Whether to skip search when external ID exists for this plugin

Example: true
userCountinteger,null<int64>nullable

Number of users who have enabled this plugin (only for user-type plugins)

Possible values: >= 0

Example: 3
workingDirectorystring | nullnullable

Working directory for the plugin process

PluginStatusResponse
{
"healthCheckError": "string",
"healthCheckLatencyMs": 150,
"healthCheckPassed": true,
"healthCheckPerformed": true,
"message": "Plugin enabled successfully",
"plugin": {
"args": [
"/opt/codex/plugins/mangabaka/dist/index.js"
],
"command": "node",
"createdAt": "2024-07-29T15:51:28.071Z",
"credentialDelivery": "env",
"description": "Fetch manga metadata from MangaBaka (MangaUpdates)",
"disabledReason": "string",
"displayName": "MangaBaka",
"enabled": true,
"failureCount": 0,
"hasCredentials": true,
"healthStatus": "healthy",
"id": "550e8400-e29b-41d4-a716-446655440000",
"internalConfig": "null",
"lastFailureAt": "2024-07-29T15:51:28.071Z",
"lastSuccessAt": "2024-07-29T15:51:28.071Z",
"libraryIds": [],
"manifest": "null",
"metadataTargets": [
"series",
"book"
],
"name": "mangabaka",
"permissions": [
"metadata:write:summary",
"metadata:write:genres"
],
"pluginType": "system",
"rateLimitRequestsPerMinute": 60,
"scopes": [
"series:detail",
"series:bulk"
],
"searchQueryTemplate": "string",
"updatedAt": "2024-07-29T15:51:28.071Z",
"useExistingExternalId": true,
"userCount": 3,
"workingDirectory": "string"
}
}