Initial commit: Pokerface sprint planning poker for Jira

Full-stack app with Express/Socket.io backend, React frontend,
NATS JetStream for state, and Atlassian Jira OAuth integration.

Includes security hardening: NATS auth support, KV bucket TTL
enforcement, CAS retry for race conditions, error message
sanitization, and OAuth state stored in NATS KV.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jan Willem Mannaerts 2026-02-26 21:38:37 +01:00
commit fdd9ba8d56
36 changed files with 7596 additions and 0 deletions

12
backend/.env.example Normal file
View file

@ -0,0 +1,12 @@
PORT=4010
FRONTEND_URL=http://localhost:5174
NATS_URL=nats://localhost:4222
# Jira OAuth (Atlassian 3LO)
JIRA_CLIENT_ID=
JIRA_CLIENT_SECRET=
JIRA_OAUTH_REDIRECT_URI=http://localhost:4010/api/jira/oauth/callback
JIRA_SCOPES="offline_access read:jira-work write:jira-work read:me"
JWT_SECRET=change-me-to-a-random-secret
JIRA_STORY_POINTS_FIELD=customfield_10016
JIRA_MOCK_FALLBACK=true