mirror of
https://github.com/Mintplex-Labs/anything-llm
synced 2026-04-25 17:15:37 +02:00
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:
committed by
GitHub
parent
0325598197
commit
159376e2a1
@@ -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({
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "api_keys" ADD COLUMN "name" TEXT;
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user