Skip to content

Commit 663185d

Browse files
authored
Email trigger webhook endpoint (#956)
1 parent 36b7506 commit 663185d

File tree

79 files changed

+634
-134
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+634
-134
lines changed

apps/gateway/src/api.routes.ts

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
const BASE_PATH = '/api'
2+
const V1_PATH = `${BASE_PATH}/v1`
3+
const V2_PATH = `${BASE_PATH}/v2`
4+
const V3_PATH = `${BASE_PATH}/v3`
5+
6+
const PROJECTS = 'projects'
7+
const CONVERSATIONS = 'conversations'
8+
const PROJECT_DETAIL = `${PROJECTS}/{projectId}`
9+
const VERSIONS = `${PROJECT_DETAIL}/versions`
10+
const VERSION_DETAIL = `${VERSIONS}/{versionUuid}`
11+
const DOCUMENTS = `${VERSION_DETAIL}/documents`
12+
13+
const V1_DOCUMENTS = `${V1_PATH}/${DOCUMENTS}`
14+
const V2_DOCUMENTS = `${V2_PATH}/${DOCUMENTS}`
15+
const V3_DOCUMENTS = `${V3_PATH}/${DOCUMENTS}`
16+
17+
const V1_CONVERSATIONS = `${V1_PATH}/${CONVERSATIONS}`
18+
const V2_CONVERSATIONS = `${V2_PATH}/${CONVERSATIONS}`
19+
const V3_CONVERSATIONS = `${V3_PATH}/${CONVERSATIONS}`
20+
21+
const V2_CONVERSATION_DETAIL = `${V2_CONVERSATIONS}/{conversationUuid}`
22+
const V3_CONVERSATION_DETAIL = `${V3_CONVERSATIONS}/{conversationUuid}`
23+
24+
const V2_EVALUATIONS = `${V2_CONVERSATIONS}/{conversationUuid}/evaluations`
25+
const V3_EVALUATIONS = `${V3_CONVERSATIONS}/{conversationUuid}/evaluations`
26+
27+
const V2_EVALUATION_DETAIL = `${V2_EVALUATIONS}/{evaluationUuid}`
28+
const V3_EVALUATION_DETAIL = `${V3_EVALUATIONS}/{evaluationUuid}`
29+
30+
const V2_TELEMETRY = `${V2_PATH}/otlp`
31+
const V3_TELEMETRY = `${V3_PATH}/otlp`
32+
33+
export const API_ROUTES = {
34+
v1: {
35+
documents: {
36+
get: `${V1_DOCUMENTS}/:documentPath{.+}`,
37+
run: `${V1_DOCUMENTS}/run`,
38+
logs: `${V1_DOCUMENTS}/logs`,
39+
},
40+
conversations: {
41+
chat: `${V1_CONVERSATIONS}/{conversationUuid}/chat`,
42+
},
43+
},
44+
v2: {
45+
documents: {
46+
get: `${V2_DOCUMENTS}/:documentPath{.+}`,
47+
getOrCreate: `${V2_DOCUMENTS}/get-or-create`,
48+
run: `${V2_DOCUMENTS}/run`,
49+
logs: `${V2_DOCUMENTS}/logs`,
50+
},
51+
conversations: {
52+
chat: `${V2_CONVERSATION_DETAIL}/chat`,
53+
evaluate: `${V2_CONVERSATION_DETAIL}/evaluate`,
54+
createEvaluationResult: `${V2_EVALUATION_DETAIL}/evaluation-results`,
55+
},
56+
telemetry: {
57+
traces: `${V2_TELEMETRY}/v1/traces`,
58+
},
59+
},
60+
v3: {
61+
documents: {
62+
getAll: V3_DOCUMENTS,
63+
get: `${V3_DOCUMENTS}/:documentPath{.+}`,
64+
getOrCreate: `${V3_DOCUMENTS}/get-or-create`,
65+
run: `${V3_DOCUMENTS}/run`,
66+
logs: `${V3_DOCUMENTS}/logs`,
67+
},
68+
conversations: {
69+
chat: `${V3_CONVERSATION_DETAIL}/chat`,
70+
evaluate: `${V3_CONVERSATION_DETAIL}/evaluate`,
71+
createEvaluationResult: `${V3_EVALUATION_DETAIL}/evaluation-results`,
72+
},
73+
telemetry: {
74+
traces: `${V3_TELEMETRY}/v1/traces`,
75+
},
76+
},
77+
}

apps/gateway/src/routes.ts

Lines changed: 4 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,7 @@
1-
const BASE_PATH = '/api'
2-
const V1_PATH = `${BASE_PATH}/v1`
3-
const V2_PATH = `${BASE_PATH}/v2`
4-
const V3_PATH = `${BASE_PATH}/v3`
5-
6-
const PROJECTS = 'projects'
7-
const CONVERSATIONS = 'conversations'
8-
const PROJECT_DETAIL = `${PROJECTS}/{projectId}`
9-
const VERSIONS = `${PROJECT_DETAIL}/versions`
10-
const VERSION_DETAIL = `${VERSIONS}/{versionUuid}`
11-
const DOCUMENTS = `${VERSION_DETAIL}/documents`
12-
13-
const V1_DOCUMENTS = `${V1_PATH}/${DOCUMENTS}`
14-
const V2_DOCUMENTS = `${V2_PATH}/${DOCUMENTS}`
15-
const V3_DOCUMENTS = `${V3_PATH}/${DOCUMENTS}`
16-
17-
const V1_CONVERSATIONS = `${V1_PATH}/${CONVERSATIONS}`
18-
const V2_CONVERSATIONS = `${V2_PATH}/${CONVERSATIONS}`
19-
const V3_CONVERSATIONS = `${V3_PATH}/${CONVERSATIONS}`
20-
21-
const V2_CONVERSATION_DETAIL = `${V2_CONVERSATIONS}/{conversationUuid}`
22-
const V3_CONVERSATION_DETAIL = `${V3_CONVERSATIONS}/{conversationUuid}`
23-
24-
const V2_EVALUATIONS = `${V2_CONVERSATIONS}/{conversationUuid}/evaluations`
25-
const V3_EVALUATIONS = `${V3_CONVERSATIONS}/{conversationUuid}/evaluations`
26-
27-
const V2_EVALUATION_DETAIL = `${V2_EVALUATIONS}/{evaluationUuid}`
28-
const V3_EVALUATION_DETAIL = `${V3_EVALUATIONS}/{evaluationUuid}`
29-
30-
const V2_TELEMETRY = `${V2_PATH}/otlp`
31-
const V3_TELEMETRY = `${V3_PATH}/otlp`
1+
import { API_ROUTES } from './api.routes'
2+
import { WEBHOOK_ROUTES } from './webhook.routes'
323

334
export const ROUTES = {
34-
v1: {
35-
documents: {
36-
get: `${V1_DOCUMENTS}/:documentPath{.+}`,
37-
run: `${V1_DOCUMENTS}/run`,
38-
logs: `${V1_DOCUMENTS}/logs`,
39-
},
40-
conversations: {
41-
chat: `${V1_CONVERSATIONS}/{conversationUuid}/chat`,
42-
},
43-
},
44-
v2: {
45-
documents: {
46-
get: `${V2_DOCUMENTS}/:documentPath{.+}`,
47-
getOrCreate: `${V2_DOCUMENTS}/get-or-create`,
48-
run: `${V2_DOCUMENTS}/run`,
49-
logs: `${V2_DOCUMENTS}/logs`,
50-
},
51-
conversations: {
52-
chat: `${V2_CONVERSATION_DETAIL}/chat`,
53-
evaluate: `${V2_CONVERSATION_DETAIL}/evaluate`,
54-
createEvaluationResult: `${V2_EVALUATION_DETAIL}/evaluation-results`,
55-
},
56-
telemetry: {
57-
traces: `${V2_TELEMETRY}/v1/traces`,
58-
},
59-
},
60-
v3: {
61-
documents: {
62-
getAll: V3_DOCUMENTS,
63-
get: `${V3_DOCUMENTS}/:documentPath{.+}`,
64-
getOrCreate: `${V3_DOCUMENTS}/get-or-create`,
65-
run: `${V3_DOCUMENTS}/run`,
66-
logs: `${V3_DOCUMENTS}/logs`,
67-
},
68-
conversations: {
69-
chat: `${V3_CONVERSATION_DETAIL}/chat`,
70-
evaluate: `${V3_CONVERSATION_DETAIL}/evaluate`,
71-
createEvaluationResult: `${V3_EVALUATION_DETAIL}/evaluation-results`,
72-
},
73-
telemetry: {
74-
traces: `${V3_TELEMETRY}/v1/traces`,
75-
},
76-
},
5+
api: API_ROUTES,
6+
webhook: WEBHOOK_ROUTES,
777
}

apps/gateway/src/routes/api/index.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import v1Routes from '$/routes/api/v1'
2+
import v2Routes from '$/routes/api/v2'
3+
4+
import documents from '$/routes/api/v3/documents'
5+
import conversations from '$/routes/api/v3/conversations'
6+
import telemetry from '$/routes/api/v3/otlp'
7+
import { OpenAPIHono } from '@hono/zod-openapi'
8+
9+
export function configureApiRoutes(app: OpenAPIHono) {
10+
app.route('/', v1Routes)
11+
app.route('/', v2Routes)
12+
13+
app.route('/', documents)
14+
app.route('/', conversations)
15+
app.route('/', telemetry)
16+
}

apps/gateway/src/routes/v1/chat/chat.handler.ts renamed to apps/gateway/src/routes/api/v1/chat/chat.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { captureException } from '@sentry/node'
55
import { streamSSE } from 'hono/streaming'
66

77
import { AppRouteHandler } from '$/openApi/types'
8-
import { ChatRoute } from '$/routes/v1/chat/chat.route'
8+
import { ChatRoute } from '$/routes/api/v1/chat/chat.route'
99
import { legacyChainEventPresenter } from '$/common/documents/getData'
1010
import { convertToLegacyChainStream } from '@latitude-data/core/lib/chainStreamManager/index'
1111

apps/gateway/src/routes/v1/chat/chat.route.ts renamed to apps/gateway/src/routes/api/v1/chat/chat.route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ import {
55
internalInfoSchema,
66
} from '$/openApi/schemas'
77
import { ROUTES } from '$/routes'
8-
import { conversationsParamsSchema } from '$/routes/v2/conversations/paramsSchema'
8+
import { conversationsParamsSchema } from '$/routes/api/v2/conversations/paramsSchema'
99
import { createRoute, z } from '@hono/zod-openapi'
1010
import { messageSchema } from '@latitude-data/core/browser'
1111

1212
export const chatRoute = createRoute({
1313
operationId: 'createChat',
1414
tags: ['V1_DEPRECATED'],
1515
method: http.Methods.POST,
16-
path: ROUTES.v1.conversations.chat,
16+
path: ROUTES.api.v1.conversations.chat,
1717
request: {
1818
params: conversationsParamsSchema,
1919
body: {

apps/gateway/src/routes/v1/index.ts renamed to apps/gateway/src/routes/api/v1/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createRouter } from '$/openApi/createApp'
2-
import { chatHandler, chatRoute } from '$/routes/v1/chat'
2+
import { chatHandler, chatRoute } from '$/routes/api/v1/chat'
33

4-
import { runRoute, runHandler } from '$/routes/v1/run'
4+
import { runRoute, runHandler } from '$/routes/api/v1/run'
55

66
const router = createRouter()
77
.openapi(runRoute, runHandler)

0 commit comments

Comments
 (0)