Skip to content

Commit 5d97c5d

Browse files
authored
ARC-1977 - Rotating secrets in Lastpass: STORAGE_SECRET (#2123)
- New key used for creating cookies in cookiesession-middleware.ts
1 parent 5178127 commit 5d97c5d

File tree

7 files changed

+11
-1
lines changed

7 files changed

+11
-1
lines changed

.env.development.local.example

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# Github App Information
55
APP_ID=
66
WEBHOOK_SECRETS=
7+
COOKIE_SESSION_KEY=
78
GITHUB_CLIENT_ID=
89
GITHUB_CLIENT_SECRET=
910
# Path to github private key file (relative to root of this project). If at the root, just specify filename

.env.e2e.local.example

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
APP_NAME=
44
APP_ID=
55
WEBHOOK_SECRETS=
6+
COOKIE_SESSION_KEY=
67
GITHUB_CLIENT_ID=
78
GITHUB_CLIENT_SECRET=
89
PRIVATE_KEY_PATH=

.env.test

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
NODE_ENV=test
44
APP_ID=113490
55
WEBHOOK_SECRETS=["test","old-secret"]
6+
COOKIE_SESSION_KEY=ranDomValueXyz123123
67
GITHUB_CLIENT_ID=Iv1.7be753472c09g9c5
78
GITHUB_CLIENT_SECRET=test-github-secret
89
SQS_BACKFILL_QUEUE_URL=http://127.0.0.1:4566/000000000000/test-backfill

.github/workflows/on-push.yml

+2
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
echo "APP_NAME=jira" >> .env
4444
echo "APP_ID=${{ secrets.E2E_GITHUB_APP_ID }}" >> .env
4545
echo "WEBHOOK_SECRETS=${{ secrets.E2E_GITHUB_WEBHOOK_SECRETS }}" >> .env
46+
echo "COOKIE_SESSION_KEY=${{ secrets.E2E_COOKIE_SESSION_KEY }}" >> .env
4647
echo "GITHUB_CLIENT_ID=${{ secrets.E2E_GITHUB_CLIENT_ID }}" >> .env
4748
echo "GITHUB_CLIENT_SECRET=${{ secrets.E2E_GITHUB_CLIENT_SECRET }}" >> .env
4849
echo "PRIVATE_KEY_PATH=jira-test.pem" >> .env
@@ -95,6 +96,7 @@ jobs:
9596
echo "APP_NAME=jira-e2e" >> .env
9697
echo "APP_ID=${{ secrets.E2E_GITHUB_APP_ID }}" >> .env
9798
echo "WEBHOOK_SECRETS=${{ secrets.E2E_GITHUB_WEBHOOK_SECRETS }}" >> .env
99+
echo "COOKIE_SESSION_KEY=${{ secrets.E2E_COOKIE_SESSION_KEY }}" >> .env
98100
echo "GITHUB_CLIENT_ID=${{ secrets.E2E_GITHUB_CLIENT_ID }}" >> .env
99101
echo "GITHUB_CLIENT_SECRET=${{ secrets.E2E_GITHUB_CLIENT_SECRET }}" >> .env
100102
echo "PRIVATE_KEY_PATH=jira-e2e-test.pem" >> .env

github-for-jira.sd.yml

+3
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ config:
214214
PRIVATE_KEY: vault://secret/data/builds/micros-sv--github-for-jira-dl-admins/github-app-private-key-stg
215215
GITHUB_CLIENT_SECRET: vault://secret/data/builds/micros-sv--github-for-jira-dl-admins/github-app-client-secret-stg
216216
WEBHOOK_SECRETS: vault://secret/data/builds/micros-sv--github-for-jira-dl-admins/github-app-webhook-secrets-stg
217+
COOKIE_SESSION_KEY: vault://secret/data/builds/micros-sv--github-for-jira-dl-admins/github-app-cookie-session-key-stg
217218

218219
CRYPTOR_URL: http://cryptor:26272
219220
CRYPTOR_SIDECAR_CLIENT_IDENTIFICATION_CHALLENGE: "6CF9E6A52167B58CBB0DED180CC8B848" # https://developer.atlassian.com/platform/cryptor/integration/integrating-sidecar/#enabling-ssrf-protection
@@ -337,6 +338,7 @@ environmentOverrides:
337338
PRIVATE_KEY: vault://secret/data/builds/micros-sv--github-for-jira-dl-admins/github-app-private-key-ddev
338339
GITHUB_CLIENT_SECRET: vault://secret/data/builds/micros-sv--github-for-jira-dl-admins/github-app-client-secret-ddev
339340
WEBHOOK_SECRETS: vault://secret/data/builds/micros-sv--github-for-jira-dl-admins/github-app-webhook-secrets-ddev
341+
COOKIE_SESSION_KEY: vault://secret/data/builds/micros-sv--github-for-jira-dl-admins/github-app-cookie-session-key-ddev
340342
scaling:
341343
instance: t2.small
342344
min: 1
@@ -509,6 +511,7 @@ environmentOverrides:
509511
PRIVATE_KEY: vault://secret/data/builds/micros-sv--github-for-jira-dl-vault-compliant/github-app-private-key
510512
GITHUB_CLIENT_SECRET: vault://secret/data/builds/micros-sv--github-for-jira-dl-vault-compliant/github-app-client-secret
511513
WEBHOOK_SECRETS: vault://secret/data/builds/micros-sv--github-for-jira-dl-vault-compliant/github-app-webhook-secrets
514+
COOKIE_SESSION_KEY: vault://secret/data/builds/micros-sv--github-for-jira-dl-vault-compliant/github-app-cookie-session-key
512515
CRYPTOR_SIDECAR_CLIENT_IDENTIFICATION_CHALLENGE: "D92A2D7364AC3057D2A90BA9512D8CA0"
513516
scaling:
514517
instance: c5.2xlarge

src/config/env.ts

+2
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ envCheck(
5555
"APP_URL",
5656
"APP_KEY",
5757
"WEBHOOK_SECRETS",
58+
"COOKIE_SESSION_KEY",
5859
"GITHUB_CLIENT_ID",
5960
"GITHUB_CLIENT_SECRET",
6061
"SQS_BACKFILL_QUEUE_URL",
@@ -91,6 +92,7 @@ export interface EnvVars {
9192
APP_URL: string;
9293
APP_KEY: string;
9394
WEBHOOK_SECRETS: Array<string>;
95+
COOKIE_SESSION_KEY: string;
9496
GITHUB_CLIENT_ID: string;
9597
GITHUB_CLIENT_SECRET: string;
9698
DATABASE_URL: string;

src/middleware/cookiesession-middleware.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const THIRTY_DAYS_MSEC = 30 * 24 * 60 * 60 * 1000;
77

88
// TODO: replace with encryption + Cryptor
99
export const cookieSessionMiddleware = cookieSession({
10-
keys: [createHashWithSharedSecret(envVars.STORAGE_SECRET), envVars.GITHUB_CLIENT_SECRET],
10+
keys: [envVars.COOKIE_SESSION_KEY, createHashWithSharedSecret(envVars.STORAGE_SECRET), envVars.GITHUB_CLIENT_SECRET],
1111
maxAge: THIRTY_DAYS_MSEC,
1212
signed: true,
1313
sameSite: "none",

0 commit comments

Comments
 (0)