feat: adds name field to api keys (#5366)

* feat: adds name field to api keys

* remove extra toasts

* prune and norm translations

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
This commit is contained in:
Guilherme Nogueira
2026-04-10 14:40:14 -03:00
committed by GitHub
parent 0325598197
commit 159376e2a1
34 changed files with 738 additions and 379 deletions

View File

@@ -503,10 +503,11 @@ function adminEndpoints(app) {
async (request, response) => {
try {
const user = await userFromSession(request, response);
const { apiKey, error } = await ApiKey.create(user.id);
const { name = null } = reqBody(request);
const { apiKey, error } = await ApiKey.create(user.id, name);
await EventLogs.logEvent(
"api_key_created",
{ createdBy: user?.username },
{ createdBy: user?.username, name: apiKey?.name },
user?.id
);
return response.status(200).json({

View File

@@ -985,16 +985,17 @@ function systemEndpoints(app) {
app.post(
"/system/generate-api-key",
[validatedRequest],
async (_, response) => {
async (request, response) => {
try {
if (response.locals.multiUserMode) {
return response.sendStatus(401).end();
}
const { apiKey, error } = await ApiKey.create();
const { name = null } = reqBody(request);
const { apiKey, error } = await ApiKey.create(null, name);
await EventLogs.logEvent(
"api_key_created",
{},
{ name: apiKey?.name },
response?.locals?.user?.id
);
return response.status(200).json({

View File

@@ -2,17 +2,20 @@ const prisma = require("../utils/prisma");
const ApiKey = {
tablename: "api_keys",
writable: [],
writable: ["name"],
makeSecret: () => {
const uuidAPIKey = require("uuid-apikey");
return uuidAPIKey.create().apiKey;
},
create: async function (createdByUserId = null) {
create: async function (createdByUserId = null, name = null) {
try {
const normalizedName =
typeof name === "string" && name.trim().length > 0 ? name.trim() : null;
const apiKey = await prisma.api_keys.create({
data: {
name: normalizedName,
secret: this.makeSecret(),
createdBy: createdByUserId,
},

View File

@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "api_keys" ADD COLUMN "name" TEXT;

View File

@@ -17,6 +17,7 @@ datasource db {
model api_keys {
id Int @id @default(autoincrement())
name String?
secret String? @unique
createdBy Int?
createdAt DateTime @default(now())