Vosky AI Back to the site
Data & security

Where the data sits, and who can reach it.

Written for the person filling in a vendor-risk questionnaire. It describes the platform as it is built today — including a section listing what we do not have, because a security page that only lists strengths is not worth reading.

Last updated 2026-07-25

United StatesCloudflare D1, WNAM region
PasskeysWebAuthn, phishing-resistant
Every read loggedActor, record, IP, timestamp
ZeroRuntime third-party dependencies

1. Two things, kept separate

There are two places your data can be, and the controls are different in each.

vosky.ai — this platform

The marketing site, the demo assistant, the consult form and the client portal. Everything in sections 2 to 10 below describes this. It holds enquiries, accounts and Readiness Audit records. It is not designed to hold consumer records, core banking data or non-public personal information, and we ask clients not to put any there.

Your tenant — what we build for you

Production systems are deployed inside infrastructure you own wherever possible: your Microsoft 365, your Azure subscription, your identity provider. Your operational data does not leave an environment you control and can audit. The controls there are yours, plus whatever your engagement agreement sets, and the subprocessor list for that build is documented for you specifically.

2. Where it runs

All traffic is served over HTTPS. Certificates and TLS termination are Cloudflare's.

3. What is stored

DataWhereWho can read it
Consult-form leads — name, email, business, message, IP, delivery statusD1Admin only
Chat transcriptsNot stored. Sent to Anthropic to be answered, then discarded
Audit draftsNot stored. Audit intake is sent to Anthropic on request by a consultant; the returned draft is held in the browser until accepted or discardedVosky staff only
Chat spend counters — per IP per day, and site-wide per day and monthD1Admin only
Readiness Audit records — institution profile, systems, constraints, opportunities, notesD1Staff and admin; the owning client organisation once assigned
Accounts, roles, organisationsD1Admin; each user sees their own
Passkey public keys and device labelsD1The account owner; admin
Sessions — IP, user agent, sign-in method, timestampsD1The account owner; admin
Recovery codesD1, hashed with SHA-256Nobody. The plaintext is shown once at enrolment and never again
Access log — every read, write, deletion and failed lookup of client dataD1Admin

4. Authentication

Sign-in is passkey-first. Passkeys are WebAuthn credentials bound to the vosky.ai domain: there is no password to phish, reuse or leak, and a credential from a lookalike domain will not verify. We support ES256 and RS256, which between them covers every authenticator in circulation.

The WebAuthn verification is implemented directly against the platform's Web Crypto API. The application has no runtime third-party dependencies — nothing from a package registry executes in the request path, which removes an entire class of supply-chain exposure.

TODO: confirm  A shared break-glass password is still enabled as a fallback sign-in method and is scheduled for removal once passkeys are enrolled on every account. Confirm whether it has been retired before publishing — and if it has, delete this note and say so.

5. Sessions and revocation

A session is a row in the database, not a self-contained token. The cookie carries only a session identifier and an HMAC signature; the row is what actually grants access. That design is the reason revoking one device is a single update that ends that device's access without touching anyone else.

6. Authorisation

7. Access logging

Every read, write, deletion and failed lookup on a client-data path writes a row recording who, what action, which record, from which IP, and when. Consult-form submissions are logged too. The log exists so the scoping above can be demonstrated to behave rather than asserted — if you want to see the trail for your own organisation's records during an engagement, ask and we will produce it.

Log writes are deliberately fire-and-forget: the log is evidence, not a dependency, so a logging failure can never break the request that produced it.

8. AI handling

If audit content reaching a model provider is not acceptable under your vendor policy, say so at engagement and we will run the assessment without the drafting step. It is a convenience for our consultant, not a dependency of the product.

TODO: confirm  Whether a zero-data-retention agreement is in place with Anthropic. Without one, do not state that Anthropic retains nothing — only that they do not train on it. This matters more now that audit intake is in scope, not just chat.

9. Abuse and cost controls

Cloudflare's edge sits in front of everything, providing DDoS mitigation and bot protection at the network layer. Application-level limits are enforced in the code as well: the consult form is capped per IP per day, and the assistant is capped per visitor per day and site-wide per day and per month, in dollars.

10. Secrets and deployment

TODO: confirm  Who holds Cloudflare and Microsoft 365 administrative access, and that MFA is enforced on those accounts. Worth stating explicitly — reviewers ask every time.

11. Encryption, plainly

In transit: HTTPS/TLS everywhere, including the calls out to Anthropic and Microsoft Graph.

At rest: data in Cloudflare D1 is protected by the encryption Cloudflare provides for that platform. We do not add application-layer encryption on top of it, and we make no guarantee about encryption at rest beyond what Cloudflare provides. Recovery codes are the exception — those are hashed by us, so that table is worthless if it ever leaked.

12. Backups

The database can be exported in full on demand, and Cloudflare provides point-in-time recovery for D1.

TODO: confirm  Real backup practice: exports are manual today with no scheduled job. Confirm frequency, where copies are stored, and a stated RPO/RTO before a reviewer asks.

13. What we do not have

We would rather you learn this here than three weeks into a review. As of the date at the top of this page, Vosky AI does not hold:

What we do have is a small, deliberately simple system, a short list of subprocessors, no runtime dependencies, and a complete log of who read what. If your due-diligence process requires an attestation we do not hold, tell us early — that is a fair reason to say no, and we would rather hear it in week one than in week six.

14. Incident response

If we identify a security incident affecting your data, we will contain it, notify your named contact without undue delay, tell you what we know and what we do not yet know, and follow up with a root-cause account and what changed as a result.

TODO: lawyer  A specific notification window in hours, checked against what financial-institution clients are obliged to require of their vendors. Once agreed, mirror it in the master services agreement.

15. Subprocessors

The same list as the privacy notice, repeated here because this is the page a risk team will pull.

ProviderPurposeData reaching it
CloudflareHosting, edge compute, database, DNS, TLS, DDoS and bot protectionAll site traffic and every stored record
AnthropicThe language model behind the demo assistant, and behind audit drafting in the internal workspaceChat messages; and audit intake when a consultant requests a draft
Microsoft 365 / GraphTransactional email from info@vosky.aiMessage contents — names, email addresses, enquiry text
Google FontsServes the site's two typefacesYour IP and user-agent, sent by your browser directly

Per-engagement subprocessors differ and are documented for each client before work starts.

16. Export and deletion

Email info@vosky.ai to request an export or deletion of your data. We respond within 30 days. Details, including the two honest limits on deletion, are in the privacy notice.

17. Questionnaires

We complete vendor due-diligence questionnaires in full, at no extra cost, and we take part in your third-party risk-management process. Send the form to info@vosky.ai or call (214) 702-9523.