PII Policy
PII Policy
Last updated: January 2026
This document describes what personally identifiable information (PII) Uniph.ai stores, where it lives, and optional masking guidance for logs and trace.
1. PII We Store
| Category | Fields | Location | Purpose |
|----------|--------|----------|---------|
| User identity | email, name, avatarUrl, provider, providerAccountId | users table | Authentication, profile, session resolution |
| User preferences | preferences (JSON: timezone, defaultModel, theme) | users table | App personalization |
| Goals & tasks | name, description, title | goals, tasks tables | User-created content |
| Memory | content, key, tags | memory_entries table | Long-term context; may include user preferences, facts, conversation snippets |
| Intents & outcomes | rawInput, outcome titles, descriptions | intents, outcomes tables | User goals and generated results |
| Suggestions | Suggestion titles, interactions | user_suggestions table | Recommendation history |
| Integrations | config (may include OAuth tokens, API keys) | integrations table | Encrypted or hashed where applicable |
| Agent identities | emailAlias, scopes, tokens | agent_identities table | Encrypted; used for provider OAuth |
| Audit / ledger | Action types, decisions, metadata | decision_ledger, agent_identity_audits | Operational audit; may reference user IDs |
| Connection attempts | Success/failure, service type, latency | connection_attempts | Friction metrics |
2. Retention
- Memory: Configurable per kind via
MEMORY_RETENTION_HOURS_JSON(e.g.conversation720h,note2880h). Enforced by retention job. - Audit / ledger: No automatic retention by default; consider adding configurable TTL for compliance.
- User data: Kept until account delete (see Export & Delete below).
3. Optional Masking in Logs and Trace
To reduce PII exposure in logs and trace:
- Logs: Avoid logging
email,name, orcontentin plain text. UseuserIdor hashed identifiers when debugging. - Trace:
GET /api/execution/tracereturns jobs, verifications, and decision ledger. Metadata may contain user IDs; consider redactingemailandcontentin trace responses if you expose them to third parties. - Error responses: API errors return
{ "error": "..." }; avoid including user PII in error messages.
4. Export and Delete
- Export:
GET /api/users/me/export(auth required) returns goals, tasks, and memory in JSON. See API.md. - Delete:
POST /api/users/me/delete(auth required, body{ "confirm": "DELETE_ACCOUNT" }) deletes user and cascades all data. See API.md. Optional: setUSER_DELETE_CONFIRM_TOKENenv to customize the token.