EverJoyBack to home

Security Policy

EverJoy Security Policy

Effective Date: July 1, 2026
Last Updated: July 2026
Version: 2026-07
Entity: EverJoy Memory LLC d/b/a EverJoy


1. Purpose and Scope

This Security Policy describes EverJoy's information security program for protecting personal information processed through The AI-Powered Student Growth Cloud. It applies to:

This Policy supports representations in the Privacy Policy, District DPA, and Data Retention Policy.


2. Security Governance

2.1 Responsibility

RoleResponsibility
Executive LeadershipSecurity program oversight, resource allocation
Security LeadPolicy maintenance, incident response coordination
EngineeringSecure development, infrastructure security
OperationsMonitoring, access management, vendor oversight

Security contact: security@myeverjoy.com

2.2 Policy Review

This Policy is reviewed at least annually and updated following:

2.3 Risk Assessment

EverJoy conducts periodic risk assessments covering:


3. Data Classification

ClassificationDescriptionExamplesHandling
CriticalHighly sensitive personal dataChild photos, roster DOB, capture artifactsEncrypted, RLS, audit logged, signed URLs
ConfidentialPersonal informationParent email, child names, billingEncrypted, access controlled
InternalBusiness operationsAnalytics aggregates, system logsAccess restricted to personnel
PublicMarketing contentLanding pages, public school directoryNo restrictions

4. Access Controls

4.1 Authentication

4.2 Authorization Model

EverJoy implements role-based access control with row-level security (RLS):

RoleAccess Scope
ParentOwn family data via family_id, owns_student()
Family memberShared content via is_family_member()
Capture PartnerAssigned schools via partner_serves_school()
School adminSchool-scoped data (future admin portal)
Platform adminFull access via is_platform_admin() with audit logging

4.3 Row-Level Security (RLS)

RLS is enabled on all major tables per migration 00008_rls_policies.sql and feature-specific migrations:

4.4 Least Privilege

4.5 Access Reviews


5. Encryption

5.1 Encryption in Transit

5.2 Encryption at Rest

5.3 Key Management


6. Storage Security

6.1 Private Storage Buckets

Memory files and child photos stored in private buckets (migration 00037_private_storage_buckets.sql):

BucketContentsAccess
memoriesUploaded photos, PDFsSigned URL after auth
student-photosChild profile photosSigned URL after auth
capture-artifactsPartner-scanned workSigned URL after auth

6.2 Signed URLs

Files are never publicly accessible. Access requires:

  1. Authenticated user session
  2. Authorization check (owns student, family member, or partner assignment)
  3. Short-lived signed URL generation
ContextTTL
UI display1 hour
AI processing15 minutes

Implementation: yearbox/src/lib/storage/signed-urls.ts

6.3 Storage Access Logging

Storage access is logged via application audit logs when files are accessed through authorized endpoints.


7. Application Security

7.1 Secure Development

7.2 Input Validation

7.3 Rate Limiting

EndpointLimit
Roster activation5 failures per 24 hours per account
API routesPer-route limits (implementation-specific)
Auth attemptsSupabase Auth defaults

7.4 Error Handling

7.5 Beta Mode

Production beta gating via EVERJOY_BETA_MODE limits signup to controlled rollout (yearbox/src/lib/beta/config.ts).


8. Audit Logging

8.1 Audit Log Design

Append-only audit_logs table (migration 00006_audit_logs.sql):

8.2 Logged Events

EventAction
Consent acceptanceconsent_records INSERT
Student creationstudents INSERT
Roster activationActivation attempt
Memory deletionmemories DELETE
School interestschool_interest INSERT
Admin actionsPlatform admin operations

Implementation: yearbox/src/lib/audit/log.ts

8.3 Retention

Audit logs retained for 3 years (1,095 days) per Data Retention Policy.

8.4 Monitoring


9. Infrastructure Security

9.1 Hosting

9.2 Network Security

9.3 Environment Separation

EnvironmentPurposeData
DevelopmentLocal developmentTest/synthetic data
StagingPre-production testingAnonymized data
ProductionLive serviceReal user data

Production credentials never used in development.


10. Third-Party Security

10.1 Subprocessor Requirements

Subprocessors must:

10.2 Subprocessor List

See District DPA Exhibit A for current subprocessors:

