AshCredo.Check.Warning.NoActions (ash_credo v0.12.0)

Copy Markdown View Source

Basics

This check is disabled by default.

Learn how to enable it via .credo.exs.

This check has a base priority of normal and works with any version of Elixir.

Explanation

A resource with a data layer but no actions defined cannot be interacted with through the Ash API. This is almost always an oversight.

Add an actions block:

actions do
  defaults [:read, :destroy, create: :*, update: :*]
end

This check uses Ash's runtime introspection (Ash.Resource.Info.actions/1) to see the fully-resolved action list. That means it correctly handles resources whose actions are spliced in via Spark.Dsl.Fragment or injected by extensions - cases the AST scanner would miss and false-positive on.

Requirements

Your project must be compiled before running mix credo. If Ash is not available in the VM running Credo, the check is a no-op and emits a single diagnostic.

Check-Specific Parameters

There are no specific parameters for this check.

General Parameters

Like with all checks, general params can be applied.

Parameters can be configured via the .credo.exs config file.