Skip to content

LGPD

Neemias was designed with data protection built into the architecture. Below is the alignment with LGPD principles.

Personal Data Classification

FieldData typeLGPD ClassificationPurposeRetention
displayNameFull namePersonal dataStudent identificationWhile student is active
photoRefPhotoSensitive personal data (biometric)Visual identificationWhile student is active
guardianName / guardianNameAltGuardian namePersonal dataEmergency contactWhile student is active
birthDateDate of birthPersonal dataAge calculation for class placementWhile student is active
phones[].numberPhonePersonal dataEmergency contactWhile student is active
address.* (7 fields)Home addressPersonal dataRegistration and emergencyWhile student is active
allergiesAllergiesSensitive personal data (health)Child safetyWhile student is active
specialNeedsSpecial needsSensitive personal data (health)Pastoral accommodationWhile student is active
imageConsentLGPD consentSensitive personal dataImage use authorizationPermanent (audit)

Non-PII fields: studentId, classId, status, nucleus*, familyMembershipStatus, timestamps.

Image and Voice Use Authorization

Since June 2026, the app offers native support for the Minor Image, Voice, and Data Use Authorization Term, in compliance with:

  • LGPD (Law 13.709/2018): legal basis of guardian consent (Art. 7, I combined with Art. 14, §1)
  • Digital ECA (Law 15.211/2025): protection commitments on digital platforms

Registration flow

  1. Admin/Data Entry opens the add student form
  2. "Image Use Authorization (LGPD)" section displays:
    • Authorization checkbox
    • Guardian CPF and RG fields
    • Name and CPF of two witnesses
    • Upload of signed term (PDF or photo)
  3. Upon saving, an imageConsent record is created in the imageConsents table in IndexedDB with ACTIVE status
  4. The consent ID is linked to the student record (student.imageConsentId)

Revocation

The guardian may revoke authorization at any time via written request to the LGPD contact indicated in the institution's policy. Revocation does not affect processing already regularly performed (Art. 8, §5, LGPD).

Renewal

The term is valid while the minor participates in activities. A new consent may be registered at any time (creates a new record in the table, previous version archived).

Protection Measures

Data Minimization

Only essential fields are stored. The system does not collect unnecessary or excessive data. Soft-delete preserves audit history without exposing active data.

Encryption at Rest

Sensitive data in IndexedDB is encrypted with AES-GCM. The encryption key is derived from the user's password hash via PBKDF2. Fields such as changePayload and justification are stored only as ciphertext.

Access Control

  • RBAC with 4 base roles + custom roles
  • Only ADMIN accesses all student data
  • CHAMADOR sees only name and status for attendance marking
  • Audit: every mutation recorded via events table

Responsibilities (Controller vs Processor)

RoleWho is itLGPD Responsibilities
ControllerChurch / School (institution using the software)Define purposes, obtain consent, respond to data subject requests, notify ANPD in case of incident
ProcessorNeemias software maintainersEnsure technical security of the software, process data according to controller's instructions, maintain operations record

The user institution (church/school) is the controller of the data under Art. 5, VI of LGPD. The software is the tool — responsibility for LGPD compliance lies with the institution operating the system.

Incident Response Flow

StepDescriptionDeadline
1. DetectionIdentification of leak, unauthorized access, or data lossImmediate
2. ContainmentIsolation of affected system, revocation of compromised tokens/passwords24h
3. InvestigationLog analysis (local: IndexedDB, server: Cloudflare D1) to determine scope48h
4. ANPD NotificationCommunication to the National Data Protection Authority72h (Art. 48, LGPD)
5. Data subject notificationCommunication to guardians of affected students72h
6. RemediationVulnerability correction, control improvement7 days

Contact for reporting incidents: per SECURITY_CONTACT_EMAIL configured in the instance.

Data Subject Request Workflow (Art. 18 LGPD)

RightHow to exerciseApp functionality
AccessGuardian requests from institutionExport student data (CSV/JSON) + consent record
CorrectionGuardian requests correction of incorrect dataField editing in admin interface
DeletionGuardian requests removal (right to be forgotten)Soft-delete student + consent revocation
PortabilityGuardian requests data exportCSV/JSON export of all student data
ObjectionGuardian contests processing of specific dataImage consent revocation
Consent revocationGuardian cancels previous authorizationRevocation of imageConsent record

The institution must respond to the request within 15 days (Art. 19, LGPD).

LGPD → GDPR Equivalence

LGPDGDPRDifferences
Art. 5 — Personal dataArt. 4(1) — Personal dataEquivalent
Art. 7 — Legal basesArt. 6 — Lawfulness of processingEquivalent (LGPD has one more basis: credit protection)
Art. 11 — Sensitive dataArt. 9 — Special categoriesEquivalent
Art. 18 — Data subject rightsArt. 15-22 — Data subject rightsVery similar; LGPD includes explicit right of opposition
Art. 41 — DPOArt. 37 — Data Protection OfficerEquivalent
Art. 48 — Incident notificationArt. 33 — Breach notificationDeadlines: 72h (LGPD and GDPR)
Art. 27 — RepresentativeGDPR requires EU representative if controller is outside

Due Diligence Checklist for Deployment

  • [ ] Privacy policy published and accessible to parents/guardians
  • [ ] Image use authorization term filled out and signed
  • [ ] LGPD contact designated and disclosed
  • [ ] Incident response procedure documented
  • [ ] Consent record stored (imageConsents table)
  • [ ] Access audit: who sees student data?
  • [ ] Revocation tested: can parents request deletion?

Infrastructure

  • Traffic: HTTPS required (Cloudflare)
  • Storage: IndexedDB (client-side) + D1 (Cloudflare, US-based servers)
  • Backups: D1 automatic daily backups
  • Logs: No third-party tracking. No tracking cookies.
  • Third-party providers: No student data is shared with third parties for commercial purposes

Source: packages/schemas/src/entities.ts (PII comments), .specs/project/STATE.md, app/src/db/types.ts (ImageConsent), docs/operations/storage-retention.md

Distributed under MIT License.