Skip to content

lifeiscontent/ash_storage

 
 

Repository files navigation

Logo Logo

Elixir CI License: MIT Hex version badge Hexdocs badge

AshStorage

AshStorage is an Ash extension that provides a push-button solution for soft deleting records, instead of destroying them.

Tutorials

Topics

Reference

Development

Testing

This project uses Docker to run PostgreSQL and MinIO for testing. You can use the provided Mix tasks to manage the Docker containers:

# Start all containers (PostgreSQL, MinIO)
mix docker.start

# Create and migrate the test database
MIX_ENV=test mix test.create
MIX_ENV=test mix test.migrate

# Run tests with the standard Mix test command
mix test

# Run a specific test file
mix test test/storage_test.exs

# Stop all containers when done
mix docker.stop

The docker.start task starts all containers and waits for them to be ready. It automatically extracts connection details (usernames, passwords, ports) from your docker-compose.yml file. You'll need to create and migrate the database separately before running tests.

MinIO is included to support testing S3 storage adapters. It provides an S3-compatible API at http://localhost:9000 and a web console at http://localhost:9001 (default credentials: minioadmin/minioadmin).

These Mix tasks can be used in any environment. For example, you could use them in development:

mix docker.start
# Set up your development database
mix ecto.create
mix ecto.migrate
# Run your application
mix phx.server  # If you're using Phoenix

Make sure you have Docker and Docker Compose installed on your system.

About

An Ash extension to implement storage for resources.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

 
 
 

Contributors

Languages

  • Elixir 100.0%