You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ur...@apache.org on 2022/09/08 06:16:35 UTC

[pulsar-site] branch main updated: Docs sync done from apache/pulsar(#2ed5614)

This is an automated email from the ASF dual-hosted git repository.

urfree pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git


The following commit(s) were added to refs/heads/main by this push:
     new eb03a14cafa Docs sync done from apache/pulsar(#2ed5614)
eb03a14cafa is described below

commit eb03a14cafa101fe2417ab19c90b831f769f9b42
Author: Pulsar Site Updater <de...@pulsar.apache.org>
AuthorDate: Thu Sep 8 06:16:29 2022 +0000

    Docs sync done from apache/pulsar(#2ed5614)
---
 site2/website-next/docs/develop-schema.md          |  10 +-
 site2/website-next/docs/io-quickstart.md           |  84 +++++++----
 site2/website-next/docs/io-use.md                  |  69 +++++----
 site2/website-next/docs/reference-configuration.md |   4 +-
 site2/website-next/docs/sql-getting-started.md     |  47 +++---
 site2/website-next/docs/tiered-storage-aliyun.md   |  21 +--
 site2/website-next/docs/tiered-storage-aws.md      |  44 +-----
 site2/website-next/docs/tiered-storage-azure.md    |  44 +-----
 .../website-next/docs/tiered-storage-filesystem.md |  54 +------
 site2/website-next/docs/tiered-storage-gcs.md      |  47 +-----
 site2/website-next/docs/tiered-storage-overview.md |  55 ++++---
 site2/website-next/docs/tiered-storage-s3.md       |  25 +---
 .../version-2.7.0/security-basic-auth.md           | 162 +++++++++++++++++++++
 .../version-2.7.1/security-basic-auth.md           | 162 +++++++++++++++++++++
 .../version-2.7.2/security-basic-auth.md           | 162 +++++++++++++++++++++
 .../version-2.7.3/security-basic-auth.md           | 162 +++++++++++++++++++++
 .../version-2.7.4/security-basic-auth.md           | 162 +++++++++++++++++++++
 .../version-2.7.5/reference-configuration.md       |  31 ++++
 .../version-2.7.5/security-basic-auth.md           | 162 +++++++++++++++++++++
 .../versioned_sidebars/version-2.7.0-sidebars.json |   4 +
 .../versioned_sidebars/version-2.7.1-sidebars.json |   4 +
 .../versioned_sidebars/version-2.7.2-sidebars.json |   4 +
 .../versioned_sidebars/version-2.7.3-sidebars.json |   4 +
 .../versioned_sidebars/version-2.7.4-sidebars.json |   4 +
 .../versioned_sidebars/version-2.7.5-sidebars.json |   4 +
 25 files changed, 1194 insertions(+), 337 deletions(-)

diff --git a/site2/website-next/docs/develop-schema.md b/site2/website-next/docs/develop-schema.md
index 5dbb1fa17c1..6f43b4c1447 100644
--- a/site2/website-next/docs/develop-schema.md
+++ b/site2/website-next/docs/develop-schema.md
@@ -41,7 +41,7 @@ public interface SchemaStorage {
 
 > For a full-fledged example schema storage implementation, see the [`BookKeeperSchemaStorage`](https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/BookkeeperSchemaStorage.java) class.
 
-## SchemaStorageFactory interface 
+## SchemaStorageFactory interface
 
 ```java
 public interface SchemaStorageFactory {
@@ -56,7 +56,7 @@ public interface SchemaStorageFactory {
 
 To use your custom schema storage implementation, you need to:
 
-1. Package the implementation in a [JAR](https://docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html) file.
-1. Add that jar to the `lib` folder in your Pulsar [binary or source distribution](getting-started-standalone.md#installing-pulsar).
-1. Change the `schemaRegistryStorageClassName` configuration in [`broker.conf`](reference-configuration.md#broker) to your custom factory class (i.e. the `SchemaStorageFactory` implementation, not the `SchemaStorage` implementation).
-1. Start up Pulsar.
+1. Package the implementation in a JAR file.
+2. Add that JAR file to the `lib` folder in your Pulsar distribution.
+3. Change the `schemaRegistryStorageClassName` configuration in [`broker.conf`](reference-configuration.md#broker) to your custom factory class (i.e. the `SchemaStorageFactory` implementation, not the `SchemaStorage` implementation).
+4. Start up Pulsar.
diff --git a/site2/website-next/docs/io-quickstart.md b/site2/website-next/docs/io-quickstart.md
index 98b4eabe974..0f2b8278a04 100644
--- a/site2/website-next/docs/io-quickstart.md
+++ b/site2/website-next/docs/io-quickstart.md
@@ -4,20 +4,18 @@ title: How to connect Pulsar to database
 sidebar_label: "Get started"
 ---
 
-This tutorial provides a hands-on look at how you can move data out of Pulsar without writing a single line of code.  
+This tutorial provides a hands-on look at how you can move data out of Pulsar without writing a single line of code.
 
-It is helpful to review the [concepts](io-overview.md) for Pulsar I/O by running the steps in this guide to gain a deeper understanding.   
+It is helpful to review the [concepts](io-overview.md) for Pulsar I/O by running the steps in this guide to gain a deeper understanding.
 
 At the end of this tutorial, you can:
 
 - [Connect Pulsar to Cassandra](#connect-pulsar-to-cassandra)
-  
 - [Connect Pulsar to PostgreSQL](#connect-pulsar-to-postgreSQL)
 
 :::tip
 
-* These instructions assume you are running Pulsar in [standalone mode](getting-started-standalone.md). However, all
-the commands used in this tutorial can be used in a multi-node Pulsar cluster without any changes.
+* These instructions assume you are running Pulsar in standalone mode. However, all the commands used in this tutorial can be used in a multi-node Pulsar cluster without any changes.
 * All the instructions are assumed to run at the root directory of a Pulsar binary distribution.
 
 :::
@@ -26,9 +24,33 @@ the commands used in this tutorial can be used in a multi-node Pulsar cluster wi
 
 Before connecting Pulsar to a database, you need to install Pulsar and the desired built-in connector.
 
-For more information about **how to install a standalone Pulsar and built-in connectors**, see [here](getting-started-standalone.md/#installing-pulsar).
+Read [Run a standalone Pulsar cluster locally](getting-started-standalone.md) for downloading the Pulsar distribution.
 
-## Start Pulsar standalone 
+Pulsar releases a separate binary distribution to contain all the built-in connectors. To enable those connectors, you need to download the connectors tarball release:
+
+```bash
+wget pulsar:connector_release_url/{connector}-@pulsar:version@.nar
+```
+
+After you download the NAR file, copy the file to the `connectors` directory in the Pulsar directory. For example, if you download the `pulsar-io-aerospike-@pulsar:version@.nar` connector file, enter the following commands:
+
+```bash
+mkdir connectors
+mv pulsar-io-aerospike-@pulsar:version@.nar connectors
+
+ls connectors
+# pulsar-io-aerospike-@pulsar:version@.nar
+# ...
+```
+
+:::note
+
+* If you are running Pulsar in a bare metal cluster, make sure `connectors` tarball is unzipped in every pulsar directory of the broker (or in every pulsar directory of function-worker if you are running a separate worker cluster for Pulsar Functions).
+* If you are [running Pulsar in Docker](getting-started-docker.md) or deploying Pulsar using a docker image (e.g. [K8S](deploy-kubernetes.md)), you can use the `apachepulsar/pulsar-all` image instead of the `apachepulsar/pulsar` image. The `apachepulsar/pulsar-all` image has already bundled all built-in connectors.
+
+:::
+
+## Start Pulsar standalone
 
 1. Start Pulsar locally.
 
@@ -36,8 +58,8 @@ For more information about **how to install a standalone Pulsar and built-in con
    bin/pulsar standalone
    ```
 
-   All the components of a Pulsar service are started in order. 
-   
+   All the components of a Pulsar service are started in order.
+
    You can curl those pulsar service endpoints to make sure the Pulsar service is up and running correctly.
 
 2. Check Pulsar binary protocol port.
@@ -141,7 +163,7 @@ This example uses `cassandra` Docker image to start a single-node Cassandra clus
    UN  172.17.0.2  103.67 KiB  256          100.0%            af0e4b2f-84e0-4f0b-bb14-bd5f9070ff26  rack1
    ```
 
-5. Use `cqlsh` to connect to the Cassandra cluster. 
+5. Use `cqlsh` to connect to the Cassandra cluster.
 
    ```bash
    docker exec -ti cassandra cqlsh localhost
@@ -166,11 +188,11 @@ This example uses `cassandra` Docker image to start a single-node Cassandra clus
 
 ### Configure a Cassandra sink
 
-Now that we have a Cassandra cluster running locally. 
+Now that we have a Cassandra cluster running locally.
 
 In this section, you need to configure a Cassandra sink connector.
 
-To run a Cassandra sink connector, you need to prepare a configuration file including the information that Pulsar connector runtime needs to know. 
+To run a Cassandra sink connector, you need to prepare a configuration file including the information that Pulsar connector runtime needs to know.
 
 For example, how Pulsar connector can find the Cassandra cluster, what is the keyspace and the table that Pulsar connector uses for writing Pulsar messages to, and so on.
 
@@ -223,7 +245,7 @@ bin/pulsar-admin sinks create \
     --inputs test_cassandra
 ```
 
-Once the command is executed, Pulsar creates the sink connector _cassandra-test-sink_. 
+Once the command is executed, Pulsar creates the sink connector _cassandra-test-sink_.
 
 This sink connector runs as a Pulsar Function and writes the messages produced in the topic _test_cassandra_ to the Cassandra table _pulsar_test_table_.
 
@@ -231,7 +253,7 @@ This sink connector runs as a Pulsar Function and writes the messages produced i
 
 You can use the [Connector Admin CLI](/tools/pulsar-admin/) to monitor a connector and perform other operations on it.
 
-* Get the information of a Cassandra sink. 
+* Get the information of a Cassandra sink.
 
   ```bash
   bin/pulsar-admin sinks get \
@@ -268,7 +290,7 @@ You can use the [Connector Admin CLI](/tools/pulsar-admin/) to monitor a connect
   }
   ```
 
-* Check the status of a Cassandra sink. 
+* Check the status of a Cassandra sink.
 
   ```bash
   bin/pulsar-admin sinks status \
@@ -374,7 +396,7 @@ You can use the [Connector Admin CLI](/tools/pulsar-admin/) to monitor a connect
 
 ### Delete a Cassandra Sink
 
-You can use the [Connector Admin CLI](/tools/pulsar-admin/) 
+You can use the [Connector Admin CLI](/tools/pulsar-admin/)
 to delete a connector and perform other operations on it.
 
 ```bash
@@ -413,12 +435,12 @@ This example uses the PostgreSQL 12 docker image to start a single-node PostgreS
    --name pulsar-postgres \
    -p 5432:5432 \
    -e POSTGRES_PASSWORD=password \
-   -e POSTGRES_USER=postgres \    
+   -e POSTGRES_USER=postgres \
    postgres:12
    ```
 
    #### Tip
-   
+
     Flag | Description | This example
     ---|---|---|
     `-d` | To start a container in detached mode. | /
@@ -461,24 +483,24 @@ This example uses the PostgreSQL 12 docker image to start a single-node PostgreS
 
    ```bash
    psql -U postgres postgres
-   
+
    postgres=# create table if not exists pulsar_postgres_jdbc_sink
    (
    id serial PRIMARY KEY,
-   name VARCHAR(255) NOT NULL    
+   name VARCHAR(255) NOT NULL
    );
    ```
 
 ### Configure a JDBC sink
 
-Now we have a PostgreSQL running locally. 
+Now we have a PostgreSQL running locally.
 
 In this section, you need to configure a JDBC sink connector.
 
-1. Add a configuration file.   
-   
-   To run a JDBC sink connector, you need to prepare a YAML configuration file including the information that the Pulsar connector runtime needs to know. 
-   
+1. Add a configuration file.
+
+   To run a JDBC sink connector, you need to prepare a YAML configuration file including the information that the Pulsar connector runtime needs to know.
+
    For example, how Pulsar connector can find the PostgreSQL cluster, what is the JDBC URL and the table that Pulsar connector uses for writing messages.
 
    Create a _pulsar-postgres-jdbc-sink.yaml_ file, copy the following contents to this file, and place the file in the `pulsar/connectors` folder.
@@ -509,7 +531,7 @@ In this section, you need to configure a JDBC sink connector.
 
    :::
 
-3. Upload a schema to a topic.  
+3. Upload a schema to a topic.
 
    This example uploads the _avro-schema_ schema to the _pulsar-postgres-jdbc-sink-topic_ topic.
 
@@ -531,7 +553,7 @@ In this section, you need to configure a JDBC sink connector.
 
 ### Create a JDBC sink
 
-You can use the [Connector Admin CLI](/tools/pulsar-admin/) 
+You can use the [Connector Admin CLI](/tools/pulsar-admin/)
 to create a sink connector and perform other operations on it.
 
 This example creates a sink connector and specifies the desired information.
@@ -551,7 +573,7 @@ This sink connector runs as a Pulsar Function and writes the messages produced i
 
  #### Tip
 
- Flag | Description | Example 
+ Flag | Description | Example
  ---|---|---|
  `--archive` | The path to the archive file for the sink. | pulsar-io-jdbc-postgres-@pulsar:version@.nar |
  `--inputs` | The input topic(s) of the sink. <br /><br /> Multiple topics can be specified as a comma-separated list.||
@@ -573,7 +595,7 @@ Created successfully
 
 ### Inspect a JDBC sink
 
-You can use the [Connector Admin CLI](/tools/pulsar-admin/) 
+You can use the [Connector Admin CLI](/tools/pulsar-admin/)
 to monitor a connector and perform other operations on it.
 
 * List all running JDBC sink(s).
@@ -727,7 +749,7 @@ Started successfully
 
 :::tip
 
-* Optionally, you can run a standalone sink connector using `pulsar-admin sinks localrun options`. 
+* Optionally, you can run a standalone sink connector using `pulsar-admin sinks localrun options`.
 Note that `pulsar-admin sinks localrun options` **runs a sink connector locally**, while `pulsar-admin sinks start options` **starts a sink connector in a cluster**.
 * For more information about `pulsar-admin sinks localrun options`, see [Pulsar admin docs](/tools/pulsar-admin/).
 
@@ -794,7 +816,7 @@ The result shows that the parallelism is 2.
 
 ### Delete a JDBC sink
 
-You can use the [Connector Admin CLI](/tools/pulsar-admin/) 
+You can use the [Connector Admin CLI](/tools/pulsar-admin/)
 to delete a connector and perform other operations on it.
 
 This example deletes the _pulsar-postgres-jdbc-sink_ sink connector.
diff --git a/site2/website-next/docs/io-use.md b/site2/website-next/docs/io-use.md
index 58bcb4357a4..d0d09651757 100644
--- a/site2/website-next/docs/io-use.md
+++ b/site2/website-next/docs/io-use.md
@@ -22,8 +22,7 @@ When using a non-built-in connector, you need to specify the path of an archive
 
 :::
 
-To set up a built-in connector, follow
-the instructions [here](getting-started-standalone.md#installing-built-in-connectors).
+To set up a built-in connector, follow the [instructions](io-quickstart.md#install-pulsar-and-built-in-connector).
 
 After the setup, the built-in connector is automatically discovered by Pulsar brokers (or function-workers), so no additional installation steps are required.
 
@@ -62,9 +61,9 @@ The YAML configuration file tells Pulsar where to locate connectors and how to c
 Below is a YAML configuration file of a Cassandra sink, which tells Pulsar:
 
 * Which Cassandra cluster to connect
-  
+
 * What is the `keyspace` and `columnFamily` to be used in Cassandra for collecting data
-  
+
 * How to map Pulsar messages into Cassandra table key and columns
 
 ```yaml
@@ -111,7 +110,7 @@ configs:
 Before starting using connectors, you can perform the following operations:
 
 * [Reload connectors](#reload)
-  
+
 * [Get a list of available connectors](#get-available-connectors)
 
 ### `reload`
@@ -163,7 +162,7 @@ pulsar-admin sinks available-sinks
 To run a connector, you can perform the following operations:
 
 * [Create a connector](#create)
-  
+
 * [Start a connector](#start)
 
 * [Run a connector locally](#localrun)
@@ -221,7 +220,7 @@ Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/source
 
   For more information, see [`createSource`](/api/admin/org/apache/pulsar/client/admin/Source.html#createSource-SourceConfig-java.lang.String-).
 
-* Create a source connector using a **remote file** with a URL from which fun-pkg can be downloaded. 
+* Create a source connector using a **remote file** with a URL from which fun-pkg can be downloaded.
 
   ```java
   void createSourceWithUrl(SourceConfig sourceConfig,
@@ -249,7 +248,7 @@ Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/source
   |Name|Description|
   |---|---
   | `PulsarAdminException` | Unexpected error
-  
+
   For more information, see [`createSourceWithUrl`](/api/admin/org/apache/pulsar/client/admin/Source.html#createSourceWithUrl-SourceConfig-java.lang.String-).
 
 </TabItem>
@@ -306,7 +305,7 @@ Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sinks/
 
   For more information, see [`createSink`](/api/admin/org/apache/pulsar/client/admin/Sink.html#createSink-SinkConfig-java.lang.String-).
 
-* Create a sink connector using a **remote file** with a URL from which fun-pkg can be downloaded. 
+* Create a sink connector using a **remote file** with a URL from which fun-pkg can be downloaded.
 
   ```java
   void createSinkWithUrl(SinkConfig sinkConfig,
@@ -334,7 +333,7 @@ Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sinks/
   |Name|Description|
   |---|---
   | `PulsarAdminException` | Unexpected error
-  
+
   For more information, see [`createSinkWithUrl`](/api/admin/org/apache/pulsar/client/admin/Sink.html#createSinkWithUrl-SinkConfig-java.lang.String-).
 
 </TabItem>
@@ -575,7 +574,7 @@ This is a sourceConfig example.
 
 Exception name | Description
 |---|---
-`PulsarAdminException.NotAuthorizedException` | You don't have the admin permission 
+`PulsarAdminException.NotAuthorizedException` | You don't have the admin permission
 `PulsarAdminException.NotFoundException` | Cluster doesn't exist
 `PulsarAdminException` | Unexpected error
 
@@ -784,7 +783,7 @@ List<String> listSinks(String tenant,
 
 Exception name | Description
 |---|---
-`PulsarAdminException.NotAuthorizedException` | You don't have the admin permission 
+`PulsarAdminException.NotAuthorizedException` | You don't have the admin permission
 `PulsarAdminException` | Unexpected error
 
 For more information, see [`listSource`](/api/admin/org/apache/pulsar/client/admin/Sink.html#listSinks-java.lang.String-java.lang.String-).
@@ -821,7 +820,7 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 <TabItem value="REST API">
 
 * Get the current status of **all** source connectors.
-  
+
   Send a `GET` request to this endpoint: {@inject: endpoint|GET|/admin/v3/sources/:tenant/:namespace/:sourceName/status|operation/getSourceStatus?version=@pulsar:version_number@}
 
 * Gets the current status of a **specified** source connector.
@@ -911,7 +910,7 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 <TabItem value="REST API">
 
 * Get the current status of **all** sink connectors.
-  
+
   Send a `GET` request to this endpoint: {@inject: endpoint|GET|/admin/v3/sinks/:tenant/:namespace/:sinkName/status|operation/getSinkStatus?version=@pulsar:version_number@}
 
 * Gets the current status of a **specified** sink connector.
@@ -1029,13 +1028,13 @@ Send a `PUT` request to this endpoint: {@inject: endpoint|PUT|/admin/v3/sources/
 
   |Name|Description|
   |---|---
-  |`PulsarAdminException.NotAuthorizedException`| You don't have the admin permission 
+  |`PulsarAdminException.NotAuthorizedException`| You don't have the admin permission
   | `PulsarAdminException.NotFoundException` | Cluster doesn't exist
   | `PulsarAdminException` | Unexpected error
 
   For more information, see [`updateSource`](/api/admin/org/apache/pulsar/client/admin/Source.html#updateSource-SourceConfig-java.lang.String-).
 
-* Update a source connector using a **remote file** with a URL from which fun-pkg can be downloaded. 
+* Update a source connector using a **remote file** with a URL from which fun-pkg can be downloaded.
 
   ```java
   void updateSourceWithUrl(SourceConfig sourceConfig,
@@ -1050,7 +1049,7 @@ Send a `PUT` request to this endpoint: {@inject: endpoint|PUT|/admin/v3/sources/
   * HTTP: http://www.repo.com/fileName.jar
 
   * File: file:///dir/fileName.jar
-  
+
   **Parameter**
 
   | Name | Description
@@ -1062,7 +1061,7 @@ Send a `PUT` request to this endpoint: {@inject: endpoint|PUT|/admin/v3/sources/
 
   |Name|Description|
   |---|---
-  |`PulsarAdminException.NotAuthorizedException`| You don't have the admin permission 
+  |`PulsarAdminException.NotAuthorizedException`| You don't have the admin permission
   | `PulsarAdminException.NotFoundException` | Cluster doesn't exist
   | `PulsarAdminException` | Unexpected error
 
@@ -1124,7 +1123,7 @@ Send a `PUT` request to this endpoint: {@inject: endpoint|PUT|/admin/v3/sinks/:t
 
   For more information, see [`updateSink`](/api/admin/org/apache/pulsar/client/admin/Sink.html#updateSink-SinkConfig-java.lang.String-).
 
-* Update a sink connector using a **remote file** with a URL from which fun-pkg can be downloaded. 
+* Update a sink connector using a **remote file** with a URL from which fun-pkg can be downloaded.
 
   ```java
   void updateSinkWithUrl(SinkConfig sinkConfig,
@@ -1139,7 +1138,7 @@ Send a `PUT` request to this endpoint: {@inject: endpoint|PUT|/admin/v3/sinks/:t
   * HTTP: http://www.repo.com/fileName.jar
 
   * File: file:///dir/fileName.jar
-  
+
   **Parameter**
 
   | Name | Description
@@ -1151,7 +1150,7 @@ Send a `PUT` request to this endpoint: {@inject: endpoint|PUT|/admin/v3/sinks/:t
 
   |Name|Description|
   |---|---
-  |`PulsarAdminException.NotAuthorizedException`| You don't have the admin permission 
+  |`PulsarAdminException.NotAuthorizedException`| You don't have the admin permission
   |`PulsarAdminException.NotFoundException` | Cluster doesn't exist
   |`PulsarAdminException` | Unexpected error
 
@@ -1191,11 +1190,11 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 <TabItem value="REST API">
 
 * Stop **all** source connectors.
-  
+
   Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName|operation/stopSource?version=@pulsar:version_number@}
 
 * Stop a **specified** source connector.
-  
+
   Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName/:instanceId|operation/stopSource?version=@pulsar:version_number@}
 
 </TabItem>
@@ -1226,7 +1225,7 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 
   For more information, see [`stopSource`](/api/admin/org/apache/pulsar/client/admin/Source.html#stopSource-java.lang.String-java.lang.String-java.lang.String-).
 
-* Stop a **specified** source connector. 
+* Stop a **specified** source connector.
 
   ```java
   void stopSource(String tenant,
@@ -1281,11 +1280,11 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 <TabItem value="REST API">
 
 * Stop **all** sink connectors.
-  
+
   Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sinks/:tenant/:namespace/:sinkName/stop|operation/stopSink?version=@pulsar:version_number@}
 
 * Stop a **specified** sink connector.
-  
+
   Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sinkeName/:instanceId/stop|operation/stopSink?version=@pulsar:version_number@}
 
 </TabItem>
@@ -1316,7 +1315,7 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 
   For more information, see [`stopSink`](/api/admin/org/apache/pulsar/client/admin/Sink.html#stopSink-java.lang.String-java.lang.String-java.lang.String-).
 
-* Stop a **specified** sink connector. 
+* Stop a **specified** sink connector.
 
   ```java
   void stopSink(String tenant,
@@ -1377,11 +1376,11 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 <TabItem value="REST API">
 
 * Restart **all** source connectors.
-  
+
   Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName/restart|operation/restartSource?version=@pulsar:version_number@}
 
 * Restart a **specified** source connector.
-  
+
   Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName/:instanceId/restart|operation/restartSource?version=@pulsar:version_number@}
 
 </TabItem>
@@ -1412,7 +1411,7 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 
   For more information, see [`restartSource`](/api/admin/org/apache/pulsar/client/admin/Source.html#restartSource-java.lang.String-java.lang.String-java.lang.String-).
 
-* Restart a **specified** source connector. 
+* Restart a **specified** source connector.
 
   ```java
   void restartSource(String tenant,
@@ -1467,11 +1466,11 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 <TabItem value="REST API">
 
 * Restart **all** sink connectors.
-  
+
   Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sinkName/restart|operation/restartSource?version=@pulsar:version_number@}
 
 * Restart a **specified** sink connector.
-  
+
   Send a `POST` request to this endpoint: {@inject: endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sinkName/:instanceId/restart|operation/restartSource?version=@pulsar:version_number@}
 
 </TabItem>
@@ -1502,7 +1501,7 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 
   For more information, see [`restartSink`](/api/admin/org/apache/pulsar/client/admin/Sink.html#restartSink-java.lang.String-java.lang.String-java.lang.String-).
 
-* Restart a **specified** sink connector. 
+* Restart a **specified** sink connector.
 
   ```java
   void restartSink(String tenant,
@@ -1563,7 +1562,7 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 <TabItem value="REST API">
 
 Delete al Pulsar source connector.
-  
+
 Send a `DELETE` request to this endpoint: {@inject: endpoint|DELETE|/admin/v3/sources/:tenant/:namespace/:sourceName|operation/deregisterSource?version=@pulsar:version_number@}
 
 </TabItem>
@@ -1625,7 +1624,7 @@ For the latest and complete information, see [Pulsar admin docs](/tools/pulsar-a
 <TabItem value="REST API">
 
 Delete a sink connector.
-  
+
 Send a `DELETE` request to this endpoint: {@inject: endpoint|DELETE|/admin/v3/sinks/:tenant/:namespace/:sinkName|operation/deregisterSink?version=@pulsar:version_number@}
 
 </TabItem>
diff --git a/site2/website-next/docs/reference-configuration.md b/site2/website-next/docs/reference-configuration.md
index 402a446831a..bd14bde2706 100644
--- a/site2/website-next/docs/reference-configuration.md
+++ b/site2/website-next/docs/reference-configuration.md
@@ -4,6 +4,6 @@ title: Pulsar configuration
 sidebar_label: "Pulsar configuration"
 ---
 
-You can manage Pulsar configuration by configuration files in the [`conf`](https://github.com/apache/pulsar/tree/master/conf) directory of a Pulsar [installation](https://pulsar.apache.org/docs/next/getting-started-standalone).
+You can manage Pulsar configuration by configuration files in the `conf` directory of a Pulsar [installation](getting-started-standalone.md).
 
-For a full list of the configuration of different components, see [Pulsar Reference](https://pulsar.apache.org/reference).
+For a full list of the configuration of different components, see [Pulsar Reference](/reference).
diff --git a/site2/website-next/docs/sql-getting-started.md b/site2/website-next/docs/sql-getting-started.md
index ec2f2372b1e..0732682df32 100644
--- a/site2/website-next/docs/sql-getting-started.md
+++ b/site2/website-next/docs/sql-getting-started.md
@@ -4,13 +4,15 @@ title: Query data with Pulsar SQL
 sidebar_label: "Query data"
 ---
 
-Before querying data in Pulsar, you need to install Pulsar and built-in connectors. 
+Before querying data in Pulsar, you need to install Pulsar and built-in connectors.
 
 ## Requirements
-1. Install [Pulsar](getting-started-standalone.md#install-pulsar-standalone).
-2. Install Pulsar [built-in connectors](getting-started-standalone.md#install-built-in-connectors-optional).
+
+1. Install [Pulsar](getting-started-standalone.md).
+2. Install Pulsar [built-in connectors](io-quickstart.md#install-pulsar-and-built-in-connector).
 
 ## Query data in Pulsar
+
 To query data in Pulsar with Pulsar SQL, complete the following steps.
 
 1. Start a Pulsar standalone cluster.
@@ -21,7 +23,7 @@ PULSAR_STANDALONE_USE_ZOOKEEPER=1 ./bin/pulsar standalone
 
 :::note
 
-Starting the Pulsar standalone cluster from scratch doesn't enable ZooKeeper by default. 
+Starting the Pulsar standalone cluster from scratch doesn't enable ZooKeeper by default.
 However, the Pulsar SQL depends on ZooKeeper. Therefore, you need to set `PULSAR_STANDALONE_USE_ZOOKEEPER=1` to enable ZooKeeper.
 
 :::
@@ -42,10 +44,10 @@ However, the Pulsar SQL depends on ZooKeeper. Therefore, you need to set `PULSAR
 
 ```bash
 presto> show catalogs;
- Catalog 
+ Catalog
 ---------
- pulsar  
- system  
+ pulsar
+ system
 (2 rows)
 
 Query 20180829_211752_00004_7qpwh, FINISHED, 1 node
@@ -54,10 +56,10 @@ Splits: 19 total, 19 done (100.00%)
 
 
 presto> show schemas in pulsar;
-        Schema         
+        Schema
 -----------------------
- information_schema    
- public/default        
+ information_schema
+ public/default
  public/functions
 (3 rows)
 
@@ -67,7 +69,7 @@ Splits: 19 total, 19 done (100.00%)
 
 
 presto> show tables in pulsar."public/default";
- Table 
+ Table
 -------
 (0 rows)
 
@@ -76,7 +78,7 @@ Splits: 19 total, 19 done (100.00%)
 0:00 [0 rows, 0B] [0 rows/s, 0B/s]
 ```
 
-Since there is no data in Pulsar, no records are returned. 
+Since there is no data in Pulsar, no records are returned.
 
 5. Start the built-in connector _DataGeneratorSource_ and ingest some mock data.
 
@@ -88,9 +90,9 @@ And then you can query a topic in the namespace "public/default".
 
 ```bash
 presto> show tables in pulsar."public/default";
-     Table      
+     Table
 ----------------
- generator_test 
+ generator_test
 (1 row)
 
 Query 20180829_213202_00000_csyeu, FINISHED, 1 node
@@ -103,21 +105,22 @@ You can now query the data within the topic "generator_test".
 ```bash
 presto> select * from pulsar."public/default".generator_test;
 
-  firstname  | middlename  |  lastname   |              email               |   username   | password | telephonenumber | age |                 companyemail                  | nationalidentitycardnumber | 
+  firstname  | middlename  |  lastname   |              email               |   username   | password | telephonenumber | age |                 companyemail                  | nationalidentitycardnumber |
 -------------+-------------+-------------+----------------------------------+--------------+----------+-----------------+-----+-----------------------------------------------+----------------------------+
- Genesis     | Katherine   | Wiley       | genesis.wiley@gmail.com          | genesisw     | y9D2dtU3 | 959-197-1860    |  71 | genesis.wiley@interdemconsulting.eu           | 880-58-9247                |   
- Brayden     |             | Stanton     | brayden.stanton@yahoo.com        | braydens     | ZnjmhXik | 220-027-867     |  81 | brayden.stanton@supermemo.eu                  | 604-60-7069                |   
- Benjamin    | Julian      | Velasquez   | benjamin.velasquez@yahoo.com     | benjaminv    | 8Bc7m3eb | 298-377-0062    |  21 | benjamin.velasquez@hostesltd.biz              | 213-32-5882                |   
- Michael     | Thomas      | Donovan     | donovan@mail.com                 | michaeld     | OqBm9MLs | 078-134-4685    |  55 | michael.donovan@memortech.eu                  | 443-30-3442                |   
- Brooklyn    | Avery       | Roach       | brooklynroach@yahoo.com          | broach       | IxtBLafO | 387-786-2998    |  68 | brooklyn.roach@warst.biz                      | 085-88-3973                |   
- Skylar      |             | Bradshaw    | skylarbradshaw@yahoo.com         | skylarb      | p6eC6cKy | 210-872-608     |  96 | skylar.bradshaw@flyhigh.eu                    | 453-46-0334                |    
+ Genesis     | Katherine   | Wiley       | genesis.wiley@gmail.com          | genesisw     | y9D2dtU3 | 959-197-1860    |  71 | genesis.wiley@interdemconsulting.eu           | 880-58-9247                |
+ Brayden     |             | Stanton     | brayden.stanton@yahoo.com        | braydens     | ZnjmhXik | 220-027-867     |  81 | brayden.stanton@supermemo.eu                  | 604-60-7069                |
+ Benjamin    | Julian      | Velasquez   | benjamin.velasquez@yahoo.com     | benjaminv    | 8Bc7m3eb | 298-377-0062    |  21 | benjamin.velasquez@hostesltd.biz              | 213-32-5882                |
+ Michael     | Thomas      | Donovan     | donovan@mail.com                 | michaeld     | OqBm9MLs | 078-134-4685    |  55 | michael.donovan@memortech.eu                  | 443-30-3442                |
+ Brooklyn    | Avery       | Roach       | brooklynroach@yahoo.com          | broach       | IxtBLafO | 387-786-2998    |  68 | brooklyn.roach@warst.biz                      | 085-88-3973                |
+ Skylar      |             | Bradshaw    | skylarbradshaw@yahoo.com         | skylarb      | p6eC6cKy | 210-872-608     |  96 | skylar.bradshaw@flyhigh.eu                    | 453-46-0334                |
 ...
 ```
 
 You can query the mock data.
 
 ## Query your own data
-If you want to query your own data, you need to ingest your own data first. You can write a simple producer and write custom defined data to Pulsar. The following is an example. 
+
+If you want to query your own data, you need to ingest your own data first. You can write a simple producer and write custom defined data to Pulsar. The following is an example.
 
 ```java
 public class TestProducer {
diff --git a/site2/website-next/docs/tiered-storage-aliyun.md b/site2/website-next/docs/tiered-storage-aliyun.md
index 338ed14035b..c8c63e2e7ca 100644
--- a/site2/website-next/docs/tiered-storage-aliyun.md
+++ b/site2/website-next/docs/tiered-storage-aliyun.md
@@ -14,27 +14,10 @@ Follow the steps below to install the Aliyun OSS offloader.
 
 - Pulsar: 2.8.0 or later versions
 
-### Step
-
 This example uses Pulsar 2.8.0.
 
-1. [Download the Pulsar tarball](getting-started-standalone.md#install-pulsar-using-binary-release).
-
-2. Download and untar the Pulsar offloaders package, then copy the Pulsar offloaders as `offloaders` in the Pulsar directory. See [Install tiered storage offloaders](getting-started-standalone.md#install-tiered-storage-offloaders-optional).
-
-   **Output**
-
-   ```bash
-   tiered-storage-file-system-2.8.0.nar
-   tiered-storage-jcloud-2.8.0.nar
-   ```
-
-   :::note
-
-   * If you are running Pulsar in a bare-metal cluster, make sure that `offloaders` tarball is unzipped in every broker's Pulsar directory.
-   * If you are running Pulsar in Docker or deploying Pulsar using a Docker image (such as K8s and DCOS), you can use the `apachepulsar/pulsar-all` image. The `apachepulsar/pulsar-all` image has already bundled tiered storage offloaders.
-
-   :::
+1. [Download the Pulsar tarball](getting-started-standalone.md#step-1-download-pulsar-distribution).
+2. Download and untar the Pulsar offloaders package, then copy the Pulsar offloaders as `offloaders` in the Pulsar directory. See [Install tiered storage offloaders](tiered-storage-overview.md#how-to-install-tiered-storage-offloaders).
 
 ## Configuration
 
diff --git a/site2/website-next/docs/tiered-storage-aws.md b/site2/website-next/docs/tiered-storage-aws.md
index 50b62bd1d26..bc5f8bf390e 100644
--- a/site2/website-next/docs/tiered-storage-aws.md
+++ b/site2/website-next/docs/tiered-storage-aws.md
@@ -14,50 +14,10 @@ Follow the steps below to install the AWS S3 offloader.
 
 - Pulsar: 2.4.2 or later versions
 
-### Step
-
 This example uses Pulsar 2.5.1.
 
-1. Download the Pulsar tarball using one of the following ways:
-
-   * Download from the [Apache mirror](https://archive.apache.org/dist/pulsar/pulsar-2.5.1/apache-pulsar-2.5.1-bin.tar.gz)
-
-   * Download from the Pulsar [downloads page](/download)
-
-   * Use [wget](https://www.gnu.org/software/wget):
-
-    ```shell
-    wget https://archive.apache.org/dist/pulsar/pulsar-2.5.1/apache-pulsar-2.5.1-bin.tar.gz
-    ```
-
-2. Download and untar the Pulsar offloaders package.
-
-   ```bash
-   wget https://downloads.apache.org/pulsar/pulsar-2.5.1/apache-pulsar-offloaders-2.5.1-bin.tar.gz
-   tar xvfz apache-pulsar-offloaders-2.5.1-bin.tar.gz
-   ```
-
-3. Copy the Pulsar offloaders as `offloaders` in the Pulsar directory.
-
-   ```
-   mv apache-pulsar-offloaders-2.5.1/offloaders apache-pulsar-2.5.1/offloaders
-
-   ls offloaders
-   ```
-
-   **Output**
-
-   ```
-   tiered-storage-file-system-2.5.1.nar
-   tiered-storage-jcloud-2.5.1.nar
-   ```
-
-   :::note
-
-   * If you are running Pulsar in a bare metal cluster, make sure that `offloaders` tarball is unzipped in every broker's Pulsar directory.
-   * If you are running Pulsar in Docker or deploying Pulsar using a Docker image (such as K8s and DCOS), you can use the `apachepulsar/pulsar-all` image instead of the `apachepulsar/pulsar` image. `apachepulsar/pulsar-all` image has already bundled tiered storage offloaders.
-
-   :::
+1. [Download the Pulsar tarball](getting-started-standalone.md#step-1-download-pulsar-distribution).
+2. Download and untar the Pulsar offloaders package, then copy the Pulsar offloaders as `offloaders` in the Pulsar directory. See [Install tiered storage offloaders](tiered-storage-overview.md#how-to-install-tiered-storage-offloaders).
 
 ## Configuration
 
diff --git a/site2/website-next/docs/tiered-storage-azure.md b/site2/website-next/docs/tiered-storage-azure.md
index e05e1a67e7f..54248644bd9 100644
--- a/site2/website-next/docs/tiered-storage-azure.md
+++ b/site2/website-next/docs/tiered-storage-azure.md
@@ -14,50 +14,10 @@ Follow the steps below to install the Azure BlobStore offloader.
 
 - Pulsar: 2.6.2 or later versions
 
-### Step
-
 This example uses Pulsar 2.6.2.
 
-1. Download the Pulsar tarball using one of the following ways:
-
-   * Download from the [Apache mirror](https://archive.apache.org/dist/pulsar/pulsar-2.6.2/apache-pulsar-2.6.2-bin.tar.gz)
-
-   * Download from the Pulsar [downloads page](/download)
-
-   * Use [wget](https://www.gnu.org/software/wget):
-
-    ```shell
-    wget https://archive.apache.org/dist/pulsar/pulsar-2.6.2/apache-pulsar-2.6.2-bin.tar.gz
-    ```
-
-2. Download and untar the Pulsar offloaders package.
-
-   ```bash
-   wget https://downloads.apache.org/pulsar/pulsar-2.6.2/apache-pulsar-offloaders-2.6.2-bin.tar.gz
-   tar xvfz apache-pulsar-offloaders-2.6.2-bin.tar.gz
-   ```
-
-3. Copy the Pulsar offloaders as `offloaders` in the Pulsar directory.
-
-   ```
-   mv apache-pulsar-offloaders-2.6.2/offloaders apache-pulsar-2.6.2/offloaders
-
-   ls offloaders
-   ```
-
-   **Output**
-
-   ```
-   tiered-storage-file-system-2.6.2.nar
-   tiered-storage-jcloud-2.6.2.nar
-   ```
-
-   :::note
-
-   * If you are running Pulsar in a bare metal cluster, make sure that `offloaders` tarball is unzipped in every broker's Pulsar directory.
-   * If you are running Pulsar in Docker or deploying Pulsar using a Docker image (such as K8s and DCOS), you can use the `apachepulsar/pulsar-all` image instead of the `apachepulsar/pulsar` image. `apachepulsar/pulsar-all` image has already bundled tiered storage offloaders.
-
-   :::
+1. [Download the Pulsar tarball](getting-started-standalone.md#step-1-download-pulsar-distribution).
+2. Download and untar the Pulsar offloaders package, then copy the Pulsar offloaders as `offloaders` in the Pulsar directory. See [Install tiered storage offloaders](tiered-storage-overview.md#how-to-install-tiered-storage-offloaders).
 
 ## Configuration
 
diff --git a/site2/website-next/docs/tiered-storage-filesystem.md b/site2/website-next/docs/tiered-storage-filesystem.md
index ad8da012ff4..0eefe4758d6 100644
--- a/site2/website-next/docs/tiered-storage-filesystem.md
+++ b/site2/website-next/docs/tiered-storage-filesystem.md
@@ -20,58 +20,10 @@ This section describes how to install the filesystem offloader.
 
 - Pulsar: 2.4.2 or higher versions
 
-### Step
-
 This example uses Pulsar 2.5.1.
 
-1. Download the Pulsar tarball using one of the following ways:
-
-   * Download the Pulsar tarball from the [Apache mirror](https://archive.apache.org/dist/pulsar/pulsar-2.5.1/apache-pulsar-2.5.1-bin.tar.gz)
-
-   * Download the Pulsar tarball from the Pulsar [download page](/download/)
-
-   * Use the [wget](https://www.gnu.org/software/wget) command to download the Pulsar tarball.
-
-    ```shell
-    wget https://archive.apache.org/dist/pulsar/pulsar-2.5.1/apache-pulsar-2.5.1-bin.tar.gz
-    ```
-
-2. Download and untar the Pulsar offloaders package.
-
-   ```bash
-   wget https://downloads.apache.org/pulsar/pulsar-2.5.1/apache-pulsar-offloaders-2.5.1-bin.tar.gz
-
-   tar xvfz apache-pulsar-offloaders-2.5.1-bin.tar.gz
-   ```
-
-   :::note
-
-   * If you run Pulsar in a bare-metal cluster, ensure that the `offloaders` tarball is unzipped in every broker's Pulsar directory.
-   * If you run Pulsar in Docker or deploy Pulsar using a Docker image (such as K8S and DCOS), you can use the `apachepulsar/pulsar-all` image. The `apachepulsar/pulsar-all` image has already bundled tiered storage offloaders.
-
-   :::
-
-3. Copy the Pulsar offloaders as `offloaders` in the Pulsar directory.
-
-   ```
-   mv apache-pulsar-offloaders-2.5.1/offloaders apache-pulsar-2.5.1/offloaders
-
-   ls offloaders
-   ```
-
-   **Output**
-
-   ```
-   tiered-storage-file-system-2.5.1.nar
-   tiered-storage-jcloud-2.5.1.nar
-   ```
-
-   :::note
-
-   * If you run Pulsar in a bare-metal cluster, ensure that `offloaders` tarball is unzipped in every broker's Pulsar directory.
-   * If you run Pulsar in Docker or deploy Pulsar using a Docker image (such as K8s and DCOS), you can use the `apachepulsar/pulsar-all` image. The `apachepulsar/pulsar-all` image has already bundled tiered storage offloaders.
-
-   :::
+1. [Download the Pulsar tarball](getting-started-standalone.md#step-1-download-pulsar-distribution).
+2. Download and untar the Pulsar offloaders package, then copy the Pulsar offloaders as `offloaders` in the Pulsar directory. See [Install tiered storage offloaders](tiered-storage-overview.md#how-to-install-tiered-storage-offloaders).
 
 ## Configuration
 
@@ -252,7 +204,7 @@ This tutorial sets up a Hadoop single node cluster and uses Hadoop 3.2.1. For de
 1. Download and uncompress Hadoop 3.2.1.
 
    ```shell
-   wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz  
+   wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
 
    tar -zxvf hadoop-3.2.1.tar.gz -C $HADOOP_HOME
    ```
diff --git a/site2/website-next/docs/tiered-storage-gcs.md b/site2/website-next/docs/tiered-storage-gcs.md
index 7b5f60a2202..638652c8a98 100644
--- a/site2/website-next/docs/tiered-storage-gcs.md
+++ b/site2/website-next/docs/tiered-storage-gcs.md
@@ -14,51 +14,10 @@ Follow the steps below to install the GCS offloader.
 
 - Pulsar: 2.4.2 or later versions
 
-### Step
-
 This example uses Pulsar 2.5.1.
 
-1. Download the Pulsar tarball using one of the following ways:
-
-   * Download from the [Apache mirror](https://archive.apache.org/dist/pulsar/pulsar-2.5.1/apache-pulsar-2.5.1-bin.tar.gz)
-
-   * Download from the Pulsar [download page](/download)
-
-   * Use [wget](https://www.gnu.org/software/wget)
-
-    ```shell
-    wget https://archive.apache.org/dist/pulsar/pulsar-2.5.1/apache-pulsar-2.5.1-bin.tar.gz
-    ```
-
-2. Download and untar the Pulsar offloaders package.
-
-   ```bash
-   wget https://downloads.apache.org/pulsar/pulsar-2.5.1/apache-pulsar-offloaders-2.5.1-bin.tar.gz
-
-   tar xvfz apache-pulsar-offloaders-2.5.1-bin.tar.gz
-   ```
-
-   :::note
-
-   * If you are running Pulsar in a bare metal cluster, make sure that `offloaders` tarball is unzipped in every broker's Pulsar directory.
-   * If you are running Pulsar in Docker or deploying Pulsar using a Docker image (such as K8S and DCOS), you can use the `apachepulsar/pulsar-all` image instead of the `apachepulsar/pulsar` image. `apachepulsar/pulsar-all` image has already bundled tiered storage offloaders.
-
-   :::
-
-3. Copy the Pulsar offloaders as `offloaders` in the Pulsar directory.
-
-   ```shell
-   mv apache-pulsar-offloaders-2.5.1/offloaders apache-pulsar-2.5.1/offloaders
-
-   ls offloaders
-   ```
-
-   **Output**
-
-   ```shell
-   tiered-storage-file-system-2.5.1.nar
-   tiered-storage-jcloud-2.5.1.nar
-   ```
+1. [Download the Pulsar tarball](getting-started-standalone.md#step-1-download-pulsar-distribution).
+2. Download and untar the Pulsar offloaders package, then copy the Pulsar offloaders as `offloaders` in the Pulsar directory. See [Install tiered storage offloaders](tiered-storage-overview.md#how-to-install-tiered-storage-offloaders).
 
 ## Configuration
 
@@ -125,7 +84,7 @@ gcsManagedLedgerOffloadRegion=europe-west3
 
 #### Authentication (required)
 
-To enable a broker to access GCS, you need to configure `gcsManagedLedgerOffloadServiceAccountKeyFile` in the configuration file `broker.conf`. 
+To enable a broker to access GCS, you need to configure `gcsManagedLedgerOffloadServiceAccountKeyFile` in the configuration file `broker.conf`.
 
 `gcsManagedLedgerOffloadServiceAccountKeyFile` is a JSON file, containing GCS credentials of a service account.
 
diff --git a/site2/website-next/docs/tiered-storage-overview.md b/site2/website-next/docs/tiered-storage-overview.md
index 5fa65db1541..a317f093130 100644
--- a/site2/website-next/docs/tiered-storage-overview.md
+++ b/site2/website-next/docs/tiered-storage-overview.md
@@ -4,41 +4,50 @@ title: Overview of tiered storage
 sidebar_label: "Overview"
 ---
 
-Pulsar's **Tiered Storage** feature allows older backlog data to be moved from BookKeeper to long term and cheaper storage, while still allowing clients to access the backlog as if nothing has changed. 
+Pulsar's **Tiered Storage** feature allows older backlog data to be moved from BookKeeper to long-term and cheaper storage, while still allowing clients to access the backlog as if nothing has changed.
 
-* Tiered storage uses [Apache jclouds](https://jclouds.apache.org) to support [Amazon S3](https://aws.amazon.com/s3/), [GCS (Google Cloud Storage)](https://cloud.google.com/storage/), [Azure](https://azure.microsoft.com/en-us/services/storage/blobs/) and [Aliyun OSS](https://www.aliyun.com/product/oss) for long term storage. 
+* Tiered storage uses [Apache jclouds](https://jclouds.apache.org) to support [Amazon S3](https://aws.amazon.com/s3/), [GCS (Google Cloud Storage)](https://cloud.google.com/storage/), [Azure](https://azure.microsoft.com/en-us/services/storage/blobs/) and [Aliyun OSS](https://www.aliyun.com/product/oss) for long term storage.
+  * Read how to [Use AWS S3 offloader with Pulsar](tiered-storage-aws.md);
+  * Read how to [Use GCS offloader with Pulsar](tiered-storage-gcs.md);
+  * Read how to [Use Azure BlobStore offloader with Pulsar](tiered-storage-azure.md);
+  * Read how to [Use Aliyun OSS offloader with Pulsar](tiered-storage-aliyun.md);
+  * Read how to [Use S3 offloader with Pulsar](tiered-storage-s3.md).
+* Tiered storage uses [Apache Hadoop](http://hadoop.apache.org/) to support filesystems for long-term storage.
+  * Read how to [Use filesystem offloader with Pulsar](tiered-storage-filesystem.md).
 
-  With jclouds, it is easy to add support for more [cloud storage providers](https://jclouds.apache.org/reference/providers/#blobstore-providers) in the future.
+## When to use tiered storage?
 
-  :::tip
+Tiered storage should be used when you have a topic for which you want to keep a very long backlog for a long time.
 
-  - For more information about how to use the AWS S3 offloader with Pulsar, see [here](tiered-storage-aws.md).
-  
-  - For more information about how to use the GCS offloader with Pulsar, see [here](tiered-storage-gcs.md).
-  
-  - For more information about how to use the Azure offloader with Pulsar, see [here](tiered-storage-azure.md).
-  
-  - For more information about how to use the Aliyun OSS offloader with Pulsar, see [here](tiered-storage-aliyun.md).
+For example, if you have a topic containing user actions that you use to train your recommendation systems, you may want to keep that data for a long time, so that if you change your recommendation algorithm, you can rerun it against your full user history.
 
-  - For more information about how to use the S3 offloader with Pulsar, see [here](tiered-storage-s3.md).
+## How to install tiered storage offloaders?
 
-  :::
+Pulsar releases a separate binary distribution, containing the tiered storage offloaders. To enable those offloaders, you need to download the offloaders tarball release:
 
-* Tiered storage uses [Apache Hadoop](http://hadoop.apache.org/) to support filesystems for long term storage. 
+```bash
+wget pulsar:offloader_release_url
+```
 
-  With Hadoop, it is easy to add support for more filesystems in the future.
+After you download the tarball, untar the offloaders package and copy the offloaders as `offloaders` in the pulsar directory:
 
-  :::tip
+```bash
+tar xvfz apache-pulsar-offloaders-@pulsar:version@-bin.tar.gz
+mv apache-pulsar-offloaders-@pulsar:version@/offloaders offloaders
 
-  For more information about how to use the filesystem offloader with Pulsar, see [here](tiered-storage-filesystem.md).
+ls offloaders
+# tiered-storage-file-system-@pulsar:version@.nar
+# tiered-storage-jcloud-@pulsar:version@.nar
+```
 
-  :::
+For more information on how to configure tiered storage, see [Tiered storage cookbook](cookbooks-tiered-storage.md).
 
-## When to use tiered storage?
+:::note
 
-Tiered storage should be used when you have a topic for which you want to keep a very long backlog for a long time. 
+* If you are running Pulsar in a bare metal cluster, make sure that `offloaders` tarball is unzipped in every broker's pulsar directory.
+* If you are [running Pulsar in Docker](getting-started-docker.md) or deploying Pulsar using a docker image (e.g. [K8S](deploy-kubernetes.md)), you can use the `apachepulsar/pulsar-all` image instead of the `apachepulsar/pulsar` image. `apachepulsar/pulsar-all` image has already bundled tiered storage offloaders.
 
-For example, if you have a topic containing user actions that you use to train your recommendation systems, you may want to keep that data for a long time, so that if you change your recommendation algorithm, you can rerun it against your full user history.
+:::
 
 ## How does tiered storage work?
 
@@ -50,10 +59,10 @@ The tiered storage offloading mechanism takes advantage of the segment-oriented
 
 Data written to BookKeeper is replicated to 3 physical machines by default. However, once a segment is sealed in BookKeeper, it becomes immutable and can be copied to long-term storage. Long-term storage can achieve cost savings by using mechanisms such as [Reed-Solomon error correction](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction) to require fewer physical copies of data.
 
-Before offloading ledgers to long-term storage, you need to configure buckets, credentials, and other properties for the cloud storage service. Additionally, Pulsar uses multi-part objects to upload the segment data and brokers may crash while uploading the data. It is recommended that you add a life cycle rule for your bucket to expire incomplete multi-part upload after a day or two days to avoid getting charged for incomplete uploads. Moreover, you can trigger the offloading operation  [...]
+Before offloading ledgers to long-term storage, you need to configure buckets, credentials, and other properties for the cloud storage service. Additionally, Pulsar uses multi-part objects to upload the segment data and brokers may crash while uploading the data. It is recommended that you add a life cycle rule for your bucket to expire incomplete multi-part upload after a day or two days to avoid getting charged for incomplete uploads. Moreover, you can trigger the offloading operation  [...]
 
 After offloading ledgers to long-term storage, you can still query data in the offloaded ledgers with Pulsar SQL.
 
 For more information about tiered storage for Pulsar topics, see [here](https://github.com/apache/pulsar/wiki/PIP-17:-Tiered-storage-for-Pulsar-topics).
 
-For more information about offload metrics, see [here](reference-metrics.md#offload-metrics).
\ No newline at end of file
+For more information about offload metrics, see [here](reference-metrics.md#offload-metrics).
diff --git a/site2/website-next/docs/tiered-storage-s3.md b/site2/website-next/docs/tiered-storage-s3.md
index 13becedddd6..eac7e19ad04 100644
--- a/site2/website-next/docs/tiered-storage-s3.md
+++ b/site2/website-next/docs/tiered-storage-s3.md
@@ -20,25 +20,8 @@ Follow the steps below to install the S3 offloader.
 
 This example uses Pulsar 2.9.3.
 
-1. [Download the Pulsar tarball](getting-started-standalone.md#install-pulsar-using-binary-release).
-
-2. Download and untar the Pulsar offloaders package, then copy the Pulsar offloaders as `offloaders` in the Pulsar directory. See [Install tiered storage offloaders](getting-started-standalone.md#install-tiered-storage-offloaders-optional).
-
-   **Output**
-
-   As shown from the output, Pulsar uses [Apache jclouds](https://jclouds.apache.org) to support [AWS S3](https://aws.amazon.com/s3/), [GCS](https://cloud.google.com/storage/), [Azure](https://portal.azure.com/#home), and [Aliyun OSS](https://www.aliyun.com/product/oss) for long-term storage.
-
-   ```
-   tiered-storage-file-system-2.9.3.nar
-   tiered-storage-jcloud-2.9.3.nar
-   ```
-
-   :::note
-
-   * If you run Pulsar in a bare-metal cluster, ensure that `offloaders` tarball is unzipped in every broker's Pulsar directory.
-   * If you run Pulsar in Docker or deploy Pulsar using a Docker image (such as K8s and DCOS), you can use the `apachepulsar/pulsar-all` image. The `apachepulsar/pulsar-all` image has already bundled tiered storage offloaders.
-
-   :::
+1. [Download the Pulsar tarball](getting-started-standalone.md#step-1-download-pulsar-distribution).
+2. Download and untar the Pulsar offloaders package, then copy the Pulsar offloaders as `offloaders` in the Pulsar directory. See [Install tiered storage offloaders](tiered-storage-overview.md#how-to-install-tiered-storage-offloaders).
 
 ## Configuration
 
@@ -119,9 +102,9 @@ Namespace policy can be configured to offload data automatically once a threshol
 
 | Threshold value | Action |
 | --- | --- |
-| > 0 | It triggers the offloading operation if the topic storage reaches its threshold. |
+| &gt; 0 | It triggers the offloading operation if the topic storage reaches its threshold. |
 | = 0 | It causes a broker to offload data as soon as possible. |
-| < 0 | It disables automatic offloading operation. |
+| &lt; 0 | It disables automatic offloading operation. |
 
 Automatic offloading runs when a new segment is added to a topic log. If you set the threshold for a namespace, but few messages are being produced to the topic, the offloader does not work until the current segment is full.
 
diff --git a/site2/website-next/versioned_docs/version-2.7.0/security-basic-auth.md b/site2/website-next/versioned_docs/version-2.7.0/security-basic-auth.md
new file mode 100644
index 00000000000..42e5d24ce0f
--- /dev/null
+++ b/site2/website-next/versioned_docs/version-2.7.0/security-basic-auth.md
@@ -0,0 +1,162 @@
+---
+id: security-basic-auth
+title: Authentication using HTTP basic
+sidebar_label: "Authentication using HTTP basic"
+original_id: security-basic-auth
+---
+
+````mdx-code-block
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+````
+
+[Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is a simple authentication scheme built into the HTTP protocol, which uses base64-encoded username and password pairs as credentials.
+
+## Prerequisites
+
+Install [`htpasswd`](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) in your environment to create a password file for storing username-password pairs.
+
+* For Ubuntu/Debian, run the following command to install `htpasswd`.
+
+   ```bash
+   apt install apache2-utils
+   ```
+
+* For CentOS/RHEL, run the following command to install `htpasswd`.
+
+   ```bash
+   yum install httpd-tools
+   ```
+
+## Create your authentication file
+
+:::note
+
+Currently, you can use MD5 (recommended) and CRYPT encryption to authenticate your password.
+
+:::
+
+Create a password file named `.htpasswd` with a user account `superuser/admin`:
+* Use MD5 encryption (recommended):
+
+   ```bash
+   htpasswd -cmb /path/to/.htpasswd superuser admin
+   ```
+
+* Use CRYPT encryption:
+
+   ```bash
+   htpasswd -cdb /path/to/.htpasswd superuser admin
+   ```
+
+You can preview the content of your password file by running the following command:
+
+```bash
+cat path/to/.htpasswd
+superuser:$apr1$GBIYZYFZ$MzLcPrvoUky16mLcK6UtX/
+```
+
+## Enable basic authentication on brokers
+
+To configure brokers to authenticate clients, add the following parameters to the `conf/broker.conf` file. If you use a standalone Pulsar, you need to add these parameters to the `conf/standalone.conf` file:
+
+```conf
+# Configuration to enable Basic authentication
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# Authentication settings of the broker itself. Used when the broker connects to other brokers, either in same or other clusters
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# If this flag is set then the broker authenticates the original Auth data
+# else it just accepts the originalPrincipal and authorizes it (if required).
+authenticateOriginalAuthData=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Enable basic authentication on proxies
+
+To configure proxies to authenticate clients, add the following parameters to the `conf/proxy.conf` file:
+
+```conf
+# For clients connecting to the proxy
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# For the proxy to connect to brokers
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
+# Authentication must be enabled via authenticationEnabled=true for this to take effect.
+forwardAuthorizationCredentials=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Configure basic authentication in CLI tools
+
+[Command-line tools](/docs/next/reference-cli-tools), such as [Pulsar-admin](/tools/pulsar-admin/), [Pulsar-perf](/tools/pulsar-perf/) and [Pulsar-client](/tools/pulsar-client/), use the `conf/client.conf` file in your Pulsar installation. To configure basic authentication in Pulsar CLI tools, you need to add the following parameters to the `conf/client.conf` file.
+
+```conf
+authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+authParams={"userId":"superuser","password":"admin"}
+```
+
+
+## Configure basic authentication in Pulsar clients
+
+The following example shows how to configure basic authentication when using Pulsar clients.
+
+<Tabs>
+  <TabItem value="Java" label="Java" default>
+
+   ```java
+   AuthenticationBasic auth = new AuthenticationBasic();
+   auth.configure("{\"userId\":\"superuser\",\"password\":\"admin\"}");
+   PulsarClient client = PulsarClient.builder()
+      .serviceUrl("pulsar://broker.example.com:6650")
+      .authentication(auth)
+      .build();
+   ```
+
+  </TabItem>
+  <TabItem value="C++" label="C++" default>
+
+   ```cpp
+   #include <pulsar/Client.h>
+
+   int main() {
+       pulsar::ClientConfiguration config;
+       AuthenticationPtr auth = pulsar::AuthBasic::create("admin", "123456")
+       config.setAuth(auth);
+       pulsar::Client client("pulsar://broker.example.com:6650/", config);
+
+       return 0;
+   }
+   ```
+
+  </TabItem>
+</Tabs>
diff --git a/site2/website-next/versioned_docs/version-2.7.1/security-basic-auth.md b/site2/website-next/versioned_docs/version-2.7.1/security-basic-auth.md
new file mode 100644
index 00000000000..42e5d24ce0f
--- /dev/null
+++ b/site2/website-next/versioned_docs/version-2.7.1/security-basic-auth.md
@@ -0,0 +1,162 @@
+---
+id: security-basic-auth
+title: Authentication using HTTP basic
+sidebar_label: "Authentication using HTTP basic"
+original_id: security-basic-auth
+---
+
+````mdx-code-block
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+````
+
+[Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is a simple authentication scheme built into the HTTP protocol, which uses base64-encoded username and password pairs as credentials.
+
+## Prerequisites
+
+Install [`htpasswd`](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) in your environment to create a password file for storing username-password pairs.
+
+* For Ubuntu/Debian, run the following command to install `htpasswd`.
+
+   ```bash
+   apt install apache2-utils
+   ```
+
+* For CentOS/RHEL, run the following command to install `htpasswd`.
+
+   ```bash
+   yum install httpd-tools
+   ```
+
+## Create your authentication file
+
+:::note
+
+Currently, you can use MD5 (recommended) and CRYPT encryption to authenticate your password.
+
+:::
+
+Create a password file named `.htpasswd` with a user account `superuser/admin`:
+* Use MD5 encryption (recommended):
+
+   ```bash
+   htpasswd -cmb /path/to/.htpasswd superuser admin
+   ```
+
+* Use CRYPT encryption:
+
+   ```bash
+   htpasswd -cdb /path/to/.htpasswd superuser admin
+   ```
+
+You can preview the content of your password file by running the following command:
+
+```bash
+cat path/to/.htpasswd
+superuser:$apr1$GBIYZYFZ$MzLcPrvoUky16mLcK6UtX/
+```
+
+## Enable basic authentication on brokers
+
+To configure brokers to authenticate clients, add the following parameters to the `conf/broker.conf` file. If you use a standalone Pulsar, you need to add these parameters to the `conf/standalone.conf` file:
+
+```conf
+# Configuration to enable Basic authentication
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# Authentication settings of the broker itself. Used when the broker connects to other brokers, either in same or other clusters
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# If this flag is set then the broker authenticates the original Auth data
+# else it just accepts the originalPrincipal and authorizes it (if required).
+authenticateOriginalAuthData=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Enable basic authentication on proxies
+
+To configure proxies to authenticate clients, add the following parameters to the `conf/proxy.conf` file:
+
+```conf
+# For clients connecting to the proxy
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# For the proxy to connect to brokers
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
+# Authentication must be enabled via authenticationEnabled=true for this to take effect.
+forwardAuthorizationCredentials=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Configure basic authentication in CLI tools
+
+[Command-line tools](/docs/next/reference-cli-tools), such as [Pulsar-admin](/tools/pulsar-admin/), [Pulsar-perf](/tools/pulsar-perf/) and [Pulsar-client](/tools/pulsar-client/), use the `conf/client.conf` file in your Pulsar installation. To configure basic authentication in Pulsar CLI tools, you need to add the following parameters to the `conf/client.conf` file.
+
+```conf
+authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+authParams={"userId":"superuser","password":"admin"}
+```
+
+
+## Configure basic authentication in Pulsar clients
+
+The following example shows how to configure basic authentication when using Pulsar clients.
+
+<Tabs>
+  <TabItem value="Java" label="Java" default>
+
+   ```java
+   AuthenticationBasic auth = new AuthenticationBasic();
+   auth.configure("{\"userId\":\"superuser\",\"password\":\"admin\"}");
+   PulsarClient client = PulsarClient.builder()
+      .serviceUrl("pulsar://broker.example.com:6650")
+      .authentication(auth)
+      .build();
+   ```
+
+  </TabItem>
+  <TabItem value="C++" label="C++" default>
+
+   ```cpp
+   #include <pulsar/Client.h>
+
+   int main() {
+       pulsar::ClientConfiguration config;
+       AuthenticationPtr auth = pulsar::AuthBasic::create("admin", "123456")
+       config.setAuth(auth);
+       pulsar::Client client("pulsar://broker.example.com:6650/", config);
+
+       return 0;
+   }
+   ```
+
+  </TabItem>
+</Tabs>
diff --git a/site2/website-next/versioned_docs/version-2.7.2/security-basic-auth.md b/site2/website-next/versioned_docs/version-2.7.2/security-basic-auth.md
new file mode 100644
index 00000000000..42e5d24ce0f
--- /dev/null
+++ b/site2/website-next/versioned_docs/version-2.7.2/security-basic-auth.md
@@ -0,0 +1,162 @@
+---
+id: security-basic-auth
+title: Authentication using HTTP basic
+sidebar_label: "Authentication using HTTP basic"
+original_id: security-basic-auth
+---
+
+````mdx-code-block
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+````
+
+[Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is a simple authentication scheme built into the HTTP protocol, which uses base64-encoded username and password pairs as credentials.
+
+## Prerequisites
+
+Install [`htpasswd`](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) in your environment to create a password file for storing username-password pairs.
+
+* For Ubuntu/Debian, run the following command to install `htpasswd`.
+
+   ```bash
+   apt install apache2-utils
+   ```
+
+* For CentOS/RHEL, run the following command to install `htpasswd`.
+
+   ```bash
+   yum install httpd-tools
+   ```
+
+## Create your authentication file
+
+:::note
+
+Currently, you can use MD5 (recommended) and CRYPT encryption to authenticate your password.
+
+:::
+
+Create a password file named `.htpasswd` with a user account `superuser/admin`:
+* Use MD5 encryption (recommended):
+
+   ```bash
+   htpasswd -cmb /path/to/.htpasswd superuser admin
+   ```
+
+* Use CRYPT encryption:
+
+   ```bash
+   htpasswd -cdb /path/to/.htpasswd superuser admin
+   ```
+
+You can preview the content of your password file by running the following command:
+
+```bash
+cat path/to/.htpasswd
+superuser:$apr1$GBIYZYFZ$MzLcPrvoUky16mLcK6UtX/
+```
+
+## Enable basic authentication on brokers
+
+To configure brokers to authenticate clients, add the following parameters to the `conf/broker.conf` file. If you use a standalone Pulsar, you need to add these parameters to the `conf/standalone.conf` file:
+
+```conf
+# Configuration to enable Basic authentication
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# Authentication settings of the broker itself. Used when the broker connects to other brokers, either in same or other clusters
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# If this flag is set then the broker authenticates the original Auth data
+# else it just accepts the originalPrincipal and authorizes it (if required).
+authenticateOriginalAuthData=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Enable basic authentication on proxies
+
+To configure proxies to authenticate clients, add the following parameters to the `conf/proxy.conf` file:
+
+```conf
+# For clients connecting to the proxy
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# For the proxy to connect to brokers
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
+# Authentication must be enabled via authenticationEnabled=true for this to take effect.
+forwardAuthorizationCredentials=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Configure basic authentication in CLI tools
+
+[Command-line tools](/docs/next/reference-cli-tools), such as [Pulsar-admin](/tools/pulsar-admin/), [Pulsar-perf](/tools/pulsar-perf/) and [Pulsar-client](/tools/pulsar-client/), use the `conf/client.conf` file in your Pulsar installation. To configure basic authentication in Pulsar CLI tools, you need to add the following parameters to the `conf/client.conf` file.
+
+```conf
+authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+authParams={"userId":"superuser","password":"admin"}
+```
+
+
+## Configure basic authentication in Pulsar clients
+
+The following example shows how to configure basic authentication when using Pulsar clients.
+
+<Tabs>
+  <TabItem value="Java" label="Java" default>
+
+   ```java
+   AuthenticationBasic auth = new AuthenticationBasic();
+   auth.configure("{\"userId\":\"superuser\",\"password\":\"admin\"}");
+   PulsarClient client = PulsarClient.builder()
+      .serviceUrl("pulsar://broker.example.com:6650")
+      .authentication(auth)
+      .build();
+   ```
+
+  </TabItem>
+  <TabItem value="C++" label="C++" default>
+
+   ```cpp
+   #include <pulsar/Client.h>
+
+   int main() {
+       pulsar::ClientConfiguration config;
+       AuthenticationPtr auth = pulsar::AuthBasic::create("admin", "123456")
+       config.setAuth(auth);
+       pulsar::Client client("pulsar://broker.example.com:6650/", config);
+
+       return 0;
+   }
+   ```
+
+  </TabItem>
+</Tabs>
diff --git a/site2/website-next/versioned_docs/version-2.7.3/security-basic-auth.md b/site2/website-next/versioned_docs/version-2.7.3/security-basic-auth.md
new file mode 100644
index 00000000000..42e5d24ce0f
--- /dev/null
+++ b/site2/website-next/versioned_docs/version-2.7.3/security-basic-auth.md
@@ -0,0 +1,162 @@
+---
+id: security-basic-auth
+title: Authentication using HTTP basic
+sidebar_label: "Authentication using HTTP basic"
+original_id: security-basic-auth
+---
+
+````mdx-code-block
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+````
+
+[Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is a simple authentication scheme built into the HTTP protocol, which uses base64-encoded username and password pairs as credentials.
+
+## Prerequisites
+
+Install [`htpasswd`](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) in your environment to create a password file for storing username-password pairs.
+
+* For Ubuntu/Debian, run the following command to install `htpasswd`.
+
+   ```bash
+   apt install apache2-utils
+   ```
+
+* For CentOS/RHEL, run the following command to install `htpasswd`.
+
+   ```bash
+   yum install httpd-tools
+   ```
+
+## Create your authentication file
+
+:::note
+
+Currently, you can use MD5 (recommended) and CRYPT encryption to authenticate your password.
+
+:::
+
+Create a password file named `.htpasswd` with a user account `superuser/admin`:
+* Use MD5 encryption (recommended):
+
+   ```bash
+   htpasswd -cmb /path/to/.htpasswd superuser admin
+   ```
+
+* Use CRYPT encryption:
+
+   ```bash
+   htpasswd -cdb /path/to/.htpasswd superuser admin
+   ```
+
+You can preview the content of your password file by running the following command:
+
+```bash
+cat path/to/.htpasswd
+superuser:$apr1$GBIYZYFZ$MzLcPrvoUky16mLcK6UtX/
+```
+
+## Enable basic authentication on brokers
+
+To configure brokers to authenticate clients, add the following parameters to the `conf/broker.conf` file. If you use a standalone Pulsar, you need to add these parameters to the `conf/standalone.conf` file:
+
+```conf
+# Configuration to enable Basic authentication
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# Authentication settings of the broker itself. Used when the broker connects to other brokers, either in same or other clusters
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# If this flag is set then the broker authenticates the original Auth data
+# else it just accepts the originalPrincipal and authorizes it (if required).
+authenticateOriginalAuthData=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Enable basic authentication on proxies
+
+To configure proxies to authenticate clients, add the following parameters to the `conf/proxy.conf` file:
+
+```conf
+# For clients connecting to the proxy
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# For the proxy to connect to brokers
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
+# Authentication must be enabled via authenticationEnabled=true for this to take effect.
+forwardAuthorizationCredentials=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Configure basic authentication in CLI tools
+
+[Command-line tools](/docs/next/reference-cli-tools), such as [Pulsar-admin](/tools/pulsar-admin/), [Pulsar-perf](/tools/pulsar-perf/) and [Pulsar-client](/tools/pulsar-client/), use the `conf/client.conf` file in your Pulsar installation. To configure basic authentication in Pulsar CLI tools, you need to add the following parameters to the `conf/client.conf` file.
+
+```conf
+authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+authParams={"userId":"superuser","password":"admin"}
+```
+
+
+## Configure basic authentication in Pulsar clients
+
+The following example shows how to configure basic authentication when using Pulsar clients.
+
+<Tabs>
+  <TabItem value="Java" label="Java" default>
+
+   ```java
+   AuthenticationBasic auth = new AuthenticationBasic();
+   auth.configure("{\"userId\":\"superuser\",\"password\":\"admin\"}");
+   PulsarClient client = PulsarClient.builder()
+      .serviceUrl("pulsar://broker.example.com:6650")
+      .authentication(auth)
+      .build();
+   ```
+
+  </TabItem>
+  <TabItem value="C++" label="C++" default>
+
+   ```cpp
+   #include <pulsar/Client.h>
+
+   int main() {
+       pulsar::ClientConfiguration config;
+       AuthenticationPtr auth = pulsar::AuthBasic::create("admin", "123456")
+       config.setAuth(auth);
+       pulsar::Client client("pulsar://broker.example.com:6650/", config);
+
+       return 0;
+   }
+   ```
+
+  </TabItem>
+</Tabs>
diff --git a/site2/website-next/versioned_docs/version-2.7.4/security-basic-auth.md b/site2/website-next/versioned_docs/version-2.7.4/security-basic-auth.md
new file mode 100644
index 00000000000..42e5d24ce0f
--- /dev/null
+++ b/site2/website-next/versioned_docs/version-2.7.4/security-basic-auth.md
@@ -0,0 +1,162 @@
+---
+id: security-basic-auth
+title: Authentication using HTTP basic
+sidebar_label: "Authentication using HTTP basic"
+original_id: security-basic-auth
+---
+
+````mdx-code-block
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+````
+
+[Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is a simple authentication scheme built into the HTTP protocol, which uses base64-encoded username and password pairs as credentials.
+
+## Prerequisites
+
+Install [`htpasswd`](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) in your environment to create a password file for storing username-password pairs.
+
+* For Ubuntu/Debian, run the following command to install `htpasswd`.
+
+   ```bash
+   apt install apache2-utils
+   ```
+
+* For CentOS/RHEL, run the following command to install `htpasswd`.
+
+   ```bash
+   yum install httpd-tools
+   ```
+
+## Create your authentication file
+
+:::note
+
+Currently, you can use MD5 (recommended) and CRYPT encryption to authenticate your password.
+
+:::
+
+Create a password file named `.htpasswd` with a user account `superuser/admin`:
+* Use MD5 encryption (recommended):
+
+   ```bash
+   htpasswd -cmb /path/to/.htpasswd superuser admin
+   ```
+
+* Use CRYPT encryption:
+
+   ```bash
+   htpasswd -cdb /path/to/.htpasswd superuser admin
+   ```
+
+You can preview the content of your password file by running the following command:
+
+```bash
+cat path/to/.htpasswd
+superuser:$apr1$GBIYZYFZ$MzLcPrvoUky16mLcK6UtX/
+```
+
+## Enable basic authentication on brokers
+
+To configure brokers to authenticate clients, add the following parameters to the `conf/broker.conf` file. If you use a standalone Pulsar, you need to add these parameters to the `conf/standalone.conf` file:
+
+```conf
+# Configuration to enable Basic authentication
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# Authentication settings of the broker itself. Used when the broker connects to other brokers, either in same or other clusters
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# If this flag is set then the broker authenticates the original Auth data
+# else it just accepts the originalPrincipal and authorizes it (if required).
+authenticateOriginalAuthData=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Enable basic authentication on proxies
+
+To configure proxies to authenticate clients, add the following parameters to the `conf/proxy.conf` file:
+
+```conf
+# For clients connecting to the proxy
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# For the proxy to connect to brokers
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
+# Authentication must be enabled via authenticationEnabled=true for this to take effect.
+forwardAuthorizationCredentials=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Configure basic authentication in CLI tools
+
+[Command-line tools](/docs/next/reference-cli-tools), such as [Pulsar-admin](/tools/pulsar-admin/), [Pulsar-perf](/tools/pulsar-perf/) and [Pulsar-client](/tools/pulsar-client/), use the `conf/client.conf` file in your Pulsar installation. To configure basic authentication in Pulsar CLI tools, you need to add the following parameters to the `conf/client.conf` file.
+
+```conf
+authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+authParams={"userId":"superuser","password":"admin"}
+```
+
+
+## Configure basic authentication in Pulsar clients
+
+The following example shows how to configure basic authentication when using Pulsar clients.
+
+<Tabs>
+  <TabItem value="Java" label="Java" default>
+
+   ```java
+   AuthenticationBasic auth = new AuthenticationBasic();
+   auth.configure("{\"userId\":\"superuser\",\"password\":\"admin\"}");
+   PulsarClient client = PulsarClient.builder()
+      .serviceUrl("pulsar://broker.example.com:6650")
+      .authentication(auth)
+      .build();
+   ```
+
+  </TabItem>
+  <TabItem value="C++" label="C++" default>
+
+   ```cpp
+   #include <pulsar/Client.h>
+
+   int main() {
+       pulsar::ClientConfiguration config;
+       AuthenticationPtr auth = pulsar::AuthBasic::create("admin", "123456")
+       config.setAuth(auth);
+       pulsar::Client client("pulsar://broker.example.com:6650/", config);
+
+       return 0;
+   }
+   ```
+
+  </TabItem>
+</Tabs>
diff --git a/site2/website-next/versioned_docs/version-2.7.5/reference-configuration.md b/site2/website-next/versioned_docs/version-2.7.5/reference-configuration.md
index 3344dacb895..006b3b09dc4 100644
--- a/site2/website-next/versioned_docs/version-2.7.5/reference-configuration.md
+++ b/site2/website-next/versioned_docs/version-2.7.5/reference-configuration.md
@@ -349,6 +349,21 @@ Pulsar brokers are responsible for handling incoming messages from producers, di
 |haProxyProtocolEnabled | Enable or disable the [HAProxy](http://www.haproxy.org/) protocol. |false|
 |bookieId | If you want to custom a bookie ID or use a dynamic network address for the bookie, you can set this option. <br /><br />Bookie advertises itself using the `bookieId` rather than the `BookieSocketAddress` (`hostname:port` or `IP:port`).<br /><br /> The `bookieId` is a non-empty string that can contain ASCII digits and letters ([a-zA-Z9-0]), colons, dashes, and dots. <br /><br />For more information about `bookieId`, see [here](http://bookkeeper.apache.org/bps/BP-41-bookieid/).|N/A|
 
+#### Configuration override for clients internal to broker
+
+In 2.7.5 and later versions, you can configure some clients by using the appropriate prefix.
+
+|Prefix|Description|
+|---|---|
+|brokerClient_| Configure **all** the broker's Pulsar Clients and Pulsar Admin Clients. These configurations are applied after hard coded configuration and before the above broker client configurations named above.|
+|bookkeeper_| Configure the broker's BookKeeper clients used by managed ledgers and the BookkeeperPackagesStorage bookkeeper client. Takes precedence over most other configuration values.|
+
+:::note
+
+When running the function worker within the broker, these prefixed configurations do not apply to any of those clients. You must configure those clients using the `functions_worker.yml` file.
+
+:::
+
 ## Client
 
 The [`pulsar-client`](reference-cli-tools.md#pulsar-client) CLI tool can be used to publish messages to Pulsar and consume messages from Pulsar topics. This tool can be used in lieu of a client library.
@@ -686,6 +701,14 @@ The [`pulsar-client`](reference-cli-tools.md#pulsar-client) CLI tool can be used
 |tlsKeyFilePath |||
 |tlsTrustCertsFilePath|||
 
+#### Configuration Override For Clients Internal to WebSocket
+
+In 2.7.5 and later versions, you can configure some clients by using the appropriate prefix.
+
+|Prefix|Description|
+|---|---|
+|brokerClient_| Configure **all** the broker's Pulsar Clients. These configurations are applied after hard coded configuration and before the above brokerClient configurations named above.|
+
 
 ## Pulsar proxy
 
@@ -743,6 +766,14 @@ The [Pulsar proxy](concepts-architecture-overview.md#pulsar-proxy) can be config
 | tokenAudience | The token audience stands for this broker. The field `tokenAudienceClaim` of a valid token need contains this parameter.| |
 |haProxyProtocolEnabled | Enable or disable the [HAProxy](http://www.haproxy.org/) protocol. |false|
 
+#### Configuration Override For Clients Internal to Proxy
+
+In 2.7.5 and later versions, you can configure some clients by using the appropriate prefix.
+
+|Prefix|Description|
+|---|---|
+|brokerClient_| Configure **all** the proxy's Pulsar Clients. These configurations are applied after hard coded configuration and before the above brokerClient configurations named above.|
+
 ## ZooKeeper
 
 ZooKeeper handles a broad range of essential configuration- and coordination-related tasks for Pulsar. The default configuration file for ZooKeeper is in the `conf/zookeeper.conf` file in your Pulsar installation. The following parameters are available:
diff --git a/site2/website-next/versioned_docs/version-2.7.5/security-basic-auth.md b/site2/website-next/versioned_docs/version-2.7.5/security-basic-auth.md
new file mode 100644
index 00000000000..42e5d24ce0f
--- /dev/null
+++ b/site2/website-next/versioned_docs/version-2.7.5/security-basic-auth.md
@@ -0,0 +1,162 @@
+---
+id: security-basic-auth
+title: Authentication using HTTP basic
+sidebar_label: "Authentication using HTTP basic"
+original_id: security-basic-auth
+---
+
+````mdx-code-block
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+````
+
+[Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is a simple authentication scheme built into the HTTP protocol, which uses base64-encoded username and password pairs as credentials.
+
+## Prerequisites
+
+Install [`htpasswd`](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) in your environment to create a password file for storing username-password pairs.
+
+* For Ubuntu/Debian, run the following command to install `htpasswd`.
+
+   ```bash
+   apt install apache2-utils
+   ```
+
+* For CentOS/RHEL, run the following command to install `htpasswd`.
+
+   ```bash
+   yum install httpd-tools
+   ```
+
+## Create your authentication file
+
+:::note
+
+Currently, you can use MD5 (recommended) and CRYPT encryption to authenticate your password.
+
+:::
+
+Create a password file named `.htpasswd` with a user account `superuser/admin`:
+* Use MD5 encryption (recommended):
+
+   ```bash
+   htpasswd -cmb /path/to/.htpasswd superuser admin
+   ```
+
+* Use CRYPT encryption:
+
+   ```bash
+   htpasswd -cdb /path/to/.htpasswd superuser admin
+   ```
+
+You can preview the content of your password file by running the following command:
+
+```bash
+cat path/to/.htpasswd
+superuser:$apr1$GBIYZYFZ$MzLcPrvoUky16mLcK6UtX/
+```
+
+## Enable basic authentication on brokers
+
+To configure brokers to authenticate clients, add the following parameters to the `conf/broker.conf` file. If you use a standalone Pulsar, you need to add these parameters to the `conf/standalone.conf` file:
+
+```conf
+# Configuration to enable Basic authentication
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# Authentication settings of the broker itself. Used when the broker connects to other brokers, either in same or other clusters
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# If this flag is set then the broker authenticates the original Auth data
+# else it just accepts the originalPrincipal and authorizes it (if required).
+authenticateOriginalAuthData=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Enable basic authentication on proxies
+
+To configure proxies to authenticate clients, add the following parameters to the `conf/proxy.conf` file:
+
+```conf
+# For clients connecting to the proxy
+authenticationEnabled=true
+authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic
+
+basicAuthConf=file:///path/to/.htpasswd
+# basicAuthConf=/path/to/.htpasswd
+# When use the base64 format, you need to encode the .htpaswd content to bas64
+# basicAuthConf=data:;base64,YOUR-BASE64
+# basicAuthConf=YOUR-BASE64
+
+# For the proxy to connect to brokers
+brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+brokerClientAuthenticationParameters={"userId":"superuser","password":"admin"}
+
+# Whether client authorization credentials are forwarded to the broker for re-authorization.
+# Authentication must be enabled via authenticationEnabled=true for this to take effect.
+forwardAuthorizationCredentials=true
+```
+
+:::note
+
+You can also set an environment variable named `PULSAR_EXTRA_OPTS` and the value is `-Dpulsar.auth.basic.conf=/path/to/.htpasswd`. Pulsar reads this environment variable to implement HTTP basic authentication.
+
+:::
+
+## Configure basic authentication in CLI tools
+
+[Command-line tools](/docs/next/reference-cli-tools), such as [Pulsar-admin](/tools/pulsar-admin/), [Pulsar-perf](/tools/pulsar-perf/) and [Pulsar-client](/tools/pulsar-client/), use the `conf/client.conf` file in your Pulsar installation. To configure basic authentication in Pulsar CLI tools, you need to add the following parameters to the `conf/client.conf` file.
+
+```conf
+authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationBasic
+authParams={"userId":"superuser","password":"admin"}
+```
+
+
+## Configure basic authentication in Pulsar clients
+
+The following example shows how to configure basic authentication when using Pulsar clients.
+
+<Tabs>
+  <TabItem value="Java" label="Java" default>
+
+   ```java
+   AuthenticationBasic auth = new AuthenticationBasic();
+   auth.configure("{\"userId\":\"superuser\",\"password\":\"admin\"}");
+   PulsarClient client = PulsarClient.builder()
+      .serviceUrl("pulsar://broker.example.com:6650")
+      .authentication(auth)
+      .build();
+   ```
+
+  </TabItem>
+  <TabItem value="C++" label="C++" default>
+
+   ```cpp
+   #include <pulsar/Client.h>
+
+   int main() {
+       pulsar::ClientConfiguration config;
+       AuthenticationPtr auth = pulsar::AuthBasic::create("admin", "123456")
+       config.setAuth(auth);
+       pulsar::Client client("pulsar://broker.example.com:6650/", config);
+
+       return 0;
+   }
+   ```
+
+  </TabItem>
+</Tabs>
diff --git a/site2/website-next/versioned_sidebars/version-2.7.0-sidebars.json b/site2/website-next/versioned_sidebars/version-2.7.0-sidebars.json
index 95d0501b913..e788f600550 100644
--- a/site2/website-next/versioned_sidebars/version-2.7.0-sidebars.json
+++ b/site2/website-next/versioned_sidebars/version-2.7.0-sidebars.json
@@ -366,6 +366,10 @@
           "type": "doc",
           "id": "version-2.7.0/security-oauth2"
         },
+        {
+          "type": "doc",
+          "id": "version-2.7.0/security-basic-auth"
+        },
         {
           "type": "doc",
           "id": "version-2.7.0/security-authorization"
diff --git a/site2/website-next/versioned_sidebars/version-2.7.1-sidebars.json b/site2/website-next/versioned_sidebars/version-2.7.1-sidebars.json
index 887f203e5ee..80f3fcc0703 100644
--- a/site2/website-next/versioned_sidebars/version-2.7.1-sidebars.json
+++ b/site2/website-next/versioned_sidebars/version-2.7.1-sidebars.json
@@ -370,6 +370,10 @@
           "type": "doc",
           "id": "version-2.7.1/security-oauth2"
         },
+        {
+          "type": "doc",
+          "id": "version-2.7.1/security-basic-auth"
+        },
         {
           "type": "doc",
           "id": "version-2.7.1/security-authorization"
diff --git a/site2/website-next/versioned_sidebars/version-2.7.2-sidebars.json b/site2/website-next/versioned_sidebars/version-2.7.2-sidebars.json
index 5c94f5cd81d..6b9ef96b723 100644
--- a/site2/website-next/versioned_sidebars/version-2.7.2-sidebars.json
+++ b/site2/website-next/versioned_sidebars/version-2.7.2-sidebars.json
@@ -370,6 +370,10 @@
           "type": "doc",
           "id": "version-2.7.2/security-oauth2"
         },
+        {
+          "type": "doc",
+          "id": "version-2.7.2/security-basic-auth"
+        },
         {
           "type": "doc",
           "id": "version-2.7.2/security-authorization"
diff --git a/site2/website-next/versioned_sidebars/version-2.7.3-sidebars.json b/site2/website-next/versioned_sidebars/version-2.7.3-sidebars.json
index 157ba3652f9..19fe8bd4cc0 100644
--- a/site2/website-next/versioned_sidebars/version-2.7.3-sidebars.json
+++ b/site2/website-next/versioned_sidebars/version-2.7.3-sidebars.json
@@ -370,6 +370,10 @@
           "type": "doc",
           "id": "version-2.7.3/security-oauth2"
         },
+        {
+          "type": "doc",
+          "id": "version-2.7.3/security-basic-auth"
+        },
         {
           "type": "doc",
           "id": "version-2.7.3/security-authorization"
diff --git a/site2/website-next/versioned_sidebars/version-2.7.4-sidebars.json b/site2/website-next/versioned_sidebars/version-2.7.4-sidebars.json
index 27f073e0a64..5418559be08 100644
--- a/site2/website-next/versioned_sidebars/version-2.7.4-sidebars.json
+++ b/site2/website-next/versioned_sidebars/version-2.7.4-sidebars.json
@@ -370,6 +370,10 @@
           "type": "doc",
           "id": "version-2.7.4/security-oauth2"
         },
+        {
+          "type": "doc",
+          "id": "version-2.7.4/security-basic-auth"
+        },
         {
           "type": "doc",
           "id": "version-2.7.4/security-authorization"
diff --git a/site2/website-next/versioned_sidebars/version-2.7.5-sidebars.json b/site2/website-next/versioned_sidebars/version-2.7.5-sidebars.json
index cca40f757b6..ff1d7b63c19 100644
--- a/site2/website-next/versioned_sidebars/version-2.7.5-sidebars.json
+++ b/site2/website-next/versioned_sidebars/version-2.7.5-sidebars.json
@@ -370,6 +370,10 @@
           "type": "doc",
           "id": "version-2.7.5/security-oauth2"
         },
+        {
+          "type": "doc",
+          "id": "version-2.7.5/security-basic-auth"
+        },
         {
           "type": "doc",
           "id": "version-2.7.5/security-authorization"