Who controls your data, and how to reach us
The controller of your data under this policy is:
- Legal name
- مؤسسة كنست راك للمقاولات
- Commercial Registration
- 1010603513
- National address
- 2229 شارع سعود بن عبدالله جلوي، حي النرجس، الوحدة 8051، الرياض 13333
- For privacy questions
- info@constraksa.com
- Landline
- +966114435373
1. Scope of this policy
This policy explains how your data is collected, used, and stored when you use the Constrak website (constraksa.com) and submit any of the request forms available on it: the "Start a Project" wizard, the contact form, the developer capabilities-file request, or the engineering-office submission form. This policy does not cover any system or site other than this one.
2. Legal basis for processing
We rely on two legal bases, depending on the data and its purpose:
- Consent: submitting any form on this site (Start a Project, Contact, the developer capabilities-file request, or the engineering-office submission) is a voluntary act of consent to our processing the data you enter, for the purpose of reviewing and responding to your request. The "Start a Project" wizard includes an explicit consent checkbox that must be checked before the request can be sent.
- Legitimate interest: no real analytics tool is active on this site at present. The tracking module in the code (`src/lib/analytics.ts`) does not send any data to an external provider — with no analytics property configured (e.g. Google Analytics), every tracked interaction only emits a local, structured console log in your browser or on our server; nothing is actually collected or transmitted. If a real analytics tool is enabled in the future, its legal basis will specifically be our legitimate interest in understanding site usage, and this policy will be updated to describe it accurately at that time.
3. Purpose of processing
We process data submitted through this site's forms only for the following purposes:
- Evaluating the project request or inquiry technically and operationally (whether it falls within our services and service area).
- Contacting the submitter through their stated preferred channel (WhatsApp, phone, or email).
- Internal lead management: storing the request in the internal lead viewer, tracking its status, and flagging it internally if no staff action is logged within the configured escalation window.
- Referring the project to a licensed engineering office when regulated design or engineering approval work falls outside Constrak's scope as a contracting and execution establishment (see "Disclosure to engineering offices" below).
What we do not use your data for
Your data is never used for marketing (messages, targeted advertising) without your separate, explicit permission. Your data is never sold or shared with any third party for marketing purposes.
4. Data we collect, and mandatory vs. optional fields
This site collects your data only when you submit one of four forms, using a fixed field set enforced by server-side validation (a Zod schema) before any request is accepted. The fields below are exact and match what is actually enforced in the code, per form:
1. "Start a Project" wizard (multi-step)
Required: project type, project status, city, neighborhood, land area, service needed, full name, mobile number (Saudi), preferred contact channel, and consent to the terms (a mandatory checkbox).
Optional: building area, email address, notes, and up to 12 attached files (25 MB maximum per file).
2. Contact form
Required: full name, mobile number (Saudi), and the message text (at least 10 characters).
Optional: email address.
3. Developer capabilities-file request
Required: name, company name, mobile number (Saudi), number of units, district, project stage, procurement model (labor-only / with materials / undecided), and expected start date.
No optional fields in this form — every field is required.
4. Engineering-office submission (confidential)
Required: office name, contact name, mobile number (Saudi), project city, and project type.
Optional: additional notes. This form is deliberately designed without any field identifying the office's end client — the office's client stays the office's client.
Additional technical data
Sender IP address: read transiently from the request header solely to enforce a rate limit (a maximum number of submissions per time window, to prevent automated abuse), held only in the server's in-memory state — never in the database — and cleared automatically on server restart or once the 10-minute window elapses. The IP address is never written to any permanent log or stored alongside the saved request data.
Traffic-source identifiers (UTM parameters): if present in the page URL at submission time (e.g. utm_source, utm_campaign), these are stored with the request for internal administrative purposes (knowing where a request came from), capped at 80/120 characters, defaulting to "direct" when absent.
5. Uploaded documents
The "Start a Project" wizard allows up to 12 attached files, of these types only: PDF, JPG/JPEG, PNG, capped at 25 MB per file. This list was deliberately narrowed (it previously also included DWG, DXF, HEIC/HEIF, and XLS/XLSX) pending full malware-scan testing of those wider formats.
Every file passes three independent checks before acceptance: its file extension, the actual MIME type the browser sent, and the file's real content signature (magic bytes) — a file named with a .pdf extension whose actual bytes are not a real PDF is rejected, even if the other checks pass.
Malware scanning: every file is actually scanned by a real ClamAV engine installed on this server the moment it is uploaded, and the engine name, its version, the signature-database version, and the scan timestamp are recorded against that file. Any file detected as infected is immediately moved into a separate quarantine directory (owner-only access), kept as evidence rather than deleted, and can never be downloaded. Even a file whose scan did not complete (e.g. the scan engine was briefly down) is blocked from download exactly like an infected one — no file is ever served unless its recorded scan result is actually "clean."
Once accepted, files are stored under a random, unguessable name with owner-only access permissions, outside any executable or directly publicly served path — there is no direct public URL to a file. Access is only possible through the protected internal lead viewer, and only once the file has actually scanned clean.
6. Collection method
We collect your data exclusively through your direct, voluntary submission of one of this site's four forms. We do not purchase data from any third party, we do not collect your data from external sources (e.g. social networks or marketing databases), and there is no hidden data collection on this site without a direct action from you.
7. Processing activities
After you submit any form, your data goes through the following steps:
- Server-side validation of every field before anything is saved (an incomplete or invalid request is never stored).
- Validation and storage of any attached files (see "Uploaded documents" above).
- Saving the request in this site's database, with a reference number shown to both you and internal staff.
- An attempt to notify internal staff by email or webhook (see "Service providers" below for each channel's real, current status).
- Internal technical review of the request by Constrak's team through the protected internal lead viewer.
8. Internal recipients
Your request data is seen only by Constrak staff holding credentials to the internal lead viewer (`/admin`). That viewer is gated by server-level Basic Auth and fails closed — any request without valid credentials is rejected outright. Every file download is written to a permanent internal audit log (who downloaded what, and when).
This gate is a deliberate stopgap pending a real per-staff-member login system (separate accounts and roles) — there is currently no system-level distinction between staff members beyond the username entered on each request.
9. Disclosure to engineering offices
Constrak is a construction and execution establishment. Where regulated design or engineering approval work falls within a project's scope, it is carried out and certified by a licensed engineering office, responsible for it under a clearly defined scope and agreement.
When your project is referred to a licensed engineering office on this basis, your project's files and data (drawings, measurements, site details) may be shared with that office to the extent needed to carry out the engagement, under a working agreement between us and the office. When a project is instead referred to us by an engineering office (a confidential submission), communication stays routed through that office's named point of contact, and your identity as the end client is not shared with Constrak unless the office authorizes it.
10. Cross-border access
This site runs on a single server rented from Hetzner Online GmbH, physically located in Helsinki, Finland — outside the Kingdom of Saudi Arabia. This means your data, including uploaded files, is actually processed and stored on a server outside the Kingdom's borders, not within them.
No offsite backup is currently configured specifically for this site — all of this site's data exists only on this single server, with no second backup destination yet.
11. Storage geography
The database and all uploaded files are stored on the local disk of the server described above (Helsinki, Finland). There is currently no second copy of the data in any other geographic location.
12. Service providers
The actual outside parties involved in processing your data today are:
- Hetzner Online GmbH — the server hosting provider (Helsinki, Finland). This is the only service provider with actual access to the infrastructure your data is stored on.
- No outbound email provider (SMTP/Resend/SendGrid or similar) is currently configured. Internal email notification is always logged as "skipped — not configured," and no email is actually sent.
- A webhook notification channel: technically built and ready, but it only fires if a real webhook URL is configured in the server environment; if unconfigured, it likewise logs as "skipped" and your data never reaches any outside destination through it.
- No external customer-relationship-management (CRM) system is connected to this site — every request is stored locally only.
13. Retention periods
Request data (the text fields) remains stored in the database with no automatic time limit, until a staff member manually deletes it through the internal lead viewer, or until you ask us to delete it (see "Your rights" below).
For attached files specifically, a real retention mechanism exists and is ready (a separate script that deletes files older than a defined window, set via the `UPLOAD_RETENTION_DAYS` environment variable), but it is not yet actively enforced: that environment variable is currently empty, and no recurring job (cron) runs the script, so there is currently no actual automatic deletion of old files — real retention today is indefinite until a staff member acts manually.
A staff member can also manually delete a single file from within a given request's viewer at any time; on deletion, the file is actually removed from disk, while a record that a file existed and was deleted (the deletion date) is kept for internal audit purposes only — not the file's content.
14. Destruction method
Deleting an attached file (whether done manually or, later, by the retention script once enabled): the file is actually removed from the server's disk — from the quarantine directory if it was a quarantined infected file, or from the normal uploads directory otherwise (no trash bin or temporary copy remains) — and its database row is marked "deleted" with the deletion date, while limited metadata (the file's original name, the deletion date, and who/what performed the deletion) is retained for audit purposes only.
Deleting an entire request at your request: handled manually by internal staff, based on you contacting us through the published email address above, since no self-service tool on the site currently lets you delete your own request directly.
15. Security controls
The security controls actually in place on this site today:
- Triple validation of every uploaded file: extension, actual MIME type, and content signature (magic bytes).
- Files stored under random, unguessable names with owner-only access permissions, outside any executable or directly publicly served path.
- Real, active malware scanning (ClamAV) on every file at upload time, with infected files quarantined (owner-only access, kept as evidence, not auto-deleted), and any file blocked from download unless its recorded scan result is actually "clean" — not just infected files, but also any file whose scan did not complete.
- A total-storage quota that prevents the disk from being filled by a flood of fake submissions.
- A per-IP rate limit on every form within a 10-minute window, to prevent automated abuse.
- Server-level rejection of any request originating from outside the site itself (cross-origin).
- The internal lead viewer is protected by Basic Auth that fails closed if unconfigured.
- A permanent audit log of file downloads, file deletions, and request handling actions, including blocked download attempts for a file that hasn't scanned clean yet.
16. Your rights over your data
As the person the data belongs to, you have the following rights over data you submitted through this site's forms:
- Access: knowing what data is held about you in your request.
- Correction: requesting correction of any inaccurate data you entered.
- Deletion: requesting your request and its attached files be deleted.
- Objection: objecting to any use of your data for a purpose other than the one you submitted it for, including any marketing use.
- Withdrawing consent: withdrawing your consent to the processing of your data at any time, without affecting the lawfulness of processing carried out before the withdrawal.
How to actually exercise these rights
There is no self-service tool on the site (no account, no public dashboard) that lets you exercise any of these rights directly yourself. The only real way to do so today is to contact us directly through the email address published on this page (see the top of this page), including your reference number if you have it, and our team will carry out your request manually.
17. Filing a complaint
If you have an objection or complaint about how we handle your data, we ask that you contact us first through the email address published at the top of this page, so we can understand and address it directly.
If the matter is not resolved to your satisfaction, you have the right to file a complaint with the Saudi Data & Artificial Intelligence Authority (SDAIA), as the competent authority for enforcing the Personal Data Protection Law issued by Royal Decree No. M/19 and its Implementing Regulations.
Effective date and revision history
Current effective date: 2026-08-31
| Version | Date | Summary of change |
|---|---|---|
| v1 | 2026-08-31 | First full Privacy Policy, replacing the initial short draft. Accurately describes the real data-collection model across all four forms, real ClamAV scanning of uploaded files, hosting in Helsinki (Finland), the current absence of offsite backup, and that a file-retention mechanism exists technically but is not yet actively enforced. Still pending formal legal review. |