Skip to content

Loading…

HRMS security and data protection: HR data kept isolated, encrypted and audited.

Tenant isolation enforced by the database itself, encryption on bank and government-ID fields, and a full audit trail behind every sensitive action.

Security settings in DenwaysHR: password change, two-factor sign-in and the session and access policy

Every layer hardened, on every plan

  • Row-Level Security
  • HTTP-Only Sessions
  • CSRF Protection
  • Rate Limiting
  • Encryption at Rest
  • Signed Media URLs
  • Upload Scanning
  • Audit Logging
  • Cloudflare WAF
  • Intrusion Detection
  • Role-Based Access
  • Encrypted Backups

Tenant isolation the database enforces itself

One organization can never reach another's records, and that guarantee does not depend on the application getting every query right.

  • Multi-tenant by design, scoped and isolated at the database level
  • PostgreSQL Row-Level Security on every tenant-owned table
  • Organization IDs sent from a browser are never trusted
  • Group-based access so managers only see their own reporting line

Access checked twice, on every request

Authentication and authorization are enforced independently at the API route and again in the business logic, so a single missed check is never the whole story.

  • HTTP-only, secure session cookies that page JavaScript cannot read
  • Role-based access control with custom roles and permission groups
  • CSRF protection on every cookie-authenticated request
  • Rate limiting on login, password reset and invitation endpoints
Session and access policy settings: maximum session length, idle timeout, re-asking for a password on sensitive actions, two-factor sign-in and an IP allowlist

Sensitive fields encrypted, not just gated

Bank accounts, Emirates IDs and payroll records are the data an HR platform exists to hold. They are protected in the database, not only behind a permission check.

  • Encryption at rest for bank details, government IDs and financial fields
  • Signed, time-limited URLs for selfies, screenshots and documents
  • Antivirus scanning on every uploaded receipt, document and attachment
  • Full audit logging with actor, target and timestamp

Infrastructure hardened, watched and backed up

The origin server accepts no direct public traffic at all. Everything reaching DenwaysHR has already passed an edge network built to absorb attacks.

  • Cloudflare-fronted production with managed WAF, DDoS and bot mitigation
  • CrowdSec intrusion detection feeding IP reputation back to the edge
  • TLS everywhere, modern cipher suites and HSTS
  • Encrypted automated backups with periodic restore testing

Four attempts. Four refusals.

The clearest way to describe a control is to watch it stop something. Each of these fails for a different reason, at a different layer of the platform.

Attempt 1 of 4

Signed in as an admin of one company, asking for another company's employees

psql ›

running…

What your team types. What the database keeps.

The fields that would do real damage in the wrong hands are encrypted in the database itself, not merely placed behind a permission check. Switch the view to see one employee record as it is stored.

employees / 6b21

in the browser

Full name
Aisha Rahman
Readable to her HR team, and to nobody outside the organization.
Job title
Payroll Specialist
Directory data. Access control alone is the right level of protection.
Emirates ID
784-1991-2847361-3
Government identifier. Encrypted at rest.
IBAN
AE07 0331 2345 6789 0123
Payment destination for every payroll run. Encrypted at rest.
Basic salary
AED 18,500.00
Compensation data. Encrypted at rest.
Passport number
K8412907
Government identifier. Encrypted at rest.
Check-in selfie
checkin-2026-04-12.jpg
Served only through a signed link that expires. Never a guessable path.

Encryption sits on top of access control, never instead of it. Uploaded documents and receipts are scanned by an antivirus engine before they are trusted.

One request. Three lines of defence.

Every call to DenwaysHR passes the edge, the application and the database. Each layer enforces its own controls without relying on the one above it.

Cloudflare

The edge

  • Managed WAF & bot mitigation
  • DDoS protection on every request
  • TLS everywhere, with HSTS
Runtime

The application

  • HTTP-only, secure session cookies
  • CSRF checks on every write
  • Role checks at route & logic layer
PostgreSQL

The database

  • Row-Level Security per tenant
  • Encrypted PII & bank fields
  • Encrypted, automated backups

Above all three, sensitive actions are written to an audit log with actor, target and timestamp: role changes, salary changes, payroll disbursement and administrative impersonation.

The full list

What does platform security cover?

39 features across 7 parts of the product, each one built into the application. Where one depends on a plan, a setting or a release, the note under its module says so.

Sign-in and sessions

Every workspace has its own front door, and a session issued for one is worthless at another.

Own sign-in page
Workspace sign-in works only at that workspace's address. Anywhere else, the request is refused without revealing whether the account exists.
Password rule
At least 12 characters with upper and lower case, a number and a symbol, checked against lists of breached passwords.
Attempt limits
Five tries a minute per email and address, with wider limits per network and per account behind that.
Reset and verify
A reset link valid for an hour and an email verification link valid for a day. Neither response reveals whether an address has an account.
Leavers are cut off
Someone who has left is refused at sign-in and on every request after it.
Remember me
Twelve hours by default, seven days when ticked, unless your own policy is stricter.

Single sign-on

Sign in through Microsoft Entra ID, Okta or Google Workspace over OpenID Connect.

Any OIDC provider
Enter the issuer, client ID and secret. The issuer is checked when you save, and the secret is stored encrypted and never shown again.
Allowed domains
Restrict sign-in to up to twenty email domains.
Create accounts on first sign-in
Off, as employees, or as managers. It never creates an admin, and it stops when you run out of seats.
Require SSO
Turn off passwords for everyone. It can only be switched on after one successful SSO sign-in, so you cannot lock yourself out.
Owner keeps a key
The workspace owner always keeps password sign-in as the fallback.

