Metadata-Version: 2.4
Name: pillarz
Version: 0.1.0.dev1
Summary: Shared foundation for FastAPI web services: sign-in, accounts, sessions, translations and app chrome
License-Expression: AGPL-3.0-or-later
Keywords: fastapi,authentication,oidc,authentik,sessions,accounts,i18n,framework
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: German
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: Session
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi>=0.115
Requires-Dist: uvicorn[standard]>=0.30
Requires-Dist: jinja2>=3.1
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: httpx>=0.27
Requires-Dist: joserfc>=1.0
Requires-Dist: itsdangerous>=2.2
Requires-Dist: psycopg[binary,pool]>=3.2
Requires-Dist: Babel>=2.16
Requires-Dist: cryptography>=43
Dynamic: license-file

# pillarz

*A shared foundation for FastAPI web services: sign-in, accounts, sessions, translations and app
chrome, extended only through documented hooks, events and configuration.*

pillarz bundles what every web service needs before its first feature: sign-in (password,
authentik/OpenID Connect, later magic link and passkeys), accounts and roles (admin, user, guest),
server-side sessions with a device list, translations (German and English included), settings, an
event log and the usual app chrome. Database: SQLite or PostgreSQL (psycopg 3), with versioned
migrations per component. The UI defaults to German.

> **Status: alpha (0.x).** The public API may change between 0.x versions without a deprecation
> period; every such change is listed under "Breaking" in the CHANGELOG. Full documentation
> arrives with 1.0.

## Installation

Python ≥ 3.12. Pin pillarz exactly and with a hash, e.g. in `requirements.txt`:

```
pillarz==X.Y.Z --hash=sha256:…
```

and install with `pip install --require-hashes -r requirements.txt`. Environment variables are
listed in `env.example` (in the sdist and the repository).

## License

[GNU Affero General Public License v3.0 or later](https://www.gnu.org/licenses/agpl-3.0.html)
(`AGPL-3.0-or-later`, file `LICENSE`). If you modify pillarz and run it as a network service, you
must offer your users the source code of the modified version (AGPL §13).

## Source and changelog

The complete source code is the sdist on PyPI (`pip download --no-binary :all: pillarz==X.Y.Z`);
it includes `CHANGELOG.md` and `LICENSE`.
