Security

Security and privacy at Woden

Where your data lives, what each product stores and never stores, how access works, what you can do yourself, and what we are not claiming. Every line here is backed by code or infrastructure in our repository.

Last reviewed 29 September 2026.

Where your data lives

Microsoft Azure, UK South

  • One region

    Everything is hosted in Microsoft Azure, UK South. Data at rest sits in Azure Table and Blob Storage, encrypted by Azure by default.
  • Separate environments

    Production and our test environment are separate storage accounts with no shared data.
  • What leaves the region

    Only what you send to your own AI provider through the Service Desk connector, at your direction, and what Paddle and GitHub process to bill you. Through the connector that can include ticket titles and a ticket’s own description, and a ticket’s replies only where an admin has switched that on; it never includes attachments.

What we store

Per product

  • Woden Service Desk

    Installation metadata, repository and project mappings, tickets, comments, notes (metadata in Table, bodies in Blob), attachments, board cache, members and roles, SLA settings, notification preferences, push subscriptions and plan state. Sign-in is GitHub or Microsoft Entra External ID (email and password, Google federated); we never hold a password.
  • DocBot

    Installation metadata, repository names, token counts, an audit log of runs and plan state. Changed source files are sent to Azure OpenAI in UK South (UK West failover) in the request and discarded.
  • TagBot

    Installation metadata and aggregate statistics per repository: pull requests analysed, files processed, lines changed, average complexity, risk counts. It reads the pull request file list (names, additions, deletions, status) and nothing else.
  • The website and portal

    Google Analytics and Application Insights on the website. If you register interest in IRIS, the email address you give us. If you ask for access to our own service desk, the email you provide, linked to your GitHub identity.
  • IRIS, when it is sold

    The licence check sends a licence key, a hardware identifier, the chip (not the Mac's name), OS and app version. The update check sends the app's name and version and the updater's version, with no profile of the Mac. Nothing else reaches us. Phone notifications, if you switch them on, go through your phone's own push service (Apple's or Google's), encrypted so only your phone can read them. The voice layer runs on your Mac, and so does a local model's work; cloud coding work goes to the agent you chose.

What we never store

Source code, passwords, card details

  • Your source code

    DocBot processes it in the request. TagBot reads the file list only. The Service Desk reads only the markdown you publish to your knowledge base.
  • Your passwords

    Sign-in is GitHub or Microsoft Entra External ID. Woden never sees or stores a password.
  • Your card details

    GitHub Marketplace and Paddle collect payment; we receive a subscription status.
  • Training data

    No training of models on your content. DocBot runs under Microsoft's Azure OpenAI Data Protection Addendum; nothing else runs a Woden model.
  • Anything for resale

    No data resale and no advertising.
  • Locked notes in the clear

    Locked Service Desk notes are encrypted in the browser with your passphrase. We hold ciphertext; not even an admin can open one.

How access works

Tokens, signatures and roles

  • GitHub App authentication is by JWT and short-lived installation tokens. Tokens are never stored or logged. The Service Desk portal never mints a GitHub token; every side effect is relayed to our automation service with an HMAC-signed, replay-protected request that fails closed.
  • Webhooks from GitHub and Paddle are validated with HMAC SHA-256 using a constant-time compare, and fail closed if a secret is missing.
  • Permissions we ask GitHub for. Service Desk: Issues (read and write), Contents (read and write, for knowledge-base markdown and branch creation), Projects (read and write), Metadata (read). DocBot: Contents, Pull requests and Issues (read and write), Metadata (read). TagBot: Pull requests (read and write), Metadata (read). No Secrets, Actions or administration access anywhere.
  • Roles in the Service Desk (admin, agent, end user) are stored server-side and checked on every request, never trusted from the browser. Agents can be scoped to the service desk, development or both, and by repository.
  • Everything is HTTPS. Static Web Apps and Functions are HTTPS only; storage accounts accept HTTPS traffic only.

Encryption

In transit, at rest, and in your browser

  • TLS in transit.
  • Azure Storage encryption at rest, by default.
  • Locked Service Desk notes are end-to-end encrypted in the browser (AES-GCM) with a passphrase we never receive.
  • The per-user scratchpad is encrypted at rest with an application key.
  • DocBot's GitHub App private key is held in Azure Key Vault.

Your controls

Export, delete, revoke

  • Export everything

    A full data export of a Service Desk organisation connected to GitHub, self-service.
  • Delete it yourself

    Delete your organisation, or delete your own identity, from Settings. Immediate and permanent; we keep no backup to restore from.
  • Uninstall and keep it

    Uninstalling a GitHub App stops webhooks. Your issues, Project and docs stay in GitHub.
  • Revoke the connector

    The bring-your-own-AI connector is OAuth 2.1 through Entra External ID: no token pasted, revocable any time.
  • Draw the line for everyone

    An admin decides which capabilities AI tools may use across the whole organisation, in Integrations; reading ticket replies, adding internal notes and deleting development tickets stay off until an admin turns them on. Withdraw one and it stops for everybody, whatever each person granted their own AI tool.
  • Turn off tracking

    Push notifications can be revoked in your browser; website analytics can be blocked with the usual browser tools.
  • Ask us

    For anything you cannot do yourself, email support@woden-ai.com.

Sub-processors

Who else touches your data

Sub-processors, their purpose and the products they apply to
ProcessorPurposeProducts
Microsoft Azure (UK South)Hosting, storage, Functions, Static Web Apps, Application InsightsAll
Azure OpenAIDocumentation generationDocBot
GitHubIdentity, issues, projects, Marketplace billing, webhooksService Desk, DocBot, TagBot, portal
Microsoft Entra External IDCustomer sign-in, OAuth for the AI connectorService Desk
GoogleFederated sign-inService Desk
Paddle.com Market LimitedMerchant of record for Service Desk plans paid to us directly, and IRISService Desk, IRIS
Anthropic or OpenAIOnly if you connect your own AI through the connector. Receives your notes, your dashboard figures, and the tickets you can see including a ticket’s own description — a ticket’s replies only if your organisation switches that on, never attachmentsService Desk (opt-in)
Google AnalyticsWebsite analyticsWebsite

Reporting a vulnerability

Tell us first, and we will act

Email support@woden-ai.com with "Security" in the subject, what you found, how to reproduce it, and how to reach you. We will acknowledge it, keep you informed, and credit you if you want that. Please give us a reasonable time to fix it before publishing.

The same details are at /.well-known/security.txt.

What we are not claiming

Said plainly

  • No SOC 2 report or ISO 27001 certificate. We commission an independent penetration test annually and scan for vulnerabilities regularly as part of our development lifecycle and security policies; a security review of the Service Desk has also been done. Open items from all of these are tracked, and we do not describe any of it as "verified secure". We are applying for Cyber Essentials and will say so here once certified, not before. We are designed to meet GDPR obligations, and say so rather than "GDPR certified".
  • No uptime figure. We make reasonable efforts to keep the services available and publish live health on the status page. There is no SLA credit scheme.
  • No Service Desk audit log. Only SLA overrides record who, when and why. A per-ticket audit timeline does not exist.
  • No automatic retention period for Service Desk data. Nothing expires on its own; it is kept until you delete it. The retention periods in the privacy policy for the GitHub Apps' platform tables do not apply to the desk.
  • No rate limiting or abuse protection beyond what Azure and GitHub provide, and no multi-factor authentication or passkeys of our own. Sign-in security is your GitHub account's or Entra External ID's.
  • Attachment links are long-lived signed links, not revocable ones.
  • Service Desk secrets are Function App settings, not Key Vault references. DocBot's private key is in Key Vault.