Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,12 @@ SENTRY_DSN_DESKTOP=
# -----------------------------------------------------------------------------
RESEND_API_KEY=

# -----------------------------------------------------------------------------
# Stripe Billing
# -----------------------------------------------------------------------------
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=

# -----------------------------------------------------------------------------
# Upstash Redis & QStash
# -----------------------------------------------------------------------------
Expand Down
40 changes: 36 additions & 4 deletions .github/workflows/deploy-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,10 @@ jobs:
QSTASH_NEXT_SIGNING_KEY: ${{ secrets.QSTASH_NEXT_SIGNING_KEY }}
ELECTRIC_URL: ${{ env.ELECTRIC_URL }}
ELECTRIC_SECRET: ${{ secrets.ELECTRIC_SECRET_PREVIEW }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_MONTHLY_PRICE_ID: ${{ secrets.STRIPE_PRO_MONTHLY_PRICE_ID }}
STRIPE_PRO_YEARLY_PRICE_ID: ${{ secrets.STRIPE_PRO_YEARLY_PRICE_ID }}
run: |
vercel pull --yes --environment=preview --token=$VERCEL_TOKEN
vercel build --token=$VERCEL_TOKEN
Expand Down Expand Up @@ -230,7 +234,11 @@ jobs:
--env QSTASH_CURRENT_SIGNING_KEY=$QSTASH_CURRENT_SIGNING_KEY \
--env QSTASH_NEXT_SIGNING_KEY=$QSTASH_NEXT_SIGNING_KEY \
--env ELECTRIC_URL=$ELECTRIC_URL \
--env ELECTRIC_SECRET=$ELECTRIC_SECRET)
--env ELECTRIC_SECRET=$ELECTRIC_SECRET \
--env STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \
--env STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \
--env STRIPE_PRO_MONTHLY_PRICE_ID=$STRIPE_PRO_MONTHLY_PRICE_ID \
--env STRIPE_PRO_YEARLY_PRICE_ID=$STRIPE_PRO_YEARLY_PRICE_ID)
vercel alias $VERCEL_URL ${{ env.API_ALIAS }} --scope=$VERCEL_ORG_ID --token=$VERCEL_TOKEN
echo "vercel_url=$VERCEL_URL" >> $GITHUB_OUTPUT

Expand Down Expand Up @@ -309,6 +317,10 @@ jobs:
KV_REST_API_URL: ${{ secrets.KV_REST_API_URL }}
KV_REST_API_TOKEN: ${{ secrets.KV_REST_API_TOKEN }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_MONTHLY_PRICE_ID: ${{ secrets.STRIPE_PRO_MONTHLY_PRICE_ID }}
STRIPE_PRO_YEARLY_PRICE_ID: ${{ secrets.STRIPE_PRO_YEARLY_PRICE_ID }}
run: |
vercel pull --yes --environment=preview --token=$VERCEL_TOKEN
vercel build --token=$VERCEL_TOKEN
Expand All @@ -328,7 +340,11 @@ jobs:
--env NEXT_PUBLIC_SENTRY_ENVIRONMENT=$NEXT_PUBLIC_SENTRY_ENVIRONMENT \
--env KV_REST_API_URL=$KV_REST_API_URL \
--env KV_REST_API_TOKEN=$KV_REST_API_TOKEN \
--env RESEND_API_KEY=$RESEND_API_KEY)
--env RESEND_API_KEY=$RESEND_API_KEY \
--env STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \
--env STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \
--env STRIPE_PRO_MONTHLY_PRICE_ID=$STRIPE_PRO_MONTHLY_PRICE_ID \
--env STRIPE_PRO_YEARLY_PRICE_ID=$STRIPE_PRO_YEARLY_PRICE_ID)
vercel alias $VERCEL_URL ${{ env.WEB_ALIAS }} --scope=$VERCEL_ORG_ID --token=$VERCEL_TOKEN
echo "vercel_url=$VERCEL_URL" >> $GITHUB_OUTPUT

