User Guide¶ This guide covers all aspects of using Varlord. Configuration Models Basic Model Required Fields Optional Fields Field Descriptions Default Factories Best Practices Metadata Fields Field Required/Optional Status Optional Metadata Fields Metadata Field Priority Complete Example Configuration Sources Defaults Source Environment Variables CLI Arguments DotEnv Files YAML Files JSON Files TOML Files Etcd Custom Sources Etcd Source Installation Basic Usage Environment Variables Using .env Files TLS Configuration User Authentication Key Naming Conventions Value Types Watch Support (Dynamic Updates) Priority with Other Sources Complete Examples Best Practices Troubleshooting See Also Key Mapping Rules Overview Mapping Rules by Source Comparison Table Common Patterns Best Practices CLI Commands Standard Command-Line Options Basic Usage The --help Option The --check-variables Option Implementation Details Custom Help Text Error Handling Best Practices Subcommands Subcommands and Command Routing Why No Built-in Subcommand Support? Recommended Approach Example: Simple Two-Level Subcommands Advanced Pattern: Shared Configuration Best Practices Common Patterns Advanced: Custom Source for Positional Args Summary Configuration Export Basic Usage Export Methods Nested Configuration Use Cases Dependencies Best Practices Custom Sources Basic Implementation Key Normalization Watch Support (Optional) Watch Implementation Requirements Complete Example Using Custom Sources Best Practices Priority Ordering Method 1: Sources Order (Recommended) Method 2: PriorityPolicy (Advanced) Pattern Matching Use Cases Validation Built-in Validators Custom Validators Nested Configuration Validation Validation Errors Validator Reference Logging Enable Logging Log Levels What Gets Logged Example Output Dynamic Updates Basic Usage Watch Detection Behavior Without Watch Support Change Events Thread Safety Watch Support Fail-Safe Updates Best Practices for Real-World Applications Project Structure Configuration Models Configuration Setup Application Entry Point Using Configuration in Business Code Complete Example: Web Application Configuration Files Best Practices Summary Common Patterns Troubleshooting Next Steps Frequently Asked Questions Why doesn’t load_store() need a watch parameter? What happens if I call subscribe() but no sources support watch? How do I implement watch support in a custom source? How does priority ordering work? Why is there only one way to set priority? What’s the difference between load() and load_store()?