From 0fd0c67113450b05000ae449ddcef2b2c8de5721 Mon Sep 17 00:00:00 2001 From: jd-apprentice Date: Tue, 25 Feb 2025 22:17:21 -0300 Subject: [PATCH 1/7] chore: update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2e1a30b..dbc1a18 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "lint:fix": "eslint ./src/**/*.ts --fix", "format": "prettier --check ./src/**/*.ts", "format:fix": "prettier --write ./src/**/*.ts", - "husky": "husky", + "prepare": "husky", "test": "bun test --coverage" }, "dependencies": { From 1d53e4f0b48bab25912569e473bf9a92156882bb Mon Sep 17 00:00:00 2001 From: jd-apprentice Date: Wed, 26 Feb 2025 21:54:01 -0300 Subject: [PATCH 2/7] style: sonarqube suggestions --- .../image/__tests__/integration/images.test.ts | 4 +--- docker/ARM64.Dockerfile | 10 +++++----- docker/Dockerfile | 10 +++++----- docker/compose.yml | 14 +++++++------- kubernetes/prod/020-waifuland-prod-deployment.yaml | 11 ++++++++++- src/common/utils/clear.ts | 1 - src/image/image-service.ts | 3 ++- src/tag/tag-service.ts | 6 ++++-- src/user/user-middleware.ts | 4 +++- src/user/user-routes.ts | 2 -- 10 files changed, 37 insertions(+), 28 deletions(-) diff --git a/__tests__/image/__tests__/integration/images.test.ts b/__tests__/image/__tests__/integration/images.test.ts index c3d11e3..8180fc0 100644 --- a/__tests__/image/__tests__/integration/images.test.ts +++ b/__tests__/image/__tests__/integration/images.test.ts @@ -2,9 +2,7 @@ import { loadDatabase } from "../../../../src/app/db"; import { Config } from "../../../../src/app/config/config"; import { app } from "../../../../src/app/main"; import { jest, describe, test, beforeAll, expect, beforeEach } from "bun:test"; - -import request from "supertest"; -import { Response } from "supertest"; +import request, { Response } from "supertest"; const baseRoute = "/v1/api/images"; const contentTypeKey = "Content-Type"; diff --git a/docker/ARM64.Dockerfile b/docker/ARM64.Dockerfile index 75a3007..d5f4f99 100644 --- a/docker/ARM64.Dockerfile +++ b/docker/ARM64.Dockerfile @@ -12,19 +12,19 @@ RUN cd /temp/prod && bun install --frozen-lockfile --production FROM base AS prerelease COPY --from=install /temp/dev/node_modules node_modules -COPY . . +COPY ./src ./src ENV NODE_ENV=test -RUN bun run lint -RUN bun run build:arm +RUN bun run lint && \ + bun run build:arm FROM base AS release COPY --from=install /temp/prod/node_modules node_modules COPY --from=prerelease /bun/dist ./dist RUN mkdir -p /bun/src/image/assets/images -RUN chown -R bun:bun /bun/src/image/assets/images -RUN chmod -R 600 /bun/src/image/assets/images +RUN chown -R bun:bun /bun/src/image/assets/images && \ + chmod -R 600 /bun/src/image/assets/images USER bun EXPOSE 4000 diff --git a/docker/Dockerfile b/docker/Dockerfile index 1524107..0f10432 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,19 +12,19 @@ RUN cd /temp/prod && bun install --frozen-lockfile --production FROM base AS prerelease COPY --from=install /temp/dev/node_modules node_modules -COPY . . +COPY ./src ./src ENV NODE_ENV=production -RUN bun run lint -RUN bun run build +RUN bun run lint && \ + bun run build FROM base AS release COPY --from=install /temp/prod/node_modules node_modules COPY --from=prerelease /bun/dist ./dist RUN mkdir -p /bun/src/image/assets/images -RUN chown -R bun:bun /bun/src/image/assets/images -RUN chmod -R 600 /bun/src/image/assets/images +RUN chown -R bun:bun /bun/src/image/assets/images && \ + chmod -R 600 /bun/src/image/assets/images USER bun EXPOSE 4000 diff --git a/docker/compose.yml b/docker/compose.yml index 4999091..eaa7b78 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -5,13 +5,13 @@ services: security_opt: - seccomp:seccomp.json - apparmor:non-root-profile - - no-new-privileges:true + - no-new-privileges build: - context: ../ - dockerfile: docker/Dockerfile + context: ../ + dockerfile: docker/Dockerfile ## https://dockerlabs.collabnix.com/advanced/security/capabilities/ - cap_add: ["DAC_OVERRIDE"] - cap_drop: ["ALL"] + cap_add: [ "DAC_OVERRIDE" ] + cap_drop: [ "ALL" ] restart: always env_file: - ../.env @@ -21,5 +21,5 @@ services: - waifuland networks: - waifuland: - driver: bridge \ No newline at end of file + waifuland: + driver: bridge diff --git a/kubernetes/prod/020-waifuland-prod-deployment.yaml b/kubernetes/prod/020-waifuland-prod-deployment.yaml index 8ae5020..d2acba1 100644 --- a/kubernetes/prod/020-waifuland-prod-deployment.yaml +++ b/kubernetes/prod/020-waifuland-prod-deployment.yaml @@ -63,8 +63,17 @@ spec: key: TOKEN name: env image: dyallo/waifuland_api:X64_latest + resources: + limits: + cpu: 0.5 + memory: 512Mi + requests: + cpu: 0.5 + memory: 512Mi + ephemeral-storage: "1Gi" name: waifuland-prod ports: - containerPort: 4000 protocol: TCP - restartPolicy: Always \ No newline at end of file + restartPolicy: Always + automountServiceAccountToken: false \ No newline at end of file diff --git a/src/common/utils/clear.ts b/src/common/utils/clear.ts index 7e9f661..7fc3ca3 100644 --- a/src/common/utils/clear.ts +++ b/src/common/utils/clear.ts @@ -17,7 +17,6 @@ const clearTemporaryFiles = (filepath: PathLike): void => { unlink(resolvedPath, (err: unknown) => { if (err) { console.error("Failed to delete file: %s", resolvedPath, err); - return; } }); }; diff --git a/src/image/image-service.ts b/src/image/image-service.ts index 6ac0727..f3a300b 100644 --- a/src/image/image-service.ts +++ b/src/image/image-service.ts @@ -55,7 +55,8 @@ class ImageService { */ async upload(newImage: IImage): Promise { try { - return imageRepository.create(newImage); + const response = await imageRepository.create(newImage); + return response; } catch (error: unknown) { rollbar.error(error as LogArgument); throw new Error((error).message); diff --git a/src/tag/tag-service.ts b/src/tag/tag-service.ts index 2acd4c4..479e188 100644 --- a/src/tag/tag-service.ts +++ b/src/tag/tag-service.ts @@ -14,7 +14,8 @@ class TagService { */ async getTag(): Promise { try { - return tagRepository.findTags(); + const tags = await tagRepository.findTags(); + return tags; } catch (error: unknown) { rollbar.error(error as LogArgument); throw new Error((error).message); @@ -28,7 +29,8 @@ class TagService { */ async getTagById(id: string): Promise { try { - return tagRepository.findByTagId(id); + const tag = await tagRepository.findByTagId(id); + return tag; } catch (error: unknown) { rollbar.error(error as LogArgument); throw new Error((error).message); diff --git a/src/user/user-middleware.ts b/src/user/user-middleware.ts index 63bd0e1..ac482f1 100644 --- a/src/user/user-middleware.ts +++ b/src/user/user-middleware.ts @@ -20,7 +20,9 @@ const userExists = async ( next: NextFunction, ): Promise => { const { username }: UsernameType = req.body; - const user: UsernameType | null = await User.findOne({ username: { $eq: username } }); + const user: UsernameType | null = await User.findOne({ + username: { $eq: username }, + }); return user ? res.json(boom.conflict('User already exists')) : next(); }; diff --git a/src/user/user-routes.ts b/src/user/user-routes.ts index 8ea6276..c71ce6e 100644 --- a/src/user/user-routes.ts +++ b/src/user/user-routes.ts @@ -9,8 +9,6 @@ import { limiter } from 'src/common/utils/limiter'; const userRouter = Router(); - - userRouter.get('/', limiter, validateToken, userController.getUsers); userRouter.get('/info', limiter, validateToken, userController.getUserInfo); userRouter.post('/login', limiter, validateUser, userController.login); From 185446bc4667165427f4636f311c2cf50512a0c5 Mon Sep 17 00:00:00 2001 From: jd-apprentice Date: Wed, 26 Feb 2025 21:57:08 -0300 Subject: [PATCH 3/7] fix: lock file --- bun.lockb | Bin 171325 -> 171325 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index 2f9c3989b32013b18c6fb8047b08bbb7d136aca3..831c1885833f00269f810d9a8dbdb90362021cfb 100755 GIT binary patch delta 64 zcmV-G0Kfmex(dCz3Xm=!;YkLsC!*|Lv4L>C2PP8ueZ{Vn)&W~DsmMB1soCy1fljqf W0UBxrXmxXId53Lk0k>^x0?;zW3> Date: Wed, 26 Feb 2025 22:06:33 -0300 Subject: [PATCH 4/7] fix: ignore husky --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0f10432..32436f4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -4,11 +4,11 @@ WORKDIR /bun FROM base AS install RUN mkdir -p /temp/dev COPY package.json bun.lockb /temp/dev/ -RUN cd /temp/dev && bun install --frozen-lockfile +RUN cd /temp/dev && bun install --frozen-lockfile --ignore-scripts RUN mkdir -p /temp/prod COPY package.json bun.lockb /temp/prod/ -RUN cd /temp/prod && bun install --frozen-lockfile --production +RUN cd /temp/prod && bun install --frozen-lockfile --production --ignore-scripts FROM base AS prerelease COPY --from=install /temp/dev/node_modules node_modules From e64eef3c8a0baa432352c0d236296cc30daed8d9 Mon Sep 17 00:00:00 2001 From: jd-apprentice Date: Wed, 26 Feb 2025 22:18:45 -0300 Subject: [PATCH 5/7] fix: pipipipi --- docker/ARM64.Dockerfile | 6 +++--- docker/Dockerfile | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docker/ARM64.Dockerfile b/docker/ARM64.Dockerfile index d5f4f99..b132177 100644 --- a/docker/ARM64.Dockerfile +++ b/docker/ARM64.Dockerfile @@ -12,7 +12,7 @@ RUN cd /temp/prod && bun install --frozen-lockfile --production FROM base AS prerelease COPY --from=install /temp/dev/node_modules node_modules -COPY ./src ./src +COPY . . ENV NODE_ENV=test RUN bun run lint && \ @@ -23,8 +23,8 @@ COPY --from=install /temp/prod/node_modules node_modules COPY --from=prerelease /bun/dist ./dist RUN mkdir -p /bun/src/image/assets/images -RUN chown -R bun:bun /bun/src/image/assets/images && \ - chmod -R 600 /bun/src/image/assets/images +RUN chown -R bun:bun /bun/src/image/assets/images +RUN chmod -R 600 /bun/src/image/assets/images USER bun EXPOSE 4000 diff --git a/docker/Dockerfile b/docker/Dockerfile index 32436f4..9e44e87 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -4,15 +4,15 @@ WORKDIR /bun FROM base AS install RUN mkdir -p /temp/dev COPY package.json bun.lockb /temp/dev/ -RUN cd /temp/dev && bun install --frozen-lockfile --ignore-scripts +RUN cd /temp/dev && bun install --frozen-lockfile RUN mkdir -p /temp/prod COPY package.json bun.lockb /temp/prod/ -RUN cd /temp/prod && bun install --frozen-lockfile --production --ignore-scripts +RUN cd /temp/prod && bun install --frozen-lockfile --production FROM base AS prerelease COPY --from=install /temp/dev/node_modules node_modules -COPY ./src ./src +COPY . . ENV NODE_ENV=production RUN bun run lint && \ @@ -23,8 +23,8 @@ COPY --from=install /temp/prod/node_modules node_modules COPY --from=prerelease /bun/dist ./dist RUN mkdir -p /bun/src/image/assets/images -RUN chown -R bun:bun /bun/src/image/assets/images && \ - chmod -R 600 /bun/src/image/assets/images +RUN chown -R bun:bun /bun/src/image/assets/images +RUN chmod -R 600 /bun/src/image/assets/images USER bun EXPOSE 4000 From b6d51ab5611657c62f63fcc5106bfa54e1f9530f Mon Sep 17 00:00:00 2001 From: jd-apprentice Date: Wed, 26 Feb 2025 22:22:18 -0300 Subject: [PATCH 6/7] fix: pipipipi --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dbc1a18..2e1a30b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "lint:fix": "eslint ./src/**/*.ts --fix", "format": "prettier --check ./src/**/*.ts", "format:fix": "prettier --write ./src/**/*.ts", - "prepare": "husky", + "husky": "husky", "test": "bun test --coverage" }, "dependencies": { From ed517105e670967c5b0e9e2cbed03c2029bfae1a Mon Sep 17 00:00:00 2001 From: jd-apprentice Date: Wed, 26 Feb 2025 22:29:06 -0300 Subject: [PATCH 7/7] fix: update lock --- bun.lockb | Bin 171325 -> 171325 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index 831c1885833f00269f810d9a8dbdb90362021cfb..2f9c3989b32013b18c6fb8047b08bbb7d136aca3 100755 GIT binary patch delta 62 zcmV-E0Kxygx(dCz3Xm=!669TORj$C2PP8ueZ{Vn)&W~DsmMB1soCy1fljqf W0UBxrXmxXId53Lk0k>^x0?;zW3>