# AshMultiAccount v0.1.1 - Table of Contents Multi-account linking and switching for Ash apps ## GUIDES - About Ash Multi Account - [Ash Multi Account](readme.md) - [Changelog](changelog.md) - Tutorials - [Getting Started](getting-started.md) - Topics - [How It Works](how-it-works.md) - [Phoenix Integration](phoenix-integration.md) - [Testing](testing.md) - [Customizing the Account Switcher](customizing-the-account-switcher.md) - Reference - [AshMultiAccount](dsl-ashmultiaccount.md) - [AshMultiAccount.LinkedAccount](dsl-ashmultiaccount-linkedaccount.md) ## Modules - Extensions - [AshMultiAccount](AshMultiAccount.md): An Ash extension for multi-account linking and switching. - [AshMultiAccount.LinkedAccount](AshMultiAccount.LinkedAccount.md): An Ash extension which generates the default linked account resource. - DSL & Introspection - [AshMultiAccount.Info](AshMultiAccount.Info.md): Introspection functions for the `AshMultiAccount` extension. - [AshMultiAccount.LinkedAccount.Info](AshMultiAccount.LinkedAccount.Info.md): Introspection functions for the `AshMultiAccount.LinkedAccount` extension. - Phoenix Integration - [AshMultiAccount.Phoenix.Components](AshMultiAccount.Phoenix.Components.md): Slot-based account switcher component for multi-account UIs. - [AshMultiAccount.Phoenix.Controller](AshMultiAccount.Phoenix.Controller.md): Provides `link_account/2` and `switch_to_account/2` controller actions for multi-account linking and switching. - [AshMultiAccount.Phoenix.LiveHook](AshMultiAccount.Phoenix.LiveHook.md): LiveView `on_mount` hook for multi-account session resolution. - [AshMultiAccount.Phoenix.Plug](AshMultiAccount.Phoenix.Plug.md): A plug that ensures a `"session_token"` UUID exists in the session. - [AshMultiAccount.Phoenix.Router](AshMultiAccount.Phoenix.Router.md): Provides the `multi_account_routes/3` macro for generating multi-account routes. - [AshMultiAccount.Phoenix.Session](AshMultiAccount.Phoenix.Session.md): Session read/write helpers for multi-account functionality. - Changes & Preparations - [AshMultiAccount.Changes.ValidateMaxLinkedAccounts](AshMultiAccount.Changes.ValidateMaxLinkedAccounts.md): Change that enforces the `max_linked_accounts` limit configured on the User resource. - [AshMultiAccount.Changes.ValidateNotSelfLinked](AshMultiAccount.Changes.ValidateNotSelfLinked.md): Change that validates a user cannot link to themselves. - [AshMultiAccount.Preparations.FilterLinkedAccounts](AshMultiAccount.Preparations.FilterLinkedAccounts.md): Preparation that filters the `get_linked_accounts` query by primary_user_id, session_token, and the linked account's own active status. - [AshMultiAccount.Preparations.LoadLinkedAccounts](AshMultiAccount.Preparations.LoadLinkedAccounts.md): Preparation for the User resource's `get_user_with_linked_accounts` action (a `get?` read that returns a single user). - [AshMultiAccount.Preparations.LoadLinkedUsers](AshMultiAccount.Preparations.LoadLinkedUsers.md): Preparation that loads the `primary_user` and `linked_user` relationships with the `display_fields` configured on the User resource. - Calculations - [AshMultiAccount.Calculations.IsActive](AshMultiAccount.Calculations.IsActive.md): Calculation that returns whether a linked account is active. - [AshMultiAccount.Calculations.LinkedAccountSessions](AshMultiAccount.Calculations.LinkedAccountSessions.md): Calculation that resolves linked account records for a user. - Internals - [AshMultiAccount.LinkedAccount.Transformer](AshMultiAccount.LinkedAccount.Transformer.md): The LinkedAccount transformer. - [AshMultiAccount.LinkedAccount.Verifier](AshMultiAccount.LinkedAccount.Verifier.md): Post-compilation verifier for the LinkedAccount resource. - [AshMultiAccount.Phoenix.LoadMultiAccount](AshMultiAccount.Phoenix.LoadMultiAccount.md): Plug that resolves multi-account assigns for controller-rendered pages. - [AshMultiAccount.Transformer](AshMultiAccount.Transformer.md): The User resource transformer. - [AshMultiAccount.Verifier](AshMultiAccount.Verifier.md): Post-compilation verifier for the User resource. ## Mix Tasks - Internals - [mix ash_multi_account.install](Mix.Tasks.AshMultiAccount.Install.md): Installs AshMultiAccount. Invoke with `mix igniter.install ash_multi_account`