Metadata-Version: 2.5
Name: sealedrun-recorder
Version: 0.1.1
Summary: SealedRun recorder service: API and UI host for evidence bundles
Project-URL: Homepage, https://sealedrun.com
Project-URL: Repository, https://github.com/sealedrun/sealedrun
Project-URL: Changelog, https://github.com/sealedrun/sealedrun/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/sealedrun/sealedrun/issues
Author-email: Anatoli <info@sealedrun.com>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: FastAPI
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Security
Requires-Python: >=3.12
Requires-Dist: fastapi>=0.115
Requires-Dist: psycopg[binary]>=3.3.6
Requires-Dist: pydantic-settings>=2.6
Requires-Dist: python-multipart>=0.0.32
Requires-Dist: sealedrun>=0.1.1
Requires-Dist: sqlalchemy>=2.0
Requires-Dist: uvicorn[standard]>=0.53.0
Description-Content-Type: text/markdown

# sealedrun-recorder

FastAPI service that stores verified SealedRun bundles and serves the web inspector.

```bash
uv run sealedrun-recorder            # http://localhost:8080
```

Environment (prefix `SEALEDRUN_`): `DATA_DIR` (default `data/`), `DATABASE_URL` (default SQLite in
`DATA_DIR`), `UI_DIR` (default `apps/web/out`), `PORT`, `MAX_BUNDLE_BYTES`.

| Method | Path                                | Purpose                                             |
| ------ | ----------------------------------- | --------------------------------------------------- |
| GET    | `/api/health`                       | Liveness                                            |
| POST   | `/api/bundles`                      | Upload a bundle; verified before import, 422 if not |
| POST   | `/api/verify`                       | Verify without storing                              |
| GET    | `/api/bundles`, `/api/bundles/{id}` | Imported bundles, manifest and report               |
| GET    | `/api/bundles/{id}/archive`         | Download the original zip                           |
| GET    | `/api/runs`, `/api/runs/{id}`       | Runs                                                |
| GET    | `/api/runs/{id}/records`            | Records of a run in seq order                       |
| GET    | `/api/records/{id}`                 | One record                                          |
| GET    | `/api/records/{id}/payload/{side}`  | Stored request or response body                     |
