Enterprise Network Automation

Otomatisasi jaringan,
dari satu dashboard.

Platform otomatisasi jaringan dengan konektivitas perangkat nyata: discovery adapter & host, eksekusi perintah via SSH/Telnet, generator konfigurasi Jinja2, task automation terjadwal, monitoring trafik realtime, dan visualisasi topologi — dalam satu antarmuka web.

FastAPI 0.104 · Python React 18 + TypeScript Netmiko & NAPALM 7 modul UI 11 tipe automation task 40+ endpoint REST
http://localhost:3000/dashboard
🌐 Network Automation Platform v2.0 ⏻

🖥️ Network Automation Dashboard

↻ Refresh Network
Network Status: 3 active adapters, 12 connected devices detected
🔌 Active Adapters
3
Ethernet & WiFi
🖥 Connected Devices
12
Network devices
📡 Managed Devices
5
4 online, 1 offline
▶ Automation Tasks
8
1 running, 2 pending
🔗 Network Topology
Routers 40% Switches 25% Servers 13% Other 22%
📊 Task Status Distribution
Compl. Running Pending Failed
01 — Tampilan Antarmuka

Tujuh modul di sidebar, satu shell aplikasi

Seluruh modul berbagi satu kerangka: AppBar Network Automation Platform v2.0 di atas dan drawer permanen 250 px di kiri (otomatis jadi drawer geser di layar < 900 px). Tema MUI dark dengan warna primer #00bcd4, latar #0a1929, dan kartu #0f2a3f. Berikut tampilan tiap layar beserta deskripsi fungsinya.

http://localhost:3000/dashboard
🌐Network Automation Platform v2.0⏻

🖥️ Network Automation Dashboard

↻ Refresh Network
Network Status: 3 active adapters, 12 connected devices detected
Active Adapters
3
Ethernet & WiFi
Connected Devices
12
Network devices
Managed Devices
5
4 online, 1 offline
Automation Tasks
8
1 running, 2 pending
⏱ Network Performance CPUMemoryNetwork KB/s
📡 Connected Network Devices Scan Network
IP AddressMAC AddressHostnameSourceStatusLast SeenActions
192.168.1.1a4:2b:b0:1c:3d:9egateway.lanARPONLINE11/09 09:41:02Details
192.168.1.2000:1c:58:7a:11:02sw-core-01PINGONLINE11/09 09:41:02Details
192.168.1.45UnknownUnknownARPPENDING11/09 09:40:55Details
Layar 01

Dashboard

Rute /dashboard · komponen Dashboard.tsx

