better-python-doppler


Namebetter-python-doppler JSON
Version 0.1.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-25 21:32:34
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/ce/94/9aa465f58346a06e4306c5ca677ca8b9807a759b39a6f7724a5a1a248e4b/better_python_doppler-0.1.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": "0.1.0",
    "project_urls": null,
    "split_keywords": [
        "doppler",
        " skd"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5307634ff45cbda247a2ea40661dc700218bbd23d020fb6af3830b5a384867b6",
                "md5": "cbc8ee03db0178635ef9cd2207f84ade",
                "sha256": "9825d6efb0a6249febb1214fa7d9405943c3146e47bf2da38c4fcbf4f16a47cd"
            },
            "downloads": -1,
            "filename": "better_python_doppler-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cbc8ee03db0178635ef9cd2207f84ade",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 15185,
            "upload_time": "2025-07-25T21:32:33",
            "upload_time_iso_8601": "2025-07-25T21:32:33.769776Z",
            "url": "https://files.pythonhosted.org/packages/53/07/634ff45cbda247a2ea40661dc700218bbd23d020fb6af3830b5a384867b6/better_python_doppler-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ce949aa465f58346a06e4306c5ca677ca8b9807a759b39a6f7724a5a1a248e4b",
                "md5": "6189fb7723b8ebb427399fc28c3a60f9",
                "sha256": "9daf71ee5daeca5bf11f260c19352c873a9374f467a9ec4d0d1ac2da6c50d340"
            },
            "downloads": -1,
            "filename": "better_python_doppler-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6189fb7723b8ebb427399fc28c3a60f9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 11588,
            "upload_time": "2025-07-25T21:32:34",
            "upload_time_iso_8601": "2025-07-25T21:32:34.949329Z",
            "url": "https://files.pythonhosted.org/packages/ce/94/9aa465f58346a06e4306c5ca677ca8b9807a759b39a6f7724a5a1a248e4b/better_python_doppler-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-25 21:32:34",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "better-python-doppler"
}
        
Elapsed time: 1.42248s