Security and trust
Security is a product feature, not a later checklist
Procurevent holds commercially sensitive pricing, supplier documents and confidential event information. Below is what is in place today, and what is committed for launch — separated, because the difference matters.
In place today
Controls built into the database
These are not roadmap items. They are in the schema, and the isolation suite tests them on every change.
Row-level security, forced
Every tenant table carries FORCE ROW LEVEL SECURITY, so policy applies even to a migration running as the database owner. 75 policies across 46 tenant tables.
Transaction-local tenant context
Each request sets its tenant identity for the duration of one transaction only. Session-scoped context would leak one tenant onto the next request sharing a pooled connection — the most likely way a product like this leaks data.
Immutability enforced by trigger
Audit events, award snapshots, approval actions, request versions and clarification messages reject UPDATE and DELETE outright. A comment saying "do not edit this" is not a control.
Exact decimal money
Monetary values use fixed-precision decimal domains, never floating point, enforced on every one of roughly forty columns that stores a value.
Workflow state as database enums
No application bug can write an invalid status into a request. New states are added deliberately, by migration.
European data residency
PostgreSQL 17 hosted in Frankfurt, in the EU. Chosen at provisioning time rather than migrated to later.
Isolation tested against a least-privilege role
The isolation suite connects as the restricted application role, not the owner — an owner account bypasses row-level security, so a suite run as owner would pass identically against a database with no security at all. Every positive assertion is paired with a negative control.
Committed for launch
Controls we are building, stated as commitments
The application and its API are still in development. These are commitments for the first production release, not descriptions of something you could test today.
| Control | Layer | Status |
|---|---|---|
| Multi-factor authentication for administrative and buyer accounts | Identity provider integration | Committed |
| Private object storage with short-lived signed access URLs | Supplier documents | Committed |
| Rate limiting and bot protection | Edge layer | Committed |
| Security headers and web application firewall configuration | Edge layer | Committed |
| Dependency scanning in continuous integration | Build pipeline | Committed |
| Regular backups with tested restores | Operations | Committed |
| Incident response playbook | Operations | Committed |
| Production access control, no shared administrator credentials | Operations | Committed |
Privacy and GDPR
Built from the beginning, not retrofitted
Procurevent will often act as a processor for a buyer's data. That has to be confirmed contractually per service model rather than assumed, and the underlying mechanics have to exist from the start.
- Data processing agreement template, with controller and processor roles mapped per service model
- Privacy notice and a maintained subprocessor register
- Data retention policy, with subject access, export, correction and deletion workflows
- Tenant data export, and a tenant deletion process with legal retention exceptions
- Data minimisation in forms — we do not collect what we do not need
Public procurement
Where our boundary is
Procurevent is not marketed as compliant with Hungarian EKR, TED, EU eForms or the public procurement directives. EU eForms are standardised, directive-linked notice formats used by public buyers publishing through TED, and supporting them properly is a separate programme requiring specialist procurement counsel, formal requirements traceability and conformance testing. A public-sector edition may follow. It does not exist today, and we will not imply that it does.
Send us your security questionnaire
If your organisation has a vendor assessment process, we would rather go through it early than discover a blocker late. We will answer honestly, including where the answer is 'not yet'.