Skip to content

Commit b0a6bf9

Browse files
authored
Merge pull request #50 from cipherstash/error-handling
feat: logging error
2 parents bd2db90 + e885975 commit b0a6bf9

9 files changed

Lines changed: 32 additions & 64 deletions

File tree

.changeset/flat-carrots-speak.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@cipherstash/nextjs": minor
3+
"@cipherstash/jseql": minor
4+
---
5+
6+
Fixed improper use of throwing errors, and log with jseql logger.

packages/jseql/src/eql/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type {
66
Column,
77
Plaintext,
88
} from '../cs_plaintext_v1'
9-
import { logger } from '../logger'
9+
import { logger } from '../../../utils/logger'
1010

1111
export type CreateEqlPayload = {
1212
plaintext: Plaintext

packages/jseql/src/ffi/env-check.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { logger } from '../logger'
1+
import { logger } from '../../../utils/logger'
22

33
let message = ''
44
const errorMessage = (message: string) => `Initialization error: ${message}`
@@ -10,7 +10,7 @@ export const checkEnvironmentVariables = () => {
1010
)
1111

1212
logger.error(message)
13-
throw new Error(`[ Server ] jseql: ${message}`)
13+
throw new Error(`[jseql]: ${message}`)
1414
}
1515

1616
if (!process.env.CS_CLIENT_ID || !process.env.CS_CLIENT_KEY) {
@@ -19,7 +19,7 @@ export const checkEnvironmentVariables = () => {
1919
)
2020

2121
logger.error(message)
22-
throw new Error(`[ Server ] jseql: ${message}`)
22+
throw new Error(`[jseql]: ${message}`)
2323
}
2424

2525
if (!process.env.CS_CLIENT_ACCESS_KEY) {
@@ -28,6 +28,6 @@ export const checkEnvironmentVariables = () => {
2828
)
2929

3030
logger.error(message)
31-
throw new Error(`[ Server ] jseql: ${message}`)
31+
throw new Error(`[jseql]: ${message}`)
3232
}
3333
}

packages/jseql/src/ffi/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ import {
44
encrypt,
55
encryptBulk,
66
decryptBulk,
7-
type BulkEncryptPayload as InternalBulkEncryptPayload,
8-
type BulkDecryptPayload as InternalBulkDecryptPayload,
97
} from '@cipherstash/jseql-ffi'
10-
import { logger } from '../logger'
8+
import { logger } from '../../../utils/logger'
119
import type { LockContext } from '../identify'
1210
import { checkEnvironmentVariables } from './env-check'
1311
import {

packages/jseql/src/identify/index.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { logger } from '../logger'
1+
import { logger } from '../../../utils/logger'
22

33
export type CtsRegions = 'ap-southeast-2'
44

@@ -33,7 +33,7 @@ export class LockContext {
3333
const errorMessage =
3434
'CS_WORKSPACE_ID environment variable is not set, and is required to initialize a LockContext.'
3535
logger.error(errorMessage)
36-
throw new Error(`[ Server ] jseql: ${errorMessage}`)
36+
throw new Error(`[jseql]: ${errorMessage}`)
3737
}
3838

3939
if (ctsToken) {
@@ -63,11 +63,9 @@ export class LockContext {
6363
}),
6464
})
6565

66-
console.log('[ Server ] jseql: CTS response', ctsResponse)
67-
6866
if (!ctsResponse.ok) {
6967
throw new Error(
70-
`[ Server ] jseql: Failed to fetch CTS token: ${ctsResponse.statusText}`,
68+
`[jseql]: Failed to fetch CTS token: ${ctsResponse.statusText}`,
7169
)
7270
}
7371

packages/nextjs/src/clerk/index.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { ClerkMiddlewareAuth } from '@clerk/nextjs/server'
22
import type { NextRequest } from 'next/server'
33
import { NextResponse } from 'next/server'
44
import { CS_COOKIE_NAME, type CtsToken } from '../index'
5-
import { logger } from '../logger'
5+
import { logger } from '../../../utils/logger'
66

77
export const jseqlClerkMiddleware = async (
88
auth: ClerkMiddlewareAuth,
@@ -25,10 +25,11 @@ export const jseqlClerkMiddleware = async (
2525
const workspaceId = process.env.CS_WORKSPACE_ID
2626

2727
if (!workspaceId) {
28-
const errorMessage =
29-
'CS_WORKSPACE_ID environment variable is not set, and is required by jseqlClerkMiddleware.'
30-
logger.error(errorMessage)
31-
throw new Error(`[ Server ] jseql: ${errorMessage}`)
28+
logger.error(
29+
'The "CS_WORKSPACE_ID" environment variable is not set, and is required by jseqlClerkMiddleware. No CipherStash session will be set.',
30+
)
31+
32+
return NextResponse.next()
3233
}
3334

3435
const ctsEndoint =
@@ -47,9 +48,13 @@ export const jseqlClerkMiddleware = async (
4748
})
4849

4950
if (!ctsResponse.ok) {
50-
throw new Error(
51-
`[ Server ] jseql: Failed to fetch CTS token: ${ctsResponse.statusText}`,
51+
logger.debug(`Failed to fetch CTS token: ${ctsResponse.statusText}`)
52+
53+
logger.error(
54+
'There was an issue communicating with the CipherStash CTS API, the CipherStash session was not set. If the issue persists, please contact support.',
5255
)
56+
57+
return NextResponse.next()
5358
}
5459

5560
const cts_token = (await ctsResponse.json()) as CtsToken

packages/nextjs/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { cookies } from 'next/headers'
2-
import { logger } from './logger'
2+
import { logger } from '../../utils/logger'
33

44
export const CS_COOKIE_NAME = '__cipherstash_cts_session'
55

packages/nextjs/src/logger/index.ts

Lines changed: 0 additions & 39 deletions
This file was deleted.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function getLevelValue(level: string): number {
77
case 'error':
88
return 30
99
default:
10-
return 20 // default to 'info'
10+
return 30 // default to error level
1111
}
1212
}
1313

@@ -16,19 +16,19 @@ const currentLevel = getLevelValue(envLogLevel)
1616

1717
function debug(...args: unknown[]): void {
1818
if (currentLevel <= getLevelValue('debug')) {
19-
console.debug('[DEBUG]', ...args)
19+
console.debug('[jseql] DEBUG', ...args)
2020
}
2121
}
2222

2323
function info(...args: unknown[]): void {
2424
if (currentLevel <= getLevelValue('info')) {
25-
console.info('[INFO]', ...args)
25+
console.info('[jseql] INFO', ...args)
2626
}
2727
}
2828

2929
function error(...args: unknown[]): void {
3030
if (currentLevel <= getLevelValue('error')) {
31-
console.error('[ERROR]', ...args)
31+
console.error('[jseql] ERROR', ...args)
3232
}
3333
}
3434

0 commit comments

Comments
 (0)