Session and access policy

Four controls an admin sets for the whole organization, each enforced on every request.

Maximum session length
8 hours, 12 hours, 24 hours or 7 days.
Idle timeout
15 minutes, 30 minutes, 1 hour or 4 hours.
IP allowlist
Up to fifty addresses or ranges, IPv4 and IPv6. The page shows your current address and refuses a list that would lock you out.
Password again for sensitive actions
After 15 minutes, 30 minutes or an hour. Covers approving and disbursing payroll, changing approval rules, SSO, provisioning tokens and the policy itself.
Logged
Every change to the policy is written to the audit log.

Roles and permissions

Three roles to start with, and as many of your own as the organization needs.

Built-in roles
Admin, manager and employee, ranked so that nobody can grant a role above their own.
Custom roles
A name, a description, a rank and a permission checklist. A custom role can sit anywhere between the built-in ones.
Permission catalogue
View and manage rights across employees, departments, attendance, the selfie map, reports, monitoring, screenshots, settings, geofences, roles, leave, overtime, projects, tasks, chat, notifications, the audit log and assets.
See everyone, or only your line
Organization-wide visibility is its own permission. Without it, a manager sees their departments and teams.
Payroll is granted per person
Payroll access is a switch on the individual, never a box ticked on a role.
Role assignment
A searchable list of everyone with a role dropdown, and counts of admins, managers, employees and custom roles.
Owner protection
Only the workspace owner can change the owner's role.

Audit log

Who did what, to whom, from where.

What is recorded
User and role changes, sign-ins, SSO and provisioning changes, security policy, API tokens, data exports and erasures, settings, attendance, leave, contracts, probation, letters, discipline, approval rules, visas and more.
Each entry
The action, who did it, what it was done to, the details, the network address and the browser.
Filters
By action, date range, person and target type.
Payroll has its own trail
Every lock, unlock, approval, bank file and disbursement is on the run itself.
Support visits are logged
When our staff enter a workspace with your consent, that is on the record too.

Privacy requests

The two things a data-protection law lets an employee ask for: a copy, and to be forgotten.

Export
One file with the person's account, profile, work information, IDs, bank accounts, documents, leave, resignations, attendance, letters and policy acknowledgements.
Erase
Type the employee's email to confirm. Profile, IDs and bank accounts are deleted, the account is renamed and anonymised, and every session ends.
History stays intact
Erasure anonymises instead of deleting rows, so past payroll and the audit trail still add up.
A log of both
Every export and erasure with who asked for it.

Data protection

The controls underneath, which you never see unless something tries to get past them.

Tenant isolation, twice
Every request is scoped to the signed-in organization in the application, and PostgreSQL row-level security enforces the same boundary in the database.
Field-level encryption
Emirates ID, labour card and MOHRE codes, government ID numbers, bank account numbers and IBANs, insurance policy numbers, nominee IDs and integration secrets are stored encrypted.
Signed links for private media
Selfies and screenshots have no public address. Links expire after 30 minutes.
Upload checks
A file's type is read from its bytes, not from what the browser claims, and files are served back from a short allowlist.
Rate limits
More than forty named limits, from sign-in and password reset to careers applications and exports.
Security headers
A restrictive content security policy, frame denial, no-sniff and HSTS for a year including subdomains.
Deleting an organization
Owner only, behind the password, by typing the organization's name. Never possible with an API token.

Questions

Security questions, answered.

How is one customer's data kept separate from another's?

DenwaysHR is multi-tenant by design, and each organization's data is isolated at the database level. The app never trusts an organization ID sent by a browser to decide whose data comes back. Underneath the app's own access checks, PostgreSQL Row-Level Security enforces the same boundary as a second, separate layer.

What data is encrypted, and where?

The most sensitive data is encrypted at rest in the database: bank details, government ID numbers such as Emirates IDs, and other personal and financial fields. This adds to access control and does not replace it, so a field stays protected outside the normal query path. All data in transit is encrypted with modern cipher suites and HSTS.

How are logins and sessions protected?

Session tokens sit in HTTP-only, secure cookies, so page JavaScript can never read them. Every cookie-authenticated request carries CSRF protection. Login, password reset and invitation endpoints are rate limited to slow credential stuffing and brute-force attempts. Each organization can set its own password policy.

Who inside an organization can see what?

Access depends on role: Super Admin, Admin, Manager or Employee. Larger organizations can add custom roles and permission groups. The rules are enforced separately at the API route and in the business logic. With group-based access, a manager sees only their own reporting line and a branch manager only their branch.

How are uploaded files and attendance selfies handled?

Sensitive files are never served from a guessable or permanently public link. Attendance selfies, monitoring screenshots and uploaded documents are delivered through signed links that expire. An antivirus engine scans every uploaded receipt, document and attachment before it is trusted.

What protects the platform from attacks and downtime?

Production sits behind Cloudflare, and the origin accepts no direct public inbound traffic. So every customer gets DDoS protection, managed firewall rules and bot filtering. CrowdSec intrusion detection runs on the host and in the application, and sends real-time IP blocks back to the edge. Servers use least-privilege service accounts, restricted firewall rules and automatic security patches. Administrative and SSH access sits behind a separate identity gate.

How do you know a release has not broken any of this?

Automated tests covering sign-in, tenant isolation, payroll, and role and permission logic run before every release. Production has error and uptime monitoring. Backups are automated and encrypted, and restores are tested periodically.

Keep reading

The documents behind it

Bring your whole workforce onto one platform.

See how DenwaysHR handles HR, attendance and leave across the GCC, and payroll with the WPS file in the UAE.

Start free trialBook a demo