Skip to content

Plugin framework: registry + PluginContext (plugins/__init__.py) #7

Description

@GeoSpark

The explicit in-tree plugin registry and shared context. See DESIGN.md §7.

Scope

  • backend/plugins/__init__.py: @register decorator, discovery of in-tree plugins, PluginContext (raw dict + pystac.Item + loaded extensions.json metadata), enable/disable by name.
  • Define the ValidatorPlugin Protocol: name: str, pure idempotent check(item, context) -> list[Finding].

Depends on

#2

Test approach

TDD. Register a fake plugin; assert discovery, name->source mapping, toggle on/off, and that running a plugin twice yields identical output (idempotence).

Acceptance

  • Registry + context per DESIGN.md §7.
  • Disabled plugins are skipped.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfoundationCore contract / data model everything depends on

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions