Skip to content

Commit 4a4d234

Browse files
committed
🐛 Pass clear value in SDKCreatedDto while generating the secret
1 parent e7bede9 commit 4a4d234

File tree

6 files changed

+34
-14
lines changed

6 files changed

+34
-14
lines changed

console/src/lib/components/project/secret/SDKSecretGenerator.svelte

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@
33
import { Key } from "svelte-hero-icons";
44
import { generateSecret } from "$lib/usecases/sdk-secrets/generateSecret";
55
import { toastError } from "$lib/utils/toast";
6-
import type { SdkSecret } from "$lib/entities/sdk-secret/sdk-secret";
76
import CopiableTag from "$lib/components/common/copiable/CopiableTag.svelte";
87
import { projectStore } from "$lib/stores/project";
98
import Alert from "$lib/components/common/alert/Alert.svelte";
109
import Spacer from "$lib/components/common/spacer/Spacer.svelte";
10+
import type { CreatedSdkSecretDto } from "$lib/services/gen-api";
1111
1212
const project = $projectStore.currentProject;
1313
1414
if (!project) throw new Error("No project selected");
1515
1616
let loading = false;
1717
18-
let generatedSecret: SdkSecret | undefined;
18+
let generatedSecret: CreatedSdkSecretDto | undefined;
1919
const generate = async () => {
2020
try {
2121
loading = true;
@@ -39,7 +39,9 @@
3939
able to see it again.
4040
</div>
4141
<Spacer size="sm" />
42-
<CopiableTag value={generatedSecret.hash} displayedValue={generatedSecret.preview} />
42+
<CopiableTag
43+
value={generatedSecret.clearValue}
44+
displayedValue={generatedSecret.preview} />
4345
</Alert>
4446
{/if}
4547
</div>
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import type { CreatedSdkSecretDto } from "$lib/services/gen-api";
12
import { SdkSecretsService } from "$lib/services/gen-api";
2-
import type { SdkSecret } from "$lib/entities/sdk-secret/sdk-secret";
33

4-
export const generateSecret = async (projectId: string): Promise<SdkSecret> => {
4+
export const generateSecret = async (projectId: string): Promise<CreatedSdkSecretDto> => {
55
const secret = await SdkSecretsService.create({
66
requestBody: {
77
description: "SDK Secret generated from the console",
@@ -10,8 +10,6 @@ export const generateSecret = async (projectId: string): Promise<SdkSecret> => {
1010
});
1111

1212
return {
13-
...secret,
14-
createdAt: new Date(secret.createdAt),
15-
updatedAt: new Date(secret.updatedAt)
13+
...secret
1614
};
1715
};

server/openapi.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -919,7 +919,7 @@ components:
919919
CreatedSdkSecretDto:
920920
type: object
921921
properties:
922-
hash:
922+
clearValue:
923923
type: string
924924
id:
925925
type: string
@@ -937,7 +937,7 @@ components:
937937
format: date-time
938938
type: string
939939
required:
940-
- hash
940+
- clearValue
941941
- id
942942
- description
943943
- projectId

server/src/sdk-secrets/dtos/created.sdk-secret.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ import { SanitizedSdkSecretDto } from './sanitized.sdk-secret.dto';
33

44
export class CreatedSdkSecretDto extends SanitizedSdkSecretDto {
55
@IsString()
6-
hash: string;
6+
clearValue: string;
77
}

server/src/sdk-secrets/sdk-secrets.service.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { Injectable } from '@nestjs/common';
2+
import { SdkSecret } from '@prisma/client';
23
import { createHash, randomBytes } from 'crypto';
34
import { PResult, err, ok } from '../common/result';
45
import { PrismaService } from '../prisma/prisma.service';
6+
import { CreatedSdkSecretDto } from './dtos/created.sdk-secret.dto';
7+
import { SanitizedSdkSecretDto } from './dtos/sanitized.sdk-secret.dto';
58
import { VerifyIfIsProjectUserError } from './sdk-secrets.errors';
69

710
@Injectable()
@@ -49,7 +52,21 @@ export class SdkSecretsService {
4952
return ok({ isVerified: true });
5053
}
5154

52-
async createSecret(dto: { projectId: string; creatorId: string }) {
55+
private sanitizeSecret(secret: SdkSecret): SanitizedSdkSecretDto {
56+
return {
57+
id: secret.id,
58+
description: secret.description,
59+
projectId: secret.projectId,
60+
preview: secret.preview,
61+
createdAt: secret.createdAt,
62+
updatedAt: secret.updatedAt,
63+
};
64+
}
65+
66+
async createSecret(dto: {
67+
projectId: string;
68+
creatorId: string;
69+
}): PResult<CreatedSdkSecretDto, VerifyIfIsProjectUserError> {
5370
const { projectId, creatorId } = dto;
5471

5572
const verifyResult = await this.verifyIfProjectUser({
@@ -82,7 +99,10 @@ export class SdkSecretsService {
8299
},
83100
});
84101

85-
return ok(created);
102+
return ok({
103+
...this.sanitizeSecret(created),
104+
clearValue: clearSecret,
105+
});
86106
}
87107

88108
async verifySdkSecret(

typescript-client/src/models/CreatedSdkSecretDto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
/* eslint-disable */
55

66
export type CreatedSdkSecretDto = {
7-
hash: string;
7+
clearValue: string;
88
id: string;
99
description: string | null;
1010
projectId: string;

0 commit comments

Comments
 (0)