Security

Where your evidence goes, in plain terms

Decim reads your code, logs and tickets to explain an incident. This page lists exactly what it reads, where that evidence is processed and stored, how long it is kept, and the controls a security review will find missing today.

Summary

The short version

If you are filling in a questionnaire, these ten lines are the answers. The rest of the page explains each one.

Decim is a hosted service. It does not sit in your data path, does not watch your pipelines continuously and does not connect to your databases. It reads evidence when an incident asks for it: code from GitHub, log entries from Google Cloud Logging, a linked Jira ticket, files you attach, and, if you install it, files and Event Log records from a Windows host through the agent.

Security position at a glance
Area Current state
DeploymentHosted SaaS operated by Ryware. No region choice or self-hosting today.
Evidence processingCode, log excerpts, ticket text and attachment content are processed by a third-party language-model provider.
RedactionNone today. Evidence is processed as it was collected.
Tenant isolationEvery record belongs to one workspace; access is enforced in the data layer.
Stored credentialsOAuth grants for Jira and Google Cloud Logging are encrypted at rest.
RetentionRaw agent payloads purged 3 days after an incident closes; attachments 7 days after. Cited excerpts are kept.
Sign-inSSO with Microsoft Entra ID, Google or GitHub, or email and password.
Audit logEvery change a user makes, with actor, action, target and outcome. Exportable to CSV or JSON.
RolesNone yet. Every workspace member has the same access.
CertificationsNo SOC 2, no ISO 27001, no external penetration test yet.
What we read

What Decim reads, per integration

Each connection asks for the narrowest access the current feature needs. Where an integration can write, the table says exactly when.

Nothing is read in the background. GitHub repositories are read when you scan them for pipelines and when an investigation needs the code behind a step. Log sources are queried for the time window an investigation is examining. A Jira ticket is imported once, when you link it to an incident, and that snapshot does not change afterwards even if the ticket does.

Access by integration
Integration Access granted What Decim reads What Decim writes
GitHub AppContents: read and write · Metadata: read-only · Pull requests: read and write. Only on the repositories you select.Source code, commits and pull requests in the selected repositories, for pipeline discovery and as cited evidence.A new branch (decim/solution-…) and a draft pull request from it, only when a person clicks to publish a fix. Never a merge, never a push to your existing branches.
Google Cloud LoggingGoogle sign-in with the read-only logging.read scope.Log entries matching the named log sources you define as filters (for example "Ledger load jobs"), inside the window an investigation asks for.Nothing.
Jira CloudOAuth 2.0 with read:jira-work and offline_access.Issue search when you open an incident. For a linked issue: its description, comments and attachments, imported once as an immutable snapshot.Nothing.
Windows agent (optional)An agent key, plus the directories and Event Log channels you list in its configuration file.Directory listings, file contents (whole or by byte range) and Windows Event Log records from those configured sources.Nothing on the host.
File attachmentsWhatever you upload to an incident, up to 500 MB per file.Logs, exports and screenshots you attach, used as evidence.Nothing.

Two details worth knowing about GitHub. A new link to a GitHub installation starts with no repositories selected; someone has to choose them in the workspace. And one organisation installation can serve several workspaces, but each link needs its own GitHub user authorisation, verified against the installation, so a workspace cannot attach itself to an installation it was not given.

Log reading is bounded. An investigation pulls logs step by step with limits on the number of requests, the bytes read and the model calls it may spend. When it compares a failing run with earlier successful runs, it looks back at most 30 days.

Data flow

Where evidence goes

Three places: Decim's database, a private storage bucket, and a third-party language-model provider.

Decim's database

Incident records, discovered pipelines, hypotheses and their revisions, checks, solutions, evidence metadata and the cited excerpts live in the hosted service's database. Every row belongs to one workspace.

A private storage bucket

Attachments you upload go directly from your browser to a private cloud storage bucket through short-lived signed upload URLs; the bytes do not pass through Decim's application servers on the way. Jira attachments are copied server to server into the same bucket when a ticket is imported. The bucket is not public.

A third-party language-model provider