Expand Down Expand Up @@ -392,6 +408,10 @@ jobs:
KV_REST_API_URL: ${{ secrets.KV_REST_API_URL }}
KV_REST_API_TOKEN: ${{ secrets.KV_REST_API_TOKEN }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_MONTHLY_PRICE_ID: ${{ secrets.STRIPE_PRO_MONTHLY_PRICE_ID }}
STRIPE_PRO_YEARLY_PRICE_ID: ${{ secrets.STRIPE_PRO_YEARLY_PRICE_ID }}
run: |
vercel pull --yes --environment=preview --token=$VERCEL_TOKEN
vercel build --token=$VERCEL_TOKEN
Expand All @@ -408,7 +428,11 @@ jobs:
--env NEXT_PUBLIC_SENTRY_ENVIRONMENT=$NEXT_PUBLIC_SENTRY_ENVIRONMENT \
--env KV_REST_API_URL=$KV_REST_API_URL \
--env KV_REST_API_TOKEN=$KV_REST_API_TOKEN \
--env RESEND_API_KEY=$RESEND_API_KEY)
--env RESEND_API_KEY=$RESEND_API_KEY \
--env STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \
--env STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \
--env STRIPE_PRO_MONTHLY_PRICE_ID=$STRIPE_PRO_MONTHLY_PRICE_ID \
--env STRIPE_PRO_YEARLY_PRICE_ID=$STRIPE_PRO_YEARLY_PRICE_ID)
vercel alias $VERCEL_URL ${{ env.MARKETING_ALIAS }} --scope=$VERCEL_ORG_ID --token=$VERCEL_TOKEN
echo "vercel_url=$VERCEL_URL" >> $GITHUB_OUTPUT

Expand Down Expand Up @@ -487,6 +511,10 @@ jobs:
KV_REST_API_URL: ${{ secrets.KV_REST_API_URL }}
KV_REST_API_TOKEN: ${{ secrets.KV_REST_API_TOKEN }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_MONTHLY_PRICE_ID: ${{ secrets.STRIPE_PRO_MONTHLY_PRICE_ID }}
STRIPE_PRO_YEARLY_PRICE_ID: ${{ secrets.STRIPE_PRO_YEARLY_PRICE_ID }}
run: |
vercel pull --yes --environment=preview --token=$VERCEL_TOKEN
vercel build --token=$VERCEL_TOKEN
Expand All @@ -507,7 +535,11 @@ jobs:
--env NEXT_PUBLIC_SENTRY_ENVIRONMENT=$NEXT_PUBLIC_SENTRY_ENVIRONMENT \
--env KV_REST_API_URL=$KV_REST_API_URL \
--env KV_REST_API_TOKEN=$KV_REST_API_TOKEN \
--env RESEND_API_KEY=$RESEND_API_KEY)
--env RESEND_API_KEY=$RESEND_API_KEY \
--env STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \
--env STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \
--env STRIPE_PRO_MONTHLY_PRICE_ID=$STRIPE_PRO_MONTHLY_PRICE_ID \
--env STRIPE_PRO_YEARLY_PRICE_ID=$STRIPE_PRO_YEARLY_PRICE_ID)
vercel alias $VERCEL_URL ${{ env.ADMIN_ALIAS }} --scope=$VERCEL_ORG_ID --token=$VERCEL_TOKEN
echo "vercel_url=$VERCEL_URL" >> $GITHUB_OUTPUT

