diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..80a15e5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:22-alpine +WORKDIR /home/app + +COPY package.json . +RUN npm install --force + +COPY ./dist ./dist +EXPOSE 8000 +CMD ["node", "./dist/index.js"] \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 41ec9c5..9a49859 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,7 +6,7 @@ import app from "./server"; const DB_URI = process.env.DB_URI ?? ""; await mongoose.connect(DB_URI); - await app.listen({ port: PORT }); + await app.listen({ port: PORT, host: "0.0.0.0" }); })().catch((err) => { console.log(err); process.exit(1); diff --git a/src/organization/organization.schema.ts b/src/organization/organization.schema.ts index 044910a..cb11d7d 100644 --- a/src/organization/organization.schema.ts +++ b/src/organization/organization.schema.ts @@ -29,7 +29,6 @@ export const orgModel = mongoose.model( ); const orgCore = { - _id: z.string().optional(), name: z.string().max(30), domain: z.string().max(30).optional(), avatar: z.string().url().optional(), @@ -44,6 +43,7 @@ const createOrgInput = z.object({ }); const createOrgResponse = z.object({ + _id: z.string().optional(), pid: z.string(), ...orgCore, }); diff --git a/src/routes.ts b/src/routes.ts index b558833..1a8e665 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -3,8 +3,10 @@ import userRoutes from "./user/user.route"; import organizationRoutes from "./organization/organization.route"; import { tokenRoutes } from "./tokens/token.route"; import { permitRoutes } from "./permit/permit.route"; +import { authHandler } from "./auth"; export default async function routes(fastify: FastifyInstance) { + fastify.addHook("preHandler", authHandler); fastify.register(userRoutes, { prefix: "/users" }); fastify.register(organizationRoutes, { prefix: "/orgs" }); fastify.register(tokenRoutes, { prefix: "/tokens" }); diff --git a/src/server.ts b/src/server.ts index 9cdfec3..b5dbb8e 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,4 +1,3 @@ -import mongoose from "mongoose"; import fastify from "fastify"; import routes from "./routes"; @@ -6,7 +5,7 @@ import { userSchemas } from "./user/user.schema"; import { orgSchemas } from "./organization/organization.schema"; import { tokenSchemas } from "./tokens/token.schema"; import { errorHandler } from "./utils/errors"; -import { authHandler, authorize } from "./auth"; +import { authorize } from "./auth"; import { permitSchemas } from "./permit/permit.schema"; const app = fastify({ logger: true }); @@ -17,7 +16,6 @@ app.get("/health", (req, res) => { app.decorate("authorize", authorize); app.setErrorHandler(errorHandler); -app.addHook("onRequest", authHandler); app.register(routes, { prefix: "/api/v1" }); for (const schema of [