HomeF-LeavesSecurityPricingAboutContact Start Free Trial

Six Security Pillars

Defence in depth. No single point of failure.

01 / ENCRYPTION

AES-256-GCM Two-Layer Encryption

Every document is encrypted with its own randomly generated 256-bit DEK (Data Encryption Key) using AES-256-GCM authenticated encryption. The DEK is then encrypted with your master KEK (Key Encryption Key). Even with full access to both the database and the file storage, documents cannot be decrypted without the master key in the server's memory.

AES-256-GCM Authenticated Encryption Envelope Encryption
02 / ISOLATION

PostgreSQL Row-Level Security

Tenant data isolation is enforced at the PostgreSQL database engine level — not the application layer. RLS policies fire for every SELECT, INSERT, UPDATE, and DELETE. An application bug, misconfigured query, or SQL injection cannot access another tenant's data. The policy cannot be bypassed by any means available to the application role.

Database-Level Isolation RLS Policies Zero Application Bypass
03 / TRACEABILITY

Dual-Layer Document Watermarking

Every document viewed in F-Leaves receives two simultaneous watermarks. A visible diagonal overlay showing the viewer's email, timestamp, and session ID at 10% opacity. An invisible LSB steganographic watermark encoding the same identity into the least significant bits of pixel data — invisible to the eye, detectable with our decoder tool. Upload any leaked screenshot and identify exactly who viewed it.

Visible Watermark LSB Steganography Instant Leak Detection
04 / AUDIT

Immutable Audit Trail

Every action in F-Leaves is logged to an append-only audit table: who performed it, when, from which IP address, what the outcome was, and the severity level. Audit records cannot be modified or deleted — not even by administrators. The audit trail is exportable to CSV for regulatory submission and is admissible as evidence of document handling procedures.

Append-Only Log IP Address Capture CSV Export for Regulators
05 / AUTHENTICATION

Zero-Trust Access Control

MFA/TOTP enforced per user with 8 single-use backup codes. JWT access tokens expire after 1 hour. Refresh tokens are hashed and stored in Redis with 30-day TTL. Configurable password policy per organisation. Idle session timeout from 1-120 minutes. Rate limiting on all login endpoints. Failed login attempts logged. All sessions visible and revocable by the user.

MFA/TOTP JWT + Redis Sessions Configurable Policy
06 / SOVEREIGNTY

Complete Data Sovereignty

F-Leaves is self-hosted. Your data never touches Gomaiti's servers. No telemetry. No cloud sync. No third-party analytics. Deploy on your own server, your own data centre, or a Nigerian cloud provider. You control the encryption keys. You control the data. You control who has access. Gomaiti has zero access to your platform or your documents.

Self-Hosted No Telemetry Your Keys, Your Data

Encryption Flow

Every document. Every time. No exceptions.

// UPLOAD FLOW
1

Document bytes arrive at document-service

↓
2

Generate random 256-bit DEK via os.urandom(32)

↓
3

Encrypt bytes: AES-256-GCM(plaintext, DEK, nonce)

↓
4

Store ciphertext in MinIO → S3-compatible object storage

↓
5

Encrypt DEK: AES-256-GCM(DEK, MASTER_KEY, nonce)

↓
6

Store encrypted DEK in PostgreSQL. Plaintext DEK discarded.

Why this matters

  • An attacker with MinIO access gets only ciphertext — no DEK, nothing to decrypt
  • An attacker with PostgreSQL access gets only encrypted DEKs — without the master key, they are useless
  • The master key (MASTER_ENCRYPTION_KEY) never touches disk — it lives only in server memory as an environment variable
  • GCM mode provides authenticated encryption — any tampering with stored bytes is detected immediately on decryption
  • Each document has a unique key — compromising one DEK exposes one document, not the entire library
  • Key rotation is possible — re-encrypt all DEKs with a new master key without re-encrypting any documents

The question to ask your current vendor

"If someone obtained a copy of your entire database, could they read our documents?"

For F-Leaves, the answer is no — not without the master key in the server's environment. For most ECMS solutions, the answer is yes.

Security Checklist

What your IT team will ask. Our answers.

Authentication & Access

  • Multi-factor authentication (TOTP) — per user, enforced organisation-wide
  • Configurable password policy — minimum length, uppercase, numbers, special characters
  • Idle session timeout — 1 to 120 minutes, configurable per organisation
  • JWT access tokens with 1-hour expiry
  • Refresh tokens hashed and stored in Redis with 30-day TTL
  • All active sessions visible and revocable by the user
  • LDAP/Active Directory integration for SSO
  • Rate limiting on all authentication endpoints
  • Failed login attempts logged to audit trail

Data & Infrastructure

  • AES-256-GCM encryption at rest — every document, every version
  • TLS 1.3 in transit via Let's Encrypt — auto-renewing
  • Row-Level Security in PostgreSQL — tenant data isolation at DB level
  • Self-hosted deployment — no third-party cloud access to your data
  • HTTPS enforced — HTTP permanently redirects to HTTPS
  • Automated daily encrypted backups with SHA-256 integrity verification
  • Rate limiting on all API endpoints via Traefik middleware
  • Docker container isolation between all services
  • Per-folder RBAC — granular access control down to folder level

Talk to our security team.

Request the full security whitepaper, schedule a technical deep-dive, or ask any question about our architecture.