MCPcopy Create free account
hub / github.com/ShipSecAI/studio / createSecret

Method createSecret

backend/src/secrets/secrets.repository.ts:201–254  ·  view source on GitHub ↗
(
    secretData: Omit<NewSecret, 'id' | 'createdAt' | 'updatedAt'>,
    versionData: Omit<NewSecretVersion, 'id' | 'secretId' | 'version' | 'createdAt' | 'isActive'>,
  )

Source from the content-addressed store, hash-verified

199 }
200
201 async createSecret(
202 secretData: Omit<NewSecret, 'id' | 'createdAt' | 'updatedAt'>,
203 versionData: Omit<NewSecretVersion, 'id' | 'secretId' | 'version' | 'createdAt' | 'isActive'>,
204 ): Promise<SecretSummary> {
205 try {
206 return await this.db.transaction(async (tx) => {
207 const [secret] = await tx
208 .insert(secrets)
209 .values({
210 ...secretData,
211 organizationId: secretData.organizationId ?? DEFAULT_ORGANIZATION_ID,
212 })
213 .returning();
214
215 const newVersionNumber = 1;
216
217 const [insertedVersion] = await tx
218 .insert(secretVersions)
219 .values({
220 ...versionData,
221 secretId: secret.id,
222 version: newVersionNumber,
223 isActive: true,
224 organizationId:
225 versionData.organizationId ?? secret.organizationId ?? DEFAULT_ORGANIZATION_ID,
226 })
227 .returning();
228
229 const [updatedSecret] = await tx
230 .update(secrets)
231 .set({ updatedAt: sql`now()` })
232 .where(eq(secrets.id, secret.id))
233 .returning();
234
235 return this.mapSummary({
236 id: updatedSecret.id,
237 name: updatedSecret.name,
238 description: updatedSecret.description,
239 tags: updatedSecret.tags,
240 createdAt: updatedSecret.createdAt,
241 updatedAt: updatedSecret.updatedAt,
242 versionId: insertedVersion.id,
243 version: insertedVersion.version,
244 versionCreatedAt: insertedVersion.createdAt,
245 versionCreatedBy: insertedVersion.createdBy,
246 });
247 });
248 } catch (error: any) {
249 if (error?.code === '23505') {
250 throw new ConflictException(`Secret name '${secretData.name}' already exists`);
251 }
252 throw error;
253 }
254 }
255
256 async rotateSecret(
257 secretId: string,

Callers

nothing calls this directly

Calls 4

mapSummaryMethod · 0.95
insertMethod · 0.45
setMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected