Files
aitbc/docs/apps/plugins/plugin-registry.md
aitbc 522655ef92
Some checks failed
API Endpoint Tests / test-api-endpoints (push) Successful in 10s
Blockchain Synchronization Verification / sync-verification (push) Failing after 3s
CLI Tests / test-cli (push) Failing after 4s
Documentation Validation / validate-docs (push) Successful in 8s
Documentation Validation / validate-policies-strict (push) Successful in 4s
Integration Tests / test-service-integration (push) Successful in 38s
Multi-Node Blockchain Health Monitoring / health-check (push) Successful in 2s
P2P Network Verification / p2p-verification (push) Successful in 3s
Security Scanning / security-scan (push) Successful in 40s
Smart Contract Tests / test-solidity (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Successful in 15s
Smart Contract Tests / lint-solidity (push) Successful in 8s
Move blockchain app READMEs to centralized documentation
- Relocate blockchain-event-bridge README content to docs/apps/blockchain/blockchain-event-bridge.md
- Relocate blockchain-explorer README content to docs/apps/blockchain/blockchain-explorer.md
- Replace app READMEs with redirect notices pointing to new documentation location
- Consolidate documentation in central docs/ directory for better organization
2026-04-23 12:24:48 +02:00

4.4 KiB

Plugin Registry

Status

Operational

Overview

Registry plugin for managing plugin metadata, versions, and availability in the AITBC ecosystem.

Architecture

Core Components

  • Registry Database: Stores plugin metadata and versions
  • Metadata Manager: Manages plugin metadata
  • Version Controller: Controls plugin versioning
  • Availability Checker: Checks plugin availability
  • Indexer: Indexes plugins for search

Quick Start (End Users)

Prerequisites

  • Python 3.13+
  • PostgreSQL database
  • Storage for plugin files

Installation

cd /opt/aitbc/apps/plugin-registry
.venv/bin/pip install -r requirements.txt

Configuration

Set environment variables in .env:

DATABASE_URL=postgresql://user:pass@localhost/plugin_registry
STORAGE_PATH=/opt/aitbc/plugins/storage
INDEXING_ENABLED=true

Running the Service

.venv/bin/python main.py

Developer Guide

Development Setup

  1. Clone the repository
  2. Create virtual environment: python -m venv .venv
  3. Install dependencies: pip install -r requirements.txt
  4. Set up database
  5. Configure storage path
  6. Run tests: pytest tests/

Project Structure

plugin-registry/
├── src/
│   ├── registry_database/    # Registry database
│   ├── metadata_manager/    # Metadata management
│   ├── version_controller/   # Version control
│   ├── availability_checker/ # Availability checking
│   └── indexer/             # Plugin indexing
├── storage/                 # Plugin storage
├── tests/                   # Test suite
└── pyproject.toml           # Project configuration

Testing

# Run all tests
pytest tests/

# Run registry database tests
pytest tests/test_registry.py

# Run indexer tests
pytest tests/test_indexer.py

API Reference

Plugin Registration

Register Plugin

POST /api/v1/registry/plugins
Content-Type: application/json

{
  "plugin_id": "string",
  "name": "string",
  "version": "1.0.0",
  "description": "string",
  "author": "string",
  "category": "string",
  "metadata": {}
}

Update Plugin Metadata

PUT /api/v1/registry/plugins/{plugin_id}
Content-Type: application/json

{
  "version": "1.0.1",
  "description": "updated description",
  "metadata": {}
}

Get Plugin Metadata

GET /api/v1/registry/plugins/{plugin_id}

Version Management

Add Version

POST /api/v1/registry/plugins/{plugin_id}/versions
Content-Type: application/json

{
  "version": "1.1.0",
  "changes": ["fix1", "feature2"],
  "compatibility": {}
}

List Versions

GET /api/v1/registry/plugins/{plugin_id}/versions

Get Latest Version

GET /api/v1/registry/plugins/{plugin_id}/latest

Availability

Check Availability

GET /api/v1/registry/plugins/{plugin_id}/availability?version=1.0.0

Update Availability

POST /api/v1/registry/plugins/{plugin_id}/availability
Content-Type: application/json

{
  "version": "1.0.0",
  "available": true,
  "download_url": "string"
}

Search Plugins

POST /api/v1/registry/search
Content-Type: application/json

{
  "query": "analytics",
  "filters": {
    "category": "string",
    "author": "string",
    "version": "string"
  },
  "limit": 20
}

Reindex Plugins

POST /api/v1/registry/reindex

Configuration

Environment Variables

  • DATABASE_URL: PostgreSQL connection string
  • STORAGE_PATH: Path for plugin storage
  • INDEXING_ENABLED: Enable plugin indexing
  • MAX_METADATA_SIZE: Maximum metadata size

Registry Parameters

  • Plugin ID Format: Format for plugin identifiers
  • Version Schema: Version numbering scheme
  • Metadata Schema: Metadata validation schema

Indexing

  • Full Text Search: Enable full text search
  • Faceted Search: Enable faceted search
  • Index Refresh Interval: Index refresh frequency

Troubleshooting

Plugin registration failed: Validate plugin metadata and version format.

Version conflict: Check existing versions and compatibility rules.

Index not updating: Verify indexing configuration and database connectivity.

Storage full: Review storage usage and cleanup old versions.

Security Notes

  • Validate plugin metadata on registration
  • Implement access controls for registry operations
  • Scan plugins for security issues
  • Regularly audit registry entries
  • Implement rate limiting for API endpoints