Gravity is now available.

See pricing
Gravity

Security and governance brief

How Gravity controls who can read, change and publish your docs

Written for the people who sign off on a new vendor. It describes how sign-in, roles, the change record, your code and data, and AI agents are handled today, says plainly what is not available yet, and gives short answers you can paste into a questionnaire.

Document control

Prepared for
Security reviewers, IT and procurement
Covers
The Gravity platform, its CLI and its AI features
Certification
SOC 2 in progress, not yet certified
Last reviewed
October 2026

On request: our current security posture, the audit timeline, the DPA and the subprocessor list.

In brief

SOC 2 is in progress

We are not SOC 2 certified yet. Ask us and we will share our current security posture, the audit timeline, our DPA and the subprocessor list.

Gravity holds documentation that customers, partners and coding agents act on. That makes three questions matter more than any feature: who can sign in, who can change what readers see, and whether you can show, later, exactly what was published and who approved it.

This brief answers them as the platform works today. Where something is not available yet, it says so. The ledger below is the short version; each line links to the chapter that explains it.

Figure. Every control in this brief with its standing today. Filter by standing, or follow a line to its chapter.

Sign-in and identity

Members sign in through your identity provider over SAML or OIDC, so joining, leaving and multi-factor rules stay where you already manage them. Single sign-on can be required for your email domain, which removes the password path for your own people entirely.

People who sign in with a password, such as contractors on another domain, can protect it with an authenticator app and one-time backup codes. Passwords and codes are never written to logs.

Who is signing in

jordan@acme.com

With single sign-on required, multi-factor is whatever your provider enforces.

  1. EmailGravity looks up how this address signs in.
  2. Your identity providerSent straight to it over SAML or OIDC. There is no password to try.
  3. Your policyYour provider’s own rules apply: MFA, device checks, session length.
  4. Signed inTo your organization, with the role you were given there.
Figure. How one person signs in, decided by their email domain. Switch the conditions to see the path change.

Automatic provisioning through SCIM is not available yet. Today an admin invites each member and gives them a role, and removing a member ends their access to the organization.

Roles and access

There are four roles: Owner, Admin, Editor and Viewer. They are fixed, which keeps a review short: the matrix below is every permission each one holds. Custom roles are not available.

DocumentationOwnerAdminEditorViewer
View documentation
View developer-audience content
Edit drafts
Approve or request changes
Publish versions
Delete pages
Import external documentation
Permissions held, all areas37/3736/3721/375/37

Roles are fixed. Access is shaped by where a role is granted, below.

Figure. The role catalogue, one area at a time. Add the Developer tag to see what it grants on each role.

What shapes access is where a role is granted. A role can be given for the whole organization, or for one site, space or collection. For any page, the grant closest to it applies, whether it is higher or lower than the organization role. Owners and admins keep their role everywhere.

On a page in this collection, they act as

Viewer

The collection grant is the closest to the page, so it wins, even though their organization role is Editor.

  • Read
  • Edit drafts
  • Approve
  • Publish
  • Manage access
Figure. What a member can do on a page in one collection. Change their organization role and the grants at each level; the highlighted level is the one that decides.

Readers are a separate question from members. Each space decides which audiences may read it: everyone, signed-in readers, developers, or audiences you define and fill by email. A single block can be limited to an audience, so one page can carry a partner-only paragraph without a second copy of the page.

The change record

Editing in Gravity is fast and collaborative, and none of it is visible to readers. A change reaches readers only through a change request: required reviewers compare it with the live page, approval rules decide who must sign off, and only someone whose role includes publishing can publish it.

Publishing is the boundary. Everything on the reader’s side of it is versioned, attributed and recorded.

Each publish creates a new numbered version. The version stores a hash of its content, the hash of the version before it, who published it and when, signed by Gravity’s server. Changing an old version later, even directly in the database, breaks the chain from that point on, and verification says where.

  1. v12Keys expire after 90 days.a.okafor · Mar 4 · hash b4f1ef31
  2. v13Keys expire after 60 days.r.santos · Apr 18 · hash 4657536b
  3. v14Keys expire after 60 days. Rotate them early.a.okafor · Jun 2 · hash 88e901bc
  4. v15Keys expire after 30 days. Rotate them early.m.ruiz · Sep 9 · hash 7525150c

Four published versions of one page.

Figure. Four published versions of one page. Verify the chain, then change an old version outside Gravity and verify again.

Alongside the versions, the audit log records every request made to the platform, by people, tokens and agents alike: who made it, the action, the resource, whether it succeeded or was refused, when, how long it took, and from which address and client. Refusals are recorded too, which is often what an investigation needs.

  • When
    2026-10-08 13:41:05 UTC
    Who
    j.lee@acme.com
    Action
    proposals.publish
    On
    Change request #479
    Result
    Refused: FORBIDDEN
    Took
    41 ms
    From
    198.51.100.31
    Client
    Safari on macOS
Figure. The audit log, filtered the way a reviewer would. Open an entry to see every field, or see the same query as an API call.

Your code and your data

