Skip to content

Commit 74db8da

Browse files
reverentgeekclaude
andauthored
Update CLAUDE.md and dependencies (#43)
* Update CLAUDE.md with Heroku deployment details Add production Heroku endpoints, deploy-heroku.yml workflow, POST_LOGOUT_REDIRECT_URI env var, Heroku PORT compatibility note, and fix stale JWKS config line reference. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Update dependencies (@types/node, pnpm) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 67d2c03 commit 74db8da

7 files changed

Lines changed: 57 additions & 31 deletions

File tree

CLAUDE.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,12 +167,16 @@ Features:
167167

168168
### Infrastructure
169169

170-
- All services communicate via HTTPS using Caddy's internal CA
171-
- Caddy handles routing via `*.localtest.me` subdomains
172-
- Default endpoints:
170+
- All services communicate via HTTPS using Caddy's internal CA (local) or Heroku's SSL (production)
171+
- **Local development**: Caddy handles routing via `*.localtest.me` subdomains
173172
- Auth: `https://id.localtest.me` (port 3001)
174173
- API: `https://api.localtest.me` (port 3003)
175174
- APP: `https://app.localtest.me` (port 3004)
175+
- **Production (Heroku)**: Deployed as Docker containers to Heroku apps with custom domains
176+
- Auth: `https://auth.plaidypus.dev`
177+
- API: `https://api.plaidypus.dev`
178+
- App: `https://app.plaidypus.dev`
179+
- See `docs/heroku-setup.md` for full setup instructions
176180
- Environment variables in `.env` control service configuration
177181
- TypeScript with ESM modules across all apps
178182
- Shared TypeScript configuration via `tsconfig.base.json`
@@ -247,7 +251,7 @@ The authorization server uses JWKS (JSON Web Key Set) to sign JWT tokens:
247251
- Proper cryptographic key rotation
248252
- Unique key IDs for debugging (e.g., `key-abc123def456`)
249253

250-
**Configuration location:** `apps/auth/src/index.ts` (lines 68-89) loads JWKS from environment and logs warnings if not set
254+
**Configuration location:** `apps/auth/src/index.ts` (lines 110-129) loads JWKS from environment and logs warnings if not set
251255

252256
## Sensitive Data Handling
253257

@@ -263,6 +267,7 @@ All sensitive configuration is managed through environment variables:
263267
| `COOKIE_SECRET` | Session cookie signing | High - Never commit |
264268
| `JWKS` | Token signing keys (contains private key) | Critical - Never commit |
265269
| `OIDC_CLIENTS` | Multiple client configurations | High - Never commit |
270+
| `POST_LOGOUT_REDIRECT_URI` | Post-logout redirect URL | Low - Configurable per environment |
266271

267272
### Template Configuration Files
268273

@@ -340,6 +345,7 @@ This project includes automated CI/CD pipelines and containerization support for
340345
| -------- | ------- | ------- |
341346
| `ci.yml` | PRs, push to main | Lint, build, security audit |
342347
| `security.yml` | Weekly, dependency changes | CodeQL analysis, Docker image scanning |
348+
| `deploy-heroku.yml` | Push to main, manual | Build and deploy all services to Heroku |
343349
| `deploy-*.yml` | Push to paths | Deploy individual services to VM |
344350

345351
#### CI Workflow (`ci.yml`)
@@ -388,6 +394,7 @@ docker compose up --build
388394
- Non-root user for security
389395
- Health checks for container orchestration
390396
- Production-only dependencies
397+
- Heroku PORT compatibility (maps dynamic `PORT` to service-specific port vars)
391398

392399
### Docker Compose
393400

apps/api/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
},
1919
"devDependencies": {
2020
"@types/express": "^5.0.6",
21-
"@types/node": "^25.3.0",
21+
"@types/node": "^25.3.1",
2222
"tsx": "^4.21.0",
2323
"typescript": "^5.9.3"
2424
}

apps/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"@types/cookie-parser": "^1.4.10",
2828
"@types/ejs": "^3.1.5",
2929
"@types/express": "^5.0.6",
30-
"@types/node": "^25.3.0",
30+
"@types/node": "^25.3.1",
3131
"concurrently": "^9.2.1",
3232
"tailwindcss": "^4.2.1",
3333
"tsx": "^4.21.0",

apps/auth/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"@tailwindcss/cli": "^4.2.1",
2424
"@types/ejs": "^3.1.5",
2525
"@types/express": "^5.0.6",
26-
"@types/node": "^25.3.0",
26+
"@types/node": "^25.3.1",
2727
"concurrently": "^9.2.1",
2828
"tailwindcss": "^4.2.1",
2929
"tsx": "^4.21.0",

apps/shared/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
},
5454
"devDependencies": {
5555
"@types/express": "^5.0.6",
56-
"@types/node": "^25.3.0",
56+
"@types/node": "^25.3.1",
5757
"typescript": "^5.9.3"
5858
},
5959
"peerDependencies": {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "core-exchange-node-example",
33
"private": true,
44
"version": "1.0.1",
5-
"packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
5+
"packageManager": "pnpm@10.30.2",
66
"type": "module",
77
"author": "David Neal <dneal@plaid.com> (https://reverentgeek.com)",
88
"contributors": [],

pnpm-lock.yaml

Lines changed: 41 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)