Khởi tạo tài khoản Super Admin
Role: Super Admin 🛡️
Đây là bước đầu tiên tuyệt đối của vòng đời dự án — chạy trước bất kỳ thao tác nào trong Phase 1. Database migration sẽ seed sẵn tài khoản Super Admin vào hệ thống; việc của bạn là tự đặt mật khẩu cho tài khoản này thông qua luồng Forgot password trước khi đăng nhập lần đầu và tiếp tục onboard team.
Tiền đề
- Backend đã được deploy và kết nối tới PostgreSQL; cấu hình SMTP (mail service) đã hoạt động để hệ thống gửi được email reset password.
- File
backend-api/.envđã có biếnSUPERADMIN_EMAILtrỏ tới địa chỉ email chính thức của Super Admin (ví dụ:ai-powerdesk@smartosc.com). Seeder dùng giá trị này để tạo tài khoản, đồng thời cũng là địa chỉ sẽ nhận email reset password ở các bước dưới. - Biến
BASE_URL_FEtrong.envđã trỏ đúng về domain frontend — backend sẽ chèn giá trị này vào link reset password trong email gửi tới Super Admin. - Database migration + seed đã chạy thành công (chi tiết trong Database Migration Guide). Khi container
backend-apikhởi động ở môi trường staging/production, các bướcmigration:run→seed→startsẽ tự chạy theo thứ tự, và seeder sẽ tạo sẵn usersuperadmingắn vớiSUPERADMIN_EMAIL.
Sau khi seed hoàn tất, hệ thống có sẵn một user với username = superadmin, email = SUPERADMIN_EMAIL, role SUPER_ADMIN và cờ isAdmin = true — nhưng mật khẩu được hash từ một chuỗi ngẫu nhiên không ai biết. Đây là lý do phải đi qua luồng Forgot password để tự đặt mật khẩu của riêng bạn.
Hướng dẫn thao tác
Bước 1 — Đặt mật khẩu lần đầu qua luồng Forgot password
Thay vì dùng mật khẩu do hệ thống sinh, Super Admin tự thiết lập mật khẩu cho chính mình bằng tính năng Forgot password:
- Mở trình duyệt, truy cập trang đăng nhập của AIPD.
- Ở màn hình login, nhấn vào link "Forgot password?" (ngay bên dưới ô mật khẩu).
- Trong form Forgot password, nhập email trùng với giá trị
SUPERADMIN_EMAILđã cấu hình ở.env. Nhấn "Send" (hoặc "Submit") để gửi yêu cầu. - Hệ thống hiển thị thông báo xác nhận đã gửi email. Mở hộp thư của địa chỉ trên, tìm email "Reset Password" do AIPD gửi (nếu chưa thấy, kiểm tra mục Spam/Junk).
- Nhấn nút/ link "Reset Password" trong email. Link có dạng
${BASE_URL_FE}/reset-password?token=...và chỉ dùng được một lần, có thời hạn ngắn — nên đặt mật khẩu ngay. - Ở trang reset, nhập mật khẩu mới và xác nhận mật khẩu (chọn mật khẩu đủ mạnh — xem khuyến nghị bên dưới). Nhấn "Confirm" để lưu.
- Quay lại
/admin/, đăng nhập bằng:- Username / Email:
superadminhoặcSUPERADMIN_EMAIL. - Password: mật khẩu vừa đặt ở bước 6.
- Username / Email:
Nếu đăng nhập thành công, bạn sẽ được đưa tới dashboard của Admin — tài khoản Super Admin đã sẵn sàng.
Chọn mật khẩu đủ mạnh (ít nhất 12 ký tự, kết hợp chữ hoa/thường, số và ký tự đặc biệt). Tài khoản này có cờ isAdmin = true nên có toàn quyền hệ thống — bao gồm tạo/xoá user, quản lý permission và project.
- Kiểm tra cấu hình SMTP của backend (host, port, credentials, sender) và log của
backend-apixem có lỗi khi gọisendResetPasswordEmailkhông. - Đảm bảo email nhập vào đúng bằng
SUPERADMIN_EMAIL— nếu nhập email khác, hệ thống vẫn phản hồi thành công (để tránh lộ thông tin user) nhưng thực tế không gửi mail. - Kiểm tra
BASE_URL_FE— nếu trỏ sai, link trong email sẽ dẫn đến domain không tồn tại. - Kiểm tra mục Spam/Junk và whitelist sender domain nếu cần.
Bước 2 — (Tuỳ chọn) Cập nhật thông tin hồ sơ
Sau khi đăng nhập thành công, mở Users (nhóm System Management) ở sidebar, tìm dòng superadmin và nhấn icon bút chì ✏️ để cập nhật thêm:
- Full Name — tên hiển thị đầy đủ của người giữ tài khoản Super Admin.
- Title, Division, Center — thông tin tổ chức nội bộ.
- Language — ngôn ngữ giao diện mặc định (
en/vi/jp).
Các trường này không bắt buộc nhưng giúp audit log và màn hình History hiển thị thông tin rõ ràng hơn ở các phase sau.
Sau khi Super Admin đã đặt mật khẩu và đăng nhập thành công, chuyển sang Phase 1 — Tạo platform users để tạo tài khoản cho các thành viên còn lại của platform.