From a149019e21722c2ba5e4d90cd3b67cd6502ee6f9 Mon Sep 17 00:00:00 2001 From: Lari Hotari Date: Tue, 29 Sep 2026 16:36:33 +0300 Subject: [PATCH] Mark Pulsar Manager as no longer maintained and unsupported Replace the README with a notice that the project is no longer maintained, pointing users to the Administration UI documentation (https://pulsar.apache.org/docs/administration-ui) to find alternative solutions. Add a SECURITY.md stating that the project is unsupported and that new security findings for it are not acknowledged. Update .asf.yaml: describe the project as no longer maintained, point the homepage to the Administration UI documentation, replace the topics with unmaintained and deprecated, and disable issues, wiki and projects. Run the Java CI workflow only when started manually. --- .asf.yaml | 27 +-- .github/workflows/gradle.yml | 6 +- README.md | 378 +++-------------------------------- SECURITY.md | 19 ++ 4 files changed, 56 insertions(+), 374 deletions(-) create mode 100644 SECURITY.md diff --git a/.asf.yaml b/.asf.yaml index 5c8b9e9e..e5ff1181 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -18,27 +18,16 @@ # github: - description: "Apache Pulsar Manager" - homepage: https://pulsar.apache.org/ + description: "Apache Pulsar Manager (no longer maintained, not recommended for use). For alternatives see https://pulsar.apache.org/docs/administration-ui" + homepage: https://pulsar.apache.org/docs/administration-ui labels: - - pulsar - - pubsub - - messaging - - streaming - - queuing - - event-streaming - - apache-pulsar - - admin-dashboard - - vuejs - - pulsar-ui - - messaging + - unmaintained + - deprecated features: - # Enable wiki for documentation - wiki: true - # Enable issues management - issues: true - # Enable projects for project management boards - projects: true + # The project is no longer maintained + wiki: false + issues: false + projects: false enabled_merge_buttons: # enable squash button: squash: true diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index c0820895..9d1599d8 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -17,11 +17,9 @@ name: Java CI +# Pulsar Manager is no longer maintained, so CI only runs when started manually. on: - push: - branches: [master] - pull_request: - branches: [master] + workflow_dispatch: jobs: build: diff --git a/README.md b/README.md index 4cbaa9aa..dfc94129 100644 --- a/README.md +++ b/README.md @@ -1,364 +1,40 @@ -# Apache Pulsar manager +# Apache Pulsar Manager (no longer maintained) -Apache Pulsar manager is a web-based GUI management tool for managing and monitoring Pulsar. +> [!WARNING] +> Apache Pulsar Manager is no longer maintained, and using it is not recommended. +> To find alternative solutions, see the [Administration UI documentation](https://pulsar.apache.org/docs/administration-ui). -A Pulsar Manager is capable of managing multiple Pulsar clusters. A Pulsar instance or a group -of Pulsar clusters is defined as an `Environment` in Pulsar Manager. You can create as many environments -as you can. The following diagram illustrates the overall architecture of a Pulsar Manager. +## Project status -![pulsar-manager-arch](docs/img/pulsar-manager-arch.png) +Apache Pulsar Manager is no longer maintained by the Apache Pulsar project. It will not receive new +releases, bug fixes or updates for newer Pulsar versions, and its documentation has been removed from +the current Pulsar documentation. -A running Pulsar Manager instance is comprised of two components: one is the `frontend` which provides -the GUI to manage and monitor Pulsar clusters, the other one is the `backend` which interacts with Pulsar -clusters for collecting metrics, forwarding admin requests to the requested Pulsar cluster or brokers. +We do not recommend using Pulsar Manager for new deployments. If you are running it today, plan to +move to an alternative solution and remove the Pulsar Manager deployment. If you deployed it with +the Apache Pulsar Helm chart, disable the `pulsar_manager` component, which is already disabled by +default in current chart versions. -Since Pulsar Manager directly interacts with Pulsar brokers and bookies for management, it is required -to deploy the Pulsar Manager into the same network as your Pulsar clusters. So the Pulsar Manager backend -is able to talk to the brokers and bookies in your Pulsar cluster. +## What Pulsar Manager was -## Install +Pulsar Manager was a web-based GUI for managing and monitoring Apache Pulsar clusters. It consisted of +a frontend web application and a backend service that connected to the brokers and bookies of one or +more Pulsar clusters. It offered views for tenants, namespaces, topics, subscriptions, clusters and +brokers, and a way to issue admin operations from the browser. -### Use Docker +## Alternatives -1. Start Pulsar standalone. +To find alternative solutions for managing Apache Pulsar, go to the +[Administration UI documentation](https://pulsar.apache.org/docs/administration-ui). - ``` - docker pull apachepulsar/pulsar:latest - docker run -d -it \ - -p 6650:6650 \ - -p 8080:8080 \ - -v pulsardata:/pulsar/data \ - -v pulsarconf:/pulsar/conf \ - --name pulsar-standalone \ - apachepulsar/pulsar:latest \ - bin/pulsar standalone - ``` +## Source code -2. Start Pulsar Manager in a separate container. +The source code stays available in this repository for reference, but it is not maintained. Issues and +pull requests for Pulsar Manager are no longer accepted. - > NOTE: the command links the pulsar-manager container with the pulsar standalone container so they are in the same network. +For questions about managing Apache Pulsar, use the +[Apache Pulsar community channels](https://pulsar.apache.org/community/). - ``` - docker pull apachepulsar/pulsar-manager:v0.2.0 - docker run -it \ - -p 9527:9527 -p 7750:7750 \ - -e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \ - --link pulsar-standalone \ - apachepulsar/pulsar-manager:v0.2.0 - ``` +## License - > NOTE: Enable bookkeeper visual manager(Optional), update the field `bkvm.enabled` to `true` for the file [bkvm.conf](https://github.com/apache/pulsar-manager/blob/master/src/main/resources/bkvm.conf). - - ``` - docker pull apachepulsar/pulsar-manager:v0.2.0 - docker run -it \ - -p 9527:9527 -p 7750:7750 \ - -e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \ - -v $PWD/bkvm.conf:/pulsar-manager/pulsar-manager/bkvm.conf \ - --link pulsar-standalone \ - apachepulsar/pulsar-manager:v0.2.0 - ``` - - * `SPRING_CONFIGURATION_FILE`: Default configuration file for spring. - -### Use Docker Compose - -Alternatively, you can start a standalone and Pulsar Manager using the docker compose file provided in this repository. - -1. Clone this git repoistory. - - ```bash - https://github.com/apache/pulsar-manager - ``` - -2. Go to the docker directory. - - ```bash - cd docker - ``` - -3. Start the docker composed cluster. - - ```bash - docker-compose up - ``` - -### Deploy Pulsar Manager to Kubernetes - -The Pulsar Manager can be deployed as part of [Pulsar Helm Chart](https://github.com/apache/pulsar-helm-chart). - -1. Install the Pulsar cluster with Pulsar Manager - - ```bash - helm repo add apache https://pulsar.apache.org/charts - helm repo update - helm install apache/pulsar - ``` - -2. Access the Pulsar Manager. - - The default values will create a `ClusterIP` for the Pulsar Manager you can use to interact with cluster. - To find the IP address of the Pulsar Manager, use the following command: - ```bash - kubectl get service -n - ``` - After find the ip address of the Pulsar Manager, you can access the Pulsar Manager at `http://${pulsar-manager-cluster-ip}/#/environments`. - -### Deploy from bin package - -``` -wget https://dist.apache.org/repos/dist/release/pulsar/pulsar-manager/pulsar-manager-0.2.0/apache-pulsar-manager-0.2.0-bin.tar.gz -tar -zxvf apache-pulsar-manager-0.2.0-bin.tar.gz -cd pulsar-manager -tar -xvf pulsar-manager.tar -cd pulsar-manager -cp -r ../dist ui -./bin/pulsar-manager -``` - -Now, you can access it at the following address: frontend => http://localhost:7750/ui/index.html. - -For details, see [Set the administrator account and password](#access-pulsar-manager). - -#### Enable BookKeeper visual manager(optional) - -Update the configuration file `pulsar-manager/bkvm.conf`, and set `bkvm.enabled` to `true`. - -bkvm address => http://localhost:7750/bkvm - -### Build from source code - -#### Prerequisites - -* Java JDK 1.8 -* Node.js 16 or later -* npm 8 later -* Pulsar 2.4.0 or later - -#### Build instructions - -1. Clone the source code. - - ``` bash - git clone https://github.com/apache/pulsar-manager - ``` - -2. Build and start the backend. - - ``` - cd pulsar-manager - ./gradlew build -x test - cd build/distributions - unzip pulsar-manager.zip or tar -zxvf pulsar-manager.tar - ./pulsar-manager/bin/pulsar-manager - ``` - -3. Open a new terminal, build and start the front end. - - ``` - cd pulsar-manager/front-end - npm install --save - npm run dev - ``` - -After running these steps, the Pulsar Manager is running locally at http://127.0.0.1:9527/#/environments. - -## Access Pulsar Manager - -1. Access Pulsar manager UI at `http://${frontend-end-ip}/#/environments`. - - If you started Pulsar Manager using docker or docker-compose, the Pulsar Manager is running at port 9527. You can access the Pulsar Manager UI at http://127.0.0.1:9527/#/environments. - - If you are deploying Pulsar Manager 0.1.0 using the released container, you can log in the Pulsar Manager UI using the following credentials. - - * Account: `pulsar` - * Password: `pulsar` - - If you are deploying Pulsar Manager using the latest code, you can create a super-user using the following command. Then you can use the super user credentials to log in the Pulsar Manager UI. - - ``` - CSRF_TOKEN=$(curl http://backend-service:7750/pulsar-manager/csrf-token) - curl \ - -H "X-XSRF-TOKEN: $CSRF_TOKEN" \ - -H "Cookie: XSRF-TOKEN=$CSRF_TOKEN;" \ - -H 'Content-Type: application/json' \ - -X PUT http://backend-service:7750/pulsar-manager/users/superuser \ - -d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}' - ``` - - * `backend-service`: The IP address or domain name of the backend service. - * `password`: The password should be more than or equal to 6 digits. - -2. Create an environment. - - An environment represents a Pulsar instance or a group of clusters you want to manage. A Pulsar Manager is capable of managing multiple environments. - - - Click "New Environment" button to add an environment. - - Input the "Environment Name". The environment name is used for identifying an environment. - - Input the "Service URL". The Service URL is the admin service url of your Pulsar cluster. - - You need to make sure the service url that Pulsar Manager is able to access. In this example, both pulsar container and pulsar-manager container are linked. So you can use pulsar container name as the domain name of the pulsar standalone cluster. Thus you can type `http://pulsar-standalone:8080`. - - Input the "Bookie URL". In this example, you can type `http://pulsar-standalone:6650` - -## Configure Pulsar Manager - -### Back end - -For more information about the back end, see [pulsar-manager-backend](https://github.com/apache/pulsar-manager/blob/master/src/README.md). - -### Front end - -For more information about the front end, see [pulsar-manager-frontend](https://github.com/apache/pulsar-manager/blob/master/front-end/README.md). - -## Features - -* Tenants Management -* Namespaces Management -* Topics Management -* Subscriptions Management -* Brokers Management -* Clusters Management -* Dynamic environments with multiple changes -* Support JWT Auth - -### Log in - -Use the default account (`pulsar`) and the default password (`pulsar`) to log in. - -![pulsar-manager-login](docs/img/pulsar-manager-login.gif) - -### Configure environment - -The pulsar-manager supports multiple environment configurations and can manage multiple environments conveniently. - -Here, the service URL represents the service IP address of the broker. If you run Pulsar manager in the standalone mode, it should be set to "http://127.0.0.1:8080". -You can easily find it in the client.conf file of your pulsar-manager. - -And the bookie URL represents the service IP address of the bookkeeper. If you run Pulsar manager in the standalone mode, it should be set to "http://127.0.0.1:6650". - -![pulsar-manager-environments](docs/img/pulsar-manager-environments.gif) - -### Manage tenants - -![pulsar-manager-tenants](docs/img/pulsar-manager-tenants.gif) - -### Manage namespaces - -![pulsar-manager-namespaces](docs/img/pulsar-manager-namespaces.gif) - -### Manage topics - -![pulsar-manager-topics](docs/img/pulsar-manager-topics.gif) - - -### Manage subscriptions - -![pulsar-manager-subscriptions](docs/img/pulsar-manager-subscriptions.gif) - -### Manage clusters - -![pulsar-manager-clusters](docs/img/pulsar-manager-clusters.gif) - -### Manage brokers - -![pulsar-manager-brokers](docs/img/pulsar-manager-brokers.gif) - - -### Topics monitoring - -The pulsar-manager can monitor topics and subscriptions. - -![pulsar-manager-topics-monitors](docs/img/pulsar-manager-topics-monitors.gif) - -### Manage token - -![pulsar-manager-token](docs/img/pulsar-manager-token.gif) - -## Casdoor - - -### Casdoor Installation - -You can use casdoor to realize sso. - -Casdoor can connect to Pulsar-manager simply. - -Because the code for connecting the casdoor has been added in Pulsar-manager, we need to configure the casdoor in the back-end and front-end. - -#### Step1. Deploy Casdoor - -Firstly, the Casdoor should be deployed. - -You can refer to the Casdoor official documentation for the [Casdoor](https://casdoor.org/docs/overview) - -After a successful deployment, you need to ensure: - -- The Casdoor server is successfully running on **http://localhost:8000**. -- Open your favorite browser and visit **http://localhost:7001**, you will see the login page of Casdoor. -- Input `admin` and `123` to test login functionality is working fine. - -Then you can quickly implement a casdoor based login page in your app with the following steps. - -#### step2. Configure Casdoor - -Configure casdoor can refer to [casdoor](https://door.casdoor.com/login)(Configure casdoor's browser better not use one browser with your develop browser). - -You also should configure the organization, and application, you also can refer to [casdoor](https://door.casdoor.com/login). - -##### step2.1 you should create an organization - -![organization](/docs/img/Pulsar-manager_editOrganization.svg) - -##### step2.2 you should create an application - -![application](/docs/img/Pulsar-manager_editApplication.svg) - -#### Step3. Configure back-end code - -You should configure casdoor's Configuration in the Line 154 of pulsar-manager/src/main/resources/application.properties - -```ini -casdoor.endpoint=http://localhost:8000 -casdoor.clientId= -casdoor.clientSecret= -casdoor.certificate= -casdoor.organizationName=pulsar -casdoor.applicationName=app-pulsar -``` - -#### Step4. Configure front-end code - -You also need configure casdoor's Configuration in the Line 50 of pulsar-manager/front-end/src/main.js - -``` -const config = { - serverUrl: "http://localhost:7001", - clientId: "6ba06c1e1a30929fdda7", - organizationName: "pulsar", - appName: "app-plusar", - redirectPath: "/#callback", -}; -``` - -Now you can use Casdoor. - -## Development - -### Default Test database HerdDB - -#### Introduction - -Pulsar Manager bundles JDBC Drivers for [HerdDB](https://github.com/diennea/herddb). -The default configuration starts and embedded in-memory only HerdDB database. - -HerdDB can be used in production, you just have to use the correct JDBC URL. -Follow the instructions in [application.properties](https://github.com/apache/pulsar-manager/blob/master/src/main/resources/application.properties) to switch the connection to a standalone HerdDB service or cluster. - -The JDBC URL will look like this: -jdbc:herddb:server:localhost:7000 - -In cluster mode HerdDB uses Apache BookKeeper and Apache ZooKeeper to store data and metadata, you can share your ZooKeeper cluster and the Bookies bundled with Pulsar. - -The JDBC URL will look like this: -jdbc:herddb:zookeeper:localhost:2181/herddb - -In order to start and setup an HerdDB database follow the instructions on the [HerdDB documentation](https://github.com/diennea/herddb/wiki). +Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..5f5088c3 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,19 @@ +# Security Policy + +## Project status: unsupported + +Apache Pulsar Manager is no longer maintained and is completely unsupported. There are no supported +versions, and no further releases, fixes or security updates will be made for any version. + +Using Pulsar Manager is not recommended. If you run it, remove the deployment and move to one of the +alternatives described in the [Administration UI documentation](https://pulsar.apache.org/docs/administration-ui). + +## Reporting security issues + +The Apache Pulsar PMC does not acknowledge or process new security findings for Pulsar Manager, and +asks that no new findings be reported for it. Reports about Pulsar Manager will not be investigated, +fixed or assigned CVE identifiers. + +This applies only to Pulsar Manager. For maintained Apache Pulsar projects, the +[Apache Pulsar security policy](https://github.com/apache/pulsar/security/policy) applies. Pulsar Manager is +not covered by that policy.