Plugin Registry
Plugin Registry protocol schemas
Defines the schema for the plugin discovery and registry system.
This enables plugins from different vendors to be discovered, validated,
and composed together in the ObjectStack ecosystem.
Source: packages/spec/src/kernel/plugin-registry.zod.ts
import { PluginInstallConfig, PluginQualityMetrics, PluginRegistryEntry, PluginSearchFilters, PluginStatistics, PluginVendor } from '@objectstack/spec/kernel';
import type { PluginInstallConfig, PluginQualityMetrics, PluginRegistryEntry, PluginSearchFilters, PluginStatistics, PluginVendor } from '@objectstack/spec/kernel';
// Validate data
const result = PluginInstallConfig.parse(data);
| Property | Type | Required | Description |
|---|
| pluginId | string | ✅ | |
| version | string | optional | Defaults to latest |
| config | Record<string, any> | optional | |
| autoUpdate | boolean | optional | |
| options | Object | optional | |
| Property | Type | Required | Description |
|---|
| testCoverage | number | optional | |
| documentationScore | number | optional | |
| codeQuality | number | optional | |
| securityScan | Object | optional | |
| conformanceTests | Object[] | optional | |
| Property | Type | Required | Description |
|---|
| id | string | ✅ | Plugin identifier (reverse domain notation) |
| version | string | ✅ | |
| name | string | ✅ | |
| description | string | optional | |
| readme | string | optional | |
| category | Enum<'data' | 'integration' | 'ui' | 'analytics' | 'security' | 'automation' | 'ai' | 'utility' | 'driver' | 'gateway' | 'adapter'> | optional | |
| tags | string[] | optional | |
| vendor | Object | ✅ | |
| capabilities | Object | optional | |
| compatibility | Object | optional | |
| links | Object | optional | |
| media | Object | optional | |
| quality | Object | optional | |
| statistics | Object | optional | |
| license | string | optional | SPDX license identifier |
| pricing | Object | optional | |
| publishedAt | string | optional | |
| updatedAt | string | optional | |
| deprecated | boolean | ✅ | |
| deprecationMessage | string | optional | |
| replacedBy | string | optional | Plugin ID that replaces this one |
| flags | Object | optional | |
| Property | Type | Required | Description |
|---|
| query | string | optional | |
| category | string[] | optional | |
| tags | string[] | optional | |
| trustLevel | Enum<'official' | 'verified' | 'community' | 'unverified'>[] | optional | |
| implementsProtocols | string[] | optional | |
| pricingModel | Enum<'free' | 'freemium' | 'paid' | 'enterprise'>[] | optional | |
| minRating | number | optional | |
| sortBy | Enum<'relevance' | 'downloads' | 'rating' | 'updated' | 'name'> | optional | |
| sortOrder | Enum<'asc' | 'desc'> | optional | |
| page | integer | optional | |
| limit | integer | optional | |
| Property | Type | Required | Description |
|---|
| downloads | integer | ✅ | |
| downloadsLastMonth | integer | ✅ | |
| activeInstallations | integer | ✅ | |
| ratings | Object | optional | |
| stars | integer | optional | |
| dependents | integer | ✅ | |
| Property | Type | Required | Description |
|---|
| id | string | ✅ | Vendor identifier (reverse domain) |
| name | string | ✅ | |
| website | string | optional | |
| email | string | optional | |
| verified | boolean | ✅ | Whether vendor is verified by ObjectStack |
| trustLevel | Enum<'official' | 'verified' | 'community' | 'unverified'> | ✅ | |