Security
Last updated: April 17, 2026
Contact
Report suspected vulnerabilities to security@userblazer.ai. Please include enough detail to reproduce the issue (affected URL, request, expected vs. observed behavior). We aim to acknowledge reports within two business days. Please do not publicly disclose a vulnerability before we've had a reasonable opportunity to investigate and fix it.
Good-faith security research is welcomed. Do not access data that isn't yours, do not run denial-of-service tests, and do not perform social-engineering attacks against our team or users.
Who we are
Blazer is operated by Blazer Inc, a Delaware corporation. The Service comprises the Blazer website (userblazer.ai), the REST API (api.userblazer.ai), the Blazer Claude Code plugin, and the Blazer MCP server.
Authentication and session management
- No passwords. The Service supports OAuth sign-in only, through GitHub (
user:email scope) and Google (email, profile scope). We never receive or store your third-party password. - Session cookies. Web sessions are backed by a signed, HTTP-only cookie with
SameSite=Lax. The server-side session record stores the IP address and user-agent at sign-in for forensic purposes. - API keys. Blazer API keys begin with the prefix
sk-bzr_. When you generate one, we display the raw key to you exactly once and store only a SHA-256 digest. We cannot recover a lost key — revoke and regenerate. - Agent authentication. AI-agent clients (including the Blazer Claude Code plugin) authenticate to the API using a Blazer API key passed as a Bearer token.
Protection of sensitive material
- Transport. All traffic to userblazer.ai and api.userblazer.ai is served over HTTPS.
- Encryption at rest for tenant hash keys. Each Blazer workspace has a tenant-local HMAC key used by the plugin to hash repository identifiers before transmission. These keys are encrypted at rest in the database.
- Payment data. Paid plans are billed through Stripe. Raw payment-card numbers are never transmitted to or stored on Blazer servers — Stripe returns only tokenized references and transaction metadata to us.
- Redacted request logs. Request logs are filtered to redact, among other fields: any parameter matching
passw, secret, token, _key, crypt, salt, certificate, otp, ssn, cvv, cvc, and the fingerprint-specific fields (repo_hash, commit_hash, branch_hash, hash_key, tenant_hash_key, hash_key_ciphertext, facets, packages, evidence). A leaked request log cannot be used to reconstruct these values.
Data minimization in the Blazer Claude Code plugin
The plugin runs on your own computer inside Claude Code. It is designed to send the narrowest signal necessary to produce recommendations.
- Manifest files only. The plugin reads an explicit, finite list of dependency manifests:
package.json, Gemfile.lock, pyproject.toml, Cargo.toml, Podfile.lock, Package.resolved, composer.lock, build.gradle, and pom.xml. It does not read source code, credentials, environment variables, commit messages, pull requests, or files outside of the active project directory. - One-way hashing of repo identity. The repository URL, commit SHA, and (optionally) branch name are hashed locally with an HMAC keyed to your workspace before being sent to the server. The server never receives these values in plaintext.
- Consent before submission. The plugin will not submit a fingerprint until you have affirmatively accepted the consent notice on the machine in question. Consent is versioned — any expansion of data categories triggers re-prompting. You can revoke consent by deleting the
consent.json file in the Claude Code plugin data directory or by uninstalling the plugin. - Locked-down local state. The plugin writes its API key, cached tenant hash key, and consent record to files with
0600 file permissions inside the Claude Code plugin data directory. These files are never written to ~/.config/… or other shared locations. - Content-free telemetry. Session telemetry records tool call names, durations, error counts, session phase, token counts, and the names of tool input fields. It does not record tool input values or tool responses.
API hardening
- Rate limiting. The API enforces per-key, per-session, and per-IP quotas, with tighter limits on sensitive operations (such as fingerprint submission, tenant hash-key fetch, and tenant hash-key rotation) and on unauthenticated traffic. Specific thresholds are tuned over time and are not published.
- Tenant scoping. Tenant-scoped resources (such as fingerprints, journeys, and reviews tied to a user) are filtered by the authenticated user's workspace at the query layer. Cross-tenant access is neither exposed nor relied upon for authorization.
- Authorization policies. Role-gated actions (consumer, provider, admin) are enforced by server-side authorization policies in addition to tenant scoping.
- Schema-validated inputs. Fingerprint submissions are validated against a published JSON schema both in the plugin and on the server; submissions that don't conform are rejected.
Development and build practices
- Static security analysis. The codebase is scanned with automated tooling for common vulnerability patterns, and third-party dependencies are audited against published vulnerability databases.
- Dependency hygiene. Dependency updates are routine, with an emphasis on keeping authentication, authorization, and other security-adjacent libraries on currently supported versions.
- Least-privilege secrets. Production secrets (OAuth client secrets, database credentials, and application keys) are provided through an encrypted secret store, not checked into the repository.
Infrastructure
- Hosting. The Service runs on managed cloud infrastructure with a managed relational database.
- Deployments. Application releases are cut as distinct, reproducible container images.
- Backups. The production database is backed up on a regular schedule.
If you believe your account is compromised
Email security@userblazer.ai or support@userblazer.ai and revoke any API keys you suspect have been exposed through your dashboard. We will help you rotate tenant hash keys and review recent activity on the workspace.