About This Manual¶
Mountainash Settings is a practitioner manual for mountainash-settings, a typed configuration framework for Python applications built on Pydantic v2. It is a companion to the library's API reference, not a replacement for it: where the reference tells you what a class or function does, this manual explains why you would reach for it, how its pieces fit together, and what happens under the hood when settings are loaded, merged, and resolved.
The manual is organized into 9 chapters that build on one another, starting from Pydantic and configuration-file foundations and ending with caching, settings management, and the AppSettings convenience class. Along the way it covers the merge framework that reconciles configuration from multiple sources, the field-templating syntax used to derive values like connection strings and log paths, the two-pass secrets resolution pipeline that resolves secret:path/to/value references transparently, the descriptor-based connection profile system, and the pluggable authentication modes available to it. For a fuller sense of who the manual is written for and what it assumes you already know, see the Package Overview.
What This Manual Is Not¶
This manual does not cover application-specific business logic, cloud provider account setup or IAM policy authoring, secrets-engine administration (standing up a Vault server or configuring AWS SSM), database driver internals, or Pydantic internals beyond what mountainash-settings extends. It assumes working familiarity with Python type annotations and Pydantic v2 basics; Chapter 1 exists specifically to fill in the Pydantic and configuration-loading prerequisites the rest of the book builds on.
About the Author¶
This manual and the mountainash-settings library are written and maintained by Nathaniel Ramm. Questions, corrections, and feedback on the manual are welcome — see the Contact page for ways to reach out, including opening an issue directly on GitHub.
Relationship to the Code Repository¶
mountainash-settings is developed in the open at github.com/mountainash-io/mountainash-settings. Every page in this manual carries an edit link back to its source file in that repository's docs/ directory, so corrections can be proposed as pull requests directly against the page you are reading.
The library is part of the broader mountainash project, a collection of typed Python libraries for data engineering and platform development. Within that ecosystem, mountainash-settings is the configuration layer: other mountainash packages depend on it for settings management, connection-profile configuration, and secrets resolution, rather than each reimplementing those concerns independently.
License¶
All content in this manual — text, diagrams, and examples — is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0). You are free to share and adapt the material for non-commercial purposes provided you give appropriate credit and share adaptations under the same license. See the License page for the full terms. Commercial rights are reserved by the copyright holder; commercial licensing and publication inquiries can be directed to Nathaniel Ramm via the Contact page.
This license applies to the manual's content. The mountainash-settings source code itself is governed by the license declared in its own repository, github.com/mountainash-io/mountainash-settings, which readers should consult before reusing or redistributing the library's code.