| 1 |
User authentication & session management |
email, hashed password, JWT, session tokens |
Platform users |
Art. 6(1)(b) — contract performance |
Session lifetime; refresh tokens 30 days; JWT 1h |
Supabase (EU) |
EU only |
No |
Token stored in Supabase Auth; no plaintext password |
| 2 |
Membership & RBAC |
userId, tenantId, role, validFrom, validUntil |
Platform users |
Art. 6(1)(b) — contract performance |
Duration of membership + 90 days post-termination |
Supabase Postgres |
EU only |
No |
Used to enforce data isolation |
| 3 |
Audit log |
actorId, tenantId, action, resource, timestamp |
Platform users |
Art. 6(1)(c) — legal obligation (traceability) / Art. 6(1)(f) — legitimate interest |
2 years; review at 1 year |
Supabase Postgres |
EU only |
No |
Contains userId permanently — erasure procedure required |
| 4 |
Outbox events |
tenantId, actorId, eventType, payload |
Platform users (indirect) |
Art. 6(1)(b) — contract performance |
30 days post-processing |
Supabase Postgres |
EU only |
No |
Processed events deleted by cleanup cron |
| 5 |
Goals & strategic data |
tenantId, ownerUserId, horizon, metric, target |
Platform users |
Art. 6(1)(b) — contract performance |
Duration of account + 30 days post-deletion |
Supabase Postgres |
EU only |
No |
Soft delete; hard delete on account closure |
| 6 |
Decisions |
tenantId, ownerUserId, title, body, tags |
Platform users |
Art. 6(1)(b) — contract performance |
Duration of account + 30 days |
Supabase Postgres |
EU only |
No |
Private records; no third-party sharing |
| 7 |
Financial transactions |
tenantId, organizationId, amountMinorUnits, currency, date |
Platform users / Organizations |
Art. 6(1)(c) — legal obligation (accounting) |
10 years (DE HGB § 257 / RO L 82/1991) |
Supabase Postgres |
EU only |
No |
amountMinorUnits stored as integer string; no float drift |
| 8 |
Observations & opportunities |
tenantId, ownerUserId, content |
Platform users |
Art. 6(1)(b) — contract performance |
Duration of account + 30 days |
Supabase Postgres |
EU only |
No |
Append-only for observations |
| 9 |
AI gateway requests |
tenantId, actorId, prompt fragments, model response |
Platform users |
Art. 6(1)(b) — contract performance / Art. 6(1)(f) — legitimate interest (service quality) |
90 days |
Supabase Postgres; AI provider (see below) |
See below |
Yes — automated decision |
Prompts may contain personal data; AI provider sub-processor agreement required |
| 10 |
Email notifications |
email, name, notification content |
Platform users |
Art. 6(1)(b) — contract performance |
Until account deletion |
SMTP provider (TBD) |
EU only preferred |
No |
Provider DPA required |
| 11 |
Application logs (pino) |
IP address (indirect), requestId, correlationId |
Platform users |
Art. 6(1)(f) — legitimate interest (security, debugging) |
30 days |
Host server (Hetzner, DE) |
EU only |
No |
IP addresses not logged at application level — confirm at infra level |