MCPcopy
hub / github.com/Dokploy/dokploy / createApiKey

Function createApiKey

packages/server/src/services/user.ts:512–552  ·  view source on GitHub ↗
(
	userId: string,
	input: {
		name: string;
		prefix?: string;
		expiresIn?: number;
		metadata: {
			organizationId: string;
		};
		rateLimitEnabled?: boolean;
		rateLimitTimeWindow?: number;
		rateLimitMax?: number;
		remaining?: number;
		refillAmount?: number;
		refillInterval?: number;
	},
)

Source from the content-addressed store, hash-verified

510};
511
512export const createApiKey = async (
513 userId: string,
514 input: {
515 name: string;
516 prefix?: string;
517 expiresIn?: number;
518 metadata: {
519 organizationId: string;
520 };
521 rateLimitEnabled?: boolean;
522 rateLimitTimeWindow?: number;
523 rateLimitMax?: number;
524 remaining?: number;
525 refillAmount?: number;
526 refillInterval?: number;
527 },
528) => {
529 const result = await auth.createApiKey({
530 body: {
531 name: input.name,
532 expiresIn: input.expiresIn,
533 prefix: input.prefix,
534 rateLimitEnabled: input.rateLimitEnabled,
535 rateLimitTimeWindow: input.rateLimitTimeWindow,
536 rateLimitMax: input.rateLimitMax,
537 remaining: input.remaining,
538 refillAmount: input.refillAmount,
539 refillInterval: input.refillInterval,
540 userId,
541 },
542 });
543
544 if (input.metadata) {
545 await db
546 .update(apikey)
547 .set({ metadata: JSON.stringify(input.metadata) })
548 .where(eq(apikey.id, result.id));
549 }
550
551 return result;
552};

Callers 1

user.tsFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected