Skip to main content

Trust center · Security overview

Answers for your security questionnaire.

Copy these answers into a vendor-security questionnaire. Each control has a status: In place, Partial, Not in place or To be confirmed. This is a self-assessment, not an audit report, and it says plainly where a control is missing.

Last checked against the code: 15 October 2026

  • Download as Markdown

    Saves this overview, the data flows and the subprocessor list as one .md file.

  • See subprocessors

    Opens the list of providers, the data each receives and where it runs.

  • Request the DPA

    Opens your email app with a DPA request addressed to the Skylos maintainer.

Company and scope

Scope

Skylos Cloud (skylos.dev) and the open-source Skylos CLI. This is a self-assessment, not an audit report.

Team

One maintainer builds and runs Skylos. There is no separate security team and no second human reviewer for changes.

Legal entityTo be confirmed

To be confirmed.

Security contactIn place

GitHub private vulnerability reporting (https://github.com/duriantaco/skylos/security/advisories/new) or founder@skylos.dev. Also published in https://skylos.dev/.well-known/security.txt.

Hosting and data location

HostingIn place

Managed providers only: Vercel for the app (functions in pdx1, Portland, Oregon), Supabase for the database, sign-in and storage (AWS us-west-2, Oregon) and Vercel Sandbox for hosted scans (Vercel's default region iad1, to be confirmed).

Skylos runs no servers of its own.

TenancyIn place

Multi-tenant. Workspaces share one database and are separated by row-level security policies and by membership checks in the app. There is no dedicated tenancy or private networking.

Data residencyNot in place

Skylos stores customer data in the United States (Supabase, AWS us-west-2) and processes it in US regions of Vercel. There is no choice of region. Some providers' locations are still to be confirmed; see the subprocessor list.

Data Skylos receives

By defaultIn place

Nothing. The CLI scans on your machine and needs no account. Data reaches Skylos only on the paths listed on the trust page: scan uploads, the GitHub App, hosted scans, the public scanner, AI actions and deep scans. One exception: in CLI 4.49 and earlier, skylos agent commands send a run summary (counts, model name, commit, branch, author name; no code) whenever a Skylos token is present.

Categories

Account data (GitHub user ID, name, email, avatar); workspace, role and billing metadata; scan findings with file paths, line numbers and short code snippets; commit author emails from git blame on uploaded findings; audit records; encrypted credentials for integrations you connect.

Full source code only inside a hosted-scan sandbox for the length of one scan, and in the requests sent to AI providers when someone uses an AI action or a deep scan.

Card and payment details stay with Lemon Squeezy.

GitHub App permissions

The App asks for: Contents: read and write, to open the workflow, cleanup and fix pull requests; Workflows: read and write, to add .github/workflows/skylos.yml; Pull requests: read and write, to open pull requests and comment on them; Checks: read and write, to publish the Skylos check on each pull request; Actions: read, to read a pull request's workflow run to verify its upload; Administration: read, to read branch rules to confirm the check is required (write is not needed); Metadata: read, to list the repositories the App can see.

Hosted scans do not use those permissions directly: each scan mints a token limited to one repository with read-only contents access, and revokes it after the clone. A scan starts when someone picks a repository, or straight after the App is installed from the Scan a repository button if that installation covers exactly one repository.

AI model trainingIn place

Skylos does not train AI models, on customer data or otherwise.

Encryption

In transitIn place

HTTPS only, with HTTP Strict Transport Security (one year, including subdomains). Supabase states that its APIs accept only TLS 1.2 or 1.3. Hosted-scan sandboxes reach GitHub, OSV (Cloud scans) and Anthropic (deep scans) over HTTPS.

At restPartial

Supabase states that all customer data is encrypted at rest with AES-256; Skylos relies on that and has not verified it independently.

On top of that, Skylos encrypts third-party credentials with AES-256-GCM before storing them: deep-scan Anthropic keys, Jira, GitLab, Bitbucket and Azure DevOps tokens, and webhook signing secrets. Project API keys are stored only as SHA-256 hashes.

Slack and Discord webhook URLs are stored without that extra application-level encryption.

Key managementPartial

Encryption keys are environment secrets in the Vercel project. There is no separate key-management service or hardware security module.

Access control in your workspace

Sign-inIn place

GitHub sign-in, which asks only for your public profile and email addresses and gives no repository access. SAML single sign-on is set up on request.

Two-factor and SSO enforcementIn place

Members can enrol an authenticator app. Owners can require two-factor or SSO for their workspace; it is enforced on dashboard pages, browser API routes and database row-level security for core tables. Owners stay exempt from the SSO requirement so they cannot be locked out. CLI, CI and API tokens are machine credentials and are not subject to these rules.

RolesIn place

Four roles (owner, admin, member, viewer) over 29 permissions. Spending credits, managing integrations, rotating keys and overriding gates are separate permissions.

Audit log and access reviewIn place

Workspace changes are recorded in an audit log on every plan. On the Workspace and Enterprise plans, members can view it and export it (CSV, JSON or NDJSON), read it through the /api/v1/audit-events API, and open an access review page that lists members, pending invitations, admin-managed keys and uploads not tied to a member.

Shared scan linksIn place

Owners and admins can share one scan through a link, choosing whether code snippets and suppressed findings are included. Anyone with the link can view that scan until sharing is turned off. Sharing is recorded in the audit log.

SCIM provisioningNot in place

Not available. Self-serve identity provider setup is not available either.

Access by Skylos

Who has production accessIn place

The one maintainer, through the Vercel, Supabase and GitHub App administration consoles. Server code uses Supabase's service role, which bypasses row-level security, for background jobs and system writes.

Two-factor on provider accountsTo be confirmed

To be confirmed for each provider account.

Privileged access logging and reviewsNot in place

No process beyond the providers' own account logs.

Logging and monitoring

LogsPartial

Application errors go to Vercel's runtime logs, kept for the period the Vercel plan allows. The email sender never logs the provider key or the message body.

There is no SIEM, log drain or third-party error tracker.

Uptime monitoringNot in place

There is no external uptime monitor or hosted status page. skylos.dev/status only confirms that the status endpoint answered.

Vulnerability management and development

Automated checksIn place

Every pull request and push to main in the Cloud repository runs a blocking npm audit of production dependencies (moderate and above), an advisory audit of all dependencies, lint, logic tests, route-authorization, row-level-security and audit-event contract checks, database regression tests and security probes against a production build.

The open-source CLI scans its own code with Skylos on every pull request.

Hosted scannerIn place

Hosted scans run one pinned scanner version, and each new version is reviewed for new ways to run code or reach the network before the sandbox image is rebuilt.

Penetration testing and bug bountyNot in place

No third-party penetration test has been done, and there is no paid bug bounty.

Incident response

Reporting and response targetsIn place

Reports go through GitHub private vulnerability reporting or email. Skylos aims to acknowledge a report within 2 business days and give a first triage update within 5.

Written planNot in place

There is no written incident response plan or on-call rotation; the one maintainer handles incidents.

Customer notificationPartial

If you sign the DPA, its security-incident notice terms apply (the Common Paper DPA sets 72 hours from when Skylos becomes aware). Without a DPA, no notification commitment is published.

Backups and continuity

Database backupsTo be confirmed

Backups are those included in the Supabase plan in use, which is to be confirmed. No recovery point or recovery time objective is published, and no restore test is documented.

Business continuityPartial

Skylos depends on one maintainer, which is a key-person risk.

The CLI is Apache-2.0 open source and works without Skylos Cloud, so scanning does not depend on the hosted service. On the Workspace and Enterprise plans, findings and the audit log can be exported as CSV or JSON and read through the /api/v1 API; the Free plan has no export.

Retention and deletion

Scan retentionIn place

Owners choose how long scan results are kept: 30, 90, 180 or 365 days on every plan, 730 or 1,095 days on paid plans, or no age limit. 30 days is the floor. A daily job deletes older scans and their findings, except each project's latest scan. Separately, each project keeps at most its newest 10 (Free), 500 (Workspace) or 10,000 (Enterprise) scans.

Workspace deletionIn place

An owner can delete a workspace from Settings by retyping its name after a recent sign-in. After a 7-day grace period, in which any owner can cancel, keys, tokens and integration credentials are revoked first, then all workspace data is deleted. A receipt with only a hashed workspace ID and counts is kept as proof.

People's own Skylos accounts, Lemon Squeezy's invoices and the provider's database backups (until they roll off) are not removed by workspace deletion.

Hosted-scan codeIn place

Repository copies exist only inside a non-persistent sandbox for the length of one scan. Staged upload files are removed from storage when the upload completes.

AI features

Whose model keyIn place

AI triage and Fix in PR use Skylos's own OpenAI key and run only when a person starts them. Deep scans use your workspace's own Anthropic key: Anthropic bills you, and your Anthropic terms apply. The CLI's AI commands use the provider you configure and never pass through Skylos.

Deep-scan key handlingIn place

Only owners and admins can save or delete the key. It is checked with Anthropic once, encrypted with AES-256-GCM, and decrypted only to start a deep scan, where the sandbox firewall adds it to requests for api.anthropic.com. It never enters the sandbox, and Skylos shows only its last four characters.

RetentionPartial

Skylos keeps AI results as findings or issue notes under the retention settings above. What OpenAI keeps follows OpenAI's API data terms for Skylos's account; what Anthropic keeps follows your Anthropic account's terms.

Certifications and legal

CertificationsNot in place

Skylos is not SOC 2 certified and holds no ISO/IEC 27001, CSA STAR or HIPAA attestation. Its providers' certifications do not extend to Skylos.

Data Processing AgreementPartial

A Data Processing Agreement is available on request. We use the Common Paper DPA v1.1 standard terms (CC BY 4.0), with the subprocessor list on this site as its list of approved subprocessors.

SubprocessorsIn place

Listed at https://skylos.dev/trust/subprocessors, with the data each one receives and its location.