towerops/policies/DATA_HANDLING.md
Graham McIntie 26c7b0b993 Hide RF Links UI elements from network map (TOW-44) (#46)
- Commented out 'View RF Links' button in network map node detail panel
- Commented out RF Link health legend (Good/Degraded/Critical) from map legend
- Backend code (topology.ex) left intact per instructions
- No RF tab found on device show page (nothing to hide there)
- All tests pass, compiles clean with --warnings-as-errors

Reviewed-on: graham/towerops-web#46
2026-03-16 15:19:03 -05:00

2 KiB

Data Handling & Retention Policy

Effective: 2026-03-15 Owner: Engineering & Operations

Purpose

Define how TowerOps stores, processes, backs up, and disposes of customer data to ensure reliability, compliance, and trust.

Encryption

At Rest

  • Database: PostgreSQL with encrypted tablespaces or full-disk encryption.
  • Secrets (API keys, SNMP communities, integration tokens): encrypted using application-level encryption (Cloak or equivalent) before storage.
  • Backups: encrypted before writing to storage.

In Transit

  • All external connections over TLS 1.2+.
  • Internal service-to-service: TLS or encrypted tunnel (Cloudflare Tunnel, WireGuard).
  • SNMP v3 preferred where supported; v1/v2c community strings treated as secrets.

Backups

  • Database: daily automated backups with point-in-time recovery.
  • Backup retention: 30 days.
  • Backup restoration tested quarterly.
  • Backups stored in a separate location from primary data.

Data Processing

  • SNMP polling data processed and stored within the customer's org scope.
  • No cross-org data aggregation without explicit anonymization.
  • Metrics downsampled after retention window (raw → hourly → daily).
  • Background jobs operate within org context; job payloads contain org_id.

Data Disposal

  • Deleted records soft-deleted for 30-day grace period, then hard-purged.
  • Purge jobs run nightly to remove expired soft-deleted records.
  • Customer account deletion triggers full data purge after grace period.
  • Credentials from revoked integrations deleted immediately (no grace period).

Access Controls

  • Role-based access: owner, admin, member, viewer.
  • API tokens scoped to organization; cannot access other orgs.
  • Token rotation supported; old tokens invalidated on rotation.
  • Session timeout: 24 hours idle, 7 days absolute.

Audit Trail

  • All data mutations logged: who (user/agent), what (action), when (timestamp), context (org, resource).
  • Audit logs immutable — append-only, no deletion.
  • Retained for 1 year minimum.