Metadata-Version: 2.5
Name: codevelo-platform
Version: 0.1.0
Summary: Shared, model-agnostic backend plumbing for CodeVelo Python services
Requires-Python: >=3.12
Requires-Dist: fastapi<1,>=0.115
Requires-Dist: sqlalchemy<3,>=2.0
Description-Content-Type: text/markdown

# CodeVelo Platform Python

Versioned, model-agnostic backend plumbing shared by CodeVelo Python services.

## Scope

- strict environment parsing
- Vault-backed secret and database URL resolution
- SQLAlchemy engine/session construction
- shared session-token, CSRF, role, and request-IP helpers
- best-effort centralized audit event emission
- standard HTTP audit middleware
- standard health and capability routers

The package does **not** own domain models, ORM mappings, application settings,
business authorization queries, schemas, or business logic. Each service keeps
those boundaries locally and composes these primitives.

## Adoption model

Applications pin an exact compatible release, for example:

```text
codevelo-platform==0.1.0
```

Releases should be published to the internal Python package registry. Consumers
must not depend on a mutable Git branch. The platform-application Blueprint
should pin the current supported version for newly scaffolded services.

Publishing a `v*` tag runs the Gitea release workflow when the repository has a
`PACKAGE_TOKEN` secret with write access to the `codevelo` package registry.
Until that secret is configured, tagged builds are validated and publication is
skipped so release tags cannot fail from missing credentials.

## Development

```powershell
python -m venv .venv
.venv\Scripts\python -m pip install -e ".[test]"
.venv\Scripts\python -m unittest discover -s tests -v
.venv\Scripts\python -m build
```

See [MIGRATION.md](MIGRATION.md) for the staged rollout plan.
