Security & compliance

Built for the people who have to be sure.

You're accountable to funders, families, and privacy law. Karis is architected so that accountability is the default — not a setting you have to remember to turn on.

Version 1.3 · Last updated 28 October 2026. This page is versioned and dated so it can be cited in a procurement file. When something material changes, we update the date here and notify customers whose agreement includes a data-protection schedule.

Hosted in CanadaCanadian data residency
Per-tenant DBDatabase-level isolation
MFA built inStandard on every account
Full audit logEvery change tracked

Where your data lives

Karis Care runs on Canadian infrastructure, with data stored and processed in Canada. Your supported individuals' records do not leave the country in the course of normal operation. We name the provider and the region, because “hosted in Canada” means very little without them.

provider
DigitalOcean
region
Toronto, Canada (TOR1)
residency
Data at rest stays in Canada
processing
Application processing in-region

Isolation model

Each tenant gets its own database. This isn't a shared table with a tenant column — it's a real architectural boundary, so one agency's data is separated from another's at the database level.

Model: one tenant → one database

Authentication

Multi-factor authentication is built in on every account, and an administrator can require it agency-wide — enforced at sign-in, not a policy you have to chase. Users without a configured factor are sent to enrolment before they can reach anything. Session controls let administrators manage active sessions, and single sign-on (SSO) is on the roadmap for larger providers.

mfa
Built in, available on every account
sessions
Administrator session controls
sso
On the roadmap

Encryption

Data is encrypted in transit and at rest. Connections to Karis use TLS; stored data is encrypted on disk.

in transit
TLS for all connections
at rest
Encrypted storage

Access control

Access is role-based, and restrictions can be applied at the level of individual entities. Polymorphic entity-level restrictions mean a worker sees the people and programs they're responsible for — not the whole agency.

  • Role-based permissions across modules.
  • Entity-level restrictions on supported individuals, programs, and sites.
  • Least-privilege by default.

Audit logging

Every change is tracked. The audit log records who made a change, what changed, and when — across records, not just logins.

Recorded per change: actor · action · entity · timestamp

Backups & recovery

Backups are the part of a vendor answer that is easy to assert and hard to check, so here is the architecture rather than the assurance. Every database and every tenant’s files are copied nightly to a different provider, in a different province — Amazon Web Services in Calgary, away from the Toronto region that runs the platform, and still inside Canada. An outage, a billing dispute, a ransomware event, or a mistake at our primary host cannot take the backups with it.

frequency
Nightly — database dumps at 01:00, file sync at 01:30
destination
Amazon Web Services, Canada West (Calgary) — a different provider, province, and power grid from the Toronto primary, reached with its own separate credentials
coverage
Every tenant database and every tenant’s uploaded files
immutability
Write-once for 35 days. Object Lock runs in compliance mode, which means a backup cannot be altered or deleted before then — not by an attacker, not by our own staff, not by the root account on the cloud console
write-only access
The application host holds a key that can add backups and nothing else: no delete, no retention override, no decryption. A server that is compromised cannot read or destroy what it has written
encrypted before it leaves
Every database dump is compressed and encrypted on our server, before upload. The encryption key is a public one; the matching private key is held offline and has never been on the server. A dump therefore arrives at the backup provider already unreadable — to them, and to anyone who obtains the bucket
encrypted at rest
Everything in the bucket, including the synced file store, is additionally encrypted with a key we control rather than the provider’s default. A separate restore identity is the only one permitted to decrypt it
retention
Each nightly backup is kept 365 days; superseded versions are kept 90 days, then expire automatically. When an agency leaves, its backups and file versions are deleted within 40 days of termination
point-in-time recovery
The managed database keeps a rolling 7-day point-in-time window — the fast path for an ordinary mistake, with the off-provider copy behind it for anything larger
restore procedure
Restores run from a written runbook into a throwaway database, never a live one, and every backup run writes a manifest listing each database’s size and SHA-256 so a restore can be checked rather than assumed

