Konsol admin platform
Konsol admin berada di /admin dan dipakai administrator platform (bukan admin workspace) untuk mengelola akun pengguna. Akun admin bukan akun pengguna biasa: kredensialnya di .env, sesinya terpisah, dan halamannya di /admin.
Mengaktifkan
Section titled “Mengaktifkan”-
Buat hash password (minimal 12 karakter; password tidak tersimpan di mana pun):
Terminal window cd ~/celestian/deployread -rs PW; printf '%s' "$PW" | docker compose run --rm --no-deps -T api hash-password; unset PW -
Salin hasilnya ke
deploy/.env. Kutip tunggal pada hash wajib (hash memuat$; tanpa kutip, Compose merusaknya):Terminal window ADMIN_USERNAME=admin-platformADMIN_PASSWORD_HASH='$argon2id$v=19$m=19456,t=2,p=1$…$…'ADMIN_SESSION_TTL=8h -
docker compose up -d, lalu bukahttps://<domain>/admindan masuk. Logapimencatatkonsol admin platform aktifbila kredensial terbaca; hash yang rusak membuatapigagal start dengan pesan jelas.
Mengosongkan salah satu variabel mematikan konsol. Mengganti ADMIN_USERNAME mencabut semua sesi admin yang berjalan. Salah password berulang mengunci username itu sementara.
Fungsi
Section titled “Fungsi”| Fungsi | Keterangan |
|---|---|
| Daftar akun | Cari, filter lanjutan (nama, username, e-mail, ID, tag, status, kuota penuh), urutkan, dan paginasi. |
| Buat user | Nama, username, e-mail, password, tag, dan metadata. E-mail langsung terverifikasi (bisa dimatikan). Akun mendapat kuota bawaan akun baru dan e-mail sambutan berisi tautan masuk dan tautan mengatur password. |
| Buat massal | Dari CSV (kolom username*, first_name*, email*, last_name, password, tags, metadata_json), maksimal 200 baris, dengan pratinjau dan semua-atau-tidak-sama-sekali. Password kosong = acak yang tidak diketahui siapa pun; akun dibuka lewat tautan di e-mail sambutan. |
| Detail akun | Tab Detail, Metadata, dan Journals. |
| Nonaktifkan / aktifkan | Akun nonaktif: sesi dicabut dan login ditolak seketika; workspace dan datanya tidak berubah. |
| Reset password | Dua mode: kirim tautan reset ke e-mail akun, atau tetapkan password baru sekarang (opsi dibangkitkan acak, ditampilkan sekali). Selalu bisa mencabut semua sesi dan membuka lockout. |
| Kuota | Ubah jumlah workspace, device, dan channel yang boleh dibuat per akun. Angka, 0 (tidak boleh membuat), atau tanpa batas. Menurunkan kuota tidak menghapus yang sudah ada. |
| Jadikan admin | Hanya admin utama (dari .env). Akun itu masuk di /admin/login dengan akunnya sendiri dan bisa mengelola pengguna dan kuota, tetapi tidak mengangkat admin lain. |
| Pindahkan pemilik | Memindahkan paksa pemilik workspace ke anggota lain (kuota penerima tetap dicek). |
| Hapus akun | Menghapus akun dan semua workspace yang dibuatnya, permanen. Pindahkan dulu pemilik workspace yang masih dipakai orang lain. Pesan di TimescaleDB dibersihkan bertahap di latar belakang. |
| Hapus massal | Pilih akun lalu hapus; dampak per akun ditampilkan, dan Anda mengetik jumlah akun untuk konfirmasi. |
| Ekspor CSV | Daftar akun sesuai filter (maksimal 20.000 baris, tanpa hash password). |
| Workspace dihapus | Tab daftar workspace yang menunggu penghapusan permanen: Pulihkan atau Hapus sekarang. |
| Riwayat | /admin/journal: semua aksi admin dengan filter dan unduhan CSV. |
Akun baru mendapat DEFAULT_MAX_WORKSPACES, DEFAULT_MAX_DEVICES, dan DEFAULT_MAX_CHANNELS (bawaan 1/1/1; -1 = tanpa batas). Akun yang sudah ada sebelum fitur kuota tetap tanpa batas.
- Kuota dihitung atas semua workspace yang dibuat user itu. Device dan channel yang dibuat anggota lain di workspace tersebut memakai jatah pemilik workspace.
- Gateway dihitung sebagai device.
- Batas tercapai: pembuatan (termasuk impor CSV, yang batal seluruhnya) ditolak dengan pesan kuota.
Keamanan konsol
Section titled “Keamanan konsol”- Sesi admin memakai token terpisah (audience berbeda) tanpa refresh; token pengguna tidak lolos endpoint admin dan sebaliknya.
- Cookie
celestian_adminbersifathttpOnly,sameSite=strict, dan terbatas di path/admin. - Semua aksi tercatat di Riwayat dengan aktor
admin.