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.1.tar.gz (14.6 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.1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydantic_settings_aws-0.1.1.tar.gz
  • Upload date:
  • Size: 14.6 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.1.tar.gz
Algorithm Hash digest
SHA256 a293b0c5a18eae3ccb03bfce7a3d749fefc0fb1a874ddeb838acdaf21276407b
MD5 7d5f5be3d0dc89698774cd743b246998
BLAKE2b-256 8811a232d30346aa46167eeab42134dcef61ba457519c132f76491060d633017

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_settings_aws-0.1.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pydantic_settings_aws-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ae8aa6e8f44e1b057da88749c0f3b4d3051511fa96383bf2ba16fcb07baf3a73
MD5 d9648cfd5858caca1316de5f1b543237
BLAKE2b-256 710739995b1d74381b97ff1072f21a5f0d78be9f95b742470059bb53f6f237fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_settings_aws-0.1.1-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