Workflow-App/.gitignore
sjcoetzeesj-coder cd0a818641 feat(cipc): director appointment check tab
Reconcile CIPC BizPortal against the Workflow database for every
director ID number we hold, and report only the two kinds of
difference that need a decision:

  1. new appointment  - CIPC lists the person as a director of company
     X, the database does not.
  2. no longer a director - the database lists the person at company X,
     CIPC no longer shows them there.

Everything that is in sync is not reported, so the list stays short
enough to work through by hand.

- New page /cipc-report with an explorer that runs the check, polls
  the run and lists the exceptions.
- New API route /api/cipc/report: POST starts a background batch run
  of the existing "Bizportal Directopr id no search.py" (invoked
  exactly as it already behaves, including its own login rotation),
  GET returns run status and the exception lists. ?demo=1 returns a
  fixed sample so the screen can be shown without a live run.
- New action route /api/cipc/report/action for the per-exception
  follow-up actions.
- scripts/cipc-report/build_report.py renders the run into a PDF with
  the exceptions marked, plus the sample report used by ?demo=1.

The BizPortal tooling only exists on the Windows dev machine, so like
the other CIPC routes this tab cannot run the live search from the
Coolify Linux image.
2026-10-27 12:19:47 +02:00

77 lines
No EOL
2 KiB
Text

# ---------------------------------------------------------------- secrets ---
# Never commit local credentials / API tokens.
.env
.env.*
!.env.example
*.pem
*.key
# ----------------------------------------------- deps, build & tooling ---
node_modules/
.next/
.next-stale*/
out/
dist/
build/
*.tsbuildinfo
# ------------------------------------------------- logs & runtime state ---
*.log
*.log.err
*.tmp
.runtime/
.dev-screenshots/
npm-debug.log*
# ------------------------------------------- local DBs & scratch working ---
*.sqlite
*.sqlite3
*.db
scratch-*/
_backups/
# --------------------------- CIPC report run state (generated) --------
# The report explorer writes its run folder, produced PDFs and sample
# page renders at runtime — none of that belongs in the repo.
Workflow/.cipc-report/
Workflow/reports/
Workflow/scripts/one-id.txt
Workflow/scripts/cipc-report/_sample*/
Workflow/scripts/cipc-report/sample-results*.json
# --------------------------------- debug captures & one-off probe output ---
# Ad-hoc dumps kept while debugging SARS / CIPC screens. Not project source.
_probe*.json
_junction_backup*.json
_*.log
_*.txt
*.preview-p*.png
.preview-p*.png
workpage*.png
# --------------------- CIPC / BizPortal live session state (cookies!) ---
# NOTE: patterns with a slash are anchored to the repo root, so the app
# subtree needs its own Workflow/ prefix.
Workflow/scripts/storage_state.json
# ------------------------------- client documents & one-off scratch work ---
Workflow/scripts/_backup_ufc_docs/
Workflow/scripts/.scratch/
Workflow/scripts/_scratch/
scratch-*/
# ------------------------------------------ compiled python / stray bins ---
__pycache__/
*.py[cod]
*.bin
# ------------------------------------- debug screenshots & probe uploads ---
Workflow/scripts/_*.png
Workflow/scripts/sars_login_*.png
Workflow/scripts/_upload_probe.pdf
# ----------------------------------------------------------- OS / editor ---
desktop.ini
Thumbs.db
*.bak
*.bak.*