mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-27 21:01:03 +08:00
Some checks failed
all-good: Did all the other checks pass? / all-good (push) Has been cancelled
Ensure Prisma migrations are in sync with the schema / check_prisma_migrations (22.x) (push) Has been cancelled
Docker Emulator Test / docker (push) Has been cancelled
Docker Server Build and Push / Docker Build and Push Server (push) Has been cancelled
Docker Server Test / docker (push) Has been cancelled
Runs E2E API Tests / build (22.x) (push) Has been cancelled
Runs E2E API Tests with external source of truth / build (22.x) (push) Has been cancelled
Lint & build / lint_and_build (latest) (push) Has been cancelled
Dev Environment Test / restart-dev-and-test (push) Has been cancelled
Run setup tests / setup-tests (push) Has been cancelled
TOC Generator / TOC Generator (push) Has been cancelled
<!--
Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md
-->
<!-- ELLIPSIS_HIDDEN -->
----
> [!IMPORTANT]
> Introduce comprehensive payment and subscription management with
Stripe integration, including new models, API endpoints, UI components,
and extensive tests.
>
> - **Features**:
> - Add Stripe integration for payments and subscriptions in
`apps/backend/src/lib/stripe.tsx` and
`apps/backend/src/app/api/latest/integrations/stripe/webhooks/route.tsx`.
> - Implement payment offers and items management in
`apps/backend/src/app/api/latest/payments`.
> - Add UI components for payment management in
`apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/payments`.
> - **Models**:
> - Add `Subscription` model in `prisma/schema.prisma` and
`prisma/migrations/20250805195319_subscriptions/migration.sql`.
> - **Tests**:
> - Add end-to-end tests for payment APIs in
`apps/e2e/tests/backend/endpoints/api/v1/payments`.
> - **Configuration**:
> - Update environment variables in `.env.development` and
`docker.compose.yaml` for Stripe.
> - **Misc**:
> - Add new known errors related to payments in `known-errors.tsx`.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for 972c24854f. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>
----
<!-- ELLIPSIS_HIDDEN -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Introduced comprehensive payments and subscriptions management with
Stripe integration.
* Added UI for managing payment offers, items, and purchase URLs in the
dashboard.
* Implemented Stripe onboarding, purchase sessions, and return flow
handling.
* Added Stripe Connect and Elements integration with theme-aware UI
components.
* **Bug Fixes**
* Enhanced validation and error handling for payments APIs and
customer/item type consistency.
* **Tests**
* Added extensive end-to-end and backend tests for payments and
purchase-related endpoints.
* **Chores**
* Updated environment variables and dependencies for Stripe support.
* Added Stripe mock service to development Docker Compose.
* **Documentation**
* Extended schemas and types for payment offers, prices, items, and
customer types.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Konstantin Wohlwend <n2d4xc@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
59 lines
2.9 KiB
Plaintext
59 lines
2.9 KiB
Plaintext
NEXT_PUBLIC_STACK_API_URL=http://localhost:8102
|
|
NEXT_PUBLIC_STACK_DASHBOARD_URL=http://localhost:8101
|
|
STACK_SERVER_SECRET=23-wuNpik0gIW4mruTz25rbIvhuuvZFrLOLtL7J4tyo
|
|
|
|
STACK_SEED_INTERNAL_PROJECT_SIGN_UP_ENABLED=true
|
|
STACK_SEED_INTERNAL_PROJECT_OTP_ENABLED=true
|
|
STACK_SEED_INTERNAL_PROJECT_ALLOW_LOCALHOST=true
|
|
STACK_SEED_INTERNAL_PROJECT_OAUTH_PROVIDERS=github,spotify,google,microsoft
|
|
STACK_SEED_INTERNAL_PROJECT_USER_INTERNAL_ACCESS=true
|
|
STACK_SEED_INTERNAL_PROJECT_PUBLISHABLE_CLIENT_KEY=this-publishable-client-key-is-for-local-development-only
|
|
STACK_SEED_INTERNAL_PROJECT_SECRET_SERVER_KEY=this-secret-server-key-is-for-local-development-only
|
|
STACK_SEED_INTERNAL_PROJECT_SUPER_SECRET_ADMIN_KEY=this-super-secret-admin-key-is-for-local-development-only
|
|
|
|
STACK_OAUTH_MOCK_URL=http://localhost:8114
|
|
|
|
STACK_GITHUB_CLIENT_ID=MOCK
|
|
STACK_GITHUB_CLIENT_SECRET=MOCK
|
|
STACK_GOOGLE_CLIENT_ID=MOCK
|
|
STACK_GOOGLE_CLIENT_SECRET=MOCK
|
|
STACK_MICROSOFT_CLIENT_ID=MOCK
|
|
STACK_MICROSOFT_CLIENT_SECRET=MOCK
|
|
STACK_SPOTIFY_CLIENT_ID=MOCK
|
|
STACK_SPOTIFY_CLIENT_SECRET=MOCK
|
|
|
|
STACK_ALLOW_SHARED_OAUTH_ACCESS_TOKENS=true
|
|
|
|
STACK_DATABASE_CONNECTION_STRING=postgres://postgres:PASSWORD-PLACEHOLDER--uqfEC1hmmv@localhost:5432/stackframe?connection_limit=20
|
|
STACK_DIRECT_DATABASE_CONNECTION_STRING=postgres://postgres:PASSWORD-PLACEHOLDER--uqfEC1hmmv@localhost:5432/stackframe?connection_limit=20
|
|
|
|
STACK_EMAIL_HOST=127.0.0.1
|
|
STACK_EMAIL_PORT=2500
|
|
STACK_EMAIL_SECURE=false
|
|
STACK_EMAIL_USERNAME=does not matter, ignored by Inbucket
|
|
STACK_EMAIL_PASSWORD=does not matter, ignored by Inbucket
|
|
STACK_EMAIL_SENDER=noreply@example.com
|
|
|
|
STACK_ACCESS_TOKEN_EXPIRATION_TIME=30s
|
|
|
|
STACK_SVIX_SERVER_URL=http://localhost:8113
|
|
STACK_SVIX_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NTUxNDA2MzksImV4cCI6MTk3MDUwMDYzOSwibmJmIjoxNjU1MTQwNjM5LCJpc3MiOiJzdml4LXNlcnZlciIsInN1YiI6Im9yZ18yM3JiOFlkR3FNVDBxSXpwZ0d3ZFhmSGlyTXUifQ.En8w77ZJWbd0qrMlHHupHUB-4cx17RfzFykseg95SUk
|
|
|
|
STACK_ARTIFICIAL_DEVELOPMENT_DELAY_MS=50
|
|
|
|
STACK_ENABLE_HARDCODED_PASSKEY_CHALLENGE_FOR_TESTING=yes
|
|
|
|
STACK_INTEGRATION_CLIENTS_CONFIG=[{"client_id": "neon-local", "client_secret": "neon-local-secret", "id_token_signed_response_alg": "ES256", "redirect_uris": ["http://localhost:30000/api/v2/identity/authorize", "http://localhost:30000/api/v2/auth/authorize"]}, {"client_id": "custom-local", "client_secret": "custom-local-secret", "id_token_signed_response_alg": "ES256", "redirect_uris": ["http://localhost:30000/api/v2/identity/authorize", "http://localhost:30000/api/v2/auth/authorize"]}]
|
|
CRON_SECRET=mock_cron_secret
|
|
STACK_FREESTYLE_API_KEY=mock_stack_freestyle_key
|
|
STACK_OPENAI_API_KEY=mock_openai_api_key
|
|
STACK_STRIPE_SECRET_KEY=sk_test_mockstripekey
|
|
STACK_STRIPE_WEBHOOK_SECRET=mock_stripe_webhook_secret
|
|
|
|
# S3 Configuration for local development using s3mock
|
|
STACK_S3_ENDPOINT=http://localhost:8121
|
|
STACK_S3_REGION=us-east-1
|
|
STACK_S3_ACCESS_KEY_ID=s3mockroot
|
|
STACK_S3_SECRET_ACCESS_KEY=s3mockroot
|
|
STACK_S3_BUCKET=stack-storage
|