2025-09-16 09:34:03 +00:00

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 files
  • mix test - Run all tests
  • mix test test/path/to/test.exs - Run a specific test file
  • mix test test/path/to/test.exs:LINE - Run a specific test at a line number
  • mix deps.get - Install dependencies
  • mix 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:

  1. BasicSignupAllowlist (lib/basic_signup_allowlist.ex) - Public API module that reads the SIGNUP_ALLOWLIST_EMAILS environment variable and delegates to the functional core
  2. 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