docs

Security

Security practices for deploying and operating ODE (Synkronus, Formulus, and related components).

:::info Compliance ODE is self-hosted research infrastructure. Regulatory compliance (IRB, data classification, BAAs, audit programs) is the host organization’s responsibility. This page describes technical controls ODE provides and what operators must add. ODE does not claim HIPAA, SOC 2, or similar certifications. :::

For a one-page infrastructure overview aimed at IT departments, see Server Architecture for IT.

Supported versions

Security updates are provided for the latest release and the immediately preceding major version. Current ODE release: v1.1.1.

Component Supported
Synkronus Latest release and previous major version
Formulus Latest release and previous major version
Synkronus CLI Latest release and previous major version

Keep server and mobile clients on compatible versions. See Installing Formulus.

Reporting a vulnerability

Do not report security vulnerabilities through public GitHub issues.

Full disclosure policy and PGP key: SECURITY.md on GitHub.

Encryption and data protection

In transit

At rest (server)

On field devices

Data Storage
Login credentials iOS Keychain / Android Keystore
Observations SQLite (WatermelonDB) in app private sandbox
Photos / attachments App-private directory in the sandbox
Android backup Disabled (allowBackup="false")

Recommend device passcode or biometric lock and MDM remote wipe for lost devices via institutional policy. Offline synced data remains on the device until wiped.

What ODE does not provide

Authentication and access control

Deployment security

Container images

Network

# Example: allow only web ports on the host
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Database

Secrets

Never commit secrets to version control. Required secrets:

Variable Purpose
JWT_SECRET JWT signing
DB_CONNECTION PostgreSQL (includes password)
ADMIN_PASSWORD Initial admin (change after first login)

Use your platform’s secret manager in production.

File uploads

Portal

The Synkronus Portal (admin UI) is embedded in the Synkronus binary at /portal. Protect it with TLS, strong passwords, and network ACLs where possible.

Mobile app (Formulus)

Install paths: Obtainium (recommended) or F-Droid.

Logging and monitoring

Deployment checklist

Before production:

Security updates

Severity Target response
Critical Within 7 days when possible
High Within 30 days
Medium Within 90 days

Subscribe to GitHub Security Advisories for the ODE repository.