Metadata-Version: 2.4
Name: etlantic-keyring
Version: 0.19.0
Summary: OS keyring secret provider for ETLantic.
Project-URL: Homepage, https://github.com/eddiethedean/etlantic
Project-URL: Documentation, https://github.com/eddiethedean/etlantic/tree/main/docs
Project-URL: Repository, https://github.com/eddiethedean/etlantic
Project-URL: Issues, https://github.com/eddiethedean/etlantic/issues
Project-URL: Changelog, https://github.com/eddiethedean/etlantic/blob/main/CHANGELOG.md
Author-email: Odo Matthews <odosmatthews@gmail.com>
License-Expression: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: etlantic<0.20,>=0.19.0
Requires-Dist: keyring
Description-Content-Type: text/markdown

# etlantic-keyring

Local workstation secret provider for
[ETLantic](https://github.com/eddiethedean/etlantic) 0.19 using the Python
[`keyring`](https://keyring.readthedocs.io/) library and OS credential stores.

```bash
pip install 'etlantic==0.19.0' 'etlantic-keyring==0.19.0'
# or: pip install 'etlantic[keyring]'
```

## Wiring

```python
from etlantic import Profile
from etlantic_keyring import create_provider

provider = create_provider(service="etlantic.customer-platform")
runtime.register_secret_provider("keyring", provider)
```

Registration is explicit: create the provider and register it on the runtime
under the same name referenced by the profile. Production profiles must also
allowlist trusted plugins. Secret values remain in the OS credential store and
are resolved only at runtime.

`SecretRef` resolution uses:

- `name` — keyring service name (or falls back to the provider default)
- `key` — keyring username / account name

```toml
[profiles.local.secrets.production-secrets]
provider = "keyring"
service = "etlantic.customer-platform"
```

Fail-closed: missing credentials raise `PipelineExecutionError` at runtime.