Those are settings, not adjectives — each one is something you could ask us to evidence. The single figure we will not invent is a contractual recovery time objective: how long a restore takes depends on how much is being restored, so we set it in your service schedule and confirm it in writing rather than publishing a number that fits nobody.

Sub-processors

We keep the list short deliberately, and we publish it rather than making you ask for it. Every provider below is contractually bound to protect what it handles and to use it only to deliver its service to us. This is the same list as section 5 of the Privacy Policy — there is one list, published in two places, so the two documents cannot drift apart.

Karis Care platform

DigitalOcean
Application hosting, managed database, and tenant file storage (Spaces) — Toronto, Canada
Amazon Web Services
Off-provider destination for database and file backups, so a failure at our primary provider cannot take the backups with it — Calgary, Canada (ca-west-1)
Stripe
Subscription billing and payment processing. Handles your billing contact and payment details — never care records — United States
Resend
Transactional email — account invitations, password resets, and notifications. Notifications leave out supported individuals’ names and anything written about them — United States
Sentry
Application error monitoring. Configured so that no personal information is transmitted — errors carry stack traces and identifiers, not record contents — United States
Cloudflare
Bot protection (Turnstile) on the public enrollment and referral form, which carries information about the person being referred — Global edge network

This website

Cloudflare
Hosting and delivery for this marketing website, plus privacy-preserving page analytics — no cookies, no cross-site tracking — Global edge network
Web3Forms
Relays this website’s demo and contact form submissions to our inbox — United States

Three of these process platform data outside Canada — billing, transactional email, and error monitoring. None of them stores your care records, though a notification email can name a supported individual and billing carries your administrators’ contact and payment details. Backups leave our primary provider but stay in Canada. The last two rows serve this marketing website and never touch the platform. If we add or replace a provider that handles personal information, we update this page and the Privacy Policy together, and customers whose agreement includes a data-protection schedule get advance notice on the terms set out there. A dated copy for your procurement file is available on request.

Continuity & exit

You are trusting a small company with records you are legally required to keep. The honest answer to “what if you go away?” is not a promise that we won't — it is making sure you are never locked in while we're here.

export
Export your reports and records yourself in open formats, any time. For a complete copy of everything your agency holds, ask — we prepare it within five business days, at no charge
exit fees
None — ever, including on the way out
retrieval window
A post-termination window to export before deletion, set in your agreement. All data, including backups, is deleted within 40 days of termination
term
Month-to-month after the initial term — no multi-year lock-in required
discontinuation
Advance written notice with full export access throughout — you will never lose access at the same moment you learn the service is ending

Compliance posture

We design to Canadian privacy law and accessibility standards. We're honest about the difference between what's designed-for and what's formally certified — so here is the uncomfortable half first: Karis Care is not SOC 2 audited and not ISO 27001 certified. Every other claim on this page describes something specific in the architecture, and we will walk your board or your IT reviewer through any of it on request.

PIPEDA
Designed for, by architecture
PIPA (BC/AB)
Designed for, by architecture
AODA / WCAG
Accessibility commitment, WCAG 2.1 AA target
SOC 2
Not audited
ISO 27001
Not certified

Designed-for, not over-claimed. Where a formal certification exists, we'll name it. Where we're designed to a standard but not certified, we'll say that too.

Breach notification

If we become aware of a privacy breach involving your data that creates a real risk of significant harm, we notify you without undue delay — what we know, what we're doing about it, and what we recommend you do. We do not wait for a complete picture before telling you something happened.

who we tell
The affected customer, directly — you decide about your own notifications
regulators
OIPC British Columbia and the OPC as the law requires
what you get
Scope, timeline, cause, remediation, and what we changed

Responsible disclosure

Found something? We want to hear about it. Report security issues to our team and we'll respond.

Security contact: support@kariscare.com

Bring your security questionnaire.

We'd rather answer it on a call than behind a form. Book a demo and bring whatever your board or funder needs.

Book a demo