Security and trust

The extension moves files with your credentials, so it keeps them where VS Code protects them, checks every server it talks to, and asks before writing from a workspace you have not trusted.

Passwords

Servers

The engine's security page has the full list of threats and the test behind each defence.

Workspace trust

Sites come from your own list of sites, which a cloned repository cannot change: syncServers.configDir can be set in your user settings only. In a workspace in Restricted Mode:

The Site Settings page

The settings form runs under a Content-Security-Policy that allows its own stylesheet and one script only: no remote content, no inline code, no eval. Every message between the page and the extension is checked against a schema in both directions and dropped when it does not match, and the page reports anything its policy blocks to the log. A pinned host key or a trusted certificate can be kept or forgotten from the form. A new one is saved only when you trusted it in VS Code's own warning during a Test or Browse... from that form; the page itself can never set one.

What stays on your machine

The extension talks to your servers and to nothing else: no telemetry, no update checks, no third-party services. The list of sites, the sync records and the log stay in your user profile.

Checking a release

Each release on GitHub is built from its tag by the repository's release workflow, and carries the .vsix, a CycloneDX SBOM, a Sigstore attestation bundle and SHA256SUMS. With the files downloaded into one folder:

sha256sum --check --ignore-missing SHA256SUMS
gh attestation verify vscode-sync-servers-<version>.vsix --repo isocialPractice/vscode-sync-servers \
  --signer-workflow isocialPractice/vscode-sync-servers/.github/workflows/release.yml

Reporting a vulnerability

Report privately through the repository's private vulnerability reporting, never in a public issue. The security policy says what to include and what to expect.