hrms-edm/Services/server
2025-02-17 09:21:28 +07:00
..
src updated config 2024-12-20 18:38:14 +07:00
static chore: change dir (prepare to merge) 2023-11-22 16:16:27 +07:00
tools tools: elasticsearch prepare analyzer 2023-12-01 14:30:47 +07:00
.dockerignore chore: change dir (prepare to merge) 2023-11-22 16:16:27 +07:00
.env.example updated config 2024-12-20 18:38:14 +07:00
.gitignore chore: change dir (prepare to merge) 2023-11-22 16:16:27 +07:00
.prettierignore chore: change dir (prepare to merge) 2023-11-22 16:16:27 +07:00
.prettierrc chore: change dir (prepare to merge) 2023-11-22 16:16:27 +07:00
Dockerfile fix: build error 2025-02-17 09:06:43 +07:00
nodemon.json chore: change dir (prepare to merge) 2023-11-22 16:16:27 +07:00
package-lock.json refactor: make text ellipsis 2023-11-30 09:35:13 +07:00
package.json feat: socketio event 2023-12-07 17:25:56 +07:00
pnpm-lock.yaml fix: error 2025-02-17 09:21:28 +07:00
README.md Update README.md 2023-12-04 17:19:18 +07:00
tsconfig.json chore: build process package 2023-11-30 10:43:00 +07:00
tsoa.json fix: path leading slash and remove unused endpoint 2023-12-15 15:15:50 +07:00
typedoc.json docs script for backend and frontend 2023-11-26 00:21:44 +07:00

EDM Backend API

Enterprise Document Management (EDM) ส่วน backend

ส่วนประกอบ

  • Node.js (TypeScript) และ Express เป็น Framework สำหรับการพัฒนาหลัก
  • pnpm เป็น package manager
  • Web API Doc สร้าง Open API Spec ด้วย tsoa
  • Library Document ใช้ TypeDoc
  • Minio สำหรับเก็บไฟล์ มีการใช้ presign url สำหรับ upload/download ทำให้รองรับโหลดได้มากตามความสามารถของ MiniO
  • Keycloak ทำ Single Sign On เพื่อ integrate กับระบบอื่น
  • Elasticsearch สำหรับการค้นหาเอกสารภาษาไทย
  • Attachment Processor สำหรับดึงข้อความเพื่อทำ Index สำหรับ Elasticsearch
  • RabbitMQ ใช้ Bucket Notification ของ MiniO ส่งแจ้งเตือนเมื่อมีเอกสารใหม่จะต้องทำ Index ทำงานเป็น คิวเพื่อทำให้รับโหลดเอกสารได้มากยิ่งขึ้น เอกสารที่ทำผ่าน MiniO ก็จะถูกทำ Index โดยที่ Application ไม่ต้องเขียนการจัดการพิเศษ

การเรียกใช้ผ่าน Service Account

จำเป็นต้องตั้งค่า Keycloak เพื่อให้สามารถขอ Token โดยใช้ Secret Key ที่ได้รับ ผ่านทาง https://edm-id.frappet.synology.me/realms/EDM/protocol/openid-connect/token ดังนี้ image

สิทธิในจัดการ

การจัดการสามารถตั้งค่าได้โดยใช้ ENV ที่มีชื่อว่า MANAGEMENT_ROLE ให้ตรงกับที่ตั้งค่าใน Keycloak อีกที

Note