RLS
tenant isolation foundation
Tenant-owned data is designed to stay behind forced row-level security and tenant-scoped access helpers.
Security and trust
Otto's public trust story separates implemented foundations, local proofs, planned controls, and not-published documents so schools can see what exists and what still needs external review.
RLS
Tenant-owned data is designed to stay behind forced row-level security and tenant-scoped access helpers.
MFA
Staff and instructor MFA, step-up actions, and session boundaries are P0 security requirements before production use.
Audit
Sensitive record views, exports, changes, permission changes, support access, and rule-pack activations are designed for immutable audit trails.
Staged
External security review, penetration testing, SOC 2, HECVAT, VPAT, and status page work are shown as staged milestones, not completed claims.
Controls
The controls below are intentionally labeled by readiness level. Buyer-facing copy stays tied to local proof routes and production activation gates.
School records are designed to be separated by tenant at the database layer, not only by UI routing.
The local database foundation includes tenant-scoped schema work, forced RLS proof coverage, and RLS drift checks.
Review tenant isolation proofHigh-risk staff actions need stronger identity checks before production access is allowed.
Role-aware staff-required and student-optional MFA policy helpers are proved locally; provider enrollment and challenge flows remain later.
Review auth readinessSensitive views, exports, changes, rule-pack activations, support access, and permission changes need reviewable evidence.
Audit entry foundations are append-only for the local app role. Production audit viewers and setting write paths are later.
Preview audit logThe build path includes code, dependency, license, secret, and RLS checks before production gates can be cleared.
Local type, lint, test, build, secret scan, license scan, dependency audit, and RLS audit commands are defined.
Review security checklistProduction secrets, TLS, encryption at rest, field-level protection for restricted data, and rotation remain provider-gated setup work.
Secrets stay out of source, auth session/device identifiers are planned as hashed metadata, and raw provider tokens are not stored.
Review production gatesPayment pages are planned around Stripe-hosted fields, signed URLs, short-lived links, validation, and later malware scanning.
Future Stripe-hosted payment fields should keep card numbers out of Otto systems. File security and storage policies remain later.
Review file security proofStudent data must not be exposed to models casually, and AI cannot silently change grades, refunds, statuses, or compliance submissions.
AI output is treated as untrusted, tools are permission-scoped, restricted data is blocked, and consequential actions require human approval.
Review AI transparencyOtto is designed to serve the school under its control, not monetize student records or trap records in the platform.
The public posture is no sale of data, no secondary use of student data, FERPA-aligned school control, and school-owned export paths.
Preview FERPA proofIncident roles, severity levels, runbooks, notification support, and status communication need production operations before launch.
Incident-response copy is a posture statement only. Production runbooks, paging, status page, and evidence packets are not published.
Review incident runbook proofBefore the first pilot
Authentication, tenancy, RLS, and production data gates need outside review before any private pilot school goes live.
Before the first paying school
The formal penetration test is not complete and no public report is published.
About 6 months after the first paying school
SOC 2 is a roadmap milestone, not a current certification.
About 12 months after Type I
Type II depends on operating evidence after Type I.
Not published
HECVAT Full, including AI questions, is planned for sales readiness but is not published.
Not published
The accessibility statement is public; a VPAT/ACR remains a later milestone.
Planned
Status-page operations are not connected to production monitoring or incident workflows.
External later work
DPA, FERPA addendum, legal terms, and security packet need counsel and production review.
Public privacy copy is a product posture until production contracts, DPA, FERPA addendum, retention policies, and export workflows are reviewed.
Privacy governance
Schools need to know not only that data is protected, but also who controls it, how disclosures are recorded, and how records leave Otto if a school exits.
Otto is designed to operate as a school official under school control, with contract language and FERPA addendum work required before production.
Disclosure ledger, FERPA consent manager, directory opt-out, redisclosure notices, and records-access workflows are product requirements, not public launch claims.
Restricted data such as SSNs, accommodations, health documents, and bank details needs tighter roles, field-level protection, and access logging.
Retention schedules, legal holds, complete school export, and closed-school archive support remain P0 design commitments before lock-in claims.
AI
Public trust center
Future Stripe-hosted payment fields keep card numbers out of Otto systems and logs; PCI SAQ-A remains an annual production attestation target.
Signing links, document links, and file URLs are designed to be short-lived, signed, and single-purpose.
SSNs, government IDs, bank/card numbers, and disability documentation must not be sent to AI models.
AI can draft, explain, prioritize, and alert, but grades, refunds, status changes, aid-affecting determinations, and compliance submissions require authorized human approval.