Parameter Konfigurasi Collection
Penjelasan Parameter Konfigurasi Collection
name - Nama Tabel Data
- Tipe:
string - Wajib: Ya
- Penjelasan: Identifier unik tabel data, harus unik di seluruh aplikasi
- Contoh:
title - Judul Tabel Data
- Tipe:
string - Wajib: Tidak
- Penjelasan: Judul tampilan tabel data, digunakan untuk tampilan antarmuka front-end
- Contoh:
migrationRules - Aturan Migrasi
- Tipe:
MigrationRule[] - Wajib: Tidak
- Penjelasan: Aturan penanganan saat migrasi data
- Contoh:
inherits - Tabel Data Inheritance
- Tipe:
string[] | string - Wajib: Tidak
- Penjelasan: Mewarisi definisi field dari tabel data lain, mendukung inheritance dari satu atau beberapa tabel data
- Contoh:
filterTargetKey - Filter Target Key
- Tipe:
string | string[] - Wajib: Tidak
- Penjelasan: Target key untuk filter query, mendukung satu atau beberapa key
- Contoh:
fields - Definisi Field
- Tipe:
FieldOptions[] - Wajib: Tidak
- Default:
[] - Penjelasan: Array definisi field tabel data, setiap field berisi tipe, nama, konfigurasi, dan informasi lainnya
- Contoh:
model - Model Kustom
- Tipe:
string | ModelStatic<Model> - Wajib: Tidak
- Penjelasan: Menentukan class model Sequelize kustom, dapat berupa nama class atau class model itu sendiri
- Contoh:
repository - Repository Kustom
- Tipe:
string | RepositoryType - Wajib: Tidak
- Penjelasan: Menentukan class repository kustom, untuk menangani logika akses data
- Contoh:
autoGenId - Otomatis Generate ID
- Tipe:
boolean - Wajib: Tidak
- Default:
true - Penjelasan: Apakah otomatis menghasilkan primary key ID
- Contoh:
timestamps - Mengaktifkan Timestamp
- Tipe:
boolean - Wajib: Tidak
- Default:
true - Penjelasan: Apakah mengaktifkan field waktu pembuatan dan waktu update
- Contoh:
createdAt - Field Waktu Pembuatan
- Tipe:
boolean | string - Wajib: Tidak
- Default:
true - Penjelasan: Konfigurasi field waktu pembuatan
- Contoh:
updatedAt - Field Waktu Update
- Tipe:
boolean | string - Wajib: Tidak
- Default:
true - Penjelasan: Konfigurasi field waktu update
- Contoh:
deletedAt - Field Soft Delete
- Tipe:
boolean | string - Wajib: Tidak
- Default:
false - Penjelasan: Konfigurasi field soft delete
- Contoh:
paranoid - Mode Soft Delete
- Tipe:
boolean - Wajib: Tidak
- Default:
false - Penjelasan: Apakah mengaktifkan mode soft delete
- Contoh:
underscored - Penamaan Underscore
- Tipe:
boolean - Wajib: Tidak
- Default:
false - Penjelasan: Apakah menggunakan gaya penamaan underscore
- Contoh:
indexes - Konfigurasi Index
- Tipe:
ModelIndexesOptions[] - Wajib: Tidak
- Penjelasan: Konfigurasi index database
- Contoh:
Penjelasan Konfigurasi Parameter Field
NocoBase mendukung berbagai tipe field, semua field didefinisikan berdasarkan tipe union FieldOptions. Konfigurasi field mencakup property dasar, property spesifik tipe data, property relasi, dan property rendering front-end.
Opsi Field Dasar
Semua tipe field diwarisi dari BaseFieldOptions, menyediakan kemampuan konfigurasi field umum:
Contoh:
name - Nama Field
- Tipe:
string - Wajib: Tidak
- Penjelasan: Nama kolom field di database, harus unik dalam collection
- Contoh:
hidden - Field Tersembunyi
- Tipe:
boolean - Default:
false - Penjelasan: Apakah secara default menyembunyikan field ini di list/form
- Contoh:
validation - Aturan Validasi
- Tipe:
ValidationOptions<T> - Penjelasan: Mendefinisikan aturan validasi sisi server menggunakan Joi
- Contoh:
allowNull - Mengizinkan Nilai Kosong
- Tipe:
boolean - Default:
true - Penjelasan: Mengontrol apakah database mengizinkan penulisan nilai
NULL - Contoh:
defaultValue - Nilai Default
- Tipe:
any - Penjelasan: Nilai default field, akan digunakan saat membuat record tanpa menyediakan nilai field tersebut
- Contoh:
unique - Constraint Unik
- Tipe:
boolean | string - Default:
false - Penjelasan: Apakah unik; string dapat menentukan nama constraint
- Contoh:
primaryKey - Primary Key
- Tipe:
boolean - Default:
false - Penjelasan: Mendeklarasikan field ini sebagai primary key
- Contoh:
autoIncrement - Auto Increment
- Tipe:
boolean - Default:
false - Penjelasan: Mengaktifkan auto increment (hanya berlaku untuk field tipe numerik)
- Contoh:
field - Nama Kolom Database
- Tipe:
string - Penjelasan: Menentukan nama kolom database aktual (sama dengan
fieldSequelize) - Contoh:
comment - Komentar Database
- Tipe:
string - Penjelasan: Catatan field database, untuk dokumentasi
- Contoh:
title - Judul Tampilan
- Tipe:
string - Penjelasan: Judul tampilan field, sering digunakan untuk tampilan antarmuka front-end
- Contoh:
description - Deskripsi Field
- Tipe:
string - Penjelasan: Informasi deskripsi field, untuk membantu pengguna memahami tujuan field
- Contoh:
interface - Component Antarmuka
- Tipe:
string - Penjelasan: Component antarmuka field front-end yang direkomendasikan
- Contoh:
Interface Tipe Field
type: 'string' - Field String
- Penjelasan: Digunakan untuk menyimpan data teks pendek, mendukung pembatasan panjang dan auto trim
- Tipe Database:
VARCHAR - Property Khusus:
length: Pembatasan panjang stringtrim: Apakah otomatis menghapus spasi di awal dan akhir
Contoh:
type: 'text' - Field Teks
- Penjelasan: Digunakan untuk menyimpan data teks panjang, mendukung tipe teks dengan panjang berbeda di MySQL
- Tipe Database:
TEXT,MEDIUMTEXT,LONGTEXT - Property Khusus:
length: Tipe panjang teks MySQL (tiny/medium/long)
Contoh:
Tipe Numerik
type: 'integer' - Field Integer
- Penjelasan: Digunakan untuk menyimpan data integer, mendukung auto increment dan primary key
- Tipe Database:
INTEGER
Contoh:
type: 'bigInt' - Field Big Integer
- Penjelasan: Digunakan untuk menyimpan data integer besar, dengan rentang lebih besar dari integer
- Tipe Database:
BIGINT
Contoh:
type: 'float' - Field Floating Point
- Penjelasan: Digunakan untuk menyimpan floating point presisi tunggal
- Tipe Database:
FLOAT - Property Khusus:
precision: Presisi (jumlah digit total)scale: Jumlah digit desimal
Contoh:
type: 'double' - Field Double Floating Point
- Penjelasan: Digunakan untuk menyimpan floating point presisi ganda, presisi lebih tinggi dari float
- Tipe Database:
DOUBLE - Property Khusus:
precision: Presisi (jumlah digit total)scale: Jumlah digit desimal
Contoh:
type: 'real' - Field Real
- Penjelasan: Digunakan untuk menyimpan bilangan real, terkait database
- Tipe Database:
REAL - Property Khusus:
precision: Presisi (jumlah digit total)scale: Jumlah digit desimal
Contoh:
type: 'decimal' - Field Decimal Akurat
- Penjelasan: Digunakan untuk menyimpan decimal yang akurat, cocok untuk perhitungan keuangan
- Tipe Database:
DECIMAL - Property Khusus:
precision: Presisi (jumlah digit total)scale: Jumlah digit desimal
Contoh:
Tipe Boolean
type: 'boolean' - Field Boolean
- Penjelasan: Digunakan untuk menyimpan nilai true/false, biasanya digunakan untuk status switch
- Tipe Database:
BOOLEANatauTINYINT(1)
Contoh:
type: 'radio' - Field Radio
- Penjelasan: Digunakan untuk menyimpan nilai radio, biasanya digunakan untuk situasi pilihan dua
- Tipe Database:
BOOLEANatauTINYINT(1)
Contoh:
Tipe Tanggal Waktu
type: 'date' - Field Tanggal
- Penjelasan: Digunakan untuk menyimpan data tanggal, tidak menyertakan informasi waktu
- Tipe Database:
DATE - Property Khusus:
timezone: Apakah menyertakan informasi zona waktu
Contoh:
type: 'time' - Field Waktu
- Penjelasan: Digunakan untuk menyimpan data waktu, tidak menyertakan informasi tanggal
- Tipe Database:
TIME - Property Khusus:
timezone: Apakah menyertakan informasi zona waktu
Contoh:
type: 'datetimeTz' - Field Tanggal Waktu Dengan Zona Waktu
- Penjelasan: Digunakan untuk menyimpan data tanggal waktu dengan zona waktu
- Tipe Database:
TIMESTAMP WITH TIME ZONE - Property Khusus:
timezone: Apakah menyertakan informasi zona waktu
Contoh:
type: 'datetimeNoTz' - Field Tanggal Waktu Tanpa Zona Waktu
- Penjelasan: Digunakan untuk menyimpan data tanggal waktu tanpa zona waktu
- Tipe Database:
TIMESTAMPatauDATETIME - Property Khusus:
timezone: Apakah menyertakan informasi zona waktu
Contoh:
type: 'dateOnly' - Field Hanya Tanggal
- Penjelasan: Digunakan untuk menyimpan data yang hanya berisi tanggal, tidak menyertakan waktu
- Tipe Database:
DATE - Contoh:
type: 'unixTimestamp' - Field Unix Timestamp
- Penjelasan: Digunakan untuk menyimpan data Unix timestamp
- Tipe Database:
BIGINT - Property Khusus:
epoch: Waktu epoch
Contoh:
Tipe JSON
type: 'json' - Field JSON
- Penjelasan: Digunakan untuk menyimpan data format JSON, mendukung struktur data kompleks
- Tipe Database:
JSONatauTEXT - Contoh:
type: 'jsonb' - Field JSONB
- Penjelasan: Digunakan untuk menyimpan data format JSONB (khusus PostgreSQL), mendukung index dan query
- Tipe Database:
JSONB(PostgreSQL) - Contoh:
Tipe Array
type: 'array' - Field Array
- Penjelasan: Digunakan untuk menyimpan data array, mendukung berbagai tipe element
- Tipe Database:
JSONatauARRAY - Property Khusus:
dataType: Tipe penyimpanan (json/array)elementType: Tipe element (STRING/INTEGER/BOOLEAN/JSON)
Contoh:
type: 'set' - Field Set
- Penjelasan: Digunakan untuk menyimpan data set, mirip array tetapi memiliki constraint keunikan
- Tipe Database:
JSONatauARRAY - Property Khusus:
dataType: Tipe penyimpanan (json/array)elementType: Tipe element (STRING/INTEGER/BOOLEAN/JSON)
Contoh:
Tipe Identifier
type: 'uuid' - Field UUID
- Penjelasan: Digunakan untuk menyimpan identifier unik format UUID
- Tipe Database:
UUIDatauVARCHAR(36) - Property Khusus:
autoFill: Otomatis terisi
Contoh:
type: 'nanoid' - Field Nanoid
- Penjelasan: Digunakan untuk menyimpan identifier unik pendek format Nanoid
- Tipe Database:
VARCHAR - Property Khusus:
size: Panjang IDcustomAlphabet: Set karakter kustomautoFill: Otomatis terisi
Contoh:
type: 'uid' - Field UID Kustom
- Penjelasan: Digunakan untuk menyimpan identifier unik format kustom
- Tipe Database:
VARCHAR - Property Khusus:
prefix: Prefixpattern: Pattern validasi
Contoh:
type: 'snowflakeId' - Field Snowflake ID
- Penjelasan: Digunakan untuk menyimpan identifier unik yang dihasilkan oleh algoritma snowflake
- Tipe Database:
BIGINT - Contoh:
Field Fungsional
type: 'password' - Field Password
- Penjelasan: Digunakan untuk menyimpan data password yang sudah dienkripsi
- Tipe Database:
VARCHAR - Property Khusus:
length: Panjang hashrandomBytesSize: Ukuran random bytes
Contoh:
type: 'encryption' - Field Enkripsi
- Penjelasan: Digunakan untuk menyimpan data sensitif yang sudah dienkripsi
- Tipe Database:
VARCHAR - Contoh:
type: 'virtual' - Field Virtual
- Penjelasan: Digunakan untuk menyimpan data virtual yang dihitung, tidak disimpan di database
- Tipe Database: Tidak ada (field virtual)
- Contoh:
type: 'context' - Field Context
- Penjelasan: Digunakan untuk membaca data dari konteks runtime (seperti informasi pengguna saat ini)
- Tipe Database: Ditentukan berdasarkan dataType
- Property Khusus:
dataIndex: Path index datadataType: Tipe datacreateOnly: Hanya diset saat pembuatan
Contoh:
Field Relasi
type: 'belongsTo' - Relasi Belongs To
- Penjelasan: Merepresentasikan relasi many-to-one, record saat ini milik record lain
- Tipe Database: Field foreign key
- Property Khusus:
target: Nama tabel data targetforeignKey: Nama field foreign keytargetKey: Nama field key tabel targetonDelete: Operasi cascade saat deleteonUpdate: Operasi cascade saat updateconstraints: Apakah mengaktifkan constraint foreign key
Contoh:
type: 'hasOne' - Relasi Has One
- Penjelasan: Merepresentasikan relasi one-to-one, record saat ini memiliki satu record terkait
- Tipe Database: Field foreign key
- Property Khusus:
target: Nama tabel data targetforeignKey: Nama field foreign keysourceKey: Nama field key tabel sumberonDelete: Operasi cascade saat deleteonUpdate: Operasi cascade saat updateconstraints: Apakah mengaktifkan constraint foreign key
Contoh:
type: 'hasMany' - Relasi Has Many
- Penjelasan: Merepresentasikan relasi one-to-many, record saat ini memiliki banyak record terkait
- Tipe Database: Field foreign key
- Property Khusus:
target: Nama tabel data targetforeignKey: Nama field foreign keysourceKey: Nama field key tabel sumbersortBy: Field sortingsortable: Apakah dapat diurutkanonDelete: Operasi cascade saat deleteonUpdate: Operasi cascade saat updateconstraints: Apakah mengaktifkan constraint foreign key
Contoh:
type: 'belongsToMany' - Relasi Many-to-Many
- Penjelasan: Merepresentasikan relasi many-to-many, menghubungkan dua tabel data melalui tabel perantara
- Tipe Database: Tabel perantara
- Property Khusus:
target: Nama tabel data targetthrough: Nama tabel perantaraforeignKey: Nama field foreign keyotherKey: Foreign key sisi lain tabel perantarasourceKey: Nama field key tabel sumbertargetKey: Nama field key tabel targetonDelete: Operasi cascade saat deleteonUpdate: Operasi cascade saat updateconstraints: Apakah mengaktifkan constraint foreign key
Contoh:

