National Overview
Spesifikasi teknis antarmuka National Overview (/dashboard), ringkasan situasi lintas sektor, serta pemetaan database PostgreSQL, Elasticsearch, dan antrean Kafka.
National Overview (/dashboard)
Halaman National Overview (dengan judul antarmuka National Decision Intelligence) merupakan landing dashboard utama pimpinan dan analis intelijen untuk memantau dinamika nasional lintas 38 provinsi secara komprehensif. Antarmuka ini dirancang adaptif berdasarkan peran pemangku kepentingan (Role-based Decision Intelligence), memadukan indikator KPI makro, analisa kontekstual 5 pilar strategis nasional, peta spasial choropleth, sintesis eksekutif AI, serta umpan berita intelijen langsung (live stream).

Tabel Pemetaan Komponen ke PostgreSQL & Elasticsearch
Urutan baris di bawah ini disusun berurutan dari komponen paling atas hingga paling bawah pada layar antarmuka dashboard:
| No | Komponen UI | Tangkapan Layar (UI) | PostgreSQL (Tabel & Kondisi) | Elasticsearch (Indeks & Filter) | Kafka (Topik & Alur Event) |
|---|---|---|---|---|---|
| 1 | Header & Selektor Peran ("Lihat sebagai") (Pilihan 4 peran: Pemerintahan, Pelaku Bisnis, LSM & Organisasi, Personal dengan status LIVE) | ![]() | articles↳ sector_id (sync ke master_sectors.id)master_sectors↳ id, sector_name, public_id | articles↳ sector_id, sector_name(Filter scope agregasi per sektor peran) | queue-normalize-data(Resolusi sector_id & ingest artikel) |
| 2 | Kartu KPI: Total Berita (Volume total berita terpantau dalam rentang waktu terfilter) | ![]() | - (Tidak diakses langsung) | articles↳ processed_at:[now-Xd TO now], filter sector_id | queue-normalize-data(Inbound artikel terindeks) |
| 3 | Kartu KPI: Sentimen Negatif (Persentase rasio & total volume berita bersentimen negatif) | ![]() | - (Tidak diakses langsung) | articles↳ term: { sentiment: "negative" }, filter sector_id | queue-normalize-data(Inbound artikel terindeks) |
| 4 | Kartu KPI: Sumber Media (Jumlah outlet/penerbit media massa unik yang aktif menerbitkan berita) | ![]() | - (Tidak diakses langsung) | articles↳ cardinality: publisher.keyword / source.domain | queue-raw-data-site(Inbound crawler berita) |
| 5 | Kartu KPI: Topik Trending (Jumlah isu terpanas nasional yang terdeteksi) | ![]() | - (Tidak ada tabel di PG) | trending_topics↳ period: "24h", ORDER BY rank ASC LIMIT 10 | queue-trending-data(Komputasi worker D1) |
| 6 | Kartu Analisa 5 Pilar (Sesuai Peran Aktif) (Grid 5 pilar: Ekonomi, Budaya, Politik, Sosial, Geo Politik beserta total volume, % neg, rekomendasi peran dari AI, & link analisa lengkap) | ![]() | articles↳ sector_id sync ke master_sectorstaxonomy_nodes↳ Master hirarki 5 pilar | articles↳ Aggs by taxonomy.pillar & sector_idnational_dashboard / decision_intelligence↳ Arahan aksi kontekstual peran | queue-ai-inference(Sintesis arahan peran & inferensi AI) |
| 7 | Ringkasan Eksekutif Situasi Nasional (Paragraf analisa intelijen situasi nasional, titik panas, & dinamika isu) | ![]() | - (Tidak diakses langsung) | national_dashboard↳ _source.intelligence_analysis(high_risk_insight, economic_dynamic_insight, calm_zone_insight) | queue-ai-inference(Output inferensi AI) |
| 8 | Peta Sebaran Pemberitaan Nasional (Peta choropleth spasial volume berita di 38 provinsi & status LIVE) | ![]() | master_regions↳ Batas poligon & nama provinsi | province_dashboard↳ province_code, total_event | - (Agregasi cron worker) |
| 9 | Filter Tema & Sentimen Sebaran (Kontrol filter sentimen dan distribusi tema di bawah peta) | ![]() | - (Tidak diakses langsung) | articles↳ filter: { terms: { sentiment } } | - (Filter query ES langsung) |
| 10 | Live Feed Berita Terkini (Aliran feed berita intelijen real-time berdampingan dengan filter) | ![]() | - (Tidak diakses langsung) | intelligence_feed↳ severity >= 3, sorting artikel terkini | queue-normalize-data(Stream ingest artikel) |
| 11 | Trending Media Nasional (8 Tema) (Grid 8 kartu tema pemberitaan beserta 3 headline teratas per tema) | ![]() | - (Tidak diakses langsung) | articles↳ terms: taxonomy.lineages.keyword | - (Point-in-Time scan ES) |
| 12 | Panel Rekomendasi Intelijen (Daftar kartu rekomendasi aksi mitigasi & saran kebijakan dari AI) | ![]() | - (Tidak ada tabel di PG) | decision_intelligence↳ WHERE confidence >= 60 | queue-ai-inference(Output inferensi rekomendasi) |
| 13 | Modal Rincian KPI (Popup detail metrik saat klik "lihat rincian" pada salah satu kartu KPI) | ![]() | - (Tidak diakses langsung) | articles, trending_topics↳ Query detail sesuai kartu KPI yang diklik | - (Query interaktif UI) |
| 14 | Modal Briefing Wilayah (Dossier ringkasan intelijen wilayah saat klik suatu provinsi di peta) | ![]() | master_regions↳ Metadata wilayah & koordinat | province_dashboard↳ province_code = ? (summary_narrative, critical_signals) | - (On-demand aggregate) |
Spesifikasi Endpoint & Alur Query
Bagian ini menguraikan logika query backend, indeks/tabel yang diakses, dan alur pemrosesan data untuk setiap komponen visual di antarmuka National Overview:
1. Selektor Peran & Sinkronisasi Sektor (articles.sector_id ⟷ master_sectors)

