Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: Clerk migration #100

Merged
merged 30 commits into from Apr 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
685c612
build(ui): Add @clerk/nextjs 5.0.1
daryllimyt Apr 23, 2024
864f99e
feat(ui): Add clerk provider
daryllimyt Apr 23, 2024
2ea4a4d
feat(ui): Add clerk sign-in and sign-up routes
daryllimyt Apr 23, 2024
8b898b1
build(ui): Add @clerk/clerk-js 5.1.1
daryllimyt Apr 26, 2024
a4d89b9
fix(ui): Ungroup clerk auth routes
daryllimyt Apr 27, 2024
a5ac049
feat(engine): Update API auth for Clerk [1/N]
daryllimyt Apr 27, 2024
1243ed9
fix(ui): Auth route styles and redirects
daryllimyt Apr 27, 2024
51e9b5b
refactor(ui): Remove supabase related components
daryllimyt Apr 27, 2024
67ceb06
feat(ui): Replace Supabase middleware with Clerk middleware
daryllimyt Apr 27, 2024
669b552
feat(ui): Consolidate auth token injection logic as conditional axios…
daryllimyt Apr 27, 2024
d4fc2da
refactor(ui): Remove Supabase auth [1/N]
daryllimyt Apr 27, 2024
e7219af
refactor(ui): Remove Supabase auth [2/N]
daryllimyt Apr 27, 2024
8678ad2
refactor(ui): Remove Supabase auth [3/N]
daryllimyt Apr 27, 2024
859834f
refactor(ui): Remove Supabase auth [4/N]
daryllimyt Apr 27, 2024
a700c3a
refactor(ui): Remove Supabase auth [5/N]
daryllimyt Apr 27, 2024
ff38716
refactor(ui): Replace Supabase auth provider with Clerk provider
daryllimyt Apr 27, 2024
6c5c813
fix(ui): Allow base action regex to take whitespace
daryllimyt Apr 27, 2024
5e6bc5e
feat(ui): Update sign in/up styles + prevent from force redirecting
daryllimyt Apr 27, 2024
30ad69b
build(ui): Add react-confetti-explosion 2.1.2
daryllimyt Apr 27, 2024
4f8de7d
feat(ui): Add account settings page
daryllimyt Apr 27, 2024
2a381f3
feat(ui): Add onboarding page
daryllimyt Apr 27, 2024
998a212
refactor(ui): Import next Metadata as type
daryllimyt Apr 27, 2024
ec9e315
refactor(ui): Remove print
daryllimyt Apr 27, 2024
ae19d55
build(ui): Update docker compose to use new environment variables
daryllimyt Apr 27, 2024
2714b38
build(ui): Update .env.example
daryllimyt Apr 27, 2024
1270f6a
feat(ui+engine): Add environment variable flag to disable authentication
daryllimyt Apr 27, 2024
19ab31a
fix(ui): Escape apostrophes
daryllimyt Apr 28, 2024
9e8b02a
build: Add clerk env var to build args and env
daryllimyt Apr 28, 2024
462d5c2
feat(ui): Explicitly pass in clerk publishable key
daryllimyt Apr 28, 2024
1a59cc9
build: Remove supabase env vas
daryllimyt Apr 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
11 changes: 9 additions & 2 deletions .env.example
Expand Up @@ -17,8 +17,9 @@ TRACECAT__API_URL=http://api:8000
TRACECAT__RUNNER_URL=https://your-ngrok-runner-url

# API env vars
SUPABASE_JWT_SECRET=super-secret-jwt-token-with-at-least-32-characters-long
SUPABASE_JWT_ALGORITHM=HS256
## Used for Clerk JWKS endpoint and to verify JWT iss
CLERK_FRONTEND_API_URL=your-clerk-frontend-api-url


# Frontend env vars
NODE_ENV="development"
Expand All @@ -36,6 +37,12 @@ NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_INGEST_HOST="https://www.your-domain.com/ingest"
NEXT_PUBLIC_POSTHOG_HOST="https://app.posthog.com"
NEXT_PUBLIC_DISABLE_SESSION_RECORDING=true
# If using Clerk, you need these:
CLERK_SECRET_KEY=your-clerk-secret-key
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your-clerk-pub-key
## NOTE: This must be set to use `auth().redirectToSignIn` API.
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up

# Integrations env vars (optional)
OPENAI_API_KEY=your-openai-api-key
Expand Down
15 changes: 10 additions & 5 deletions docker-compose.yaml
Expand Up @@ -22,8 +22,8 @@ services:
TRACECAT__API_URL: ${TRACECAT__API_URL}
TRACECAT__RUNNER_URL: ${TRACECAT__RUNNER_URL}
# Auth
SUPABASE_JWT_SECRET: ${SUPABASE_JWT_SECRET}
SUPABASE_JWT_ALGORITHM: ${SUPABASE_JWT_ALGORITHM}
CLERK_FRONTEND_API_URL: ${CLERK_FRONTEND_API_URL}
TRACECAT__DISABLE_AUTH: ${TRACECAT__DISABLE_AUTH}
# Integrations
OPENAI_API_KEY: ${OPENAI_API_KEY}
restart: unless-stopped
Expand Down Expand Up @@ -103,18 +103,23 @@ services:
args:
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL}
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL}
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY}
container_name: frontend
env_file: .env
ports:
- "3000:3000"
environment:
NODE_ENV: ${NODE_ENV}
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL}
NEXT_PUBLIC_APP_ENV: ${NEXT_PUBLIC_APP_ENV}
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL}
NEXT_PUBLIC_SELF_HOSTED: true
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
NODE_ENV: ${NODE_ENV}
# Auth
NEXT_PUBLIC_DISABLE_AUTH: ${TRACECAT__DISABLE_AUTH} # Prefix with NEXT_PUBLIC_ to expose to client
CLERK_SECRET_KEY: ${CLERK_SECRET_KEY}
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY}
NEXT_PUBLIC_CLERK_SIGN_IN_URL: ${NEXT_PUBLIC_CLERK_SIGN_IN_URL}
NEXT_PUBLIC_CLERK_SIGN_UP_URL: ${NEXT_PUBLIC_CLERK_SIGN_UP_URL}
restart: unless-stopped
depends_on:
- api
Expand Down
2 changes: 2 additions & 0 deletions frontend/Dockerfile
Expand Up @@ -3,11 +3,13 @@ FROM node:21-slim AS base
# Need these URLs in both build and runtime
ARG NEXT_PUBLIC_API_URL
ARG NEXT_PUBLIC_APP_URL
ARG NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY

ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}
ENV NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL}
ENV NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY}

RUN corepack enable
COPY . /app
Expand Down
3 changes: 3 additions & 0 deletions frontend/package.json
Expand Up @@ -20,6 +20,8 @@
"dependencies": {
"@blocknote/core": "^0.12.0",
"@blocknote/react": "^0.12.0",
"@clerk/clerk-js": "^5.1.1",
"@clerk/nextjs": "^5.0.1",
"@hookform/resolvers": "^3.3.4",
"@radix-ui/react-accordion": "^1.1.2",
"@radix-ui/react-alert-dialog": "^1.0.5",
Expand Down Expand Up @@ -61,6 +63,7 @@
"next-themes": "^0.2.1",
"posthog-js": "^1.116.2",
"react": "^18.2.0",
"react-confetti-explosion": "^2.1.2",
"react-day-picker": "8.10.0",
"react-dom": "^18.2.0",
"react-hook-form": "^7.51.0",
Expand Down