Frank 4 months ago
parent
commit
db6a038829

+ 6 - 4
packages/console/app/src/routes/zen/util/error.ts

@@ -13,13 +13,15 @@ class LimitError extends Error {
 }
 export class RateLimitError extends LimitError {}
 export class FreeUsageLimitError extends LimitError {}
+export class BlackUsageLimitError extends LimitError {}
 
-class SubscriptionUsageLimitError extends LimitError {
+type LimitName = "5 hour" | "weekly" | "monthly"
+export class GoUsageLimitError extends LimitError {
   workspace: string
-  constructor(message: string, workspace: string, retryAfter?: number) {
+  limitName: LimitName
+  constructor(message: string, workspace: string, limitName: LimitName, retryAfter?: number) {
     super(message, retryAfter)
     this.workspace = workspace
+    this.limitName = limitName
   }
 }
-export class GoUsageLimitError extends SubscriptionUsageLimitError {}
-export class BlackUsageLimitError extends SubscriptionUsageLimitError {}

+ 8 - 4
packages/console/app/src/routes/zen/util/handler.ts

@@ -415,8 +415,11 @@ export async function handler(
             message: error.message,
           },
           metadata:
-            error instanceof GoUsageLimitError || error instanceof BlackUsageLimitError
-              ? { workspace: error.workspace }
+            error instanceof GoUsageLimitError
+              ? {
+                  workspace: error.workspace,
+                  limitName: error.limitName,
+                }
               : {},
         }),
         { status: 429, headers },
@@ -710,7 +713,6 @@ export async function handler(
               t("zen.api.error.subscriptionQuotaExceeded", {
                 retryIn: formatRetryTime(result.resetInSec),
               }),
-              authInfo.workspaceID,
               result.resetInSec,
             )
         }
@@ -729,7 +731,6 @@ export async function handler(
               t("zen.api.error.subscriptionQuotaExceeded", {
                 retryIn: formatRetryTime(result.resetInSec),
               }),
-              authInfo.workspaceID,
               result.resetInSec,
             )
         }
@@ -757,6 +758,7 @@ export async function handler(
             throw new GoUsageLimitError(
               t("zen.api.error.subscriptionQuotaExceededUseFreeModels"),
               authInfo.workspaceID,
+              "weekly",
               result.resetInSec,
             )
         }
@@ -773,6 +775,7 @@ export async function handler(
             throw new GoUsageLimitError(
               t("zen.api.error.subscriptionQuotaExceededUseFreeModels"),
               authInfo.workspaceID,
+              "monthly",
               result.resetInSec,
             )
         }
@@ -789,6 +792,7 @@ export async function handler(
             throw new GoUsageLimitError(
               t("zen.api.error.subscriptionQuotaExceededUseFreeModels"),
               authInfo.workspaceID,
+              "5 hour",
               result.resetInSec,
             )
         }

+ 2 - 2
packages/console/core/sst-env.d.ts

@@ -91,8 +91,8 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
-    "INCIDENT_WEBHOOK_SIGNING_SECRET": {
-      "type": "sst.sst.Secret"
+    "HoneycombWebhookSecret": {
+      "type": "random.index/randomPassword.RandomPassword"
       "value": string
     }
     "R2AccessKey": {

+ 2 - 2
packages/console/function/sst-env.d.ts

@@ -91,8 +91,8 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
-    "INCIDENT_WEBHOOK_SIGNING_SECRET": {
-      "type": "sst.sst.Secret"
+    "HoneycombWebhookSecret": {
+      "type": "random.index/randomPassword.RandomPassword"
       "value": string
     }
     "R2AccessKey": {

+ 2 - 2
packages/console/resource/sst-env.d.ts

@@ -91,8 +91,8 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
-    "INCIDENT_WEBHOOK_SIGNING_SECRET": {
-      "type": "sst.sst.Secret"
+    "HoneycombWebhookSecret": {
+      "type": "random.index/randomPassword.RandomPassword"
       "value": string
     }
     "R2AccessKey": {

+ 2 - 2
packages/enterprise/sst-env.d.ts

@@ -91,8 +91,8 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
-    "INCIDENT_WEBHOOK_SIGNING_SECRET": {
-      "type": "sst.sst.Secret"
+    "HoneycombWebhookSecret": {
+      "type": "random.index/randomPassword.RandomPassword"
       "value": string
     }
     "R2AccessKey": {

+ 2 - 2
packages/function/sst-env.d.ts

@@ -91,8 +91,8 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
-    "INCIDENT_WEBHOOK_SIGNING_SECRET": {
-      "type": "sst.sst.Secret"
+    "HoneycombWebhookSecret": {
+      "type": "random.index/randomPassword.RandomPassword"
       "value": string
     }
     "R2AccessKey": {

+ 2 - 2
sst-env.d.ts

@@ -114,8 +114,8 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
-    "INCIDENT_WEBHOOK_SIGNING_SECRET": {
-      "type": "sst.sst.Secret"
+    "HoneycombWebhookSecret": {
+      "type": "random.index/randomPassword.RandomPassword"
       "value": string
     }
     "LogProcessor": {