mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
## Description Currently we are required to ensure PII data is not passed around in search parameters and in the open for GDPR reasons. Allowing us to encrypt and decrypt values with expiry dates will allow us to ensure this doesn't happen. ## Changes Made - Added TPRC router for encryption method ## Testing Performed - Tested encrypting and decrypting data with and without `expiredAt` - Tested via directly accessing API and also via trpc in react components - Tested parsing en email search param in a page and decrypting it successfully ## Checklist - [X] I have tested these changes locally and they work as expected. - [X] I have followed the project's coding style guidelines.
18 lines
527 B
TypeScript
18 lines
527 B
TypeScript
import { encryptSecondaryData } from '@documenso/lib/server-only/crypto/encrypt';
|
|
|
|
import { procedure, router } from '../trpc';
|
|
import { ZEncryptSecondaryDataMutationSchema } from './schema';
|
|
|
|
export const cryptoRouter = router({
|
|
encryptSecondaryData: procedure
|
|
.input(ZEncryptSecondaryDataMutationSchema)
|
|
.mutation(({ input }) => {
|
|
try {
|
|
return encryptSecondaryData(input);
|
|
} catch {
|
|
// Never leak errors for crypto.
|
|
throw new Error('Failed to encrypt data');
|
|
}
|
|
}),
|
|
});
|