Skip to main content

For IT and procurement review

Security & data handling

The controls protecting municipal project records, stated as they exist today — each enforced in the database, not promised in a slide. And, because reviews deserve honesty: a plain list of what we don't claim yet.

Last updated August 2, 2026

Tenant isolation, enforced in the database

Every municipal record belongs to exactly one organization, and isolation is enforced with row-level security in Postgres — not in application code that could be bypassed. Public/anonymous access to the database is zero. Cross-organization references are additionally blocked by composite database constraints, and the write path for every table is proven by an automated authorization test suite that runs against the real schema (115 assertions at this writing).

Contractor links that expire, revoke, and can't be forged

Contractors submit updates through single-purpose secure links — no contractor accounts, no shared passwords. Tokens are random, transmitted once, and stored only as keyed cryptographic hashes; the raw token is never written to the database or to logs. Links expire on a deadline, are revocable immediately and irreversibly (revocation is enforced by the database, not just hidden in the interface), and spent link hashes are purged on a documented retention schedule. Public endpoints are rate-limited.

An audit trail that can't be skipped

Meaningful actions — sending and revoking links, review decisions, report transitions, edits to report statements, evidence access — append audit events written inside the same database operations they record. There is no code path that performs the action but skips the trail, and no API role that can write a false trail entry attributed to someone else.

Reports are human-approved, by database rule

Nothing is ever auto-published. A report reaches its final state only through an approval that records the approving staff member and timestamp — a database-enforced gate, so an approval cannot be forged and an approved record cannot be silently destroyed or altered. Original contractor submissions and their evidence are preserved verbatim; review happens alongside the record, never by editing it.

AI drafting, bounded and traceable

Report drafting is machine-assisted and human-released: every material statement in a draft carries references to the submission, evidence, or record it came from, and statements are labeled by kind — restated fact, computed figure, or inference. The drafting layer is contractually barred from engineering, legal, financial, procurement, or public-safety determinations and from rating contractor performance; drafts that violate those bounds are rejected automatically before anyone sees them. Live model-generated drafting is currently disabled by default and gated behind additional verification controls that check the model's quoted evidence against the stored records.

Files, transport, and the public site

Evidence uploads are restricted by type and size, stored in private storage, and served only through short-lived signed URLs. The public site ships a production content-security policy, serves no third-party scripts, and sets no cookies on public pages. The current public deployment runs entirely on fictional demonstration data with no production database and no stored secrets beyond a single transactional-email key.

Accessibility

The five core surfaces — landing, login, dashboard, the contractor submission form, and the report review view — are scanned against WCAG 2.1 A/AA criteria in the automated test suite and currently pass with zero violations. Accessibility gaps we know about are tracked openly and closed deliberately.

How this is engineered and reviewed

Every schema or authorization change ships with automated database-level tests, and each development milestone undergoes an independent security review whose findings are recorded — and resolved or explicitly accepted — in a risk register kept in the project repository. Full technical documentation (data model, authorization model, retention policy, AI-provenance rules) is available to reviewing municipalities on request.

What we don't claim (yet)

No SOC 2 or ISO certification. No third-party penetration test yet. No uptime SLA, because no production municipal deployment exists yet — pilot agreements will state real commitments for a real deployment, including backups and recovery. We would rather list these plainly than imply them; when one changes, this page changes.

Questions a page can't answer? They go straight to the founder.

Discuss a municipal pilot