PhoenixKitProjects.Web.ProjectModulesLive (PhoenixKitProjects v0.21.1)

Copy Markdown View Source

The per-project Modules & Features panel — the hub's control surface.

Level 1: extension enablement (which capabilities this project has) with per-instance config forms driven by each extension's config_schema. Level 2: feature flags, grouped by owning extension, with the dependency matrix rendered disable-and-explain (a flag whose requires are off shows WHY instead of silently not working). Plus the preset row.

Authorization: mount gates on Authz.can?(scope, project, :manage_modules) — v1 the admin gate; deepens with members (Step 5). Every event handler re-checks (events must not trust a stale mount — the standing convention is mount-gating, but this page WRITES config, so it gets the stricter shape enforcement threading will roll out module-wide).

Embeddable like every LV in this module: off-router mount reads session["id"]; no handle_params/3.