ObjectStackObjectStack

Plugin Security

Plugin Security protocol schemas

Plugin Security & Dependency Resolution Protocol

Provides comprehensive security scanning, vulnerability management,

and dependency resolution for the ObjectStack plugin ecosystem.

Features:

  • CVE/vulnerability scanning

  • Dependency graph resolution

  • Semantic version conflict detection

  • Supply chain security

  • Plugin sandboxing policies

  • Trust and verification workflows

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

TypeScript Usage

import { DependencyGraph, DependencyGraphNode, PackageDependency, PackageDependencyConflict, PackageDependencyResolutionResult, PluginProvenance, PluginTrustScore, SBOM, SBOMEntry, SecurityPolicy, SecurityScanResult, SecurityVulnerability, VulnerabilitySeverity } from '@objectstack/spec/kernel';
import type { DependencyGraph, DependencyGraphNode, PackageDependency, PackageDependencyConflict, PackageDependencyResolutionResult, PluginProvenance, PluginTrustScore, SBOM, SBOMEntry, SecurityPolicy, SecurityScanResult, SecurityVulnerability, VulnerabilitySeverity } from '@objectstack/spec/kernel';

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

DependencyGraph

Complete dependency graph for a package and its transitive dependencies

Properties

PropertyTypeRequiredDescription
rootObjectRoot package of the dependency graph
nodesObject[]All resolved package nodes in the dependency graph
edgesObject[]Directed edges representing dependency relationships
statsObjectSummary statistics for the dependency graph

DependencyGraphNode

A node in the dependency graph representing a resolved package

Properties

PropertyTypeRequiredDescription
idstringUnique identifier of the package
versionstringResolved version of the package
dependenciesObject[]Dependencies required by this package
depthintegerDepth level in the dependency tree (0 = root)
isDirectbooleanWhether this is a direct (top-level) dependency
metadataObjectoptionalAdditional metadata about the package

PackageDependency

A package dependency with its version constraint

Properties

PropertyTypeRequiredDescription
namestringPackage name or identifier
versionConstraintstringSemver range (e.g., ^1.0.0, >=2.0.0 <3.0.0)
typeEnum<'required' | 'optional' | 'peer' | 'dev'>Category of the dependency relationship
resolvedVersionstringoptionalConcrete version resolved during dependency resolution

PackageDependencyConflict

A detected conflict between dependency version requirements

Properties

PropertyTypeRequiredDescription
packagestringName of the package with conflicting version requirements
conflictsObject[]List of conflicting version requirements
resolutionObjectoptionalSuggested resolution for the conflict
severityEnum<'error' | 'warning' | 'info'>Severity level of the dependency conflict

PackageDependencyResolutionResult

Result of a dependency resolution process

Properties

PropertyTypeRequiredDescription
statusEnum<'success' | 'conflict' | 'error'>Overall status of the dependency resolution
graphObjectoptionalResolved dependency graph if resolution succeeded
conflictsObject[]List of dependency conflicts detected during resolution
errorsObject[]Errors encountered during dependency resolution
installOrderstring[]Topologically sorted list of package IDs for installation
resolvedInintegeroptionalTime taken to resolve dependencies in milliseconds

PluginProvenance

Verifiable provenance and chain of custody for a plugin artifact

Properties

PropertyTypeRequiredDescription
pluginIdstringUnique identifier of the plugin
versionstringVersion of the plugin artifact
buildObjectBuild provenance information
artifactsObject[]List of build artifacts with integrity hashes
signaturesObject[]Cryptographic signatures for the plugin artifact
attestationsObject[]Verification attestations for the plugin

PluginTrustScore

Trust score and verification status for a plugin

Properties

PropertyTypeRequiredDescription
pluginIdstringUnique identifier of the plugin
scorenumberOverall trust score from 0 to 100
componentsObjectIndividual score components contributing to the overall trust score
levelEnum<'verified' | 'trusted' | 'neutral' | 'untrusted' | 'blocked'>Computed trust level based on the overall score
badgesEnum<'official' | 'verified-vendor' | 'security-scanned' | 'code-signed' | 'open-source' | 'popular'>[]Verification badges earned by the plugin
updatedAtstringISO 8601 timestamp when the trust score was last updated

SBOM

Software Bill of Materials for a plugin

Properties

PropertyTypeRequiredDescription
formatEnum<'spdx' | 'cyclonedx'>SBOM standard format used
versionstringVersion of the SBOM specification
pluginObjectMetadata about the plugin this SBOM describes
componentsObject[]List of software components included in the plugin
generatedAtstringISO 8601 timestamp when the SBOM was generated
generatorObjectoptionalTool used to generate this SBOM

SBOMEntry

A single entry in a Software Bill of Materials

Properties

PropertyTypeRequiredDescription
namestringName of the software component
versionstringVersion of the software component
purlstringoptionalPackage URL identifier
licensestringoptionalSPDX license identifier of the component
hashesObjectoptionalCryptographic hashes for integrity verification
supplierObjectoptionalSupplier information for the component
externalRefsObject[]External references related to the component

SecurityPolicy

Security policy governing plugin scanning and enforcement

Properties

PropertyTypeRequiredDescription
idstringUnique identifier for the security policy
namestringHuman-readable name of the security policy
autoScanObjectAutomatic security scanning configuration
thresholdsObjectVulnerability count thresholds for policy enforcement
allowedLicensesstring[]List of SPDX license identifiers that are permitted
prohibitedLicensesstring[]List of SPDX license identifiers that are prohibited
codeSigningObjectoptionalCode signing requirements for plugin artifacts
sandboxObjectoptionalSandbox restrictions for plugin execution

SecurityScanResult

Result of a security scan performed on a plugin

Properties

PropertyTypeRequiredDescription
scanIdstringUnique identifier for this security scan
pluginObjectPlugin that was scanned
scannedAtstringISO 8601 timestamp when the scan was performed
scannerObjectInformation about the scanner tool used
statusEnum<'passed' | 'failed' | 'warning'>Overall result status of the security scan
vulnerabilitiesObject[]List of vulnerabilities discovered during the scan
summaryObjectSummary counts of vulnerabilities by severity
licenseIssuesObject[]License compliance issues found during the scan
codeQualityObjectoptionalCode quality analysis results
nextScanAtstringoptionalISO 8601 timestamp for the next scheduled scan

SecurityVulnerability

A known security vulnerability in a package dependency

Properties

PropertyTypeRequiredDescription
cvestringoptionalCVE identifier
idstringVulnerability ID
titlestringShort title summarizing the vulnerability
descriptionstringDetailed description of the vulnerability
severityEnum<'critical' | 'high' | 'medium' | 'low' | 'info'>Severity level of this vulnerability
cvssnumberoptionalCVSS score ranging from 0 to 10
packageObjectAffected package information
vulnerableVersionsstringSemver range of vulnerable versions
patchedVersionsstringoptionalSemver range of patched versions
referencesObject[]External references related to the vulnerability
cwestring[]CWE identifiers associated with this vulnerability
publishedAtstringoptionalISO 8601 date when the vulnerability was published
mitigationstringoptionalRecommended steps to mitigate the vulnerability

VulnerabilitySeverity

Severity level of a security vulnerability

Allowed Values

  • critical
  • high
  • medium
  • low
  • info

On this page