Metadata-Version: 2.2
Name: pg-provision
Version: 0.1.0
Summary: Idempotent PostgreSQL provisioning as a Python package (wrapping portable shell scripts)
Author-email: John Jenkins <scr1ptcat@protonmail.com>
License: MIT
Project-URL: Homepage, https://github.com/scr1ptcat/pg-provision
Project-URL: Repository, https://github.com/scr1ptcat/pg-provision
Project-URL: Issues, https://github.com/scr1ptcat/pg-provision/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Environment :: Console
Classifier: Topic :: System :: Systems Administration
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: POSIX :: Linux
Classifier: Intended Audience :: System Administrators
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE

# pg-provision

Idempotent PostgreSQL provisioning as a Python package wrapping portable shell scripts.

## Install

```
pip install pg-provision
```

## Quick start

Show usage (passthrough to shell script):

```
pgprovision --help
```

Dry run (no privileged operations):

```
pgprovision --dry-run
```

## OS Guides

- Ubuntu: [docs/test-plan-ubuntu.md](docs/test-plan-ubuntu.md)
- RHEL/Rocky/Alma: [docs/test-plan-rhel.md](docs/test-plan-rhel.md)

## Notes

- Linux-only. Commands that modify the system require root or passwordless sudo.
- See the test guides for end-to-end provisioning scenarios.

### Secrets
For non-interactive provisioning without leaking passwords, prefer a file-based secret and avoid passing passwords on the command line:

```
CREATE_PASSWORD_FILE=/run/secrets/pgpass \
pgprovision --create-user app --create-db app
```
This prevents secrets from appearing in argv or logs.
