Skip to main content

Morphee Data Protection Impact Assessment (DPIA)

DRAFT — Requires legal review and DPO sign-off before finalization.

This DPIA was prepared pursuant to GDPR Article 35. It must be reviewed by qualified legal counsel and the designated DPO.

Last updated: 2026-02-21


1. Overview

FieldValue
System nameMorphee
Version assessedV1.3 (Multimodal Interaction)
Assessment date2026-02-21
Assessor[To be completed]
DPO reviewPending — DPO contact: Sébastien Mathieu (privacy@morphee.app)
Next review date[6 months from finalization]

2. Why a DPIA Is Required (Art. 35(3))

The following processing activities trigger a mandatory DPIA:

  1. Systematic evaluation of personal aspects (Art. 35(3)(a)): AI automatically extracts facts, preferences, and events from user conversations (memory extraction / profiling).
  2. Processing of children's data (Art. 35(3)(b) via WP29 Guidelines): The classroom persona explicitly targets educational use with minors.
  3. Large-scale processing of conversation data: All user messages are stored and processed by AI for response generation and memory extraction.
  4. New technologies: Use of large language models (Anthropic Claude) and vector embeddings for semantic memory search.

3. Description of Processing

3.1 Purpose

Morphee provides a conversational AI assistant for groups (families, classrooms, teams). The AI:

  • Responds to user messages using a cloud LLM (Anthropic Claude)
  • Automatically extracts and stores facts, preferences, and events from conversations
  • Uses stored memories to provide contextual responses (RAG pipeline)
  • Executes tool calls (tasks, calendar, email) on behalf of users

3.2 Data Categories Processed

CategoryExamplesSpecial Category (Art. 9)?
Identity dataName, email, ageNo
Conversation contentChat messages, AI responsesPotentially — may contain health, religious, political data
AI-extracted memoriesFacts, preferences, eventsPotentially — depends on conversation content
Behavioral dataConversation patterns, usage timesNo
Children's dataNames, ages, school contextArt. 8 applies
Integration dataCalendar events, emailsNo (but may contain sensitive content)
Face biometric data128-dim face embeddings (MobileFaceNet)Yes — Art. 9(1) biometric data for identification
Voice biometric data192-dim voice embeddings (d-vector CNN)Yes — Art. 9(1) biometric data for identification
Video framesExtracted frames from user videoNo (but may contain biometric-identifiable faces)
Screen capturesDesktop screen screenshotsNo (but may contain sensitive content)

3.3 Data Subjects

  • Adult group members (parents, teachers, managers, employees)
  • Children (in classroom/family contexts) — Art. 8 applies
  • Invited members (email collected before they join)

3.4 Data Flow

User Input → Backend API → Anthropic Claude API (US)
→ PostgreSQL (conversations, messages)
→ Memory Extraction (LLM) → pgvector (embeddings)
→ Git Store (Markdown memories)
→ RAG Pipeline → System Prompt → Anthropic API

3.5 Recipients

RecipientDataPurposeTransfer Basis
Anthropic (US)Conversations, namesAI response generation[DPF/SCCs — pending]
Supabase (varies)Email, password hashAuthentication[DPF/SCCs — pending]
Google (US)OAuth tokens, calendar/emailIntegrations (user-initiated)Google DPA, SCCs
Apple APNs (US)Device token, notification contentPush notificationsApple DPA
Google FCM (US)Device token, notification contentPush notificationsGoogle DPA

4. Necessity and Proportionality Assessment

4.1 Necessity (Art. 35(7)(b))

ProcessingNecessary?Justification
Sending messages to AnthropicYesCore functionality — AI cannot respond without processing the message
Sending user name in system promptPartiallyImproves personalization; could be anonymized
Memory extractionNo — optionalEnhances experience but not required; user can opt out
Storing full conversation historyYesRequired for multi-turn conversations
RAG memory injectionNo — optionalEnhances context but not required for basic chat

4.2 Proportionality

MeasureStatus
Data minimizationPartially implemented — only necessary fields sent to LLM, but full conversation history included
Purpose limitationImplemented — data used only for stated purposes
Storage limitationNot implemented — no retention periods enforced
Consent for optional processingImplemented — llm_data_sharing and memory_extraction consent types
User controlImplemented — opt-out for memory extraction, account deletion, data export

4.3 Less Intrusive Alternatives Considered

AlternativeFeasibilityDecision
Local LLM only (no cloud)Feasible (Tauri + candle)Planned for Phase 3d M3 — eliminates cloud data sharing
Anonymize names in promptsFeasibleTo be implemented — replace real names with pseudonyms
Ephemeral conversations (no storage)FeasiblePossible opt-in mode — trade-off with multi-turn capability
On-device embeddings onlyImplementedDefault is now fastembed (local ONNX)

5. Risk Assessment

5.1 Risk Matrix

