Referensi Bidang Konfigurasi
Referensi lengkap untuk setiap bidang di config.json. File ini mengontrol perilaku produk runtime — batas paket, penagihan, webhook, dan tanda fitur. Itu terpisah dari .env, yang menyimpan rahasia dan kabel infrastruktur.
Contoh Pemula
Ini adalah titik awal yang direkomendasikan untuk penerapan yang dihosting sendiri tanpa konfigurasi penagihan. Semua batasan ditetapkan ke null (tidak terbatas), dan fitur penagihan dinonaktifkan. Mengganti [email protected] dengan alamatmu sendiri.
admin#
Serangkaian alamat email yang diberikan akses admin situs. Admin dapat mengakses halaman istimewa seperti penjadwal proses batch dan dasbor penggunaan seluruh sistem.
| Bidang | Jenis | Diperlukan | Keterangan |
|---|---|---|---|
| admins | string[] | Diperlukan | Daftar alamat email dengan akses admin. Harus cocok dengan email yang terkait dengan akun Panitera pengguna. |
fitur#
Tanda fitur yang mengontrol bagian UI produk mana yang aktif. Untuk penerapan sederhana yang dihosting sendiri, Anda dapat menonaktifkan semua fitur penagihan dan hanya membiarkan tanda penjadwal jika diperlukan.
| Bidang | Jenis | Diperlukan | Keterangan |
|---|---|---|---|
| subscriptionEnforcementEnabled | boolean | Diperlukan | Jika benar, pengguna dapat melihat dan meningkatkan ke paket berbayar. Jika salah, UI pemutakhiran akan menampilkan placeholder penagihan segera hadir. |
| workspaceBillingEnabled | boolean | Diperlukan | Jika benar, tingkat penagihan dan informasi paket akan muncul di bar samping dan pengaturan ruang kerja. Setel ke false untuk menyembunyikan seluruh UI penagihan. |
| batchSchedulerEnabled | boolean | Diperlukan | Jika benar, penjadwal proses batch aktif dan dapat diakses admin. Membutuhkan Redis dan BullMQ untuk berjalan. |
| customMCPServerTokens | boolean | Diperlukan | Jika salah, server MCP mengautentikasi menggunakan token OAuth/Clerk standar. Jika benar, token API yang dikelola sendiri akan digunakan — berguna untuk lingkungan tanpa dukungan Clerk MCP. |
batas#
Serangkaian kumpulan batas yang mengontrol penggunaan sumber daya. Setiap entri dapat dikaitkan dengan tingkat penagihan melalui billingTier, atau atur ke null untuk diterapkan ke semua pengguna apa pun paketnya. Untuk penerapan sederhana tanpa penagihan, satu entri dengan "billingTier": null sudah cukup. null nilai batas numerik berarti tidak terbatas.
| Bidang | Jenis | Diperlukan | Keterangan |
|---|---|---|---|
| id | string | Diperlukan | Pengidentifikasi unik untuk kumpulan batas ini (misalnya gratis, pro, default). |
| maxTrackableItems | number | Diperlukan | Jumlah maksimum item yang dapat dilacak (formulir + titik akhir API) yang dapat dibuat pengguna per ruang kerja. |
| maxResponsesPerSurvey | number | null | Diperlukan | Jumlah maksimum tanggapan yang diperbolehkan per survei/formulir. null artinya tidak terbatas. |
| maxWorkspaceMembers | number | null | Diperlukan | Jumlah maksimum anggota di ruang kerja. null artinya tidak terbatas. |
| maxApiLogsPerMinute | number | Diperlukan | Jumlah maksimum peristiwa log yang dapat diserap per menit per item yang dapat dilacak. Permintaan berlebih dibatasi tarifnya. |
| maxApiPayloadBytes | number | Diperlukan | Ukuran maksimum dalam byte dari satu muatan log. Permintaan yang lebih besar dari ini ditolak. |
| logRetentionDays | number | Diperlukan | Jumlah hari entri log disimpan sebelum dihapus. Berlaku untuk semua log dalam tingkat ini. |
| maxCreatedWorkspaces | number | null | Diperlukan | Jumlah maksimum ruang kerja yang dapat dibuat oleh satu pengguna. null artinya tidak terbatas. |
| billingTier | string | null | Diperlukan | ID tingkat penagihan yang menerapkan batas ini. Harus cocok dengan id di array billing.tiers. Setel ke nol untuk menerapkan batas ini ke semua pengguna, apa pun paketnya. |
penagihan#
Konfigurasi penagihan opsional untuk integrasi Lemon Squeezy. Jika Anda tidak menggunakan paket berbayar, setel lemonSqueezyStoreId Dan manageUrl ke null dan pergi tiers sebagai array kosong. Nilai id tingkat direferensikan oleh batas[].billingTier — nilai tersebut harus sama persis.
| Bidang | Jenis | Diperlukan | Keterangan |
|---|---|---|---|
| lemonSqueezyStoreId | string | null | Opsional | ID toko Lemon Squeezy Anda. Diperlukan jika Anda memproses pembayaran melalui Lemon Squeezy. |
| manageUrl | string | null | Opsional | URL ke laman pengelolaan penagihan yang ditampilkan kepada pengguna. Biasanya URL portal pelanggan Lemon Squeezy Anda. |
billing.tiers[]
Rangkaian tingkat penagihan ditampilkan di UI pemutakhiran. Setiap tingkatan harus memiliki id unik yang cocok dengan entri terkait di batas[].billingTier.
| Bidang | Jenis | Diperlukan | Keterangan |
|---|---|---|---|
| id | string | Diperlukan | Pengidentifikasi tingkat unik. Dirujuk oleh batas[].billingTier. |
| name | string | Diperlukan | Nama tampilan ditampilkan kepada pengguna (misalnya Pro, Tim). |
| priceLabel | string | Diperlukan | String harga ditampilkan di UI (misalnya $25). |
| priceInterval | string | Diperlukan | Interval penagihan ditampilkan di bawah harga (misalnya per bulan). |
| description | string | Diperlukan | Deskripsi singkat tentang apa yang termasuk dalam tingkatan ini. |
| tone | "neutral" | "accent" | "strong" | Diperlukan | Tema visual kartu tingkat. aksen dan kuat adalah gaya yang ditonjolkan; netral adalah defaultnya. |
| mostPopular | boolean | Diperlukan | Jika benar, tampilkan lencana Paling Populer di kartu tingkat ini. |
| lemonSqueezyVariantId | string | null | Opsional | ID varian produk Lemon Squeezy untuk tingkatan ini. Diperlukan agar checkout berfungsi. |
| enabled | boolean | Diperlukan | Jika salah, tingkat ini disembunyikan dari UI pemutakhiran meskipun penagihan diaktifkan. |
penggunaan#
Kontrol penggunaan API global yang berlaku di seluruh ruang kerja dan pengguna.
| Bidang | Jenis | Diperlukan | Keterangan |
|---|---|---|---|
| invalidApiKeyRateLimitPerMinute | number | Diperlukan | Jumlah maksimum permintaan dengan kunci API tidak valid yang diperbolehkan per menit per IP sebelum sumber dibatasi tarifnya. Membantu mencegah isian kredensial. |
| maxBodyBytes | number | Diperlukan | Ukuran maksimum dalam byte untuk isi permintaan log di tingkat gateway API. Permintaan yang melebihi ini ditolak sebelum mencapai lapisan layanan. |
| pageSize | number | Diperlukan | Jumlah entri log yang diambil per halaman saat memuat penampil log. |
webhook#
Mengontrol antrean pengiriman webhook keluar yang didukung oleh Redis dan BullMQ. Pembatasan tarif di sini berlaku untuk konsumen antrean, bukan untuk penyerapan log masuk.
| Bidang | Jenis | Diperlukan | Keterangan |
|---|---|---|---|
| queue.enabled | boolean | Diperlukan | Jika benar, webhook keluar akan dimasukkan ke dalam antrean di Redis dan dikirimkan secara asinkron. Membutuhkan Redis untuk berjalan. |
| queue.rateLimitMs | number | Diperlukan | Milidetik minimum untuk menunggu antara pengiriman webhook berturut-turut dari antrean. |
| queue.rateLimitMax | number | Diperlukan | Jumlah maksimum peristiwa webhook yang dapat dikirim dalam jendela rateLimitMs. |
kelompok#
Konfigurasi untuk penjadwal batch latar belakang. Penjadwal juga harus diaktifkan melalui features.batchSchedulerEnabled.
| Bidang | Jenis | Diperlukan | Keterangan |
|---|---|---|---|
| schedulerTimeZone | string | Diperlukan | String zona waktu IANA digunakan untuk menjadwalkan pekerjaan batch (misalnya UTC, Amerika/New_York). Mempengaruhi ketika pekerjaan berbasis cron terpicu. |