diff options
| author | Frank <[email protected]> | 2025-08-10 01:17:48 -0400 |
|---|---|---|
| committer | Frank <[email protected]> | 2025-08-10 01:17:48 -0400 |
| commit | 7fd2222976507b3488f4bee945f6fb0f73dde37b (patch) | |
| tree | 4924b713cb6fe6e9f65436ba3e0a50dad1a4a0c3 /infra | |
| parent | e86adb2ec81e9cbc507ed99fb7e11ed66c5b4c4a (diff) | |
| download | opencode-7fd2222976507b3488f4bee945f6fb0f73dde37b.tar.gz opencode-7fd2222976507b3488f4bee945f6fb0f73dde37b.zip | |
wip: gateway
Diffstat (limited to 'infra')
| -rw-r--r-- | infra/cloud.ts | 77 |
1 files changed, 46 insertions, 31 deletions
diff --git a/infra/cloud.ts b/infra/cloud.ts index 1d93d58da..37fe35a0d 100644 --- a/infra/cloud.ts +++ b/infra/cloud.ts @@ -2,36 +2,9 @@ import { WebhookEndpoint } from "pulumi-stripe" import { domain } from "./stage" import { web } from "./app" -export const stripeWebhook = new WebhookEndpoint("StripeWebhook", { - url: $interpolate`https://api.gateway.${domain}/stripe/webhook`, - enabledEvents: [ - "checkout.session.async_payment_failed", - "checkout.session.async_payment_succeeded", - "checkout.session.completed", - "checkout.session.expired", - "customer.created", - "customer.deleted", - "customer.updated", - "customer.discount.created", - "customer.discount.deleted", - "customer.discount.updated", - "customer.source.created", - "customer.source.deleted", - "customer.source.expiring", - "customer.source.updated", - "customer.subscription.created", - "customer.subscription.deleted", - "customer.subscription.paused", - "customer.subscription.pending_update_applied", - "customer.subscription.pending_update_expired", - "customer.subscription.resumed", - "customer.subscription.trial_will_end", - "customer.subscription.updated", - "customer.tax_id.created", - "customer.tax_id.deleted", - "customer.tax_id.updated", - ], -}) +//////////////// +// DATABASE +//////////////// const DATABASE_USERNAME = new sst.Secret("DATABASE_USERNAME") const DATABASE_PASSWORD = new sst.Secret("DATABASE_PASSWORD") @@ -54,6 +27,10 @@ new sst.x.DevCommand("Studio", { }, }) +//////////////// +// AUTH +//////////////// + const GITHUB_CLIENT_ID_CONSOLE = new sst.Secret("GITHUB_CLIENT_ID_CONSOLE") const GITHUB_CLIENT_SECRET_CONSOLE = new sst.Secret("GITHUB_CLIENT_SECRET_CONSOLE") const GOOGLE_CLIENT_ID = new sst.Secret("GOOGLE_CLIENT_ID") @@ -65,10 +42,44 @@ export const auth = new sst.cloudflare.Worker("AuthApi", { link: [database, authStorage, GITHUB_CLIENT_ID_CONSOLE, GITHUB_CLIENT_SECRET_CONSOLE, GOOGLE_CLIENT_ID], }) +//////////////// +// GATEWAY +//////////////// + +export const stripeWebhook = new WebhookEndpoint("StripeWebhook", { + url: $interpolate`https://api.gateway.${domain}/stripe/webhook`, + enabledEvents: [ + "checkout.session.async_payment_failed", + "checkout.session.async_payment_succeeded", + "checkout.session.completed", + "checkout.session.expired", + "customer.created", + "customer.deleted", + "customer.updated", + "customer.discount.created", + "customer.discount.deleted", + "customer.discount.updated", + "customer.source.created", + "customer.source.deleted", + "customer.source.expiring", + "customer.source.updated", + "customer.subscription.created", + "customer.subscription.deleted", + "customer.subscription.paused", + "customer.subscription.pending_update_applied", + "customer.subscription.pending_update_expired", + "customer.subscription.resumed", + "customer.subscription.trial_will_end", + "customer.subscription.updated", + "customer.tax_id.created", + "customer.tax_id.deleted", + "customer.tax_id.updated", + ], +}) + const ANTHROPIC_API_KEY = new sst.Secret("ANTHROPIC_API_KEY") const OPENAI_API_KEY = new sst.Secret("OPENAI_API_KEY") const ZHIPU_API_KEY = new sst.Secret("ZHIPU_API_KEY") - const STRIPE_SECRET_KEY = new sst.Secret("STRIPE_SECRET_KEY") const AUTH_API_URL = new sst.Linkable("AUTH_API_URL", { properties: { value: auth.url.apply((url) => url!) }, @@ -91,6 +102,10 @@ export const gateway = new sst.cloudflare.Worker("GatewayApi", { ], }) +//////////////// +// CONSOLE +//////////////// + export const console = new sst.cloudflare.x.StaticSite("Console", { domain: `console.${domain}`, path: "cloud/web", |
