Es Facpoc Fixture

Synthetic fixture for FAC PoC — not for production

Install Es Facpoc Fixture

bench get-app https://github.com/joelfernando/es_facpoc_fixture

Tags

  • erpnext
  • frappe-app
  • internal-poc-fixture

Add the Frappe Gems badge to your README

Maintain Es Facpoc Fixture? Paste this into your README:

[![Listed on Frappe Gems](https://frappegems.com/api/method/frappe_gems.seo.badge?app=joelfernando%2Fes_facpoc_fixture)](https://frappegems.com/gems/apps/joelfernando/es_facpoc_fixture)

About Es Facpoc Fixture

esfacpocfixture

WARNING: PROOF-OF-CONCEPT FIXTURE - NOT FOR PRODUCTION USE

This Frappe app exists solely to generate a synthetic dataset for evaluating Frappe Assistant Core (FAC) in an isolated PoC environment. It MUST NOT be installed on a production or shared ERPNext site.

Guardrails enforced at runtime: - All seed operations refuse to run unless facpoc_marker is set in site_config.json. - Seed refuses to run if non-synthetic transactional data exists on the site. - All synthetic identities use FACPOC prefix and example.invalid email domain.

What it does

Provides deterministic, idempotent seed routines for a Frappe site to create: - Company, Fiscal Year, Chart of Accounts (via setup_complete) - Item groups, items, customers (unregistered for GST purposes) - Quotation to Sales Order to Sales Invoice to Payment Entry chains - A pre-web FAC hardening helper that disables write-destructive and analytics tools

Requirements

  • Frappe v16 / ERPNext v16
  • ERPNext, India Compliance, FAC v2.4.3 installed on the same bench
  • A disposable site (never a shared or production site)

Usage

Tested only against a disposable PoC site with facpoc_marker set:

bench --site facpoc.localhost set-config facpoc_marker facpoc-2026-06-06
bench --site facpoc.localhost install-app es_facpoc_fixture
bench --site facpoc.localhost execute es_facpoc_fixture.tools.seed.run --kwargs '{"dry_run": true}'
bench --site facpoc.localhost execute es_facpoc_fixture.tools.fac_harden.run --kwargs '{"dry_run": true}'

Testing

Static and offline unit tests (do not require a Frappe site):

python -m unittest discover tests -v

Files

es_facpoc_fixture/
  tools/
    guards.py          - site-marker + non-synthetic data guards
    accounting.py      - setup_complete wrapper with verified payload
    masters.py         - item groups, items, customers (idempotent)
    transactions.py    - quotation/SO/SI/payment chains
    pdf_smoke.py       - PDF structural assertions (disposable-site phase)
    fac_harden.py      - 12-tool disable + 3-channel verification
    verify.py          - post-seed sanity counts
    seed.py            - orchestrator
tests/
  test_static_checks.py       - no PII/secrets/internal paths in source
  test_guards.py              - site-marker guard, dry-run, refuse non-synthetic
  test_idempotency.py         - already-created detection
  test_fac_harden_fail_closed.py  - mocked toggle_tool failure -> harden aborts

Licence

MIT

Related Other apps for Frappe & ERPNext

  • Erpnext — Free and Open Source Enterprise Resource Planning (ERP)
  • Helpdesk — Modern, Streamlined, Free and Open Source Customer Service Software
  • Print Designer — Visual print designer for Frappe / ERPNext
  • Ctr — CTR模型代码和学习笔记总结
  • Whitelabel — Whitelabel ERPNext
  • Fossunited — fossunited.org
  • Helm — Helm Chart Repository for Frappe/ERPNext
  • Frappe Attachments S3 — A frappe app to upload file attachments in doctypes to s3.