Skip to main content

vaultdantic

vaultdantic extends pydantic-settings with a vault-backed fallback source.

If you're already in the pydantic ecosystem, pydantic-settings makes it easy to specify your environment configuration as env files and load them at runtime. When you're working on a remote production app, you probably only need these global environment keys. But when you're working locally on side projects, it's way more convenient to store your environment parameters in a vault like 1Password. This lets you delete the contents of your machine and restore your secrets with a simple vault pull.

BaseSettings inputs continue to win in normal priority order (init args, env vars, .env, file secrets), and the vault provider is only queried when required fields are still missing.

Usage

from pydantic import SecretStr
from pydantic_settings import BaseSettings, SettingsConfigDict

from vaultdantic import OnePasswordConfigDict, VaultMixin


class ExampleSettings(BaseSettings, VaultMixin):
    model_config = SettingsConfigDict(
        env_file=".env",
        env_file_encoding="utf-8",
        env_prefix="EXAMPLE_",
        extra="ignore",
    )
    model_vault_config = OnePasswordConfigDict(
        vault="Engineering",
        entry="example-service",
    )

    api_token: SecretStr
    workspace_id: str

When ExampleSettings() is created, values are resolved in this order:

  1. pydantic-settings loads normal sources first (__init__ kwargs, environment, .env, and file secrets).
  2. If required fields are still missing, OnePasswordConfigDict.get_vars() is called and only missing keys are filled from the vault entry.
  3. Any key already provided by earlier sources keeps precedence over vault values, then the final model is validated.

Vault field labels should use env-style keys (for example EXAMPLE_API_TOKEN, not api_token). For nested fields, follow pydantic-settings rules: use env_nested_delimiter (for example PARENT_CHILD__TOKEN when env_nested_delimiter="__").

Vault Providers

Provider Config Class
1Password OnePasswordConfigDict

CLI

We also provide convenience methods to sync your vaults into an .env file, to make it easier to sync to a remote host or use in Docker. Sync all discovered vault values into .env:

uv run sync-vault-to-env

This will write your credentials in a special managed-by-vaultdantic section. We will overwrite this section on any subsequent syncs so we recommend leaving it alone.

# start managed by vaultdantic
...
# end managed by vaultdantic

Development

make sync
make lint
make test
make build

Metadata

Release files for vaultdantic 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vaultdantic 0.1.2
File Size Uploaded
vaultdantic-0.1.2.tar.gz 11.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vaultdantic 0.1.2
File Interpreter ABI Platform
vaultdantic-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 25.0 kB

Release files / vaultdantic-0.1.2.tar.gz

Download URL vaultdantic-0.1.2.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a929b5f0a7d2cc872658b3254ede6d236da27228446685c67d9b3c5001a1e2b3
BLAKE2b-256 checksum
How to use checksums
c90a9fa4e5531ba9542aed68d53958ff39922be2e005826ed1cdeeaad28c0bbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.13

Release files / vaultdantic-0.1.2-py3-none-any.whl

Download URL vaultdantic-0.1.2-py3-none-any.whl
Size 13.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
23b9989539d8ecc99ab7232ba38e397fb7a292e6b5b9a8e046eb31b746dfd51f
BLAKE2b-256 checksum
How to use checksums
d0ee885de0122655a29b103d4f28501787bba66dcd197c34417cfb05ae4e3400
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.13

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page