Developer Reference

The Feature Catalog and Discovery

Updated Jun 5, 2026 · 1 min read

The Feature Catalog and Discovery

The app discovers what code is available to it by scanning the plugin folders and
reading each feature's the-feature-header. The result is one catalog.

Where to see it

each feature's maturity, whether it's true drop-in vs. registry-based, and
whether the active edition includes it (and why not, if excluded).

What it reports per feature

id, display name, category, status, whether it's drop-in (folder-scan
add/remove) or registry, whether it carries a header yet, its requirements,
any import error, and whether the active edition switches it on.

How discovery works

secrets, encryption, payments, scheduler) are scanned file-by-file.

Discovery is lazy and fully guarded — a broken or un-importable plugin shows
up as an error row; it can never break boot or the endpoint.

Implementation: app/features/catalog.py, app/features/descriptor.py,
app/api/features.py.

Related: editions-and-the-production-path, edition-gating-and-packaging.

#architecture#catalog#discovery#admin