# AshGrant v0.14.1 - Table of Contents Permission-based authorization extension for Ash Framework ## Pages - [Home](readme.md) - [Changelog](changelog.md) - [License](license.md) - Guides - [Getting Started](getting-started.md) - [RBAC / ABAC / ReBAC / More](authorization-patterns.md) - [Permissions](permissions.md) - [Scopes](scopes.md) - [Field-Level Permissions](field-level-permissions.md) - [Scope Naming Convention](scope-naming-convention.md) - [Argument-Based Scope](argument-based-scope.md) - [Checks & Policies](checks-and-policies.md) - [Debugging & Introspection](debugging-and-introspection.md) - [Policy Testing](policy-testing.md) ## Modules - [AshGrant](AshGrant.md): Permission-based authorization extension for Ash Framework. - [AshGrant.ArgumentAnalyzer](AshGrant.ArgumentAnalyzer.md): Compile-time analysis of which scopes reference which `^arg(...)` templates. - [AshGrant.Calculation.CanPerform](AshGrant.Calculation.CanPerform.md): Ash calculation that produces per-record boolean values for UI visibility. - [AshGrant.Changes.ResolveArgument](AshGrant.Changes.ResolveArgument.md): Runtime change that lazily populates an action argument from the record's own relationships. - [AshGrant.Check](AshGrant.Check.md): SimpleCheck for write and generic actions. - [AshGrant.Domain](AshGrant.Domain.md): Domain-level extension for AshGrant. - [AshGrant.Domain.Dsl](AshGrant.Domain.Dsl.md): DSL definition for the AshGrant domain-level extension. - [AshGrant.Domain.Info](AshGrant.Domain.Info.md): Introspection helpers for AshGrant domain-level DSL configuration. - [AshGrant.Dsl](AshGrant.Dsl.md): DSL definition for AshGrant extension. - [AshGrant.Dsl.CanPerform](AshGrant.Dsl.CanPerform.md): Represents a can_perform entity in the AshGrant DSL. - [AshGrant.Dsl.FieldGroup](AshGrant.Dsl.FieldGroup.md): Represents a field group definition in the AshGrant DSL. - [AshGrant.Dsl.ResolveArgument](AshGrant.Dsl.ResolveArgument.md): Represents a `resolve_argument` declaration in the AshGrant DSL. - [AshGrant.Dsl.Scope](AshGrant.Dsl.Scope.md): Represents a scope definition in the AshGrant DSL. - [AshGrant.Dsl.ScopeThrough](AshGrant.Dsl.ScopeThrough.md): Represents a scope_through entity in the AshGrant DSL. - [AshGrant.Evaluator](AshGrant.Evaluator.md): Permission evaluation with deny-wins semantics. - [AshGrant.Explainer](AshGrant.Explainer.md): Provides detailed explanations of authorization decisions. - [AshGrant.Explanation](AshGrant.Explanation.md): Represents a detailed explanation of an authorization decision. - [AshGrant.FieldCheck](AshGrant.FieldCheck.md): SimpleCheck for field-level authorization within Ash's `field_policies`. - [AshGrant.FilterCheck](AshGrant.FilterCheck.md): FilterCheck for read actions. - [AshGrant.Info](AshGrant.Info.md): Introspection helpers for AshGrant DSL configuration. - [AshGrant.Introspect](AshGrant.Introspect.md): Permission introspection helpers for various use cases. - [AshGrant.Permission](AshGrant.Permission.md): Permission struct with parsing and matching capabilities. - [AshGrant.PermissionInput](AshGrant.PermissionInput.md): Permission input struct with optional metadata for debugging and explain functionality. - [AshGrant.PermissionResolver](AshGrant.PermissionResolver.md): Behaviour for resolving permissions from an actor. - [AshGrant.Permissionable](AshGrant.Permissionable.md): Protocol for converting values to `AshGrant.PermissionInput` structs. - [AshGrant.PolicyExport](AshGrant.PolicyExport.md): Exports policy configuration to various documentation formats. - [AshGrant.PolicyExport.Markdown](AshGrant.PolicyExport.Markdown.md): Generates Markdown documentation for policy configuration. - [AshGrant.PolicyExport.Mermaid](AshGrant.PolicyExport.Mermaid.md): Generates Mermaid flowchart diagrams for policy visualization. - [AshGrant.PolicyTest](AshGrant.PolicyTest.md): DSL-based policy configuration testing for AshGrant. - [AshGrant.PolicyTest.Assertions](AshGrant.PolicyTest.Assertions.md): Assertion macros for policy tests. - [AshGrant.PolicyTest.Dsl](AshGrant.PolicyTest.Dsl.md): DSL macros for defining policy tests. - [AshGrant.PolicyTest.DslGenerator](AshGrant.PolicyTest.DslGenerator.md): Generates Elixir DSL code from YAML policy test files. - [AshGrant.PolicyTest.Result](AshGrant.PolicyTest.Result.md): Represents the result of a single policy test execution. - [AshGrant.PolicyTest.Runner](AshGrant.PolicyTest.Runner.md): Executes policy tests and collects results. - [AshGrant.PolicyTest.YamlExporter](AshGrant.PolicyTest.YamlExporter.md): Exports policy test modules to YAML format. - [AshGrant.PolicyTest.YamlParser](AshGrant.PolicyTest.YamlParser.md): Parses YAML policy test files and runs them. - [AshGrant.Preparations.ApplyMasking](AshGrant.Preparations.ApplyMasking.md): Ash Resource Preparation that applies field masking to read results. - [AshGrant.ScopeResolver](AshGrant.ScopeResolver.md): Behaviour for resolving scopes to filter expressions. - [AshGrant.Transformers.AddArgumentResolvers](AshGrant.Transformers.AddArgumentResolvers.md): Spark DSL transformer that wires up `resolve_argument` declarations. - [AshGrant.Transformers.AddCanPerformCalculations](AshGrant.Transformers.AddCanPerformCalculations.md): Spark DSL transformer that generates CanPerform calculations from DSL entities. - [AshGrant.Transformers.AddDefaultPolicies](AshGrant.Transformers.AddDefaultPolicies.md): Spark DSL transformer that auto-generates policies when `default_policies` is enabled. - [AshGrant.Transformers.AddFieldPolicies](AshGrant.Transformers.AddFieldPolicies.md): Auto-generates Ash `field_policies` from `field_group` definitions. - [AshGrant.Transformers.AddMaskingPreparation](AshGrant.Transformers.AddMaskingPreparation.md): Adds the masking preparation to resources that have field groups with masking. - [AshGrant.Transformers.MergeDomainConfig](AshGrant.Transformers.MergeDomainConfig.md): Spark DSL transformer that merges domain-level AshGrant configuration into resources. - [AshGrant.Transformers.ResolveFieldGroupFields](AshGrant.Transformers.ResolveFieldGroupFields.md): Resolves `:all` and deprecated `[:*]` wildcard in field group `fields` to concrete attribute names. - [AshGrant.Transformers.ValidateFieldGroups](AshGrant.Transformers.ValidateFieldGroups.md): Validates field group definitions at compile time. - [AshGrant.Transformers.ValidateResolverPresent](AshGrant.Transformers.ValidateResolverPresent.md): Spark DSL transformer that validates a resolver is present after domain merge. - [AshGrant.Transformers.ValidateScopeThroughs](AshGrant.Transformers.ValidateScopeThroughs.md): Spark DSL transformer that validates scope_through entities at compile time. - [AshGrant.Transformers.ValidateScopes](AshGrant.Transformers.ValidateScopes.md): Spark DSL transformer that validates scope definitions at compile time. - Exceptions - [AshGrant.PolicyTest.AssertionError](AshGrant.PolicyTest.AssertionError.md): Error raised when a policy test assertion fails. ## Mix Tasks - [mix ash_grant.export](Mix.Tasks.AshGrant.Export.md): Exports policy configuration to various formats. - [mix ash_grant.import](Mix.Tasks.AshGrant.Import.md): Imports YAML policy tests and generates Elixir DSL code. - [mix ash_grant.verify](Mix.Tasks.AshGrant.Verify.md): Runs policy configuration tests.