Sites
Kelola lokasi fisik dan area sebagai kelompok logis untuk stream — mendukung hierarki parent-child seperti gedung, lantai, dan ruangan.
Pengenalan
Sites adalah unit pengelompokan logis yang merepresentasikan lokasi atau area fisik di dunia nyata — mulai dari gedung, lantai, hingga ruangan tertentu. Dengan Sites, operator dapat mengorganisasi stream kamera berdasarkan lokasi sehingga pemantauan menjadi lebih terstruktur dan mudah dinavigasi.
Setiap Site dapat memiliki parent site, membentuk hierarki yang mencerminkan struktur fisik lokasi Anda. Sistem mendukung hingga tiga level kedalaman: top-level (misalnya gedung), child (misalnya lantai), dan grandchild (misalnya ruangan). Stream kemudian ditetapkan ke site spesifik — terutama ke node daun (leaf) pada hierarki — agar dapat ditampilkan dan difilter secara terkelompok.
Hierarki Sites bersifat fleksibel. Anda dapat membuat site datar tanpa parent, atau membangun pohon lokasi bertingkat sesuai kebutuhan organisasi Anda.
Bagi integrator, semua operasi Sites tersedia melalui REST API. Endpoint Sites mendukung Federation Mode untuk deployment multi-instance, pembaruan batch, penetapan stream, serta pengurutan stream per site. Site diidentifikasi secara unik oleh id (integer) yang bersifat permanen setelah site dibuat.
Cara Menggunakan
Melihat Daftar Site
Buka halaman Sites
Navigasikan ke /sites dari sidebar. Tampilan utama menampilkan seluruh site dalam bentuk Tree View yang mencerminkan hierarki parent-child. Gunakan tombol Expand Semua atau Collapse Semua di toolbar untuk mengatur tampilan pohon.
Gunakan pencarian untuk menemukan site tertentu
Ketik nama site di kotak Cari Sites yang tersedia di bagian atas daftar. Hasil pencarian akan menyaring tree secara real-time sesuai nama yang diketik.
Baca informasi site
Setiap baris site pada tree menampilkan: nama site, parent site (jika ada), instance asal (pada mode Federation), serta tombol aksi — Edit, Hapus, dan Tambah Child untuk membuat sub-site di bawahnya.
Menambah Site Baru
Klik tombol Tambah Site Baru
Tombol ini tersedia di toolbar kanan atas halaman /sites. Dialog form penambahan site akan muncul.
Isi informasi site
Lengkapi field berikut pada form:
- Nama Site — nama deskriptif untuk site (wajib, minimal 2 karakter). Contoh:
Gedung A,Lantai 3,Ruang Server. - Parent Site (Opsional) — pilih site yang akan menjadi induk. Biarkan kosong untuk membuat top-level site. Gunakan kotak pencarian di dalam dropdown untuk menemukan parent yang diinginkan.
- Instance — (tersedia di Federation Mode) pilih instance tempat site akan dibuat. Instance tidak dapat diubah setelah site disimpan.
Klik Buat Site
Sistem akan menyimpan site baru. Site akan langsung muncul di tree view pada posisi yang sesuai dengan hierarki parent yang dipilih.
Nama site harus unik di dalam level yang sama. Dua site dengan nama yang sama diperbolehkan selama memiliki parent yang berbeda — misalnya dua site bernama "Lantai 1" di bawah gedung yang berbeda.
Mengedit Site
Temukan site yang ingin diedit
Di tree view, cari site menggunakan kotak pencarian atau navigasi manual pada pohon hierarki.
Klik ikon Edit pada baris site
Dialog edit akan muncul dengan data site saat ini yang sudah terisi.
Ubah informasi yang diperlukan
- Nama Site — perbarui nama site.
- Parent Site — pindahkan site ke parent yang berbeda untuk mengubah posisinya dalam hierarki. Pilih kosong untuk menjadikannya top-level site.
Instance tidak dapat diubah setelah site dibuat.
Klik Perbarui Site
Perubahan akan diterapkan dan tree view akan diperbarui secara otomatis.
Memindahkan site ke parent yang berbeda tidak memengaruhi stream yang sudah ditetapkan ke site tersebut. Stream tetap terhubung ke site yang sama meskipun posisi site dalam hierarki berubah.
Menambah Child Site
Untuk membuat sub-site langsung di bawah site tertentu, klik tombol Tambah Child pada baris site yang diinginkan di tree view. Form yang muncul akan otomatis menetapkan site tersebut sebagai parent — Anda hanya perlu mengisi nama child site yang baru.
Menghapus Site
Klik ikon Hapus pada baris site
Dialog konfirmasi akan muncul, menampilkan ringkasan dampak penghapusan: jumlah stream aktif yang terhubung dan daftar child site yang akan terdampak.
Baca peringatan dengan seksama
Jika site memiliki child site, child langsung akan dipindahkan ke level root setelah penghapusan. Jika site memiliki stream yang terhubung, penetapan stream tersebut ke site ini akan dihapus.
Klik Hapus Site untuk mengonfirmasi
Penghapusan bersifat permanen dan tidak dapat dibatalkan.
Hierarki Site
Sites mendukung struktur pohon (tree) yang merepresentasikan lokasi fisik secara bertingkat. Berikut contoh struktur hierarki tipikal untuk sebuah kompleks perkantoran:
Pada struktur di atas:
- Gedung Utama dan Gedung Annex adalah top-level site (tanpa parent).
- Lantai 1, Lantai 2, Lantai 3 adalah child site di bawah Gedung Utama.
- Lobby Depan, Ruang Rapat A, dst. adalah grandchild site (level terdalam).
- Stream kamera biasanya ditetapkan ke grandchild site — lokasi paling spesifik.
Sistem membatasi kedalaman hierarki hingga 3 level (top-level, child, grandchild). Percobaan membuat site di bawah grandchild akan ditolak oleh sistem.
Pada tampilan Stream berdasarkan Site (/streams/site), stream dari child site secara otomatis rolled up ke tampilan parent site — sehingga operator yang memantau "Lantai 1" dapat melihat seluruh stream dari semua ruangan di lantai tersebut.
Fitur Utama
Tree View Hierarki
Tampilan pohon interaktif yang mencerminkan struktur fisik lokasi Anda. Expand dan collapse node untuk navigasi yang efisien, bahkan pada deployment dengan ratusan site.
Parent-Child Site
Bangun hierarki lokasi bertingkat (gedung → lantai → ruangan) untuk mengorganisasi stream secara terstruktur sesuai layout fisik.
Pembaruan Batch
Perbarui nama, parent, dan urutan beberapa site sekaligus melalui endpoint PATCH /api/sites/batch — ideal untuk reorganisasi skala besar.
Pengurutan Stream
Atur urutan tampilan stream dalam setiap site via drag-and-drop di UI atau endpoint PUT /api/sites/:id/streams/order untuk kontrol lebih presisi.
Stream Rolled Up
Stream yang ditetapkan ke child site otomatis ditampilkan pada parent site — operator dapat memantau seluruh area hanya dengan membuka site level atas.
Federation Support
Dalam deployment multi-instance, site dari seluruh instance dapat dikelola dan ditampilkan secara agregat melalui parameter instance dan is_aggregated.
API Reference
Semua endpoint memerlukan header
Authorization: Bearer <token>. Lihat Otentikasi untuk cara mendapatkan token.
GET /api/sites
Mengambil seluruh site yang dapat diakses oleh pengguna yang sedang login.
Prop
Type
curl -X GET "${RAISA_API_URL}/api/sites" \
-H "Authorization: Bearer <token>"Contoh respons:
{
"ok": true,
"message": "success",
"sites": [
{
"id": 1,
"name": "Gedung Utama",
"parent_id": null,
"order": 0,
"created_at": "2025-01-15T08:00:00Z",
"created_by": 10,
"updated_at": "2025-01-15T08:00:00Z",
"instance": "local"
},
{
"id": 2,
"name": "Lantai 1",
"parent_id": 1,
"order": 0,
"created_at": "2025-01-15T08:05:00Z",
"created_by": 10,
"updated_at": "2025-01-15T08:05:00Z",
"instance": "local"
},
{
"id": 3,
"name": "Lobby Depan",
"parent_id": 2,
"order": 0,
"created_at": "2025-01-15T08:10:00Z",
"created_by": 10,
"updated_at": "2025-01-15T08:10:00Z",
"instance": "local"
}
]
}Respons berisi seluruh site dalam satu array datar. Rekonstruksi pohon hierarki dilakukan di sisi klien menggunakan field parent_id.
POST /api/sites — Tambah Site
Membuat site baru.
Prop
Type
curl -X POST "${RAISA_API_URL}/api/sites" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Lantai 1",
"parent_id": 1
}'Contoh respons:
{
"ok": true,
"message": "success",
"site": {
"id": 2,
"name": "Lantai 1",
"parent_id": 1,
"order": 0,
"created_at": "2025-01-15T08:05:00Z",
"created_by": 10,
"updated_at": "2025-01-15T08:05:00Z"
}
}PUT /api/sites/:id — Perbarui Site
Memperbarui nama dan/atau parent site yang sudah ada.
| Parameter | Tipe | Keterangan |
|---|---|---|
id | number | ID site yang akan diperbarui (path parameter). |
instance | string | (Opsional) ID instance untuk Federation Mode. |
Prop
Type
curl -X PUT "${RAISA_API_URL}/api/sites/2" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Lantai 1 (Revisi)",
"parent_id": 1
}'DELETE /api/sites/:id
Menghapus site secara permanen. Child site langsung dari site yang dihapus akan dipindahkan ke level root. Penetapan stream ke site ini akan dihapus.
| Parameter | Tipe | Keterangan |
|---|---|---|
id | number | ID site yang akan dihapus (path parameter). |
instance | string | (Opsional) ID instance untuk Federation Mode. |
curl -X DELETE "${RAISA_API_URL}/api/sites/3" \
-H "Authorization: Bearer <token>"Respons sukses:
{
"ok": true,
"message": "Site berhasil dihapus"
}PATCH /api/sites/batch — Pembaruan Batch
Memperbarui beberapa site sekaligus dalam satu request — berguna untuk reorganisasi hierarki skala besar atau pembaruan urutan massal.
Prop
Type
Setiap item dalam array sites:
Prop
Type
curl -X PATCH "${RAISA_API_URL}/api/sites/batch" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"sites": [
{ "id": 2, "order": 0 },
{ "id": 4, "order": 1 },
{ "id": 5, "parent_id": 2, "order": 0 }
]
}'POST /api/sites/:id/assign-stream
Menetapkan satu stream ke site tertentu.
| Parameter | Tipe | Keterangan |
|---|---|---|
id | number | ID site tujuan (path parameter). |
instance | string | (Opsional) ID instance untuk Federation Mode. |
Prop
Type
curl -X POST "${RAISA_API_URL}/api/sites/3/assign-stream" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"stream_id": "abc123"
}'PUT /api/sites/:id/streams/order — Atur Urutan Stream
Mengatur ulang urutan stream di dalam site tertentu.
| Parameter | Tipe | Keterangan |
|---|---|---|
id | number | ID site (path parameter). |
instance | string | (Opsional) ID instance untuk Federation Mode. |
Prop
Type
curl -X PUT "${RAISA_API_URL}/api/sites/3/streams/order" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"stream_ids": ["abc123", "def456", "ghi789"]
}'Membuat Hierarki via Stream API
Selain endpoint Sites, Anda juga dapat membuat hierarki site secara otomatis saat mendaftarkan stream baru menggunakan sintaks path pada field sites di Stream API:
{
"stream_name": "Kamera Lobby",
"stream_address": "rtsp://192.168.1.100/stream1",
"sites": [
"Gedung A/Lantai 1/Lobby Utama",
"Gedung A/Lantai 1/Area Resepsi"
]
}Sistem akan membuat site Gedung A → Lantai 1 → Lobby Utama (dan Area Resepsi) secara otomatis jika belum ada, kemudian menetapkan stream ke node daun (leaf). Site yang sudah ada akan digunakan ulang tanpa duplikasi.
Stream hanya ditetapkan ke node daun (item terakhir dalam setiap path). Site parent dibuat tetapi tidak mendapat penetapan stream langsung — ini mengikuti prinsip bahwa stream berada di lokasi spesifik, bukan area umum.
Tips & Troubleshooting
Selanjutnya
Statistics: LPR (License Plate Recognition)
Pantau performa pengenalan plat nomor kendaraan — total deteksi, distribusi per Stream, analisis waktu puncak, dan tren — langsung dari Lenz Dashboard.
API Reference — Sites
Endpoint untuk mengelola Site (lokasi fisik), hierarki parent-child, penetapan stream, dan pembaruan batch.