Readiness¶
Market, upgrade, and recovery gates for a Keprix instance. The CLI and Admin UI share the same report service.
Statuses: pass, warn, fail, unknown. Failed checks include a fix_path for admin navigation.
CLI¶
keprix readiness
keprix readiness --json
keprix readiness --category market
keprix readiness --category upgrade --target 0.16.0
keprix readiness --category recovery
--target checks package installability for an upgrade version (keprix==VERSION). Categories: market, upgrade, recovery, all (default).
Equivalent module entrypoint:
PYTHONPATH=src python3 -m keprix.keprix_cli.main readiness
Admin UI¶
Open Admin > Readiness at /admin/readiness (admin or owner). The UI calls GET /api/admin/readiness and can trigger a safe backup from the same surface.
See Admin dashboard.
What is checked¶
Representative gates (exact list grows with the readiness module):
| Area | Examples |
|---|---|
| Market | Auth, billing price pins, BYOK/wallet, quotas, tool ACLs, client approval, public docs, triggers |
| Upgrade | Package installability, backup path, version migration hooks |
| Recovery | Backup creation/encryption/retention, restore-test evidence |
Billing and Community Edition¶
Billing is optional for self-hosted Community Edition.
- When billing config is absent, the billing-prices check is
warn(hosted SaaS may still require pins). - Paid plan/addon Stripe price IDs must be present when billing config is loaded; missing required pins fail market readiness.
- Community Edition coffee donation is voluntary. Missing donation price IDs are warn-only and never block readiness.
Details: Billing.
Private ship gate¶
CI / pre-ship automation should use:
bash scripts/check-private-ship-gate.sh
That script is the private ship gate (architecture, auth/billing focus, TUI parity, frontend typecheck, and related smoke). It may be added or updated by a sibling prompt; when present, run it before declaring a private cut ready.
Public GTM gate¶
Before calling Keprix public GTM ready, run:
bash scripts/check-public-gtm-gate.sh
This gate fail-closes until anonymous GitHub is reachable, forbids workspace abs paths and historical wrong-domain marketing placeholders on the ship face, checks installer syntax and PyPI honesty, reuses the private ship gate, and verifies marketing install snippets. Soft skips:
| Env | Effect |
|---|---|
KEPRIX_SKIP_DOMAIN_CHECK=1 | Skip https://keprixai.com/ only while Contabo origin is intentionally deferred |
KEPRIX_PUBLIC_GTM_SKIP_PRIVATE=1 | Surface-only preview (CI); do not use for sign-off |
KEPRIX_PYPI_PUBLISHED=1 | After owner PyPI upload (honesty script) |
CI runs a surface preview; after publicize, keep the job hard-failing on regressions (drop continue-on-error when green). Release / public sign-off should run the full gate (no KEPRIX_PUBLIC_GTM_SKIP_PRIVATE) when claiming READY. Sign-off: Public GTM sign-off.
Package version for the current private ship target is 0.16.0 (pyproject.toml). See Changelog.