The investigation itself, reading code, matching an incident to a pipeline, walking the logs, weighing hypotheses and drafting fixes, is carried out by a large language model run by a third-party provider. To do that, the evidence an investigation reads is sent to the provider: source code, log excerpts, Jira ticket text and attachment content. That is the plain consequence of what the product does, and it is the question most reviews should start with.

Model work runs in a separate runtime for each workspace. The files staged for a task are deleted when the task finishes. We name the provider, and share its data-use terms, as part of a security review.

Isolation

Tenant isolation and encryption

Tenant isolation. Every incident, pipeline, connection, file and audit entry is owned by one workspace, and the workspace is enforced in the data layer rather than left to each screen. GitHub repository access is recorded per workspace, so selecting a repository in one workspace grants nothing to another.

OAuth grants encrypted at rest. The access and refresh tokens Decim holds for Jira and Google Cloud Logging are encrypted before they are written to the database, and each grant is bound to its workspace and connection. Disconnecting deletes the stored grant. A refresh token that is revoked or uncertain is never replayed; the connection is marked as needing reconnection instead.

GitHub. Decim authenticates as a GitHub App and uses short-lived installation tokens issued by GitHub, rather than storing a personal access token.

Sessions. Signing in issues a high-entropy session token that lasts 30 days. Signing out revokes it.

Untrusted content stays data. Ticket text, log lines and attachments are treated as evidence, never as instructions to the investigation.

Retention

How long evidence is kept

Raw material is deleted soon after an incident closes. The lines a diagnosis cites are kept, so the conclusion can still be checked later.

Closing an incident is permanent. It cancels any pending agent tasks, and an hourly retention job then removes raw material on a fixed schedule. What remains is what you need to defend the conclusion: the excerpt each finding cites, with its byte offsets or record ID and a hash of the content, so anyone can confirm later that the quoted line is the line that was read.

Retention today
Data Retention Detail
Raw agent task resultsPurged 3 days after closeTask metadata and the content hash remain. Asking for the payload afterwards returns 410 Gone.
Incident attachments (uploaded or imported from Jira)Deleted 7 days after closeIncludes cancelled and unfinished uploads. File metadata remains.
Cited excerptsKept with the incidentThe exact lines a finding cites, with offsets and hash, so the diagnosis stays checkable after the raw file is gone.
Incident record, hypotheses, checks, reportsKept for the life of the workspaceDeleted with the workspace, on request.
Jira snapshot textKept with the incidentDisconnecting Jira deletes the stored grant but not snapshots already imported.
Audit logKeptNo configurable retention window today.
Configurable retention policyNot availableThe windows above are fixed for every workspace.
Access

Sign-in, invitations and the audit log

Members sign in with Microsoft Entra ID, Google or GitHub, or with an email and password. New members join by invitation; an invitation expires after seven days unless it is resent.

Every change a user makes is written to the audit log in the same transaction as the change itself, so an action cannot succeed without its entry. Each entry records the actor, the action, the target, the outcome, the UTC time and a correlation ID. Request values and secrets are not stored in it. Read-only requests and background work do not create entries. Publishing a pull request records the request before Decim contacts GitHub, then records the result.

The log can be searched and filtered by action and time range in the workspace, and the full filtered history exported to CSV or JSON.

audit-log.csv — publishing a draft pull request (illustrative values) csv
Occurred at (UTC),Actor,Actor email,Action,Target type,Target ID,Target,Outcome,Correlation ID
2026-10-15T09:42:16.0000000+00:00,Priya N.,priya@example.com,solution.pr_publish_requested,solution,3b9d…,3b9d…,Requested,0HN7A1K2
2026-10-15T09:42:19.0000000+00:00,Priya N.,priya@example.com,solution.pr_published,solution,3b9d…,Restore EUR in the ledger currency filter,Succeeded,0HN7A1K2
Agent

The agent's boundary

Optional, outbound-only, and limited to three read tasks on sources you list.

