Commit Graph

7 Commits (5d1ccd774c5d027aee6b4585801d37b3095b75d0)

Author SHA1 Message Date
Talha Ahmed 5d1ccd774c Drop the stray CodeBuild buildspec from deploy-to-s3.yml (corrected file from DevOps)
Deploy to S3 / deploy (push) Successful in 28s Details
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 16:27:21 +05:00
Talha Ahmed 7aa2751975 Adopt DevOps-supplied deploy-to-s3.yml (appends CodeBuild buildspec section)
Deploy to S3 / deploy (push) Successful in 24s Details
Provided by Yaseen (DevOps) to enable the Gitea Actions pipeline; the
ci.yml.bkp from the same bundle was dropped at his instruction.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 16:22:44 +05:00
bahawal.baloch 30f75c2f78 remove workflow 2026-08-28 18:54:33 +05:00
Talha Ahmed ccda7f15aa Remove ci.yml - CI/CD is owned by the DevOps pipeline (S3-based delivery)
Deploy to S3 / deploy (push) Successful in 24s Details
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 16:36:21 +05:00
yaseen.zafar 89c1e26614 added CI config
CI / frontend-build (push) Has been cancelled Details
CI / docker-images (push) Has been cancelled Details
CI / backend-tests (push) Has been cancelled Details
Deploy to S3 / deploy (push) Successful in 30s Details
2026-08-20 16:30:17 +05:00
yaseen.zafar 45ccd6508f added CI config 2026-08-20 16:29:25 +05:00
Talha Ahmed d823a45cb2 Production readiness: month separation, auth, FX service, AWS deployment
Month management & data separation:
- Fix double-count bug: re-uploading a filename updates the existing
  session_files row in place; identical content (sha256) is skipped —
  a closing can never parse the same file twice
- Guard against duplicate closings per reporting month (409 unless
  explicitly overridden); dashboard flags duplicates
- Default new closings to carry-forward openings; month switcher in the
  closing header; publish state visible everywhere; Accounts Summary
  lists unpublished months with the reason instead of dropping them
- Completed closings are locked read-only with an explicit reopen

Authentication (stdlib only, no new deps):
- Per-user login (scrypt + HMAC tokens), AR_AUTH=auto turns on with the
  first user; manage.py add-user/set-password/deactivate-user
- Verified identity feeds reviewed_by/approved_by/confirmed_by

Exchange rates:
- fx_service with provider abstraction: Frankfurter (free, keyless,
  ECB) default, exchangerate-api stub; month-end + daily fetch
  endpoints and UI buttons; rates arrive unconfirmed so Control C5
  still gates the close; cache table; certifi CA bundle

Deployment & hardening:
- Production Docker stack: caddy (auto-HTTPS) + nginx + single-worker
  backend + mysql:8.4; per-context .dockerignore (images carry no
  financial data); .env.example with local+production sections
- deploy/DEPLOY.md runbook + nightly S3 backup script
- Stale-job recovery on startup; export retention (AR_RETENTION_DAYS);
  deep /api/health; request/job logging; Gitea Actions CI
- Repo reorganized: launchers in scripts/, dated lowercase docs,
  root README, .gitattributes for deterministic line endings

Tests: 152 passed (25+ new: dedup, month locking, auth, FX orientation)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-19 18:46:47 +05:00