Apache APISIX Dashboard Roadmap & Scopes
Opened this issue · 6 comments
Roadmap
Refer to ⚡️ Apache APISIX Roadmap
Background
Apache APISIX Dashboard project development process:
- Version 1.x: Web UI built with Vue.js to directly access with the Admin API.
- Version 2.x: Built using Ant Design Pro (based on React) and the APISIX Dashboard Backend (Golang, Database), this project was developed in response to significant community demand and feedback for additional non-Admin API-supported capabilities. However, this led to a bloated project that never fully aligned with the APISIX version.
After a long quiet period and discussions with several APISIX PMCs and Committers, we believe it is essential to clearly define the project's positioning and scope of functionality. This definition will serve as a criterion for determining which actions/scopes to take and which to avoid, as there are alternative workarounds.
Positioning
Production ready Dashboard UI for Apache APISIX Gateway. apache/apisix-dashboard
works alongside the APISIX Gateway (apache/apisix
), using the Dashboard UI to display and manage configurations obtained through the Apache APISIX Admin API.
Scopes
Aligned with the APISIX Admin API, all features fall within the scope of the Apache APISIX Admin API. For example:
- No plans to support login to the Dashboard using OAuth2/OpenLDAP/... or Username/Password. We can use components like
oauth2-proxy/oauth2-proxy
to secure the Dashboard. The new Dashboard operates on APISIX's port9180
, which is the same as the Admin API. - No plans to support the APISIX Dashboard Docker image, as it will be included in the
apache/apisix
Docker image. - No plans to support the User Management system.
- No plans to support different users with different permissions to manage only their own configurations (or Readonly). We can use ADC with a GitOps flow to handle such scenarios.
- No plans to support OpenAPI import, as we can use ADC to convert the OpenAPI specification and publish it to APISIX gateways.
- No plans to support the display of CRD configurations created through the APISIX Ingress Controller. The new Ingress Controller will offer two options: with ETCD or in Standalone mode.
- When operating in Standalone mode, the Admin API will be disabled.
- When operating in ETCD mode, the Admin API is enabled. It can export configurations and allow the Dashboard to display converted configurations.
- No plans to support the management of multiple APISIX gateway environments. This means that one APISIX Dashboard can only manage a single gateway or multiple gateways with the same configurations. APISIX is designed to operate in Single Cluster mode.
- No plans to support bulk uploading of configurations (restoring configurations) through the Dashboard UI. However, we can use ADC to dump or sync configurations from a backup.
- No plans to support a built-in monitoring page, as the Dashboard is solely a frontend UI. We can use the Apache APISIX Grafana Dashboard Template to view metrics.
- No plans to support Postman Collections in the APISIX Dashboard. However, we can use Postman Collections with OpenAPI tools and utilize ADC to convert the OpenAPI specification to the APISIX format.
- Not plans to act as a Developer Portal
- ...
Security
The new dashboard will be hosted on the same port as the Admin API by default, ensuring it has the same security level. Users who can operate Admin APIs will also be able to use the dashboard, which will not be exposed to the public network by default.
Version and Release Cycles
apache/apisix-dashboard
does not have a separate version number; it will be released alongside the apache/apisix
artifacts (e.g., Docker image).
Maintenance
I am aware of the numerous issues and PRs in this repository. I will review each one, respond to them (possibly with duplicate responses), close them, and add the necessary issues to the Roadmap (see the top link). This project will not introduce capabilities beyond the defined scopes but will ensure continuous adaptation to APISIX releases, starting with version 3.13.
For new issues and PRs, the APISIX Team will coordinate the division of labor to try to prevent a stale state.
Links
APISIX Dashboard previously introduced excessive overhead, making it too expensive to develop and difficult to maintain. As a result, the project fell into silence.
I was one of the key players in the project, but it was too time-consuming. So, I turned to other tools in the APISIX ecosystem. For example, I developed ADC (API Declarative CLI), a tool for API declarative configuration and publishing, I rewrote it from coupled, hard-to-maintain Go code to modular, loosely coupled and clear TypeScript. It will be perfectly suited for GitOps scenarios and help users improve their workflow.
It's good to hear about the upcoming renovation of the project, and I completely agree that it's important to limit the scope of the project, if modifications are added to the project without restraint, what happened before will inevitably happen again. And by limiting the scope of the project we can control the cost of development and maintenance, making the project sustainable.
According to the description in this proposal, the build artifacts of the dashboard UI will be added to the APISIX build instead of being released separately. This means that guaranteeing its compatibility with the bundled APISIX is mandatory. While it may not cover the full range of Admin API functionality for the time being, the participants in the renovation will do their best.
Also, I think it means that the project PMCs and committers and even the community participants are committed to this project to develop its scope-compliant functionality and maintenance.
I have read, replied to, and helped close some of the existing issues. Features that are within the scope of the project and will be implemented should be tracked through new issues.
已发布的3.13.0 docker镜像已经嵌入了dashboard吗?如果已经嵌入dashboard,该如何使用?
Hi @77321660, after 3.13 apisix running, you can access IP:9180/ui/
to use the dashboard.
@juzhiyuan 使用apisix3.13.0版本,访问内置仪表盘 http://127.0.0.1:9180/ui/,报错403
@juzhiyuan 使用apisix3.13.0版本,访问内置仪表盘 http://127.0.0.1:9180/ui/,报错403
Create an issue with complete steps to reproduce your issue.
If you have any questions, please open a new issue instead of replying here.
If your topic relates to the roadmap, please reference this issue in your new issue by simply pasting the issue URL.
如果有任何疑问,请开启一个新的 issue 而不是在这里回复。
如果你的主题与路线图有关,请在新 issue 里面引用这个 issue,只要粘贴 issue URL 就好了。