Most teams never install anything: code comes from GitHub and logs from Google Cloud Logging. The Windows agent exists for evidence that only lives on a host inside your network, such as application log files on a file server or the Windows Event Log of the machine that ran a job.

  • Outbound polling only. The agent calls Decim over HTTPS to ask for work, every five seconds by default. It opens no listening port.
  • Three tasks. List a directory, read a file (whole or by byte range), read Windows Event Log records in a time range.
  • Configured sources only. Directories and Event Log channels are named in the agent's own configuration file. Paths cannot escape a configured directory, and symbolic links and junctions are refused.
  • Bounded results. A single result is capped at 5 MB; a larger file comes back as a sampled preview, and the investigation asks for the byte range it needs.
  • No SQL, no redaction. It has no database access and sends what it reads unchanged.
  • Readable. The agent is MIT-licensed, so your team can read exactly what it does.

The full detail, including a configuration example, is on the agent page.

Never

What Decim never does

  • Connect to, query or write to your databases.
  • Run the SQL it proposes, including the read-only checks it writes for you to run.
  • Merge a pull request, push to an existing branch, or build and run a patch.
  • Write to Jira, Google Cloud Logging or any host the agent runs on.
  • Open a connection into your network.
Gaps

Not there yet

The controls a security review will look for and not find today. None of them should be assumed.

Redaction, roles and region choice are on the roadmap. Until they ship, they are not controls you can rely on, and this table is the authoritative list.

Missing controls
Control State Detail
RedactionNot builtNothing strips secrets or personal data before evidence is processed, in the agent or in the service.
Roles and fine-grained accessNot builtEvery member of a workspace can see every incident and use every connection.
Region choiceNot availableThe service runs in one hosted region. Data residency cannot be selected.
Self-hostingNot availableThere is no on-premises or private-cloud deployment of the service.
Configurable retentionNot availableRetention windows are fixed (see above).
SCIM provisioningNot availableUsers join by invitation; SSO handles sign-in, not provisioning.
SOC 2 / ISO 27001NoneNo attestation in progress that we can cite.
External penetration testNone yetNo external test has been carried out.
Database connectionsDeliberately absentDecim does not connect to databases. When the deciding evidence lives in one, it writes a read-only query for a person to run.
Questions

Questionnaire answers

Do you hold SOC 2, ISO 27001 or an external penetration test?
No. Decim is pre-release and has none of the three today. We would rather say so on this page than let a questionnaire find it.
Is our data sent to a language-model provider?
Yes. Investigations are run by a third-party language-model provider, and the evidence an investigation reads (source code, log excerpts, Jira ticket text and attachment content) is sent to it for processing. There is no redaction step before that today. We name the provider and share its data-use terms as part of a security review.
Do you train models on our data?
Decim does not use customer evidence to train models shared with other customers, and one workspace's evidence is never used in another workspace's investigation.
Where is our data stored?
In Decim's hosted service: incident records, evidence metadata and cited excerpts in its database, and uploaded files in a private cloud storage bucket. Browser uploads go straight to that bucket through short-lived signed URLs. There is no region choice today.
Does Decim connect to our databases or run SQL?
No. When the deciding evidence lives in a database, Decim writes a read-only query, checked against a read-only allowlist, for a person to run. The result comes back into the incident as evidence. Decim never executes it.
Can Decim change our code?
It can open a draft pull request on a repository you selected, and only when a person clicks to publish a fix. It never merges, and never builds or runs the patch. The GitHub App's write permissions exist only for that step.
Do we have to install anything in our network?
No. GitHub, Google Cloud Logging and Jira are connected from the browser. The Windows agent is optional, for files and Windows Event Logs that only exist on a host in your network.
How long do you keep our data?
Raw agent payloads are purged 3 days after an incident closes and attachments 7 days after. Cited excerpts, the incident record and its report stay with the workspace until you ask us to delete it.
How do we revoke access?
Disconnect Jira or Google Cloud Logging in the workspace, which deletes the stored grant; uninstall the GitHub App or deselect repositories in GitHub; stop the agent or delete its key. Each one stops further reads immediately.

Related: the Windows agent in detail; privacy for account data and sub-processors; and pricing for what a pilot includes.

Get started

Send the questionnaire first

We would rather answer it before a pilot than during one. Write to security@decim.dev and we will reply with the provider name, the data-use terms and anything this page does not cover.