# BreakGlassEx v0.1.0 - Table of Contents

> A standalone, production-ready Elixir library that provides an in-process emergency access subsystem (break-glass authentication) for any Elixir or Phoenix application.

## Pages

- [README](readme.md)

## Modules

- [BreakGlass](BreakGlass.md): Public façade for the `break_glass_ex` emergency access library.
- [BreakGlass.DefaultUserProvider](BreakGlass.DefaultUserProvider.md): Default implementation of `BreakGlass.UserProvider` that returns the raw
`attrs` map unchanged.
- [BreakGlass.Notifier](BreakGlass.Notifier.md): Handles out-of-band alerting via email and/or webhook after a successful
break-glass login, and delivers OTP codes to the break-glass email address.
- [BreakGlass.OtpStore](BreakGlass.OtpStore.md): GenServer that owns the `:break_glass_otp` ETS table.
- [BreakGlass.RateLimiter](BreakGlass.RateLimiter.md): GenServer that owns the `:break_glass_rate_limit` ETS table and serialises
all write operations to prevent TOCTOU races.
- [BreakGlass.Supervisor](BreakGlass.Supervisor.md): OTP supervisor for the `break_glass_ex` library.
- [BreakGlass.TokenStore](BreakGlass.TokenStore.md): GenServer that owns the `:break_glass_tokens` ETS table.
- [BreakGlass.UserProvider](BreakGlass.UserProvider.md): Behaviour that host applications implement to supply a user term on successful
break-glass authentication.

## Mix Tasks

- [mix break_glass.gen_hash](Mix.Tasks.BreakGlass.GenHash.md): Generates a bcrypt hash for a given plaintext password and prints it to stdout.

