From 1331e361771012955499e80abec112932ba744e3 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sat, 14 Feb 2026 16:42:11 +0100 Subject: [PATCH] Structured libs --- src/app/api/auth/route.ts | 8 ++++---- src/app/api/container/route.ts | 8 ++++---- src/app/api/container/start/route.ts | 10 +++++----- src/app/api/container/stats/route.ts | 6 +++--- src/app/api/deploy/route.ts | 2 +- src/app/api/get-deployments/route.ts | 6 +++--- src/app/api/logs/route.ts | 4 ++-- src/app/api/metrics/route.ts | 4 ++-- src/app/api/status/route.ts | 4 ++-- src/core/auth/session.ts | 12 ++++++++---- src/lib/dockship/application.ts | 6 +++--- src/lib/dockship/node.ts | 4 ++-- src/{app/api => lib/server}/auth.ts | 6 +++--- src/{app/api => lib/server}/file.ts | 0 src/{app/api => lib/server}/types.ts | 0 15 files changed, 42 insertions(+), 38 deletions(-) rename src/{app/api => lib/server}/auth.ts (78%) rename src/{app/api => lib/server}/file.ts (100%) rename src/{app/api => lib/server}/types.ts (100%) diff --git a/src/app/api/auth/route.ts b/src/app/api/auth/route.ts index 37b97e3..e27820f 100644 --- a/src/app/api/auth/route.ts +++ b/src/app/api/auth/route.ts @@ -1,9 +1,9 @@ import { NextRequest, NextResponse } from "next/server"; import { version } from "@/../package.json"; -import testAuth from "../auth"; +import testAuth from "../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; -import { read } from "@/app/api/file"; -import { NodeJsonTemplate } from "../types"; +import { read } from "@/lib/server/file"; +import { NodeJsonTemplate } from "../../../lib/server/types"; import osName from "os-name"; export async function GET(req: NextRequest): Promise { @@ -12,7 +12,7 @@ export async function GET(req: NextRequest): Promise { if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } diff --git a/src/app/api/container/route.ts b/src/app/api/container/route.ts index 8deb02f..77e2a52 100644 --- a/src/app/api/container/route.ts +++ b/src/app/api/container/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import testAuth from "../auth"; +import testAuth from "../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; import { getDocker, removeContainer } from "@/core/docker"; import { Docker } from "@/lib/types"; @@ -10,7 +10,7 @@ export async function GET(req: NextRequest): Promise { if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } @@ -30,14 +30,14 @@ export async function DELETE(req: NextRequest): Promise { if (!id) { return NextResponse.json( { message: "Invalid containerId param" }, - { status: StatusCodes.BAD_REQUEST } + { status: StatusCodes.BAD_REQUEST }, ); } if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } diff --git a/src/app/api/container/start/route.ts b/src/app/api/container/start/route.ts index d593d28..ad32547 100644 --- a/src/app/api/container/start/route.ts +++ b/src/app/api/container/start/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import testAuth from "../../auth"; +import testAuth from "../../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; import { startContainer, stopContainer } from "@/core/docker"; @@ -10,14 +10,14 @@ export async function POST(req: NextRequest): Promise { if (!id) { return NextResponse.json( { message: "Invalid containerId param" }, - { status: StatusCodes.BAD_REQUEST } + { status: StatusCodes.BAD_REQUEST }, ); } if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } @@ -35,14 +35,14 @@ export async function DELETE(req: NextRequest): Promise { if (!id) { return NextResponse.json( { message: "Invalid containerId param" }, - { status: StatusCodes.BAD_REQUEST } + { status: StatusCodes.BAD_REQUEST }, ); } if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } diff --git a/src/app/api/container/stats/route.ts b/src/app/api/container/stats/route.ts index 324b83a..1f47488 100644 --- a/src/app/api/container/stats/route.ts +++ b/src/app/api/container/stats/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import testAuth from "../../auth"; +import testAuth from "../../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; import { getContainerStats } from "@/core/docker"; @@ -10,14 +10,14 @@ export async function GET(req: NextRequest): Promise { if (!id) { return NextResponse.json( { message: "Invalid containerId param" }, - { status: StatusCodes.BAD_REQUEST } + { status: StatusCodes.BAD_REQUEST }, ); } if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } diff --git a/src/app/api/deploy/route.ts b/src/app/api/deploy/route.ts index 676d11f..2278762 100644 --- a/src/app/api/deploy/route.ts +++ b/src/app/api/deploy/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import testAuth from "../auth"; +import testAuth from "../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; import { deployApp, toggleDeployment } from "@/core/deployment"; import { Application, Port } from "@/lib/types"; diff --git a/src/app/api/get-deployments/route.ts b/src/app/api/get-deployments/route.ts index 5be519f..8c3437c 100644 --- a/src/app/api/get-deployments/route.ts +++ b/src/app/api/get-deployments/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import testAuth from "../auth"; +import testAuth from "../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; import { getDeployments } from "@/core/deployment"; @@ -10,14 +10,14 @@ export async function POST(req: NextRequest): Promise { if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } if (!apps) return NextResponse.json( { message: "Body should be Application[]" }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); const deployments = await getDeployments(apps); diff --git a/src/app/api/logs/route.ts b/src/app/api/logs/route.ts index 2c4d920..452c8cf 100644 --- a/src/app/api/logs/route.ts +++ b/src/app/api/logs/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import testAuth from "../auth"; +import testAuth from "../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; import { getAllContainerLogs } from "@/core/docker"; @@ -9,7 +9,7 @@ export async function GET(req: NextRequest): Promise { if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } diff --git a/src/app/api/metrics/route.ts b/src/app/api/metrics/route.ts index a727fcd..806f5c6 100644 --- a/src/app/api/metrics/route.ts +++ b/src/app/api/metrics/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import testAuth from "../auth"; +import testAuth from "../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; import si from "systeminformation"; import { average } from "@/lib/format"; @@ -93,7 +93,7 @@ export async function GET(req: NextRequest): Promise { if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } diff --git a/src/app/api/status/route.ts b/src/app/api/status/route.ts index a0f1186..bf161c8 100644 --- a/src/app/api/status/route.ts +++ b/src/app/api/status/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from "next/server"; -import testAuth from "../auth"; +import testAuth from "../../../lib/server/auth"; import { StatusCodes } from "http-status-codes"; import si from "systeminformation"; import { NodeLiveData } from "@/lib/types"; @@ -10,7 +10,7 @@ export async function GET(req: NextRequest): Promise { if (auth) { return NextResponse.json( { message: auth }, - { status: StatusCodes.UNAUTHORIZED } + { status: StatusCodes.UNAUTHORIZED }, ); } diff --git a/src/core/auth/session.ts b/src/core/auth/session.ts index 0852287..80c554d 100644 --- a/src/core/auth/session.ts +++ b/src/core/auth/session.ts @@ -1,5 +1,7 @@ "use server"; -import { read, write } from "@/app/api/file"; +import testAuth from "@/lib/server/auth"; +import { read, write } from "@/lib/server/file"; +import { NodeJsonTemplate } from "@/lib/server/types"; import axios from "axios"; import { createHash } from "crypto"; import { cookies } from "next/headers"; @@ -20,7 +22,7 @@ export async function getSession(): Promise< const tokens: Record = await read( () => ({}), "data", - "sessions.json" + "sessions.json", ); const tokenHash = createHash("sha256").update(accessToken).digest("hex"); @@ -36,7 +38,7 @@ export async function getSession(): Promise< // Test the token const users = Object.keys( - await read(() => ({}), "data", "users.json") + await read(() => ({}), "data", "users.json"), ); if (!users.includes(String(userId))) { @@ -44,8 +46,10 @@ export async function getSession(): Promise< await write( { [userId]: { roles: ["admin"] } } as Users, // First user is always an admin "data", - "users.json" + "users.json", ); + const { key } = await read(NodeJsonTemplate, "data", "node.json"); + console.log(`Node key: ${key}\ncwd: ${process.cwd()}`); } else { throw new Error("Invalid user"); } diff --git a/src/lib/dockship/application.ts b/src/lib/dockship/application.ts index 064f8ed..d1847ab 100644 --- a/src/lib/dockship/application.ts +++ b/src/lib/dockship/application.ts @@ -2,7 +2,7 @@ import { verifySession } from "../../core/auth/session"; import { Env, EnvVariable, Application } from "@/lib/types"; -import { read, write } from "@/app/api/file"; +import { read, write } from "@/lib/server/file"; import { randomUUID } from "crypto"; export async function getApps(): Promise { @@ -19,7 +19,7 @@ export async function getApp(appId: string): Promise { } return (await read(() => [], "data", "apps.json")).find( - (app) => app.id === appId + (app) => app.id === appId, ); } @@ -86,7 +86,7 @@ export async function getEnv(): Promise> { export async function setEnv( appId: string, - variables: Record + variables: Record, ) { if (await verifySession()) { throw new Error("Unauthorized"); diff --git a/src/lib/dockship/node.ts b/src/lib/dockship/node.ts index 17229e0..80dfbaa 100644 --- a/src/lib/dockship/node.ts +++ b/src/lib/dockship/node.ts @@ -1,6 +1,6 @@ "use server"; -import { read, write } from "@/app/api/file"; +import { read, write } from "@/lib/server/file"; import { Node, NodeLiveData } from "@/lib/types"; import axios from "axios"; import { verifySession } from "../../core/auth/session"; @@ -30,7 +30,7 @@ export async function getLiveNodes(): Promise<(NodeLiveData & Node)[]> { headers: { Authorization: `ApiKey ${node.key}` }, }) ).data.liveData, - })) + })), ); } diff --git a/src/app/api/auth.ts b/src/lib/server/auth.ts similarity index 78% rename from src/app/api/auth.ts rename to src/lib/server/auth.ts index 9355a2c..249490b 100644 --- a/src/app/api/auth.ts +++ b/src/lib/server/auth.ts @@ -1,9 +1,9 @@ -import { read } from "@/app/api/file"; -import { NodeJsonTemplate } from "@/app/api/types"; +import { read } from "@/lib/server/file"; +import { NodeJsonTemplate } from "@/lib/server/types"; import { NextRequest } from "next/server"; export default async function testAuth( - req: NextRequest + req: NextRequest, ): Promise { const auth = req.headers .get("Authorization") diff --git a/src/app/api/file.ts b/src/lib/server/file.ts similarity index 100% rename from src/app/api/file.ts rename to src/lib/server/file.ts diff --git a/src/app/api/types.ts b/src/lib/server/types.ts similarity index 100% rename from src/app/api/types.ts rename to src/lib/server/types.ts