# HR Portal 驗證報告 **日期**: 2026-02-15 **驗證環境**: Windows 開發主機 10.1.0.245 **資料庫主機**: 10.1.0.20 (小的 NAS - Synology DS716+II) --- ## ✅ 資料庫驗證 ### 資料庫配置 - **主機**: 10.1.0.20:5433 - **資料庫**: hr_portal - **用戶**: admin - **密碼**: DC1qaz2wsx ⚠️ (無 `!` 符號) - **驅動**: PostgreSQL 16.11 ### 資料庫結構 | 資料表名稱 | 筆數 | 說明 | |-----------|------|------| | alembic_version | 1 | 資料庫版本控制 | | audit_logs | 0 | 審計日誌 | | business_units | 0 | 事業單位 | | departments | 0 | 部門 | | employee_identities | 0 | 員工身份 (郵件/NAS/Keycloak) | | employees | 0 | 員工基本資料 | | network_drives | 0 | 網路磁碟配額 | **Alembic 版本**: fba4e3f40f05 ### 連接測試結果 ``` [OK] PostgreSQL 版本: 16.11 (Debian 16.11-1.pgdg13+1) [OK] 資料表數量: 7 [OK] 連接測試成功 ``` --- ## ✅ 後端驗證 ### 後端配置 - **Port**: 10181 (固定,不可變更) - **環境**: development - **API 版本**: 2.0.0 - **資料庫 URL**: postgresql+psycopg2://admin:DC1qaz2wsx@10.1.0.20:5433/hr_portal ### Keycloak 整合 - **URL**: https://auth.ease.taipei - **Realm**: porscheworld - **Client ID**: hr-backend - **Client Secret**: ddyW9zuy7sHDMF8HRh60gEoiGBh698Ew6XHKenwp2c0 ### 模組載入測試 ``` [OK] 配置模組 (app.core.config) [OK] 資料庫模組 (app.db.session) [OK] FastAPI 應用 (app.main) [OK] API 端點數量: 54 個 ``` ### 依賴套件 - ✅ fastapi - ✅ uvicorn - ✅ sqlalchemy - ✅ alembic - ✅ psycopg2-binary - ✅ python-keycloak - ✅ python-dotenv - ✅ pydantic ### 啟動命令 ```bash cd W:/DevOps-Workspace/5.Projects/hr-portal/backend uvicorn app.main:app --host 0.0.0.0 --port 10181 --reload ``` 或使用啟動腳本: ```bash START_BACKEND.bat ``` ### API 端點 - **API 文件**: http://localhost:10181/docs - **ReDoc**: http://localhost:10181/redoc - **健康檢查**: http://localhost:10181/health --- ## ⏳ 前端驗證 (待執行) ### 前端配置 - **Port**: 10180 (固定,不可變更) - **API URL**: http://localhost:10181 - **Keycloak URL**: https://auth.ease.taipei - **Realm**: porscheworld - **Client ID**: hr-portal-web ### 啟動命令 ```bash cd W:/DevOps-Workspace/5.Projects/hr-portal/frontend npm run dev -- -p 10180 ``` 或使用啟動腳本: ```bash START_FRONTEND.bat ``` ### 前端 URL - **應用首頁**: http://localhost:10180 - **登入頁面**: http://localhost:10180/auth/signin --- ## 📋 重要注意事項 ### 固定 Port 規定 ⚠️ **嚴格遵守以下規定**: - **前端固定 port: 10180** (不可變更) - **後端固定 port: 10181** (不可變更) - 遇到 port 衝突時,應停止占用程序,清空 port - 嚴禁隨意開啟其他 port (3000, 3001, 8000, 8001 等) - Keycloak 只認證規劃好的環境,不可任意添加新 port ### 資料庫密碼注意 ⚠️ **PostgreSQL 密碼不能包含 `!` 符號**: - ✅ 正確: `DC1qaz2wsx` - ❌ 錯誤: `!DC1qaz2wsx` - 原因: Shell 特殊字元導致遠端認證失敗 ### 開發環境原則 ✅ **正確做法**: - Port 被占用 → 找出占用的程序,停止它 - 環境不一致 → 找出根本原因,修正環境 - 遇到問題 → 分析根因,徹底解決 ❌ **錯誤做法**: - Port 被占用 → 改用其他 port - 認證失敗 → 在 Keycloak 添加更多 port - 遇到問題 → 用容錯方式繞過 ### 資料庫用戶統一 **所有開發都使用 admin 用戶**: - 用戶名: admin - 密碼: DC1qaz2wsx - 原因: 簡化權限管理,避免權限問題 --- ## 📊 測試檢查清單 ### 後端測試 - [x] 環境變數載入 - [x] 資料庫連接 - [x] 配置模組載入 - [x] FastAPI 應用創建 - [x] API 路由註冊 - [ ] 後端實際啟動 - [ ] API 端點測試 - [ ] Keycloak SSO 登入 ### 前端測試 - [ ] 依賴安裝 (npm install) - [ ] 前端啟動 - [ ] 頁面載入 - [ ] Keycloak 登入流程 - [ ] API 調用測試 - [ ] 員工管理功能 ### 整合測試 - [ ] 前後端通訊 - [ ] SSO 登入流程 - [ ] CRUD 操作 - [ ] 權限控制 --- ## 🎯 下一步行動 1. 安裝前端依賴: `cd frontend && npm install` 2. 啟動後端: `START_BACKEND.bat` 3. 啟動前端: `START_FRONTEND.bat` 4. 測試 Keycloak 登入 5. 驗證 API 功能 6. 測試員工管理流程 --- **驗證人員**: Claude AI **完成度**: 70% (後端驗證完成,前端待測試)