- Konsep Fungsional: Memungkinkan pengguna melihat ringkasan intelijen nasional dari kacamata sektor tertentu (Pemerintahan, Pelaku Bisnis, LSM & Organisasi, atau Personal).
- Sinkronisasi PostgreSQL:
- Kolom
sector_idpada tabelarticlesberelasi langsung dengan tabelmaster_sectors(id,sector_name,public_id). - Worker ingest/normalisasi (D1) mencocokkan asal organisasi berita atau kategori target scraping dengan taksonomi sektor:
1:government(K/L, Pemda, TNI, POLRI, dsb.)2:swasta(Korporasi, Perusahaan Swasta, Pasar Modal)3:lsm(LSM, Ormas, Yayasan)4:sosmed/personal(Publik luas, kanal komunitas/sosmed)
- Kolom
- Elasticsearch Mapping: Tiap dokumen pada indeks
articlesmenyimpan nilaisector_iddansector_name, sehingga frontend dapat meneruskan parameter?sector_id=ke backend untuk menyaring agregasi volume dan sentimen secara instan.
2. 4 Kartu KPI Eksekutif (GET /overview/media-exec & GET /trending-topics)

- Kartu 1, 2, dan 3 (Total Berita, Sentimen Negatif, Sumber Media): Dihitung secara konsisten dari satu pemindaian (Point-in-Time scan) atas dokumen indeks Elasticsearch
articlespada jendela waktu yang dipilih (24h,7d,30d), dengan filter opsionalsector_id. Menghitung volume total, persentase rasio sentimen negatif, dan kardinalitas domain/penerbit media unik yang berkontribusi berita. - Kartu 4 (Topik Trending): Diambil dari endpoint
GET /trending-topicsyang membaca dokumen peringkat dari indeks Elasticsearchtrending_topics(hasil komputasi periodik worker D1).
3. Kartu Analisa 5 Pilar Lintas Peran (GET /overview/media-exec & GET /overview/intelligence-analysis)

Grid 5 kartu di bawah KPI menampilkan status pemberitaan pada lima pilar pilar taksonomi nasional:
- Ekonomi
- Budaya
- Politik
- Sosial
- Geo Politik
Setiap kartu pilar menyajikan:
- Metrik Volume & Sentimen: Jumlah berita terindeks (
berita) dan persentase sentimen negatif (% neg) yang dihitung dari agregasi buckettaxonomy.pillarpada indeks Elasticsearcharticles. - Arahan Intelijen Kontekstual Peran: Pesan arahan strategis berbasis evaluasi AI dari indeks Elasticsearch
pillar_intelligence(dihasilkan olehdecision-workersecara pre-aggregated batch) yang disesuaikan dengan peran aktif (Pemerintahan, Pelaku Bisnis, LSM & Organisasi, Personal). Apabila proses inferensi harian belum selesai, backend otomatis menerapkan graceful fallback ke template acuan terstandar (pillarInsightConfig.ts&pillarDetailConfig.ts). - Navigasi Analisa Lengkap: Tautan aksi
> analisa lengkapyang membuka modal rincian pilar (Decision Intelligence Playbook), memadukan matriks analisa strategis (Kebutuhan, Peluang, Risiko, Rekomendasi Aksi, Indikator Dipantau) dengan fakta lapangan aktual (Topik Teratas dan Headline Terkait).

