Skip to main content

Settings management using AWS Secrets Manager and Pydantic

Project description

Pydantic Settings AWS

CI codecov PyPI - Implementation PyPI - Python Version Pydantic v2 only PyPI - License

Settings management using Pydantic and Amazon Web Services / Secrets Manager.

💽 Installation

Install using pip install -U pydantic-settings-aws.

📜 Example

You can create and manage your own secrets manager client or leave it to pydantic-settings-aws.

If you want to leave to pydantic-settings-aws to deal with boto3, you can either pass your credential information or leave it to boto3 to figure it out.

To check how boto3 will look for your configurations, check Configuring credentials.

🧑🏻‍💻 With secrets manager client

import boto3
from pydantic_settings_aws import SecretsManagerBaseSettings


client = boto3.client("secretsmanager")


class AWSSecretsSettings(SecretsManagerBaseSettings):
    model_config = SettingsConfigDict(
        secrets_name="my/secret",
        secrets_client=client
    )

    username: str
    password: str
    name: str | None = None

my_settings = AWSSecretsSettings()

And your secrets manager should be:

{
    "username": "admin",
    "password": "admin",
    "name": "John"
}

🙋🏾‍♂️ With profile name

class AWSSecretsSettings(SecretsManagerBaseSettings):
    model_config = SettingsConfigDict(
        secrets_name="my/secret",
        aws_region="us-east-1",
        aws_profile="dev"
    )

    username: str
    password: str

🔑 With access key

class AWSSecretsSettings(SecretsManagerBaseSettings):
    model_config = SettingsConfigDict(
        secrets_name="my/secret",
        aws_region="us-east-1",
        aws_access_key_id="aws_access_key_id",
        aws_secret_access_key="aws_secret_access_key",
        aws_session_token="aws_session_token"
    )

    username: str
    password: str

🔒 With AWS IAM Identity Center (SSO)

aws sso login --profile my-profile
class AWSSecretsSettings(SecretsManagerBaseSettings):
    model_config = SettingsConfigDict(
        secrets_name="my/secret"
    )

    username: str
    password: str

👩🏼‍⚖️ License

This project is licensed under the terms of the MIT license.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_settings_aws-0.1.2.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydantic_settings_aws-0.1.2-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_settings_aws-0.1.2.tar.gz.

File metadata

  • Download URL: pydantic_settings_aws-0.1.2.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pydantic_settings_aws-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2b661c8e6a44717ab7cdf3bb06c2182ec4bbd6e46f4e89ba67c13f644f9194cc
MD5 566c43ea7a71e3066d0f882d1ccfc5cb
BLAKE2b-256 bc14aa6a529644fc867a12dd0d21b2c8ce8bd055f0f3b1085c4dd7d41d0bb5e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_settings_aws-0.1.2.tar.gz:

Publisher: ci.yml on ceb10n/pydantic-settings-aws

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pydantic_settings_aws-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pydantic_settings_aws-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 692e0bff6944bc5b44c514a5e3b0208ae6cb2703f5083aa8d1bd60d06d383080
MD5 1eecc75e48df6516d19e370240d72fd2
BLAKE2b-256 9818d7226d017cca017e7caf6a4819fe64ecfc1b6ba53f4873169ee730526969

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_settings_aws-0.1.2-py3-none-any.whl:

Publisher: ci.yml on ceb10n/pydantic-settings-aws

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page