Security

We don't store your passwords.

Because there aren't any. untactit authenticates through your existing identity provider, which means there is no password database here to breach.

No password storage

Sign-in goes through Google, Microsoft, or your SAML provider. We never see, hold, or transmit a password — there is no credential table to steal.

Tenant isolation

Every record carries its organization. Queries are scoped at the data layer, not filtered in the interface — a missing filter fails closed, not open.

Append-only audit

Who changed what, when, and from where. Entries are written once and never edited — including by us.


Access control

Permission is decided by the server on every request. The interface reflects that decision — it never makes its own.

  • ✓Six built-in roles with distinct capability sets, plus custom roles per organization
  • ✓Time-based one-time passcodes as a second factor, with recovery codes issued once and stored hashed
  • ✓An admin can require the second factor across the whole organization, and see who has enrolled
  • ✓Signed, expiring sessions — no long-lived shared tokens
  • ✓An admin can revoke every session for a user at once, effective immediately
  • ✓Invitations expire and can only be used once
  • ✓Domain-based joining requires a verified domain claim from your IdP, never automatic
  • ✓Personal-layer assets fail closed — a missing owner denies access rather than granting it

Identity providers

Google Workspace
OAuth 2.0 · OIDC
Available
Microsoft Entra ID
OAuth 2.0 · OIDC
Available
SAML 2.0
Okta, OneLogin, and others
Enterprise
SCIM provisioning
Automatic deprovisioning
Enterprise

In transit

TLS on every connection reaching the service from outside.

Sensitive fields

Vendor credentials and other sensitive fields are encrypted at the application layer with a separate key, so a database dump alone does not expose them.

Key rotation

Encryption keys are versioned. A new key can be promoted while previous versions stay readable, so rotation does not require downtime or a migration window.

Passwords

None stored for SSO users. Where a local credential exists it is a PBKDF2-HMAC-SHA256 hash with per-record salt, never reversible.

Data handling

Disk-level encryption stops a stolen drive. It does not stop a leaked backup or an over-broad query, so we encrypt sensitive fields separately.

  • ✓Your assets are yours — we don't train anything on them
  • ✓Export everything, any time, in an open format — per organization or per user
  • ✓Deletion runs in two stages: a 30-day grace window you can cancel, then real removal
  • ✓A partial deletion failure is reported as a failure, not rounded up to success

Audit trail

An audit log is only worth something if you can prove nobody edited it. Ours chains each entry to the hash of the one before it — change a single row and every row after it stops verifying.

  • ✓Every administrative action records actor, target, time, and outcome
  • ✓Tamper-evident by hash chain, with a verification endpoint you can call yourself
  • ✓Export 90 days as CSV for your own SIEM or retention
  • ✓Credentials and tokens are never written to logs

What the log answers

Who changed this rule?
Actor, timestamp, before and after
Answered
Who approved the deploy?
Approval events are separate records
Answered
Was the log itself edited?
Hash chain verification
Answered
Who was denied, and why?
Denials are recorded, not just successes
Answered

Built on a separate channel

Changes are implemented against a development bundle that is never reachable from the public internet.

Seven gates, all must pass

Syntax and symbols, type checking, real-data verification, runtime behaviour, a security audit, dependency vulnerabilities, and a scan for credentials that ended up somewhere they can leave from. A partial pass does not promote.

Promoted, not hand-copied

One command moves the verified bundle to production, and one command puts the previous release back.

How changes reach production

Review is not left to whoever is looking. Fixed criteria hold the veto, they run on every change, and they do not get tired.

  • ✓Automated test suite runs on every change, covering tenant isolation, permissions, and idempotency
  • ✓A security checker with fixed criteria sits inside the deploy gate
  • ✓Every release is scanned for credentials in the four places they can escape from — published output, temporary working folders, source and logs, and staged commits
  • ✓Schema changes are versioned, forward-only migrations — never ad-hoc edits
  • ✓Emergency changes are allowed, then documented within 24 hours and re-gated

Dependencies and disclosure

Most of what runs in any product is somebody else's code. We keep a bill of materials for ours and check it against a public vulnerability database.

  • ✓Software bill of materials generated in CycloneDX format
  • ✓Dependencies checked against the OSV vulnerability database
  • ✓A failed lookup reports as a failure — we don't treat “could not check” as “nothing found”
  • ✓Host header validation on every request, so path-based checks cannot be bypassed
  • ✓Browser-enforced response headers — strict transport security, framing denied, no content sniffing, referrer and permissions restricted
  • ✓The public surface is submitted to an independent external assessment, and the grade is tracked over time rather than measured once

Found something? Write to our security address. We will confirm receipt and tell you what we are doing about it.

Who else touches your data

Cloudflare
Network, DNS, mail routing
Subprocessor
Resend
Transactional email
Subprocessor
Model providers
Agent inference
Subprocessor
Your connected tools
Slack, Notion, GitHub and others
Your contract

Tools you connect run on your own credentials and your own agreement with that vendor — they are not our subprocessors. We give 30 days' notice before adding one of ours.


Being straight with you

Security pages usually list certifications. Here's where we actually are.

  • ✓In place today — SSO-only authentication with SCIM provisioning and a second factor, role-based access enforced server-side, tamper-evident audit logging, tenant isolation at the data layer, application-level encryption with key rotation, a seven-gate deploy pipeline, dependency vulnerability scanning, and credential-leak scanning before every release.
  • ✓Practised, not just written — Recovery is rehearsed end to end on a schedule, incident response is exercised rather than filed, and internal audit samples our own controls and records what it finds. Evidence from each is available to security reviewers under NDA.
  • ×Not yet — certifications — No SOC 2 and no ISO 27001 yet. Claiming otherwise would be exactly the kind of thing this product exists to prevent. If your procurement process requires one, tell us and we'll give you a real timeline rather than a maybe.
  • ×Not yet — an availability SLA — We do not publish an uptime commitment yet. Backup and recovery targets are defined, tested, and shared with customers as part of a contract rather than posted on a marketing page.
  • ×Not yet — a commissioned penetration test — Our public surface is assessed by an outside party on a recurring basis, and internal testing runs alongside it. A paid engagement with authenticated access is on the roadmap, and we will say when it is done rather than before.

Under NDA we share the detail this page does not carry: a full CAIQ v4 self-assessment across all 261 questions, our architecture and data-flow documentation, subprocessor list, and the DPA. Security reviewers get the complete picture — it just isn't published to the open internet, which is the same standard we hold your data to.

Security questions, disclosure reports, or a DPA request — get in touch. We answer security mail before we answer sales mail.

Stop guessing what your agents are running.

Connect one workspace and see every skill, rule, and memory your team has in play — in about ten minutes.

Start free→ Talk to us

No credit card. Works with what you already run.