better-python-doppler


Namebetter-python-doppler JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryA simplified and up to date Python SDK for Doppler. Because their current one has stale docs and doesn't provide much IDE support.
upload_time2025-07-28 19:29:56
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords doppler skd
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Better Python Doppler

Better Python Doppler is a lightweight SDK around the [Doppler API](https://docs.doppler.com/reference). It wraps common API endpoints in simple Python classes and includes typed models for working with secrets.

## Installation

This project currently requires Python 3.12 or newer. Once published to PyPI it can be installed with `pip`:

```bash
pip install better-python-doppler
```

For local development clone the repository and install the dependencies:

```bash
pip install -e .
```

## Quick Start

The example below mirrors `examples/example_secrets.py` and demonstrates basic usage of the SDK. It assumes the environment variables `SERVICE_TOKEN`, `PROJECT_NAME`, `CONFIG_NAME` and `SECRET_NAME` are available.

```python
from better_python_doppler import Doppler

# Create the SDK instance
sdk = Doppler(service_token=os.getenv("SERVICE_TOKEN"))

# List secret names
names = sdk.Secrets.list_names(
    project_name=os.getenv("PROJECT_NAME"),
    config_name=os.getenv("CONFIG_NAME")
)

# Fetch all secrets
secrets = sdk.Secrets.list(
    project_name=os.getenv("PROJECT_NAME"),
    config_name=os.getenv("CONFIG_NAME")
)

# Retrieve a specific secret value
secret_value = sdk.Secrets.get(
    os.getenv("PROJECT_NAME"),
    os.getenv("CONFIG_NAME"),
    os.getenv("SECRET_NAME")
)
print(secret_value.value.raw)
```

## Functionality

The SDK focuses on secrets management via the `Doppler.Secrets` interface defined in `secret.py`. Supported operations include:

- `list` – return detailed information for all secrets in a config.
- `list_names` – fetch only the secret names.
- `get` – retrieve a single secret as a `SecretModel`.
- `update` – update one or more secret values.
- `download` – download secrets in various formats (json, env, yaml, etc.).
- `delete` – delete a secret.
- `update_note` – modify the note on an existing secret.

Under the hood these call lightweight API wrappers located in `src/better_python_doppler/apis`. The project also exposes minimal data models in `src/better_python_doppler/models` such as `SecretModel` and `SecretValue` for convenient type checking.

Authentication is performed with a Doppler service token. You can pass the token directly when creating `Doppler` or load it from an environment variable using the `service_token_environ_name` parameter.

## License

This project is licensed under the Apache 2.0 License. See the [LICENSE](LICENSE) file for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "better-python-doppler",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "Doppler, SKD",
    "author": null,
    "author_email": "Derek Banker <dbb2002@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/a8/64/57701ada70f18b1bb88546fc6aa31cceaf58dab99d1df812c3c09ed5ff58/better_python_doppler-1.0.0.tar.gz",
    "platform": null,
    "description": "# Better Python Doppler\n\nBetter Python Doppler is a lightweight SDK around the [Doppler API](https://docs.doppler.com/reference). It wraps common API endpoints in simple Python classes and includes typed models for working with secrets.\n\n## Installation\n\nThis project currently requires Python 3.12 or newer. Once published to PyPI it can be installed with `pip`:\n\n```bash\npip install better-python-doppler\n```\n\nFor local development clone the repository and install the dependencies:\n\n```bash\npip install -e .\n```\n\n## Quick Start\n\nThe example below mirrors `examples/example_secrets.py` and demonstrates basic usage of the SDK. It assumes the environment variables `SERVICE_TOKEN`, `PROJECT_NAME`, `CONFIG_NAME` and `SECRET_NAME` are available.\n\n```python\nfrom better_python_doppler import Doppler\n\n# Create the SDK instance\nsdk = Doppler(service_token=os.getenv(\"SERVICE_TOKEN\"))\n\n# List secret names\nnames = sdk.Secrets.list_names(\n    project_name=os.getenv(\"PROJECT_NAME\"),\n    config_name=os.getenv(\"CONFIG_NAME\")\n)\n\n# Fetch all secrets\nsecrets = sdk.Secrets.list(\n    project_name=os.getenv(\"PROJECT_NAME\"),\n    config_name=os.getenv(\"CONFIG_NAME\")\n)\n\n# Retrieve a specific secret value\nsecret_value = sdk.Secrets.get(\n    os.getenv(\"PROJECT_NAME\"),\n    os.getenv(\"CONFIG_NAME\"),\n    os.getenv(\"SECRET_NAME\")\n)\nprint(secret_value.value.raw)\n```\n\n## Functionality\n\nThe SDK focuses on secrets management via the `Doppler.Secrets` interface defined in `secret.py`. Supported operations include:\n\n- `list` \u2013 return detailed information for all secrets in a config.\n- `list_names` \u2013 fetch only the secret names.\n- `get` \u2013 retrieve a single secret as a `SecretModel`.\n- `update` \u2013 update one or more secret values.\n- `download` \u2013 download secrets in various formats (json, env, yaml, etc.).\n- `delete` \u2013 delete a secret.\n- `update_note` \u2013 modify the note on an existing secret.\n\nUnder the hood these call lightweight API wrappers located in `src/better_python_doppler/apis`. The project also exposes minimal data models in `src/better_python_doppler/models` such as `SecretModel` and `SecretValue` for convenient type checking.\n\nAuthentication is performed with a Doppler service token. You can pass the token directly when creating `Doppler` or load it from an environment variable using the `service_token_environ_name` parameter.\n\n## License\n\nThis project is licensed under the Apache 2.0 License. See the [LICENSE](LICENSE) file for details.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A simplified and up to date Python SDK for Doppler. Because their current one has stale docs and doesn't provide much IDE support.",
    "version": "1.0.0",
    "project_urls": null,
    "split_keywords": [
        "doppler",
        " skd"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ee793ae382de5679d11f9c8fd5b0831d526a5f0b910f773d80c7625e486e77e4",
                "md5": "961a1d3e70e9e912a7adde03964691f2",
                "sha256": "874a20c7fa933d5d7e56f00c32f7673f8c281e2a56b71da8ad5d3660a3936920"
            },
            "downloads": -1,
            "filename": "better_python_doppler-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "961a1d3e70e9e912a7adde03964691f2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 15378,
            "upload_time": "2025-07-28T19:29:55",
            "upload_time_iso_8601": "2025-07-28T19:29:55.656800Z",
            "url": "https://files.pythonhosted.org/packages/ee/79/3ae382de5679d11f9c8fd5b0831d526a5f0b910f773d80c7625e486e77e4/better_python_doppler-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a86457701ada70f18b1bb88546fc6aa31cceaf58dab99d1df812c3c09ed5ff58",
                "md5": "6d9a860e22babe7ac3ac2296343b41e9",
                "sha256": "c2c3bbbf4d8e0b0479956aa5864d931b1275ce786621992c00136782741847ee"
            },
            "downloads": -1,
            "filename": "better_python_doppler-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6d9a860e22babe7ac3ac2296343b41e9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 11752,
            "upload_time": "2025-07-28T19:29:56",
            "upload_time_iso_8601": "2025-07-28T19:29:56.445547Z",
            "url": "https://files.pythonhosted.org/packages/a8/64/57701ada70f18b1bb88546fc6aa31cceaf58dab99d1df812c3c09ed5ff58/better_python_doppler-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-28 19:29:56",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "better-python-doppler"
}
        
Elapsed time: 2.79810s