MCPcopy
hub / github.com/simstudioai/sim / performCreateWorkspaceApiKey

Function performCreateWorkspaceApiKey

apps/sim/lib/api-key/orchestration/index.ts:32–82  ·  view source on GitHub ↗
(
  params: PerformCreateWorkspaceApiKeyParams
)

Source from the content-addressed store, hash-verified

30}
31
32export async function performCreateWorkspaceApiKey(
33 params: PerformCreateWorkspaceApiKeyParams
34): Promise<PerformCreateWorkspaceApiKeyResult> {
35 try {
36 const key = await createWorkspaceApiKey({
37 workspaceId: params.workspaceId,
38 userId: params.userId,
39 name: params.name,
40 })
41
42 try {
43 PlatformEvents.apiKeyGenerated({
44 userId: params.userId,
45 keyName: params.name,
46 })
47 } catch {}
48
49 logger.info('Created workspace API key', {
50 workspaceId: params.workspaceId,
51 keyId: key.id,
52 name: params.name,
53 })
54
55 recordAudit({
56 workspaceId: params.workspaceId,
57 actorId: params.userId,
58 actorName: params.actorName ?? undefined,
59 actorEmail: params.actorEmail ?? undefined,
60 action: AuditAction.API_KEY_CREATED,
61 resourceType: AuditResourceType.API_KEY,
62 resourceId: key.id,
63 resourceName: params.name,
64 description: `Created API key "${params.name}"`,
65 metadata: {
66 keyName: params.name,
67 keyType: 'workspace',
68 source: params.source ?? 'settings',
69 },
70 })
71
72 return { success: true, key }
73 } catch (error) {
74 const message = toError(error).message
75 logger.error('Failed to create workspace API key', { error })
76 return {
77 success: false,
78 error: message,
79 errorCode: message.includes('already exists') ? 'conflict' : 'internal',
80 }
81 }
82}

Callers 2

executeGenerateApiKeyFunction · 0.90
route.tsFile · 0.90

Calls 5

createWorkspaceApiKeyFunction · 0.90
recordAuditFunction · 0.90
toErrorFunction · 0.90
infoMethod · 0.80
errorMethod · 0.80

Tested by

no test coverage detected