View Source Home
Ash Framework
Welcome! Here you will find everything you need to know to get started with and use Ash. This documentation is best viewed on hexdocs.
Dive In
About the Documentation
Tutorials walk you through a series of steps to accomplish a goal. These are learning-oriented, and are a great place for beginners to start.
Topics provide a high level overview of a specific concept or feature. These are understanding-oriented, and are perfect for discovering design patterns, features, and tools related to a given topic.
How-to guides are goal-oriented recipes for accomplishing specific tasks. These are also good to browse to get an idea of how Ash works and what is possible with it.
Reference documentation is produced automatically from our source code. It comes in the form of module documentation and DSL documentation. This documentation is information-oriented. Use the sidebar and the search bar to find relevant reference information.
Tutorials
Topics
About Ash
Resources
- Domains
- Attributes
- Relationships
- Calculations
- Aggregates
- Code Interfaces
- Identities
- Validations
- Changes
- Preparations
- Embedded Resources
- Notifiers
Actions
Security
Development
Advanced
How-to
- Test Resources
- Authorize Access to Resources
- Encrypt Attributes
- Prevent Concurrent Writes
- Wrap External APIs
Reference
- Glossary
- Expressions
- Ash.Resource DSL
- Ash.Domain DSL
- Ash.Reactor DSL
- Ash.Notifier.PubSub DSL
- Ash.Policy.Authorizer DSL
- Ash.DataLayer.Ets DSL
- Ash.DataLayer.Mnesia DSL
- For other reference documentation, see the sidebar & search bar
Packages
The Ash ecosystem consists of numerous packages, all of which have their own documentation. If you can't find something in this documentation, don't forget to search in any potentially relevant package.
Data Layers
AshPostgres | PostgreSQL data layer
AshSqlite | SQLite data layer
AshCsv | CSV data layer
AshCubdb | CubDB data layer
API Extensions
AshJsonApi | JSON:API builder
AshGraphql | GraphQL builder
Web
AshPhoenix | Phoenix integrations
AshAuthentication | Authenticate users with password, OAuth, and more
AshAuthenticationPhoenix | Integrations for AshAuthentication and Phoenix
Finance
AshMoney | A money data type for Ash
AshDoubleEntry | A double entry system backed by Ash Resources
Resource Utilities
AshOban | Background jobs and scheduled jobs for Ash, backed by Oban
AshArchival | Archive resources instead of deleting them
AshStateMachine | Create state machines for resources
AshPaperTrail | Keep a history of changes to resources
AshCloak | Encrypt attributes of a resource
Admin & Monitoring
AshAdmin | A push-button admin interface
AshAppsignal | Monitor your Ash resources with AppSignal
Testing
Smokestack | Declarative test factories for Ash resources