Sigra.Install.Feature implementation for the organizations feature:
multi-tenant organization support with memberships and invitations.
Owns every template under priv/templates/sigra.install/organizations/
and the single migration that creates the organizations,
organization_memberships, and organization_invitations tables.
enabled?/1 checks Keyword.get(opts, :organizations, true) — the
organizations feature is enabled by default (ORG-01). Pass
--no-organizations to the installer to disable.
Phase 16 scope
Phase 16 Plan 02 populates files/1, injections/1, and
post_instructions/2 to ship the Phase 16 user-facing surface:
organization switcher function component, POST switch controller,
router scope block + route ordering (D-06), and the user_auth
:assign_user_organizations on_mount hook. The Phase 16 LiveView
templates (landing, settings, members) are added in Plans 03–05 and
simply append to the lists below.
Isolation invariant (Pitfall X-3)
This module contains ZERO references to Features.Core,
Features.Passkeys, or Features.Admin. That boundary is what makes
mix sigra.install --no-organizations produce a compiling app even
with no Organizations code present.