Session preparing the GSR Transformer (bankofus) repo for handover to a new dev team. Two notable outcomes: a committed-credentials security finding, and a docs/repo cleanup pass.
1. Security Finding — .env.production committed with live SFTP credentials
.env.production was tracked in git (present in 3 commits). Its FTP_URL held live US Bank SFTP credentials in URL form:
FTP_URL=sftp://user:password@host
The embedded user:password are real production credentials — a leak as long as they live in repo history.
Credentials still exposed in git history
Untracking + .gitignore stops new leaks but does NOT remove the credentials from past commits. Anyone with repo access (or a clone) can still recover them. History scrub + password rotation are required to fully close this.
Rotate the SFTP password with US Bank — the old one must be treated as compromised regardless of the scrub.
Pre-handover checklist — catch tracked env files
Before handing over any repo, run:
git ls-files | grep -i env
This surfaces tracked .env* files before they reach a new team. Production env files with embedded credentials get committed easily — .gitignore alone does not protect a file that is already tracked.
2. Handover Prep — docs and repo cleanup
Reworked the repo into a state a new team can pick up cold.
Docs
README.md — rewritten into a real front door (what the service is, how to run it, where to look next).
docs/HANDOVER.md — new, concise: where it runs, known issues, gotchas.
Stale-doc fixes — v1.2.0 removed the in-process node-cron scheduler and the /sync endpoints (commits 8e8c2f0, 13dc372), but several docs still described them:
docs/pentest-service-description.md
.env.example
Helm docs
All corrected to reflect CronJob-only ingest (no scheduler, no /sync).
Swagger path — corrected from /documentation to /docs.
Deleted stale summary files.
Repo cleanup
Tidied .gitignore.
Removed a stale Helm package artifact.
Deleted the stale local develop branch.
For Agents
Current ingest model is CronJob-only — there is no in-process scheduler and no /sync endpoint (removed in v1.2.0). The live Swagger UI is at /docs, not /documentation. If older docs/notes contradict this, the v1.2.0 state above is authoritative. See Agent Context (GSR Transformer).