4. Ringkasan Eksekutif Situasi Nasional (GET /overview/intelligence-analysis)

Mengambil sintesis analisa situasi intelijen nasional berbasis AI. Backend (f1-api-backend) membaca dokumen terbaru pada indeks Elasticsearch national_dashboard yang memiliki objek:
"intelligence_analysis": {
"high_risk_insight": "Seluruh wilayah berada dalam batas risiko terpantau stabil...",
"economic_dynamic_insight": "Aktivitas ekonomi nasional bergerak stabil...",
"calm_zone_insight": "Zona stabil didominasi Jawa bagian tengah..."
}Oleh backend, ketiga field teks tersebut dipetakan ke dalam array respon JSON narasi[] dengan kunci:
titik_panas↳ darihigh_risk_insight(Titik Panas Keamanan & Lingkungan)dinamika_ekonomi↳ darieconomic_dynamic_insight(Dinamika Ekonomi)zona_stabil↳ daricalm_zone_insight(Zona Stabil)
5. Peta Sebaran Pemberitaan 38 Provinsi (GET /overview/provinces)

Frontend meminta metrik perbandingan volume berita dan status risiko antar-provinsi untuk mewarnai peta choropleth spasial. Backend membaca dokumen pra-agregasi dari Elasticsearch indeks province_dashboard (kunci {province_code}_{YYYY-MM-DD}) yang dipadukan dengan geometri poligon wilayah dari tabel PostgreSQL master_regions.
6. Filter Tema & Live Feed Berita Terkini (GET /overview/intel-feed)


- Filter Tema & Sentimen: Kontrol interaktif di bawah peta untuk memfilter sebaran berita berdasarkan kategori pilar taksonomi dan sentimen (positif, negatif, netral).
- Live Feed Berita Terkini: Menampilkan artikel-artikel paling krusial secara real-time dengan skor keparahan (severity >= 3) yang di-upsert ke indeks Elasticsearch
intelligence_feed.
7. Trending Media Nasional — 8 Tema Pemberitaan (GET /overview/media-exec)

Memindai indeks Elasticsearch articles untuk memetakan jalur taksonomi (taxonomy lineages) ke dalam 8 kluster tema besar (seperti Politik, Ekonomi, Sosial, Kamtibmas, dll.). Mengkalkulasi jumlah artikel per tema, persentase sentimen negatif per tema, serta menyajikan 3 headline berita terhangat per kartu tema.
8. Panel Rekomendasi Intelijen AI (GET /overview/recommendations)

Menyajikan arahan aksi mitigasi dan rekomendasi kebijakan strategis berbasis evaluasi AI. Backend mengambil data rekomendasi dari indeks Elasticsearch decision_intelligence dengan menerapkan filter ambang batas keyakinan model (confidence >= 60).
9. Modal Rincian KPI & Dossier Briefing Wilayah (GET /overview/provinces/{key}/briefing)


- Modal Rincian KPI: Terbuka saat analis mengklik link "lihat rincian" pada salah satu dari 4 kartu KPI, menyajikan rincian tabular breakdown kategori artikel, sebaran sentimen, atau direktori media aktif.
- Modal Dossier Briefing Wilayah: Terbuka saat analis mengklik salah satu provinsi pada peta sebaran, menyajikan kompilasi ringkasan situasi regional, kronologi kejadian, dan sinyal ancaman dari
province_dashboard.
Qdrant
Spesifikasi teknis Vector Database Qdrant di Nexa, arsitektur koleksi 'articles_dedup', metrik Cosine Similarity, HNSW indexing, integrasi deduplikasi semantik C2, dan sinkronisasi payload D1 Webhook.
Media Monitoring
Spesifikasi teknis modul Media Monitoring (/dashboard/berita), pemantauan berita siber makro Kemenko, trending harian, ringkasan naratif AI, analitik sebaran wilayah, serta pemetaan database PostgreSQL, Elasticsearch, dan Kafka.













