Monetization core: shared billing (clients/ledger/holds/Stripe), factory intake (client repos + issue provisioning), eval farm intake/results, delivery receipts. Two front-ends, one billing core.
Go to file
Claude f39343ea81 gitea-saas-core#41: client-facing surface — per-client keys, checkout, /api/me, self-serve work submission, Stripe webhook
- client_api.py: ClientKeyStore (SHA-256 hashed at rest, scoped, revocable),
  checkout with per-client rate limit, /api/me status, /api/me/issues submit,
  signature-authenticated /api/webhooks/stripe reusing the issue-#3 seam, and
  operator key-issuance routes; compound assembly guard replaces the billing
  operator before_request with identical operator-route semantics so scoped
  client endpoints are reachable and valid client keys get 403 on operator
  routes (cross-tenant + operator denials).
- auth.py: PUBLIC_PATHS + /api/webhooks/stripe; FORBIDDEN_BODY/
  forbidden_response; hash_client_key (no new compare_digest call site).
- schema.sql: client_api_keys table (hash + prefix only).
- app.py: mounts the client surface (stripe_builder/gitea injectable).
- tests/test_client_api.py (18 tests) + assembled-app coverage in test_app.py.
  Full suite: 293 passed, 1 skipped.
2026-09-05 04:34:50 -05:00
gitea_saas gitea-saas-core#41: client-facing surface — per-client keys, checkout, /api/me, self-serve work submission, Stripe webhook 2026-09-05 04:34:50 -05:00
tests gitea-saas-core#41: client-facing surface — per-client keys, checkout, /api/me, self-serve work submission, Stripe webhook 2026-09-05 04:34:50 -05:00
ARCHITECTURE.md gitea-saas-core#21: give gitea_saas/gitea_client.py a single owning issue (#4) 2026-08-25 10:32:42 -05:00
CALIBRATION.md gitea-saas-core#42: review-gate calibration corpus + report (measure, don't tune) 2026-09-01 06:39:22 -05:00
pyproject.toml gitea-saas-core#38: assemble one create_app() + entrypoints (wsgi, console script, python -m) 2026-09-01 03:48:20 -05:00
README.md Initial commit 2026-08-25 11:01:12 +02:00
requirements.txt Merge remote-tracking branch 'origin/main' into issue-2 2026-08-25 06:29:19 -05:00
wsgi.py gitea-saas-core#38: assemble one create_app() + entrypoints (wsgi, console script, python -m) 2026-09-01 03:48:20 -05:00

gitea-saas-core

Monetization core: shared billing (clients/ledger/holds/Stripe), factory intake (client repos + issue provisioning), eval farm intake/results, delivery receipts. Two front-ends, one billing core.