1.5 KiB
1.5 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Commands
mix compile- Compile source filesmix test- Run all testsmix test test/path/to/test.exs- Run a specific test filemix test test/path/to/test.exs:LINE- Run a specific test at a line numbermix deps.get- Install dependenciesmix clean- Clean build artifacts
Architecture
This is an Elixir library that provides email allowlist functionality for restricting account creation. The library consists of two main modules:
- BasicSignupAllowlist (lib/basic_signup_allowlist.ex) - Public API module that reads the
SIGNUP_ALLOWLIST_EMAILSenvironment variable and delegates to the functional core - FunCore.BasicSignupAllowlist (lib/fun_core/basic_signup_allowlist.ex) - Pure functional core that handles the allowlist logic without side effects
The architecture follows a functional core/imperative shell pattern where:
- The functional core contains pure functions for email normalization and allowlist checking
- The outer module handles environment variable reading and provides the public interface
Environment Variables
SIGNUP_ALLOWLIST_EMAILS- Comma-separated list of allowed email addresses, or "*" to allow all emails
Project Configuration
- Elixir version: ~> 1.18 (managed via mise)
- No external dependencies currently
- Test framework: ExUnit with async: false for integration tests that modify environment variables