RiskLikelihoodSeverityOverallMitigation
Conversation data breachMediumHighHighEncryption at rest (planned), access controls, group isolation
Unauthorized memory extractionLowMediumMediumConsent mechanism, opt-out, extraction only from own conversations
Children's data misuseLowVery HighHighAge verification (planned), parental consent (planned), data minimization
Cross-border transfer to USMediumMediumMediumDPF verification, SCCs, local LLM alternative
AI hallucination storing false memoriesMediumLowMediumMemory correction (Art. 16), user review, PROPOSE access for corrections
Re-identification from embeddingsLowMediumLowEmbeddings are not reversible to original text; access controls
Insider access to conversationsLowHighMediumGroup-based isolation, authentication, audit logging (planned)
LLM provider data retentionLowMediumMediumAnthropic API ToS prohibits training on API data; DPA pending
Biometric re-identification from embeddingsVery LowHighLow128-dim face / 192-dim voice embeddings are not reversible to original image/audio; stored in local vault only (never transmitted); OS-level access control
Child biometric data misuseLowVery HighMediumArt. 9 + Art. 8 compound obligation; mitigated by: explicit parental consent (Art. 9(2)(a)), local-only storage, parent-controlled enrollment, deletion rights
Biometric template persistence after deletionLowHighMediumVault templates survive DB cascade; mitigated by: event-driven cleanup (C-RIGHTS-009), frontend vault deletion on account/child delete

5.2 Residual Risks

After mitigations, the following residual risks remain:

  1. Cloud LLM dependency: Until local LLM is available, all conversations transit through Anthropic. Mitigated by consent requirement and Anthropic's API data handling policies.
  2. No encryption at rest: RESOLVED (C-STORE-002, Feb 2026) — Personal data in PostgreSQL (chat messages, memory vectors) and Git files is now encrypted at the application level using Fernet symmetric encryption. Data uses ENC: prefix for identification.
  3. Children's data without age gate: RESOLVED (C-CONSENT-004, Feb 2026) — Age verification with regional thresholds (EU 16, US 13), parental consent workflow with email verification, and minor login blocking are implemented.

6. Measures to Address Risks

6.1 Implemented

  • Consent mechanism for LLM data sharing and memory extraction
  • User opt-out for memory extraction
  • Right to erasure (cascade delete across all tables)
  • Right to data portability (JSON export)
  • Right to rectification (memory correction via AI tool)
  • Group-based data isolation
  • Default local embedding provider (fastembed)
  • PII removed from application logs
  • WebSocket first-message auth (JWT not in URL)
  • Push token stale cleanup
  • Expired invite cleanup
  • Encryption at rest (Fernet) for chat messages, memory vectors, and Git files (C-STORE-002)
  • Age verification with regional thresholds (EU 16, US 13) (C-CONSENT-004)
  • Parental consent workflow with email verification for minors (C-CONSENT-004)
  • Minor login blocking until parental consent is verified (C-CONSENT-004)
  • Biometric Art. 9(2)(a) explicit consent enforcement (C-CONSENT-011) — separate consent types for face and voice enrollment
  • Biometric templates stored in local vault only — never transmitted to backend or third parties
  • Biometric template vault cleanup on account/child deletion (C-RIGHTS-009) — event-driven cleanup
  • Consent audit trail preserved after account deletion (H-RIGHTS-010) — anonymized consent_audit table
  • Separate consent for visual analysis vs. text chat (M-CONSENT-012) — video_analysis and screen_capture consent types

6.2 Planned

  • Encryption at rest for personal data (C-STORE-002) — Implemented Feb 2026
  • Age verification and parental consent for minors (C-CONSENT-004) — Implemented Feb 2026
  • Local LLM option to eliminate cloud data sharing (Phase 3d M3)
  • Name anonymization in LLM system prompts
  • Security event monitoring and alerting
  • Data retention automation (cleanup jobs per category)
  • HttpOnly cookies for token storage
  • Content Security Policy headers
  • DPAs with Anthropic and Supabase

7. DPO Consultation (Art. 35(2))

QuestionResponse
Has the DPO been consulted?Data protection contact designated: Sébastien Mathieu (privacy@morphee.app)
DPO recommendationPending formal review
Were changes made based on DPO input?Pending formal review

8. Supervisory Authority Consultation (Art. 36)

Prior consultation with the supervisory authority is required if residual risks cannot be sufficiently mitigated. Based on this assessment:

  • High residual risk: Children's data processing without automated age gate
  • Recommendation: Implement age verification before production launch, or consult SA

9. Review Schedule

This DPIA must be reviewed:

  • Before any new processing activity involving personal data
  • When the risk profile changes (new integrations, new data categories)
  • At least annually
  • After any data breach

This DPIA was drafted on 2026-02-13 and requires legal review and DPO sign-off before finalization.