SECURITY

ARCHITECTURE // DATA_HANDLING // DISCLOSURE

PAT_LIFECYCLE

YOUR BROWSERHTTPS/TLSUCP SERVERGITHUB APIDISCARD PAT

Your PAT travels over TLS to our server, is used once to authenticate a single GitHub GraphQL request, and is never written to disk, database, logs, or memory beyond the duration of that request. The GitHub API response (contribution counts) is stored. The token is not.

WHAT_IS_STORED

FIELDTYPENOTE
github_loginstringYour GitHub username
avatar_urlstringYour GitHub avatar URL
contribution_datedateYYYY-MM-DD format, no timezone
contribution_countintegerAggregate daily count across all repos
account_labelstring | nullOptional label you set, e.g. "work"

NEVER_STORED

Personal Access Token (PAT)
Repository names
Commit messages or SHAs
File paths or contents
Branch names
Pull request or issue data
Email addresses
IP addresses

TRANSPORT_SECURITY

  • All traffic is served over HTTPS with TLS 1.2+.

  • The API enforces CORS to only accept requests from the UCP web origin.

  • GitHub API requests use Bearer token auth over HTTPS.

  • The application is hosted on Vercel and uses Supabase (managed Postgres) — both enforce encryption at rest.

RESPONSIBLE_DISCLOSURE

If you discover a security vulnerability, please report it privately before public disclosure. We take all reports seriously and will respond promptly.

SECURITY_CONTACT: pallavkumarjha26@gmail.com

Please include a description of the vulnerability, steps to reproduce, and potential impact. We aim to acknowledge reports within 48 hours.

TRANSPORT: HTTPS_TLS PAT: NEVER_STORED
CODE_ACCESSED: FALSE