feat(libsql): enhance libsql service integration in user permissions and project router

- Added 'libsql' to the Services type in add-permissions.tsx for improved service management.
- Implemented extraction logic for 'libsql' services in the extractServices function.
- Updated project router to include 'libsql' in service filters and response columns, ensuring comprehensive data handling for libsql services.
This commit is contained in:
Mauricio Siu
2026-03-23 15:45:24 -06:00
parent 49d79fcd37
commit dce1454d4d
2 changed files with 38 additions and 13 deletions

View File

@@ -46,7 +46,8 @@ export type Services = {
| "mysql"
| "mongo"
| "redis"
| "compose";
| "compose"
| "libsql";
description?: string | null;
id: string;
createdAt: string;
@@ -136,6 +137,18 @@ export const extractServices = (data: Environment | undefined) => {
serverId: item.serverId,
})) ?? []) as Services[];
const libsql: Services[] =
data?.libsql?.map((item) => ({
appName: item.appName,
name: item.name,
type: "libsql" as const,
id: item.libsqlId,
createdAt: item.createdAt,
status: item.applicationStatus,
description: item.description,
serverId: item.serverId,
})) || [];
applications.push(
...mysql,
...redis,
@@ -143,6 +156,7 @@ export const extractServices = (data: Environment | undefined) => {
...postgres,
...mariadb,
...compose,
...libsql,
);
applications.sort((a, b) => {

View File

@@ -30,6 +30,7 @@ import {
IS_CLOUD,
updateProjectById,
} from "@dokploy/server";
import { db } from "@dokploy/server/db";
import {
addNewEnvironment,
addNewProject,
@@ -37,17 +38,16 @@ import {
checkProjectAccess,
findMemberByUserId,
} from "@dokploy/server/services/permission";
import { db } from "@dokploy/server/db";
import { TRPCError } from "@trpc/server";
import { and, desc, eq, ilike, or, sql } from "drizzle-orm";
import type { AnyPgColumn } from "drizzle-orm/pg-core";
import { z } from "zod";
import { audit } from "@/server/api/utils/audit";
import {
createTRPCRouter,
protectedProcedure,
withPermission,
} from "@/server/api/trpc";
import { audit } from "@/server/api/utils/audit";
import {
apiCreateProject,
apiFindOneProject,
@@ -233,12 +233,13 @@ export const projectRouter = createTRPCRouter({
applicationStatus: true,
},
},
compose: {
where: buildServiceFilter(compose.composeId, accessedServices),
with: { domains: true },
},
libsql: {
where: buildServiceFilter(libsql.libsqlId, accessedServices),
columns: {
libsqlId: true,
name: true,
applicationStatus: true,
},
},
mariadb: {
where: buildServiceFilter(mariadb.mariadbId, accessedServices),
@@ -351,12 +352,11 @@ export const projectRouter = createTRPCRouter({
composeStatus: true,
},
},
libsql: true,
mariadb: true,
mongo: true,
mysql: true,
postgres: true,
redis: true,
libsql: {
columns: {
libsqlId: true,
},
},
},
columns: {
name: true,
@@ -469,6 +469,17 @@ export const projectRouter = createTRPCRouter({
serverId: true,
},
},
libsql: {
columns: {
libsqlId: true,
appName: true,
name: true,
createdAt: true,
applicationStatus: true,
description: true,
serverId: true,
},
},
},
},
},