Dax Raad 2 месяцев назад
Родитель
Сommit
eaa76dad0c

+ 1 - 0
infra/console.ts

@@ -163,6 +163,7 @@ new sst.cloudflare.x.SolidStart("Console", {
     AWS_SES_ACCESS_KEY_ID,
     AWS_SES_SECRET_ACCESS_KEY,
     ZEN_BLACK,
+    new sst.Secret("ZEN_SESSION_SECRET"),
     ...ZEN_MODELS,
     ...($dev
       ? [

+ 0 - 24
packages/console/app/src/context/auth.session.ts

@@ -1,24 +0,0 @@
-import { useSession } from "@solidjs/start/http"
-
-export interface AuthSession {
-  account?: Record<
-    string,
-    {
-      id: string
-      email: string
-    }
-  >
-  current?: string
-}
-
-export function useAuthSession() {
-  return useSession<AuthSession>({
-    password: "0".repeat(32),
-    name: "auth",
-    maxAge: 60 * 60 * 24 * 365,
-    cookie: {
-      secure: false,
-      httpOnly: true,
-    },
-  })
-}

+ 26 - 1
packages/console/app/src/context/auth.ts

@@ -5,13 +5,38 @@ import { redirect } from "@solidjs/router"
 import { Actor } from "@opencode-ai/console-core/actor.js"
 
 import { createClient } from "@openauthjs/openauth/client"
-import { useAuthSession } from "./auth.session"
 
 export const AuthClient = createClient({
   clientID: "app",
   issuer: import.meta.env.VITE_AUTH_URL,
 })
 
+import { useSession } from "@solidjs/start/http"
+import { Resource } from "@opencode-ai/console-resource"
+
+export interface AuthSession {
+  account?: Record<
+    string,
+    {
+      id: string
+      email: string
+    }
+  >
+  current?: string
+}
+
+export function useAuthSession() {
+  return useSession<AuthSession>({
+    password: Resource.ZEN_SESSION_SECRET.value,
+    name: "auth",
+    maxAge: 60 * 60 * 24 * 365,
+    cookie: {
+      secure: false,
+      httpOnly: true,
+    },
+  })
+}
+
 export const getActor = async (workspace?: string): Promise<Actor.Info> => {
   "use server"
   const evt = getRequestEvent()

+ 1 - 1
packages/console/app/src/routes/auth/callback.ts

@@ -1,7 +1,7 @@
 import { redirect } from "@solidjs/router"
 import type { APIEvent } from "@solidjs/start/server"
 import { AuthClient } from "~/context/auth"
-import { useAuthSession } from "~/context/auth.session"
+import { useAuthSession } from "~/context/auth"
 
 export async function GET(input: APIEvent) {
   const url = new URL(input.request.url)

+ 1 - 1
packages/console/app/src/routes/auth/logout.ts

@@ -1,6 +1,6 @@
 import { redirect } from "@solidjs/router"
 import { APIEvent } from "@solidjs/start"
-import { useAuthSession } from "~/context/auth.session"
+import { useAuthSession } from "~/context/auth"
 
 export async function GET(event: APIEvent) {
   const auth = await useAuthSession()

+ 1 - 1
packages/console/app/src/routes/auth/status.ts

@@ -1,5 +1,5 @@
 import { APIEvent } from "@solidjs/start"
-import { useAuthSession } from "~/context/auth.session"
+import { useAuthSession } from "~/context/auth"
 
 export async function GET(input: APIEvent) {
   const session = await useAuthSession()

+ 1 - 1
packages/console/app/src/routes/user-menu.tsx

@@ -1,6 +1,6 @@
 import { action } from "@solidjs/router"
 import { getRequestEvent } from "solid-js/web"
-import { useAuthSession } from "~/context/auth.session"
+import { useAuthSession } from "~/context/auth"
 import { Dropdown } from "~/component/dropdown"
 import "./user-menu.css"
 

+ 4 - 0
packages/console/core/sst-env.d.ts

@@ -130,6 +130,10 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
+    "ZEN_SESSION_SECRET": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
   }
 }
 // cloudflare 

+ 4 - 0
packages/console/function/sst-env.d.ts

@@ -130,6 +130,10 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
+    "ZEN_SESSION_SECRET": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
   }
 }
 // cloudflare 

+ 4 - 0
packages/console/resource/sst-env.d.ts

@@ -130,6 +130,10 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
+    "ZEN_SESSION_SECRET": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
   }
 }
 // cloudflare 

+ 4 - 0
packages/enterprise/sst-env.d.ts

@@ -130,6 +130,10 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
+    "ZEN_SESSION_SECRET": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
   }
 }
 // cloudflare 

+ 4 - 0
packages/function/sst-env.d.ts

@@ -130,6 +130,10 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
+    "ZEN_SESSION_SECRET": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
   }
 }
 // cloudflare 

+ 4 - 0
sst-env.d.ts

@@ -156,6 +156,10 @@ declare module "sst" {
       "type": "sst.sst.Secret"
       "value": string
     }
+    "ZEN_SESSION_SECRET": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
     "ZenData": {
       "name": string
       "type": "sst.cloudflare.Bucket"