View Source AshPhoenix.SubdomainPlug (ash_phoenix v1.2.23)

This is a basic plug that loads the current tenant assign from a given value set on subdomain.

This was copied from Triplex.SubdomainPlug, here:


  • :endpoint (atom/0) - Required. The endpoint that the plug is in, used for deterining the host

  • :assign (atom/0) - The key to use when assigning the current tenant The default value is :current_tenant.

  • :handle_subdomain - An mfa to call with the conn and a subdomain value. Can be used to do something like fetch the current user given the tenant. Must return the new conn.

To plug it on your router, you can use:

plug AshPhoenix.SubdomainPlug,
  endpoint: MyApp.Endpoint

An additional helper here can be used for determining the host in your liveview, and/or using the host that was already assigned to the conn.

For example:

def handle_params(params, uri, socket) do
  socket =
    assign_new(socket, :current_tenant, fn ->
      AshPhoenix.SubdomainPlug.live_tenant(socket, uri)

  socket =
    assign_new(socket, :current_organization, fn ->
      if socket.assigns[:current_tenant] do
          subdomain: socket.assigns[:current_tenant]

  {:noreply, socket}

Link to this section Summary

Link to this section Functions

Link to this function

live_tenant(socket, url)

View Source