Gravity writes documentation from your code without taking the code. The CLI runs inside your CI, where the repository already is, and sends Gravity the docs it writes, each block pointing to the file, lines and commit it came from. Your repository is not cloned to our servers.

Passes that write prose send requests through Gravity’s AI gateway, and those requests can contain code snippets. The gateway passes them to the model provider and keeps neither the request nor the reply, only a record of who, when, which model and how many tokens.

From your repository to your readers

Gravity

What it sees
Requests from passes that write prose, such as guides and the changelog. They can include code snippets and diffs.
What is kept
Not the request and not the reply. Only a record of who, when, which model, token counts and how long it took.
What protects it
Your provider key is encrypted at rest and decrypted only for the call. The CI holds a revocable token, never the key.
Figure. Where code and content go, stage by stage. Pick a stage to see what it sees, what is kept and what protects it.

AI agents

Coding agents and assistants reach your docs over MCP. Access is granted the way you would grant it to an app: a person approves the connection on a consent screen, every time, and the agent then acts with that person’s permissions and no more.

The person can disconnect it at any time. Revocation is checked on every call, so the next request is refused, not the next day’s. Each call, each approval and each revocation is in the audit log.

docs.acme.com asks for your approval

Allow “Coding agent” to act as m.ruiz@acme.com?

It will read and search what your role allows, and nothing more. You can disconnect it at any time.

Asked every time an agent connects.

Recorded in the audit log

  • Nothing yet. No agent reaches your docs until a person approves it.
Figure. One agent connection, from consent to revocation. Approve it, let it make calls, then disconnect it and try again.

Operations

Your data is backed up every night, and each backup is kept for 35 days. Recent changes can also be recovered to a point in time, which covers mistakes noticed the same day. Connections to Gravity and from Gravity to AI providers are encrypted.

Licences change over a contract’s life, so they are designed never to strand anything. If a licensed feature lapses, what it holds stays readable, and revoking access or removing items keeps working. You are never left with data you cannot reach or a credential you cannot turn off.

Compliance and answers

Our SOC 2 audit is in progress, and we will not describe Gravity as certified until it is. During your review we share our current security posture and the audit timeline, a data processing agreement and the subprocessor list.

The answers below are written for questionnaires. Search them, copy one, or copy them all. If yours asks something they do not cover, send it to us.

  • Do you support single sign-on?

    Yes. Members sign in through your identity provider over SAML or OIDC, and single sign-on can be required for your email domain so there is no password path.

  • Do you support multi-factor authentication?

    Yes. Password sign-in supports authenticator-app codes with one-time backup codes. With single sign-on, your identity provider’s multi-factor policy applies.

  • Do you support SCIM provisioning?

    Not yet. Members are invited by an admin and given a role.

  • How is access controlled?

    Four roles (Owner, Admin, Editor, Viewer), granted for the whole organization or for one site, space or collection. For any page, the most specific grant applies. Owners and admins keep their role everywhere.

  • Can we define custom roles?

    Not today. Roles are fixed; access is shaped by where each role is granted, and a Developer tag adds developer-only content and, on Editor and above, repository management.

  • Is there an audit log?

    Yes. Every request is recorded with the person, the action, the resource, the result, the time, how long it took, the IP address and the client. It can be filtered in the app and read through the API and MCP.

  • Can the audit log be exported?

    There is no export file yet. Your tools can read the full log through the API, filtered by person, action, resource, result and date.

  • Can published content be changed without a trace?

    No. Each published version is stored with a hash of its content, chained to the version before it and signed by Gravity’s server. Verifying the chain shows whether any version changed after it was published.

  • Who can publish?

    Changes reach readers only through a change request. Approval rules decide who must approve, and only people whose role includes publishing can publish.

  • Do you store our source code?

    The CLI reads your code inside your own CI. Gravity stores the docs it writes, each pointing to the file, lines and commit it came from, not your repository. AI requests can include code snippets; they pass through to the model provider and are not stored by Gravity.

  • Is our content used to train AI models?

    Gravity does not train models. With your own key, your agreement with that provider applies; Anthropic and OpenAI do not train on API data by default.

  • How are keys and tokens stored?

    AI provider keys are encrypted at rest with AES-256-GCM and decrypted only for the call. Repository and API tokens are stored as hashes, and every token can be revoked.

  • How do AI agents get access?

    Through MCP with OAuth. A person approves each connection on a consent screen, the agent acts with that person’s permissions, refresh tokens rotate, and the person can revoke it at any time. Every call is recorded in the audit log.

  • How is data backed up?

    Nightly backups are kept for 35 days, with point-in-time recovery for recent changes. Restores are rehearsed.

  • What happens if a licensed feature lapses?

    Your data stays readable, and revoking access and removing items keep working, so a lapsed licence never traps data or leaves a live credential behind.

  • Are you SOC 2 certified?

    Not yet. The SOC 2 audit is in progress. On request we share our current security posture, the audit timeline, our DPA and the subprocessor list.

Figure. Short answers for your questionnaire, each matching a chapter of this brief.

Bring us your security review.

Your identity provider, your roles and your questionnaire: we’ll walk through how Gravity fits, and share the documents your team signs off against.