View Source Ash.Domain behaviour (ash v3.4.44)

A domain allows you to interact with your resources, and holds domain-wide configuration.

For example, the json domain extension adds a domain extension that lets you toggle authorization on/off for all resources in a given domain. You include resources in your domain like so:

defmodule MyApp.MyDomain do
  use Ash.Domain

  resources do
    resource OneResource
    resource SecondResource
  end
end

Options

  • :validate_config_inclusion? (boolean/0) - Whether or not to validate that this domain is included in the configuration. The default value is true.

  • :backwards_compatible_interface? (boolean/0) - Whether or not to include the 2.0 backwards compatible interface, which includes all of the interaction functions which are now defined on the Ash module The default value is true.

  • :extensions (list of module that adopts Spark.Dsl.Extension) - A list of DSL extensions to add to the Spark.Dsl

  • :otp_app (atom/0) - The otp_app to use for any application configurable options

  • :fragments (list of module/0) - Fragments to include in the Spark.Dsl. See the fragments guide for more.

Summary

Types

t()

@type t() :: module()

Callbacks

domain?()

@callback domain?() :: true