10.3 Vendor Review

Subprocessors reviewed:


11. Capture Partner Security

11.1 Partner Certification

Capture Partners must complete:

Training content: yearbox/src/lib/partner-capture/academy/content.ts

11.2 Partner Access Controls

11.3 Capture Authorization

Capture requires:

Implementation: yearbox/src/lib/partner-capture/capture-authorization.ts


12. AI Security

See AI Usage Policy for details. Summary:


13. Incident Response

13.1 Incident Classification

SeverityDescriptionResponse Time
CriticalData breach, system compromiseImmediate
HighUnauthorized access attempt, service outage1 hour
MediumVulnerability discovered, suspicious activity4 hours
LowPolicy violation, minor misconfiguration24 hours

13.2 Response Procedure

  1. Detection — Monitoring, user report, vendor notification
  2. Containment — Isolate affected systems, revoke compromised credentials
  3. Investigation — Determine scope, affected data, root cause
  4. Notification — Notify affected users, districts, regulators per legal requirements (72 hours for District DPA)
  5. Remediation — Fix vulnerability, restore services
  6. Review — Post-incident analysis, policy updates

13.3 Breach Notification

EverJoy will notify:

Notification includes: nature of incident, data affected, steps taken, recommended user actions.

13.4 Incident Contact

Report security incidents to: security@myeverjoy.com


14. Business Continuity

14.1 Backup

14.2 Recovery

14.3 Availability

Target uptime: 99.5% (excluding scheduled maintenance).


15. Personnel Security

15.1 Background Checks

Background checks for personnel with access to production systems or child data, where permitted by law.

15.2 Training

15.3 Confidentiality

All personnel and contractors sign confidentiality agreements covering personal information.

15.4 Offboarding

Upon termination:


16. Compliance

16.1 Regulatory Alignment

Security controls support compliance with:

16.2 Accessibility

Security controls do not impede accessibility. EverJoy commits to WCAG 2.1 AA alignment for user-facing interfaces (see production readiness checklist).


17. User Responsibilities

Users contribute to security by:


18. Policy Updates

Material changes to this Policy will be communicated via:


19. Contact

PurposeContact
Security incidentssecurity@myeverjoy.com
Privacy inquiriesprivacy@myeverjoy.com
General supportsupport@myeverjoy.com


Schedule A: Security Control Matrix

Control IDDomainControlImplementationStatus
AC-1Access ControlRole-based accessRLS + user_role enum
AC-2Access ControlLeast privilegeScoped policies
AC-3Access ControlSession managementSupabase Auth
AC-4Access ControlAdmin access reviewQuarterly🔄
SC-1System & CommunicationsTLS 1.2+HTTPS enforced
SC-2System & CommunicationsEncryption at restCloud provider AES-256
SC-3System & CommunicationsSigned URLs1h UI / 15min AI
SC-4System & CommunicationsKey managementEnvironment variables
AU-1AuditAppend-only logsDB triggers
AU-2AuditEvent coveragePartial (see checklist)🔄
AU-3AuditLog retention3 years
IR-1Incident Response72-hour notificationDPA commitment
IR-2Incident ResponseIncident playbooksDocumented
CP-1Contingency PlanningDaily backupsSupabase
CP-2Contingency PlanningRTO 4 hoursTarget
IA-1Identification & AuthenticationEmail verificationRequired
IA-2Identification & AuthenticationRate limitingRoster activation
CM-1Configuration ManagementEnvironment separationDev/staging/prod
CM-2Configuration ManagementSecret rotationOn compromise

Schedule B: Penetration Testing

EverJoy conducts security assessments:

Assessment TypeFrequencyScope
Dependency scanningContinuousnpm packages
Code reviewPer PRChanged code
Penetration testAnnualProduction environment
RLS policy auditQuarterlyDatabase policies

Results shared with District upon request under NDA.


Schedule C: Security Training

AudienceTrainingFrequency
All personnelSecurity awarenessOnboarding + annual
EngineeringSecure developmentOnboarding + annual
Capture PartnersFERPA/COPPA + capture securityCertification
Platform adminsAdmin access responsibilitiesOn role assignment

Security Policy version 2026-07. Aligned with EverJoy infrastructure in yearbox/supabase/migrations/ and security implementations.

Back to home