apache / apache/apisix-dashboard

Apache APISIX Dashboard Roadmap & Scopes

Open
#2,981 6 comments 31 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
1.2k
Forks
617
Avg merge
4d 18h
Merged PRs (30d)
1

Description

## Roadmap

Refer to [⚡️ Apache APISIX Roadmap](https://github.com/orgs/apache/projects/273/views/4)

## 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](https://apisix.apache.org/docs/apisix/admin-api/).

## Scopes

Aligned with the APISIX Admin API, all features fall within the scope of the [Apache APISIX Admin API](https://apisix.apache.org/docs/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](https://docs.api7.ai/enterprise/reference/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 Plan to 100% ensure UI compatibility)
- 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](https://grafana.com/grafana/dashboards/11719-apache-apisix/) 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](https://apisix.apache.org/team) will coordinate the division of labor to try to prevent a stale state.

## Links

- https://github.com/apache/apisix-dashboard/issues/2791#issuecomment-3182598288

Contributor guide

Open the contributing guide

Research direction

Start with the linked Apache APISIX Roadmap and the Apache APISIX Admin API documentation. Compare the dashboard’s stated positioning and exclusions with the existing project direction; done means the scope is clearly documented and aligned with the roadmap, rather than adding an implementation feature.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, react, typescript
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.