README.md

![Logo](https://github.com/ash-project/ash/blob/main/logos/cropped-for-header-black-text.png?raw=true#gh-light-mode-only)
![Logo](https://github.com/ash-project/ash/blob/main/logos/cropped-for-header-white-text.png?raw=true#gh-dark-mode-only)

![Elixir CI](https://github.com/ash-project/ash_cloak/workflows/CI/badge.svg)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Hex version badge](https://img.shields.io/hexpm/v/ash_cloak.svg)](https://hex.pm/packages/ash_cloak)
[![Hexdocs badge](https://img.shields.io/badge/docs-hexdocs-purple)](https://hexdocs.pm/ash_cloak)

# AshCloak

AshCloak is an [Ash](https://hexdocs.pm/ash) extension to seamlessly encrypt and decrypt attributes of your resources. 

Encrypting attributes ensures that sensitive fields are not stored in the clear in your data layer.

AshCloak can be used with any Ash data layer.

It's recommended to use [Cloak](https://github.com/danielberkompas/cloak) as a vault implementation but you could also build your own.

## Tutorials

- [Get Started with AshCloak](documentation/tutorials/getting-started-with-ash-cloak.md)

## Topics

- [How does AshCloak work?](documentation/topics/how-does-ash-cloak-work.md)

## Reference

- [AshCloak DSL](documentation/dsls/DSL:-AshCloak.md)