@@ -85,14 +85,19 @@ app.all('/sessions/:userId/:sessionId/ingest', async (c: Context<HonoContext>) =
8585 return c . text ( 'Expected WebSocket upgrade' , 426 ) ;
8686 }
8787
88+ const rawUserId = c . req . param ( 'userId' ) ;
89+ const sessionId = c . req . param ( 'sessionId' ) ;
90+ if ( ! rawUserId || ! sessionId ) {
91+ return c . text ( 'Missing route params' , 400 ) ;
92+ }
93+
8894 let userId : string ;
8995 try {
90- userId = decodeURIComponent ( c . req . param ( 'userId' ) ) ;
96+ userId = decodeURIComponent ( rawUserId ) ;
9197 } catch {
9298 return c . text ( 'Invalid userId encoding' , 400 ) ;
9399 }
94100
95- const sessionId = c . req . param ( 'sessionId' ) ;
96101 const authHeader = c . req . header ( 'Authorization' ) ;
97102 const authResult = await validateKiloToken ( authHeader ?? null , c . env . NEXTAUTH_SECRET ) ;
98103 if ( ! authResult . success ) {
@@ -116,14 +121,21 @@ const MAX_LOG_UPLOAD_BYTES = 50 * 1024 * 1024; // 50 MB
116121app . put (
117122 '/sessions/:userId/:sessionId/logs/:executionId/:filename' ,
118123 async ( c : Context < HonoContext > ) => {
124+ const rawUserId = c . req . param ( 'userId' ) ;
125+ const filename = c . req . param ( 'filename' ) ;
126+ const sessionId = c . req . param ( 'sessionId' ) ;
127+ const executionId = c . req . param ( 'executionId' ) ;
128+ if ( ! rawUserId || ! filename || ! sessionId || ! executionId ) {
129+ return c . text ( 'Missing route params' , 400 ) ;
130+ }
131+
119132 let userId : string ;
120133 try {
121- userId = decodeURIComponent ( c . req . param ( 'userId' ) ) ;
134+ userId = decodeURIComponent ( rawUserId ) ;
122135 } catch {
123136 return c . text ( 'Invalid userId encoding' , 400 ) ;
124137 }
125138
126- const filename = c . req . param ( 'filename' ) ;
127139 if ( ! ALLOWED_LOG_FILENAMES . has ( filename ) ) {
128140 return c . text ( 'Invalid filename' , 400 ) ;
129141 }
@@ -151,8 +163,6 @@ app.put(
151163 return c . text ( 'Request body too large' , 413 ) ;
152164 }
153165
154- const sessionId = c . req . param ( 'sessionId' ) ;
155- const executionId = c . req . param ( 'executionId' ) ;
156166 const safeUserId = encodeURIComponent ( userId ) ;
157167 const safeSessionId = encodeURIComponent ( sessionId ) ;
158168 const safeExecutionId = encodeURIComponent ( executionId ) ;
0 commit comments