Halaman pertama yang terbuka (rute / otomatis dialihkan ke sini). Saat mount, komponen langsung memanggil auto-discover agar daftar perangkat di jaringan lokal terisi tanpa aksi manual, lalu menarik empat sumber data sekaligus dan me-refresh dirinya tiap 30 detik.

  • Empat kartu statistik — Active Adapters (adapter aktif di host), Connected Devices (hasil ARP + ping sweep), Managed Devices (perangkat terdaftar, lengkap dengan hitungan online/offline), dan Automation Tasks (running/pending).
  • Tiga grafik Recharts — pie komposisi tipe perangkat, bar distribusi status task, dan line performa CPU / Memory / Network per jam.
  • Panel MRTG — monitor bandwidth IN/OUT realtime per adapter, tertanam di dashboard (lihat Layar 08).
  • Tabel Connected Network Devices — kolom IP, MAC, Hostname, Source, Status, Last Seen, dan tombol Details yang membuka dialog detail perangkat. Tombol Scan Network memicu pemindaian ulang.
  • Tabel Recent Automation Tasks — lima task terakhir dengan progress bar dan chip status.
  • Penanganan error — bila backend tidak terjangkau, muncul alert berisi alamat backend (http://localhost:8000) dan tombol Retry.
Endpoint yang dipakai GET /api/devices/ GET /api/tasks/ GET /api/automation/network/adapters/active GET /api/automation/network/devices/connected POST /api/automation/network/devices/auto-discover
http://localhost:3000/devices
🌐Network Automation Platform v2.0⏻

Network Devices

+ Add Device
NameHostTypeConnectionStatusLast ConnectedActions
Router-Main 📋192.168.1.1:22 CISCO IOSSSH online11/09 09:38 ▶ 💻 ⚙ 🗑
Switch-Core-01 📋192.168.1.20:22 CISCO XESSH online11/09 09:36 ▶ 💻 ⚙ 🗑
Edge-JunOS 📋10.10.0.254:22 JUNIPER JUNOSSSH offline— ▶ 💻 ⚙ 🗑
Legacy-SW 📋192.168.1.60:23 CISCO IOS TELNETTELNET pending— ▶ 💻 ⚙ 🗑
Add Network Device
Device NameRouter-Branch-02
Host / IP Address192.168.5.1
Port22
Device TypeCisco IOS ▾
Connection TypeSSH ▾
Usernameadmin
Password••••••••
Enable Password (Optional)••••••
CancelAdd Device
Layar 02

Devices

Rute /devices · komponen DeviceList.tsx

Inventaris perangkat yang dikelola platform. Semua aksi terhadap perangkat nyata — uji koneksi, eksekusi perintah, dan push konfigurasi — dijalankan dari tabel ini, dengan notifikasi react-hot-toast untuk setiap hasil.

  • Tabel perangkat — Name (plus tombol salin ID), Host:Port, Type, Connection, Status, dan Last Connected.
  • Empat aksi baris — Test Connection (mengukur keberhasilan login & mengambil fakta perangkat), Execute Commands (dialog perintah show, satu baris satu perintah, output ditampilkan sebagai teks monospace), Push Configuration (mengirim baris konfigurasi ke mode config), dan Delete Device.
  • Dialog Add Network Device — Device Name, Host/IP (divalidasi sebagai IP atau hostname di backend), Port (1–65535), Device Type, Connection Type, Username, Password, dan Enable Password opsional.
  • Device Type yang didukung — Cisco IOS, Cisco IOS-XE, Cisco NX-OS, Arista EOS, Juniper JunOS, Huawei VRP (model backend juga mengenal cisco_ios_telnet dan linux).
  • Status perangkat — online, offline, pending, error, maintenance; ditampilkan sebagai chip berwarna.
Endpoint yang dipakai GET /api/devices/ POST /api/devices/ DELETE /api/devices/{id} POST /api/devices/{id}/test POST /api/devices/{id}/commands POST /api/devices/{id}/config
http://localhost:3000/network-adapters
🌐Network Automation Platform v2.0⏻
Total Adapters
7
Active
3
Ethernet
2
WiFi
1
Scan complete — 12 device(s) found on 192.168.1.0/24
Network Adapters 🔍 Scan All↻ Refresh
NameTypeIP AddressNetmaskMAC AddressCIDRStatusActions
📡 Wi-FiWiFi192.168.1.14255.255.255.03c:58:c2:0a:77:1b192.168.1.0/24CONNECTEDDetails Scan
🔌 EthernetEthernet10.10.0.5255.255.255.000:e0:4c:68:22:9a10.10.0.0/24CONNECTEDDetails Scan
🔐 VPN - CorpVPN172.20.8.3255.255.255.0—172.20.8.0/24CONNECTEDDetails Scan
🔌 Ethernet 2Ethernet——00:e0:4c:68:22:9b—DISCONNECTEDDetails Scan
Active Adapters
📡 Wi-Fi WiFi SSID: OFFICE-5G 192.168.1.14 · /24
Layar 03

Network Adapters

Rute /network-adapters · komponen NetworkAdapterManager.tsx

Menampilkan adapter jaringan nyata milik host (Windows, Linux, atau macOS) dan menjadikannya titik awal network discovery. Di mode Docker, data adapter diambil dari host agent di port 9999 agar adapter asli mesin tetap terbaca dari dalam container.

  • Empat kartu ringkasan — Total Adapters, Active, Ethernet, dan WiFi.
  • Tabel adapter — Name, Type (Ethernet, WiFi, VPN, PPP, Loopback), IP Address, Netmask, MAC Address, CIDR, dan Status (connected / disconnected / degraded).
  • Scan All memindai CIDR seluruh adapter aktif; tombol scan per baris memindai satu subnet saja. Pemindaian berjalan sebagai background task, jadi UI tidak terkunci.
  • Banner progres — saat scan berjalan tampil alert “Scanning 192.168.1.0/24” dengan progress bar; setelah selesai berganti jadi alert hijau berisi jumlah device yang ditemukan.
  • Dialog hasil scan — tabel IP, Hostname, Type, dan Protocol (SSH / Telnet / SNMP / HTTP-HTTPS) dari hasil deteksi port.
  • Kartu Active Adapters — ringkasan adapter yang sedang terhubung, termasuk SSID untuk adapter WiFi.
Endpoint yang dipakai GET /api/automation/network/adapters GET /api/automation/network/adapters/active POST /api/devices/discovery/scan GET /api/devices/discovery/status GET /api/devices/discovery/results
http://localhost:3000/automation
🌐Network Automation Platform v2.0⏻
Total Tasks
8
Running
1
Completed
5
Failed
1
Automation Tasks ▶ New Task↻ Refresh
Task IDDevice IDTypeDescriptionProgressStatusActions
3f9a21c4...dev-001CONFIG BACKUP Backup harian Router-Main
100%
COMPLETEDDetails
7c02be80...dev-002COMPLIANCE CHECK Audit baseline Switch-Core
60%
RUNNINGStop
b1d7e455...dev-002INTERFACE CONFIG Set Gi0/1 access VLAN 10
0%
PENDINGExecute
e55c1390...dev-003DEVICE MONITORING Poll CPU/memory Edge-JunOS
35%
FAILEDDetails
Create New Automation Task
Device IDdev-001
Task TypeCONFIG_BACKUP ▾
DescriptionBackup sebelum maintenance
Create Task
Layar 04

Automation

Rute /automation · komponen AutomationTaskManager.tsx

Pusat kendali automation task: membuat, menjalankan, memantau progres, dan membatalkan pekerjaan otomatis pada perangkat. Daftar task di-poll berkala sehingga kolom progress bergerak mengikuti eksekusi di backend.

  • Empat kartu ringkasan — Total Tasks, Running, Completed, dan Failed.
  • Tabel task — Task ID (8 karakter pertama), Device ID, Type (chip huruf kapital), Description, Progress 0–100%, Status, dan Actions.
  • Aksi per baris — Execute untuk task pending, Stop / Cancel untuk task yang sedang berjalan, dan Details untuk melihat hasil JSON serta pesan error.
  • Dialog Create New Automation Task — Device ID, Task Type (daftar diambil langsung dari backend beserta deskripsinya), dan Description.
  • 11 tipe task tersedia, dari config backup sampai konfigurasi SNMP — daftar lengkapnya ada di bagian 04 halaman ini.
  • Siklus status — pending → running → completed / failed / cancelled, dengan retry counter (maksimal 3 kali) di sisi backend.
Endpoint yang dipakai GET /api/automation/tasks GET /api/automation/tasks/types POST /api/automation/tasks/create POST /api/automation/tasks/{id}/execute POST /api/automation/tasks/{id}/cancel
http://localhost:3000/config
🌐Network Automation Platform v2.0⏻

Configuration Generator

Device & Template Selection
Select DeviceRouter-Main (cisco_ios) ▾
Template TypeInterface Configuration ▾
Interface Configuration
Interface 1 REMOVE
Interface NameGigabitEthernet0/1
DescriptionUplink to Core
ModeAccess ▾
Access VLAN10
+ Add Interface ✦ Generate Configuration
Generated Configuration ⇩ Download
1 ! 2 ! Router-Main - Interface Configuration 3 ! Generated by Network Automation Platform 4 ! 5 interface GigabitEthernet0/1 6 description Uplink to Core 7 switchport mode access 8 switchport access vlan 10 9 no shutdown 10 ! 11 interface GigabitEthernet0/2 12 description Trunk to Distribution 13 switchport mode trunk 14 switchport trunk allowed vlan 10,20,30 15 no shutdown 16 !
Layar 05

Config Generator

Rute /config · komponen configGenerator.tsx

Membangun konfigurasi perangkat dari template Jinja2 di sisi backend, tanpa mengetik manual. Panel kiri untuk input, panel kanan menampilkan hasil render pada editor Monaco (read-only, tema vs-dark, dengan nomor baris) yang bisa langsung diunduh sebagai berkas teks.

  • Select Device — daftar diambil dari inventaris perangkat; nama device dipakai pada header konfigurasi yang dihasilkan.
  • Template Type — Interface Configuration, BGP Configuration, atau Full Configuration (gabungan interfaces + bgp). Backend juga menyimpan template snmp.j2.
  • Editor interface dinamis — tiap blok berisi Interface Name, Description, Mode (Access/Trunk), dan field VLAN yang berubah label otomatis menjadi Access VLAN atau Allowed VLANs sesuai mode. Blok bisa ditambah dan dihapus.
  • Generate Configuration — mengirim data ke backend, yang merender template Jinja2 dan mengembalikan teks konfigurasi beserta nama template yang dipakai.
  • Download — menyimpan hasil render sebagai berkas konfigurasi di komputer operator.
  • Template tersimpan di folder templates/ dan dibuat otomatis saat pertama kali service dijalankan, sehingga bisa diedit atau ditambah tanpa mengubah kode.
Endpoint yang dipakai GET /api/devices/ POST /api/config/generate GET /api/config/templates POST /api/config/validate
http://localhost:3000/tasks
🌐Network Automation Platform v2.0⏻

🚀 Task Runner

▶ Create New Task
Task Statistics
Total Tasks8
Running1
Completed5
Failed1
Create Task
DeviceRouter-Main ▾
Task TypeINTERFACE_CONFIG ▾
Parameters (JSON){"interface": "GigabitEthernet0/1", "vlan": "10"}
Running Tasks
▶
COMPLIANCE CHECK
Device: dev-002 | Started: 11/09/2026 09.38.14
60% complete
RUNNINGDetails■ Stop
✔
CONFIG BACKUP
Device: dev-001 | Started: 11/09/2026 09.31.02
COMPLETEDDetails
✖
DEVICE MONITORING
Device: dev-003 | Started: 11/09/2026 09.12.47
FAILEDDetails
Layar 06

Task Runner

Rute /tasks · komponen TaskRunner.tsx

Tampilan operasional untuk menjalankan pekerjaan pada perangkat terpilih dan mengikuti jalannya eksekusi baris per baris. Berbeda dengan layar Automation yang berorientasi tabel manajemen, Task Runner disusun sebagai daftar aktivitas dengan progress bar yang hidup.

  • Kartu Task Statistics — ringkasan Total Tasks, Running, Completed, dan Failed dalam satu kolom.
  • Daftar Running Tasks — tiap baris menampilkan ikon status, jenis task dalam huruf kapital, device ID, waktu mulai, progress bar “xx% complete”, chip status, serta tombol Details dan Stop.
  • Dialog Create New Task — pilih Device dari inventaris, pilih Task Type, dan isi Parameters dalam format JSON, misalnya {"interface": "GigabitEthernet0/1", "vlan": "10"}.
  • Dialog Task Details — memuat status, waktu, parameter, hasil, dan pesan error bila eksekusi gagal.
  • Stop menghentikan task yang sedang berjalan; baris kosong diganti pesan “No tasks running. Create a new task to get started.”
Endpoint yang dipakai GET /api/devices/ GET /api/automation/tasks POST /api/automation/tasks/create POST /api/automation/tasks/{id}/stop
http://localhost:3000/topology
🌐Network Automation Platform v2.0⏻
INTERFACES
📡 Wi-Fi
192.168.1.0/24
OFFICE-5G
🔌 Ethernet
10.10.0.0/24
🔍 Scan Network
✓ 8 device ditemukan
Topologi
Total Node9
Accessible5
Links8
🌐 Network Topology
📡 Wi-Fi — 192.168.1.0/24 (OFFICE-5G)
↻ Refresh
💻 192.168.1.14 this-machine 📡 192.168.1.1 SSH 🖥 192.168.1.20 SSH 🖩 192.168.1.30 WEB 💻 192.168.1.45 TEL ❓ 192.168.1.77 ❓ 192.168.1.88 🖨 192.168.1.50 SNM 📱 192.168.1.91
100% · 9 nodes · 8 links
+ − ◎
Legend
This Machine
Gateway / Router
Accessible Device
Detected Device
Ethernet Link
Wireless Link
Layar 07

Network Topology

Rute /topology · komponen NetworkTopology.tsx

Peta jaringan interaktif yang digambar sebagai SVG kustom — bukan gambar statis. Node disusun melingkar mengelilingi mesin operator, dengan gateway di posisi atas. Kanvas mendukung drag untuk menggeser dan scroll untuk zoom (0,3× sampai 3×).

  • Panel kiri (240 px) — daftar interface host (WiFi, Ethernet, VPN) lengkap dengan CIDR dan SSID; memilih salah satunya menentukan subnet yang dipetakan.
  • Scan Network — memicu discovery pada subnet terpilih, menampilkan status berjalan dan jumlah device yang ditemukan, lalu statistik Total Node, Accessible, dan Links.
  • Empat kategori node — This Machine (biru), Gateway/Router (ungu), Accessible Device (hijau, port manajemen terbuka), dan Detected Device (abu-abu, terdeteksi lewat ARP/ping saja).
  • Badge protokol pada node — SSH, TEL (Telnet), WEB (HTTP/HTTPS), atau SNM (SNMP), sesuai port yang terbuka saat scan.
  • Jenis tautan — garis solid untuk koneksi kabel, garis putus-putus oranye untuk koneksi nirkabel.
  • Klik node membuka dialog detail (IP, hostname, MAC, protokol, kategori) dengan opsi menampilkan tabel ARP perangkat tersebut pada drawer kanan.
  • Kontrol kanvas — tombol Zoom In, Zoom Out, dan Reset View, indikator “100% · 9 nodes · 8 links”, serta legenda di sudut kiri bawah.
Endpoint yang dipakai GET /api/automation/network/adapters POST /api/devices/discovery/scan GET /api/devices/discovery/results GET /api/automation/network/devices/connected GET /api/automation/network/devices/arp
http://localhost:3000/dashboard — panel Network Traffic Monitor

📊 Network Traffic Monitor (MRTG)

Realtime IN/OUT bandwidth per adapter — updates every 2 seconds
📡 Wi-Fi ● 🔌 Ethernet 🔐 VPN - Corp
📡 Wi-Fi WiFi 192.168.1.14 · 192.168.1.0/24 ↻ Refresh
⬇ IN (RX)
1.82 MB/s
Peak
4.10 MB/s
Avg
920 KB/s
Total
12.4 GB
⬆ OUT (TX)
356 KB/s
Peak
1.05 MB/s
Avg
184 KB/s
Total
3.1 GB
Traffic — last 120s · updates every 2s ● IN   ● OUT
Layar 08

Network Traffic Monitor (MRTG)

Panel di dalam /dashboard · komponen MRTGTraffic.tsx

Monitor bandwidth bergaya MRTG yang membaca counter byte adapter host dan mengubahnya menjadi laju per detik. Data ditarik setiap 2 detik dan disimpan sebagai riwayat bergulir, sehingga grafik terus bergerak selama halaman terbuka.

  • Tab per adapter — hanya adapter aktif non-loopback yang tampil; titik hijau berdenyut menandakan adapter sedang melewatkan trafik.
  • Baris info adapter — nama lengkap adapter, chip tipe, alamat IP dan CIDR, serta tombol Refresh untuk menarik sampel seketika.
  • Kartu IN (RX) dan OUT (TX) — laju saat ini dalam font monospace, dilengkapi nilai Peak, Avg, dan Total byte kumulatif sejak adapter aktif.
  • Grafik area ganda — hijau untuk trafik masuk, merah untuk trafik keluar, dengan keterangan rentang waktu “last 120s · updates every 2s”.
  • Sumber data — di Windows counter dibaca lewat host agent (port 9999) sehingga tetap akurat ketika backend berjalan di dalam container Docker.
  • Status awal — sebelum dua sampel terkumpul, panel menampilkan indikator “Collecting data...”.
Endpoint yang dipakai GET /api/automation/network/adapters GET /api/automation/traffic GET /api/automation/traffic/{adapter_name}
02 — Arsitektur Sistem

Empat lapis: UI, API, konektivitas perangkat, dan agen host

Pemisahan tanggung jawab yang jelas membuat platform bisa dijalankan langsung di mesin operator maupun sebagai dua container Docker.

Frontend

🎨
React 18 + TypeScript

Single-page app dengan MUI v5 bertema dark, React Router v6 untuk tujuh rute, TanStack Query untuk pengambilan & caching data, dan react-hot-toast untuk notifikasi aksi.

  • Recharts untuk pie, bar, line, dan area chart
  • Monaco Editor untuk pratinjau konfigurasi
  • Vite sebagai dev server dan bundler
React 18TypeScript 5MUI 5Vite 5RechartsMonaco

Backend

⚙
FastAPI (Python)

Empat router REST — devices, config, tasks, automation — plus endpoint WebSocket per perangkat. Service layer memisahkan logika device, task, automation, dan konfigurasi.

  • Validasi request dengan Pydantic v2
  • Eksekusi task sebagai background job asinkron
  • Logging terstruktur ke folder logs/
FastAPI 0.104UvicornPydantic 2AsyncIOJinja2

Konektivitas Perangkat

🔌
Connection Manager

Netmiko menangani sesi SSH dan Telnet ke perangkat multi-vendor; NAPALM menyediakan operasi tingkat tinggi seperti get facts, LLDP neighbors, serta merge/commit konfigurasi.

  • Connection pool yang dapat dipakai ulang (hemat waktu login)
  • Eviction koneksi terlama saat pool penuh
  • Tipe koneksi pada model: SSH, Telnet, NETCONF, RESTCONF, gNMI
Netmiko 4.3NAPALM 4.1ncclientSSHTelnet

Host Agent

🖥
Agen lokal di port 9999

Skrip Python ringan tanpa dependensi yang membaca adapter dan counter trafik asli mesin Windows, lalu menyajikannya sebagai JSON untuk backend — termasuk saat backend berjalan di dalam Docker.

  • /adapters — daftar adapter & IP
  • /traffic — laju RX/TX per adapter
  • /health — status agen
Python stdlibHTTPServerWindows / Linux / macOS
03 — Fitur Utama

Apa yang benar-benar dikerjakan platform ini

Setiap fitur di bawah terhubung langsung ke endpoint dan layar yang sudah dibahas di bagian 01.

📦
Device Management

Tambah, ubah, hapus, dan uji perangkat. Uji koneksi melakukan login nyata lalu menyimpan waktu koneksi terakhir serta pesan error bila gagal.

🔍
Network Discovery

Discovery memakai cache ARP lebih dulu untuk mempercepat proses, dilanjutkan ping sweep dan pemeriksaan port 22, 23, 80, 161, 443 secara paralel, lalu menyimpulkan tipe perangkat dan protokol aksesnya.

✎️
Config Generator

Render template Jinja2 (interfaces, bgp, snmp, full) menjadi konfigurasi siap pakai, dengan pratinjau di editor kode dan opsi unduh.

⚡
Command & Config Execution

Kirim perintah show maupun baris konfigurasi ke satu perangkat, atau jalankan sekaligus ke banyak perangkat lewat endpoint bulk.

🗺
Topologi Interaktif

Peta SVG dengan pan, zoom, kategori node berwarna, badge protokol, dan detail ARP per node.

📈
Monitoring Trafik

Pengukuran bandwidth IN/OUT per adapter tiap 2 detik lengkap dengan nilai peak, rata-rata, dan total kumulatif.

🔧
Automation Task

Sebelas jenis task dengan progres 0–100%, mekanisme retry, pembatalan, dan eksekusi massal ke banyak perangkat sekaligus.

💻
CLI Menu

Skrip automation_menu.py menyediakan menu berbasis terminal untuk adapter, scan jaringan, backup, monitoring, compliance, dan konfigurasi interface — memakai API yang sama dengan UI web.

📦
Deployment Docker

Docker Compose menjalankan backend (port 8000) dan frontend Nginx (port 3000) dengan healthcheck, volume untuk konfigurasi, template, backup, serta log.

04 — Tipe Automation Task

Sebelas jenis pekerjaan otomatis

Daftar ini dikirim backend ke UI melalui GET /api/automation/tasks/types, sehingga pilihan pada dialog pembuatan task selalu mengikuti kemampuan backend.

config_backupConfig BackupBackup konfigurasi perangkat
config_deploymentConfig DeploymentDeploy konfigurasi ke perangkat
device_monitoringDevice MonitoringPantau status dan metrik perangkat
compliance_checkCompliance CheckPeriksa kepatuhan konfigurasi
report_generationReport GenerationHasilkan laporan perangkat
interface_configInterface ConfigKonfigurasi interface jaringan
routing_configRouting ConfigKonfigurasi routing
acl_managementACL ManagementKelola access control list
vlans_managementVLANs ManagementKelola VLAN
port_channelPort ChannelKonfigurasi port channel
snmp_configSNMP ConfigKonfigurasi SNMP
05 — Alur Data

Dari klik di browser sampai perintah dieksekusi di perangkat

Contoh berikut mengikuti satu aksi nyata: menjalankan perintah pada sebuah router dari layar Devices.

Langkah 1 Aksi di UI

Operator memilih perangkat dan mengetik perintah pada dialog Execute Commands.

DeviceList.tsx
→
Langkah 2 Request via Axios

Permintaan dikirim ke prefix /api yang diteruskan Nginx atau proxy Vite ke backend port 8000.

POST /api/devices/{id}/commands
→
Langkah 3 Validasi & routing

FastAPI memvalidasi payload dengan Pydantic, mengambil kredensial perangkat dari device service.

api/devices.py
→
Langkah 4 Eksekusi ke perangkat

Connection Manager memakai koneksi dari pool, atau membuka sesi Netmiko baru, lalu menjalankan perintah.

core/connection.py
→
Langkah 5 Hasil kembali ke UI

Output dikembalikan sebagai JSON, ditampilkan di dialog, dan cache TanStack Query di-invalidate agar tabel ikut segar.

WS /ws/{device_id}
06 — Referensi API

Endpoint REST yang tersedia di backend

Seluruh endpoint di bawah adalah rute yang benar-benar terdaftar pada aplikasi FastAPI. Dokumentasi interaktif otomatis tersedia di http://localhost:8000/docs.

Devices

Prefix /api/devices — inventaris dan eksekusi perangkat

GET/api/devices/Daftar perangkat
POST/api/devices/Tambah perangkat
GET/api/devices/{device_id}Detail perangkat
PUT/api/devices/{device_id}Ubah perangkat
DELETE/api/devices/{device_id}Hapus perangkat
POST/api/devices/{device_id}/testUji koneksi
POST/api/devices/{device_id}/commandsJalankan perintah
POST/api/devices/{device_id}/configPush konfigurasi
GET/api/devices/{device_id}/arpTabel ARP perangkat
POST/api/devices/bulk/commandsPerintah massal

Discovery

Prefix /api/devices/discovery — pemindaian jaringan

GET/api/devices/discovery/networksSubnet lokal
POST/api/devices/discovery/scanMulai scan CIDR
GET/api/devices/discovery/statusStatus scan
GET/api/devices/discovery/resultsHasil scan
POST/api/devices/discovery/importImpor satu hasil
POST/api/devices/discovery/import-batchImpor massal

Automation Tasks

Prefix /api/automation — siklus hidup task

GET/api/automation/tasks/types11 tipe task
POST/api/automation/tasks/createBuat task
POST/api/automation/tasks/{task_id}/executeJalankan task
GET/api/automation/tasksDaftar task
GET/api/automation/tasks/{task_id}Detail task
GET/api/automation/tasks/device/{device_id}Task per perangkat
POST/api/automation/tasks/{task_id}/cancelBatalkan task
POST/api/automation/tasks/{task_id}/stopHentikan task
POST/api/automation/bulk-executeEksekusi massal

Network & Traffic

Prefix /api/automation/network — adapter, host, bandwidth

GET/api/automation/network/adaptersSemua adapter
GET/api/automation/network/adapters/activeAdapter aktif
POST/api/automation/network/scan-allScan semua subnet
POST/api/automation/network/discoveryDiscovery satu jaringan
GET/api/automation/network/devices/connectedHost terhubung
GET/api/automation/network/devices/arpTabel ARP host
POST/api/automation/network/devices/auto-discoverDiscovery otomatis
GET/api/automation/trafficTrafik semua adapter
GET/api/automation/traffic/{adapter_name}Trafik satu adapter

Config

Prefix /api/config — template Jinja2

POST/api/config/generateRender konfigurasi
POST/api/config/validateValidasi konfigurasi
GET/api/config/templatesDaftar template

Tasks & Sistem

Eksekusi perintah sederhana dan status layanan

POST/api/tasks/Buat & jalankan task
GET/api/tasks/Daftar task
GET/api/tasks/{task_id}Detail task
GET/api/tasks/device/{device_id}Task per perangkat
GET/healthHealth check
WS/ws/{device_id}Update realtime
07 — Spesifikasi Teknis

Ringkasan teknologi dan cara menjalankan

Versi aplikasi2.0.0
BackendFastAPI 0.104 + Uvicorn (Python 3.8+)
FrontendReact 18 + TypeScript 5, bundler Vite 5
UI libraryMaterial UI v5 (tema dark, primary #00bcd4)
Data fetchingTanStack Query v5 + Axios
VisualisasiRecharts (chart) & SVG kustom (topologi)
Editor konfigurasiMonaco Editor (read-only, tema vs-dark)
Konektivitas perangkatNetmiko 4.3 (SSH/Telnet) & NAPALM 4.1
TemplatingJinja2 — interfaces.j2, bgp.j2, snmp.j2, full.j2
RealtimeWebSocket /ws/{device_id} + polling 2–30 detik
Vendor yang didukungCisco (IOS, IOS-XE, NX-OS), Arista EOS, Juniper JunOS, Huawei VRP, Linux
DiscoveryCache ARP → ping sweep → port 22/23/80/161/443
Menjalankan (lokal)start.bat — backend 8000, frontend 3000
Menjalankan (Docker)docker compose up -d — Nginx 3000, API 8000, host agent 9999
Dokumentasi API/docs (Swagger UI) dan /redoc

Siap mengotomatisasi jaringan Anda?

Arsitektur modular, endpoint terdokumentasi, dan antarmuka yang siap dipakai untuk operasi harian.