Xác thực Field
Để đảm bảo tính chính xác, an toàn và nhất quán của Collection, NocoBase cung cấp chức năng xác thực Field. Chức năng này chủ yếu được chia thành hai phần: quy tắc cấu hình và quy tắc xác thực.
Quy tắc cấu hình

Field hệ thống của NocoBase tích hợp quy tắc của Joi, hỗ trợ như sau:
Kiểu chuỗi
Kiểu chuỗi của Joi tương ứng với các loại Field NocoBase bao gồm: Văn bản một dòng, Văn bản nhiều dòng, Số điện thoại, Email, URL, Mật khẩu, UUID.
Quy tắc chung
- Độ dài tối thiểu
- Độ dài tối đa
- Độ dài
- Biểu thức chính quy
- Bắt buộc
URL
UUID
Kiểu số
Kiểu số của Joi tương ứng với các loại Field NocoBase bao gồm: Số nguyên, Số, Phần trăm.
Quy tắc chung
- Lớn hơn
- Nhỏ hơn
- Giá trị tối đa
- Giá trị tối thiểu
- Bội số nguyên
Số nguyên
Ngoài quy tắc chung, Field số nguyên còn hỗ trợ thêm xác thực số nguyên và xác thực số nguyên không an toàn.

Số và Phần trăm
Ngoài quy tắc chung, Field số và phần trăm còn hỗ trợ thêm xác thực độ chính xác.

Kiểu ngày
Kiểu ngày của Joi tương ứng với các loại Field NocoBase bao gồm: Ngày (có múi giờ), Ngày (không có múi giờ), Chỉ ngày, Unix Timestamp.
Các quy tắc xác thực được hỗ trợ:
- Lớn hơn
- Nhỏ hơn
- Giá trị tối đa
- Giá trị tối thiểu
- Xác thực định dạng timestamp
- Bắt buộc
Field quan hệ
Field quan hệ chỉ hỗ trợ xác thực bắt buộc. Cần lưu ý rằng xác thực bắt buộc của Field quan hệ tạm thời không được áp dụng trong các tình huống sub-form hoặc sub-table.

Áp dụng quy tắc xác thực
Sau khi cấu hình quy tắc Field, các quy tắc xác thực tương ứng sẽ được kích hoạt khi thêm hoặc sửa dữ liệu.

Quy tắc xác thực cũng áp dụng cho component sub-table và sub-form:


Cần lưu ý rằng trong các tình huống sub-form hoặc sub-table, xác thực bắt buộc của Field quan hệ tạm thời không có hiệu lực.

Sự khác biệt với xác thực Field phía client
Xác thực Field phía server và phía client phù hợp với các tình huống ứng dụng khác nhau, hai loại có sự khác biệt rõ rệt về cách triển khai và thời điểm kích hoạt quy tắc, do đó cần được quản lý riêng biệt.
Sự khác biệt về cách cấu hình
- Xác thực phía client: Cấu hình quy tắc trong form chỉnh sửa (như hình bên dưới)
- Xác thực Field phía server: Thiết lập quy tắc Field trong cấu hình Data Source → Collection


Sự khác biệt về thời điểm kích hoạt xác thực
- Xác thực phía client: Kích hoạt xác thực theo thời gian thực khi bạn nhập Field, hiển thị thông báo lỗi ngay lập tức
- Xác thực Field phía server: Sau khi gửi dữ liệu, server sẽ xác thực trước khi lưu vào database, thông báo lỗi được trả về qua phản hồi API
- Phạm vi áp dụng: Xác thực Field phía server ngoài việc có hiệu lực khi gửi form, còn được kích hoạt trong workflow, nhập dữ liệu và tất cả các tình huống liên quan đến thêm hoặc sửa dữ liệu
- Thông báo lỗi: Xác thực phía client hỗ trợ thông báo lỗi tùy chỉnh, xác thực phía server tạm thời không hỗ trợ thông báo lỗi tùy chỉnh

