########### สำหรับ npm run dev และ แอปบน container # Sign/Hash ที่ใช้ฝังในเอกสาร(docx) SECRET="" # HmacSHA256 PRIVATE_KEY_HEX="" PUBLIC_KEY_HEX="" ## ไม่ตั้ง/ว่าง = ปฏิเสธทุก request (fail closed) — ตั้งค่ายาวและสุ่ม เช่น 32+ ตัวอักษร EXTERNAL_API_KEY="" DOCVER_API_KEY="" # secret เซ็น/ตรวจ JWT HS256 ของทุก endpoint /api/documents/* (Authorization: Bearer) DOCVER_TOKEN_SECRET= # ใช้ตอน migrate และ การใช้งาน ใน development DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:54322/ecourt-note # Optional ไม่ใส่ก็ได้มีค่า default TMPL_PATH='./public/tmpl' TICKET_SEC=300 # อายุของ ticket ยิ่งน้อยยิ่งดี DOCX_WORKERS=3 # cpu core หักออก 1 ########### สำหรับโค้ดตัวอย่างให้ระบบนอกเรียกเข้ามาไม่ได้ใช้ในระบบนี้ ห้ามเอาไช้ในส่วนอื่น DOCEDIT_BASE_URL=http://127.0.0.1:3000/docedit ########### สำหรับ แอป และ service ต่างๆใน container APP_DOMAIN=docedit.example.com POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=note # ใช้สำหรับ local dev ถ้า minio อยู่คนละเครื่องให้ดูค่าให้เหมาะสม MINIO_ENDPOINT=127.0.0.1 MINIO_PORT=19000 MINIO_USE_SSL=false MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin # MINIO_BUCKET=docver # DOCVER_LINK_TTL_SECONDS=900 # DOCVER_TOKEN_TTL_SECONDS=3600 # (ถอดแล้ว 2026-10-30) NOTE_SESSION_SECRET ของรอบ cookie oacCaseSig — แอป note # เปลี่ยน session เป็น token แบบ add-in แล้ว (access_token purpose=login จาก # POST /api/note/auth/session เก็บใน localStorage "note-auth") จึงใช้ # DOCVER_TOKEN_SECRET ตัวเดียวทั้งระบบ: เซ็น login-token ของลิงก์ + เซ็น/ตรวจ # session token ฝั่ง Server Actions และ API ของแอป (lib/note-token.ts) # dev-only (ทางเลือก): เปิดฟอร์ม "สร้างลิงก์ทดสอบ" บนหน้า /note + route # POST /api/note/auth/dev-link — mint ลิงก์ SSO จากหน้าเว็บเพื่อทดสอบ flow จริง # ⚠️ ตัวช่วยทดสอบเท่านั้น ไม่ใช่ทางเข้าจริง: ปิด = route ตอบ 404 + ฟอร์มหายจากหน้า # และไม่ทำงานใน production build เด็ดขาด (NODE_ENV=production) — dev server ที่แชร์ # บน LAN เปิดไว้ = คนในวงแชร์เครือข่าย mint ลิงก์เข้าระบบได้ จึงควรเปิดเฉพาะตอนทดสอบ # NOTE_SSO_DEV_MINT=1 # add-in ticket auth (2026-10-27, docs/PLAN-ADDIN-AUTH.md): add-in ใน Word ขอ token # ที่ POST /api/documents/token ด้วย body {ticket_data, HmacSha256} ที่ e-Court stamp # มากับไฟล์ — secret ต้องตรงกันสองฝั่ง: e-Court (ตัว stamp) กับ server นี้ (ตัว verify) # ฝั่ง server ตรวจ HMAC ของ ticket: ADDIN_TICKET_SECRET (ไม่ตั้ง = ใช้ env SECRET # ของกลุ่ม template → ยังไม่ตั้งอีก = "super_secret" ตาม requirement) # ⚠️ production ต้องตั้งค่าจริง — ค่า default รู้กันหมด = ใครก็ปลอม ticket ได้ # (ใช้ร่วมกับทาง ticket ของ SSO POST /api/note/auth/session ด้วย — PLAN-SSO.md D12) # 2026-10-30: ทาง ticket ของ SSO (POST /api/note/auth/session) ปฏิเสธค่า default # นี้เฉพาะใน production — dev ใช้ default ทดสอบโหมด ticket ได้เลย (เครื่องมือ dev # อย่าง make-login-link/make-ticket-docx ก็ default ค่าเดียวกัน) # 2026-11-04: ฝั่ง add-in ไม่มี secret อีกต่อไป (ถอด NEXT_PUBLIC_ADDIN_TICKET_SECRET # ตาม PLAN-SSO.md D13 — การตรวจ HMAC เป็นของ server อย่างเดียว) # ADDIN_TICKET_SECRET=super_secret