Skip to content

Apache APISIX Dashboard Roadmap & Scopes #2981

@juzhiyuan

Description

@juzhiyuan

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 port 9180, 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

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    🏗 In progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions