mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-04 23:19:52 +00:00
refactor(infra): colocate stripe lake table
This commit is contained in:
parent
e6691facd7
commit
f07724c224
2 changed files with 86 additions and 82 deletions
|
|
@ -103,6 +103,92 @@ export const stripeWebhook = new stripe.WebhookEndpoint("StripeWebhookEndpoint",
|
|||
],
|
||||
})
|
||||
|
||||
export const stripeEvent = lake
|
||||
? (() => {
|
||||
const billingNamespace = new aws.s3tables.Namespace("LakeBillingNamespace", {
|
||||
namespace: "billing",
|
||||
tableBucketArn: lake.tableBucket.arn,
|
||||
})
|
||||
|
||||
const stripeTable = new aws.s3tables.Table(
|
||||
"LakeBillingStripeTable",
|
||||
{
|
||||
name: "stripe",
|
||||
namespace: billingNamespace.namespace,
|
||||
tableBucketArn: billingNamespace.tableBucketArn,
|
||||
format: "ICEBERG",
|
||||
metadata: {
|
||||
iceberg: {
|
||||
schema: {
|
||||
fields: [
|
||||
{ name: "event_timestamp", type: "string", required: false },
|
||||
{ name: "event_date", type: "string", required: false },
|
||||
{ name: "event_id", type: "string", required: false },
|
||||
{ name: "event_type", type: "string", required: false },
|
||||
{ name: "api_version", type: "string", required: false },
|
||||
{ name: "livemode", type: "boolean", required: false },
|
||||
{ name: "pending_webhooks", type: "int", required: false },
|
||||
{ name: "request_id", type: "string", required: false },
|
||||
{ name: "idempotency_key", type: "string", required: false },
|
||||
{ name: "object_id", type: "string", required: false },
|
||||
{ name: "object_type", type: "string", required: false },
|
||||
{ name: "object_created_timestamp", type: "string", required: false },
|
||||
{ name: "customer_id", type: "string", required: false },
|
||||
{ name: "customer_email", type: "string", required: false },
|
||||
{ name: "customer_name", type: "string", required: false },
|
||||
{ name: "customer_phone", type: "string", required: false },
|
||||
{ name: "workspace_id", type: "string", required: false },
|
||||
{ name: "user_id", type: "string", required: false },
|
||||
{ name: "user_email", type: "string", required: false },
|
||||
{ name: "subscription_id", type: "string", required: false },
|
||||
{ name: "invoice_id", type: "string", required: false },
|
||||
{ name: "charge_id", type: "string", required: false },
|
||||
{ name: "payment_intent_id", type: "string", required: false },
|
||||
{ name: "payment_method_id", type: "string", required: false },
|
||||
{ name: "checkout_session_id", type: "string", required: false },
|
||||
{ name: "refund_id", type: "string", required: false },
|
||||
{ name: "product_id", type: "string", required: false },
|
||||
{ name: "price_id", type: "string", required: false },
|
||||
{ name: "quantity", type: "long", required: false },
|
||||
{ name: "status", type: "string", required: false },
|
||||
{ name: "billing_reason", type: "string", required: false },
|
||||
{ name: "collection_method", type: "string", required: false },
|
||||
{ name: "cancel_at_period_end", type: "boolean", required: false },
|
||||
{ name: "canceled_at_timestamp", type: "string", required: false },
|
||||
{ name: "cancel_at_timestamp", type: "string", required: false },
|
||||
{ name: "cancellation_reason", type: "string", required: false },
|
||||
{ name: "currency", type: "string", required: false },
|
||||
{ name: "amount", type: "long", required: false },
|
||||
{ name: "amount_paid", type: "long", required: false },
|
||||
{ name: "amount_due", type: "long", required: false },
|
||||
{ name: "amount_refunded", type: "long", required: false },
|
||||
{ name: "refunded", type: "boolean", required: false },
|
||||
{ name: "refund_reason", type: "string", required: false },
|
||||
{ name: "current_period_start_timestamp", type: "string", required: false },
|
||||
{ name: "current_period_end_timestamp", type: "string", required: false },
|
||||
{ name: "metadata", type: "string", required: false },
|
||||
{ name: "previous_attributes", type: "string", required: false },
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{ deleteBeforeReplace: $app.stage !== "production" },
|
||||
)
|
||||
|
||||
return new sst.Linkable("StripeEvent", {
|
||||
properties: {
|
||||
region: lake.lakeRegion,
|
||||
catalog: lake.lakeCatalog,
|
||||
database: billingNamespace.namespace,
|
||||
table: stripeTable.name,
|
||||
tableBucket: lake.tableBucket.name,
|
||||
workgroup: lake.lakeAthenaWorkgroup.name,
|
||||
},
|
||||
})
|
||||
})()
|
||||
: undefined
|
||||
|
||||
const zenLiteProduct = new stripe.Product("ZenLite", {
|
||||
name: "OpenCode Go",
|
||||
})
|
||||
|
|
|
|||
|
|
@ -87,77 +87,6 @@ const inferenceEventTable = new aws.s3tables.Table(
|
|||
{ deleteBeforeReplace: $app.stage !== "production" },
|
||||
)
|
||||
|
||||
const billingNamespace = new aws.s3tables.Namespace("LakeBillingNamespace", {
|
||||
namespace: "billing",
|
||||
tableBucketArn: tableBucket.arn,
|
||||
})
|
||||
|
||||
const stripeTable = new aws.s3tables.Table(
|
||||
"LakeBillingStripeTable",
|
||||
{
|
||||
name: "stripe",
|
||||
namespace: billingNamespace.namespace,
|
||||
tableBucketArn: billingNamespace.tableBucketArn,
|
||||
format: "ICEBERG",
|
||||
metadata: {
|
||||
iceberg: {
|
||||
schema: {
|
||||
fields: [
|
||||
{ name: "event_timestamp", type: "string", required: false },
|
||||
{ name: "event_date", type: "string", required: false },
|
||||
{ name: "event_id", type: "string", required: false },
|
||||
{ name: "event_type", type: "string", required: false },
|
||||
{ name: "api_version", type: "string", required: false },
|
||||
{ name: "livemode", type: "boolean", required: false },
|
||||
{ name: "pending_webhooks", type: "int", required: false },
|
||||
{ name: "request_id", type: "string", required: false },
|
||||
{ name: "idempotency_key", type: "string", required: false },
|
||||
{ name: "object_id", type: "string", required: false },
|
||||
{ name: "object_type", type: "string", required: false },
|
||||
{ name: "object_created_timestamp", type: "string", required: false },
|
||||
{ name: "customer_id", type: "string", required: false },
|
||||
{ name: "customer_email", type: "string", required: false },
|
||||
{ name: "customer_name", type: "string", required: false },
|
||||
{ name: "customer_phone", type: "string", required: false },
|
||||
{ name: "workspace_id", type: "string", required: false },
|
||||
{ name: "user_id", type: "string", required: false },
|
||||
{ name: "user_email", type: "string", required: false },
|
||||
{ name: "subscription_id", type: "string", required: false },
|
||||
{ name: "invoice_id", type: "string", required: false },
|
||||
{ name: "charge_id", type: "string", required: false },
|
||||
{ name: "payment_intent_id", type: "string", required: false },
|
||||
{ name: "payment_method_id", type: "string", required: false },
|
||||
{ name: "checkout_session_id", type: "string", required: false },
|
||||
{ name: "refund_id", type: "string", required: false },
|
||||
{ name: "product_id", type: "string", required: false },
|
||||
{ name: "price_id", type: "string", required: false },
|
||||
{ name: "quantity", type: "long", required: false },
|
||||
{ name: "status", type: "string", required: false },
|
||||
{ name: "billing_reason", type: "string", required: false },
|
||||
{ name: "collection_method", type: "string", required: false },
|
||||
{ name: "cancel_at_period_end", type: "boolean", required: false },
|
||||
{ name: "canceled_at_timestamp", type: "string", required: false },
|
||||
{ name: "cancel_at_timestamp", type: "string", required: false },
|
||||
{ name: "cancellation_reason", type: "string", required: false },
|
||||
{ name: "currency", type: "string", required: false },
|
||||
{ name: "amount", type: "long", required: false },
|
||||
{ name: "amount_paid", type: "long", required: false },
|
||||
{ name: "amount_due", type: "long", required: false },
|
||||
{ name: "amount_refunded", type: "long", required: false },
|
||||
{ name: "refunded", type: "boolean", required: false },
|
||||
{ name: "refund_reason", type: "string", required: false },
|
||||
{ name: "current_period_start_timestamp", type: "string", required: false },
|
||||
{ name: "current_period_end_timestamp", type: "string", required: false },
|
||||
{ name: "metadata", type: "string", required: false },
|
||||
{ name: "previous_attributes", type: "string", required: false },
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{ deleteBeforeReplace: $app.stage !== "production" },
|
||||
)
|
||||
|
||||
export const inferenceEvent = new sst.Linkable("InferenceEvent", {
|
||||
properties: {
|
||||
region: lakeRegion,
|
||||
|
|
@ -169,17 +98,6 @@ export const inferenceEvent = new sst.Linkable("InferenceEvent", {
|
|||
},
|
||||
})
|
||||
|
||||
export const stripeEvent = new sst.Linkable("StripeEvent", {
|
||||
properties: {
|
||||
region: lakeRegion,
|
||||
catalog: lakeCatalog,
|
||||
database: billingNamespace.namespace,
|
||||
table: stripeTable.name,
|
||||
tableBucket: tableBucket.name,
|
||||
workgroup: lakeAthenaWorkgroup.name,
|
||||
},
|
||||
})
|
||||
|
||||
////////////////
|
||||
// DATABASE
|
||||
////////////////
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue