API Reference — Extensions
Endpoint untuk mengelola Extension di Lenz Dashboard — daftar, katalog, install, uninstall, update konfigurasi, dan pengurutan sidebar.
← Kembali ke Extensions
Panduan penggunaan: install, konfigurasi, dan troubleshooting Extension.
Otentikasi
Cara memperoleh dan menggunakan Bearer Token JWT.
Semua endpoint memerlukan header Authorization: Bearer <token>. Basis URL mengikuti variabel lingkungan VITE_API_URL yang dikonfigurasi pada instalasi Lenz. Jika Anda belum memiliki Token, lihat halaman Otentikasi.
Endpoint install, update, reorder, dan uninstall hanya dapat diakses oleh pengguna dengan peran admin.
Daftar & Katalog
Endpoint untuk mengambil extension yang sudah terinstall dan seluruh katalog dari Extension Server.
Authorization
bearerAuth In: header
Query Parameters
Jika true, hanya mengembalikan extension yang berstatus aktif (is_enabled: true)
falseResponse Body
application/json
application/json
curl -X GET "https://lenz.example.com/api/extensions"{ "ok": true, "extensions": [ { "id": 1, "slug": "analytics-dashboard", "name": "Analytics Dashboard", "description": "Visualisasi data analitik kustom", "icon": "ChartBar", "scope": "lenz-extensions", "module_name": "AnalyticsDashboard", "remote_url": "https://extensions.perusahaan.com/remoteEntry.js", "is_enabled": true, "display_order": 1, "installed_by": 5, "created_at": "2024-06-01T08:00:00Z", "updated_at": "2024-06-01T09:00:00Z" } ]}{ "ok": false, "message": "invalid request"}Authorization
bearerAuth In: header
Response Body
application/json
application/json
application/json
curl -X GET "https://lenz.example.com/api/extensions/catalog"{ "ok": true, "server_url": "https://extensions.perusahaan.com", "extensions": [ { "slug": "analytics-dashboard", "name": "Analytics Dashboard", "description": "Visualisasi data analitik kustom", "icon": "ChartBar", "moduleName": "AnalyticsDashboard", "is_installed": true, "is_enabled": true, "display_order": 1 }, { "slug": "report-generator", "name": "Report Generator", "description": "Generator laporan otomatis berbasis template", "icon": "FileText", "moduleName": "ReportGenerator", "is_installed": false, "is_enabled": false, "display_order": 0 } ]}{ "ok": false, "message": "invalid request"}{ "ok": false, "message": "extension server URL not configured"}Install & Uninstall
Endpoint untuk menginstall satu atau lebih extension dari katalog, serta menguninstall extension yang sudah terpasang.
Authorization
bearerAuth In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://lenz.example.com/api/extensions/install" \ -H "Content-Type: application/json" \ -d '{ "slugs": [ "analytics-dashboard", "report-generator" ] }'{ "ok": true, "extensions": [ { "id": 1, "slug": "analytics-dashboard", "name": "Analytics Dashboard", "description": "Visualisasi data analitik kustom", "icon": "ChartBar", "scope": "lenz-extensions", "module_name": "AnalyticsDashboard", "remote_url": "https://extensions.perusahaan.com/remoteEntry.js", "is_enabled": true, "display_order": 1, "installed_by": 5, "created_at": "2024-06-01T08:00:00Z", "updated_at": "2024-06-01T08:00:00Z" } ]}{ "ok": false, "message": "extension 'unknown-plugin' not found in manifest"}{ "ok": false, "message": "invalid request"}Authorization
bearerAuth In: header
Path Parameters
Slug unik extension
Response Body
application/json
application/json
application/json
curl -X DELETE "https://lenz.example.com/api/extensions/analytics-dashboard"{ "ok": true, "message": "extension uninstalled successfully"}{ "ok": false, "message": "invalid request"}{ "ok": false, "message": "record not found"}Update & Pengurutan
Endpoint untuk memperbarui konfigurasi extension (nama, ikon, status aktif) dan mengatur ulang urutan tampilan di sidebar.
Authorization
bearerAuth In: header
Path Parameters
Slug unik extension
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PATCH "https://lenz.example.com/api/extensions/analytics-dashboard" \ -H "Content-Type: application/json" \ -d '{ "name": "Dashboard Analitik", "icon": "BarChart2", "is_enabled": true }'{ "ok": true, "extension": { "id": 1, "slug": "analytics-dashboard", "name": "Dashboard Analitik", "description": "Visualisasi data analitik kustom", "icon": "BarChart2", "scope": "lenz-extensions", "module_name": "AnalyticsDashboard", "remote_url": "https://extensions.perusahaan.com/remoteEntry.js", "is_enabled": true, "display_order": 1, "installed_by": 5, "created_at": "2024-06-01T08:00:00Z", "updated_at": "2024-06-15T10:30:00Z" }}{ "ok": false, "message": "invalid request"}{ "ok": false, "message": "record not found"}Authorization
bearerAuth In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PUT "https://lenz.example.com/api/extensions/reorder" \ -H "Content-Type: application/json" \ -d '{ "slugs": [ "report-generator", "analytics-dashboard" ] }'{ "ok": true, "message": "extensions reordered successfully"}{ "ok": false, "message": "invalid request"}{ "ok": false, "message": "invalid request"}Extensions
Perluas fungsionalitas Lenz Dashboard dengan extension berbasis Module Federation — muat aplikasi atau UI kustom tanpa perlu rebuild ulang dashboard.
User Access
Kelola User, Role, dan Permission dalam satu tempat — tambah anggota tim, tentukan hak akses berbasis Role, dan kendalikan siapa dapat melakukan apa di Lenz Dashboard.