The 2 AM Decision

I was staring at two GitLab repos — my entire capstone project, months of code, documentation, and deliverables — with the visibility toggle set to private.

Tomorrow they go public. But before I flip that switch, one question kept nagging me: did I accidentally leave my NRIC in a comment somewhere?

Singapore’s PDPA (Personal Data Protection Act) doesn’t mess around. If you’re publishing code that might contain personal data, you need to know exactly what’s exposed.

So I did what any paranoid developer would do — I automated the audit.


What I Scanned

Two repositories, both going public:

Repo Contents Risk
lithan-capstone-project Full-stack app, reports High
lithan-capstone-project-sha1 SHA-256 mirror High

The scanner? My own pdpa-sg-clj — a Babashka-based PII scanner built for Singapore PDPA compliance.


The PDPA Categories That Matter

Under Singapore’s PDPA, personal data is any data about an individual who can be identified from that data alone.

Identity & Contact:

Category Protected?
NRIC/FIN Numbers Yes — primary target
Full Names Yes — when paired
Phone Numbers Yes
Email (Personal) Yes
Email (Business) No — BCI exclusion

Location, Financial & Health:

Category Protected?
Residential Address Yes
Financial Data Yes
Health Records Yes
Biometric Data Yes
Digital Identifiers Yes — when linkable

What I Actually Found

No Critical Leaks

Zero NRIC numbers. Zero phone numbers. Zero residential addresses. Zero financial or health data.

The repos are clean on the hard stuff.

Minor Finding #1: Professional Email

"Designed and engineered by Nur Azhar (career@nurazhar.com)"

My professional email sits in the /llms.txt endpoint. Under PDPA, this is Business Contact Information (BCI) — explicitly excluded from protection. Verdict: Safe.

Minor Finding #2: Northflank Account ID

"vcsAccountId": "6a51af90ecdfaed00c8157fc"

Looks scary but isn’t. It’s an opaque UUID — a resource identifier, not a secret.

It can’t authenticate, access, or modify anything. Northflank’s API requires a separate API key for any action. Verdict: Safe.

Minor Finding #3: Local File Paths

file:///home/nurazhar/Work/bootcamp/Capstone_Project/...

Several markdown files reference my local filesystem paths. Not PDPA-relevant, but reveals my Linux username. Verdict: Cosmetic only.


The Full Scan Results

Identity & Contact:

Category Result
NRIC/FIN ✅ None
Phone Numbers ✅ None
Email (Personal) ✅ None
Email (Business) ✅ BCI Excluded

Location, Financial & Health:

Category Result
Residential Address ✅ None
Financial Data ✅ None
Health Records ✅ None
Biometric Data ✅ None

Infrastructure:

Category Result
Digital Identifiers ✅ Not a secret
Local File Paths ✅ Not PDPA data

Why This Matters for Solo Developers

If you’re a solo developer in Singapore making repos public:

  1. Run a PII scanner before flipping visibility — don’t eyeball it
  2. Know the PDPA categories — NRIC, phone, address, financial, health, biometric
  3. Understand BCI exclusion — business email is not personal data if used professionally
  4. Check deployment configs — service account IDs look scary but usually aren’t secrets
  5. Audit documentation — markdown files often contain more PII than code

The entire audit took about 5 minutes with automated tooling. The peace of mind is worth hours.


The Takeaway

Automated PDPA compliance scanning before publishing is not optional — it’s a 5-minute habit that prevents a 5-figure fine.