Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/sim/app/api/audit-logs/route.ts
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import { listAuditLogsContract } from '@/lib/api/contracts/audit-logs'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
internalSessionAuth,
} from '@/lib/api/server/routes'
Expand All@@ -18,7 +18,7 @@ export const GET = defineInternalJsonRoute({
rateLimit: internalRateLimits.none({
reason: 'Existing authenticated audit-log settings read has no request-rate policy',
}),
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ query }) => ({
organizationId: query.organizationId,
includeDeparted: query.includeDeparted,
Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/api/table/[tableId]/exports/route.ts
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import { createTableExportResourceContract } from '@/lib/api/contracts/table-transfers'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalTableSessionOrExecutorAuth } from '@/lib/table/api'
Expand All@@ -16,7 +16,7 @@ export const POST = defineInternalJsonRoute({
rateLimit: internalRateLimits.none({
reason: 'Existing authenticated table export creation has no request-rate policy',
}),
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params, body }) => ({
tableId: params.tableId,
workspaceId: body.workspaceId,
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/api/table/[tableId]/groups/route.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,7 +36,7 @@ vi.mock('@/lib/api/server/routes', () => ({
},
extendInternalErrorPolicy: vi.fn(() => ({ kind: 'table' })),
internalErrorResponse: vi.fn(),
internalPlainOrchestrationErrorPolicy: { kind: 'plain' },
internalOrchestrationErrorPolicy: { kind: 'plain' },
internalRateLimits: {
none: ({ reason }: { reason: string }) => ({ kind: 'none', reason }),
},
Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/api/table/[tableId]/groups/route.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -7,7 +7,7 @@ import {
defineInternalJsonRoute,
extendInternalErrorPolicy,
internalErrorResponse,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalTableSessionOrExecutorAuth } from '@/lib/table/api'
Expand All@@ -21,7 +21,7 @@ import { TableLockedError } from '@/lib/table/mutation-locks'
import type { TableDefinition } from '@/lib/table/types'
import { normalizeColumn } from '@/app/api/table/utils'

const errorPolicy = extendInternalErrorPolicy(internalPlainOrchestrationErrorPolicy, (error) =>
const errorPolicy = extendInternalErrorPolicy(internalOrchestrationErrorPolicy, (error) =>
error instanceof TableLockedError
? internalErrorResponse(423, { error: error.message, lock: error.lock })
: null
Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/api/table/exports/[exportId]/download/route.ts
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import { downloadTableExportResourceContract } from '@/lib/api/contracts/table-transfers'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalTableSessionOrExecutorAuth } from '@/lib/table/api'
Expand All@@ -15,7 +15,7 @@ export const GET = defineInternalJsonRoute({
rateLimit: internalRateLimits.none({
reason: 'Existing authenticated table export download signing has no request-rate policy',
}),
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params, query }) => ({
exportId: params.exportId,
workspaceId: query.workspaceId,
Expand Down
6 changes: 3 additions & 3 deletions apps/sim/app/api/table/exports/[exportId]/route.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,7 @@ import {
} from '@/lib/api/contracts/table-transfers'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalTableSessionOrExecutorAuth } from '@/lib/table/api'
Expand All@@ -21,7 +21,7 @@ export const GET = defineInternalJsonRoute({
auth: internalTableSessionOrExecutorAuth,
operation: tableOperations.readExport,
rateLimit,
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params, query }) => ({
exportId: params.exportId,
workspaceId: query.workspaceId,
Expand All@@ -35,7 +35,7 @@ export const DELETE = defineInternalJsonRoute({
auth: internalTableSessionOrExecutorAuth,
operation: tableOperations.cancelExport,
rateLimit,
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params, query }) => ({
exportId: params.exportId,
workspaceId: query.workspaceId,
Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/api/table/imports/[importId]/complete/route.ts
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import { completeTableImportResourceContract } from '@/lib/api/contracts/table-transfers'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalTableSessionOrExecutorAuth } from '@/lib/table/api'
Expand All@@ -16,7 +16,7 @@ export const POST = defineInternalJsonRoute({
rateLimit: internalRateLimits.none({
reason: 'Existing authenticated table import completion has no request-rate policy',
}),
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params, query, headers }) => ({
importId: params.importId,
workspaceId: query.workspaceId,
Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/api/table/imports/[importId]/parts/route.ts
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import { createTableImportPartUrlsContract } from '@/lib/api/contracts/table-transfers'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalTableSessionOrExecutorAuth } from '@/lib/table/api'
Expand All@@ -15,7 +15,7 @@ export const POST = defineInternalJsonRoute({
rateLimit: internalRateLimits.none({
reason: 'Existing authenticated table import part signing has no request-rate policy',
}),
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params, query, headers, body }) => ({
importId: params.importId,
workspaceId: query.workspaceId,
Expand Down
6 changes: 3 additions & 3 deletions apps/sim/app/api/table/imports/[importId]/route.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,7 @@ import {
} from '@/lib/api/contracts/table-transfers'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalTableSessionOrExecutorAuth } from '@/lib/table/api'
Expand All@@ -21,7 +21,7 @@ export const GET = defineInternalJsonRoute({
auth: internalTableSessionOrExecutorAuth,
operation: tableOperations.readImport,
rateLimit,
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params, query }) => ({
importId: params.importId,
workspaceId: query.workspaceId,
Expand All@@ -35,7 +35,7 @@ export const DELETE = defineInternalJsonRoute({
auth: internalTableSessionOrExecutorAuth,
operation: tableOperations.cancelImport,
rateLimit,
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params, query, headers }) => ({
importId: params.importId,
workspaceId: query.workspaceId,
Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/api/table/imports/route.ts
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import { createTableImportResourceContract } from '@/lib/api/contracts/table-transfers'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalTableSessionOrExecutorAuth } from '@/lib/table/api'
Expand All@@ -16,7 +16,7 @@ export const POST = defineInternalJsonRoute({
rateLimit: internalRateLimits.none({
reason: 'Existing authenticated table import creation has no request-rate policy',
}),
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ body }) => ({ body }),
useCase: createTableImportUseCase,
present: ({ import: created }) => ({ data: toV2CreateTableImport(created) }),
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/api/table/table-transfer-routes.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -35,7 +35,7 @@ vi.mock('@/lib/api/server/routes', () => ({
mocks.definitions.push(definition)
return vi.fn()
},
internalPlainOrchestrationErrorPolicy: { kind: 'plain' },
internalOrchestrationErrorPolicy: { kind: 'plain' },
internalRateLimits: {
none: ({ reason }: { reason: string }) => ({ kind: 'none', reason }),
},
Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/api/workflows/[id]/deployed/route.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,7 +5,7 @@ import {
} from '@/lib/api/contracts/deployments'
import {
defineInternalJsonRoute,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { internalWorkflowSessionOrExecutorAuth } from '@/lib/workflows/api'
Expand All@@ -23,7 +23,7 @@ export const GET = defineInternalJsonRoute({
rateLimit: internalRateLimits.none({
reason: 'Preserve existing internal workflow read behavior',
}),
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params }) => ({ workflowId: params.id, state: 'deployed' as const }),
useCase: readWorkflowDefinition,
present: ({ state }) => ({
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/api/workflows/[id]/route.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ vi.mock('@/lib/api/server', () => ({ parseRequest: mocks.parseRequest }))
vi.mock('@/lib/api/server/routes', () => ({
defineInternalJsonRoute: mocks.defineRoute,
InternalUnauthenticatedError: class InternalUnauthenticatedError extends Error {},
internalPlainOrchestrationErrorPolicy: { kind: 'plain-orchestration' },
internalOrchestrationErrorPolicy: { kind: 'plain-orchestration' },
internalRateLimits: { none: vi.fn(() => ({ kind: 'none' })) },
}))

Expand Down
6 changes: 3 additions & 3 deletions apps/sim/app/api/workflows/[id]/route.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -12,7 +12,7 @@ import { parseRequest } from '@/lib/api/server'
import {
defineInternalJsonRoute,
InternalUnauthenticatedError,
internalPlainOrchestrationErrorPolicy,
internalOrchestrationErrorPolicy,
internalRateLimits,
} from '@/lib/api/server/routes'
import { asOrchestrationError, statusForOrchestrationError } from '@/lib/core/orchestration/types'
Expand All@@ -37,7 +37,7 @@ export const GET = defineInternalJsonRoute({
auth: internalWorkflowReadAuth,
operation: readWorkflowDefinition.operation,
rateLimit: workflowInternalRateLimit,
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params }) => ({ workflowId: params.id, state: 'draft' as const }),
useCase: readWorkflowDefinition,
present: ({ workflow: workflowData, state }) => {
Expand DownExpand Up@@ -82,7 +82,7 @@ export const DELETE = defineInternalJsonRoute({
auth: internalWorkflowSessionOrExecutorAuth,
operation: deleteWorkflow.operation,
rateLimit: workflowInternalRateLimit,
errorPolicy: internalPlainOrchestrationErrorPolicy,
errorPolicy: internalOrchestrationErrorPolicy,
mapInput: ({ params }) => ({ workflowId: params.id }),
useCase: deleteWorkflow,
present: () => ({ success: true as const }),
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -143,7 +143,6 @@ describe('PUT /api/workspaces/[id]/files/[fileId]/content', () => {

expect(response.status).toBe(402)
await expect(response.json()).resolves.toEqual({
success: false,
error: 'Storage limit exceeded',
})
})
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,7 +14,7 @@ export const GET = defineInternalJsonRoute({
auth: internalSessionOrExecutorAuth,
operation: csvPreviewWorkspaceFile.operation,
rateLimit: internalRateLimits.none({ reason: 'Preserve existing internal CSV preview behavior' }),
errorPolicy: internalFileErrorPolicies.plain,
errorPolicy: internalFileErrorPolicies.default,
mapInput: ({ params, query }) => ({
fileId: params.fileId,
assertedWorkspaceId: params.id,
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -126,7 +126,6 @@ describe('PATCH /api/workspaces/[id]/files/[fileId]', () => {

expect(response.status).toBe(403)
expect(await response.json()).toEqual({
success: false,
error: 'Insufficient workspace permissions',
})
expect(mocks.captureServerEvent).not.toHaveBeenCalled()
Expand All@@ -139,7 +138,6 @@ describe('PATCH /api/workspaces/[id]/files/[fileId]', () => {

expect(response.status).toBe(500)
expect(await response.json()).toEqual({
success: false,
error: 'Internal server error',
})
})
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -96,7 +96,7 @@ describe('/api/workspaces/[id]/files/[fileId]/share', () => {
const response = await GET(getRequest(), context)

expect(response.status).toBe(403)
expect(await response.json()).toEqual({ success: false, error: 'Access denied' })
expect(await response.json()).toEqual({ error: 'Access denied' })
})

it('renders resource absence as 404', async () => {
Expand DownExpand Up@@ -142,7 +142,7 @@ describe('/api/workspaces/[id]/files/[fileId]/share', () => {
const response = await PUT(putRequest({ isActive: true }), context)

expect(response.status).toBe(400)
expect(await response.json()).toEqual({ success: false, error: 'Password is required' })
expect(await response.json()).toEqual({ error: 'Password is required' })
})

it('preserves the internal caller-supplied token field for compatibility', async () => {
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -112,7 +112,6 @@ describe('/api/workspaces/[id]/files/folders/[folderId]', () => {

expect(response.status).toBe(409)
await expect(response.json()).resolves.toEqual({
success: false,
error: 'A folder named "Reports" already exists in this location',
})
expect(mocks.captureServerEvent).not.toHaveBeenCalled()
Expand DownExpand Up@@ -140,7 +139,6 @@ describe('/api/workspaces/[id]/files/folders/[folderId]', () => {

expect(response.status).toBe(404)
expect(await response.json()).toEqual({
success: false,
error: `Workspace file items not found (folders: ${FOLDER_ID})`,
})
expect(mocks.captureServerEvent).not.toHaveBeenCalled()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,6 @@ describe('/api/workspaces/[id]/files/folders', () => {

expect(response.status).toBe(409)
await expect(response.json()).resolves.toEqual({
success: false,
error: 'A folder named "Reports" already exists in this location',
})
expect(mocks.captureServerEvent).not.toHaveBeenCalled()
Expand Down
1 change: 0 additions & 1 deletion apps/sim/app/api/workspaces/[id]/files/move/route.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,6 @@ describe('/api/workspaces/[id]/files/move', () => {

expect(response.status).toBe(409)
await expect(response.json()).resolves.toEqual({
success: false,
error: 'A file named "report.csv" already exists in the destination folder',
})
expect(mocks.captureServerEvent).not.toHaveBeenCalled()
Expand Down
3 changes: 1 addition & 2 deletions apps/sim/app/api/workspaces/[id]/files/route.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -146,13 +146,12 @@ describe('/api/workspaces/[id]/files', () => {
mocks.createFile.mockRejectedValueOnce(new OrchestrationError('conflict', 'Name exists'))
const conflict = await POST(createRequest({ name: 'notes.md' }), context)
expect(conflict.status).toBe(409)
expect(await conflict.json()).toEqual({ success: false, error: 'Name exists' })
expect(await conflict.json()).toEqual({ error: 'Name exists' })

mocks.createFile.mockRejectedValueOnce(new Error('database details'))
const unexpected = await POST(createRequest({ name: 'notes.md' }), context)
expect(unexpected.status).toBe(500)
expect(await unexpected.json()).toEqual({
success: false,
error: 'Internal server error',
})
})
Expand Down
1 change: 0 additions & 1 deletion apps/sim/lib/api/server/routes/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -9,7 +9,6 @@ export {
internalErrorResponse,
internalJsonPresenters,
internalOrchestrationErrorPolicy,
internalPlainOrchestrationErrorPolicy,
internalRateLimits,
internalSessionAuth,
} from '@/lib/api/server/routes/internal-json-route'
Expand Down
Loading
Loading