Expand Down
40 changes: 36 additions & 4 deletions .github/workflows/deploy-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,10 @@ jobs:
QSTASH_NEXT_SIGNING_KEY: ${{ secrets.QSTASH_NEXT_SIGNING_KEY }}
ELECTRIC_URL: ${{ secrets.ELECTRIC_URL }}
ELECTRIC_SECRET: ${{ secrets.ELECTRIC_SECRET }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_MONTHLY_PRICE_ID: ${{ secrets.STRIPE_PRO_MONTHLY_PRICE_ID }}
STRIPE_PRO_YEARLY_PRICE_ID: ${{ secrets.STRIPE_PRO_YEARLY_PRICE_ID }}
run: |
vercel pull --yes --environment=production --token=$VERCEL_TOKEN
vercel build --prod --token=$VERCEL_TOKEN
Expand Down Expand Up @@ -134,7 +138,11 @@ jobs:
--env QSTASH_CURRENT_SIGNING_KEY=$QSTASH_CURRENT_SIGNING_KEY \
--env QSTASH_NEXT_SIGNING_KEY=$QSTASH_NEXT_SIGNING_KEY \
--env ELECTRIC_URL=$ELECTRIC_URL \
--env ELECTRIC_SECRET=$ELECTRIC_SECRET
--env ELECTRIC_SECRET=$ELECTRIC_SECRET \
--env STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \
--env STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \
--env STRIPE_PRO_MONTHLY_PRICE_ID=$STRIPE_PRO_MONTHLY_PRICE_ID \
--env STRIPE_PRO_YEARLY_PRICE_ID=$STRIPE_PRO_YEARLY_PRICE_ID

deploy-web:
name: Deploy Web to Vercel
Expand Down Expand Up @@ -185,6 +193,10 @@ jobs:
KV_REST_API_URL: ${{ secrets.KV_REST_API_URL }}
KV_REST_API_TOKEN: ${{ secrets.KV_REST_API_TOKEN }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_MONTHLY_PRICE_ID: ${{ secrets.STRIPE_PRO_MONTHLY_PRICE_ID }}
STRIPE_PRO_YEARLY_PRICE_ID: ${{ secrets.STRIPE_PRO_YEARLY_PRICE_ID }}
run: |
vercel pull --yes --environment=production --token=$VERCEL_TOKEN
vercel build --prod --token=$VERCEL_TOKEN
Expand All @@ -204,7 +216,11 @@ jobs:
--env NEXT_PUBLIC_SENTRY_ENVIRONMENT=$NEXT_PUBLIC_SENTRY_ENVIRONMENT \
--env KV_REST_API_URL=$KV_REST_API_URL \
--env KV_REST_API_TOKEN=$KV_REST_API_TOKEN \
--env RESEND_API_KEY=$RESEND_API_KEY
--env RESEND_API_KEY=$RESEND_API_KEY \
--env STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \
--env STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \
--env STRIPE_PRO_MONTHLY_PRICE_ID=$STRIPE_PRO_MONTHLY_PRICE_ID \
--env STRIPE_PRO_YEARLY_PRICE_ID=$STRIPE_PRO_YEARLY_PRICE_ID

deploy-marketing:
name: Deploy Marketing to Vercel
Expand Down Expand Up @@ -252,6 +268,10 @@ jobs:
KV_REST_API_URL: ${{ secrets.KV_REST_API_URL }}
KV_REST_API_TOKEN: ${{ secrets.KV_REST_API_TOKEN }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_MONTHLY_PRICE_ID: ${{ secrets.STRIPE_PRO_MONTHLY_PRICE_ID }}
STRIPE_PRO_YEARLY_PRICE_ID: ${{ secrets.STRIPE_PRO_YEARLY_PRICE_ID }}
run: |
vercel pull --yes --environment=production --token=$VERCEL_TOKEN
vercel build --prod --token=$VERCEL_TOKEN
Expand All @@ -268,7 +288,11 @@ jobs:
--env NEXT_PUBLIC_SENTRY_ENVIRONMENT=$NEXT_PUBLIC_SENTRY_ENVIRONMENT \
--env KV_REST_API_URL=$KV_REST_API_URL \
--env KV_REST_API_TOKEN=$KV_REST_API_TOKEN \
--env RESEND_API_KEY=$RESEND_API_KEY
--env RESEND_API_KEY=$RESEND_API_KEY \
--env STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \
--env STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \
--env STRIPE_PRO_MONTHLY_PRICE_ID=$STRIPE_PRO_MONTHLY_PRICE_ID \
--env STRIPE_PRO_YEARLY_PRICE_ID=$STRIPE_PRO_YEARLY_PRICE_ID

deploy-admin:
name: Deploy Admin to Vercel
Expand Down Expand Up @@ -320,6 +344,10 @@ jobs:
KV_REST_API_URL: ${{ secrets.KV_REST_API_URL }}
KV_REST_API_TOKEN: ${{ secrets.KV_REST_API_TOKEN }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_MONTHLY_PRICE_ID: ${{ secrets.STRIPE_PRO_MONTHLY_PRICE_ID }}
STRIPE_PRO_YEARLY_PRICE_ID: ${{ secrets.STRIPE_PRO_YEARLY_PRICE_ID }}
run: |
vercel pull --yes --environment=production --token=$VERCEL_TOKEN
vercel build --prod --token=$VERCEL_TOKEN
Expand All @@ -340,7 +368,11 @@ jobs:
--env NEXT_PUBLIC_SENTRY_ENVIRONMENT=$NEXT_PUBLIC_SENTRY_ENVIRONMENT \
--env KV_REST_API_URL=$KV_REST_API_URL \
--env KV_REST_API_TOKEN=$KV_REST_API_TOKEN \
--env RESEND_API_KEY=$RESEND_API_KEY
--env RESEND_API_KEY=$RESEND_API_KEY \
--env STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \
--env STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \
--env STRIPE_PRO_MONTHLY_PRICE_ID=$STRIPE_PRO_MONTHLY_PRICE_ID \
--env STRIPE_PRO_YEARLY_PRICE_ID=$STRIPE_PRO_YEARLY_PRICE_ID

deploy-docs:
name: Deploy Docs to Vercel
Expand Down
4 changes: 2 additions & 2 deletions apps/admin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@sentry/nextjs": "^10.32.1",
"@sentry/nextjs": "^10.36.0",
"@superset/auth": "workspace:*",
"@superset/db": "workspace:*",
"@superset/shared": "workspace:*",
Expand All @@ -23,7 +23,7 @@
"@trpc/client": "^11.7.1",
"@trpc/server": "^11.7.1",
"@trpc/tanstack-react-query": "^11.7.1",
"better-auth": "1.4.16",
"better-auth": "^1.4.17",
"date-fns": "^4.1.0",
"drizzle-orm": "0.45.1",
"import-in-the-middle": "2.0.1",
Expand Down
4 changes: 4 additions & 0 deletions apps/admin/src/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ export const env = createEnv({
RESEND_API_KEY: z.string(),
KV_REST_API_URL: z.string(),
KV_REST_API_TOKEN: z.string(),
STRIPE_SECRET_KEY: z.string(),
STRIPE_WEBHOOK_SECRET: z.string(),
STRIPE_PRO_MONTHLY_PRICE_ID: z.string(),
STRIPE_PRO_YEARLY_PRICE_ID: z.string(),
SENTRY_AUTH_TOKEN: z.string().optional(),
},

Expand Down
4 changes: 2 additions & 2 deletions apps/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"@octokit/app": "^16.1.2",
"@octokit/rest": "^22.0.1",
"@octokit/webhooks": "^14.2.0",
"@sentry/nextjs": "^10.32.1",
"@sentry/nextjs": "^10.36.0",
"@superset/auth": "workspace:*",
"@superset/db": "workspace:*",
"@superset/shared": "workspace:*",
Expand All @@ -25,7 +25,7 @@
"@trpc/server": "^11.7.1",
"@upstash/qstash": "^2.8.4",
"@vercel/blob": "^2.0.0",
"better-auth": "1.4.16",
"better-auth": "^1.4.17",
"date-fns": "^4.1.0",
"drizzle-orm": "0.45.1",
"import-in-the-middle": "2.0.1",
Expand Down
4 changes: 4 additions & 0 deletions apps/api/src/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ export const env = createEnv({
RESEND_API_KEY: z.string(),
KV_REST_API_URL: z.string(),
KV_REST_API_TOKEN: z.string(),
STRIPE_SECRET_KEY: z.string(),
STRIPE_WEBHOOK_SECRET: z.string(),
STRIPE_PRO_MONTHLY_PRICE_ID: z.string(),
STRIPE_PRO_YEARLY_PRICE_ID: z.string(),
SENTRY_AUTH_TOKEN: z.string().optional(),
},
client: {
Expand Down
3 changes: 2 additions & 1 deletion apps/desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"test": "bun test"
},
"dependencies": {
"@better-auth/stripe": "^1.4.17",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
Expand Down Expand Up @@ -73,7 +74,7 @@
"@xterm/addon-webgl": "^0.18.0",
"@xterm/headless": "^5.5.0",
"@xterm/xterm": "^5.5.0",
"better-auth": "1.4.16",
"better-auth": "^1.4.17",
"better-sqlite3": "12.5.0",
"bindings": "^1.5.0",
"clsx": "^2.1.1",
Expand Down
7 changes: 6 additions & 1 deletion apps/desktop/src/renderer/lib/auth-client.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { stripeClient } from "@better-auth/stripe/client";
import type { auth } from "@superset/auth/server";
import {
customSessionClient,
Expand All @@ -24,7 +25,11 @@ export function getAuthToken(): string | null {
*/
export const authClient = createAuthClient({
baseURL: env.NEXT_PUBLIC_API_URL,
plugins: [organizationClient(), customSessionClient<typeof auth>()],
plugins: [
organizationClient(),
customSessionClient<typeof auth>(),
stripeClient({ subscription: true }),
],
fetchOptions: {
credentials: "include",
onRequest: async (context) => {
Expand Down
Loading
Loading