Skip to content

[Plugin Arch] Phase 2 — Plugin System Infrastructure #2528

@Al-Pragliola

Description

@Al-Pragliola

Summary

Create the plugin infrastructure in pkg/catalog/plugin/ that allows different catalog types (models, datasets, MCP tools, etc.) to register themselves and be managed by a unified server.

Motivation

With the core primitives from Phase 1 providing generic building blocks, we need a standardized way for catalog implementations to plug in. The plugin system provides a standard interface, a global registry, and config routing — so new catalog types can be added with minimal boilerplate and zero changes to the core.

Scope

  • Define the Plugin Interface that every catalog type must implement
  • Implement a global plugin registry supporting self-registration via init()
  • Define a plugin config structure that routes the correct section of sources.yaml to each plugin
  • Define the plugin lifecycle hooks (init, start, stop, health check)

Acceptance Criteria

  • pkg/catalog/plugin/ contains the Plugin interface with clearly documented methods
  • A global registry allows plugins to register via init() and be discovered at startup
  • Config routing correctly maps sources.yaml sections to their respective plugins
  • Lifecycle management (init, start, stop) is well-defined and tested
  • Unit tests cover registration, config routing, and lifecycle
  • make build && make test && make lint pass

Dependencies

References

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions