Mission Control

Citizen Hangar Command Deck

Link Citizen iD, sync pledges, and stream RSI hangar updates straight into your dashboard.

Total pledges

0

Ships logged

0

Last sync

Session status

Awaiting authentication

Citizen iD handles primary auth while Discord fallbacks keep you online whenever the main service pauses.

  • Citizen iD Online
  • Discord fallback Pending capture
  • Session Not signed in

Use the hero button above to sign in; we'll route through Discord automatically if Citizen iD blips.

Extension bridge

Ready for browser pairing

Pair the Citizen Hangar extension to push RSI hangar exports directly into this dashboard.

  • Pairing Awaiting handshake
  • Last sync

You need to sign in before linking Citizen iD.

Sign in with Citizen iD

If Citizen iD goes down mid-login, we'll switch you to Discord automatically.

Pledge intelligence

Your pledge telemetry

Surface Citizen iD identity, sync wellness, and categorized hangar data without leaving the dashboard.

Sign in to see pledge data.

Sign in with Citizen iD

We'll keep you online by switching to Discord automatically if Citizen iD stalls.

Public persona

Profile & sharing

Stay inside the Command Deck UI while you tune what the public profile exposes.

Sign in to configure your profile and public page.

Sign in with Citizen iD

Extension bridge

Pair the Citizen Hangar extension

Upload pledge HTML straight from the RSI hangar to refresh this dashboard.

Sign in to generate pairing codes for the extension.

Sign in with Citizen iD

If Citizen iD drops, the dashboard automatically switches to Discord login.

Developer controls

OAuth & OpenID quickstart

Citizen Hangar ships a full OAuth 2.0 + OIDC stack with PKCE, offline refresh tokens, and signed ID tokens.

PKCE + S256 Scopes: openid, profile, offline_access JWT kid rotation ready
  • Issuer uptime 99.95%

    Backed by Zerops + Mongo health probes.

  • Access token TTL 60 minutes

    Override via OAUTH_ACCESS_TOKEN_TTL.

  • Refresh tokens Rotating

    Each token exchange mints a new refresh token; revoke via /oauth/revoke.

Open discovery document
Sign in to manage apps

OAuth documentation is public, but creating clients requires a Citizen Hangar account.

Sign in with Citizen iD

Discovery

Endpoints exposed

  • .well-known config
    GET https://citizenhangar.space/oauth/.well-known/openid-configuration
  • JWKS set
    GET https://citizenhangar.space/oauth/.well-known/jwks.json
  • Authorize + consent
    GET https://citizenhangar.space/oauth/authorize
  • Token exchange
    POST https://citizenhangar.space/oauth/token
  • Userinfo
    GET https://citizenhangar.space/oauth/userinfo
  • Revocation
    POST https://citizenhangar.space/oauth/revoke
  • Consent caching We store grants per client + scope bundle; re-authorize to widen scope.
  • JWT signing Access + ID tokens are signed with rotating RSA keys surfaced via JWKS.

Authorize

Kick off PKCE flow

Swap in your own client + redirect; code_challenge_method must be S256.

curl "https://citizenhangar.space/oauth/authorize?response_type=code&client_id=demo-client&redirect_uri=http%3A%2F%2Flocalhost%3A4311%2Fcallback&scope=openid%20profile%20offline_access&code_challenge=PKCE_CODE&code_challenge_method=S256&state=demo-state"

Client ID: demo-client · Redirect URI: http://localhost:4311/callback

Supported scopes: openid profile offline_access. Pairing tokens land in the token response when offline_access is requested.

Exchange & introspect

Token + userinfo samples

curl -X POST "https://citizenhangar.space/oauth/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code" \ -d "code=AUTH_CODE" \ -d "redirect_uri=http://localhost:4311/callback" \ -d "client_id=demo-client" \ -d "code_verifier=YOUR_PKCE_VERIFIER"
curl "https://citizenhangar.space/oauth/userinfo" \ -H "Authorization: Bearer ACCESS_TOKEN"

Refresh tokens arrive when requesting offline_access. Revoke either token via POST /oauth/revoke.

Sign in to access admin tooling.

Sign in with Citizen iD

Privacy & Data

Citizen Hangar Privacy Policy

Effective December 4, 2025. Citizen Hangar is an independent platform for syncing pledge, hangar, and account data and is not affiliated with any game studio or third-party provider.

Open standalone page
Account data

Authentication details

We collect Discord identifiers, usernames, email (if supplied via OAuth), and external linking tokens so you can sign in and keep session continuity. Login timestamps, IPs, and session metadata support account security.

Pledges & hangars

Sync inputs

The extension uploads pledge HTML or export data you trigger so we can parse ships owned, pledge metadata, and sync status. Raw uploads are processed in memory for parsing and discarded immediately after a successful sync.

Usage signals

Technical diagnostics

Cookies keep you signed in, while server logs capture request metadata and errors to prevent abuse. Optional analytics are only collected if you explicitly opt in.

Operational monitoring

Sentry error reporting

We forward crash reports, stack traces, limited request metadata, and profiling samples to Sentry to keep the service stable. These payloads may include IP addresses, user IDs, and form inputs tied to the error, and are retained per Sentry's policies for debugging only.

How we use your data

  • Authenticate you via OAuth and link external accounts to Citizen Hangar.
  • Store and display pledge, hangar, and ship data inside your dashboard.
  • Provide sync tooling, including status history and pairing management.
  • Keep the platform secure, detect abuse, and offer support/debugging.
  • Aggregate anonymized usage insights only if you consent.

We never sell or rent your personal information, and we do not use it for advertising.

Legal basis & consent

  • Contractual necessity: deliver the login, storage, and sync services you request.
  • Legitimate interest: protect the platform, prevent abuse, and improve reliability.
  • Consent: required before any optional analytics or non-essential tracking is enabled.

Data sharing & third parties

We only share data when you explicitly export it, when compelled by law, or with infrastructure vendors (hosting, email, database) who are bound by confidentiality and limited-processing agreements. We do not share data for advertising or targeting.

Sentry diagnostics

Citizen Hangar uses Sentry for error reporting, performance traces, and profiling. When failures occur, we send stack traces, sampled request metadata (timestamps, route, IP, user/session identifiers), and relevant form payloads to Sentry’s EU region. This data is used solely to diagnose issues, follows Sentry’s retention schedule, and can be purged on request by contacting support.

You may request that we scrub or delete historic Sentry events tied to your account by emailing support@citizenhangar.space.

Data retention & deletion

Your account, linked tokens, and synced data stay stored until you delete them. You can revoke the extension, unlink accounts, or request full deletion at any time; we purge associated pledges, ships, and raw HTML within 72 hours. Minimal anonymized logs may persist briefly for audit and security but cannot identify you.

Your rights

  • Access, correct, or delete personal data we hold.
  • Withdraw consent for optional processing at any time.
  • Object to or restrict certain processing (e.g., analytics).
  • File a complaint with a supervisory authority if you believe data is misused.

Contact us using the details below to exercise any of these rights.

Security measures

We use HTTPS everywhere, encrypted storage for sensitive tokens, scoped access controls, hashed credentials, regular backups, and audit logging. No system is infallible, so only share the data necessary to use Citizen Hangar.

Cookies & tracking

We rely on first-party cookies to maintain sessions and do not profile users. If we introduce analytics or additional tracking, we will seek explicit consent and update this policy.

Children & minors

Citizen Hangar is not intended for anyone under 16. If we learn a minor has registered, we will delete the account and related data on request.

Changes to this policy

We may update this policy from time to time. The latest version will always be posted with a clear “Last Updated” date, and significant changes will be communicated via banner or email when applicable.

Contact

Data Controller: Citizen Hangar

Email: support@citizenhangar.space

Address: N/A (remote team)

Reach out for data access, deletion, corrections, or any privacy concerns.

Plain-language summary

  • You log in with Discord/OAuth. We store linked account identifiers and tokens.
  • You choose when to upload pledge/hangar exports; we parse them so you can view ships.
  • Your data stays private unless you export or share it.
  • We never sell your information and respect deletion/consent requests.
  • Contact us anytime for help with your data.
Command Deck | Citizen Hangar - Star Citizen Hangar Viewer