From 8ade2f3758205c2ea8c3c9a6b352bcdd011d775d Mon Sep 17 00:00:00 2001 From: Daniel Hougaard <62331820+DanielHougaard@users.noreply.github.com> Date: Mon, 29 Jan 2024 16:51:37 +0400 Subject: [PATCH] Some more fixes for python structure --- .../src/server/routes/v2/service-token-router.ts | 7 +++++-- backend/src/server/routes/v3/secret-router.ts | 14 +++++++++++++- .../services/secret-import/secret-import-fns.ts | 7 ++++++- backend/src/services/secret/secret-dal.ts | 2 +- backend/src/services/secret/secret-service.ts | 6 +++--- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/backend/src/server/routes/v2/service-token-router.ts b/backend/src/server/routes/v2/service-token-router.ts index cb285a8cc..29487d8ff 100644 --- a/backend/src/server/routes/v2/service-token-router.ts +++ b/backend/src/server/routes/v2/service-token-router.ts @@ -25,7 +25,9 @@ export const registerServiceTokenRouter = async (server: FastifyZodProvider) => 200: ServiceTokensSchema.merge( z.object({ workspace: z.string(), - user: sanitizedServiceTokenUserSchema + user: sanitizedServiceTokenUserSchema, + _id: z.string(), + __v: z.number().default(0) }) ) } @@ -44,7 +46,8 @@ export const registerServiceTokenRouter = async (server: FastifyZodProvider) => const formattedServiceToken = { ...serviceToken, - _id: serviceToken.id + _id: serviceToken.id, + __v: 0 } as const; // We return the user here because older versions of the deprecated Python SDK depend on it to properly parse the API response. diff --git a/backend/src/server/routes/v3/secret-router.ts b/backend/src/server/routes/v3/secret-router.ts index 99dc5ddfb..db14eb0f6 100644 --- a/backend/src/server/routes/v3/secret-router.ts +++ b/backend/src/server/routes/v3/secret-router.ts @@ -442,6 +442,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secrets: SecretsSchema.omit({ secretBlindIndex: true }) .merge( z.object({ + _id: z.string(), workspace: z.string(), environment: z.string(), tags: SecretTagsSchema.pick({ @@ -458,7 +459,15 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretPath: z.string(), environment: z.string(), folderId: z.string().optional(), - secrets: SecretsSchema.omit({ secretBlindIndex: true }).array() + secrets: SecretsSchema.omit({ secretBlindIndex: true }) + .merge( + z.object({ + _id: z.string(), + workspace: z.string(), + environment: z.string() + }) + ) + .array() }) .array() .optional() @@ -619,6 +628,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { z.object({ secret: SecretsSchema.omit({ secretBlindIndex: true }).merge( z.object({ + _id: z.string(), workspace: z.string(), environment: z.string() }) @@ -794,6 +804,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { z.object({ secret: SecretsSchema.omit({ secretBlindIndex: true }).merge( z.object({ + _id: z.string(), workspace: z.string(), environment: z.string() }) @@ -963,6 +974,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { z.object({ secret: SecretsSchema.omit({ secretBlindIndex: true }).merge( z.object({ + _id: z.string(), workspace: z.string(), environment: z.string() }) diff --git a/backend/src/services/secret-import/secret-import-fns.ts b/backend/src/services/secret-import/secret-import-fns.ts index 913f6da5b..a05ef964d 100644 --- a/backend/src/services/secret-import/secret-import-fns.ts +++ b/backend/src/services/secret-import/secret-import-fns.ts @@ -37,7 +37,12 @@ export const fnSecretsFromImports = async ({ environmentInfo: importEnv, folderId: importedFolders?.[i]?.id, secrets: importedFolders?.[i]?.id - ? importedSecsGroupByFolderId[importedFolders?.[i]?.id as string] + ? importedSecsGroupByFolderId[importedFolders?.[i]?.id as string].map((item) => ({ + ...item, + environment: importEnv.slug, + workspace: "", // This field should not be used, it's only here to keep the older Python SDK versions backwards compatible with the new Postgres backend. + _id: item.id // The old Python SDK depends on the _id field being returned. We return this to keep the older Python SDK versions backwards compatible with the new Postgres backend. + })) : [] })); }; diff --git a/backend/src/services/secret/secret-dal.ts b/backend/src/services/secret/secret-dal.ts index fbd5f446c..b207f604a 100644 --- a/backend/src/services/secret/secret-dal.ts +++ b/backend/src/services/secret/secret-dal.ts @@ -109,7 +109,7 @@ export const secretDALFactory = (db: TDbClient) => { const data = sqlNestRelationships({ data: secs, key: "id", - parentMapper: (el) => SecretsSchema.parse(el), + parentMapper: (el) => ({ _id: el.id, ...SecretsSchema.parse(el) }), childrenMapper: [ { key: "tagId", diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 2e716df50..f210a72a2 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -145,7 +145,7 @@ export const secretServiceFactory = ({ await secretVersionTagDAL.insertMany(newSecretVersionTags, tx); } - return newSecrets; + return newSecrets.map((secret) => ({ ...secret, _id: secret.id })); }; const fnSecretBulkUpdate = async ({ @@ -194,7 +194,7 @@ export const secretServiceFactory = ({ } } - return newSecrets; + return newSecrets.map((secret) => ({ ...secret, _id: secret.id })); }; const fnSecretBulkDelete = async ({ @@ -539,7 +539,7 @@ export const secretServiceFactory = ({ await secretQueueService.syncSecrets({ secretPath: path, projectId, environment }); // TODO(akhilmhdh-pg): licence check, posthog service and snapshot - return { ...deletedSecret[0], workspace: projectId, environment }; + return { ...deletedSecret[0], _id: deletedSecret[0].id, workspace: projectId, environment }; }; const getSecrets = async ({