ObjectStackObjectStack

Plugin Capability

Plugin Capability protocol schemas

Plugin Capability Protocol

Defines the standard way plugins declare their capabilities, implementations,

and conformance levels to ensure interoperability across vendors.

Based on the Protocol-Oriented Architecture pattern similar to:

  • Kubernetes CRDs (Custom Resource Definitions)

  • OSGi Service Registry

  • Eclipse Extension Points

Source: packages/spec/src/kernel/plugin-capability.zod.ts

TypeScript Usage

import { CapabilityConformanceLevel, ExtensionPoint, PluginCapability, PluginCapabilityManifest, PluginDependency, PluginInterface, ProtocolFeature, ProtocolReference, ProtocolVersion } from '@objectstack/spec/kernel';
import type { CapabilityConformanceLevel, ExtensionPoint, PluginCapability, PluginCapabilityManifest, PluginDependency, PluginInterface, ProtocolFeature, ProtocolReference, ProtocolVersion } from '@objectstack/spec/kernel';

// Validate data
const result = CapabilityConformanceLevel.parse(data);

CapabilityConformanceLevel

Level of protocol conformance

Allowed Values

  • full
  • partial
  • experimental
  • deprecated

ExtensionPoint

Properties

PropertyTypeRequiredDescription
idstringUnique extension point identifier
namestring
descriptionstringoptional
typeEnum<'action' | 'hook' | 'widget' | 'provider' | 'transformer' | 'validator' | 'decorator'>
contractObjectoptional
cardinalityEnum<'single' | 'multiple'>Whether multiple extensions can register to this point

PluginCapability

Properties

PropertyTypeRequiredDescription
protocolObject
conformanceEnum<'full' | 'partial' | 'experimental' | 'deprecated'>Level of protocol conformance
implementedFeaturesstring[]optionalList of implemented feature names
featuresObject[]optional
metadataRecord<string, any>optional
certifiedbooleanHas passed official conformance tests
certificationDatestringoptional

PluginCapabilityManifest

Properties

PropertyTypeRequiredDescription
implementsObject[]optionalList of protocols this plugin conforms to
providesObject[]optionalServices/APIs this plugin offers to others
requiresObject[]optionalRequired plugins and their capabilities
extensionPointsObject[]optionalPoints where other plugins can extend this plugin
extensionsObject[]optionalExtensions contributed to other plugins

PluginDependency

Properties

PropertyTypeRequiredDescription
pluginIdstringRequired plugin identifier
versionstringSemantic version constraint
optionalboolean
reasonstringoptional
requiredCapabilitiesstring[]optionalProtocol IDs the dependency must support

PluginInterface

Properties

PropertyTypeRequiredDescription
idstringUnique interface identifier
namestring
descriptionstringoptional
versionObjectSemantic version of the protocol
methodsObject[]
eventsObject[]optional
stabilityEnum<'stable' | 'beta' | 'alpha' | 'experimental'>

ProtocolFeature

Properties

PropertyTypeRequiredDescription
namestringFeature identifier within the protocol
enabledboolean
descriptionstringoptional
sinceVersionstringoptionalVersion when this feature was added
deprecatedSincestringoptionalVersion when deprecated

ProtocolReference

Properties

PropertyTypeRequiredDescription
idstringUnique protocol identifier (e.g., com.objectstack.protocol.storage.v1)
labelstring
versionObjectSemantic version of the protocol
specificationstringoptionalURL or path to protocol specification
descriptionstringoptional

ProtocolVersion

Semantic version of the protocol

Properties

PropertyTypeRequiredDescription
majorinteger
minorinteger
patchinteger

On this page