Security

Security is an invariant,
not an afterthought

TAGTRAZE handles passenger PII for thousands of people per sailing. Our security architecture reflects that responsibility.

Encryption

AES-256 encryption

All passenger personally identifiable information (PII) — including name and contact details — is encrypted at rest using pgcrypto with AES-256. Encryption and decryption occur inside the database using organisation-scoped keys. Application code never handles plaintext PII.

  • pgcrypto AES-256 for all PII fields
  • Organisation-scoped encryption keys
  • No PII on physical QR tags — UUID only
  • API keys stored as SHA-256 hashes only
Data Privacy

GDPR Article 28 compliance

The cruise line acts as Data Controller; TAGTRAZE acts as Data Processor under Article 28 of GDPR. A Data Processing Agreement (DPA) is included in all plans. All data is hosted in EU data centres — no transatlantic transfers of passenger PII.

  • Data Processing Agreement in every plan
  • EU-only data hosting — no transatlantic transfers
  • Passenger data deletion on request (right to erasure)
  • Data retention policies enforced at database level
Data Isolation

Row-level security

Every table in the TAGTRAZE database has row-level security (RLS) enabled — with no exceptions. Even if a query is incorrectly constructed, the database enforces tenant isolation. No cruise line can ever read another cruise line's data.

  • RLS on every table — no exceptions
  • Organisation and cruise line ID checked on every query
  • Platform admin access via separate JWT claim
  • Support sessions require explicit consent flag
Accountability

Full audit trail

Every action taken in TAGTRAZE — every scan, login, configuration change, and support access — is recorded in an insert-only audit_logs table. Records can never be modified or deleted. The audit trail is exportable for compliance and regulatory purposes.

  • Insert-only audit_logs — tamper-evident
  • Every scan attributed to an individual crew member
  • Support access logged with org_consent timestamp
  • Exportable audit reports for port authority requirements
Identity

Access control and authentication

No shared crew accounts are permitted. Every crew member has an individual login with a role assigned (Terminal, Security, Deck, Supervisor, Admin). Roles are enforced at both application and database level through a granular RBAC system with 31 permissions.

  • Individual logins only — no shared accounts
  • RBAC with 8 system roles and 31 permissions
  • Sensitive data stored in expo-secure-store on device
  • Session tokens scoped per device and invalidated on logout
Maritime

IMO guidelines compliant

TAGTRAZE is designed with maritime operational requirements in mind, including IMO MSC/Circ.1356 guidance on passenger management and port authority reconciliation requirements for embarkation manifest accuracy.

  • Manifest reconciliation before departure
  • Bag count accuracy reportable to port authority
  • Offline operation for poor-connectivity environments
  • Automated daily security scans and incident escalation
Data Roles

GDPR data responsibilities

Cruise line — Data Controller

Determines the purpose and means of processing passenger data. Responsible for obtaining valid consent and handling data subject requests. The cruise line owns the data.

TAGTRAZE — Data Processor

Processes passenger data only on the cruise line's documented instructions. Does not use passenger data for any other purpose. Bound by Article 28 DPA obligations.

Request our security documentation

We provide a full security pack including DPA, GDPR documentation, and data flow diagrams to every prospective customer.

Get Security Pack