Thanks for helping harden a SQL-first Risk OS.
- Keep core risk logic in PostgreSQL when possible (CLI / tests / docs around it).
- Prefer idempotent DDL (
IF NOT EXISTS,OR REPLACE). - Use
cardops_now()instead of bareNOW()in engine SQL. - Every new public SQL function should have at least one Pytest assertion.
- Do not store raw PAN, CVV, or secrets in the repo.
git checkout -b feat/your-change
# edit SQL / Python / docs
bash scripts/load_all_sql.sh # or make db-seed
pytest -q
python cardops_cli.py health- Describe why the change matters for risk ops
- Link any related issue
- Include test plan (commands you ran)
- Keep PRs focused; split large refactors
- SQL: readable CTEs, comments on public functions
- Python: stdlib +
psycopg2/pytestonly unless justified - Docs: clear English, no broken encoding
Contributions are accepted under the Apache License 2.0.