Security & privacy

Built for the questions your security team will ask

A compliance product holds the keys to your systems and the evidence of your controls. This is how InsightAssure keeps both: tenancy, identity, credentials, integrations, auditors, the device agent, the AI, the Trust Center and where the data lives.

Tenancy

Isolation enforced twice

Organization on every row

Every table carries the organization and every query a route makes is scoped to the caller’s. A guessed id from another organization answers 404, exactly as a missing one does.

Row-level security underneath

Postgres row-level security on assure.org enforces the same boundary for every product table. Each request’s session is pinned to the caller’s organization; a session with no organization sees nothing.

An ordinary database role

The API connects as an ordinary role (no superuser, no BYPASSRLS) so the policies bind; setup warns if it does not. Background work uses an explicit system session that only the scheduler and scripts can create.

Identity

Sign-in, roles, API keys and an audit trail

ControlDetail
Sign-inThe Insight platform identity: OIDC with your identity provider, or local accounts with throttled login
Rolesadmin (everything), compliance (runs the program), contributor (assigned work), employee (the portal only), auditor (invited audits only), viewer (read); an administrator holds every role
Role checksRead from the user record on every request, not trusted from the token, so a demotion takes effect at once
API keysFor scripts and the push API; stored as SHA-256 only, shown once, sent as a bearer token or X-API-Key
Audit trailSign-ins and user administration in the identity audit log; program changes in the activity feed
Signing keyA secret-store reference in production; a deployment refuses to start on a development key outside development
Integration credentials

Sealed, never returned, read-only by design

Sealed per connection

Secret fields are sealed with the platform’s sealed-secrets module: one secret per connection in your secret store (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager, OCI Vault, HashiCorp Vault) when configured, otherwise an AES-256-GCM token bound to that connection’s row.

Or a pointer

A value written ref:aws-sm://… points at a secret you already keep; it is resolved when the connector runs and never copied.

Never returned

The API never returns a credential. Connection views show configuration only, and that a secret is set.

Read-only, documented

Each connector’s setup guide names the least-privilege, read-only credential it needs: an AWS role with SecurityAudit and ViewOnlyAccess assumed with an external ID, read-only tokens elsewhere.

Outbound guard

Every integration call refuses loopback, private, link-local, CGNAT and cloud-metadata addresses; a self-hosted deployment can allow private addresses for an internal Jira or GitLab.

Failures change nothing

A failed sync records its error and marks nothing deleted, so an expired token never makes resources disappear.

Auditors

An auditor sees one audit, and only what was given to it

Detail
ScopeAn auditor holds the built-in auditor role and nothing else; they see only the audits they were invited to, and another audit’s id answers 404
EvidenceOnly evidence attached to a request of their audit, downloaded through that request
ConsoleControls, people, vendors, integrations and settings refuse an auditor-only account
ChangesAuditors comment, accept or return requests, draw samples and record findings; only the team attaches evidence and only management writes a finding’s response
ReproducibilitySamples are drawn with a seed recorded on the audit, so the same draw can be made again
Device agent

What the laptop agent sends, and nothing else

Detail
ChecksDisk encryption, screen lock and timeout, firewall, anti-malware, OS updates, password manager; a check it cannot determine is sent as unknown
IdentitySerial, hostname, platform, OS version and the agent version; no files, browsing, process lists or user names
Read-onlyIt reads operating-system settings and never changes them
BindingA personal key is an HMAC over organization and email, so a device belongs to the person who enrolled it; an organization key is stored hashed and accepts only owners who are people in the organization
CodeOne Python file using only the standard library, served by your own deployment, readable before you run it
AI boundaries

What the model sees, and what it is allowed to say

Your sources only

Answers are written from your approved answers, published policies and controls. The model is told never to invent a certification, a number or a practice.

Live control status

The live health of the controls behind each source is given with every question; a failing control is never described as in place, and names from failure reasons are not repeated.

Cited

Every drafted answer carries the sources it used, and a person approves it before it leaves.

Your provider

Bedrock, Azure OpenAI, Vertex AI, OCI or an OpenAI-compatible endpoint in your own account.

Or no model

With no model, or with AI switched off, every AI feature answers by rule from the same sources, with the same guard.

Fails safe

A model that fails is remembered for five minutes and the rule path answers meanwhile.

Trust Center

A public page that reveals only what you choose

ControlDetail
What it showsOnly an enabled Trust Center, and only the frameworks, control status by domain, subprocessors and documents you select
NDAOptional; a request without the NDA accepted is refused
Access linksValid for 30 days; the token is stored only as a SHA-256 hash; denying a request clears it
AbuseAccess requests are rate-limited per address, and every request notifies your compliance team
Data

Residency, storage and retention

DeploymentVerticalServe SaaS, or self-hosted in your cloud account or data centre with Docker Compose
DatabasePostgres 16 with a schema per product; TLS required to managed databases
Evidence storeYour object store: S3, Azure Blob, Google Cloud Storage, OCI Object Storage, or a local volume; every key is prefixed with the organization
UploadsUp to 50 MB per file; executable types refused; downloads served with nosniff
SecretsReferences to your secret manager in configuration, never values
HistoryMonitor results kept 400 days; evidence, policy versions and acceptances kept until you remove them

Send us your security questionnaire

We answer it against the product as it ships, with the configuration that applies to your deployment.

Contact us