FRE-4414: Unblock and update ShieldAI status
- Cleared cancelled blocker FRE-4428 - Updated to in_progress - Added status comment documenting delegated work to CTO/CMO Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { createHTTPServer } from '@trpc/server/adapters/standalone';
|
||||
import { createHTTPServer, type CreateHTTPContextOptions } from '@trpc/server/adapters/standalone';
|
||||
import { verifyToken } from '@clerk/backend';
|
||||
import { projectRouter } from './project-router';
|
||||
import { revisionsRouter } from './revisions-router';
|
||||
import { scriptsRouter } from './scripts-router';
|
||||
@@ -25,19 +26,43 @@ export const appRouter = t.router({
|
||||
|
||||
export type AppRouter = typeof appRouter;
|
||||
|
||||
async function authenticateRequest(req: CreateHTTPContextOptions['req']): Promise<string | undefined> {
|
||||
const authHeader = req.headers['authorization'];
|
||||
if (!authHeader) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const match = authHeader.match(/^Bearer\s+(.+)$/i);
|
||||
if (!match || !match[1]) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const token = match[1];
|
||||
|
||||
try {
|
||||
const verified = await verifyToken(token, {
|
||||
secretKey: process.env.CLERK_SECRET_KEY,
|
||||
});
|
||||
return verified.sub;
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
// Create tRPC HTTP server - db is loaded lazily to avoid requiring Turso env vars at import time
|
||||
export function createTRPCServer(port: number = 8080) {
|
||||
const server = createHTTPServer({
|
||||
router: appRouter,
|
||||
createContext: async (): Promise<TRPCContext> => {
|
||||
createContext: async (opts: CreateHTTPContextOptions): Promise<TRPCContext> => {
|
||||
const { db } = await import('../../src/db/config/migrations');
|
||||
const clerkUserId = await authenticateRequest(opts.req);
|
||||
return {
|
||||
userId: undefined,
|
||||
clerkUserId,
|
||||
db,
|
||||
};
|
||||
},
|
||||
onError: ({ error, path }: { error: TRPCError; path: string | undefined }) => {
|
||||
console.error(`tRPC error on ${path}:`, error.message);
|
||||
console.error(`tRPC error on ${path}: [internal error]`);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user