You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bifromq.apache.org by gi...@apache.org on 2026/07/31 08:13:35 UTC

(bifromq-sites) branch asf-site updated: deploy: 842dccca93567f74e895ed28778e02a6e3023bab

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

github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/bifromq-sites.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 680926ed deploy: 842dccca93567f74e895ed28778e02a6e3023bab
680926ed is described below

commit 680926ed1afea8c757777dcbca6f9040a6c2e121
Author: popduke <po...@users.noreply.github.com>
AuthorDate: Fri Jul 31 08:13:29 2026 +0000

    deploy: 842dccca93567f74e895ed28778e02a6e3023bab
---
 404.html                                           |   12 +-
 assets/css/styles.394f7fe0.css                     |    1 -
 assets/css/styles.9a02b934.css                     |    1 +
 assets/js/008aa3b7.4b73a983.js                     |    1 -
 assets/js/008aa3b7.e4fdf0c0.js                     |    1 +
 assets/js/0094f0d6.43a2ac33.js                     |    1 -
 assets/js/0094f0d6.a4b902a9.js                     |    1 +
 assets/js/01a85c17.21aa3a3f.js                     |    1 -
 assets/js/01a85c17.8e88366f.js                     |    1 +
 .../{0245eb2f.4b1cef16.js => 0245eb2f.5faf654d.js} |    2 +-
 assets/js/0284318d.055338e6.js                     |    1 +
 assets/js/0284318d.70d83960.js                     |    1 -
 assets/js/02f0dda7.617d1c15.js                     |    1 +
 assets/js/02f0dda7.fe2c455b.js                     |    1 -
 assets/js/035e056b.3146a615.js                     |    1 +
 assets/js/035e056b.7f834f57.js                     |    1 -
 .../{0390fd0d.3f74a3d6.js => 0390fd0d.6255fc85.js} |    2 +-
 assets/js/045a1da8.9d1d1970.js                     |    1 +
 assets/js/045a1da8.ad81c400.js                     |    1 -
 .../{04819ec8.12dac336.js => 04819ec8.42132094.js} |    2 +-
 assets/js/05c84a48.041df031.js                     |    1 +
 assets/js/05c84a48.18f02a69.js                     |    1 -
 assets/js/068db3ed.dc028508.js                     |    1 +
 assets/js/068db3ed.f3348105.js                     |    1 -
 .../{0792419d.0aecb451.js => 0792419d.ff59d18f.js} |    2 +-
 assets/js/09d5ecca.09457c3c.js                     |    1 -
 assets/js/09d5ecca.bf85b09d.js                     |    1 +
 .../{0a602f47.9098b3f6.js => 0a602f47.2d5dca06.js} |    2 +-
 .../{0b3edb82.d85c8aec.js => 0b3edb82.f19945ae.js} |    2 +-
 assets/js/0bdb6845.26ccc052.js                     |    1 +
 assets/js/0bdb6845.50074c6e.js                     |    1 -
 assets/js/0c35aec8.4ea7a964.js                     |    1 -
 assets/js/0c35aec8.e9daf659.js                     |    1 +
 .../{0c904ee7.3e8888a4.js => 0c904ee7.c7ae2fea.js} |    2 +-
 assets/js/0cdc5203.84259e0b.js                     |    1 -
 assets/js/0cdc5203.cbb63ad2.js                     |    1 +
 assets/js/0d70e742.370e9dc6.js                     |    1 -
 assets/js/0d70e742.9323d24e.js                     |    1 +
 assets/js/0d79a91c.7cce6e2d.js                     |    1 -
 assets/js/0d79a91c.a217978b.js                     |    1 +
 assets/js/0dbe7c5b.9d602c7c.js                     |    1 +
 assets/js/0fd44aeb.30a07bb3.js                     |    1 +
 assets/js/0fd44aeb.449a129c.js                     |    1 -
 .../{101f636a.173f8d10.js => 101f636a.66747de0.js} |    2 +-
 assets/js/104d1c23.7e816983.js                     |    1 +
 assets/js/104d1c23.bf7667f9.js                     |    1 -
 assets/js/1100750e.2c1fff9b.js                     |    1 -
 assets/js/1100750e.f5684585.js                     |    1 +
 assets/js/1126.77ff09ec.js                         |    1 -
 assets/js/1126.c950fbc7.js                         |    1 +
 assets/js/1188cd16.4f016b4d.js                     |    1 +
 assets/js/1188cd16.d1a8cc74.js                     |    1 -
 assets/js/11b43341.3fc8f2fd.js                     |    1 +
 assets/js/11b43341.589ecc12.js                     |    1 -
 assets/js/11c63948.7686fc7a.js                     |    1 +
 assets/js/11c63948.f198037c.js                     |    1 -
 assets/js/1298.8c40ead3.js                         |    1 -
 assets/js/12a97c58.3e082622.js                     |    1 +
 assets/js/12a97c58.4d08e285.js                     |    1 -
 assets/js/14eb3368.0244b26c.js                     |    1 -
 assets/js/14eb3368.9bd1eeee.js                     |    1 +
 assets/js/1528a890.2305ca73.js                     |    1 -
 assets/js/1528a890.ca1f0944.js                     |    1 +
 assets/js/153f814d.3e2a8702.js                     |    1 -
 .../{30e5edbc.1993facb.js => 153f814d.8599deb0.js} |    2 +-
 assets/js/1561fa74.5f06ec0a.js                     |    1 +
 assets/js/1561fa74.f7a676e0.js                     |    1 -
 assets/js/161c9a40.3441bedb.js                     |    1 -
 assets/js/161c9a40.fd7443d5.js                     |    1 +
 assets/js/1653.9a97f028.js                         |    1 +
 .../{168873a5.94a37eff.js => 168873a5.e375b463.js} |    2 +-
 assets/js/1690d4ca.2c7d5f2f.js                     |    1 +
 .../{1750e47c.1a1a4929.js => 1750e47c.6deb866f.js} |    2 +-
 assets/js/1786.fe890d43.js                         |    1 -
 assets/js/17896441.35f15612.js                     |    1 -
 assets/js/17896441.45e67134.js                     |    1 +
 .../{17e25988.48fc4374.js => 17e25988.ed20b880.js} |    2 +-
 .../{18196ed7.b9eba3a0.js => 18196ed7.28ce012d.js} |    2 +-
 assets/js/1957f801.07a329d0.js                     |    1 +
 assets/js/1957f801.283a2a3f.js                     |    1 -
 assets/js/1a1a09aa.61fbd1dc.js                     |    1 -
 assets/js/1a1a09aa.eb66159a.js                     |    1 +
 assets/js/1adf9eb0.3914f809.js                     |    1 -
 assets/js/1adf9eb0.71853e4f.js                     |    1 +
 assets/js/1b3ae139.9bea555e.js                     |    1 -
 assets/js/1b3ae139.cd80f816.js                     |    1 +
 .../{5a23e989.52b2182d.js => 1bcc9337.609c2cb5.js} |    2 +-
 assets/js/1bcc9337.bdb3e297.js                     |    1 -
 assets/js/1bee1549.50f16798.js                     |    1 -
 assets/js/1bee1549.92da4d9f.js                     |    1 +
 .../{1c77a10c.2d9c1de0.js => 1c77a10c.73e975b2.js} |    2 +-
 assets/js/1cb3acca.a93e37d0.js                     |    1 +
 assets/js/1cb3acca.ee786a93.js                     |    1 -
 assets/js/1df93b7f.8c3771df.js                     |    1 -
 assets/js/1df93b7f.e9069702.js                     |    1 +
 .../{1e674844.a4e245bc.js => 1e674844.8dbf9065.js} |    2 +-
 assets/js/1f391b9e.6ea5caa2.js                     |    1 -
 assets/js/1f391b9e.a092cc8d.js                     |    1 +
 assets/js/1feb2403.4e915f92.js                     |    1 -
 assets/js/1feb2403.ec896589.js                     |    1 +
 .../{1690d4ca.0b121448.js => 20015c20.8029fe71.js} |    2 +-
 assets/js/20015c20.d22d7d13.js                     |    1 -
 assets/js/20239fe1.60e0c3cd.js                     |    1 -
 assets/js/20239fe1.d1175025.js                     |    1 +
 assets/js/213.b6380c3c.js                          |    1 -
 assets/js/2136.897f2155.js                         |    1 +
 assets/js/2167cd8a.4db4d56a.js                     |    1 +
 assets/js/2167cd8a.ff1b89e9.js                     |    1 -
 .../{2226018b.1a54edc2.js => 2226018b.cf50147f.js} |    2 +-
 assets/js/22646d33.0cde3aca.js                     |    1 +
 assets/js/22646d33.cce3603e.js                     |    1 -
 assets/js/2274c87e.39861345.js                     |    1 -
 assets/js/2274c87e.c402ca91.js                     |    1 +
 assets/js/2297.623c4d31.js                         |    1 +
 assets/js/2297.670dcb85.js                         |    1 -
 assets/js/232a40a0.8d8f4572.js                     |    1 -
 assets/js/232a40a0.ca729e92.js                     |    1 +
 assets/js/2399.9ff2aa72.js                         |    1 +
 assets/js/2399.bf240acb.js                         |    1 -
 .../{23b41ddf.ac0675ae.js => 23b41ddf.2ba0d7ab.js} |    2 +-
 .../{23ef5ba2.fd9161b4.js => 23ef5ba2.d93bbc07.js} |    2 +-
 assets/js/240e4cf3.92f4fb53.js                     |    1 +
 assets/js/240e4cf3.b95cc8b4.js                     |    1 -
 assets/js/242.76473854.js                          |    1 +
 assets/js/242.99495bbd.js                          |    1 -
 .../{244e1e3e.240792f2.js => 244e1e3e.76344fa7.js} |    2 +-
 assets/js/{247.23023bcd.js => 247.e49f4191.js}     |    2 +-
 assets/js/24c0c160.050b44fd.js                     |    1 -
 assets/js/24c0c160.21a3f12e.js                     |    1 +
 assets/js/25afd2e2.93c07ea5.js                     |    1 -
 assets/js/25afd2e2.ed58464c.js                     |    1 +
 assets/js/26ff865c.4998b06f.js                     |    1 +
 assets/js/26ff865c.55643d29.js                     |    1 -
 assets/js/27a3e830.2e5892da.js                     |    1 -
 assets/js/27a3e830.bde1e3d6.js                     |    1 +
 assets/js/27eaee00.8e798526.js                     |    1 -
 assets/js/27eaee00.d53ce8be.js                     |    1 +
 assets/js/{2805.01c27e68.js => 2805.eacfff86.js}   |    2 +-
 assets/js/2817.e8ff31fb.js                         |    2 +
 assets/js/2817.e8ff31fb.js.LICENSE.txt             |    1 +
 assets/js/29382995.51921b4e.js                     |    1 +
 assets/js/29382995.7e1a23b3.js                     |    1 -
 assets/js/2976b9d7.144f4d57.js                     |    1 +
 assets/js/2976b9d7.7fb04f0b.js                     |    1 -
 assets/js/2a5d05ab.0f2ff481.js                     |    1 +
 assets/js/2a5d05ab.c0c43c6e.js                     |    1 -
 .../{2b50ac2e.72a72313.js => 2b50ac2e.8c89dd6e.js} |    2 +-
 assets/js/2b8b7c31.eb4f0f00.js                     |    1 -
 assets/js/2b8b7c31.ff1c9ef8.js                     |    1 +
 assets/js/2bb1043d.dfb6a5c0.js                     |    1 -
 assets/js/2bb1043d.edf8851f.js                     |    1 +
 assets/js/2bf3eb0f.fef97834.js                     |    1 +
 assets/js/2bfc3ba2.1cbe37a6.js                     |    1 +
 .../{411b1f4d.a3b9ddc0.js => 2e13199b.7994972c.js} |    2 +-
 assets/js/2e13199b.9e88ddb0.js                     |    1 -
 .../{2f1b3cda.7226efd2.js => 2f1b3cda.139b40be.js} |    2 +-
 assets/js/2f20b481.44c28c44.js                     |    1 +
 assets/js/2f20b481.515c7275.js                     |    1 -
 .../{2f4a4371.0f8d1f6e.js => 2f4a4371.3d18b5cc.js} |    2 +-
 assets/js/2f9ef3f7.78c3916e.js                     |    1 +
 assets/js/2f9ef3f7.fb3674de.js                     |    1 -
 .../{30169d2e.474b97e6.js => 30169d2e.2d453931.js} |    2 +-
 .../{30e5edbc.1993facb.js => 30e5edbc.1849f23e.js} |    2 +-
 assets/js/31720ebf.51f6a975.js                     |    1 +
 assets/js/31720ebf.b5e3ae15.js                     |    1 -
 assets/js/3231e800.20f01d94.js                     |    1 +
 assets/js/3231e800.4a703817.js                     |    1 -
 assets/js/3395.0d924a9b.js                         |    1 +
 assets/js/3395.a1067eba.js                         |    1 -
 assets/js/3423.e7a27e37.js                         |    1 +
 assets/js/342ee601.6ebdc560.js                     |    1 +
 assets/js/342ee601.d8e7abb9.js                     |    1 -
 assets/js/3499.ea75ea5a.js                         |    1 -
 assets/js/3499.f5cf1ca5.js                         |    1 +
 assets/js/365fa407.9c6da164.js                     |    1 -
 assets/js/365fa407.d72fb734.js                     |    1 +
 .../{36c4b650.30f44324.js => 36c4b650.8532318c.js} |    2 +-
 assets/js/3720.cc3fcb3b.js                         |    2 -
 assets/js/3738cd01.af68ec68.js                     |    1 -
 assets/js/3738cd01.d00600ce.js                     |    1 +
 assets/js/3754812f.083d1930.js                     |    1 -
 assets/js/3754812f.51135d69.js                     |    1 +
 .../{3805407b.bf6509fb.js => 3805407b.8ab1119f.js} |    2 +-
 assets/js/381e9ac9.010d69a2.js                     |    1 -
 assets/js/381e9ac9.915e037b.js                     |    1 +
 assets/js/387ce92f.475c14a9.js                     |    1 -
 assets/js/387ce92f.fcb0210f.js                     |    1 +
 .../{3bc594e4.a979d077.js => 3bc594e4.692206c9.js} |    2 +-
 .../{3bf0c675.27b5863f.js => 3bf0c675.b46ad5c6.js} |    2 +-
 .../{b0bb2cbb.b4a49fd4.js => 3c2bc4b4.2037f6c8.js} |    2 +-
 assets/js/3c2bc4b4.584bf057.js                     |    1 -
 assets/js/3c442c90.4f9ebe3a.js                     |    1 -
 assets/js/3c442c90.d1e31339.js                     |    1 +
 assets/js/3d0b897a.878e5cbb.js                     |    1 -
 assets/js/3d0b897a.986e5c9a.js                     |    1 +
 assets/js/3d9c4f5f.2aac66f7.js                     |    1 -
 assets/js/3d9c4f5f.dbb15888.js                     |    1 +
 .../{3dc9a804.095dacde.js => 3dc9a804.bb96dd3c.js} |    2 +-
 assets/js/3e8e6ffc.deb56e1a.js                     |    1 -
 assets/js/3e8e6ffc.f3c89b37.js                     |    1 +
 assets/js/3ed35b50.38db468b.js                     |    1 +
 assets/js/3ed35b50.8080a8cc.js                     |    1 -
 .../{3ee93997.e0cf032e.js => 3ee93997.00b1c54d.js} |    2 +-
 assets/js/4069.11db9663.js                         |    1 +
 assets/js/4069.882900bf.js                         |    1 -
 assets/js/4105.89d2cf70.js                         |    1 -
 assets/js/4105.a58b0238.js                         |    1 +
 .../{411b1f4d.a3b9ddc0.js => 411b1f4d.9e05997d.js} |    2 +-
 assets/js/4134.281fa639.js                         |    1 +
 assets/js/4134.ed8e2e36.js                         |    1 -
 assets/js/41405d07.49b7aa53.js                     |    1 +
 assets/js/41405d07.91d61942.js                     |    1 -
 .../{41f39de4.30897ac1.js => 41f39de4.5a8ebf52.js} |    2 +-
 .../{41fbfbf4.2d6be21e.js => 41fbfbf4.07884f6a.js} |    2 +-
 assets/js/4257.93416b59.js                         |    1 +
 assets/js/4257.e46ab9a0.js                         |    1 -
 assets/js/42ae6ee1.605a4899.js                     |    1 +
 assets/js/42ae6ee1.8018785b.js                     |    1 -
 assets/js/4387b34e.946e7255.js                     |    1 +
 assets/js/4387b34e.9613267a.js                     |    1 -
 assets/js/442d4e04.0f4ee894.js                     |    1 -
 assets/js/442d4e04.879e62b4.js                     |    1 +
 .../{44d634cf.4a50dbdc.js => 44d634cf.d7f52396.js} |    2 +-
 assets/js/45402cf9.1bd9f390.js                     |    1 -
 assets/js/45402cf9.d34c7e11.js                     |    1 +
 assets/js/454e58f8.8c51b89e.js                     |    1 +
 assets/js/454e58f8.9237e4d2.js                     |    1 -
 assets/js/4572.5bee963a.js                         |    1 +
 assets/js/4572.f8b4ee6f.js                         |    1 -
 .../{0245eb2f.4b1cef16.js => 45f8a29b.2eba308c.js} |    2 +-
 assets/js/45f8a29b.9658d4a5.js                     |    1 -
 assets/js/463f2e7e.44945175.js                     |    1 -
 assets/js/463f2e7e.f63c388a.js                     |    1 +
 assets/js/46ba8745.56128154.js                     |    1 +
 assets/js/46ba8745.8f1f5f87.js                     |    1 -
 assets/js/46d6447b.9ff5f91e.js                     |    1 +
 assets/js/46d6447b.cdfb6ccd.js                     |    1 -
 .../{46e74c02.ab4c2590.js => 46e74c02.ee76d968.js} |    2 +-
 assets/js/4772.5059c229.js                         |    1 +
 assets/js/4772.be3fc2aa.js                         |    1 -
 assets/js/4822f532.5e519021.js                     |    1 -
 assets/js/4822f532.6519a73f.js                     |    1 +
 assets/js/4866.65565641.js                         |    1 +
 assets/js/498c2260.de9c180a.js                     |    1 -
 assets/js/498c2260.dfb83cfc.js                     |    1 +
 .../{499dfd0e.d40249c0.js => 499dfd0e.2dc58ba6.js} |    2 +-
 assets/js/4a30f1bb.19e6de13.js                     |    1 -
 assets/js/4a30f1bb.5b899a51.js                     |    1 +
 assets/js/4af9a438.28f07085.js                     |    1 +
 assets/js/4af9a438.88a4eee4.js                     |    1 -
 .../{b12f4718.d15f5980.js => 4c34b6b8.766aeb89.js} |    2 +-
 assets/js/4c34b6b8.b75bd420.js                     |    1 -
 assets/js/5020.c0c5602c.js                         |    1 -
 assets/js/5057dfce.59769436.js                     |    1 -
 assets/js/5057dfce.c87fe59b.js                     |    1 +
 .../{509497b3.41dc57cd.js => 509497b3.c88bedaf.js} |    2 +-
 .../{50b7b76b.64dedc97.js => 50b7b76b.5becdcec.js} |    2 +-
 .../{50e838e0.1bb76546.js => 50e838e0.0a63f549.js} |    2 +-
 assets/js/51087184.37c74127.js                     |    1 -
 assets/js/51087184.6a981219.js                     |    1 +
 assets/js/515fa0b0.035bcd05.js                     |    1 +
 assets/js/5196.2b6c3c79.js                         |    1 +
 assets/js/5196.d6fb4164.js                         |    1 -
 assets/js/5248.71302abe.js                         |    1 -
 assets/js/5248.a128587f.js                         |    1 +
 .../{529abb5c.83c8263e.js => 529abb5c.fb14e4db.js} |    2 +-
 assets/js/53935ca1.8a08b847.js                     |    1 -
 assets/js/53935ca1.fb0f4e18.js                     |    1 +
 assets/js/53f2c468.82c65e07.js                     |    1 +
 assets/js/53f2c468.b4c061a6.js                     |    1 -
 .../{5401e8ed.0ddf0c18.js => 5401e8ed.b21b11da.js} |    2 +-
 assets/js/5428.14c5a0a9.js                         |    1 +
 assets/js/5428.f9b0fc8c.js                         |    1 -
 .../{54486ab8.acbc5977.js => 54486ab8.10bd684e.js} |    2 +-
 .../{54a6e989.ad26af3a.js => 54a6e989.582631f3.js} |    2 +-
 assets/js/54aa1ffe.58ec7d94.js                     |    1 +
 assets/js/54aa1ffe.9c660892.js                     |    1 -
 assets/js/54c5e9ed.03937b0b.js                     |    1 -
 assets/js/54c5e9ed.d56d135e.js                     |    1 +
 assets/js/5534d427.748578fd.js                     |    1 +
 assets/js/5534d427.7873b7ac.js                     |    1 -
 assets/js/5560.bc465987.js                         | 1837 +++++++++++++++++++
 ...js.LICENSE.txt => 5560.bc465987.js.LICENSE.txt} |    2 +-
 assets/js/5621.e0c5e997.js                         |    1 -
 .../{56d481cb.8b75f29e.js => 56d481cb.3147b732.js} |    2 +-
 assets/js/5964.a78b541c.js                         |    1 +
 assets/js/5964.fd01c50f.js                         |    1 -
 assets/js/5968.90eed6e4.js                         |    1 -
 assets/js/5968.adb2d6de.js                         |    1 +
 assets/js/59ac30c5.f974bcfb.js                     |    1 -
 assets/js/59ac30c5.ff92fcc4.js                     |    1 +
 assets/js/5a23e989.70769601.js                     |    1 +
 .../{5b291976.d7d10c73.js => 5b291976.30e18b6f.js} |    2 +-
 assets/js/5b9a51ee.9cef49c2.js                     |    1 -
 assets/js/5b9a51ee.afa42c96.js                     |    1 +
 .../{5c0f4aef.3ad4f652.js => 5c0f4aef.4ec4c946.js} |    2 +-
 assets/js/5d0c0105.7ef86e2e.js                     |    1 -
 assets/js/5d0c0105.cefedd2a.js                     |    1 +
 .../{5d695bce.41d134dd.js => 5d695bce.cae82461.js} |    2 +-
 assets/js/5e95c892.1f17e302.js                     |    1 -
 assets/js/5e95c892.de85225d.js                     |    1 +
 assets/js/6059.4263ad9e.js                         |    1 +
 assets/js/611b7604.3a68a653.js                     |    1 -
 assets/js/611b7604.6ac55a45.js                     |    1 +
 assets/js/618bf699.5ec62efe.js                     |    1 +
 assets/js/618bf699.6b6009a3.js                     |    1 -
 assets/js/621db11d.09f0a34c.js                     |    1 -
 assets/js/621db11d.79ce902b.js                     |    1 +
 assets/js/631c7b99.a41175d3.js                     |    1 -
 assets/js/631c7b99.c8f18e27.js                     |    1 +
 assets/js/631ed09d.2da28191.js                     |    1 +
 assets/js/631ed09d.f6015c35.js                     |    1 -
 assets/js/638.0c9ba1ea.js                          |    2 +
 ....js.LICENSE.txt => 638.0c9ba1ea.js.LICENSE.txt} |    0
 assets/js/63acdfe1.16792923.js                     |    1 +
 assets/js/63acdfe1.a9a1127b.js                     |    1 -
 assets/js/65584991.934627a0.js                     |    1 -
 assets/js/65584991.a708736b.js                     |    1 +
 .../{65666bd5.a5e3dd50.js => 65666bd5.f4db018d.js} |    2 +-
 assets/js/6656.10603d59.js                         |    1 +
 assets/js/669905aa.0dfb8709.js                     |    1 -
 assets/js/669905aa.2186d0be.js                     |    1 +
 assets/js/66cca625.c8f6ad01.js                     |    1 -
 assets/js/66cca625.d88f4ae1.js                     |    1 +
 .../{6800f374.e75790ed.js => 6800f374.5d7dab76.js} |    2 +-
 assets/js/681051d4.6ac3fc2b.js                     |    1 -
 assets/js/681051d4.f9234fc6.js                     |    1 +
 assets/js/6875c492.3e884a37.js                     |    1 +
 assets/js/6875c492.9e6a2b30.js                     |    1 -
 assets/js/6960f02f.4eb4286c.js                     |    1 +
 assets/js/6960f02f.fa841a5c.js                     |    1 -
 .../{69d9c17e.70ae2450.js => 69d9c17e.796e32f2.js} |    2 +-
 assets/js/69ff657b.12d21024.js                     |    1 +
 assets/js/69ff657b.930deb25.js                     |    1 -
 .../{6a5167c3.81fbafa9.js => 6a5167c3.5b8b69cf.js} |    2 +-
 assets/js/6a947e1d.3f82045b.js                     |    1 -
 assets/js/6a947e1d.56f8445e.js                     |    1 +
 assets/js/6aae132f.28290a08.js                     |    1 +
 assets/js/6aae132f.b3ed7ce1.js                     |    1 -
 assets/js/6c52c7bd.5e01e618.js                     |    1 -
 assets/js/6c52c7bd.878bc944.js                     |    1 +
 .../{6ccc01a2.b66922e8.js => 6ccc01a2.9033e2c6.js} |    2 +-
 .../{6d058473.a44d7b6c.js => 6d058473.f01b1522.js} |    2 +-
 assets/js/6df88df8.4b01d1af.js                     |    1 -
 assets/js/6df88df8.713e1300.js                     |    1 +
 assets/js/6eb3715c.c49ad4cd.js                     |    1 +
 assets/js/6eb3715c.f3f2322e.js                     |    1 -
 assets/js/70051b3d.a34ac991.js                     |    1 +
 assets/js/70051b3d.eff33472.js                     |    1 -
 assets/js/{7080.d5d1edbe.js => 7080.80c6239f.js}   |    2 +-
 .../{70900543.1771c6d0.js => 70900543.8545a45a.js} |    2 +-
 assets/js/714c7e8d.f6f974cb.js                     |    1 -
 assets/js/714c7e8d.f972c26d.js                     |    1 +
 assets/js/719db95c.26fa35eb.js                     |    1 +
 assets/js/719db95c.97482ff3.js                     |    1 -
 assets/js/72f15fed.572cc069.js                     |    1 +
 assets/js/72f15fed.e0fd72fc.js                     |    1 -
 assets/js/7304.b4b40b90.js                         |    1 +
 assets/js/731c9e3c.484df5c5.js                     |    1 +
 assets/js/731c9e3c.d0d4b915.js                     |    1 -
 assets/js/73345e90.5c812e18.js                     |    1 +
 assets/js/73345e90.6aaa72ca.js                     |    1 -
 assets/js/7344.2552418c.js                         |    1 +
 assets/js/7344.6d0370f1.js                         |    1 -
 assets/js/73910b6f.9df1a128.js                     |    1 -
 assets/js/73910b6f.a6a57757.js                     |    1 +
 assets/js/743d3eb5.089d7389.js                     |    1 +
 assets/js/743d3eb5.6b28e7f7.js                     |    1 -
 assets/js/7516.5fab20f8.js                         |    1 -
 assets/js/7516.c070ab16.js                         |    1 +
 assets/js/76510c22.539e6b44.js                     |    1 -
 assets/js/76510c22.66b07c1b.js                     |    1 +
 .../{76666b2c.3e7f9d0d.js => 76666b2c.a04a4d4d.js} |    2 +-
 assets/js/76fd5b4b.62bd63fd.js                     |    1 +
 assets/js/76fd5b4b.82bcf9ff.js                     |    1 -
 assets/js/770.3fa25de4.js                          |    1 +
 assets/js/770.65da5dab.js                          |    1 -
 assets/js/772e6557.36efeb95.js                     |    1 -
 .../{d6e2ca83.692aba9c.js => 772e6557.cc4195ea.js} |    2 +-
 assets/js/7767cf95.0c3cb614.js                     |    1 -
 assets/js/7767cf95.0e1fd885.js                     |    1 +
 .../{788d84e9.4c25d776.js => 788d84e9.9ef1b953.js} |    2 +-
 assets/js/7898e671.c59a1b8e.js                     |    1 -
 assets/js/7898e671.e819843f.js                     |    1 +
 .../{78be7ae3.b4b5803e.js => 78be7ae3.560918c2.js} |    2 +-
 assets/js/7985.72d6dea7.js                         |    1 +
 assets/js/7985.a8128d2b.js                         |    1 -
 assets/js/79f17cff.2dedf374.js                     |    1 -
 assets/js/79f17cff.9b4609a8.js                     |    1 +
 assets/js/7a438d72.0023ded6.js                     |    1 +
 assets/js/7a438d72.91c7fcf4.js                     |    1 -
 .../{7c3cfe74.73f42937.js => 7c3cfe74.9757d212.js} |    2 +-
 assets/js/7e380fdc.596c3494.js                     |    1 +
 assets/js/7e380fdc.d0387780.js                     |    1 -
 assets/js/7e3c7cc2.5026ce8f.js                     |    1 +
 assets/js/7e3c7cc2.86d029ae.js                     |    1 -
 assets/js/7e45b1de.1d40d545.js                     |    1 +
 assets/js/7e45b1de.5885b649.js                     |    1 -
 assets/js/7e5997dd.24f13435.js                     |    1 +
 assets/js/7e5997dd.5775a1fa.js                     |    1 -
 assets/js/7e80867e.144c425f.js                     |    1 +
 assets/js/7e80867e.176fe61a.js                     |    1 -
 assets/js/8019.d6323d0e.js                         |    2 -
 assets/js/8019.d6323d0e.js.LICENSE.txt             |    1 -
 assets/js/8049.5bd14382.js                         |    1 -
 assets/js/8049.b425f5cf.js                         |    1 +
 .../{808bc487.9b8ede3b.js => 808bc487.00f2809e.js} |    2 +-
 assets/js/80bf6005.5caad930.js                     |    1 +
 assets/js/80bf6005.782e6ce8.js                     |    1 -
 assets/js/8152.099ec63b.js                         |    1 +
 assets/js/8152.97a9d83b.js                         |    1 -
 .../{81955bc0.8dccaa38.js => 81955bc0.0a342dc9.js} |    2 +-
 assets/js/{8290.e0052283.js => 8290.5b1ed9ca.js}   |    2 +-
 assets/js/82ae5bdc.a88338b2.js                     |    1 -
 assets/js/82ae5bdc.c88d76d1.js                     |    1 +
 assets/js/82ec3b69.eaf63719.js                     |    1 +
 assets/js/82ec3b69.fdd8bb54.js                     |    1 -
 assets/js/82f6db90.a17732b8.js                     |    1 +
 assets/js/82f6db90.f50a5d09.js                     |    1 -
 assets/js/8355.90615889.js                         |    1 +
 assets/js/8355.9ce5bcac.js                         |    1 -
 .../{83984990.9f2cc4a8.js => 83984990.3b502f8c.js} |    2 +-
 assets/js/84baa2a7.879422fd.js                     |    1 +
 assets/js/84baa2a7.d612030f.js                     |    1 -
 assets/js/84d79bf6.8a392953.js                     |    1 +
 assets/js/84d79bf6.d0724327.js                     |    1 -
 assets/js/8585.0f90ae0e.js                         |    1 +
 assets/js/8585.74cd2c3a.js                         |    1 -
 assets/js/8625323d.5fb0fdb3.js                     |    1 +
 assets/js/8625323d.e2e9347a.js                     |    1 -
 assets/js/86b2f003.b67607f3.js                     |    1 -
 assets/js/86b2f003.bfe82c80.js                     |    1 +
 assets/js/8723e90a.1b33ca41.js                     |    1 -
 assets/js/8723e90a.cd785791.js                     |    1 +
 assets/js/8788.28106b1e.js                         |    1 +
 assets/js/8788.2d7a5d47.js                         |    1 -
 assets/js/878a1394.3292cd91.js                     |    1 +
 assets/js/878a1394.c652cd62.js                     |    1 -
 .../{87d26d74.c57a92b6.js => 87d26d74.1ffbeb76.js} |    2 +-
 .../{88abfa74.4de4fc3f.js => 88abfa74.15d884f4.js} |    2 +-
 assets/js/88ea7684.3dc1c98a.js                     |    1 -
 assets/js/88ea7684.a0d684bc.js                     |    1 +
 assets/js/8970.77bcc1f4.js                         | 1841 -------------------
 assets/js/8a4f6662.a73c1410.js                     |    1 +
 assets/js/8a4f6662.d4e34741.js                     |    1 -
 assets/js/8ab33ed3.61c6dc44.js                     |    1 -
 assets/js/8ab33ed3.63c11d48.js                     |    1 +
 assets/js/8b5c1510.1c240acf.js                     |    1 +
 assets/js/8b5c1510.f01ecbdb.js                     |    1 -
 .../{2bfc3ba2.d9872367.js => 8cd05687.b9e3e1b2.js} |    2 +-
 assets/js/8cd05687.e114a81e.js                     |    1 -
 assets/js/8d773b19.066117a1.js                     |    1 -
 assets/js/8d773b19.07b86d44.js                     |    1 +
 .../{8d95bed9.fd5395d6.js => 8d95bed9.debe9b3a.js} |    2 +-
 assets/js/8df829f0.575484c6.js                     |    1 -
 assets/js/8df829f0.727781b2.js                     |    1 +
 .../{8e8e728d.ff42e6a7.js => 8e8e728d.20ce4335.js} |    2 +-
 .../{8ed8594c.239a2bcf.js => 8ed8594c.da6440b8.js} |    2 +-
 assets/js/8f0b353b.2f74c0d7.js                     |    1 +
 assets/js/8f9a75e1.2c1b4311.js                     |    1 +
 assets/js/8f9a75e1.5d806c3c.js                     |    1 -
 assets/js/8fb33ed2.12350907.js                     |    1 +
 assets/js/8fb33ed2.35f919a0.js                     |    1 -
 assets/js/90d83d50.8c4148ad.js                     |    1 -
 assets/js/90d83d50.dc92f0bf.js                     |    1 +
 assets/js/9146.a37b4d0f.js                         |    1 -
 assets/js/919ea9bb.af3a3d2e.js                     |    1 +
 assets/js/919ea9bb.e46864c8.js                     |    1 -
 .../{91c8b579.6aea0a13.js => 91c8b579.0f5ef025.js} |    2 +-
 assets/js/936dcec6.3e613a53.js                     |    1 -
 assets/js/936dcec6.81a04b4b.js                     |    1 +
 .../{9375d79c.325d378e.js => 9375d79c.dd162c01.js} |    2 +-
 assets/js/9378ac58.c1a9dbd3.js                     |    1 +
 assets/js/9378ac58.f0cdcf65.js                     |    1 -
 .../{938092f1.cda1b6b9.js => 938092f1.8ef6b8b2.js} |    2 +-
 assets/js/94048c89.53b50d00.js                     |    1 +
 assets/js/94048c89.85c20f78.js                     |    1 -
 .../{e81e104f.b808fd84.js => 943b6858.182dd29c.js} |    2 +-
 assets/js/943b6858.a0c7e826.js                     |    1 -
 .../{946377b5.8dec23dd.js => 946377b5.bc6e36b0.js} |    2 +-
 assets/js/94ce4ebc.2a579e49.js                     |    1 +
 assets/js/94ce4ebc.ab1f2808.js                     |    1 -
 assets/js/9574.3bfde53b.js                         |    1 -
 assets/js/9574.ca104de7.js                         |    1 +
 assets/js/95a0ca19.0efd6501.js                     |    1 +
 assets/js/95a0ca19.f24e9366.js                     |    1 -
 .../{95b65fa9.2c200692.js => 95b65fa9.8eced4a9.js} |    2 +-
 assets/js/96415e3b.2581b813.js                     |    1 -
 assets/js/96415e3b.d317fc9a.js                     |    1 +
 assets/js/97.cb7107da.js                           |    1 -
 assets/js/97.fe1fd85e.js                           |    1 +
 assets/js/970b1559.200f4090.js                     |    1 -
 .../{8f0b353b.ba75aa18.js => 970b1559.6f19929b.js} |    2 +-
 assets/js/98560e78.0e822897.js                     |    1 +
 assets/js/98560e78.3307b1e6.js                     |    1 -
 assets/js/98b1a9b2.e17d5053.js                     |    1 -
 assets/js/98b1a9b2.f8d2e1dc.js                     |    1 +
 assets/js/9953.19f56cbf.js                         |    1 +
 assets/js/9953.3ba7f46f.js                         |    1 -
 .../{9ac6da4b.615675ac.js => 9ac6da4b.968a85be.js} |    2 +-
 assets/js/9b493251.3d57b685.js                     |    1 -
 assets/js/9b493251.c94bd64e.js                     |    1 +
 .../{9b7d84bf.dc498459.js => 9b7d84bf.1e03e1b2.js} |    2 +-
 .../{9d099327.ca598239.js => 9d099327.c231ef8a.js} |    2 +-
 .../{9d599195.d4608c3a.js => 9d599195.b528efd1.js} |    2 +-
 assets/js/9e4087bc.2b1f785e.js                     |    1 -
 assets/js/9e4087bc.78483e84.js                     |    1 +
 assets/js/9ee7f0ab.befb2182.js                     |    1 -
 assets/js/9ee7f0ab.f2adde4a.js                     |    1 +
 assets/js/a3a5772d.7d550a4f.js                     |    1 -
 assets/js/a3a5772d.ee187f0e.js                     |    1 +
 assets/js/a6aa9e1f.3f53bf67.js                     |    1 +
 assets/js/a6aa9e1f.8b75f1fa.js                     |    1 -
 .../{a6eedc9e.d03c95e0.js => a6eedc9e.ada4ca84.js} |    2 +-
 assets/js/a7023ec8.62917edf.js                     |    1 +
 assets/js/a7023ec8.fba978ca.js                     |    1 -
 .../{a7bd4aaa.fe44756a.js => a7bd4aaa.2dadbc32.js} |    2 +-
 assets/js/a8029a92.7062e665.js                     |    1 +
 assets/js/a8029a92.818174ce.js                     |    1 -
 assets/js/a82ee170.20f77027.js                     |    1 +
 assets/js/a82ee170.c77e7236.js                     |    1 -
 assets/js/a8e0cd9d.41dd3a34.js                     |    1 -
 assets/js/a8e0cd9d.bac87631.js                     |    1 +
 assets/js/a94703ab.7b0abee7.js                     |    1 +
 assets/js/a94703ab.ab3c56b4.js                     |    1 -
 assets/js/aa0502d1.d94a15ec.js                     |    1 -
 .../{d2065ac6.b78d8eb1.js => aa0502d1.f5a8e677.js} |    2 +-
 assets/js/aa4b0360.ae4b58b0.js                     |    1 -
 assets/js/aa4b0360.e079809b.js                     |    1 +
 assets/js/ab663a41.4749130a.js                     |    1 -
 assets/js/ab663a41.f33ffe7f.js                     |    1 +
 assets/js/aba21aa0.57f9d597.js                     |    1 -
 assets/js/aba21aa0.d201fad2.js                     |    1 +
 .../{addcf824.f36968c4.js => addcf824.9cf1908c.js} |    2 +-
 .../{ade2eb63.777eb51b.js => ade2eb63.d16e97c1.js} |    2 +-
 assets/js/af62464c.a13caf8d.js                     |    1 -
 assets/js/af62464c.a9605e91.js                     |    1 +
 assets/js/afac7829.4917e86c.js                     |    1 +
 assets/js/afac7829.b008981a.js                     |    1 -
 assets/js/b0bb2cbb.0d244b35.js                     |    1 +
 assets/js/b0e63d89.6ddbb2e2.js                     |    1 +
 assets/js/b0e63d89.7f1edfc5.js                     |    1 -
 assets/js/b12f4718.522d1836.js                     |    1 +
 .../{b653693e.f9af5b19.js => b653693e.eb612844.js} |    2 +-
 .../{b6a42cc6.29c24bb8.js => b6a42cc6.a46e3d2d.js} |    2 +-
 assets/js/b6f14700.a4379301.js                     |    1 -
 assets/js/b6f14700.d8c2e34a.js                     |    1 +
 assets/js/b9d80cf6.c0cc8dac.js                     |    1 +
 .../{b9f0e04f.a74de69c.js => b9f0e04f.5c1267e3.js} |    2 +-
 assets/js/ba9659bc.23422fae.js                     |    1 -
 assets/js/ba9659bc.5c492e40.js                     |    1 +
 .../{509497b3.41dc57cd.js => bab62e71.0fae22c1.js} |    2 +-
 assets/js/bab62e71.78883821.js                     |    1 -
 assets/js/bd1120a7.680b9760.js                     |    1 -
 assets/js/bd1120a7.b5fad565.js                     |    1 +
 assets/js/bd2e2d5f.4794ba55.js                     |    1 +
 assets/js/bd2e2d5f.a9804e39.js                     |    1 -
 .../{bd8f7e8d.39943ce5.js => bd8f7e8d.eee7d62d.js} |    2 +-
 assets/js/beb5731e.81d3a996.js                     |    1 +
 assets/js/beb5731e.a4726770.js                     |    1 -
 assets/js/bec8ceef.717a3164.js                     |    1 +
 assets/js/bec8ceef.cad3d5f5.js                     |    1 -
 assets/js/bed8a7d2.998218f1.js                     |    1 +
 assets/js/bed8a7d2.c4a2976b.js                     |    1 -
 .../{c0d7bed2.9a4a2582.js => c0d7bed2.38c31566.js} |    2 +-
 assets/js/c0f48e5d.b9c60353.js                     |    1 -
 assets/js/c0f48e5d.e5192118.js                     |    1 +
 .../{c1812f81.d716ac2a.js => c1812f81.5e73d8f3.js} |    2 +-
 assets/js/c2cbec99.7cafa11a.js                     |    1 -
 assets/js/c2cbec99.f9e0d170.js                     |    1 +
 .../{c4412136.9aa99d37.js => c4412136.29d9a8cf.js} |    2 +-
 assets/js/c481b752.5b1f2ad7.js                     |    1 +
 assets/js/c481b752.b6dd8316.js                     |    1 -
 assets/js/c68bc8f4.71fab21b.js                     |    1 +
 assets/js/c68bc8f4.824dad8d.js                     |    1 -
 assets/js/c82d1dd1.597c166e.js                     |    1 -
 assets/js/c82d1dd1.d110ffff.js                     |    1 +
 .../{c8d5b3a1.01d65f6e.js => c8d5b3a1.8f9a1b6c.js} |    2 +-
 assets/js/c9859f9e.42ea92e3.js                     |    1 +
 assets/js/c9859f9e.e220b844.js                     |    1 -
 assets/js/ca27bb41.737f05c0.js                     |    1 -
 assets/js/ca27bb41.891eee56.js                     |    1 +
 assets/js/cae65f21.1427da5c.js                     |    1 +
 assets/js/cae65f21.d85f8236.js                     |    1 -
 assets/js/ccc49370.3849a144.js                     |    1 -
 assets/js/ccc49370.f8bb331d.js                     |    1 +
 assets/js/ce8b3878.4afd44fd.js                     |    1 +
 assets/js/ce8b3878.d2a7c504.js                     |    1 -
 assets/js/cf65ad0c.6e601151.js                     |    1 +
 assets/js/cf65ad0c.88eb3ee8.js                     |    1 -
 .../{cf957108.447598e2.js => cf957108.e979a556.js} |    2 +-
 assets/js/d03052df.5762b19e.js                     |    1 +
 assets/js/d03052df.f29028d0.js                     |    1 -
 .../{d0e873d5.06545381.js => d0e873d5.70203d5e.js} |    2 +-
 assets/js/d111abda.6693c855.js                     |    1 +
 assets/js/d111abda.950e5da5.js                     |    1 -
 assets/js/d17a3e4e.474f92ea.js                     |    1 -
 assets/js/d17a3e4e.6fcf9fe9.js                     |    1 +
 assets/js/d18ab1cf.1283aad6.js                     |    1 -
 assets/js/d18ab1cf.ed7f3ba7.js                     |    1 +
 assets/js/d1ff5374.651f4214.js                     |    1 -
 assets/js/d1ff5374.f8c1149f.js                     |    1 +
 assets/js/d2065ac6.9aef15d5.js                     |    1 +
 assets/js/d348212d.a6a98157.js                     |    1 -
 assets/js/d348212d.dc42dcd1.js                     |    1 +
 assets/js/d3e15055.31eba9be.js                     |    1 -
 assets/js/d3e15055.925c8f22.js                     |    1 +
 assets/js/d3ebcbf5.48663551.js                     |    1 +
 assets/js/d3ebcbf5.ade4bf2d.js                     |    1 -
 assets/js/d48faded.412dfa1c.js                     |    1 -
 assets/js/d48faded.ca605cfc.js                     |    1 +
 assets/js/d57c0ab0.17e50346.js                     |    1 +
 assets/js/d57c0ab0.c26a71ed.js                     |    1 -
 assets/js/d5ddd997.af25503a.js                     |    1 -
 assets/js/d5ddd997.cabc12d5.js                     |    1 +
 assets/js/d6a5e52c.0fa41dc7.js                     |    1 +
 assets/js/d6a5e52c.812f238c.js                     |    1 -
 assets/js/d6e2ca83.8000145b.js                     |    1 +
 assets/js/d7acb881.222b0ce8.js                     |    1 +
 assets/js/d7acb881.983e3646.js                     |    1 -
 assets/js/d90d5c72.1867cca4.js                     |    1 -
 assets/js/d90d5c72.a86754c0.js                     |    1 +
 assets/js/d9a106fc.13d7e5dc.js                     |    1 -
 assets/js/d9a106fc.8cc853de.js                     |    1 +
 assets/js/da052d43.63f3bac6.js                     |    1 -
 assets/js/da052d43.d296e459.js                     |    1 +
 assets/js/dc08cd11.c6caacfb.js                     |    1 -
 assets/js/dc08cd11.df913288.js                     |    1 +
 .../{dd1f60cc.30e41821.js => dd1f60cc.ca2943e3.js} |    2 +-
 .../{dd893d01.e34220cd.js => dd893d01.525b97d2.js} |    2 +-
 .../{de073251.feb299d6.js => de073251.7bc2df35.js} |    2 +-
 assets/js/de417678.0a111bee.js                     |    1 -
 assets/js/de417678.8c230b17.js                     |    1 +
 assets/js/deb96a9a.5fb8ba14.js                     |    1 -
 assets/js/deb96a9a.fa9ab6d8.js                     |    1 +
 assets/js/e0358804.0a7026da.js                     |    1 +
 assets/js/e0358804.ba5482cc.js                     |    1 -
 .../{e06b8b55.9f46831a.js => e06b8b55.68c59049.js} |    2 +-
 .../{e1145a2a.23634e99.js => e1145a2a.824ea3ca.js} |    2 +-
 assets/js/e239108b.bee295c2.js                     |    1 -
 assets/js/e239108b.e6a8713f.js                     |    1 +
 assets/js/e295e417.97605f26.js                     |    1 -
 assets/js/e295e417.baddc2d5.js                     |    1 +
 .../{b9d80cf6.c59406d2.js => e2b9837d.6f3e7949.js} |    2 +-
 assets/js/e2b9837d.cb3f91f7.js                     |    1 -
 assets/js/e2fcf492.688e7f71.js                     |    1 -
 assets/js/e2fcf492.b809c8c4.js                     |    1 +
 assets/js/e3286e4c.3ef2d547.js                     |    1 +
 assets/js/e3286e4c.f7066b19.js                     |    1 -
 .../{e48625e1.d505ccde.js => e48625e1.a2718a6a.js} |    2 +-
 assets/js/e5f4df02.d02e1b54.js                     |    1 -
 assets/js/e5f4df02.e74722c6.js                     |    1 +
 assets/js/e6da01fb.2006fef6.js                     |    1 +
 assets/js/e6da01fb.3462ce16.js                     |    1 -
 .../{0dbe7c5b.cc2d08f6.js => e6e4a51f.266ab3a9.js} |    2 +-
 assets/js/e6e4a51f.2de388a2.js                     |    1 -
 assets/js/e7b22fe0.16088b21.js                     |    1 +
 assets/js/e7b22fe0.893214a4.js                     |    1 -
 assets/js/e81e104f.9d8ee549.js                     |    1 +
 assets/js/e8cf9e94.dc074021.js                     |    1 +
 assets/js/e8cf9e94.eea03b9a.js                     |    1 -
 assets/js/e9c9d3f1.69ca2154.js                     |    1 -
 assets/js/e9c9d3f1.d95aee73.js                     |    1 +
 assets/js/ea20a34f.7cffe49f.js                     |    1 +
 assets/js/ea20a34f.b0d12d9c.js                     |    1 -
 assets/js/eaf2c6cd.818cbcf7.js                     |    1 +
 assets/js/eaf2c6cd.e71af070.js                     |    1 -
 assets/js/eaf70395.e3ca64e4.js                     |    1 -
 assets/js/eaf70395.f7e0c20c.js                     |    1 +
 assets/js/eb69fbed.7712c38f.js                     |    1 -
 assets/js/eb69fbed.b19d2d76.js                     |    1 +
 .../{ebd3f674.2c02afc6.js => ebd3f674.bd922510.js} |    2 +-
 assets/js/ec14b9e0.1c46b7d5.js                     |    1 +
 assets/js/ec14b9e0.752609ea.js                     |    1 -
 assets/js/ecc9dac5.b556779e.js                     |    1 +
 assets/js/ecc9dac5.b6077f0d.js                     |    1 -
 assets/js/ee3b5e20.acf1bb20.js                     |    1 +
 assets/js/ee3b5e20.d9b532f6.js                     |    1 -
 assets/js/eedc63f3.20940ede.js                     |    1 -
 assets/js/eedc63f3.4e1354e2.js                     |    1 +
 assets/js/ef2fb314.730a3419.js                     |    1 +
 assets/js/ef2fb314.75852a14.js                     |    1 -
 .../{f00d84aa.878ef708.js => f00d84aa.58559959.js} |    2 +-
 assets/js/f17925fe.3b0e0be9.js                     |    1 -
 assets/js/f17925fe.90c387ba.js                     |    1 +
 assets/js/f1ea0f34.176d03ca.js                     |    1 +
 assets/js/f1ea0f34.608feebf.js                     |    1 -
 .../{f2d16fd2.b44078cf.js => f2d16fd2.ce377acf.js} |    2 +-
 .../{f2dc7eb1.87d0b0a4.js => f2dc7eb1.c1f34f2a.js} |    2 +-
 .../{f3839c72.2293def0.js => f3839c72.4bd203b3.js} |    2 +-
 .../{f4148bb5.2961cae0.js => f4148bb5.7e776135.js} |    2 +-
 assets/js/f53d9a64.30cf98b9.js                     |    1 -
 .../{515fa0b0.06a9992c.js => f53d9a64.f3ceecdc.js} |    2 +-
 .../{f60c02b3.142bcfad.js => f60c02b3.63b4a332.js} |    2 +-
 assets/js/f66c7dd6.36d0aac5.js                     |    1 +
 assets/js/f66c7dd6.faff3314.js                     |    1 -
 .../{f69b7e70.94ddc7d9.js => f69b7e70.03a90e14.js} |    2 +-
 .../{2bf3eb0f.609acfc9.js => f76ed8e2.7d333424.js} |    2 +-
 assets/js/f76ed8e2.c023ddfd.js                     |    1 -
 assets/js/f8607e75.2f5af7d0.js                     |    1 -
 .../{e81e104f.b808fd84.js => f8607e75.479d5cf1.js} |    2 +-
 .../{f8dc6c64.e8db2bd8.js => f8dc6c64.efb47c0d.js} |    2 +-
 .../{f904249f.0d3ff470.js => f904249f.b7fa4283.js} |    2 +-
 assets/js/f9472e18.75ccd26c.js                     |    1 +
 assets/js/f9472e18.83fbe371.js                     |    1 -
 assets/js/f989a7a7.8715fdc7.js                     |    1 -
 assets/js/f989a7a7.efdeb475.js                     |    1 +
 assets/js/fb9f683d.7520ed4c.js                     |    1 -
 assets/js/fb9f683d.ff44488e.js                     |    1 +
 .../{fd48ec78.8fc63663.js => fd48ec78.5a22adbc.js} |    2 +-
 assets/js/fd53ff8a.927a8bb6.js                     |    1 +
 assets/js/fd53ff8a.e7c85fc1.js                     |    1 -
 .../{fee80b4b.0a33195f.js => fee80b4b.be3085cf.js} |    2 +-
 assets/js/ff4b5531.970465f5.js                     |    1 -
 assets/js/ff4b5531.97f957d7.js                     |    1 +
 assets/js/ffd58aa9.40930556.js                     |    1 +
 assets/js/ffd58aa9.e4a62b1b.js                     |    1 -
 assets/js/main.1761e1a1.js                         |    2 -
 assets/js/main.b9b94f1e.js                         |    2 +
 ...js.LICENSE.txt => main.b9b94f1e.js.LICENSE.txt} |    0
 assets/js/runtime~main.20f52ad3.js                 |    1 -
 assets/js/runtime~main.d2669836.js                 |    1 +
 .../index.html                                     |   22 +-
 blog/archive/index.html                            |   12 +-
 blog/atom.xml                                      |   30 +-
 blog/authors/index.html                            |   12 +-
 blog/index.html                                    |   16 +-
 blog/introducing-apache-bifromq/index.html         |   36 +-
 blog/rss.xml                                       |   30 +-
 blog/tags/apache/index.html                        |   16 +-
 blog/tags/bifro-mq/index.html                      |   16 +-
 blog/tags/decentralized-cluster/index.html         |   14 +-
 blog/tags/incubator/index.html                     |   14 +-
 blog/tags/index.html                               |   12 +-
 blog/tags/mqtt/index.html                          |   16 +-
 blog/tags/multi-tenant/index.html                  |   14 +-
 blog/tags/release/index.html                       |   14 +-
 blog/tags/serverless/index.html                    |   14 +-
 community/index.html                               |   20 +-
 docs/1.0.x/Readme/index.html                       |   22 +-
 .../best_practices/mqtt_parameters/index.html      |   20 +-
 docs/1.0.x/best_practices/topicfilter/index.html   |   14 +-
 docs/1.0.x/bifromq_inside/index.html               |   20 +-
 docs/1.0.x/category/api-usage/index.html           |   12 +-
 docs/1.0.x/category/best-practices/index.html      |   12 +-
 docs/1.0.x/category/configuration/index.html       |   12 +-
 docs/1.0.x/category/connect-to-bifromq/index.html  |   12 +-
 docs/1.0.x/category/data-integration/index.html    |   12 +-
 docs/1.0.x/category/faq/index.html                 |   12 +-
 docs/1.0.x/category/get-started/index.html         |   12 +-
 docs/1.0.x/category/install--deploy/index.html     |   12 +-
 docs/1.0.x/category/introduction/index.html        |   12 +-
 docs/1.0.x/category/mqtt/index.html                |   12 +-
 docs/1.0.x/category/operations/index.html          |   12 +-
 docs/1.0.x/category/plugin/index.html              |   12 +-
 docs/1.0.x/category/test-report/index.html         |   12 +-
 docs/1.0.x/category/user-guide/index.html          |   12 +-
 .../configuration/configs_introduction/index.html  |   16 +-
 .../configuration/file_configs_manual/index.html   |  120 +-
 .../performance_tuning_linux/index.html            |   22 +-
 docs/1.0.x/deploy/build_from_source/index.html     |   22 +-
 docs/1.0.x/deploy/cluster/index.html               |   16 +-
 docs/1.0.x/deploy/deploy_on_linux_mac/index.html   |   18 +-
 docs/1.0.x/deploy/deploy_on_windows/index.html     |   16 +-
 docs/1.0.x/deploy/deploy_with_docker/index.html    |   18 +-
 docs/1.0.x/faq/bifromq/index.html                  |   26 +-
 docs/1.0.x/faq/mqtt/index.html                     |   22 +-
 docs/1.0.x/get_started/connect_to/index.html       |   22 +-
 docs/1.0.x/get_started/quick_install/index.html    |   20 +-
 docs/1.0.x/intro/features_list/index.html          |   14 +-
 docs/1.0.x/mqtt/mqtt/index.html                    |   14 +-
 docs/1.0.x/operations/high_availability/index.html |   14 +-
 docs/1.0.x/operations/logs_observable/index.html   |   24 +-
 docs/1.0.x/operations/tls/index.html               |   20 +-
 docs/1.0.x/plugin/auth_provider/index.html         |   42 +-
 docs/1.0.x/plugin/event_collector/index.html       |   22 +-
 docs/1.0.x/plugin/plugin/index.html                |   16 +-
 docs/1.0.x/plugin/plugin_practice/index.html       |   28 +-
 docs/1.0.x/plugin/setting_provider/index.html      |   22 +-
 docs/1.0.x/test_report/test_report/index.html      |  286 +--
 docs/1.0.x/user_guide/API/api/index.html           |   14 +-
 docs/1.0.x/user_guide/connect/index.html           |   18 +-
 docs/1.0.x/user_guide/connect/pubsub/index.html    |   16 +-
 .../1.0.x/user_guide/connect/shared_sub/index.html |   16 +-
 .../user_guide/integration/integration/index.html  |   22 +-
 docs/2.0.0/Readme/index.html                       |   22 +-
 .../best_practices/mqtt_parameters/index.html      |   20 +-
 docs/2.0.0/best_practices/topicfilter/index.html   |   14 +-
 docs/2.0.0/bifromq_inside/index.html               |   20 +-
 docs/2.0.0/category/api-usage/index.html           |   12 +-
 docs/2.0.0/category/best-practices/index.html      |   12 +-
 docs/2.0.0/category/configuration/index.html       |   12 +-
 docs/2.0.0/category/connect-to-bifromq/index.html  |   12 +-
 docs/2.0.0/category/data-integration/index.html    |   12 +-
 docs/2.0.0/category/faq/index.html                 |   12 +-
 docs/2.0.0/category/get-started/index.html         |   12 +-
 docs/2.0.0/category/install--deploy/index.html     |   12 +-
 docs/2.0.0/category/introduction/index.html        |   12 +-
 docs/2.0.0/category/mqtt/index.html                |   12 +-
 docs/2.0.0/category/operations/index.html          |   12 +-
 docs/2.0.0/category/plugin/index.html              |   12 +-
 docs/2.0.0/category/test-report/index.html         |   12 +-
 docs/2.0.0/category/user-guide/index.html          |   12 +-
 .../configuration/configs_introduction/index.html  |   16 +-
 .../configuration/file_configs_manual/index.html   |  198 +--
 .../performance_tuning_linux/index.html            |   22 +-
 docs/2.0.0/deploy/build_from_source/index.html     |   22 +-
 docs/2.0.0/deploy/cluster/index.html               |   30 +-
 docs/2.0.0/deploy/deploy_on_linux_mac/index.html   |   18 +-
 docs/2.0.0/deploy/deploy_on_windows/index.html     |   16 +-
 docs/2.0.0/deploy/deploy_with_docker/index.html    |   24 +-
 docs/2.0.0/faq/bifromq/index.html                  |   26 +-
 docs/2.0.0/faq/mqtt/index.html                     |   22 +-
 docs/2.0.0/get_started/connect_to/index.html       |   22 +-
 docs/2.0.0/get_started/quick_install/index.html    |   20 +-
 docs/2.0.0/intro/features_list/index.html          |   14 +-
 docs/2.0.0/mqtt/mqtt/index.html                    |   14 +-
 docs/2.0.0/operations/api_service/index.html       |   14 +-
 docs/2.0.0/operations/high_availability/index.html |   48 +-
 docs/2.0.0/operations/logs_observable/index.html   |   24 +-
 docs/2.0.0/operations/tls/index.html               |   20 +-
 docs/2.0.0/plugin/auth_provider/index.html         |   42 +-
 docs/2.0.0/plugin/event_collector/index.html       |   22 +-
 docs/2.0.0/plugin/plugin/index.html                |   16 +-
 docs/2.0.0/plugin/plugin_practice/index.html       |   28 +-
 docs/2.0.0/plugin/setting_provider/index.html      |   22 +-
 docs/2.0.0/test_report/test_report/index.html      |  140 +-
 docs/2.0.0/user_guide/API/api/index.html           |   62 +-
 docs/2.0.0/user_guide/connect/index.html           |   18 +-
 docs/2.0.0/user_guide/connect/pubsub/index.html    |   16 +-
 .../2.0.0/user_guide/connect/shared_sub/index.html |   16 +-
 .../user_guide/integration/integration/index.html  |   22 +-
 docs/2.1.x/Readme/index.html                       |   22 +-
 .../best_practices/mqtt_parameters/index.html      |   20 +-
 docs/2.1.x/best_practices/topicfilter/index.html   |   14 +-
 docs/2.1.x/bifromq_inside/index.html               |   20 +-
 docs/2.1.x/category/api-usage/index.html           |   12 +-
 docs/2.1.x/category/best-practices/index.html      |   12 +-
 docs/2.1.x/category/configuration/index.html       |   12 +-
 docs/2.1.x/category/connect-to-bifromq/index.html  |   12 +-
 docs/2.1.x/category/data-integration/index.html    |   12 +-
 docs/2.1.x/category/faq/index.html                 |   12 +-
 docs/2.1.x/category/get-started/index.html         |   12 +-
 docs/2.1.x/category/install--deploy/index.html     |   12 +-
 docs/2.1.x/category/introduction/index.html        |   12 +-
 docs/2.1.x/category/mqtt/index.html                |   12 +-
 docs/2.1.x/category/operations/index.html          |   12 +-
 docs/2.1.x/category/plugin/index.html              |   12 +-
 docs/2.1.x/category/test-report/index.html         |   12 +-
 docs/2.1.x/category/user-guide/index.html          |   12 +-
 .../configuration/configs_introduction/index.html  |   16 +-
 docs/2.1.x/configuration/configs_print/index.html  |   30 +-
 .../configuration/file_configs_manual/index.html   |  198 +--
 .../performance_tuning_linux/index.html            |   24 +-
 docs/2.1.x/deploy/build_from_source/index.html     |   22 +-
 docs/2.1.x/deploy/cluster/index.html               |   30 +-
 docs/2.1.x/deploy/deploy_on_linux_mac/index.html   |   18 +-
 docs/2.1.x/deploy/deploy_on_windows/index.html     |   16 +-
 docs/2.1.x/deploy/deploy_with_docker/index.html    |   24 +-
 docs/2.1.x/faq/bifromq/index.html                  |   26 +-
 docs/2.1.x/faq/mqtt/index.html                     |   22 +-
 docs/2.1.x/get_started/connect_to/index.html       |   22 +-
 docs/2.1.x/get_started/quick_install/index.html    |   20 +-
 docs/2.1.x/intro/features_list/index.html          |   14 +-
 docs/2.1.x/mqtt/mqtt/index.html                    |   14 +-
 docs/2.1.x/operations/api_service/index.html       |   14 +-
 docs/2.1.x/operations/high_availability/index.html |   48 +-
 docs/2.1.x/operations/logs_observable/index.html   |   24 +-
 docs/2.1.x/operations/tls/index.html               |   20 +-
 docs/2.1.x/plugin/auth_provider/index.html         |   42 +-
 docs/2.1.x/plugin/event_collector/index.html       |   22 +-
 docs/2.1.x/plugin/plugin/index.html                |   16 +-
 docs/2.1.x/plugin/plugin_practice/index.html       |   28 +-
 docs/2.1.x/plugin/setting_provider/index.html      |   22 +-
 docs/2.1.x/test_report/test_report/index.html      |  140 +-
 docs/2.1.x/user_guide/API/api/index.html           |   62 +-
 docs/2.1.x/user_guide/connect/index.html           |   18 +-
 docs/2.1.x/user_guide/connect/pubsub/index.html    |   16 +-
 .../2.1.x/user_guide/connect/shared_sub/index.html |   16 +-
 .../user_guide/integration/integration/index.html  |   22 +-
 .../configuration/bifromq_sys_props/index.html     |   14 +-
 .../configuration/config_file_manual/index.html    |   22 +-
 .../configuration/configs_print/index.html         |   30 +-
 .../admin_guide/configuration/intro/index.html     |   14 +-
 .../admin_guide/observability/events/index.html    |   22 +-
 .../admin_guide/observability/intro/index.html     |   12 +-
 .../admin_guide/observability/logging/index.html   |   20 +-
 .../observability/metrics/intro/index.html         |   20 +-
 .../observability/metrics/tenantmetrics/index.html |   14 +-
 docs/3.0.x/admin_guide/overview/index.html         |   14 +-
 docs/3.0.x/admin_guide/security/intro/index.html   |   28 +-
 docs/3.0.x/admin_guide/tuning/intro/index.html     |   18 +-
 .../admin_guide/tuning/os_tuning_linux/index.html  |   24 +-
 docs/3.0.x/bifromq_inside/index.html               |   20 +-
 docs/3.0.x/cluster/high_availability/index.html    |   46 +-
 docs/3.0.x/cluster/intro/index.html                |   26 +-
 docs/3.0.x/cluster/standardcluster/index.html      |   32 +-
 docs/3.0.x/get_started/faq/index.html              |   26 +-
 docs/3.0.x/get_started/intro/index.html            |   28 +-
 docs/3.0.x/get_started/quick_install/index.html    |   18 +-
 docs/3.0.x/get_started/quick_verify/index.html     |   20 +-
 .../3.0.x/installation/config_migration/index.html |   14 +-
 docs/3.0.x/installation/docker/index.html          |   22 +-
 .../installation/install_from_source/index.html    |   20 +-
 docs/3.0.x/installation/intro/index.html           |   18 +-
 docs/3.0.x/installation/linux/index.html           |   16 +-
 docs/3.0.x/installation/nodes_on_k8s/index.html    |   22 +-
 docs/3.0.x/installation/windows/index.html         |   16 +-
 .../mqtt_best_practices/about_mqtt/index.html      |   22 +-
 docs/3.0.x/mqtt_best_practices/mqtt/index.html     |   14 +-
 .../mqtt_best_practices/mqtt_parameters/index.html |   20 +-
 .../topicfilter_design/index.html                  |   14 +-
 docs/3.0.x/plugin/auth_provider/index.html         |   62 +-
 docs/3.0.x/plugin/event_collector/index.html       |   24 +-
 docs/3.0.x/plugin/intro/index.html                 |   24 +-
 docs/3.0.x/plugin/plugin_practice/index.html       |   26 +-
 docs/3.0.x/plugin/resource_throttler/index.html    |   28 +-
 .../3.0.x/plugin/setting_provider/intro/index.html |   30 +-
 .../setting_provider/tenantsetting/index.html      |   20 +-
 docs/3.0.x/test_report/report/index.html           |  138 +-
 docs/3.0.x/user_guide/api/api_reference/index.html |   30 +-
 docs/3.0.x/user_guide/api/intro/index.html         |   18 +-
 docs/3.0.x/user_guide/basic/connect/index.html     |   18 +-
 docs/3.0.x/user_guide/basic/intro/index.html       |   14 +-
 docs/3.0.x/user_guide/basic/pubsub/index.html      |   16 +-
 docs/3.0.x/user_guide/basic/shared_sub/index.html  |   16 +-
 .../user_guide/integration/integration/index.html  |   18 +-
 docs/3.0.x/user_guide/integration/intro/index.html |   34 +-
 docs/3.0.x/user_guide/intro/index.html             |   16 +-
 .../configuration/bifromq_sys_props/index.html     |   14 +-
 .../configuration/config_file_manual/index.html    |   22 +-
 .../configuration/configs_print/index.html         |   30 +-
 .../admin_guide/configuration/intro/index.html     |   14 +-
 .../admin_guide/observability/events/index.html    |   22 +-
 .../admin_guide/observability/intro/index.html     |   12 +-
 .../admin_guide/observability/logging/index.html   |   20 +-
 .../observability/metrics/intro/index.html         |   20 +-
 .../observability/metrics/tenantmetrics/index.html |   14 +-
 docs/3.1.x/admin_guide/overview/index.html         |   14 +-
 docs/3.1.x/admin_guide/security/intro/index.html   |   28 +-
 docs/3.1.x/admin_guide/tuning/intro/index.html     |   18 +-
 .../admin_guide/tuning/os_tuning_linux/index.html  |   24 +-
 docs/3.1.x/bifromq_inside/index.html               |   20 +-
 docs/3.1.x/cluster/high_availability/index.html    |   46 +-
 docs/3.1.x/cluster/intro/index.html                |   26 +-
 docs/3.1.x/cluster/standardcluster/index.html      |   32 +-
 docs/3.1.x/get_started/faq/index.html              |   26 +-
 docs/3.1.x/get_started/intro/index.html            |   28 +-
 docs/3.1.x/get_started/quick_install/index.html    |   18 +-
 docs/3.1.x/get_started/quick_verify/index.html     |   20 +-
 .../3.1.x/installation/config_migration/index.html |   14 +-
 docs/3.1.x/installation/docker/index.html          |   22 +-
 .../installation/install_from_source/index.html    |   20 +-
 docs/3.1.x/installation/intro/index.html           |   18 +-
 docs/3.1.x/installation/linux/index.html           |   16 +-
 docs/3.1.x/installation/nodes_on_k8s/index.html    |   22 +-
 docs/3.1.x/installation/windows/index.html         |   16 +-
 .../mqtt_best_practices/about_mqtt/index.html      |   22 +-
 docs/3.1.x/mqtt_best_practices/mqtt/index.html     |   14 +-
 .../mqtt_best_practices/mqtt_parameters/index.html |   20 +-
 .../topicfilter_design/index.html                  |   14 +-
 docs/3.1.x/plugin/auth_provider/index.html         |   62 +-
 docs/3.1.x/plugin/event_collector/index.html       |   24 +-
 docs/3.1.x/plugin/intro/index.html                 |   24 +-
 docs/3.1.x/plugin/plugin_practice/index.html       |   26 +-
 docs/3.1.x/plugin/resource_throttler/index.html    |   28 +-
 .../3.1.x/plugin/setting_provider/intro/index.html |   30 +-
 .../setting_provider/tenantsetting/index.html      |   20 +-
 docs/3.1.x/test_report/report/index.html           |  138 +-
 docs/3.1.x/user_guide/api/api_reference/index.html |   32 +-
 docs/3.1.x/user_guide/api/intro/index.html         |   18 +-
 docs/3.1.x/user_guide/basic/connect/index.html     |   18 +-
 docs/3.1.x/user_guide/basic/intro/index.html       |   14 +-
 docs/3.1.x/user_guide/basic/pubsub/index.html      |   16 +-
 docs/3.1.x/user_guide/basic/shared_sub/index.html  |   16 +-
 .../user_guide/integration/integration/index.html  |   18 +-
 docs/3.1.x/user_guide/integration/intro/index.html |   34 +-
 docs/3.1.x/user_guide/intro/index.html             |   16 +-
 .../configuration/bifromq_sys_props/index.html     |   14 +-
 .../configuration/config_file_manual/index.html    |   22 +-
 .../configuration/configs_print/index.html         |   30 +-
 .../admin_guide/configuration/intro/index.html     |   14 +-
 .../admin_guide/observability/events/index.html    |   22 +-
 .../admin_guide/observability/intro/index.html     |   12 +-
 .../admin_guide/observability/logging/index.html   |   20 +-
 .../observability/metrics/intro/index.html         |   20 +-
 .../observability/metrics/tenantmetrics/index.html |   14 +-
 docs/3.2.x/admin_guide/overview/index.html         |   14 +-
 docs/3.2.x/admin_guide/security/intro/index.html   |   28 +-
 docs/3.2.x/admin_guide/tuning/intro/index.html     |   18 +-
 .../admin_guide/tuning/os_tuning_linux/index.html  |   24 +-
 docs/3.2.x/bifromq_inside/index.html               |   20 +-
 docs/3.2.x/cluster/high_availability/index.html    |   46 +-
 docs/3.2.x/cluster/intro/index.html                |   26 +-
 docs/3.2.x/cluster/standardcluster/index.html      |   32 +-
 docs/3.2.x/get_started/faq/index.html              |   26 +-
 docs/3.2.x/get_started/intro/index.html            |   28 +-
 docs/3.2.x/get_started/quick_install/index.html    |   18 +-
 docs/3.2.x/get_started/quick_verify/index.html     |   20 +-
 .../3.2.x/installation/config_migration/index.html |   14 +-
 docs/3.2.x/installation/docker/index.html          |   22 +-
 .../installation/install_from_source/index.html    |   20 +-
 docs/3.2.x/installation/intro/index.html           |   18 +-
 docs/3.2.x/installation/linux/index.html           |   16 +-
 docs/3.2.x/installation/nodes_on_k8s/index.html    |   22 +-
 docs/3.2.x/installation/windows/index.html         |   16 +-
 .../mqtt_best_practices/about_mqtt/index.html      |   22 +-
 docs/3.2.x/mqtt_best_practices/mqtt/index.html     |   14 +-
 .../mqtt_best_practices/mqtt_parameters/index.html |   20 +-
 .../topicfilter_design/index.html                  |   14 +-
 docs/3.2.x/plugin/auth_provider/index.html         |   62 +-
 docs/3.2.x/plugin/event_collector/index.html       |   24 +-
 docs/3.2.x/plugin/intro/index.html                 |   24 +-
 docs/3.2.x/plugin/plugin_practice/index.html       |   30 +-
 docs/3.2.x/plugin/resource_throttler/index.html    |   28 +-
 .../3.2.x/plugin/setting_provider/intro/index.html |   30 +-
 .../setting_provider/tenantsetting/index.html      |   20 +-
 docs/3.2.x/test_report/report/index.html           |  138 +-
 docs/3.2.x/user_guide/api/api_reference/index.html |   32 +-
 docs/3.2.x/user_guide/api/intro/index.html         |   18 +-
 docs/3.2.x/user_guide/basic/connect/index.html     |   18 +-
 docs/3.2.x/user_guide/basic/intro/index.html       |   14 +-
 docs/3.2.x/user_guide/basic/pubsub/index.html      |   16 +-
 docs/3.2.x/user_guide/basic/shared_sub/index.html  |   16 +-
 .../user_guide/integration/integration/index.html  |   18 +-
 docs/3.2.x/user_guide/integration/intro/index.html |   34 +-
 docs/3.2.x/user_guide/intro/index.html             |   16 +-
 .../configuration/bifromq_sys_props/index.html     |   14 +-
 .../configuration/config_file_manual/index.html    |   22 +-
 .../configuration/configs_print/index.html         |   30 +-
 .../admin_guide/configuration/intro/index.html     |   14 +-
 .../admin_guide/observability/events/index.html    |   22 +-
 .../admin_guide/observability/intro/index.html     |   12 +-
 .../admin_guide/observability/logging/index.html   |   20 +-
 .../observability/metrics/intro/index.html         |   20 +-
 .../observability/metrics/tenantmetrics/index.html |   14 +-
 docs/3.3.x/admin_guide/overview/index.html         |   14 +-
 docs/3.3.x/admin_guide/security/intro/index.html   |   28 +-
 docs/3.3.x/admin_guide/tuning/intro/index.html     |   18 +-
 .../admin_guide/tuning/os_tuning_linux/index.html  |   24 +-
 docs/3.3.x/bifromq_inside/index.html               |   20 +-
 docs/3.3.x/cluster/high_availability/index.html    |   26 +-
 docs/3.3.x/cluster/intro/index.html                |   26 +-
 docs/3.3.x/cluster/standardcluster/index.html      |   30 +-
 docs/3.3.x/cluster/upgrade/index.html              |   32 +-
 docs/3.3.x/get_started/faq/index.html              |   26 +-
 docs/3.3.x/get_started/intro/index.html            |   28 +-
 docs/3.3.x/get_started/quick_install/index.html    |   18 +-
 docs/3.3.x/get_started/quick_verify/index.html     |   20 +-
 .../3.3.x/installation/config_migration/index.html |   14 +-
 docs/3.3.x/installation/docker/index.html          |   22 +-
 .../installation/install_from_source/index.html    |   20 +-
 docs/3.3.x/installation/intro/index.html           |   18 +-
 docs/3.3.x/installation/linux/index.html           |   16 +-
 docs/3.3.x/installation/nodes_on_k8s/index.html    |   22 +-
 docs/3.3.x/installation/windows/index.html         |   16 +-
 .../mqtt_best_practices/about_mqtt/index.html      |   22 +-
 docs/3.3.x/mqtt_best_practices/mqtt/index.html     |   14 +-
 .../mqtt_best_practices/mqtt_parameters/index.html |   20 +-
 .../topicfilter_design/index.html                  |   14 +-
 docs/3.3.x/plugin/auth_provider/index.html         |   62 +-
 docs/3.3.x/plugin/event_collector/index.html       |   24 +-
 docs/3.3.x/plugin/intro/index.html                 |   26 +-
 docs/3.3.x/plugin/plugin_practice/index.html       |   30 +-
 docs/3.3.x/plugin/resource_throttler/index.html    |   28 +-
 .../3.3.x/plugin/setting_provider/intro/index.html |   30 +-
 .../setting_provider/tenantsetting/index.html      |   20 +-
 docs/3.3.x/user_guide/api/api_reference/index.html |   32 +-
 docs/3.3.x/user_guide/api/intro/index.html         |   18 +-
 docs/3.3.x/user_guide/basic/connect/index.html     |   18 +-
 docs/3.3.x/user_guide/basic/intro/index.html       |   14 +-
 docs/3.3.x/user_guide/basic/pubsub/index.html      |   16 +-
 docs/3.3.x/user_guide/basic/shared_sub/index.html  |   16 +-
 .../user_guide/integration/integration/index.html  |   18 +-
 docs/3.3.x/user_guide/integration/intro/index.html |   34 +-
 docs/3.3.x/user_guide/intro/index.html             |   16 +-
 .../configuration/bifromq_sys_props/index.html     |   14 +-
 .../configuration/config_file_manual/index.html    |   40 +-
 .../configuration/configs_print/index.html         |   30 +-
 docs/admin_guide/configuration/intro/index.html    |   14 +-
 docs/admin_guide/observability/events/index.html   |   22 +-
 docs/admin_guide/observability/intro/index.html    |   12 +-
 docs/admin_guide/observability/logging/index.html  |   20 +-
 .../observability/metrics/intro/index.html         |   20 +-
 .../observability/metrics/tenantmetrics/index.html |   14 +-
 docs/admin_guide/overview/index.html               |   14 +-
 docs/admin_guide/security/intro/index.html         |  171 +-
 docs/admin_guide/tuning/intro/index.html           |   18 +-
 docs/admin_guide/tuning/os_tuning_linux/index.html |   24 +-
 docs/benchmark/overview/index.html                 |   12 +-
 docs/cluster/clustering/index.html                 |   62 +-
 docs/cluster/intro/index.html                      |   22 +-
 docs/cluster/loadbalance/apiserver/index.html      |   20 +-
 docs/cluster/loadbalance/intro/index.html          |   20 +-
 docs/cluster/loadbalance/mqttserver/index.html     |   18 +-
 docs/cluster/loadbalance/rpcserver/index.html      |   58 +-
 .../loadbalance/stateful/distworker/index.html     |   16 +-
 .../loadbalance/stateful/inboxstore/index.html     |   16 +-
 docs/cluster/loadbalance/stateful/intro/index.html |   70 +-
 .../loadbalance/stateful/retainstore/index.html    |   16 +-
 docs/cluster/upgrade/index.html                    |   34 +-
 .../code_contribution/index.html                   |   30 +-
 docs/contribution_guide/code_review/index.html     |   34 +-
 .../documentation_contribution/index.html          |   28 +-
 docs/contribution_guide/intro/index.html           |   14 +-
 docs/get_started/faq/index.html                    |   24 +-
 docs/get_started/intro/index.html                  |   26 +-
 docs/get_started/quick_install/index.html          |   22 +-
 docs/get_started/roadmap/index.html                |   18 +-
 .../config_migration_between_versions/index.html   |   14 +-
 docs/installation/docker/index.html                |   30 +-
 docs/installation/install_from_source/index.html   |   20 +-
 docs/installation/intro/index.html                 |   18 +-
 docs/installation/linux/index.html                 |   16 +-
 docs/installation/nodes_on_k8s/index.html          |   20 +-
 docs/installation/windows/index.html               |   16 +-
 docs/plugin/auth_provider/index.html               |   62 +-
 docs/plugin/client_balancer/index.html             |   30 +-
 docs/plugin/event_collector/index.html             |   24 +-
 docs/plugin/intro/index.html                       |   28 +-
 docs/plugin/plugin_practice/index.html             |   30 +-
 docs/plugin/resource_throttler/index.html          |   28 +-
 docs/plugin/setting_provider/intro/index.html      |   30 +-
 .../setting_provider/tenantsetting/index.html      |   20 +-
 docs/spi/intro/index.html                          |   22 +-
 docs/user_guide/api/intro/index.html               |   21 +-
 docs/user_guide/api/openapi/index.html             | 1876 ++++++++++----------
 docs/user_guide/basic/connect/index.html           |   20 +-
 docs/user_guide/basic/intro/index.html             |   14 +-
 docs/user_guide/basic/pubsub/index.html            |   14 +-
 docs/user_guide/basic/shared_sub/index.html        |   16 +-
 docs/user_guide/integration/intro/index.html       |   30 +-
 docs/user_guide/intro/index.html                   |   16 +-
 download/index.html                                |   42 +-
 index.html                                         |   14 +-
 mqtt/index.html                                    |   88 +-
 1136 files changed, 8417 insertions(+), 8283 deletions(-)

diff --git a/404.html b/404.html
index 648b0632..edf2bd6f 100644
--- a/404.html
+++ b/404.html
@@ -2,7 +2,7 @@
 <html lang="en" dir="ltr" class="plugin-native plugin-id-default" data-has-hydrated="false">
 <head>
 <meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.10.1">
+<meta name="generator" content="Docusaurus v3.10.2">
 <title data-rh="true">Page Not Found | An Open Source Apache MQTT Broker | Apache BifroMQ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://bifromq.apache.org/404.html/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="do [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="An Open Source Apache MQTT Broker | Apache BifroMQ (Incubating) Atom Feed">
 
@@ -14,15 +14,15 @@
 
 
 <link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.394f7fe0.css">
-<script src="/assets/js/runtime~main.20f52ad3.js" defer="defer"></script>
-<script src="/assets/js/main.1761e1a1.js" defer="defer"></script>
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.9a02b934.css">
+<script src="/assets/js/runtime~main.d2669836.js" defer="defer"></script>
+<script src="/assets/js/main.b9b94f1e.js" defer="defer"></script>
 </head>
 <body>
 <svg style="display: none;"><defs>
 <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
 </defs></svg>
-<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var [...]
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var [...]
                 <div style="margin-bottom: 1.5rem;">
                   <p style="font-size: 0.9rem; line-height: 1.6; color: var(--color-text-secondary); max-width: 320px; margin-bottom: 2rem;">
                     High-performance Apache MQTT broker with enterprise-grade reliability. Applicable to IoT, IM and other scenarios.
@@ -39,7 +39,7 @@
                     </a>
                   </div>
                 </div>
-              </li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Resources</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/apache/bifromq" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_B8WH"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href [...]
+              </li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Resources</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/apache/bifromq" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_tlLM"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href [...]
         <div style="font-size: 0.8rem; line-height: 1.8; color: var(--color-text-tertiary); text-align: center; border-top: 1px solid var(--color-border); padding-top: 3rem;">
           <p style="margin-bottom: 1.5rem; max-width: 1100px; margin-left: auto; margin-right: auto;">
             Apache BifroMQ is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that [...]
diff --git a/assets/css/styles.394f7fe0.css b/assets/css/styles.394f7fe0.css
deleted file mode 100644
index 3aa8dcda..00000000
--- a/assets/css/styles.394f7fe0.css
+++ /dev/null
@@ -1 +0,0 @@
-@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap);.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm- [...]
\ No newline at end of file
diff --git a/assets/css/styles.9a02b934.css b/assets/css/styles.9a02b934.css
new file mode 100644
index 00000000..3ca5dd28
--- /dev/null
+++ b/assets/css/styles.9a02b934.css
@@ -0,0 +1 @@
+@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap);.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm- [...]
\ No newline at end of file
diff --git a/assets/js/008aa3b7.4b73a983.js b/assets/js/008aa3b7.4b73a983.js
deleted file mode 100644
index b2f2c988..00000000
--- a/assets/js/008aa3b7.4b73a983.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5459],{84547(e,i,o){o.r(i),o.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"Readme","title":"BifroMQ","description":"BifroMQ is a Java-based high-performance, distributed MQTT broker implementation that seamlessly integrates native multi-tenancy","source":"@site/versioned_docs/version-1.0.x/00_Readme.md","sourceDirName":".","s [...]
\ No newline at end of file
diff --git a/assets/js/008aa3b7.e4fdf0c0.js b/assets/js/008aa3b7.e4fdf0c0.js
new file mode 100644
index 00000000..8c0a02e0
--- /dev/null
+++ b/assets/js/008aa3b7.e4fdf0c0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5459],{42271(e,i,o){o.d(i,{R:()=>n,x:()=>a});var s=o(12888);const t={},r=s.createContext(t);function n(e){const i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),s.createElement(r.Provider,{value:i},e.children)}},89292(e,i,o [...]
\ No newline at end of file
diff --git a/assets/js/0094f0d6.43a2ac33.js b/assets/js/0094f0d6.43a2ac33.js
deleted file mode 100644
index 4f98c228..00000000
--- a/assets/js/0094f0d6.43a2ac33.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3208],{39594(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin is designed to provide BifroMQ runtime with the capability to authenticate MQTT client connections and authorize Pub/Sub message topics. The interface for the plugin  [...]
\ No newline at end of file
diff --git a/assets/js/0094f0d6.a4b902a9.js b/assets/js/0094f0d6.a4b902a9.js
new file mode 100644
index 00000000..f3a4887c
--- /dev/null
+++ b/assets/js/0094f0d6.a4b902a9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3208],{42271(e,n,t){t.d(n,{R:()=>s,x:()=>a});var i=t(12888);const o={},r=i.createContext(o);function s(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},61521(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/01a85c17.21aa3a3f.js b/assets/js/01a85c17.21aa3a3f.js
deleted file mode 100644
index 47925d8b..00000000
--- a/assets/js/01a85c17.21aa3a3f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8209],{88673(e,t,a){a.d(t,{in:()=>c,OU:()=>P,Ki:()=>y,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>A});var s=a(12888),n=a(37990),i=a(80379),r=a(11684);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=s.createContext(null);function c({children [...]
\ No newline at end of file
diff --git a/assets/js/01a85c17.8e88366f.js b/assets/js/01a85c17.8e88366f.js
new file mode 100644
index 00000000..1e673eaa
--- /dev/null
+++ b/assets/js/01a85c17.8e88366f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8209],{18108(e,t,a){a.d(t,{A:()=>c});a(12888);var s=a(13526),n=a(81673);const i="tag_S6PQ",r="tagRegular_fgsO",l="tagWithCount_TmWI";var o=a(11684);function c({permalink:e,label:t,count:a,description:c}){return(0,o.jsxs)(n.A,{rel:"tag",href:e,title:c,className:(0,s.A)(i,a?l:r),children:[t,a&&(0,o.jsx)("span",{children:a})]})}},31799(e,t,a){a.d(t,{A:()=>G});var s=a(12888),n=a(13526),i=a(10459),r=a(5241 [...]
\ No newline at end of file
diff --git a/assets/js/0245eb2f.4b1cef16.js b/assets/js/0245eb2f.5faf654d.js
similarity index 92%
copy from assets/js/0245eb2f.4b1cef16.js
copy to assets/js/0245eb2f.5faf654d.js
index 8f96381b..630ce634 100644
--- a/assets/js/0245eb2f.4b1cef16.js
+++ b/assets/js/0245eb2f.5faf654d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4765],{48017(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"user_guide/connect/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1 or 3.1.1.","source":"@site/versioned_docs/version-1.0.x [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4765],{25599(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"user_guide/connect/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1 or 3.1.1.","source":"@site/versioned_docs/version-1.0.x [...]
\ No newline at end of file
diff --git a/assets/js/0284318d.055338e6.js b/assets/js/0284318d.055338e6.js
new file mode 100644
index 00000000..d54a31e5
--- /dev/null
+++ b/assets/js/0284318d.055338e6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[277],{36204(e,n,r){r.r(n),r.d(n,{archiveRoot:()=>x,assets:()=>t,binAsc:()=>$,binPkg:()=>w,binSha:()=>v,closerBase:()=>u,contentTitle:()=>h,default:()=>I,downloadReleaseBase:()=>p,frontMatter:()=>d,keyUrl:()=>j,metadata:()=>a,releaseName:()=>o,releaseNoteUrl:()=>S,releasePath:()=>g,srcAsc:()=>m,srcPkg:()=>f,srcSha:()=>b,toc:()=>M,winZipAsc:()=>k,winZipPkg:()=>y,winZipSha:()=>A});const a=JSON.parse('{"t [...]
\ No newline at end of file
diff --git a/assets/js/0284318d.70d83960.js b/assets/js/0284318d.70d83960.js
deleted file mode 100644
index f6e8f4de..00000000
--- a/assets/js/0284318d.70d83960.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[277],{74135(e,n,r){r.r(n),r.d(n,{archiveRoot:()=>x,assets:()=>t,binAsc:()=>$,binPkg:()=>w,binSha:()=>v,closerBase:()=>u,contentTitle:()=>h,default:()=>I,downloadReleaseBase:()=>p,frontMatter:()=>d,keyUrl:()=>j,metadata:()=>a,releaseName:()=>o,releaseNoteUrl:()=>S,releasePath:()=>g,srcAsc:()=>m,srcPkg:()=>f,srcSha:()=>b,toc:()=>M,winZipAsc:()=>k,winZipPkg:()=>y,winZipSha:()=>A});const a=JSON.parse('{"t [...]
\ No newline at end of file
diff --git a/assets/js/02f0dda7.617d1c15.js b/assets/js/02f0dda7.617d1c15.js
new file mode 100644
index 00000000..712de396
--- /dev/null
+++ b/assets/js/02f0dda7.617d1c15.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2279],{10111(e,n,t){t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var a=t(36810),i=t(11684),o=t(42271);const r={slug:"announcing-apache-bifromq-4-0-0-incubating",title:"Announcing Apache BifroMQ 4.0.0-incubating",authors:["HaoYu"],tags:["Apache","BifroMQ","MQTT","Incubator","Release"]},c="Announcing Apache BifroMQ 4.0.0-incubating: The First R [...]
\ No newline at end of file
diff --git a/assets/js/02f0dda7.fe2c455b.js b/assets/js/02f0dda7.fe2c455b.js
deleted file mode 100644
index 107c3e19..00000000
--- a/assets/js/02f0dda7.fe2c455b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2279],{95565(e,n,t){t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var a=t(36810),i=t(11684),o=t(10506);const r={slug:"announcing-apache-bifromq-4-0-0-incubating",title:"Announcing Apache BifroMQ 4.0.0-incubating",authors:["HaoYu"],tags:["Apache","BifroMQ","MQTT","Incubator","Release"]},c="Announcing Apache BifroMQ 4.0.0-incubating: The First R [...]
\ No newline at end of file
diff --git a/assets/js/035e056b.3146a615.js b/assets/js/035e056b.3146a615.js
new file mode 100644
index 00000000..b1b8ff85
--- /dev/null
+++ b/assets/js/035e056b.3146a615.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[967],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>l});var o=n(12888);const i={},r=o.createContext(i);function s(e){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:t},e.children)}},42541(e,t,n) [...]
\ No newline at end of file
diff --git a/assets/js/035e056b.7f834f57.js b/assets/js/035e056b.7f834f57.js
deleted file mode 100644
index 6d8c5ee7..00000000
--- a/assets/js/035e056b.7f834f57.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[967],{50910(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector plugin is designed to capture a variety of events that occur during the running of BifroMQ. The interface for this plugin is defined in the following Maven module:","so [...]
\ No newline at end of file
diff --git a/assets/js/0390fd0d.3f74a3d6.js b/assets/js/0390fd0d.6255fc85.js
similarity index 94%
rename from assets/js/0390fd0d.3f74a3d6.js
rename to assets/js/0390fd0d.6255fc85.js
index 63e870f3..cff20522 100644
--- a/assets/js/0390fd0d.3f74a3d6.js
+++ b/assets/js/0390fd0d.6255fc85.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8425],{32899(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"mqtt_best_practices/topicfilter_design","title":"Topic Filters Design","description":"Topic Filters in MQTT are a mechanism used for subscribing to topics, allowing clients to receive messages from topics they are interested in. When selecting and desi [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8425],{34564(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"mqtt_best_practices/topicfilter_design","title":"Topic Filters Design","description":"Topic Filters in MQTT are a mechanism used for subscribing to topics, allowing clients to receive messages from topics they are interested in. When selecting and desi [...]
\ No newline at end of file
diff --git a/assets/js/045a1da8.9d1d1970.js b/assets/js/045a1da8.9d1d1970.js
new file mode 100644
index 00000000..75ce5022
--- /dev/null
+++ b/assets/js/045a1da8.9d1d1970.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8633],{42271(e,i,t){t.d(i,{R:()=>o,x:()=>s});var a=t(12888);const n={},r=a.createContext(n);function o(e){const i=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),a.createElement(r.Provider,{value:i},e.children)}},65970(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/045a1da8.ad81c400.js b/assets/js/045a1da8.ad81c400.js
deleted file mode 100644
index e2e3cf07..00000000
--- a/assets/js/045a1da8.ad81c400.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8633],{12350(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"operations/high_availability","title":"High Availability","description":"Overview","source":"@site/versioned_docs/version-2.1.x/07_operations/2_high_availability.md","sourceDirName":"07_operations","slug":"/operations/high_availability","permalink":"/d [...]
\ No newline at end of file
diff --git a/assets/js/04819ec8.12dac336.js b/assets/js/04819ec8.42132094.js
similarity index 98%
rename from assets/js/04819ec8.12dac336.js
rename to assets/js/04819ec8.42132094.js
index 11ccad8c..5761bd97 100644
--- a/assets/js/04819ec8.12dac336.js
+++ b/assets/js/04819ec8.42132094.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5673],{49723(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"plugin/setting_provider/tenantsetting","title":"Tenant-level Settings","description":"Tenant-level settings allow for detailed control of BifroMQ\'s functionality and performance characteristics. Each setting can be adjusted per tenant, enabling custom [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5673],{24633(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"plugin/setting_provider/tenantsetting","title":"Tenant-level Settings","description":"Tenant-level settings allow for detailed control of BifroMQ\'s functionality and performance characteristics. Each setting can be adjusted per tenant, enabling custom [...]
\ No newline at end of file
diff --git a/assets/js/05c84a48.041df031.js b/assets/js/05c84a48.041df031.js
new file mode 100644
index 00000000..c98e6c44
--- /dev/null
+++ b/assets/js/05c84a48.041df031.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5094],{7158(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"admin_guide/configuration/config_file_manual","title":"Config File Manual","description":"The configuration file for BifroMQ is a YAML file located in the conf directory under standalone.yml. This file contains all the configuration parameters for Bifro [...]
\ No newline at end of file
diff --git a/assets/js/05c84a48.18f02a69.js b/assets/js/05c84a48.18f02a69.js
deleted file mode 100644
index be028adf..00000000
--- a/assets/js/05c84a48.18f02a69.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5094],{28869(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"admin_guide/configuration/config_file_manual","title":"Config File Manual","description":"The configuration file for BifroMQ is a YAML file located in the conf directory under standalone.yml. This file contains all the configuration parameters for Bifr [...]
\ No newline at end of file
diff --git a/assets/js/068db3ed.dc028508.js b/assets/js/068db3ed.dc028508.js
new file mode 100644
index 00000000..696258c2
--- /dev/null
+++ b/assets/js/068db3ed.dc028508.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5887],{3400(e,s,n){n.d(s,{A:()=>d});const d=n.p+"assets/images/max-1a8b4523ac617c867b23332b3976c2ff.png"},9976(e,s,n){n.d(s,{A:()=>d});const d=n.p+"assets/images/qps-3b096e62ac3e87a0406aa99ae22d5e6e.png"},13012(e,s,n){n.d(s,{A:()=>d});const d=n.p+"assets/images/mean-799cb93f0dffb5d6045b08b25234d8e7.png"},14689(e,s,n){n.d(s,{A:()=>d});const d=n.p+"assets/images/mean-1d97de9dee48551089ee21bb1f4a2c37.png [...]
\ No newline at end of file
diff --git a/assets/js/068db3ed.f3348105.js b/assets/js/068db3ed.f3348105.js
deleted file mode 100644
index ef058ad6..00000000
--- a/assets/js/068db3ed.f3348105.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5887],{9402(e,s,n){n.r(s),n.d(s,{assets:()=>h,contentTitle:()=>c,default:()=>o,frontMatter:()=>r,metadata:()=>d,toc:()=>l});const d=JSON.parse('{"id":"test_report/test_report","title":"Test Report","description":"Test Objectives","source":"@site/versioned_docs/version-1.0.x/99_test_report/1_test_report.md","sourceDirName":"99_test_report","slug":"/test_report/test_report","permalink":"/docs/1.0.x/test [...]
\ No newline at end of file
diff --git a/assets/js/0792419d.0aecb451.js b/assets/js/0792419d.ff59d18f.js
similarity index 98%
rename from assets/js/0792419d.0aecb451.js
rename to assets/js/0792419d.ff59d18f.js
index b9a5c0ce..2acacb0b 100644
--- a/assets/js/0792419d.0aecb451.js
+++ b/assets/js/0792419d.ff59d18f.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7139],{56861(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7139],{25629(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
diff --git a/assets/js/09d5ecca.09457c3c.js b/assets/js/09d5ecca.09457c3c.js
deleted file mode 100644
index 5d227342..00000000
--- a/assets/js/09d5ecca.09457c3c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9527],{71328(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"plugin/setting_provider/intro","title":"Setting Provider","description":"BifroMQ defines a category of Tenant-level Settings that can be modified at runtime, allowing for dynamic adjustment of BifroMQ\'s service behavior per tenant. The purpose of the  [...]
\ No newline at end of file
diff --git a/assets/js/09d5ecca.bf85b09d.js b/assets/js/09d5ecca.bf85b09d.js
new file mode 100644
index 00000000..9ccf2f8c
--- /dev/null
+++ b/assets/js/09d5ecca.bf85b09d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9527],{42271(e,n,t){t.d(n,{R:()=>o,x:()=>d});var i=t(12888);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},95605(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/0a602f47.9098b3f6.js b/assets/js/0a602f47.2d5dca06.js
similarity index 90%
rename from assets/js/0a602f47.9098b3f6.js
rename to assets/js/0a602f47.2d5dca06.js
index b3f5fd69..34fbac8e 100644
--- a/assets/js/0a602f47.9098b3f6.js
+++ b/assets/js/0a602f47.2d5dca06.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6863],{72247(e,o,n){n.r(o),n.d(o,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>t,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"deploy/deploy_on_windows","title":"Deploy on Windows","description":"* JDK 17+","source":"@site/versioned_docs/version-1.0.x/03_deploy/3_deploy_on_windows.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_windows","permalink":"/docs/1.0.x/deplo [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6863],{33662(e,o,n){n.r(o),n.d(o,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>t,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"deploy/deploy_on_windows","title":"Deploy on Windows","description":"* JDK 17+","source":"@site/versioned_docs/version-1.0.x/03_deploy/3_deploy_on_windows.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_windows","permalink":"/docs/1.0.x/deplo [...]
\ No newline at end of file
diff --git a/assets/js/0b3edb82.d85c8aec.js b/assets/js/0b3edb82.f19945ae.js
similarity index 95%
rename from assets/js/0b3edb82.d85c8aec.js
rename to assets/js/0b3edb82.f19945ae.js
index 86f7f7d8..de6158f0 100644
--- a/assets/js/0b3edb82.d85c8aec.js
+++ b/assets/js/0b3edb82.f19945ae.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3941],{75352(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"cluster/standardcluster","title":"Deploy StandardCluster","description":"Prerequisites","source":"@site/versioned_docs/version-3.2.x/04_cluster/1_standardcluster.md","sourceDirName":"04_cluster","slug":"/cluster/standardcluster","permalink":"/docs/3.2. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3941],{16156(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"cluster/standardcluster","title":"Deploy StandardCluster","description":"Prerequisites","source":"@site/versioned_docs/version-3.2.x/04_cluster/1_standardcluster.md","sourceDirName":"04_cluster","slug":"/cluster/standardcluster","permalink":"/docs/3.2. [...]
\ No newline at end of file
diff --git a/assets/js/0bdb6845.26ccc052.js b/assets/js/0bdb6845.26ccc052.js
new file mode 100644
index 00000000..5a3ee7b0
--- /dev/null
+++ b/assets/js/0bdb6845.26ccc052.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7596],{42271(e,t,r){r.d(t,{R:()=>o,x:()=>l});var s=r(12888);const a={},n=s.createContext(a);function o(e){const t=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(n.Provider,{value:t},e.children)}},92893(e,t,r [...]
\ No newline at end of file
diff --git a/assets/js/0bdb6845.50074c6e.js b/assets/js/0bdb6845.50074c6e.js
deleted file mode 100644
index 4fe07e87..00000000
--- a/assets/js/0bdb6845.50074c6e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7596],{54327(e,t,r){r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>i});const s=JSON.parse('{"id":"cluster/loadbalance/stateful/distworker","title":"Dist Worker","description":"DistWorker handles subscription routing and fan-out (read-heavy). It runs as a stateful service on the base-kv overlay cluster; store_name for API headers: dist.worker.","sou [...]
\ No newline at end of file
diff --git a/assets/js/0c35aec8.4ea7a964.js b/assets/js/0c35aec8.4ea7a964.js
deleted file mode 100644
index 80c6fdaa..00000000
--- a/assets/js/0c35aec8.4ea7a964.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9379],{71439(e,n,i){i.r(n),i.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>x,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"user_guide/api/api_reference","title":"API Reference","description":"API Endpoints","source":"@site/versioned_docs/version-3.0.x/05_user_guide/3_api/1_api_reference.md","sourceDirName":"05_user_guide/3_api","slug":"/user_guide/api/api_reference","perma [...]
\ No newline at end of file
diff --git a/assets/js/0c35aec8.e9daf659.js b/assets/js/0c35aec8.e9daf659.js
new file mode 100644
index 00000000..e024fdf0
--- /dev/null
+++ b/assets/js/0c35aec8.e9daf659.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9379],{42271(e,n,i){i.d(n,{R:()=>l,x:()=>c});var s=i(12888);const r={},d=s.createContext(r);function l(e){const n=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(d.Provider,{value:n},e.children)}},55652(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/0c904ee7.3e8888a4.js b/assets/js/0c904ee7.c7ae2fea.js
similarity index 97%
rename from assets/js/0c904ee7.3e8888a4.js
rename to assets/js/0c904ee7.c7ae2fea.js
index a1d21618..ef830da9 100644
--- a/assets/js/0c904ee7.3e8888a4.js
+++ b/assets/js/0c904ee7.c7ae2fea.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3346],{8122(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"admin_guide/tuning/os_tuning_linux","title":"Linux Kernel Tuning","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/docs/admin_guide/tuning/os_tuning [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3346],{4351(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"admin_guide/tuning/os_tuning_linux","title":"Linux Kernel Tuning","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/docs/admin_guide/tuning/os_tuning [...]
\ No newline at end of file
diff --git a/assets/js/0cdc5203.84259e0b.js b/assets/js/0cdc5203.84259e0b.js
deleted file mode 100644
index cf8c6a39..00000000
--- a/assets/js/0cdc5203.84259e0b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4909],{77186(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/connect/pubsub","title":"Basic Message Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source" [...]
\ No newline at end of file
diff --git a/assets/js/0cdc5203.cbb63ad2.js b/assets/js/0cdc5203.cbb63ad2.js
new file mode 100644
index 00000000..1d5c47f5
--- /dev/null
+++ b/assets/js/0cdc5203.cbb63ad2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4909],{23189(e,s,i){i.d(s,{A:()=>n});const n=i.p+"assets/images/pub-sub-pattern-c57c466994bea5c8298b7020b3d9123f.png"},42271(e,s,i){i.d(s,{R:()=>r,x:()=>o});var n=i(12888);const t={},c=n.createContext(t);function r(e){const s=n.useContext(c);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.component [...]
\ No newline at end of file
diff --git a/assets/js/0d70e742.370e9dc6.js b/assets/js/0d70e742.370e9dc6.js
deleted file mode 100644
index defe1529..00000000
--- a/assets/js/0d70e742.370e9dc6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4760],{95062(e,i,o){o.r(i),o.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"Readme","title":"BifroMQ","description":"BifroMQ is a Java-based high-performance, distributed MQTT broker implementation that seamlessly integrates native multi-tenancy","source":"@site/versioned_docs/version-2.0.0/00_Readme.md","sourceDirName":".","s [...]
\ No newline at end of file
diff --git a/assets/js/0d70e742.9323d24e.js b/assets/js/0d70e742.9323d24e.js
new file mode 100644
index 00000000..2ac75eef
--- /dev/null
+++ b/assets/js/0d70e742.9323d24e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4760],{42271(e,i,o){o.d(i,{R:()=>n,x:()=>a});var s=o(12888);const t={},r=s.createContext(t);function n(e){const i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),s.createElement(r.Provider,{value:i},e.children)}},51624(e,i,o [...]
\ No newline at end of file
diff --git a/assets/js/0d79a91c.7cce6e2d.js b/assets/js/0d79a91c.7cce6e2d.js
deleted file mode 100644
index 349e9726..00000000
--- a/assets/js/0d79a91c.7cce6e2d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7829],{5069(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin enhances BifroMQ by integrating authentication and authorization functionalities for MQTT clients and Pub/Sub operations. The plugin\'s interface is detailed in the fo [...]
\ No newline at end of file
diff --git a/assets/js/0d79a91c.a217978b.js b/assets/js/0d79a91c.a217978b.js
new file mode 100644
index 00000000..38e747a3
--- /dev/null
+++ b/assets/js/0d79a91c.a217978b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7829],{42271(e,n,t){t.d(n,{R:()=>o,x:()=>a});var i=t(12888);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},68755(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/0dbe7c5b.9d602c7c.js b/assets/js/0dbe7c5b.9d602c7c.js
new file mode 100644
index 00000000..f631c1f4
--- /dev/null
+++ b/assets/js/0dbe7c5b.9d602c7c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3147],{4321(e,i,n){n.d(i,{A:()=>t});const t=n.p+"assets/images/API-Arch-dc85a6a27094c8bc230d7786cd3f51b8.png"},42271(e,i,n){n.d(i,{R:()=>r,x:()=>a});var t=n(12888);const s={},o=t.createContext(s);function r(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.comp [...]
\ No newline at end of file
diff --git a/assets/js/0fd44aeb.30a07bb3.js b/assets/js/0fd44aeb.30a07bb3.js
new file mode 100644
index 00000000..243cd0ec
--- /dev/null
+++ b/assets/js/0fd44aeb.30a07bb3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6041],{42271(i,n,e){e.d(n,{R:()=>s,x:()=>a});var t=e(12888);const o={},r=t.createContext(o);function s(i){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof i?i(n):{...n,...i}},[n,i])}function a(i){let n;return n=i.disableParentContext?"function"==typeof i.components?i.components(o):i.components||o:s(i.components),t.createElement(r.Provider,{value:n},i.children)}},56277(i,n,e [...]
\ No newline at end of file
diff --git a/assets/js/0fd44aeb.449a129c.js b/assets/js/0fd44aeb.449a129c.js
deleted file mode 100644
index b8901a09..00000000
--- a/assets/js/0fd44aeb.449a129c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6041],{95247(i,n,e){e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>f,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"configuration/configs_introduction","title":"Overview","description":"BifroMQ\'s system parameters can be configured through configuration file. This section will introduce explain their meanings.","source":"@site/versioned_docs/version-2.1.x/04_config [...]
\ No newline at end of file
diff --git a/assets/js/101f636a.173f8d10.js b/assets/js/101f636a.66747de0.js
similarity index 98%
rename from assets/js/101f636a.173f8d10.js
rename to assets/js/101f636a.66747de0.js
index fbbfdce1..2c1ea63d 100644
--- a/assets/js/101f636a.173f8d10.js
+++ b/assets/js/101f636a.66747de0.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9143],{32721(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin is designed to provide BifroMQ runtime with the capability to authenticate MQTT client connections and authorize Pub/Sub message topics. The interface for the plugin  [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9143],{32411(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin is designed to provide BifroMQ runtime with the capability to authenticate MQTT client connections and authorize Pub/Sub message topics. The interface for the plugin  [...]
\ No newline at end of file
diff --git a/assets/js/104d1c23.7e816983.js b/assets/js/104d1c23.7e816983.js
new file mode 100644
index 00000000..c62323b7
--- /dev/null
+++ b/assets/js/104d1c23.7e816983.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3841],{139(e,s,n){n.d(s,{A:()=>i});const i=n.p+"assets/images/qps-2195399f1e9dd12c6da5c8ce365a0cec.png"},281(e,s,n){n.d(s,{A:()=>i});const i=n.p+"assets/images/cpu-05ede008d2af784a0e676b34eb530ca6.png"},1289(e,s,n){n.d(s,{A:()=>i});const i=n.p+"assets/images/max-b5384dd8204a99011d47007ee9d7306e.png"},2062(e,s,n){n.d(s,{A:()=>i});const i=n.p+"assets/images/cpu-e811d2690b728d2dddd05b7dd8c0d355.png"},245 [...]
\ No newline at end of file
diff --git a/assets/js/104d1c23.bf7667f9.js b/assets/js/104d1c23.bf7667f9.js
deleted file mode 100644
index c1897c49..00000000
--- a/assets/js/104d1c23.bf7667f9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3841],{17116(e,s,n){n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>r,default:()=>o,frontMatter:()=>c,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"test_report/report","title":"Test Report","description":"Test Objectives","source":"@site/versioned_docs/version-3.1.x/99_test_report/1_test_report.md","sourceDirName":"99_test_report","slug":"/test_report/report","permalink":"/docs/3.1.x/test_report/r [...]
\ No newline at end of file
diff --git a/assets/js/1100750e.2c1fff9b.js b/assets/js/1100750e.2c1fff9b.js
deleted file mode 100644
index 30691e6c..00000000
--- a/assets/js/1100750e.2c1fff9b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7408],{90759(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"admin_guide/configuration/config_file_manual","title":"Config File Manual","description":"The configuration file for BifroMQ is a YAML file located in the conf directory under standalone.yml. This file contains all the configuration parameters for Bifr [...]
\ No newline at end of file
diff --git a/assets/js/1100750e.f5684585.js b/assets/js/1100750e.f5684585.js
new file mode 100644
index 00000000..8fbfbc5d
--- /dev/null
+++ b/assets/js/1100750e.f5684585.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7408],{42271(e,t,n){n.d(t,{R:()=>d,x:()=>o});var r=n(12888);const i={},s=r.createContext(i);function d(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),r.createElement(s.Provider,{value:t},e.children)}},59673(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/1126.77ff09ec.js b/assets/js/1126.77ff09ec.js
deleted file mode 100644
index 40dba98b..00000000
--- a/assets/js/1126.77ff09ec.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1126],{80124(t,e,s){s.d(e,{A:()=>r});var i=s(46554),n=s(55385);const r=(t,e)=>i.A.lang.round(n.A.parse(t)[e])},2626(t,e,s){s.d(e,{P:()=>r});var i=s(93316),n=s(37970),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:c,height:l,x:h,y:u}=a(t,e);(0,i.a$)(t,l,c,r);const d=o(h,u,c,l,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),a=(0,n.K2)((t,e)= [...]
\ No newline at end of file
diff --git a/assets/js/1126.c950fbc7.js b/assets/js/1126.c950fbc7.js
new file mode 100644
index 00000000..ad24fa2f
--- /dev/null
+++ b/assets/js/1126.c950fbc7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1126],{2626(t,e,s){s.d(e,{P:()=>r});var i=s(93316),n=s(37970),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:c,height:l,x:h,y:u}=a(t,e);(0,i.a$)(t,l,c,r);const d=o(h,u,c,l,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),a=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x [...]
\ No newline at end of file
diff --git a/assets/js/1188cd16.4f016b4d.js b/assets/js/1188cd16.4f016b4d.js
new file mode 100644
index 00000000..1685a703
--- /dev/null
+++ b/assets/js/1188cd16.4f016b4d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6733],{42271(e,s,i){i.d(s,{R:()=>t,x:()=>a});var o=i(12888);const r={},n=o.createContext(r);function t(e){const s=o.useContext(n);return o.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),o.createElement(n.Provider,{value:s},e.children)}},81406(e,s,i [...]
\ No newline at end of file
diff --git a/assets/js/1188cd16.d1a8cc74.js b/assets/js/1188cd16.d1a8cc74.js
deleted file mode 100644
index 1bed30ac..00000000
--- a/assets/js/1188cd16.d1a8cc74.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6733],{16223(e,s,i){i.r(s),i.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>t,metadata:()=>o,toc:()=>p});const o=JSON.parse('{"id":"operations/api_service","title":"Operations in API service","description":"If you need to perform proxy subscriptions, unsubscriptions, publish messages, disconnect online devices, or manually","source":"@site/versioned_docs/version-2.1.x/07_operations [...]
\ No newline at end of file
diff --git a/assets/js/11b43341.3fc8f2fd.js b/assets/js/11b43341.3fc8f2fd.js
new file mode 100644
index 00000000..1e74d143
--- /dev/null
+++ b/assets/js/11b43341.3fc8f2fd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2256],{15293(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"4.0.0-incubating","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Get Started","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/docs/get_started/quick_install","label":"Quick In [...]
\ No newline at end of file
diff --git a/assets/js/11b43341.589ecc12.js b/assets/js/11b43341.589ecc12.js
deleted file mode 100644
index 7a4288a7..00000000
--- a/assets/js/11b43341.589ecc12.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2256],{15293(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"4.0.0-incubating","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Get Started","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/docs/get_started/quick_install","label":"Quick In [...]
\ No newline at end of file
diff --git a/assets/js/11c63948.7686fc7a.js b/assets/js/11c63948.7686fc7a.js
new file mode 100644
index 00000000..1f1a0299
--- /dev/null
+++ b/assets/js/11c63948.7686fc7a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9458],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>l});var s=i(12888);const t={},o=s.createContext(t);function r(e){const n=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(o.Provider,{value:n},e.children)}},80231(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/11c63948.f198037c.js b/assets/js/11c63948.f198037c.js
deleted file mode 100644
index 176cb256..00000000
--- a/assets/js/11c63948.f198037c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9458],{43054(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/versioned_docs/version-3.3.x/02_installation/3_windows.md","sourceDirName":"02_installation","slug":"/installation/windows","permalink":"/docs/3.3.x/installation/wind [...]
\ No newline at end of file
diff --git a/assets/js/1298.8c40ead3.js b/assets/js/1298.8c40ead3.js
deleted file mode 100644
index 29d6f2e2..00000000
--- a/assets/js/1298.8c40ead3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1298],{2626(t,e,n){n.d(e,{P:()=>o});var i=n(93316),s=n(37970),o=(0,s.K2)((t,e,n,o)=>{t.attr("class",n);const{width:c,height:l,x:h,y:d}=r(t,e);(0,i.a$)(t,l,c,o);const g=a(h,d,c,l,e);t.attr("viewBox",g),s.Rm.debug(`viewBox configured: ${g} with padding: ${e}`)},"setupViewPortForSVG"),r=(0,s.K2)((t,e)=>{const n=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:n.width+2*e,height:n.height+2*e,x [...]
\ No newline at end of file
diff --git a/assets/js/12a97c58.3e082622.js b/assets/js/12a97c58.3e082622.js
new file mode 100644
index 00000000..7abd22db
--- /dev/null
+++ b/assets/js/12a97c58.3e082622.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4749],{42271(e,n,t){t.d(n,{R:()=>r,x:()=>l});var i=t(12888);const s={},d=i.createContext(s);function r(e){const n=i.useContext(d);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(d.Provider,{value:n},e.children)}},64860(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/12a97c58.4d08e285.js b/assets/js/12a97c58.4d08e285.js
deleted file mode 100644
index 7a1683ed..00000000
--- a/assets/js/12a97c58.4d08e285.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4749],{70233(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"plugin/setting_provider/tenantsetting","title":"Tenant-level Settings","description":"Tenant-level settings allow for detailed control of BifroMQ\'s functionality and performance characteristics. Each setting can be adjusted per tenant, enabling custom [...]
\ No newline at end of file
diff --git a/assets/js/14eb3368.0244b26c.js b/assets/js/14eb3368.0244b26c.js
deleted file mode 100644
index 315bba47..00000000
--- a/assets/js/14eb3368.0244b26c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6969],{50726(e,n,t){t.d(n,{A:()=>j});t(12888);var s=t(13526),r=t(40445),i=t(60634),a=t(84115),c=t(59374),o=t(61540),l=t(3713),d=t(11684);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1- [...]
\ No newline at end of file
diff --git a/assets/js/14eb3368.9bd1eeee.js b/assets/js/14eb3368.9bd1eeee.js
new file mode 100644
index 00000000..88a9060f
--- /dev/null
+++ b/assets/js/14eb3368.9bd1eeee.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6969],{18721(e,n,t){t.d(n,{W:()=>l});var s=t(12888),r=t(99461);const i=["zero","one","two","few","many","other"];function a(e){return i.filter(n=>e.includes(n))}const c={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,r.A)();return(0,s.useMemo)(()=>{try{return function(e){const n=new Intl.PluralRules(e);return{locale:e,pluralForms [...]
\ No newline at end of file
diff --git a/assets/js/1528a890.2305ca73.js b/assets/js/1528a890.2305ca73.js
deleted file mode 100644
index e03dffd9..00000000
--- a/assets/js/1528a890.2305ca73.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4579],{60547(n,e,i){i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"admin_guide/tuning/intro","title":"Tuning Overview","description":"Performance tuning in BifroMQ requires starting with adjustments in the running environment and specific optimizations for the workload.","source":"@site/docs/admin_guide/tuning/intro.m [...]
\ No newline at end of file
diff --git a/assets/js/1528a890.ca1f0944.js b/assets/js/1528a890.ca1f0944.js
new file mode 100644
index 00000000..001f963b
--- /dev/null
+++ b/assets/js/1528a890.ca1f0944.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4579],{42271(n,e,i){i.d(e,{R:()=>o,x:()=>a});var t=i(12888);const s={},r=t.createContext(s);function o(n){const e=t.useContext(r);return t.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:o(n.components),t.createElement(r.Provider,{value:e},n.children)}},91163(n,e,i [...]
\ No newline at end of file
diff --git a/assets/js/153f814d.3e2a8702.js b/assets/js/153f814d.3e2a8702.js
deleted file mode 100644
index dc9304ef..00000000
--- a/assets/js/153f814d.3e2a8702.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[31],{45863(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"deploy/cluster","title":"Deploy BifroMQ Cluster","description":"Prerequisites","source":"@site/versioned_docs/version-2.1.x/03_deploy/21_cluster.md","sourceDirName":"03_deploy","slug":"/deploy/cluster","permalink":"/docs/2.1.x/deploy/cluster","draft":fal [...]
\ No newline at end of file
diff --git a/assets/js/30e5edbc.1993facb.js b/assets/js/153f814d.8599deb0.js
similarity index 81%
copy from assets/js/30e5edbc.1993facb.js
copy to assets/js/153f814d.8599deb0.js
index 54a53d88..349bc779 100644
--- a/assets/js/30e5edbc.1993facb.js
+++ b/assets/js/153f814d.8599deb0.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7286],{40203(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"deploy/cluster","title":"Deploy BifroMQ Cluster","description":"Prerequisites","source":"@site/versioned_docs/version-2.0.0/03_deploy/21_cluster.md","sourceDirName":"03_deploy","slug":"/deploy/cluster","permalink":"/docs/2.0.0/deploy/cluster","draft":f [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[31],{42271(e,n,t){t.d(n,{R:()=>r,x:()=>l});var i=t(12888);const o={},s=i.createContext(o);function r(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:n},e.children)}},97994(e,n,t){ [...]
\ No newline at end of file
diff --git a/assets/js/1561fa74.5f06ec0a.js b/assets/js/1561fa74.5f06ec0a.js
new file mode 100644
index 00000000..361777df
--- /dev/null
+++ b/assets/js/1561fa74.5f06ec0a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8148],{68215(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>c,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector plugin is designed to capture a variety of events that occur during the running of BifroMQ. The interface for this plugin is defined in the following Maven module:","s [...]
\ No newline at end of file
diff --git a/assets/js/1561fa74.f7a676e0.js b/assets/js/1561fa74.f7a676e0.js
deleted file mode 100644
index 26f12a48..00000000
--- a/assets/js/1561fa74.f7a676e0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8148],{69(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>c,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector plugin is designed to capture a variety of events that occur during the running of BifroMQ. The interface for this plugin is defined in the following Maven module:","sour [...]
\ No newline at end of file
diff --git a/assets/js/161c9a40.3441bedb.js b/assets/js/161c9a40.3441bedb.js
deleted file mode 100644
index 568a9b95..00000000
--- a/assets/js/161c9a40.3441bedb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9860],{45474(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"installation/intro","title":"Installation Overview","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/02_installation/intro.md","sourceDirName":"02_installation","slug":"/installation/intro","permalink":"/docs/3.1.x/installatio [...]
\ No newline at end of file
diff --git a/assets/js/161c9a40.fd7443d5.js b/assets/js/161c9a40.fd7443d5.js
new file mode 100644
index 00000000..b84303a3
--- /dev/null
+++ b/assets/js/161c9a40.fd7443d5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9860],{9842(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"installation/intro","title":"Installation Overview","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/02_installation/intro.md","sourceDirName":"02_installation","slug":"/installation/intro","permalink":"/docs/3.1.x/installation [...]
\ No newline at end of file
diff --git a/assets/js/1653.9a97f028.js b/assets/js/1653.9a97f028.js
new file mode 100644
index 00000000..c1042568
--- /dev/null
+++ b/assets/js/1653.9a97f028.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1653],{61653(e,t,r){r.d(t,{default:()=>rn});class a{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?e&&e.loc&&t.loc&&e.loc.lexer===t.loc.lexer?new a(e.loc.lexer,e.loc.start,t.loc.end):null:e&&e.loc}}class n{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,th [...]
\ No newline at end of file
diff --git a/assets/js/168873a5.94a37eff.js b/assets/js/168873a5.e375b463.js
similarity index 97%
rename from assets/js/168873a5.94a37eff.js
rename to assets/js/168873a5.e375b463.js
index 295d67ef..ca5f6b47 100644
--- a/assets/js/168873a5.94a37eff.js
+++ b/assets/js/168873a5.e375b463.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1326],{87128(e,n,i){i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>g});const r=JSON.parse('{"id":"plugin/plugin_practice","title":"Plugin Practice and Notice","description":"This article outlines some practices and considerations when developing BifroMQ plugins.","source":"@site/docs/plugin/plugin_practice.mdx","sourceDirName":"plugin","slug":"/plu [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1326],{55619(e,n,i){i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>g});const r=JSON.parse('{"id":"plugin/plugin_practice","title":"Plugin Practice and Notice","description":"This article outlines some practices and considerations when developing BifroMQ plugins.","source":"@site/docs/plugin/plugin_practice.mdx","sourceDirName":"plugin","slug":"/plu [...]
\ No newline at end of file
diff --git a/assets/js/1690d4ca.2c7d5f2f.js b/assets/js/1690d4ca.2c7d5f2f.js
new file mode 100644
index 00000000..5ce912e3
--- /dev/null
+++ b/assets/js/1690d4ca.2c7d5f2f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6941],{42271(e,n,i){i.d(n,{R:()=>a,x:()=>s});var t=i(12888);const o={},r=t.createContext(o);function a(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(r.Provider,{value:n},e.children)}},48364(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/1750e47c.1a1a4929.js b/assets/js/1750e47c.6deb866f.js
similarity index 96%
rename from assets/js/1750e47c.1a1a4929.js
rename to assets/js/1750e47c.6deb866f.js
index 498fdb7d..8571dbd1 100644
--- a/assets/js/1750e47c.1a1a4929.js
+++ b/assets/js/1750e47c.6deb866f.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2349],{67055(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>c,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"configuration/performance_tuning_linux","title":"Performance Tuning (Linux)","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/versioned_docs/versio [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2349],{16499(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>c,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"configuration/performance_tuning_linux","title":"Performance Tuning (Linux)","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/versioned_docs/versio [...]
\ No newline at end of file
diff --git a/assets/js/1786.fe890d43.js b/assets/js/1786.fe890d43.js
deleted file mode 100644
index 62f7708a..00000000
--- a/assets/js/1786.fe890d43.js
+++ /dev/null
@@ -1 +0,0 @@
-(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1786],{81137(e,t,n){"use strict";n.d(t,{A:()=>me});var s=n(12888),r=n(48791),a=n(13526),o=n(46515),c=n(52396);function l(){const{prism:e}=(0,c.p)(),{colorMode:t}=(0,o.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var i=n(40445),u=n(34809),d=n.n(u),m=n(37990),f=n(11684);const p=/title=(?<quote>["'])(?<title>.*?)\1/,h=/\{(?<range>[\d,-]+)\}/,b={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"}, [...]
\ No newline at end of file
diff --git a/assets/js/17896441.35f15612.js b/assets/js/17896441.35f15612.js
deleted file mode 100644
index b77870fc..00000000
--- a/assets/js/17896441.35f15612.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8401],{26807(e,n,t){t.d(n,{A:()=>c});t(12888);var s=t(13526),a=t(40445),i=t(51746),r=t(23449),l=t(11684);function o({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(i.Rc,{}),className:(0,s.A)(e,a.G.common.unlistedBanner),children:(0,l.jsx)(i.Uh,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.AE,{}),(0,l.jsx)(o,{...e})]})}},30361(e,n,t){t.d(n,{A:()=>d});t(12888) [...]
\ No newline at end of file
diff --git a/assets/js/17896441.45e67134.js b/assets/js/17896441.45e67134.js
new file mode 100644
index 00000000..329ac9df
--- /dev/null
+++ b/assets/js/17896441.45e67134.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8401],{18108(e,n,t){t.d(n,{A:()=>c});t(12888);var s=t(13526),a=t(81673);const i="tag_S6PQ",r="tagRegular_fgsO",l="tagWithCount_TmWI";var o=t(11684);function c({permalink:e,label:n,count:t,description:c}){return(0,o.jsxs)(a.A,{rel:"tag",href:e,title:c,className:(0,s.A)(i,t?l:r),children:[n,t&&(0,o.jsx)("span",{children:t})]})}},24524(e,n,t){t.d(n,{A:()=>x});var s=t(12888),a=t(63278);function i(e){const [...]
\ No newline at end of file
diff --git a/assets/js/17e25988.48fc4374.js b/assets/js/17e25988.ed20b880.js
similarity index 95%
rename from assets/js/17e25988.48fc4374.js
rename to assets/js/17e25988.ed20b880.js
index 72f2074b..c9827cd8 100644
--- a/assets/js/17e25988.48fc4374.js
+++ b/assets/js/17e25988.ed20b880.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4724],{95275(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/basic/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions are a feature of the MQTT protocol that enables multiple subscribers to receive messages from the same topic in a fair manner.","source":"@site/version [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4724],{23666(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/basic/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions are a feature of the MQTT protocol that enables multiple subscribers to receive messages from the same topic in a fair manner.","source":"@site/version [...]
\ No newline at end of file
diff --git a/assets/js/18196ed7.b9eba3a0.js b/assets/js/18196ed7.28ce012d.js
similarity index 95%
rename from assets/js/18196ed7.b9eba3a0.js
rename to assets/js/18196ed7.28ce012d.js
index 5d830399..2c7e24ac 100644
--- a/assets/js/18196ed7.b9eba3a0.js
+++ b/assets/js/18196ed7.28ce012d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3986],{26750(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"admin_guide/observability/metrics/intro","title":"Metrics","description":"BifroMQ adopts Micrometer as its framework for metrics collection, analogous to its use of SLF4J and Logback for logging purposes. Micrometer acts as the \\"SLF4J for metrics\\"  [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3986],{40384(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"admin_guide/observability/metrics/intro","title":"Metrics","description":"BifroMQ adopts Micrometer as its framework for metrics collection, analogous to its use of SLF4J and Logback for logging purposes. Micrometer acts as the \\"SLF4J for metrics\\"  [...]
\ No newline at end of file
diff --git a/assets/js/1957f801.07a329d0.js b/assets/js/1957f801.07a329d0.js
new file mode 100644
index 00000000..74a059c1
--- /dev/null
+++ b/assets/js/1957f801.07a329d0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6758],{42271(e,s,r){r.d(s,{R:()=>d,x:()=>c});var t=r(12888);const i={},n=t.createContext(i);function d(e){const s=t.useContext(n);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(n.Provider,{value:s},e.children)}},47499(e,s,r [...]
\ No newline at end of file
diff --git a/assets/js/1957f801.283a2a3f.js b/assets/js/1957f801.283a2a3f.js
deleted file mode 100644
index 6a9f6c2f..00000000
--- a/assets/js/1957f801.283a2a3f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6758],{63666(e,s,r){r.r(s),r.d(s,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"admin_guide/configuration/bifromq_sys_props","title":"System Properties","description":"Before adjusting system properties in BifroMQ, it\'s necessary to have a thorough understanding of its internal mechanisms, as inappropriate modifications can lead  [...]
\ No newline at end of file
diff --git a/assets/js/1a1a09aa.61fbd1dc.js b/assets/js/1a1a09aa.61fbd1dc.js
deleted file mode 100644
index 85129993..00000000
--- a/assets/js/1a1a09aa.61fbd1dc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6436],{50074(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/install_from_source","title":"Install from Source","description":"Prerequisites","source":"@site/versioned_docs/version-3.2.x/02_installation/4_install_from_source.md","sourceDirName":"02_installation","slug":"/installation/install_from_so [...]
\ No newline at end of file
diff --git a/assets/js/1a1a09aa.eb66159a.js b/assets/js/1a1a09aa.eb66159a.js
new file mode 100644
index 00000000..909f6388
--- /dev/null
+++ b/assets/js/1a1a09aa.eb66159a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6436],{42271(e,n,i){i.d(n,{R:()=>s,x:()=>l});var t=i(12888);const o={},r=t.createContext(o);function s(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},89513(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/1adf9eb0.3914f809.js b/assets/js/1adf9eb0.3914f809.js
deleted file mode 100644
index 26c176e3..00000000
--- a/assets/js/1adf9eb0.3914f809.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9667],{43282(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"admin_guide/configuration/intro","title":"Configuration Overview","description":"Based on different usage scenarios, BifroMQ divides configurations into system-level and tenant-level. System-level configurations are set at the system\'s startup and can [...]
\ No newline at end of file
diff --git a/assets/js/1adf9eb0.71853e4f.js b/assets/js/1adf9eb0.71853e4f.js
new file mode 100644
index 00000000..baa57abb
--- /dev/null
+++ b/assets/js/1adf9eb0.71853e4f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9667],{42271(e,i,n){n.d(i,{R:()=>r,x:()=>s});var t=n(12888);const o={},a=t.createContext(o);function r(e){const i=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(a.Provider,{value:i},e.children)}},54022(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/1b3ae139.9bea555e.js b/assets/js/1b3ae139.9bea555e.js
deleted file mode 100644
index 9eb2a4e4..00000000
--- a/assets/js/1b3ae139.9bea555e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8208],{70999(e,s,n){n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>r,default:()=>o,frontMatter:()=>c,metadata:()=>t,toc:()=>h});const t=JSON.parse('{"id":"test_report/test_report","title":"Test Report","description":"Test Objectives","source":"@site/versioned_docs/version-2.1.x/99_test_report/1_test_report.md","sourceDirName":"99_test_report","slug":"/test_report/test_report","permalink":"/docs/2.1.x/tes [...]
\ No newline at end of file
diff --git a/assets/js/1b3ae139.cd80f816.js b/assets/js/1b3ae139.cd80f816.js
new file mode 100644
index 00000000..7dc36e06
--- /dev/null
+++ b/assets/js/1b3ae139.cd80f816.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8208],{1204(e,s,n){n.d(s,{A:()=>t});const t=n.p+"assets/images/qps-e34d2571d2d2a4e8a94929410082a26e.png"},1274(e,s,n){n.d(s,{A:()=>t});const t=n.p+"assets/images/mem-b77c5bc9e2049bed8cb77adde23d99e4.png"},2179(e,s,n){n.d(s,{A:()=>t});const t=n.p+"assets/images/qps-430344da1f7f3b647be42a0323412531.png"},2622(e,s,n){n.d(s,{A:()=>t});const t=n.p+"assets/images/mean-41317098d68d3759dc31bb9c32c452c0.png"}, [...]
\ No newline at end of file
diff --git a/assets/js/5a23e989.52b2182d.js b/assets/js/1bcc9337.609c2cb5.js
similarity index 65%
rename from assets/js/5a23e989.52b2182d.js
rename to assets/js/1bcc9337.609c2cb5.js
index ba723abb..316f3934 100644
--- a/assets/js/5a23e989.52b2182d.js
+++ b/assets/js/1bcc9337.609c2cb5.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2751],{85862(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"user_guide/integration/integration","title":"Data Integration","description":"Basic Concepts","source":"@site/versioned_docs/version-2.0.0/05_user_guide/2_integration/1_integration.md","sourceDirName":"05_user_guide/2_integration","slug":"/user_guide/i [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2542],{4815(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"user_guide/integration/integration","title":"Data Integration","description":"Basic Concepts","source":"@site/versioned_docs/version-1.0.x/05_user_guide/2_integration/1_integration.md","sourceDirName":"05_user_guide/2_integration","slug":"/user_guide/in [...]
\ No newline at end of file
diff --git a/assets/js/1bcc9337.bdb3e297.js b/assets/js/1bcc9337.bdb3e297.js
deleted file mode 100644
index 392cfee7..00000000
--- a/assets/js/1bcc9337.bdb3e297.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2542],{81092(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"user_guide/integration/integration","title":"Data Integration","description":"Basic Concepts","source":"@site/versioned_docs/version-1.0.x/05_user_guide/2_integration/1_integration.md","sourceDirName":"05_user_guide/2_integration","slug":"/user_guide/i [...]
\ No newline at end of file
diff --git a/assets/js/1bee1549.50f16798.js b/assets/js/1bee1549.50f16798.js
deleted file mode 100644
index c655b889..00000000
--- a/assets/js/1bee1549.50f16798.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4795],{5838(e,t,s){s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"mqtt_best_practices/about_mqtt","title":"About MQTT","description":"Why use MQTT protocol for IoT? What are the advantages compared to HTTP protocol?","source":"@site/versioned_docs/version-3.2.x/98_mqtt_best_practices/2_about_mqtt.md","sourceDirName":" [...]
\ No newline at end of file
diff --git a/assets/js/1bee1549.92da4d9f.js b/assets/js/1bee1549.92da4d9f.js
new file mode 100644
index 00000000..f0ae0617
--- /dev/null
+++ b/assets/js/1bee1549.92da4d9f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4795],{42271(e,t,s){s.d(t,{R:()=>r,x:()=>a});var n=s(12888);const o={},i=n.createContext(o);function r(e){const t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},62654(e,t,s [...]
\ No newline at end of file
diff --git a/assets/js/1c77a10c.2d9c1de0.js b/assets/js/1c77a10c.73e975b2.js
similarity index 93%
rename from assets/js/1c77a10c.2d9c1de0.js
rename to assets/js/1c77a10c.73e975b2.js
index 065e655e..8309485a 100644
--- a/assets/js/1c77a10c.2d9c1de0.js
+++ b/assets/js/1c77a10c.73e975b2.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9316],{64700(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/versioned_docs/version-3. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9316],{12954(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/versioned_docs/version-3. [...]
\ No newline at end of file
diff --git a/assets/js/1cb3acca.a93e37d0.js b/assets/js/1cb3acca.a93e37d0.js
new file mode 100644
index 00000000..2ea27a76
--- /dev/null
+++ b/assets/js/1cb3acca.a93e37d0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7406],{42271(e,s,t){t.d(s,{R:()=>i,x:()=>c});var n=t(12888);const r={},d=n.createContext(r);function i(e){const s=n.useContext(d);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(d.Provider,{value:s},e.children)}},66472(e,s,t [...]
\ No newline at end of file
diff --git a/assets/js/1cb3acca.ee786a93.js b/assets/js/1cb3acca.ee786a93.js
deleted file mode 100644
index 6f1a4fce..00000000
--- a/assets/js/1cb3acca.ee786a93.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7406],{79985(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>x,frontMatter:()=>i,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"admin_guide/observability/metrics/tenantmetrics","title":"Tenant-level Metrics","description":"Below is a comprehensive table of BifroMQ\'s tenant metrics, including their MetricName (as recognized within Micrometer), the type of meter used, and a brie [...]
\ No newline at end of file
diff --git a/assets/js/1df93b7f.8c3771df.js b/assets/js/1df93b7f.8c3771df.js
deleted file mode 100644
index a1c2ec4e..00000000
--- a/assets/js/1df93b7f.8c3771df.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4583],{9480(e,s,i){i.d(s,{S:()=>a});const a="4.0.0-incubating"},16695(e,s,i){i.r(s),i.d(s,{default:()=>J});var a=i(12888),t=i(59374),n=i(62482),r=i(9480);const c="main_iUjq",l="reveal_VdDc",o="revealActive_FQBT",d="bifrostDivider_vfhp",h="hero_aEcG",m="heroContent_mKPX",p="heroBadge_Z6oq",x="heroBadgeDot_xPwn",u="heroTitle_qg2I",j="heroDesc_pApI",v="heroCta_uiG7",f="heroCtaPrimary_B3fY",g="heroCtaSeco [...]
\ No newline at end of file
diff --git a/assets/js/1df93b7f.e9069702.js b/assets/js/1df93b7f.e9069702.js
new file mode 100644
index 00000000..6603690b
--- /dev/null
+++ b/assets/js/1df93b7f.e9069702.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4583],{45028(e,s,i){i.d(s,{S:()=>a});const a="4.0.0-incubating"},91609(e,s,i){i.r(s),i.d(s,{default:()=>J});var a=i(12888),t=i(81673),n=i(10459),r=i(45028);const c="main_iUjq",l="reveal_VdDc",o="revealActive_FQBT",d="bifrostDivider_vfhp",h="hero_aEcG",m="heroContent_mKPX",p="heroBadge_Z6oq",x="heroBadgeDot_xPwn",u="heroTitle_qg2I",j="heroDesc_pApI",v="heroCta_uiG7",f="heroCtaPrimary_B3fY",g="heroCtaSe [...]
\ No newline at end of file
diff --git a/assets/js/1e674844.a4e245bc.js b/assets/js/1e674844.8dbf9065.js
similarity index 97%
rename from assets/js/1e674844.a4e245bc.js
rename to assets/js/1e674844.8dbf9065.js
index e1494a06..8742417d 100644
--- a/assets/js/1e674844.a4e245bc.js
+++ b/assets/js/1e674844.8dbf9065.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5228],{46862(e,s,t){t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"faq/mqtt","title":"Utilizing MQTT Protocol","description":"Why use MQTT protocol for IoT? What are the advantages compared to HTTP protocol?","source":"@site/versioned_docs/version-2.1.x/09_faq/2_mqtt.md","sourceDirName":"09_faq","slug":"/faq/mqtt","pe [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5228],{16749(e,s,t){t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"faq/mqtt","title":"Utilizing MQTT Protocol","description":"Why use MQTT protocol for IoT? What are the advantages compared to HTTP protocol?","source":"@site/versioned_docs/version-2.1.x/09_faq/2_mqtt.md","sourceDirName":"09_faq","slug":"/faq/mqtt","pe [...]
\ No newline at end of file
diff --git a/assets/js/1f391b9e.6ea5caa2.js b/assets/js/1f391b9e.6ea5caa2.js
deleted file mode 100644
index 26cc4c62..00000000
--- a/assets/js/1f391b9e.6ea5caa2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6061],{26807(e,n,t){t.d(n,{A:()=>o});t(12888);var i=t(13526),a=t(40445),s=t(51746),r=t(23449),l=t(11684);function c({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(s.Rc,{}),className:(0,i.A)(e,a.G.common.unlistedBanner),children:(0,l.jsx)(s.Uh,{})})}function o(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.AE,{}),(0,l.jsx)(c,{...e})]})}},30361(e,n,t){t.d(n,{A:()=>d});t(12888) [...]
\ No newline at end of file
diff --git a/assets/js/1f391b9e.a092cc8d.js b/assets/js/1f391b9e.a092cc8d.js
new file mode 100644
index 00000000..d4370359
--- /dev/null
+++ b/assets/js/1f391b9e.a092cc8d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6061],{24524(e,n,t){t.d(n,{A:()=>v});var i=t(12888),a=t(63278);function s(e){const n=e.map(e=>({...e,parentIndex:-1,children:[]})),t=Array(7).fill(-1);n.forEach((e,n)=>{const i=t.slice(2,e.level);e.parentIndex=Math.max(...i),t[e.level]=n});const i=[];return n.forEach(e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):i.push(a)}),i}function r({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return  [...]
\ No newline at end of file
diff --git a/assets/js/1feb2403.4e915f92.js b/assets/js/1feb2403.4e915f92.js
deleted file mode 100644
index 79cd7b9f..00000000
--- a/assets/js/1feb2403.4e915f92.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7662],{4581(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"admin_guide/security/intro","title":"Security Overview","description":"Security, a broad and critical aspect of any system, is a key focus for BifroMQ. Recognizing the importance of securing MQTT broker deployments, BifroMQ offers a suite of features de [...]
\ No newline at end of file
diff --git a/assets/js/1feb2403.ec896589.js b/assets/js/1feb2403.ec896589.js
new file mode 100644
index 00000000..dad1eec7
--- /dev/null
+++ b/assets/js/1feb2403.ec896589.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7662],{42271(e,i,n){n.d(i,{R:()=>a,x:()=>s});var t=n(12888);const o={},r=t.createContext(o);function a(e){const i=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(r.Provider,{value:i},e.children)}},45696(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/1690d4ca.0b121448.js b/assets/js/20015c20.8029fe71.js
similarity index 89%
rename from assets/js/1690d4ca.0b121448.js
rename to assets/js/20015c20.8029fe71.js
index cf51e5ac..ece107c7 100644
--- a/assets/js/1690d4ca.0b121448.js
+++ b/assets/js/20015c20.8029fe71.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6941],{29470(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"plugin/plugin_practice","title":"BifroMQ Plugin Practice and Notice","description":"BifroMQ is a powerful messaging system that allows seamless communication between itself and customized services.","source":"@site/versioned_docs/version-2.1.x/06_plugi [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9382],{12728(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"plugin/plugin_practice","title":"BifroMQ Plugin Practice and Notice","description":"BifroMQ is a powerful messaging system that allows seamless communication between itself and customized services.","source":"@site/versioned_docs/version-1.0.x/06_plugi [...]
\ No newline at end of file
diff --git a/assets/js/20015c20.d22d7d13.js b/assets/js/20015c20.d22d7d13.js
deleted file mode 100644
index c8027d32..00000000
--- a/assets/js/20015c20.d22d7d13.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9382],{8(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"plugin/plugin_practice","title":"BifroMQ Plugin Practice and Notice","description":"BifroMQ is a powerful messaging system that allows seamless communication between itself and customized services.","source":"@site/versioned_docs/version-1.0.x/06_plugin/5_ [...]
\ No newline at end of file
diff --git a/assets/js/20239fe1.60e0c3cd.js b/assets/js/20239fe1.60e0c3cd.js
deleted file mode 100644
index 485382ef..00000000
--- a/assets/js/20239fe1.60e0c3cd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5635],{34441(e,i,n){n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>g});const o=JSON.parse('{"id":"admin_guide/observability/logging","title":"Logging","description":"BifroMQ utilizes the standard SLF4J interface for logging purposes and selects Logback as its logging backend. The logs are organized into five distinct levels: TRACE, DEBUG, INFO, WAR [...]
\ No newline at end of file
diff --git a/assets/js/20239fe1.d1175025.js b/assets/js/20239fe1.d1175025.js
new file mode 100644
index 00000000..8c5dddd1
--- /dev/null
+++ b/assets/js/20239fe1.d1175025.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5635],{42271(e,i,n){n.d(i,{R:()=>l,x:()=>r});var o=n(12888);const t={},s=o.createContext(t);function l(e){const i=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),o.createElement(s.Provider,{value:i},e.children)}},80485(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/213.b6380c3c.js b/assets/js/213.b6380c3c.js
deleted file mode 100644
index 51248ab2..00000000
--- a/assets/js/213.b6380c3c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[213],{70213(e,t,r){r.d(t,{default:()=>qn});class a extends Error{constructor(e,t){var r,n,i="KaTeX parse error: "+e,o=t&&t.loc;if(o&&o.start<=o.end){var s=o.lexer.input;r=o.start,n=o.end,r===s.length?i+=" at end of input: ":i+=" at position "+(r+1)+": ";var l=s.slice(r,n).replace(/[^]/g,"$&\u0332");i+=(r>15?"\u2026"+s.slice(r-15,r):s.slice(0,r))+l+(n+15<s.length?s.slice(n,n+15)+"\u2026":s.slice(n))}su [...]
\ No newline at end of file
diff --git a/assets/js/2136.897f2155.js b/assets/js/2136.897f2155.js
new file mode 100644
index 00000000..0ce0e4e9
--- /dev/null
+++ b/assets/js/2136.897f2155.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2136],{2136(e,t,i){i.r(t),i.d(t,{default:()=>h});i(12888);var n=i(43978),o=i(29364),s=i(10459),r=i(82974),a=i(11684);function h(){const e=(0,n.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.be,{title:e}),(0,a.jsx)(s.A,{children:(0,a.jsx)(r.A,{})})]})}},82974(e,t,i){i.d(t,{A:()=>a});i(12888);var n=i(13526),o=i(43978),s=i(69714),r=i(11684);fun [...]
\ No newline at end of file
diff --git a/assets/js/2167cd8a.4db4d56a.js b/assets/js/2167cd8a.4db4d56a.js
new file mode 100644
index 00000000..c8d40547
--- /dev/null
+++ b/assets/js/2167cd8a.4db4d56a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6829],{7321(t,e,s){s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"mqtt_best_practices/mqtt","title":"Supported Specifications","description":"For reference, BifroMQ fully supports the following MQTT specifications:","source":"@site/versioned_docs/version-3.2.x/98_mqtt_best_practices/1_spec.md","sourceDirName":"98_mqtt [...]
\ No newline at end of file
diff --git a/assets/js/2167cd8a.ff1b89e9.js b/assets/js/2167cd8a.ff1b89e9.js
deleted file mode 100644
index 4f1f3fff..00000000
--- a/assets/js/2167cd8a.ff1b89e9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6829],{38742(t,e,s){s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"mqtt_best_practices/mqtt","title":"Supported Specifications","description":"For reference, BifroMQ fully supports the following MQTT specifications:","source":"@site/versioned_docs/version-3.2.x/98_mqtt_best_practices/1_spec.md","sourceDirName":"98_mqt [...]
\ No newline at end of file
diff --git a/assets/js/2226018b.1a54edc2.js b/assets/js/2226018b.cf50147f.js
similarity index 89%
rename from assets/js/2226018b.1a54edc2.js
rename to assets/js/2226018b.cf50147f.js
index ce061d40..6b00c985 100644
--- a/assets/js/2226018b.1a54edc2.js
+++ b/assets/js/2226018b.cf50147f.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7472],{80491(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/connect/pubsub","title":"Basic Message Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source" [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7472],{23231(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/connect/pubsub","title":"Basic Message Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source" [...]
\ No newline at end of file
diff --git a/assets/js/22646d33.0cde3aca.js b/assets/js/22646d33.0cde3aca.js
new file mode 100644
index 00000000..4669106e
--- /dev/null
+++ b/assets/js/22646d33.0cde3aca.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3193],{42271(e,i,t){t.d(i,{R:()=>a,x:()=>r});var n=t(12888);const o={},s=n.createContext(o);function a(e){const i=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(s.Provider,{value:i},e.children)}},77214(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/22646d33.cce3603e.js b/assets/js/22646d33.cce3603e.js
deleted file mode 100644
index 88db7cbb..00000000
--- a/assets/js/22646d33.cce3603e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3193],{51378(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/intro","title":"Observability Overview","description":"In the administration of BifroMQ, ensuring comprehensive system observability stands as a foundational element for conducting effective system operations and maintenance a [...]
\ No newline at end of file
diff --git a/assets/js/2274c87e.39861345.js b/assets/js/2274c87e.39861345.js
deleted file mode 100644
index 1cb84070..00000000
--- a/assets/js/2274c87e.39861345.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7259],{36504(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"plugin/setting_provider/tenantsetting","title":"Tenant-level Settings","description":"Tenant-level settings allow for detailed control of BifroMQ\'s functionality and performance characteristics. Each setting can be adjusted per tenant, enabling custom [...]
\ No newline at end of file
diff --git a/assets/js/2274c87e.c402ca91.js b/assets/js/2274c87e.c402ca91.js
new file mode 100644
index 00000000..bd26fb47
--- /dev/null
+++ b/assets/js/2274c87e.c402ca91.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7259],{42271(e,n,t){t.d(n,{R:()=>r,x:()=>l});var i=t(12888);const s={},d=i.createContext(s);function r(e){const n=i.useContext(d);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(d.Provider,{value:n},e.children)}},74073(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/2297.623c4d31.js b/assets/js/2297.623c4d31.js
new file mode 100644
index 00000000..20b9b8d7
--- /dev/null
+++ b/assets/js/2297.623c4d31.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2297],{12297(t,e,a){a.d(e,{diagram:()=>z});var r=a(45717),n=a(85796),i=a(69808),s=a(93316),o=a(37970),l=a(99953),c={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},d={axes:[],curves:[],options:c},g=structuredClone(d),u=s.UI.radar,h=(0,o.K2)(()=>(0,i.$t)({...u,...(0,s.zj)().radar}),"getConfig"),p=(0,o.K2)(()=>g.axes,"getAxes"),x=(0,o.K2)(()=>g.curves,"getCurves"),m=(0,o.K2)(()=>g.options,"getO [...]
\ No newline at end of file
diff --git a/assets/js/2297.670dcb85.js b/assets/js/2297.670dcb85.js
deleted file mode 100644
index 7ce198be..00000000
--- a/assets/js/2297.670dcb85.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2297],{85796(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(37970).K2)(r,"populateCommonDb")},12297(t,e,a){a.d(e,{diagram:()=>z});var r=a(45717),n=a(85796),i=a(69808),s=a(93316),o=a(37970),l=a(99953),c={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},d={axes:[],curves:[],o [...]
\ No newline at end of file
diff --git a/assets/js/232a40a0.8d8f4572.js b/assets/js/232a40a0.8d8f4572.js
deleted file mode 100644
index f4d02207..00000000
--- a/assets/js/232a40a0.8d8f4572.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2426],{10433(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"contribution_guide/code_contribution","title":"Code Contribution","description":"Contribute Code to Apache BifroMQ (Incubating)","source":"@site/docs/contribution_guide/code_contribution.md","sourceDirName":"contribution_guide","slug":"/contribution_gu [...]
\ No newline at end of file
diff --git a/assets/js/232a40a0.ca729e92.js b/assets/js/232a40a0.ca729e92.js
new file mode 100644
index 00000000..8bf42b5f
--- /dev/null
+++ b/assets/js/232a40a0.ca729e92.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2426],{42271(e,n,i){i.d(n,{R:()=>s,x:()=>c});var o=i(12888);const r={},t=o.createContext(r);function s(e){const n=o.useContext(t);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(t.Provider,{value:n},e.children)}},71152(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/2399.9ff2aa72.js b/assets/js/2399.9ff2aa72.js
new file mode 100644
index 00000000..c42feb74
--- /dev/null
+++ b/assets/js/2399.9ff2aa72.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2399],{1836(t,e,n){n.d(e,{A:()=>H});var r=n(17464),o=n(40652);const i=function(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1};var s=n(12801);const c=function(t,e,n,r,c,u){var a=1&n,h=t.length,f=e.length;if(h!=f&&!(a&&f>h))return!1;var l=u.get(t),d=u.get(e);if(l&&d)return l==e&&d==t;var A=-1,v=!0,p=2&n?new o.A:void 0;for(u.set(t,e),u.set(e,t);++A<h;){var _=t[A],b=e[A];i [...]
\ No newline at end of file
diff --git a/assets/js/2399.bf240acb.js b/assets/js/2399.bf240acb.js
deleted file mode 100644
index bd3e97e9..00000000
--- a/assets/js/2399.bf240acb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2399],{70092(t,e,n){n.d(e,{T:()=>I});var r=n(28076),o=n(28132),i=n(86699),s=n(90356),c=n(1929),u=n(47913),a=n(97388),h=n(95635),f=n(92908),l=n(29118),d=n(93941),A=n(64672),v=Object.prototype.hasOwnProperty;const p=function(t){if(null==t)return!0;if((0,f.A)(t)&&((0,h.A)(t)||"string"==typeof t||"function"==typeof t.splice||(0,l.A)(t)||(0,A.A)(t)||(0,a.A)(t)))return!t.length;var e=(0,u.A)(t);if("[object  [...]
\ No newline at end of file
diff --git a/assets/js/23b41ddf.ac0675ae.js b/assets/js/23b41ddf.2ba0d7ab.js
similarity index 95%
rename from assets/js/23b41ddf.ac0675ae.js
rename to assets/js/23b41ddf.2ba0d7ab.js
index 88364c6f..89444f16 100644
--- a/assets/js/23b41ddf.ac0675ae.js
+++ b/assets/js/23b41ddf.2ba0d7ab.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8697],{40248(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/nodes_on_k8s","title":"Notes on Kubernetes Deployment","description":"Deploying BifroMQ on Kubernetes requires careful consideration of its stateful service characteristics and understanding of Kubernetes-specific cluster operations and ma [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8697],{33788(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/nodes_on_k8s","title":"Notes on Kubernetes Deployment","description":"Deploying BifroMQ on Kubernetes requires careful consideration of its stateful service characteristics and understanding of Kubernetes-specific cluster operations and ma [...]
\ No newline at end of file
diff --git a/assets/js/23ef5ba2.fd9161b4.js b/assets/js/23ef5ba2.d93bbc07.js
similarity index 93%
rename from assets/js/23ef5ba2.fd9161b4.js
rename to assets/js/23ef5ba2.d93bbc07.js
index 1e7025f5..8c6fc626 100644
--- a/assets/js/23ef5ba2.fd9161b4.js
+++ b/assets/js/23ef5ba2.d93bbc07.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2563],{49868(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"bifromq_inside","title":"BifroMQ Inside","description":"This page lists projects or products that integrate with BifroMQ. If your project integrates with BifroMQ, you can submit it here.","source":"@site/versioned_docs/version-3.0.x/999_bifromq_inside. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2563],{40389(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"bifromq_inside","title":"BifroMQ Inside","description":"This page lists projects or products that integrate with BifroMQ. If your project integrates with BifroMQ, you can submit it here.","source":"@site/versioned_docs/version-3.0.x/999_bifromq_inside. [...]
\ No newline at end of file
diff --git a/assets/js/240e4cf3.92f4fb53.js b/assets/js/240e4cf3.92f4fb53.js
new file mode 100644
index 00000000..3f2f5718
--- /dev/null
+++ b/assets/js/240e4cf3.92f4fb53.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2254],{42271(e,i,n){n.d(i,{R:()=>o,x:()=>a});var s=n(12888);const t={},r=s.createContext(t);function o(e){const i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:i},e.children)}},55066(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/240e4cf3.b95cc8b4.js b/assets/js/240e4cf3.b95cc8b4.js
deleted file mode 100644
index fd030a5a..00000000
--- a/assets/js/240e4cf3.b95cc8b4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2254],{34845(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"faq/bifromq","title":"BifroMQ Usage and Integration","description":"What are the Java version requirements for BifroMQ?","source":"@site/versioned_docs/version-2.1.x/09_faq/1_bifromq.md","sourceDirName":"09_faq","slug":"/faq/bifromq","permalink":"/docs [...]
\ No newline at end of file
diff --git a/assets/js/242.76473854.js b/assets/js/242.76473854.js
new file mode 100644
index 00000000..a5b25422
--- /dev/null
+++ b/assets/js/242.76473854.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[242],{22318(t){var e;e=function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){re [...]
\ No newline at end of file
diff --git a/assets/js/242.99495bbd.js b/assets/js/242.99495bbd.js
deleted file mode 100644
index 34d205d7..00000000
--- a/assets/js/242.99495bbd.js
+++ /dev/null
@@ -1 +0,0 @@
-(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[242],{57601(t,e,i){var n;n=function(t){return(()=>{"use strict";var e={45:(t,e,i)=>{var n={};n.layoutBase=i(551),n.CoSEConstants=i(806),n.CoSEEdge=i(767),n.CoSEGraph=i(880),n.CoSEGraphManager=i(578),n.CoSELayout=i(765),n.CoSENode=i(991),n.ConstraintHandler=i(902),t.exports=n},806:(t,e,i)=>{var n=i(551).FDLayoutConstants;function r(){}for(var o in n)r[o]=n[o];r.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,r.DEFAULT_RADIAL_SE [...]
\ No newline at end of file
diff --git a/assets/js/244e1e3e.240792f2.js b/assets/js/244e1e3e.76344fa7.js
similarity index 83%
rename from assets/js/244e1e3e.240792f2.js
rename to assets/js/244e1e3e.76344fa7.js
index b857fa9e..8c1ea0cf 100644
--- a/assets/js/244e1e3e.240792f2.js
+++ b/assets/js/244e1e3e.76344fa7.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8582],{46201(e,n,s){s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>j,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"get_started/quick_install","title":"Quick Install & Verify","description":"For a rapid setup, Docker is recommended:","source":"@site/docs/get_started/quick_install.mdx","sourceDirName":"get_started","slug":"/get_started/quick_install","permalink":"/do [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8582],{29662(e,n,s){s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>j,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"get_started/quick_install","title":"Quick Install & Verify","description":"For a rapid setup, Docker is recommended:","source":"@site/docs/get_started/quick_install.mdx","sourceDirName":"get_started","slug":"/get_started/quick_install","permalink":"/do [...]
\ No newline at end of file
diff --git a/assets/js/247.23023bcd.js b/assets/js/247.e49f4191.js
similarity index 99%
rename from assets/js/247.23023bcd.js
rename to assets/js/247.e49f4191.js
index e0af04b9..f4e34744 100644
--- a/assets/js/247.23023bcd.js
+++ b/assets/js/247.e49f4191.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[247],{20247(t,e,n){n.d(e,{diagram:()=>St});var s=n(45717),i=n(69808),r=n(93316),o=n(37970),a=n(7012),l=n(13212),c=n(11628);const h=(t,e)=>(0,c.A)(t,"a",-e);var u=n(58480),f=n(81896);const d=1e-10;function y(t,e){const n=function(t){const e=[];for(let n=0;n<t.length;++n)for(let s=n+1;s<t.length;++s){const i=m(t[n],t[s]);for(const t of i)t.parentIndex=[n,s],e.push(t)}return e}(t),s=n.filter(e=>function( [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[247],{20247(t,e,n){n.d(e,{diagram:()=>St});var s=n(45717),i=n(69808),r=n(93316),o=n(37970),a=n(3170),l=n(13212),c=n(11628);const h=(t,e)=>(0,c.A)(t,"a",-e);var u=n(58480),f=n(81896);const d=1e-10;function y(t,e){const n=function(t){const e=[];for(let n=0;n<t.length;++n)for(let s=n+1;s<t.length;++s){const i=m(t[n],t[s]);for(const t of i)t.parentIndex=[n,s],e.push(t)}return e}(t),s=n.filter(e=>function( [...]
\ No newline at end of file
diff --git a/assets/js/24c0c160.050b44fd.js b/assets/js/24c0c160.050b44fd.js
deleted file mode 100644
index d8e1d77a..00000000
--- a/assets/js/24c0c160.050b44fd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5418],{78472(e,i,o){o.r(i),o.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"Readme","title":"BifroMQ","description":"BifroMQ is a Java-based high-performance, distributed MQTT broker implementation that seamlessly integrates native multi-tenancy","source":"@site/versioned_docs/version-2.1.x/00_Readme.md","sourceDirName":".","s [...]
\ No newline at end of file
diff --git a/assets/js/24c0c160.21a3f12e.js b/assets/js/24c0c160.21a3f12e.js
new file mode 100644
index 00000000..7e517d97
--- /dev/null
+++ b/assets/js/24c0c160.21a3f12e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5418],{42271(e,i,o){o.d(i,{R:()=>n,x:()=>a});var s=o(12888);const t={},r=s.createContext(t);function n(e){const i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),s.createElement(r.Provider,{value:i},e.children)}},57313(e,i,o [...]
\ No newline at end of file
diff --git a/assets/js/25afd2e2.93c07ea5.js b/assets/js/25afd2e2.93c07ea5.js
deleted file mode 100644
index 528b841e..00000000
--- a/assets/js/25afd2e2.93c07ea5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4598],{75411(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/basic/pubsub","title":"Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source":"@site/versione [...]
\ No newline at end of file
diff --git a/assets/js/25afd2e2.ed58464c.js b/assets/js/25afd2e2.ed58464c.js
new file mode 100644
index 00000000..7367b899
--- /dev/null
+++ b/assets/js/25afd2e2.ed58464c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4598],{15248(e,s,i){i.d(s,{A:()=>n});const n=i.p+"assets/images/pub-sub-pattern-c57c466994bea5c8298b7020b3d9123f.png"},35824(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/basic/pubsub","title":"Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving message [...]
\ No newline at end of file
diff --git a/assets/js/26ff865c.4998b06f.js b/assets/js/26ff865c.4998b06f.js
new file mode 100644
index 00000000..90419165
--- /dev/null
+++ b/assets/js/26ff865c.4998b06f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7146],{42271(e,i,t){t.d(i,{R:()=>a,x:()=>l});var n=t(12888);const r={},s=n.createContext(r);function a(e){const i=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(s.Provider,{value:i},e.children)}},66518(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/26ff865c.55643d29.js b/assets/js/26ff865c.55643d29.js
deleted file mode 100644
index 757a64c0..00000000
--- a/assets/js/26ff865c.55643d29.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7146],{15199(e,i,t){t.r(i),t.d(i,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"cluster/high_availability","title":"High Availability","description":"BifroMQ is designed to deliver high availability by leveraging a decentralized cluster-building capability provided by its Gossip-based protocol (base-cluster). This architecture eli [...]
\ No newline at end of file
diff --git a/assets/js/27a3e830.2e5892da.js b/assets/js/27a3e830.2e5892da.js
deleted file mode 100644
index 202b84ed..00000000
--- a/assets/js/27a3e830.2e5892da.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4108],{78865(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"faq/bifromq","title":"BifroMQ Usage and Integration","description":"What are the Java version requirements for BifroMQ?","source":"@site/versioned_docs/version-2.0.0/09_faq/1_bifromq.md","sourceDirName":"09_faq","slug":"/faq/bifromq","permalink":"/docs [...]
\ No newline at end of file
diff --git a/assets/js/27a3e830.bde1e3d6.js b/assets/js/27a3e830.bde1e3d6.js
new file mode 100644
index 00000000..0d9b1011
--- /dev/null
+++ b/assets/js/27a3e830.bde1e3d6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4108],{42271(e,i,n){n.d(i,{R:()=>o,x:()=>a});var s=n(12888);const t={},r=s.createContext(t);function o(e){const i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:i},e.children)}},65287(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/27eaee00.8e798526.js b/assets/js/27eaee00.8e798526.js
deleted file mode 100644
index d996c9c3..00000000
--- a/assets/js/27eaee00.8e798526.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1042],{76486(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"admin_guide/observability/metrics/intro","title":"Metrics","description":"BifroMQ adopts Micrometer as its framework for metrics collection, analogous to its use of SLF4J and Logback for logging purposes. Micrometer acts as the \\"SLF4J for metrics\\"  [...]
\ No newline at end of file
diff --git a/assets/js/27eaee00.d53ce8be.js b/assets/js/27eaee00.d53ce8be.js
new file mode 100644
index 00000000..b334f4ee
--- /dev/null
+++ b/assets/js/27eaee00.d53ce8be.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1042],{42271(e,i,t){t.d(i,{R:()=>s,x:()=>a});var n=t(12888);const o={},r=n.createContext(o);function s(e){const i=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),n.createElement(r.Provider,{value:i},e.children)}},99344(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/2805.01c27e68.js b/assets/js/2805.eacfff86.js
similarity index 99%
rename from assets/js/2805.01c27e68.js
rename to assets/js/2805.eacfff86.js
index 4e03f91e..87ba2f62 100644
--- a/assets/js/2805.01c27e68.js
+++ b/assets/js/2805.eacfff86.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2805],{2805(t,e,i){i.d(e,{diagram:()=>I});var a=i(93316),n=i(37970),s=i(7012),r=function(){var t=(0,n.K2)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],a=[1,5],s=[1,6],r=[1,7],o=[1,4,5,10,12,13,14,15,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,15,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66, [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2805],{2805(t,e,i){i.d(e,{diagram:()=>I});var a=i(93316),n=i(37970),s=i(3170),r=function(){var t=(0,n.K2)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],a=[1,5],s=[1,6],r=[1,7],o=[1,4,5,10,12,13,14,15,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,15,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66, [...]
\ No newline at end of file
diff --git a/assets/js/2817.e8ff31fb.js b/assets/js/2817.e8ff31fb.js
new file mode 100644
index 00000000..da1422e5
--- /dev/null
+++ b/assets/js/2817.e8ff31fb.js
@@ -0,0 +1,2 @@
+/*! For license information please see 2817.e8ff31fb.js.LICENSE.txt */
+(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2817],{3170(t,e,r){"use strict";function i(t,e){let r;if(void 0===e)for(const i of t)null!=i&&(r<i||void 0===r&&i>=i)&&(r=i);else{let i=-1;for(let o of t)null!=(o=e(o,++i,t))&&(r<o||void 0===r&&o>=o)&&(r=o)}return r}function o(t,e){let r;if(void 0===e)for(const i of t)null!=i&&(r>i||void 0===r&&i>=i)&&(r=i);else{let i=-1;for(let o of t)null!=(o=e(o,++i,t))&&(r>o||void 0===r&&o>=o)&&(r=o)}return r}function n(t){ret [...]
\ No newline at end of file
diff --git a/assets/js/2817.e8ff31fb.js.LICENSE.txt b/assets/js/2817.e8ff31fb.js.LICENSE.txt
new file mode 100644
index 00000000..a7581180
--- /dev/null
+++ b/assets/js/2817.e8ff31fb.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! @license DOMPurify 3.4.12 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.12/LICENSE */
diff --git a/assets/js/29382995.51921b4e.js b/assets/js/29382995.51921b4e.js
new file mode 100644
index 00000000..64acfd59
--- /dev/null
+++ b/assets/js/29382995.51921b4e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6772],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>l});var o=n(12888);const i={},r=o.createContext(i);function s(e){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:t},e.children)}},58625(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/29382995.7e1a23b3.js b/assets/js/29382995.7e1a23b3.js
deleted file mode 100644
index 55b38c22..00000000
--- a/assets/js/29382995.7e1a23b3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6772],{2463(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector plugin is designed to capture a variety of events that occur during the running of BifroMQ. The interface for this plugin is defined in the following Maven module:","so [...]
\ No newline at end of file
diff --git a/assets/js/2976b9d7.144f4d57.js b/assets/js/2976b9d7.144f4d57.js
new file mode 100644
index 00000000..6d32246c
--- /dev/null
+++ b/assets/js/2976b9d7.144f4d57.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7095],{42271(e,i,s){s.d(i,{R:()=>r,x:()=>a});var t=s(12888);const n={},o=t.createContext(n);function r(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),t.createElement(o.Provider,{value:i},e.children)}},61565(e,i,s [...]
\ No newline at end of file
diff --git a/assets/js/2976b9d7.7fb04f0b.js b/assets/js/2976b9d7.7fb04f0b.js
deleted file mode 100644
index 88181d8c..00000000
--- a/assets/js/2976b9d7.7fb04f0b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7095],{71547(e,i,s){s.r(i),s.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/basic/intro","title":"MQTT Basic Features Highlights","description":"BifroMQ provides extensive MQTT protocol support for IoT applications and services, demonstrated through compatibility with different protocol versions, customized configur [...]
\ No newline at end of file
diff --git a/assets/js/2a5d05ab.0f2ff481.js b/assets/js/2a5d05ab.0f2ff481.js
new file mode 100644
index 00000000..6cd5b90a
--- /dev/null
+++ b/assets/js/2a5d05ab.0f2ff481.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4559],{42271(e,t,s){s.d(t,{R:()=>r,x:()=>a});var n=s(12888);const o={},i=n.createContext(o);function r(e){const t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},48116(e,t,s [...]
\ No newline at end of file
diff --git a/assets/js/2a5d05ab.c0c43c6e.js b/assets/js/2a5d05ab.c0c43c6e.js
deleted file mode 100644
index 044f0a60..00000000
--- a/assets/js/2a5d05ab.c0c43c6e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4559],{18548(e,t,s){s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"mqtt_best_practices/about_mqtt","title":"About MQTT","description":"Why use MQTT protocol for IoT? What are the advantages compared to HTTP protocol?","source":"@site/versioned_docs/version-3.1.x/98_mqtt_best_practices/2_about_mqtt.md","sourceDirName": [...]
\ No newline at end of file
diff --git a/assets/js/2b50ac2e.72a72313.js b/assets/js/2b50ac2e.8c89dd6e.js
similarity index 94%
rename from assets/js/2b50ac2e.72a72313.js
rename to assets/js/2b50ac2e.8c89dd6e.js
index 0876e3f0..5183f339 100644
--- a/assets/js/2b50ac2e.72a72313.js
+++ b/assets/js/2b50ac2e.8c89dd6e.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7483],{21035(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/events","title":"Events","description":"BifroMQ generates events at crucial junctures in its workflow, providing users with the ability to implement custom event collector plugins to capture and process these events.","source" [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7483],{26964(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/events","title":"Events","description":"BifroMQ generates events at crucial junctures in its workflow, providing users with the ability to implement custom event collector plugins to capture and process these events.","source" [...]
\ No newline at end of file
diff --git a/assets/js/2b8b7c31.eb4f0f00.js b/assets/js/2b8b7c31.eb4f0f00.js
deleted file mode 100644
index 2264bb94..00000000
--- a/assets/js/2b8b7c31.eb4f0f00.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9711],{28882(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/api/intro","title":"API Overview","description":"BifroMQ incorporates built-in API capabilities, allowing for operations such as disconnecting client connections, querying session status, publishing messages, managing subscriptions and clust [...]
\ No newline at end of file
diff --git a/assets/js/2b8b7c31.ff1c9ef8.js b/assets/js/2b8b7c31.ff1c9ef8.js
new file mode 100644
index 00000000..18608a0e
--- /dev/null
+++ b/assets/js/2b8b7c31.ff1c9ef8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9711],{42271(e,n,i){i.d(n,{R:()=>a,x:()=>s});var t=i(12888);const o={},r=t.createContext(o);function a(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(r.Provider,{value:n},e.children)}},69247(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/2bb1043d.dfb6a5c0.js b/assets/js/2bb1043d.dfb6a5c0.js
deleted file mode 100644
index 4fe95aa3..00000000
--- a/assets/js/2bb1043d.dfb6a5c0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5701],{86559(t,e,n){n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"get_started/quick_install","title":"Quick Install","description":"For a rapid setup, Docker is recommended.","source":"@site/versioned_docs/version-3.3.x/01_get_started/1_quick_install.md","sourceDirName":"01_get_started","slug":"/get_started/quick_ins [...]
\ No newline at end of file
diff --git a/assets/js/2bb1043d.edf8851f.js b/assets/js/2bb1043d.edf8851f.js
new file mode 100644
index 00000000..19bafcf2
--- /dev/null
+++ b/assets/js/2bb1043d.edf8851f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5701],{42271(t,e,n){n.d(e,{R:()=>r,x:()=>a});var i=n(12888);const o={},s=i.createContext(o);function r(t){const e=i.useContext(s);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:r(t.components),i.createElement(s.Provider,{value:e},t.children)}},90829(t,e,n [...]
\ No newline at end of file
diff --git a/assets/js/2bf3eb0f.fef97834.js b/assets/js/2bf3eb0f.fef97834.js
new file mode 100644
index 00000000..497e9657
--- /dev/null
+++ b/assets/js/2bf3eb0f.fef97834.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8133],{4307(n,e,i){i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"admin_guide/tuning/intro","title":"Tuning Overview","description":"Performance tuning in BifroMQ requires starting with adjustments in the running environment and specific optimizations for the workload.","source":"@site/versioned_docs/version-3.0.x/07_ [...]
\ No newline at end of file
diff --git a/assets/js/2bfc3ba2.1cbe37a6.js b/assets/js/2bfc3ba2.1cbe37a6.js
new file mode 100644
index 00000000..d40e71b3
--- /dev/null
+++ b/assets/js/2bfc3ba2.1cbe37a6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3800],{21647(e,s,r){r.d(s,{A:()=>i});const i=r.p+"assets/images/shared-subscription-10ee217a2cc0236cd88a4fb23daf5f7d.png"},42271(e,s,r){r.d(s,{R:()=>o,x:()=>a});var i=r(12888);const t={},n=i.createContext(t);function o(e){const s=i.useContext(n);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.compo [...]
\ No newline at end of file
diff --git a/assets/js/411b1f4d.a3b9ddc0.js b/assets/js/2e13199b.7994972c.js
similarity index 76%
copy from assets/js/411b1f4d.a3b9ddc0.js
copy to assets/js/2e13199b.7994972c.js
index c93e7304..0eb26426 100644
--- a/assets/js/411b1f4d.a3b9ddc0.js
+++ b/assets/js/2e13199b.7994972c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6202],{6244(e,o,n){n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"deploy/deploy_on_linux_mac","title":"Deploy on Linux or Mac","description":"Prerequisites","source":"@site/versioned_docs/version-2.1.x/03_deploy/2_deploy_on_linux_mac.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_linux_mac","permalink":"/do [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1519],{7781(e,o,n){n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"deploy/deploy_on_linux_mac","title":"Deploy on Linux or Mac","description":"Prerequisites","source":"@site/versioned_docs/version-1.0.x/03_deploy/2_deploy_on_linux_mac.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_linux_mac","permalink":"/do [...]
\ No newline at end of file
diff --git a/assets/js/2e13199b.9e88ddb0.js b/assets/js/2e13199b.9e88ddb0.js
deleted file mode 100644
index cfc9ae51..00000000
--- a/assets/js/2e13199b.9e88ddb0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1519],{62717(e,o,n){n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"deploy/deploy_on_linux_mac","title":"Deploy on Linux or Mac","description":"Prerequisites","source":"@site/versioned_docs/version-1.0.x/03_deploy/2_deploy_on_linux_mac.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_linux_mac","permalink":"/d [...]
\ No newline at end of file
diff --git a/assets/js/2f1b3cda.7226efd2.js b/assets/js/2f1b3cda.139b40be.js
similarity index 95%
rename from assets/js/2f1b3cda.7226efd2.js
rename to assets/js/2f1b3cda.139b40be.js
index 7ae51f97..5301842a 100644
--- a/assets/js/2f1b3cda.7226efd2.js
+++ b/assets/js/2f1b3cda.139b40be.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5153],{23185(e,n,o){o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"installation/docker","title":"Docker","description":"Prerequisites","source":"@site/docs/installation/docker.mdx","sourceDirName":"installation","slug":"/installation/docker","permalink":"/docs/installation/docker","draft":false,"unlisted":false,"editU [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5153],{48678(e,n,o){o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"installation/docker","title":"Docker","description":"Prerequisites","source":"@site/docs/installation/docker.mdx","sourceDirName":"installation","slug":"/installation/docker","permalink":"/docs/installation/docker","draft":false,"unlisted":false,"editU [...]
\ No newline at end of file
diff --git a/assets/js/2f20b481.44c28c44.js b/assets/js/2f20b481.44c28c44.js
new file mode 100644
index 00000000..b3fba97b
--- /dev/null
+++ b/assets/js/2f20b481.44c28c44.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6470],{42271(n,e,i){i.d(e,{R:()=>s,x:()=>c});var t=i(12888);const o={},r=t.createContext(o);function s(n){const e=t.useContext(r);return t.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(o):n.components||o:s(n.components),t.createElement(r.Provider,{value:e},n.children)}},59721(n,e,i [...]
\ No newline at end of file
diff --git a/assets/js/2f20b481.515c7275.js b/assets/js/2f20b481.515c7275.js
deleted file mode 100644
index d37ab49c..00000000
--- a/assets/js/2f20b481.515c7275.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6470],{31765(n,e,i){i.r(e),i.d(e,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"contribution_guide/documentation_contribution","title":"Documentation Contribution","description":"Contribute to Documentation","source":"@site/docs/contribution_guide/documentation_contribution.md","sourceDirName":"contribution_guide","slug":"/contrib [...]
\ No newline at end of file
diff --git a/assets/js/2f4a4371.0f8d1f6e.js b/assets/js/2f4a4371.3d18b5cc.js
similarity index 97%
rename from assets/js/2f4a4371.0f8d1f6e.js
rename to assets/js/2f4a4371.3d18b5cc.js
index 7852667f..d6e05309 100644
--- a/assets/js/2f4a4371.0f8d1f6e.js
+++ b/assets/js/2f4a4371.3d18b5cc.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4101],{26714(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"faq/bifromq","title":"BifroMQ Usage and Integration","description":"What are the Java version requirements for BifroMQ?","source":"@site/versioned_docs/version-1.0.x/09_faq/1_bifromq.md","sourceDirName":"09_faq","slug":"/faq/bifromq","permalink":"/docs [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4101],{23555(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"faq/bifromq","title":"BifroMQ Usage and Integration","description":"What are the Java version requirements for BifroMQ?","source":"@site/versioned_docs/version-1.0.x/09_faq/1_bifromq.md","sourceDirName":"09_faq","slug":"/faq/bifromq","permalink":"/docs [...]
\ No newline at end of file
diff --git a/assets/js/2f9ef3f7.78c3916e.js b/assets/js/2f9ef3f7.78c3916e.js
new file mode 100644
index 00000000..c33fc5d1
--- /dev/null
+++ b/assets/js/2f9ef3f7.78c3916e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1621],{42271(e,n,t){t.d(n,{R:()=>s,x:()=>a});var i=t(12888);const o={},r=i.createContext(o);function s(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},95945(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/2f9ef3f7.fb3674de.js b/assets/js/2f9ef3f7.fb3674de.js
deleted file mode 100644
index 9a095686..00000000
--- a/assets/js/2f9ef3f7.fb3674de.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1621],{68132(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin is designed to provide BifroMQ runtime with the capability to authenticate MQTT client connections and authorize Pub/Sub message topics. The interface for the plugin  [...]
\ No newline at end of file
diff --git a/assets/js/30169d2e.474b97e6.js b/assets/js/30169d2e.2d453931.js
similarity index 96%
rename from assets/js/30169d2e.474b97e6.js
rename to assets/js/30169d2e.2d453931.js
index 370e3b1b..1f2e77ab 100644
--- a/assets/js/30169d2e.474b97e6.js
+++ b/assets/js/30169d2e.2d453931.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5959],{1064(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"user_guide/intro","title":"User Guide Overview","description":"BifroMQ is a sophisticated, Java-based MQTT broker that excels in providing high-performance, distributed messaging capabilities. With its native support for multi-tenancy, BifroMQ stands ou [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5959],{1108(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"user_guide/intro","title":"User Guide Overview","description":"BifroMQ is a sophisticated, Java-based MQTT broker that excels in providing high-performance, distributed messaging capabilities. With its native support for multi-tenancy, BifroMQ stands ou [...]
\ No newline at end of file
diff --git a/assets/js/30e5edbc.1993facb.js b/assets/js/30e5edbc.1849f23e.js
similarity index 95%
rename from assets/js/30e5edbc.1993facb.js
rename to assets/js/30e5edbc.1849f23e.js
index 54a53d88..a33cb933 100644
--- a/assets/js/30e5edbc.1993facb.js
+++ b/assets/js/30e5edbc.1849f23e.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7286],{40203(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"deploy/cluster","title":"Deploy BifroMQ Cluster","description":"Prerequisites","source":"@site/versioned_docs/version-2.0.0/03_deploy/21_cluster.md","sourceDirName":"03_deploy","slug":"/deploy/cluster","permalink":"/docs/2.0.0/deploy/cluster","draft":f [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7286],{32413(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"deploy/cluster","title":"Deploy BifroMQ Cluster","description":"Prerequisites","source":"@site/versioned_docs/version-2.0.0/03_deploy/21_cluster.md","sourceDirName":"03_deploy","slug":"/deploy/cluster","permalink":"/docs/2.0.0/deploy/cluster","draft":f [...]
\ No newline at end of file
diff --git a/assets/js/31720ebf.51f6a975.js b/assets/js/31720ebf.51f6a975.js
new file mode 100644
index 00000000..9dbfbfd9
--- /dev/null
+++ b/assets/js/31720ebf.51f6a975.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8481],{42271(e,i,n){n.d(i,{R:()=>s,x:()=>a});var t=n(12888);const o={},r=t.createContext(o);function s(e){const i=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:i},e.children)}},96771(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/31720ebf.b5e3ae15.js b/assets/js/31720ebf.b5e3ae15.js
deleted file mode 100644
index f39a4969..00000000
--- a/assets/js/31720ebf.b5e3ae15.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8481],{4513(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"installation/docker","title":"Docker","description":"Prerequisites","source":"@site/versioned_docs/version-3.2.x/02_installation/1_docker.md","sourceDirName":"02_installation","slug":"/installation/docker","permalink":"/docs/3.2.x/installation/docker"," [...]
\ No newline at end of file
diff --git a/assets/js/3231e800.20f01d94.js b/assets/js/3231e800.20f01d94.js
new file mode 100644
index 00000000..b913ffaf
--- /dev/null
+++ b/assets/js/3231e800.20f01d94.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6719],{42271(e,n,r){r.d(n,{R:()=>l,x:()=>i});var s=r(12888);const a={},t=s.createContext(a);function l(e){const n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}},59777(e,n,r [...]
\ No newline at end of file
diff --git a/assets/js/3231e800.4a703817.js b/assets/js/3231e800.4a703817.js
deleted file mode 100644
index 6336e79a..00000000
--- a/assets/js/3231e800.4a703817.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6719],{95791(e,n,r){r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"cluster/loadbalance/stateful/intro","title":"Stateful Server Load Balancing","description":"All stateful services in BifroMQ are built on top of the base-kv distributed storage engine.","source":"@site/docs/cluster/loadbalance/stateful/intro.md","sourc [...]
\ No newline at end of file
diff --git a/assets/js/3395.0d924a9b.js b/assets/js/3395.0d924a9b.js
new file mode 100644
index 00000000..17392827
--- /dev/null
+++ b/assets/js/3395.0d924a9b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3395],{83395(e,t,n){n.d(t,{diagram:()=>ne});var i=n(85796),a=n(69808),r=n(93316),o=n(37970),s=n(99953),l=n(3170),d="position frame",m="frame positioned",c="position relation",x="relation positioned",u=(0,o.K2)(function(e){o.Rm.debug("options str",e)},"setOptions"),f=(0,o.K2)(function(){return{}},"getOptions"),g=(0,o.K2)(function(){h(),(0,r.IU)()},"clear");function h(){w={}}(0,o.K2)(h,"reset");var b=r. [...]
\ No newline at end of file
diff --git a/assets/js/3395.a1067eba.js b/assets/js/3395.a1067eba.js
deleted file mode 100644
index 5aef99ab..00000000
--- a/assets/js/3395.a1067eba.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3395],{85796(e,t,n){function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}n.d(t,{S:()=>i}),(0,n(37970).K2)(i,"populateCommonDb")},83395(e,t,n){n.d(t,{diagram:()=>ne});var i=n(85796),a=n(69808),r=n(93316),o=n(37970),s=n(99953),l=n(7012),d="position frame",m="frame positioned",c="position relation",x="relation position [...]
\ No newline at end of file
diff --git a/assets/js/3423.e7a27e37.js b/assets/js/3423.e7a27e37.js
new file mode 100644
index 00000000..840b42c3
--- /dev/null
+++ b/assets/js/3423.e7a27e37.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3423],{18721(e,t,s){s.d(t,{W:()=>c});var a=s(12888),n=s(99461);const i=["zero","one","two","few","many","other"];function r(e){return i.filter(t=>e.includes(t))}const l={locale:"en",pluralForms:r(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,a.useMemo)(()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms [...]
\ No newline at end of file
diff --git a/assets/js/342ee601.6ebdc560.js b/assets/js/342ee601.6ebdc560.js
new file mode 100644
index 00000000..b4ad4563
--- /dev/null
+++ b/assets/js/342ee601.6ebdc560.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4961],{42271(e,i,n){n.d(i,{R:()=>r,x:()=>s});var t=n(12888);const o={},a=t.createContext(o);function r(e){const i=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(a.Provider,{value:i},e.children)}},78282(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/342ee601.d8e7abb9.js b/assets/js/342ee601.d8e7abb9.js
deleted file mode 100644
index b44f9a1d..00000000
--- a/assets/js/342ee601.d8e7abb9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4961],{36266(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"admin_guide/configuration/intro","title":"Configuration Overview","description":"Based on different usage scenarios, BifroMQ divides configurations into system-level and tenant-level. System-level configurations are set at the system\'s startup and can [...]
\ No newline at end of file
diff --git a/assets/js/3499.ea75ea5a.js b/assets/js/3499.ea75ea5a.js
deleted file mode 100644
index e83ef866..00000000
--- a/assets/js/3499.ea75ea5a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3499],{85796(e,t,i){function n(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}i.d(t,{S:()=>n}),(0,i(37970).K2)(n,"populateCommonDb")},56733(e,t,i){i.d(t,{m:()=>r});var n=i(37970),r=class{constructor(e){this.init=e,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},13499(e [...]
\ No newline at end of file
diff --git a/assets/js/3499.f5cf1ca5.js b/assets/js/3499.f5cf1ca5.js
new file mode 100644
index 00000000..76aba3d9
--- /dev/null
+++ b/assets/js/3499.f5cf1ca5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3499],{13499(e,t,i){i.d(t,{diagram:()=>f});var n=i(45717),r=i(85796),a=i(56733),s=i(69808),o=i(93316),c=i(37970),d=i(99953),l=new a.m(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),h=(0,c.K2)(()=>{l.reset(),(0,o.IU)()},"clear"),g=(0,c.K2)(()=>l.records.stack[0],"getRoot"),p=(0,c.K2)(()=>l.records.cnt,"getCount"),w=o.UI.treeView,m=(0,c.K2)(()=>(0,s.$t)(w,(0,o.zj)().treeView),"getConfig"),b [...]
\ No newline at end of file
diff --git a/assets/js/365fa407.9c6da164.js b/assets/js/365fa407.9c6da164.js
deleted file mode 100644
index 07b2aa4d..00000000
--- a/assets/js/365fa407.9c6da164.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6345],{85403(e,s,i){i.r(s),i.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>t,metadata:()=>o,toc:()=>p});const o=JSON.parse('{"id":"operations/api_service","title":"Operations in API service","description":"If you need to perform proxy subscriptions, unsubscriptions, publish messages, disconnect online devices, or manually","source":"@site/versioned_docs/version-2.0.0/07_operations [...]
\ No newline at end of file
diff --git a/assets/js/365fa407.d72fb734.js b/assets/js/365fa407.d72fb734.js
new file mode 100644
index 00000000..7365bcb8
--- /dev/null
+++ b/assets/js/365fa407.d72fb734.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6345],{9271(e,s,i){i.r(s),i.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>t,metadata:()=>o,toc:()=>p});const o=JSON.parse('{"id":"operations/api_service","title":"Operations in API service","description":"If you need to perform proxy subscriptions, unsubscriptions, publish messages, disconnect online devices, or manually","source":"@site/versioned_docs/version-2.0.0/07_operations/ [...]
\ No newline at end of file
diff --git a/assets/js/36c4b650.30f44324.js b/assets/js/36c4b650.8532318c.js
similarity index 98%
rename from assets/js/36c4b650.30f44324.js
rename to assets/js/36c4b650.8532318c.js
index 8d4bb257..3640a8a0 100644
--- a/assets/js/36c4b650.30f44324.js
+++ b/assets/js/36c4b650.8532318c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2918],{22856(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2918],{40309(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
diff --git a/assets/js/3720.cc3fcb3b.js b/assets/js/3720.cc3fcb3b.js
deleted file mode 100644
index b553e96d..00000000
--- a/assets/js/3720.cc3fcb3b.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see 3720.cc3fcb3b.js.LICENSE.txt */
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3720],{63720(e,t,n){function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.ke [...]
\ No newline at end of file
diff --git a/assets/js/3738cd01.af68ec68.js b/assets/js/3738cd01.af68ec68.js
deleted file mode 100644
index ebbd9359..00000000
--- a/assets/js/3738cd01.af68ec68.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3128],{37779(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/linux","title":"Linux","description":"Prerequisites","source":"@site/versioned_docs/version-3.2.x/02_installation/2_linux.md","sourceDirName":"02_installation","slug":"/installation/linux","permalink":"/docs/3.2.x/installation/linux","draf [...]
\ No newline at end of file
diff --git a/assets/js/3738cd01.d00600ce.js b/assets/js/3738cd01.d00600ce.js
new file mode 100644
index 00000000..8788e549
--- /dev/null
+++ b/assets/js/3738cd01.d00600ce.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3128],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>l});var t=i(12888);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}},85102(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/3754812f.083d1930.js b/assets/js/3754812f.083d1930.js
deleted file mode 100644
index 19b513b4..00000000
--- a/assets/js/3754812f.083d1930.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7871],{73704(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"installation/docker","title":"Docker","description":"Prerequisites","source":"@site/versioned_docs/version-3.0.x/02_installation/1_docker.md","sourceDirName":"02_installation","slug":"/installation/docker","permalink":"/docs/3.0.x/installation/docker", [...]
\ No newline at end of file
diff --git a/assets/js/3754812f.51135d69.js b/assets/js/3754812f.51135d69.js
new file mode 100644
index 00000000..ebf6a3bb
--- /dev/null
+++ b/assets/js/3754812f.51135d69.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7871],{42271(e,i,n){n.d(i,{R:()=>s,x:()=>a});var t=n(12888);const o={},r=t.createContext(o);function s(e){const i=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:i},e.children)}},46160(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/3805407b.bf6509fb.js b/assets/js/3805407b.8ab1119f.js
similarity index 75%
rename from assets/js/3805407b.bf6509fb.js
rename to assets/js/3805407b.8ab1119f.js
index 49a0ae9d..e22e5973 100644
--- a/assets/js/3805407b.bf6509fb.js
+++ b/assets/js/3805407b.8ab1119f.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6416],{36545(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/quick_verify","title":"Quick Verify","description":"Below are the steps to quickly verify the basic MQTT functionality of BifroMQ using MQTTX.","source":"@site/versioned_docs/version-3.2.x/01_get_started/2_quick_verify.md","sourceDirName":" [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6416],{25704(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/quick_verify","title":"Quick Verify","description":"Below are the steps to quickly verify the basic MQTT functionality of BifroMQ using MQTTX.","source":"@site/versioned_docs/version-3.2.x/01_get_started/2_quick_verify.md","sourceDirName":" [...]
\ No newline at end of file
diff --git a/assets/js/381e9ac9.010d69a2.js b/assets/js/381e9ac9.010d69a2.js
deleted file mode 100644
index fd0505b3..00000000
--- a/assets/js/381e9ac9.010d69a2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6486],{23135(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>d,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"cluster/clustering","title":"Clustering","description":"Overview","source":"@site/docs/cluster/clustering.mdx","sourceDirName":"cluster","slug":"/cluster/clustering","permalink":"/docs/cluster/clustering","draft":false,"unlisted":false,"editUrl":"https [...]
\ No newline at end of file
diff --git a/assets/js/381e9ac9.915e037b.js b/assets/js/381e9ac9.915e037b.js
new file mode 100644
index 00000000..c9a96fff
--- /dev/null
+++ b/assets/js/381e9ac9.915e037b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6486],{6924(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>d,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"cluster/clustering","title":"Clustering","description":"Overview","source":"@site/docs/cluster/clustering.mdx","sourceDirName":"cluster","slug":"/cluster/clustering","permalink":"/docs/cluster/clustering","draft":false,"unlisted":false,"editUrl":"https: [...]
\ No newline at end of file
diff --git a/assets/js/387ce92f.475c14a9.js b/assets/js/387ce92f.475c14a9.js
deleted file mode 100644
index 0e5cb684..00000000
--- a/assets/js/387ce92f.475c14a9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2462],{4777(e,t,r){r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"cluster/loadbalance/stateful/inboxstore","title":"Inbox Store","description":"InboxStore provides persistent offline message queues (write-intensive). It runs as a stateful service on the base-kv overlay cluster; store_name for API headers: inbox.store. [...]
\ No newline at end of file
diff --git a/assets/js/387ce92f.fcb0210f.js b/assets/js/387ce92f.fcb0210f.js
new file mode 100644
index 00000000..a217351c
--- /dev/null
+++ b/assets/js/387ce92f.fcb0210f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2462],{42271(e,t,r){r.d(t,{R:()=>o,x:()=>l});var s=r(12888);const n={},a=s.createContext(n);function o(e){const t=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(a.Provider,{value:t},e.children)}},88906(e,t,r [...]
\ No newline at end of file
diff --git a/assets/js/3bc594e4.a979d077.js b/assets/js/3bc594e4.692206c9.js
similarity index 94%
rename from assets/js/3bc594e4.a979d077.js
rename to assets/js/3bc594e4.692206c9.js
index 0acab9ae..76adaba0 100644
--- a/assets/js/3bc594e4.a979d077.js
+++ b/assets/js/3bc594e4.692206c9.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4912],{96777(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"mqtt_best_practices/topicfilter_design","title":"Topic Filters Design","description":"Topic Filters in MQTT are a mechanism used for subscribing to topics, allowing clients to receive messages from topics they are interested in. When selecting and desi [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4912],{27511(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"mqtt_best_practices/topicfilter_design","title":"Topic Filters Design","description":"Topic Filters in MQTT are a mechanism used for subscribing to topics, allowing clients to receive messages from topics they are interested in. When selecting and desi [...]
\ No newline at end of file
diff --git a/assets/js/3bf0c675.27b5863f.js b/assets/js/3bf0c675.b46ad5c6.js
similarity index 95%
rename from assets/js/3bf0c675.27b5863f.js
rename to assets/js/3bf0c675.b46ad5c6.js
index 28320e10..07fca6b7 100644
--- a/assets/js/3bf0c675.27b5863f.js
+++ b/assets/js/3bf0c675.b46ad5c6.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9385],{20951(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"plugin/setting_provider","title":"Setting Provider","description":"BifroMQ defines a category of settings (Setting) that can be modified at runtime, allowing for dynamic adjustment of BifroMQ\'s service behavior per tenant. The purpose of the Setting P [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9385],{24741(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"plugin/setting_provider","title":"Setting Provider","description":"BifroMQ defines a category of settings (Setting) that can be modified at runtime, allowing for dynamic adjustment of BifroMQ\'s service behavior per tenant. The purpose of the Setting P [...]
\ No newline at end of file
diff --git a/assets/js/b0bb2cbb.b4a49fd4.js b/assets/js/3c2bc4b4.2037f6c8.js
similarity index 86%
rename from assets/js/b0bb2cbb.b4a49fd4.js
rename to assets/js/3c2bc4b4.2037f6c8.js
index 876fbf7f..52e06746 100644
--- a/assets/js/b0bb2cbb.b4a49fd4.js
+++ b/assets/js/3c2bc4b4.2037f6c8.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4216],{42579(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/intro","title":"User Guide Overview","description":"BifroMQ is a sophisticated, Java-based MQTT broker that excels in providing high-performance, distributed messaging capabilities. With its native support for multi-tenancy, BifroMQ stands o [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2446],{29493(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/intro","title":"User Guide Overview","description":"BifroMQ is a sophisticated, Java-based MQTT broker that excels in providing high-performance, distributed messaging capabilities. With its native support for multi-tenancy, BifroMQ stands o [...]
\ No newline at end of file
diff --git a/assets/js/3c2bc4b4.584bf057.js b/assets/js/3c2bc4b4.584bf057.js
deleted file mode 100644
index cbd28463..00000000
--- a/assets/js/3c2bc4b4.584bf057.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2446],{1696(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/intro","title":"User Guide Overview","description":"BifroMQ is a sophisticated, Java-based MQTT broker that excels in providing high-performance, distributed messaging capabilities. With its native support for multi-tenancy, BifroMQ stands ou [...]
\ No newline at end of file
diff --git a/assets/js/3c442c90.4f9ebe3a.js b/assets/js/3c442c90.4f9ebe3a.js
deleted file mode 100644
index 934bb583..00000000
--- a/assets/js/3c442c90.4f9ebe3a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8163],{38e3(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/install_from_source","title":"Install from Source","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/02_installation/4_install_from_source.md","sourceDirName":"02_installation","slug":"/installation/install_from_sou [...]
\ No newline at end of file
diff --git a/assets/js/3c442c90.d1e31339.js b/assets/js/3c442c90.d1e31339.js
new file mode 100644
index 00000000..581e6820
--- /dev/null
+++ b/assets/js/3c442c90.d1e31339.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8163],{42271(e,n,i){i.d(n,{R:()=>s,x:()=>l});var t=i(12888);const o={},r=t.createContext(o);function s(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},95282(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/3d0b897a.878e5cbb.js b/assets/js/3d0b897a.878e5cbb.js
deleted file mode 100644
index be8e3ea8..00000000
--- a/assets/js/3d0b897a.878e5cbb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3457],{57802(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"plugin/intro","title":"Plugin Overview","description":"The plugin mechanism is a primary way for BifroMQ to deeply integrate with business systems. Currently, BifroMQ exposes four types of plugin extension interfaces to cater to different usage scenari [...]
\ No newline at end of file
diff --git a/assets/js/3d0b897a.986e5c9a.js b/assets/js/3d0b897a.986e5c9a.js
new file mode 100644
index 00000000..f82e0718
--- /dev/null
+++ b/assets/js/3d0b897a.986e5c9a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3457],{42271(e,n,i){i.d(n,{R:()=>s,x:()=>l});var r=i(12888);const t={},o=r.createContext(t);function s(e){const n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),r.createElement(o.Provider,{value:n},e.children)}},77683(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/3d9c4f5f.2aac66f7.js b/assets/js/3d9c4f5f.2aac66f7.js
deleted file mode 100644
index 6520dd84..00000000
--- a/assets/js/3d9c4f5f.2aac66f7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3969],{15214(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>u});const i=JSON.parse('{"id":"user_guide/API/api","title":"API","description":"TODO","source":"@site/versioned_docs/version-1.0.x/05_user_guide/3_API/1_api.md","sourceDirName":"05_user_guide/3_API","slug":"/user_guide/API/api","permalink":"/docs/1.0.x/user_guide/API/api","draft":fa [...]
\ No newline at end of file
diff --git a/assets/js/3d9c4f5f.dbb15888.js b/assets/js/3d9c4f5f.dbb15888.js
new file mode 100644
index 00000000..e28c6141
--- /dev/null
+++ b/assets/js/3d9c4f5f.dbb15888.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3969],{42271(e,t,n){n.d(t,{R:()=>o,x:()=>a});var i=n(12888);const r={},s=i.createContext(r);function o(e){const t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:t},e.children)}},96125(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/3dc9a804.095dacde.js b/assets/js/3dc9a804.bb96dd3c.js
similarity index 90%
rename from assets/js/3dc9a804.095dacde.js
rename to assets/js/3dc9a804.bb96dd3c.js
index b0cb505c..803ad502 100644
--- a/assets/js/3dc9a804.095dacde.js
+++ b/assets/js/3dc9a804.bb96dd3c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5377],{91310(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"user_guide/integration/integration","title":"Data Integration","description":"Basic Concepts","source":"@site/versioned_docs/version-2.1.x/05_user_guide/2_integration/1_integration.md","sourceDirName":"05_user_guide/2_integration","slug":"/user_guide/i [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5377],{32859(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"user_guide/integration/integration","title":"Data Integration","description":"Basic Concepts","source":"@site/versioned_docs/version-2.1.x/05_user_guide/2_integration/1_integration.md","sourceDirName":"05_user_guide/2_integration","slug":"/user_guide/i [...]
\ No newline at end of file
diff --git a/assets/js/3e8e6ffc.deb56e1a.js b/assets/js/3e8e6ffc.deb56e1a.js
deleted file mode 100644
index 4690a159..00000000
--- a/assets/js/3e8e6ffc.deb56e1a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5927],{10572(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"bifromq_inside","title":"BifroMQ Inside","description":"This page lists projects or products that integrate with BifroMQ. If your project integrates with BifroMQ, you can submit it here.","source":"@site/versioned_docs/version-2.0.0/999_bifromq_inside. [...]
\ No newline at end of file
diff --git a/assets/js/3e8e6ffc.f3c89b37.js b/assets/js/3e8e6ffc.f3c89b37.js
new file mode 100644
index 00000000..627e7448
--- /dev/null
+++ b/assets/js/3e8e6ffc.f3c89b37.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5927],{42271(e,i,t){t.d(i,{R:()=>r,x:()=>a});var s=t(12888);const n={},o=s.createContext(n);function r(e){const i=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),s.createElement(o.Provider,{value:i},e.children)}},72813(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/3ed35b50.38db468b.js b/assets/js/3ed35b50.38db468b.js
new file mode 100644
index 00000000..dd97040e
--- /dev/null
+++ b/assets/js/3ed35b50.38db468b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2230],{2649(t,e,s){s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"mqtt_best_practices/mqtt","title":"Supported Specifications","description":"For reference, BifroMQ fully supports the following MQTT specifications:","source":"@site/versioned_docs/version-3.3.x/98_mqtt_best_practices/1_spec.md","sourceDirName":"98_mqtt [...]
\ No newline at end of file
diff --git a/assets/js/3ed35b50.8080a8cc.js b/assets/js/3ed35b50.8080a8cc.js
deleted file mode 100644
index cc44d506..00000000
--- a/assets/js/3ed35b50.8080a8cc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2230],{34937(t,e,s){s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"mqtt_best_practices/mqtt","title":"Supported Specifications","description":"For reference, BifroMQ fully supports the following MQTT specifications:","source":"@site/versioned_docs/version-3.3.x/98_mqtt_best_practices/1_spec.md","sourceDirName":"98_mqt [...]
\ No newline at end of file
diff --git a/assets/js/3ee93997.e0cf032e.js b/assets/js/3ee93997.00b1c54d.js
similarity index 90%
rename from assets/js/3ee93997.e0cf032e.js
rename to assets/js/3ee93997.00b1c54d.js
index 1b95534c..9d6fbc87 100644
--- a/assets/js/3ee93997.e0cf032e.js
+++ b/assets/js/3ee93997.00b1c54d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7409],{33121(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/versioned_docs/version-3.2.x/02_installation/3_windows.md","sourceDirName":"02_installation","slug":"/installation/windows","permalink":"/docs/3.2.x/installation/wind [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7409],{28885(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/versioned_docs/version-3.2.x/02_installation/3_windows.md","sourceDirName":"02_installation","slug":"/installation/windows","permalink":"/docs/3.2.x/installation/wind [...]
\ No newline at end of file
diff --git a/assets/js/4069.11db9663.js b/assets/js/4069.11db9663.js
new file mode 100644
index 00000000..8f3d6c2c
--- /dev/null
+++ b/assets/js/4069.11db9663.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4069],{74069(r,s,a){a.d(s,{diagram:()=>l});var e=a(15196),i=(a(14458),a(68208),a(95934),a(2626),a(77019),a(42452),a(62993),a(73641),a(10566),a(79478),a(15111),a(69808),a(93316),a(37970)),l={parser:e._$,get db(){return new e.NM},renderer:e.Lh,styles:e.tM,init:(0,i.K2)(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/4069.882900bf.js b/assets/js/4069.882900bf.js
deleted file mode 100644
index 0db3a502..00000000
--- a/assets/js/4069.882900bf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4069],{74069(r,s,a){a.d(s,{diagram:()=>l});var e=a(15196),i=(a(14458),a(68208),a(95934),a(2626),a(77019),a(42452),a(62993),a(73641),a(10566),a(79478),a(2864),a(69808),a(93316),a(37970)),l={parser:e._$,get db(){return new e.NM},renderer:e.Lh,styles:e.tM,init:(0,i.K2)(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/4105.89d2cf70.js b/assets/js/4105.89d2cf70.js
deleted file mode 100644
index 0ac18c78..00000000
--- a/assets/js/4105.89d2cf70.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4105],{36486(t,e,a){a.d(e,{diagram:()=>R});var i,n=a(84134),r=(a(95934),a(2626),a(77019),a(42452),a(62993),a(73641),a(10566),a(79478),a(2864),a(69808)),d=a(93316),s=a(37970),o=a(7012),g=a(48585),p=a(62399),h=(0,s.K2)(t=>t.append("circle").attr("class","start-state").attr("r",(0,d.D7)().state.sizeUnit).attr("cx",(0,d.D7)().state.padding+(0,d.D7)().state.sizeUnit).attr("cy",(0,d.D7)().state.padding+(0,d [...]
\ No newline at end of file
diff --git a/assets/js/4105.a58b0238.js b/assets/js/4105.a58b0238.js
new file mode 100644
index 00000000..3cf7f38d
--- /dev/null
+++ b/assets/js/4105.a58b0238.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4105],{36486(t,e,a){a.d(e,{diagram:()=>R});var i,n=a(84134),r=(a(95934),a(2626),a(77019),a(42452),a(62993),a(73641),a(10566),a(79478),a(15111),a(69808)),d=a(93316),s=a(37970),o=a(3170),g=a(48585),p=a(62399),h=(0,s.K2)(t=>t.append("circle").attr("class","start-state").attr("r",(0,d.D7)().state.sizeUnit).attr("cx",(0,d.D7)().state.padding+(0,d.D7)().state.sizeUnit).attr("cy",(0,d.D7)().state.padding+(0, [...]
\ No newline at end of file
diff --git a/assets/js/411b1f4d.a3b9ddc0.js b/assets/js/411b1f4d.9e05997d.js
similarity index 90%
rename from assets/js/411b1f4d.a3b9ddc0.js
rename to assets/js/411b1f4d.9e05997d.js
index c93e7304..d5a46f79 100644
--- a/assets/js/411b1f4d.a3b9ddc0.js
+++ b/assets/js/411b1f4d.9e05997d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6202],{6244(e,o,n){n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"deploy/deploy_on_linux_mac","title":"Deploy on Linux or Mac","description":"Prerequisites","source":"@site/versioned_docs/version-2.1.x/03_deploy/2_deploy_on_linux_mac.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_linux_mac","permalink":"/do [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6202],{4884(e,o,n){n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"deploy/deploy_on_linux_mac","title":"Deploy on Linux or Mac","description":"Prerequisites","source":"@site/versioned_docs/version-2.1.x/03_deploy/2_deploy_on_linux_mac.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_linux_mac","permalink":"/do [...]
\ No newline at end of file
diff --git a/assets/js/4134.281fa639.js b/assets/js/4134.281fa639.js
new file mode 100644
index 00000000..eb42645c
--- /dev/null
+++ b/assets/js/4134.281fa639.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4134],{2626(t,e,s){s.d(e,{P:()=>r});var i=s(93316),n=s(37970),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:c,height:l,x:h,y:d}=o(t,e);(0,i.a$)(t,l,c,r);const u=a(h,d,c,l,e);t.attr("viewBox",u),n.Rm.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),o=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x [...]
\ No newline at end of file
diff --git a/assets/js/4134.ed8e2e36.js b/assets/js/4134.ed8e2e36.js
deleted file mode 100644
index 22da0afc..00000000
--- a/assets/js/4134.ed8e2e36.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4134],{2626(t,e,s){s.d(e,{P:()=>r});var i=s(93316),n=s(37970),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:c,height:l,x:h,y:d}=o(t,e);(0,i.a$)(t,l,c,r);const u=a(h,d,c,l,e);t.attr("viewBox",u),n.Rm.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),o=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x [...]
\ No newline at end of file
diff --git a/assets/js/41405d07.49b7aa53.js b/assets/js/41405d07.49b7aa53.js
new file mode 100644
index 00000000..96a90c23
--- /dev/null
+++ b/assets/js/41405d07.49b7aa53.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2718],{42271(e,r,i){i.d(r,{R:()=>d,x:()=>c});var n=i(12888);const s={},t=n.createContext(s);function d(e){const r=n.useContext(t);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(t.Provider,{value:r},e.children)}},55023(e,r,i [...]
\ No newline at end of file
diff --git a/assets/js/41405d07.91d61942.js b/assets/js/41405d07.91d61942.js
deleted file mode 100644
index 993872c0..00000000
--- a/assets/js/41405d07.91d61942.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2718],{12409(e,r,i){i.r(r),i.d(r,{assets:()=>l,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"admin_guide/configuration/config_file_manual","title":"Config File Manual","description":"The configuration file for BifroMQ is a YAML file located in the conf directory under standalone.yml. This file contains all the configuration parameters for Bifr [...]
\ No newline at end of file
diff --git a/assets/js/41f39de4.30897ac1.js b/assets/js/41f39de4.5a8ebf52.js
similarity index 96%
rename from assets/js/41f39de4.30897ac1.js
rename to assets/js/41f39de4.5a8ebf52.js
index 432bbfab..e825fafb 100644
--- a/assets/js/41f39de4.30897ac1.js
+++ b/assets/js/41f39de4.5a8ebf52.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3111],{31902(e,t,o){o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"operations/logs_observable","title":"Logs and Observable","description":"Logging","source":"@site/versioned_docs/version-2.1.x/07_operations/4_logs_observable.md","sourceDirName":"07_operations","slug":"/operations/logs_observable","permalink":"/docs/2 [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3111],{22437(e,t,o){o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"operations/logs_observable","title":"Logs and Observable","description":"Logging","source":"@site/versioned_docs/version-2.1.x/07_operations/4_logs_observable.md","sourceDirName":"07_operations","slug":"/operations/logs_observable","permalink":"/docs/2 [...]
\ No newline at end of file
diff --git a/assets/js/41fbfbf4.2d6be21e.js b/assets/js/41fbfbf4.07884f6a.js
similarity index 90%
rename from assets/js/41fbfbf4.2d6be21e.js
rename to assets/js/41fbfbf4.07884f6a.js
index 9db8c1b2..ccfb036d 100644
--- a/assets/js/41fbfbf4.2d6be21e.js
+++ b/assets/js/41fbfbf4.07884f6a.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3092],{26586(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/02_installation/3_windows.md","sourceDirName":"02_installation","slug":"/installation/windows","permalink":"/docs/3.1.x/installation/wind [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3092],{18223(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/02_installation/3_windows.md","sourceDirName":"02_installation","slug":"/installation/windows","permalink":"/docs/3.1.x/installation/wind [...]
\ No newline at end of file
diff --git a/assets/js/4257.93416b59.js b/assets/js/4257.93416b59.js
new file mode 100644
index 00000000..a93a27af
--- /dev/null
+++ b/assets/js/4257.93416b59.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4257],{14257(t,e,n){n.d(e,{diagram:()=>X});var i=n(14458),s=n(68208),r=n(93316),a=n(37970),o=n(3170),l=function(){var t=(0,a.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[6,8,10,11,12,14,16,17,18],n=[1,9],i=[1,10],s=[1,11],r=[1,12],o=[1,13],l=[1,14],c={trace:(0,a.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statemen [...]
\ No newline at end of file
diff --git a/assets/js/4257.e46ab9a0.js b/assets/js/4257.e46ab9a0.js
deleted file mode 100644
index 2d5ca3d0..00000000
--- a/assets/js/4257.e46ab9a0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4257],{14458(t,e,n){n.d(e,{o:()=>i});var i=(0,n(37970).K2)(()=>"\n  /* Font Awesome icon styling - consolidated */\n  .label-icon {\n    display: inline-block;\n    height: 1em;\n    overflow: visible;\n    vertical-align: -0.125em;\n  }\n  \n  .node .label-icon path {\n    fill: currentColor;\n    stroke: revert;\n    stroke-width: revert;\n  }\n","getIconStyles")},68208(t,e,n){n.d(e,{CP:()=>u,Ck:()= [...]
\ No newline at end of file
diff --git a/assets/js/42ae6ee1.605a4899.js b/assets/js/42ae6ee1.605a4899.js
new file mode 100644
index 00000000..6c371114
--- /dev/null
+++ b/assets/js/42ae6ee1.605a4899.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8326],{7066(e,n,r){r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"cluster/loadbalance/mqttserver","title":"MQTT Server","description":"MQTT Broker nodes expose TCP / TLS / WS / WSS endpoints for MQTT 3.1.1 and MQTT 5.0 clients.","source":"@site/docs/cluster/loadbalance/mqttserver.md","sourceDirName":"cluster/loadbalan [...]
\ No newline at end of file
diff --git a/assets/js/42ae6ee1.8018785b.js b/assets/js/42ae6ee1.8018785b.js
deleted file mode 100644
index 66251049..00000000
--- a/assets/js/42ae6ee1.8018785b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8326],{44972(e,n,r){r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"cluster/loadbalance/mqttserver","title":"MQTT Server","description":"MQTT Broker nodes expose TCP / TLS / WS / WSS endpoints for MQTT 3.1.1 and MQTT 5.0 clients.","source":"@site/docs/cluster/loadbalance/mqttserver.md","sourceDirName":"cluster/loadbala [...]
\ No newline at end of file
diff --git a/assets/js/4387b34e.946e7255.js b/assets/js/4387b34e.946e7255.js
new file mode 100644
index 00000000..e9a62ef5
--- /dev/null
+++ b/assets/js/4387b34e.946e7255.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7975],{42271(e,i,t){t.d(i,{R:()=>o,x:()=>s});var a=t(12888);const n={},r=a.createContext(n);function o(e){const i=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),a.createElement(r.Provider,{value:i},e.children)}},72728(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/4387b34e.9613267a.js b/assets/js/4387b34e.9613267a.js
deleted file mode 100644
index 0a91ff3a..00000000
--- a/assets/js/4387b34e.9613267a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7975],{90985(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"cluster/high_availability","title":"High Availability","description":"Due to the decentralized cluster-building capability provided by the Gossip-based protocol (base-cluster) we offer, BifroMQ StandardCluster nodes do not require additional service di [...]
\ No newline at end of file
diff --git a/assets/js/442d4e04.0f4ee894.js b/assets/js/442d4e04.0f4ee894.js
deleted file mode 100644
index ae796e39..00000000
--- a/assets/js/442d4e04.0f4ee894.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3444],{55261(e,o,n){n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"deploy/deploy_on_linux_mac","title":"Deploy on Linux or Mac","description":"Prerequisites","source":"@site/versioned_docs/version-2.0.0/03_deploy/2_deploy_on_linux_mac.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_linux_mac","permalink":"/d [...]
\ No newline at end of file
diff --git a/assets/js/442d4e04.879e62b4.js b/assets/js/442d4e04.879e62b4.js
new file mode 100644
index 00000000..72c59837
--- /dev/null
+++ b/assets/js/442d4e04.879e62b4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3444],{42271(e,o,n){n.d(o,{R:()=>t,x:()=>l});var r=n(12888);const i={},s=r.createContext(i);function t(e){const o=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(s.Provider,{value:o},e.children)}},59641(e,o,n [...]
\ No newline at end of file
diff --git a/assets/js/44d634cf.4a50dbdc.js b/assets/js/44d634cf.d7f52396.js
similarity index 93%
rename from assets/js/44d634cf.4a50dbdc.js
rename to assets/js/44d634cf.d7f52396.js
index c63428b9..67248cf0 100644
--- a/assets/js/44d634cf.4a50dbdc.js
+++ b/assets/js/44d634cf.d7f52396.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8791],{95682(e,i,n){n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>g});const o=JSON.parse('{"id":"admin_guide/observability/logging","title":"Logging","description":"BifroMQ utilizes the standard SLF4J interface for logging purposes and selects Logback as its logging backend. The logs are organized into five distinct levels: TRACE, DEBUG, INFO, WAR [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8791],{11577(e,i,n){n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>g});const o=JSON.parse('{"id":"admin_guide/observability/logging","title":"Logging","description":"BifroMQ utilizes the standard SLF4J interface for logging purposes and selects Logback as its logging backend. The logs are organized into five distinct levels: TRACE, DEBUG, INFO, WAR [...]
\ No newline at end of file
diff --git a/assets/js/45402cf9.1bd9f390.js b/assets/js/45402cf9.1bd9f390.js
deleted file mode 100644
index 7fa8f92e..00000000
--- a/assets/js/45402cf9.1bd9f390.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[952],{93883(e,t,o){o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"operations/logs_observable","title":"Logs and Observable","description":"Logging","source":"@site/versioned_docs/version-1.0.x/07_operations/4_logs_observable.md","sourceDirName":"07_operations","slug":"/operations/logs_observable","permalink":"/docs/1. [...]
\ No newline at end of file
diff --git a/assets/js/45402cf9.d34c7e11.js b/assets/js/45402cf9.d34c7e11.js
new file mode 100644
index 00000000..9b05d816
--- /dev/null
+++ b/assets/js/45402cf9.d34c7e11.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[952],{42271(e,t,o){o.d(t,{R:()=>s,x:()=>l});var n=o(12888);const i={},r=n.createContext(i);function s(e){const t=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(r.Provider,{value:t},e.children)}},92823(e,t,o) [...]
\ No newline at end of file
diff --git a/assets/js/454e58f8.8c51b89e.js b/assets/js/454e58f8.8c51b89e.js
new file mode 100644
index 00000000..e0782a36
--- /dev/null
+++ b/assets/js/454e58f8.8c51b89e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[514],{42271(e,t,n){n.d(t,{R:()=>o,x:()=>l});var r=n(12888);const i={},s=r.createContext(i);function o(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:t},e.children)}},56396(e,t,n) [...]
\ No newline at end of file
diff --git a/assets/js/454e58f8.9237e4d2.js b/assets/js/454e58f8.9237e4d2.js
deleted file mode 100644
index 36864bf5..00000000
--- a/assets/js/454e58f8.9237e4d2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[514],{97351(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"cluster/intro","title":"BifroMQ Cluster Overview","description":"BifroMQ employs a decentralized clustering approach, where MQTT protocol workloads are distributed across independent sub-clusters, each dedicated to specific functions. This design is bui [...]
\ No newline at end of file
diff --git a/assets/js/4572.5bee963a.js b/assets/js/4572.5bee963a.js
new file mode 100644
index 00000000..e8065490
--- /dev/null
+++ b/assets/js/4572.5bee963a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4572],{14458(t,e,r){r.d(e,{o:()=>a});var a=(0,r(37970).K2)(()=>"\n  /* Font Awesome icon styling - consolidated */\n  .label-icon {\n    display: inline-block;\n    height: 1em;\n    overflow: visible;\n    vertical-align: -0.125em;\n  }\n  \n  .node .label-icon path {\n    fill: currentColor;\n    stroke: revert;\n    stroke-width: revert;\n  }\n","getIconStyles")},54572(t,e,r){r.d(e,{diagram:()=>Te} [...]
\ No newline at end of file
diff --git a/assets/js/4572.f8b4ee6f.js b/assets/js/4572.f8b4ee6f.js
deleted file mode 100644
index 4de8a945..00000000
--- a/assets/js/4572.f8b4ee6f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4572],{80124(t,e,r){r.d(e,{A:()=>s});var a=r(46554),i=r(55385);const s=(t,e)=>a.A.lang.round(i.A.parse(t)[e])},54572(t,e,r){r.d(e,{diagram:()=>Te});var a=r(14458),i=r(62993),s=r(10566),n=r(2864),o=r(69808),l=r(93316),c=r(37970),d=r(16600),h=r(57903),g=r(58092);var u=r(55874);function y(t){if((0,d.s)(t))return t;const e=(0,h.b)(t);if(!function(t){switch((0,h.b)(t)){case g.R_:case g.Uw:case g.cT:case g. [...]
\ No newline at end of file
diff --git a/assets/js/0245eb2f.4b1cef16.js b/assets/js/45f8a29b.2eba308c.js
similarity index 78%
rename from assets/js/0245eb2f.4b1cef16.js
rename to assets/js/45f8a29b.2eba308c.js
index 8f96381b..7397903d 100644
--- a/assets/js/0245eb2f.4b1cef16.js
+++ b/assets/js/45f8a29b.2eba308c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4765],{48017(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"user_guide/connect/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1 or 3.1.1.","source":"@site/versioned_docs/version-1.0.x [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8592],{36733(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"user_guide/connect/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1 or 3.1.1.","source":"@site/versioned_docs/version-2.1.x [...]
\ No newline at end of file
diff --git a/assets/js/45f8a29b.9658d4a5.js b/assets/js/45f8a29b.9658d4a5.js
deleted file mode 100644
index 9afc3c02..00000000
--- a/assets/js/45f8a29b.9658d4a5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8592],{6599(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"user_guide/connect/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1 or 3.1.1.","source":"@site/versioned_docs/version-2.1.x/ [...]
\ No newline at end of file
diff --git a/assets/js/463f2e7e.44945175.js b/assets/js/463f2e7e.44945175.js
deleted file mode 100644
index eb46a368..00000000
--- a/assets/js/463f2e7e.44945175.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7401],{34613(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"plugin/setting_provider/tenantsetting","title":"Tenant-level Settings","description":"Tenant-level settings allow for detailed control of BifroMQ\'s functionality and performance characteristics. Each setting can be adjusted per tenant, enabling custom [...]
\ No newline at end of file
diff --git a/assets/js/463f2e7e.f63c388a.js b/assets/js/463f2e7e.f63c388a.js
new file mode 100644
index 00000000..dd389943
--- /dev/null
+++ b/assets/js/463f2e7e.f63c388a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7401],{4539(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"plugin/setting_provider/tenantsetting","title":"Tenant-level Settings","description":"Tenant-level settings allow for detailed control of BifroMQ\'s functionality and performance characteristics. Each setting can be adjusted per tenant, enabling customi [...]
\ No newline at end of file
diff --git a/assets/js/46ba8745.56128154.js b/assets/js/46ba8745.56128154.js
new file mode 100644
index 00000000..71907a8f
--- /dev/null
+++ b/assets/js/46ba8745.56128154.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7512],{2365(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"get_started/faq","title":"Frequently Asked Questions","description":"What versions of the MQTT protocol are supported by BifroMQ?","source":"@site/versioned_docs/version-3.3.x/01_get_started/3_faq.md","sourceDirName":"01_get_started","slug":"/get_starte [...]
\ No newline at end of file
diff --git a/assets/js/46ba8745.8f1f5f87.js b/assets/js/46ba8745.8f1f5f87.js
deleted file mode 100644
index 46e465af..00000000
--- a/assets/js/46ba8745.8f1f5f87.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7512],{73920(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"get_started/faq","title":"Frequently Asked Questions","description":"What versions of the MQTT protocol are supported by BifroMQ?","source":"@site/versioned_docs/version-3.3.x/01_get_started/3_faq.md","sourceDirName":"01_get_started","slug":"/get_start [...]
\ No newline at end of file
diff --git a/assets/js/46d6447b.9ff5f91e.js b/assets/js/46d6447b.9ff5f91e.js
new file mode 100644
index 00000000..d8d82bd6
--- /dev/null
+++ b/assets/js/46d6447b.9ff5f91e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9972],{6204(i,s,e){e.r(s),e.d(s,{assets:()=>c,contentTitle:()=>d,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/docs/installation/windows.mdx","sourceDirName":"installation","slug":"/installation/windows","permalink":"/docs/installation/windows","draft":false,"unlisted":false,"e [...]
\ No newline at end of file
diff --git a/assets/js/46d6447b.cdfb6ccd.js b/assets/js/46d6447b.cdfb6ccd.js
deleted file mode 100644
index e0143c06..00000000
--- a/assets/js/46d6447b.cdfb6ccd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9972],{98088(i,s,e){e.r(s),e.d(s,{assets:()=>c,contentTitle:()=>d,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/docs/installation/windows.mdx","sourceDirName":"installation","slug":"/installation/windows","permalink":"/docs/installation/windows","draft":false,"unlisted":false," [...]
\ No newline at end of file
diff --git a/assets/js/46e74c02.ab4c2590.js b/assets/js/46e74c02.ee76d968.js
similarity index 96%
rename from assets/js/46e74c02.ab4c2590.js
rename to assets/js/46e74c02.ee76d968.js
index e1e4d776..bba7f4f6 100644
--- a/assets/js/46e74c02.ab4c2590.js
+++ b/assets/js/46e74c02.ee76d968.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6380],{33276(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"installation/intro","title":"Installation Overview","description":"Prerequisites","source":"@site/versioned_docs/version-3.0.x/02_installation/intro.md","sourceDirName":"02_installation","slug":"/installation/intro","permalink":"/docs/3.0.x/installatio [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6380],{39054(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"installation/intro","title":"Installation Overview","description":"Prerequisites","source":"@site/versioned_docs/version-3.0.x/02_installation/intro.md","sourceDirName":"02_installation","slug":"/installation/intro","permalink":"/docs/3.0.x/installatio [...]
\ No newline at end of file
diff --git a/assets/js/4772.5059c229.js b/assets/js/4772.5059c229.js
new file mode 100644
index 00000000..324f74a0
--- /dev/null
+++ b/assets/js/4772.5059c229.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4772],{84772(r,e,t){t.d(e,{diagram:()=>i});var a=t(84134),s=(t(95934),t(2626),t(77019),t(42452),t(62993),t(73641),t(10566),t(79478),t(15111),t(69808),t(93316),t(37970)),i={parser:a.Zk,get db(){return new a.u4(2)},renderer:a.q7,styles:a.tM,init:(0,s.K2)(r=>{r.state||(r.state={}),r.state.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/4772.be3fc2aa.js b/assets/js/4772.be3fc2aa.js
deleted file mode 100644
index c47b88a7..00000000
--- a/assets/js/4772.be3fc2aa.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4772],{84772(r,e,t){t.d(e,{diagram:()=>i});var a=t(84134),s=(t(95934),t(2626),t(77019),t(42452),t(62993),t(73641),t(10566),t(79478),t(2864),t(69808),t(93316),t(37970)),i={parser:a.Zk,get db(){return new a.u4(2)},renderer:a.q7,styles:a.tM,init:(0,s.K2)(r=>{r.state||(r.state={}),r.state.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/4822f532.5e519021.js b/assets/js/4822f532.5e519021.js
deleted file mode 100644
index 388c4a25..00000000
--- a/assets/js/4822f532.5e519021.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9763],{33610(n,e,i){i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"admin_guide/tuning/intro","title":"Tuning Overview","description":"Performance tuning in BifroMQ requires starting with adjustments in the running environment and specific optimizations for the workload.","source":"@site/versioned_docs/version-3.2.x/07 [...]
\ No newline at end of file
diff --git a/assets/js/4822f532.6519a73f.js b/assets/js/4822f532.6519a73f.js
new file mode 100644
index 00000000..b0849dc7
--- /dev/null
+++ b/assets/js/4822f532.6519a73f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9763],{42271(n,e,i){i.d(e,{R:()=>o,x:()=>a});var t=i(12888);const s={},r=t.createContext(s);function o(n){const e=t.useContext(r);return t.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:o(n.components),t.createElement(r.Provider,{value:e},n.children)}},90323(n,e,i [...]
\ No newline at end of file
diff --git a/assets/js/4866.65565641.js b/assets/js/4866.65565641.js
new file mode 100644
index 00000000..cd183e2b
--- /dev/null
+++ b/assets/js/4866.65565641.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4866],{194(e,n,t){t.d(n,{i:()=>s});var i=t(99461);function s(e={}){const{i18n:{currentLocale:n}}=(0,i.A)(),t=function(){const{i18n:{currentLocale:e,localeConfigs:n}}=(0,i.A)();return n[e].calendar}();return new Intl.DateTimeFormat(n,{calendar:t,...e})}},39131(e,n,t){t.d(n,{A:()=>p});t(12888);var i=t(13526),s=t(43978),a=t(34607),r=t(81673);const c="iconEdit_HkLC";var o=t(11684);function l({className:e, [...]
\ No newline at end of file
diff --git a/assets/js/498c2260.de9c180a.js b/assets/js/498c2260.de9c180a.js
deleted file mode 100644
index 6b225412..00000000
--- a/assets/js/498c2260.de9c180a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9783],{52954(e,s,n){n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>r,default:()=>o,frontMatter:()=>c,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"test_report/report","title":"Test Report","description":"Test Objectives","source":"@site/versioned_docs/version-3.0.x/99_test_report/1_test_report.md","sourceDirName":"99_test_report","slug":"/test_report/report","permalink":"/docs/3.0.x/test_report/r [...]
\ No newline at end of file
diff --git a/assets/js/498c2260.dfb83cfc.js b/assets/js/498c2260.dfb83cfc.js
new file mode 100644
index 00000000..4a26400a
--- /dev/null
+++ b/assets/js/498c2260.dfb83cfc.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9783],{557(e,s,n){n.d(s,{A:()=>i});const i=n.p+"assets/images/cpu-25f44ca1a91b114cc4daf16442141424.png"},807(e,s,n){n.d(s,{A:()=>i});const i=n.p+"assets/images/mean-f8a2565b0858961a2f5927cffbc941ee.png"},2313(e,s,n){n.d(s,{A:()=>i});const i=n.p+"assets/images/cpu-e811d2690b728d2dddd05b7dd8c0d355.png"},4003(e,s,n){n.d(s,{A:()=>i});const i=n.p+"assets/images/cpu-8492ec2586a935634376a0e073e32ac0.png"},41 [...]
\ No newline at end of file
diff --git a/assets/js/499dfd0e.d40249c0.js b/assets/js/499dfd0e.2dc58ba6.js
similarity index 99%
rename from assets/js/499dfd0e.d40249c0.js
rename to assets/js/499dfd0e.2dc58ba6.js
index be102837..c43f68ef 100644
--- a/assets/js/499dfd0e.d40249c0.js
+++ b/assets/js/499dfd0e.2dc58ba6.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3734],{73899(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>x,frontMatter:()=>d,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3734],{32045(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>x,frontMatter:()=>d,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
diff --git a/assets/js/4a30f1bb.19e6de13.js b/assets/js/4a30f1bb.19e6de13.js
deleted file mode 100644
index eaf0317d..00000000
--- a/assets/js/4a30f1bb.19e6de13.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8980],{84683(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"admin_guide/configuration/config_file_manual","title":"Config File Manual","description":"The configuration file for BifroMQ is a YAML file located in the conf directory under standalone.yml. This file contains all the configuration parameters for Bifr [...]
\ No newline at end of file
diff --git a/assets/js/4a30f1bb.5b899a51.js b/assets/js/4a30f1bb.5b899a51.js
new file mode 100644
index 00000000..9f93f262
--- /dev/null
+++ b/assets/js/4a30f1bb.5b899a51.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8980],{42271(e,t,n){n.d(t,{R:()=>d,x:()=>o});var r=n(12888);const i={},s=r.createContext(i);function d(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),r.createElement(s.Provider,{value:t},e.children)}},84059(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/4af9a438.28f07085.js b/assets/js/4af9a438.28f07085.js
new file mode 100644
index 00000000..ff495a62
--- /dev/null
+++ b/assets/js/4af9a438.28f07085.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6087],{6190(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/intro","title":"Observability Overview","description":"In the administration of BifroMQ, ensuring comprehensive system observability stands as a foundational element for conducting effective system operations and maintenance ac [...]
\ No newline at end of file
diff --git a/assets/js/4af9a438.88a4eee4.js b/assets/js/4af9a438.88a4eee4.js
deleted file mode 100644
index a6c59e77..00000000
--- a/assets/js/4af9a438.88a4eee4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6087],{47215(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/intro","title":"Observability Overview","description":"In the administration of BifroMQ, ensuring comprehensive system observability stands as a foundational element for conducting effective system operations and maintenance a [...]
\ No newline at end of file
diff --git a/assets/js/b12f4718.d15f5980.js b/assets/js/4c34b6b8.766aeb89.js
similarity index 81%
rename from assets/js/b12f4718.d15f5980.js
rename to assets/js/4c34b6b8.766aeb89.js
index b225ffab..3253e35f 100644
--- a/assets/js/b12f4718.d15f5980.js
+++ b/assets/js/4c34b6b8.766aeb89.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[676],{14298(n,t,e){e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"installation/config_migration","title":"Configuration Convention & Migration","description":"Configurations may vary between different versions. When deploying BifroMQ, you can use previous configuration files, and it won\'t prevent BifroMQ from startin [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6875],{6251(n,t,e){e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"installation/config_migration","title":"Configuration Convention & Migration","description":"Configurations may vary between different versions. When deploying BifroMQ, you can use previous configuration files, and it won\'t prevent BifroMQ from startin [...]
\ No newline at end of file
diff --git a/assets/js/4c34b6b8.b75bd420.js b/assets/js/4c34b6b8.b75bd420.js
deleted file mode 100644
index 5a8f0fab..00000000
--- a/assets/js/4c34b6b8.b75bd420.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6875],{97400(n,t,e){e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"installation/config_migration","title":"Configuration Convention & Migration","description":"Configurations may vary between different versions. When deploying BifroMQ, you can use previous configuration files, and it won\'t prevent BifroMQ from starti [...]
\ No newline at end of file
diff --git a/assets/js/5020.c0c5602c.js b/assets/js/5020.c0c5602c.js
deleted file mode 100644
index d6c5a0eb..00000000
--- a/assets/js/5020.c0c5602c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5020],{68458(e,t,i){i.d(t,{A:()=>a});i(12888);var n=i(13526),o=i(61540),s=i(41655),r=i(11684);function a({className:e}){return(0,r.jsx)("main",{className:(0,n.A)("container margin-vert--xl",e),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.A,{id:"theme.NotFound.title [...]
\ No newline at end of file
diff --git a/assets/js/5057dfce.59769436.js b/assets/js/5057dfce.59769436.js
deleted file mode 100644
index 62d77b40..00000000
--- a/assets/js/5057dfce.59769436.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8330],{68599(e,i,n){n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>t,toc:()=>g});const t=JSON.parse('{"id":"admin_guide/observability/logging","title":"Logging","description":"BifroMQ utilizes the standard SLF4J interface for logging purposes and selects Apache Log4j as its logging backend. The logs are organized into five distinct levels: TRACE, DEBUG, INFO [...]
\ No newline at end of file
diff --git a/assets/js/5057dfce.c87fe59b.js b/assets/js/5057dfce.c87fe59b.js
new file mode 100644
index 00000000..fe4d1898
--- /dev/null
+++ b/assets/js/5057dfce.c87fe59b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8330],{6506(e,i,n){n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>t,toc:()=>g});const t=JSON.parse('{"id":"admin_guide/observability/logging","title":"Logging","description":"BifroMQ utilizes the standard SLF4J interface for logging purposes and selects Apache Log4j as its logging backend. The logs are organized into five distinct levels: TRACE, DEBUG, INFO, [...]
\ No newline at end of file
diff --git a/assets/js/509497b3.41dc57cd.js b/assets/js/509497b3.c88bedaf.js
similarity index 94%
copy from assets/js/509497b3.41dc57cd.js
copy to assets/js/509497b3.c88bedaf.js
index dc0ebcb3..f54d41e2 100644
--- a/assets/js/509497b3.41dc57cd.js
+++ b/assets/js/509497b3.c88bedaf.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5818],{81589(e,o,i){i.r(o),i.d(o,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"deploy/deploy_with_docker","title":"Deploy on Docker","description":"Prerequisites","source":"@site/versioned_docs/version-2.1.x/03_deploy/1_deploy_with_docker.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_with_docker","permalink":"/docs/2.1.x [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5818],{23569(e,o,i){i.r(o),i.d(o,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"deploy/deploy_with_docker","title":"Deploy on Docker","description":"Prerequisites","source":"@site/versioned_docs/version-2.1.x/03_deploy/1_deploy_with_docker.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_with_docker","permalink":"/docs/2.1.x [...]
\ No newline at end of file
diff --git a/assets/js/50b7b76b.64dedc97.js b/assets/js/50b7b76b.5becdcec.js
similarity index 97%
rename from assets/js/50b7b76b.64dedc97.js
rename to assets/js/50b7b76b.5becdcec.js
index 30708ed6..af16a431 100644
--- a/assets/js/50b7b76b.64dedc97.js
+++ b/assets/js/50b7b76b.5becdcec.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7868],{48149(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"get_started/faq","title":"Frequently Asked Questions","description":"What versions of the MQTT protocol are supported by BifroMQ?","source":"@site/versioned_docs/version-3.0.x/01_get_started/3_faq.md","sourceDirName":"01_get_started","slug":"/get_start [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7868],{38675(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"get_started/faq","title":"Frequently Asked Questions","description":"What versions of the MQTT protocol are supported by BifroMQ?","source":"@site/versioned_docs/version-3.0.x/01_get_started/3_faq.md","sourceDirName":"01_get_started","slug":"/get_start [...]
\ No newline at end of file
diff --git a/assets/js/50e838e0.1bb76546.js b/assets/js/50e838e0.0a63f549.js
similarity index 89%
rename from assets/js/50e838e0.1bb76546.js
rename to assets/js/50e838e0.0a63f549.js
index ba34c99c..36cbfe7a 100644
--- a/assets/js/50e838e0.1bb76546.js
+++ b/assets/js/50e838e0.0a63f549.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6617],{89263(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"get_started/quick_install","title":"Install BifroMQ","description":"Docker","source":"@site/versioned_docs/version-2.0.0/02_get_started/1_quick_install.md","sourceDirName":"02_get_started","slug":"/get_started/quick_install","permalink":"/docs/2.0.0/ge [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6617],{19611(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"get_started/quick_install","title":"Install BifroMQ","description":"Docker","source":"@site/versioned_docs/version-2.0.0/02_get_started/1_quick_install.md","sourceDirName":"02_get_started","slug":"/get_started/quick_install","permalink":"/docs/2.0.0/ge [...]
\ No newline at end of file
diff --git a/assets/js/51087184.37c74127.js b/assets/js/51087184.37c74127.js
deleted file mode 100644
index 8c8f1bc3..00000000
--- a/assets/js/51087184.37c74127.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7121],{46464(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"installation/intro","title":"Installation Overview","description":"Prerequisites","source":"@site/versioned_docs/version-3.3.x/02_installation/intro.md","sourceDirName":"02_installation","slug":"/installation/intro","permalink":"/docs/3.3.x/installatio [...]
\ No newline at end of file
diff --git a/assets/js/51087184.6a981219.js b/assets/js/51087184.6a981219.js
new file mode 100644
index 00000000..3fc895af
--- /dev/null
+++ b/assets/js/51087184.6a981219.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7121],{42271(e,t,i){i.d(t,{R:()=>o,x:()=>d});var r=i(12888);const n={},s=r.createContext(n);function o(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(s.Provider,{value:t},e.children)}},44676(e,t,i [...]
\ No newline at end of file
diff --git a/assets/js/515fa0b0.035bcd05.js b/assets/js/515fa0b0.035bcd05.js
new file mode 100644
index 00000000..683603ea
--- /dev/null
+++ b/assets/js/515fa0b0.035bcd05.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1437],{42271(e,s,t){t.d(s,{R:()=>a,x:()=>o});var n=t(12888);const i={},r=n.createContext(i);function a(e){const s=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:s},e.children)}},61321(e,s,t [...]
\ No newline at end of file
diff --git a/assets/js/5196.2b6c3c79.js b/assets/js/5196.2b6c3c79.js
new file mode 100644
index 00000000..29825396
--- /dev/null
+++ b/assets/js/5196.2b6c3c79.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5196],{2626(t,e,s){s.d(e,{P:()=>a});var i=s(93316),n=s(37970),a=(0,n.K2)((t,e,s,a)=>{t.attr("class",s);const{width:u,height:o,x:c,y:h}=r(t,e);(0,i.a$)(t,o,u,a);const d=l(c,h,u,o,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),r=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x [...]
\ No newline at end of file
diff --git a/assets/js/5196.d6fb4164.js b/assets/js/5196.d6fb4164.js
deleted file mode 100644
index e0c70466..00000000
--- a/assets/js/5196.d6fb4164.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5196],{2626(t,e,s){s.d(e,{P:()=>a});var i=s(93316),n=s(37970),a=(0,n.K2)((t,e,s,a)=>{t.attr("class",s);const{width:u,height:o,x:c,y:h}=r(t,e);(0,i.a$)(t,o,u,a);const d=l(c,h,u,o,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),r=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x [...]
\ No newline at end of file
diff --git a/assets/js/5248.71302abe.js b/assets/js/5248.71302abe.js
deleted file mode 100644
index 0d9c6107..00000000
--- a/assets/js/5248.71302abe.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5248],{2626(e,t,a){a.d(t,{P:()=>r});var l=a(93316),s=a(37970),r=(0,s.K2)((e,t,a,r)=>{e.attr("class",a);const{width:o,height:c,x:d,y:p}=n(e,t);(0,l.a$)(e,c,o,r);const h=i(d,p,o,c,t);e.attr("viewBox",h),s.Rm.debug(`viewBox configured: ${h} with padding: ${t}`)},"setupViewPortForSVG"),n=(0,s.K2)((e,t)=>{const a=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:a.width+2*t,height:a.height+2*t,x [...]
\ No newline at end of file
diff --git a/assets/js/5248.a128587f.js b/assets/js/5248.a128587f.js
new file mode 100644
index 00000000..5c8b8515
--- /dev/null
+++ b/assets/js/5248.a128587f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5248],{2626(e,t,a){a.d(t,{P:()=>r});var l=a(93316),s=a(37970),r=(0,s.K2)((e,t,a,r)=>{e.attr("class",a);const{width:o,height:c,x:d,y:p}=n(e,t);(0,l.a$)(e,c,o,r);const h=i(d,p,o,c,t);e.attr("viewBox",h),s.Rm.debug(`viewBox configured: ${h} with padding: ${t}`)},"setupViewPortForSVG"),n=(0,s.K2)((e,t)=>{const a=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:a.width+2*t,height:a.height+2*t,x [...]
\ No newline at end of file
diff --git a/assets/js/529abb5c.83c8263e.js b/assets/js/529abb5c.fb14e4db.js
similarity index 94%
rename from assets/js/529abb5c.83c8263e.js
rename to assets/js/529abb5c.fb14e4db.js
index c597fa14..87b0b94f 100644
--- a/assets/js/529abb5c.83c8263e.js
+++ b/assets/js/529abb5c.fb14e4db.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9596],{4175(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"bifromq_inside","title":"BifroMQ Inside","description":"This page lists projects or products that integrate with BifroMQ. If your project integrates with BifroMQ, you can submit it here.","source":"@site/versioned_docs/version-3.3.x/999_bifromq_inside.m [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9596],{7564(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"bifromq_inside","title":"BifroMQ Inside","description":"This page lists projects or products that integrate with BifroMQ. If your project integrates with BifroMQ, you can submit it here.","source":"@site/versioned_docs/version-3.3.x/999_bifromq_inside.m [...]
\ No newline at end of file
diff --git a/assets/js/53935ca1.8a08b847.js b/assets/js/53935ca1.8a08b847.js
deleted file mode 100644
index 85391426..00000000
--- a/assets/js/53935ca1.8a08b847.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[309],{2442(e,o,n){n.r(o),n.d(o,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>t,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"deploy/deploy_on_windows","title":"Deploy on Windows","description":"* JDK 17+","source":"@site/versioned_docs/version-2.1.x/03_deploy/3_deploy_on_windows.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_windows","permalink":"/docs/2.1.x/deploy/ [...]
\ No newline at end of file
diff --git a/assets/js/53935ca1.fb0f4e18.js b/assets/js/53935ca1.fb0f4e18.js
new file mode 100644
index 00000000..141b83f2
--- /dev/null
+++ b/assets/js/53935ca1.fb0f4e18.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[309],{22762(e,o,n){n.r(o),n.d(o,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>t,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"deploy/deploy_on_windows","title":"Deploy on Windows","description":"* JDK 17+","source":"@site/versioned_docs/version-2.1.x/03_deploy/3_deploy_on_windows.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_windows","permalink":"/docs/2.1.x/deploy [...]
\ No newline at end of file
diff --git a/assets/js/53f2c468.82c65e07.js b/assets/js/53f2c468.82c65e07.js
new file mode 100644
index 00000000..961af3f1
--- /dev/null
+++ b/assets/js/53f2c468.82c65e07.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9980],{14504(){},75396(){},81573(e,i,r){"use strict";r.r(i),r.d(i,{assets:()=>p,contentTitle:()=>d,default:()=>l,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"user_guide/api/openapi","title":"OpenAPI Reference","description":"The full OpenAPI definition is generated from the codebase (see Swagger generation).","source":"@site/docs/user_guide/api/openapi.md","sourceDirName":"user_guide/api [...]
\ No newline at end of file
diff --git a/assets/js/53f2c468.b4c061a6.js b/assets/js/53f2c468.b4c061a6.js
deleted file mode 100644
index 2870376b..00000000
--- a/assets/js/53f2c468.b4c061a6.js
+++ /dev/null
@@ -1 +0,0 @@
-(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9980],{27463(e,i,r){"use strict";r.r(i),r.d(i,{assets:()=>p,contentTitle:()=>d,default:()=>l,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"user_guide/api/openapi","title":"OpenAPI Reference","description":"The full OpenAPI definition is generated from the codebase (see Swagger generation).","source":"@site/docs/user_guide/api/openapi.md","sourceDirName":"user_guide/api","slug":"/user_guid [...]
\ No newline at end of file
diff --git a/assets/js/5401e8ed.0ddf0c18.js b/assets/js/5401e8ed.b21b11da.js
similarity index 93%
rename from assets/js/5401e8ed.0ddf0c18.js
rename to assets/js/5401e8ed.b21b11da.js
index c44a199c..e5a092d2 100644
--- a/assets/js/5401e8ed.0ddf0c18.js
+++ b/assets/js/5401e8ed.b21b11da.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[601],{66564(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/versioned_docs/version-3.3 [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[601],{18807(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/versioned_docs/version-3.3 [...]
\ No newline at end of file
diff --git a/assets/js/5428.14c5a0a9.js b/assets/js/5428.14c5a0a9.js
new file mode 100644
index 00000000..0497ba59
--- /dev/null
+++ b/assets/js/5428.14c5a0a9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5428],{2626(t,e,s){s.d(e,{P:()=>r});var i=s(93316),n=s(37970),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:o,height:l,x:c,y:h}=a(t,e);(0,i.a$)(t,l,o,r);const d=u(c,h,o,l,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),a=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x [...]
\ No newline at end of file
diff --git a/assets/js/5428.f9b0fc8c.js b/assets/js/5428.f9b0fc8c.js
deleted file mode 100644
index 55629edd..00000000
--- a/assets/js/5428.f9b0fc8c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5428],{80124(t,e,s){s.d(e,{A:()=>r});var i=s(46554),n=s(55385);const r=(t,e)=>i.A.lang.round(n.A.parse(t)[e])},2626(t,e,s){s.d(e,{P:()=>r});var i=s(93316),n=s(37970),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:o,height:l,x:c,y:h}=a(t,e);(0,i.a$)(t,l,o,r);const d=u(c,h,o,l,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),a=(0,n.K2)((t,e)= [...]
\ No newline at end of file
diff --git a/assets/js/54486ab8.acbc5977.js b/assets/js/54486ab8.10bd684e.js
similarity index 93%
rename from assets/js/54486ab8.acbc5977.js
rename to assets/js/54486ab8.10bd684e.js
index 78c6ed2b..bc5b762a 100644
--- a/assets/js/54486ab8.acbc5977.js
+++ b/assets/js/54486ab8.10bd684e.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4449],{10193(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"operations/tls","title":"TLS","description":"Introduction","source":"@site/versioned_docs/version-1.0.x/07_operations/1_tls.md","sourceDirName":"07_operations","slug":"/operations/tls","permalink":"/docs/1.0.x/operations/tls","draft":false,"unlisted":f [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4449],{19384(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"operations/tls","title":"TLS","description":"Introduction","source":"@site/versioned_docs/version-1.0.x/07_operations/1_tls.md","sourceDirName":"07_operations","slug":"/operations/tls","permalink":"/docs/1.0.x/operations/tls","draft":false,"unlisted":f [...]
\ No newline at end of file
diff --git a/assets/js/54a6e989.ad26af3a.js b/assets/js/54a6e989.582631f3.js
similarity index 88%
rename from assets/js/54a6e989.ad26af3a.js
rename to assets/js/54a6e989.582631f3.js
index 94c2baac..0d06c5b8 100644
--- a/assets/js/54a6e989.ad26af3a.js
+++ b/assets/js/54a6e989.582631f3.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2450],{5972(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"user_guide/integration/intro","title":"Data Integration Overview","description":"BifroMQ focuses on being deeply integrated, providing foundational MQTT capabilities for various messaging systems. This guide primarily introduces the recommended methods  [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2450],{2695(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"user_guide/integration/intro","title":"Data Integration Overview","description":"BifroMQ focuses on being deeply integrated, providing foundational MQTT capabilities for various messaging systems. This guide primarily introduces the recommended methods  [...]
\ No newline at end of file
diff --git a/assets/js/54aa1ffe.58ec7d94.js b/assets/js/54aa1ffe.58ec7d94.js
new file mode 100644
index 00000000..4d895425
--- /dev/null
+++ b/assets/js/54aa1ffe.58ec7d94.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8276],{42271(e,i,t){t.d(i,{R:()=>o,x:()=>c});var n=t(12888);const s={},r=n.createContext(s);function o(e){const i=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:i},e.children)}},74563(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/54aa1ffe.9c660892.js b/assets/js/54aa1ffe.9c660892.js
deleted file mode 100644
index e1baa925..00000000
--- a/assets/js/54aa1ffe.9c660892.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8276],{82804(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"mqtt_best_practices/topicfilter_design","title":"Topic Filters Design","description":"Topic Filters in MQTT are a mechanism used for subscribing to topics, allowing clients to receive messages from topics they are interested in. When selecting and desi [...]
\ No newline at end of file
diff --git a/assets/js/54c5e9ed.03937b0b.js b/assets/js/54c5e9ed.03937b0b.js
deleted file mode 100644
index 3461f6d8..00000000
--- a/assets/js/54c5e9ed.03937b0b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3297],{50631(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"admin_guide/configuration/configs_print","title":"Configuration Printing","description":"When BifroMQ starts, it prints the values of various configurations in the info logs. Printing configuration information helps you understand the specific settings [...]
\ No newline at end of file
diff --git a/assets/js/54c5e9ed.d56d135e.js b/assets/js/54c5e9ed.d56d135e.js
new file mode 100644
index 00000000..f4783eb0
--- /dev/null
+++ b/assets/js/54c5e9ed.d56d135e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3297],{42271(e,n,t){t.d(n,{R:()=>a,x:()=>s});var i=t(12888);const r={},o=i.createContext(r);function a(e){const n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(o.Provider,{value:n},e.children)}},44770(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/5534d427.748578fd.js b/assets/js/5534d427.748578fd.js
new file mode 100644
index 00000000..693969a3
--- /dev/null
+++ b/assets/js/5534d427.748578fd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[257],{35759(e,t,n){n.d(t,{A:()=>r});const r=n.p+"assets/images/IndependentWorkload-3bcfd6d7b7b46db265d87db47d521be8.png"},42271(e,t,n){n.d(t,{R:()=>o,x:()=>l});var r=n(12888);const i={},s=r.createContext(i);function o(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.compon [...]
\ No newline at end of file
diff --git a/assets/js/5534d427.7873b7ac.js b/assets/js/5534d427.7873b7ac.js
deleted file mode 100644
index b9b57a52..00000000
--- a/assets/js/5534d427.7873b7ac.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[257],{64949(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"cluster/intro","title":"BifroMQ Cluster Overview","description":"BifroMQ employs a decentralized clustering approach, where MQTT protocol workloads are distributed across independent sub-clusters, each dedicated to specific functions. This design is bui [...]
\ No newline at end of file
diff --git a/assets/js/5560.bc465987.js b/assets/js/5560.bc465987.js
new file mode 100644
index 00000000..2bb8b1ef
--- /dev/null
+++ b/assets/js/5560.bc465987.js
@@ -0,0 +1,1837 @@
+/*! For license information please see 5560.bc465987.js.LICENSE.txt */
+(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5560],{261(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SpecExtension=void 0,t.listOf=function(e){return{name:`${e}List`,properties:{},items:e}},t.mapOf=function(e){return{name:`${e}Map`,properties:{},additionalProperties:()=>e}},t.normalizeTypes=function(e,r={}){const n={};for(const t of Object.keys(e))n[t]={...e[t],name:t};for(const t of Object.values(n))i(t);return n.SpecExtension=t.Spec [...]
+    missingProperty: ${i},
+    depsCount: ${t},
+    deps: ${r}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,r]=function({schema:e}){const t={},r={};for(const n in e){if("__proto__"===n)continue;(Array.isArray(e[n])?t:r)[n]=e[n]}return[t,r]}(e);a(e,t),l(e,r)}};function a(e,t=e.schema){const{gen:r,data:i,it:s}=e;if(0===Object.keys(t).length)return;const a=r.let("missing");for(const l in t){const c=t[l];if(0===c.length)continue;const p=(0,o.propertyInData)(r,i,l,s.opts.ownProperties); [...]
+              || (${a} == "string" && ${i} && ${i} == +${i})`).assign(l,s._`+${i}`);case"integer":return void n.elseIf(s._`${a} === "boolean" || ${i} === null
+              || (${a} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(l,s._`+${i}`);case"boolean":return void n.elseIf(s._`${i} === "false" || ${i} === 0 || ${i} === null`).assign(l,!1).elseIf(s._`${i} === "true" || ${i} === 1`).assign(l,!0);case"null":return n.elseIf(s._`${i} === "" || ${i} === 0 || ${i} === false`),void n.assign(l,null);case"array":n.elseIf(s._`${a} === "string" || ${a} === "number"
+              || ${a} === "boolean" || ${i} === null`).assign(l,s._`[${i}]`)}}n.else(),h(e),n.endIf(),n.if(s._`${l} !== undefined`,()=>{n.assign(i,l),function({gen:e,parentData:t,parentDataProperty:r},n){e.if(s._`${t} !== undefined`,()=>e.assign(s._`${t}[${r}]`,n))}(e,l)})}(e,t,a):h(e)})}return c};const p=new Set(["string","number","integer","boolean","null"]);function u(e,t,r,n=l.Correct){const i=n===l.Correct?s.operators.EQ:s.operators.NEQ;let o;switch(e){case"null":return s._`${t} ${i [...]
+      @media ${t?"print, ":""} screen and (max-width: ${t=>t.theme.breakpoints[e]}) ${r||""} {
+        ${K(...n)};
+      }
+    `,greaterThan:e=>(...t)=>K`
+      @media (min-width: ${t=>t.theme.breakpoints[e]}) {
+        ${K(...t)};
+      }
+    `,between:(e,t)=>(...r)=>K`
+      @media (min-width: ${t=>t.theme.breakpoints[e]}) and (max-width: ${e=>e.theme.breakpoints[t]}) {
+        ${K(...r)};
+      }
+    `};var te=G;function re(e){return t=>{if(t.theme.extensionsHook)return t.theme.extensionsHook(e,t)}}const ne=te.div`
+  padding: 20px;
+  color: red;
+`;class ie extends e.Component{constructor(e){super(e),this.state={error:void 0}}componentDidCatch(e){return this.setState({error:e}),!1}render(){return this.state.error?e.createElement(ne,null,e.createElement("h1",null,"Something went wrong..."),e.createElement("small",null," ",this.state.error.message," "),e.createElement("p",null,e.createElement("details",null,e.createElement("summary",null,"Stack trace"),e.createElement("pre",null,this.state.error.stack))),e.createElement("small",nul [...]
+  0% {
+    transform: rotate(0deg); }
+  100% {
+    transform: rotate(360deg);
+  }
+`,se=te(t=>e.createElement("svg",{className:t.className,version:"1.1",width:"512",height:"512",viewBox:"0 0 512 512"},e.createElement("path",{d:"M275.682 147.999c0 10.864-8.837 19.661-19.682 19.661v0c-10.875 0-19.681-8.796-19.681-19.661v-96.635c0-10.885 8.806-19.661 19.681-19.661v0c10.844 0 19.682 8.776 19.682 19.661v96.635z"}),e.createElement("path",{d:"M275.682 460.615c0 10.865-8.837 19.682-19.682 19.682v0c-10.875 0-19.681-8.817-19.681-19.682v-96.604c0-10.885 8.806-19.681 19.681-19.681 [...]
+  animation: 2s ${oe} linear infinite;
+  width: 50px;
+  height: 50px;
+  content: '';
+  display: inline-block;
+  margin-left: -25px;
+
+  path {
+    fill: ${e=>e.color};
+  }
+`,ae=te.div`
+  font-family: helvetica, sans;
+  width: 100%;
+  text-align: center;
+  font-size: 25px;
+  margin: 30px 0 20px 0;
+  color: ${e=>e.color};
+`;class le extends e.PureComponent{render(){return e.createElement("div",{style:{textAlign:"center"}},e.createElement(ae,{color:this.props.color},"Loading ..."),e.createElement(se,{color:this.props.color}))}}var ce=r(2736);const pe=e.createContext(new H({})),ue=pe.Provider,de=pe.Consumer;var fe=r(6317),he=r(7523),me=r(51302),ge=n(65),ye=(e,t,r)=>new Promise((n,i)=>{var o=e=>{try{a(r.next(e))}catch(e){i(e)}},s=e=>{try{a(r.throw(e))}catch(e){i(e)}},a=e=>e.done?n(e.value):Promise.resolve(e. [...]
+  width: calc(100% - ${e=>e.theme.rightPanel.width});
+  padding: 0 ${e=>e.theme.spacing.sectionHorizontal}px;
+
+  ${({$compact:e,theme:t})=>ee.lessThan("medium",!0)`
+    width: 100%;
+    padding: ${`${e?0:t.spacing.sectionVertical}px ${t.spacing.sectionHorizontal}px`};
+  `};
+`,lo=te.div.attrs(e=>({[eo]:e.id}))`
+  padding: ${e=>e.theme.spacing.sectionVertical}px 0;
+
+  &:last-child {
+    min-height: calc(100vh + 1px);
+  }
+
+  & > &:last-child {
+    min-height: initial;
+  }
+
+  ${ee.lessThan("medium",!0)`
+    padding: 0;
+  `}
+  ${({$underlined:e})=>e?"\n    position: relative;\n\n    &:not(:last-of-type):after {\n      position: absolute;\n      bottom: 0;\n      width: 100%;\n      display: block;\n      content: '';\n      border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n    }\n  ":""}
+`,co=te.div`
+  width: ${e=>e.theme.rightPanel.width};
+  color: ${({theme:e})=>e.rightPanel.textColor};
+  background-color: ${e=>e.theme.rightPanel.backgroundColor};
+  padding: 0 ${e=>e.theme.spacing.sectionHorizontal}px;
+
+  ${ee.lessThan("medium",!0)`
+    width: 100%;
+    padding: ${e=>`${e.theme.spacing.sectionVertical}px ${e.theme.spacing.sectionHorizontal}px`};
+  `};
+`,po=te(co)`
+  background-color: ${e=>e.theme.rightPanel.backgroundColor};
+`,uo=te.div`
+  display: flex;
+  width: 100%;
+  padding: 0;
+
+  ${ee.lessThan("medium",!0)`
+    flex-direction: column;
+  `};
+`,fo={1:"1.85714em",2:"1.57143em",3:"1.27em"},ho=e=>K`
+  font-family: ${({theme:e})=>e.typography.headings.fontFamily};
+  font-weight: ${({theme:e})=>e.typography.headings.fontWeight};
+  font-size: ${fo[e]};
+  line-height: ${({theme:e})=>e.typography.headings.lineHeight};
+`,mo=te.h1`
+  ${ho(1)};
+  color: ${({theme:e})=>e.colors.text.primary};
+
+  ${re("H1")};
+`,go=te.h2`
+  ${ho(2)};
+  color: ${({theme:e})=>e.colors.text.primary};
+  margin: 0 0 20px;
+
+  ${re("H2")};
+`,yo=te.h2`
+  ${ho(3)};
+  color: ${({theme:e})=>e.colors.text.primary};
+
+  ${re("H3")};
+`,bo=te.h3`
+  color: ${({theme:e})=>e.rightPanel.textColor};
+
+  ${re("RightPanelHeader")};
+`,vo=te.h5`
+  border-bottom: 1px solid rgba(38, 50, 56, 0.3);
+  margin: 1em 0 1em 0;
+  color: rgba(38, 50, 56, 0.5);
+  font-weight: normal;
+  text-transform: uppercase;
+  font-size: 0.929em;
+  line-height: 20px;
+
+  ${re("UnderlinedHeader")};
+`;var xo=(e,t,r)=>new Promise((n,i)=>{var o=e=>{try{a(r.next(e))}catch(e){i(e)}},s=e=>{try{a(r.throw(e))}catch(e){i(e)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())});const wo=(0,e.createContext)(void 0),{Provider:So,Consumer:Oo}=wo;function ko(t){const{spec:r,specUrl:n,options:i,onLoaded:o,children:s}=t,[a,l]=e.useState(null),[c,p]=e.useState(null);if(c)throw c;e.useEffect(()=>{!function(){xo(this,null,function*(){if(r||n){l(null);try{const e=yie [...]
+  ${e} {
+    cursor: pointer;
+    margin-left: -20px;
+    padding: 0;
+    line-height: 1;
+    width: 20px;
+    display: inline-block;
+    outline: 0;
+  }
+  ${e}:before {
+    content: '';
+    width: 15px;
+    height: 15px;
+    background-size: contain;
+    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS4 [...]
+    opacity: 0.5;
+    visibility: hidden;
+    display: inline-block;
+    vertical-align: middle;
+  }
+
+  h1:hover > ${e}::before, h2:hover > ${e}::before, ${e}:hover::before {
+    visibility: visible;
+  }
+`,Ao=te(function(t){const r=e.useContext(wo),n=e.useCallback(e=>{r&&function(e,t,r){t.defaultPrevented||0!==t.button||(e=>!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey))(t)||(t.preventDefault(),e.replace(encodeURI(r)))}(r.menu.history,e,t.to)},[r,t.to]);return r?e.createElement("a",{className:t.className,href:r.menu.history.linkForId(t.to),onClick:n,"aria-label":t.to},t.children):null})`
+  ${_o("&")};
+`;function Po(t){return e.createElement(Ao,{to:t.to})}const jo={left:"90deg",right:"-90deg",up:"-180deg",down:"0"},$o=te(t=>e.createElement("svg",{className:t.className,style:t.style,version:"1.1",viewBox:"0 0 24 24",x:"0",xmlns:"http://www.w3.org/2000/svg",y:"0","aria-hidden":"true"},e.createElement("polygon",{points:"17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "})))`
+  height: ${e=>e.size||"18px"};
+  width: ${e=>e.size||"18px"};
+  min-width: ${e=>e.size||"18px"};
+  vertical-align: middle;
+  float: ${e=>e.float||""};
+  transition: transform 0.2s ease-out;
+  transform: rotateZ(${e=>jo[e.direction||"down"]});
+
+  polygon {
+    fill: ${({color:e,theme:t})=>e&&t.colors.responses[e]&&t.colors.responses[e].color||e};
+  }
+`,Co=te.span`
+  display: inline-block;
+  padding: 2px 8px;
+  margin: 0;
+  background-color: ${e=>e.color||e.theme.colors[e.type].main};
+  color: ${e=>e.theme.colors[e.type].contrastText};
+  font-size: ${e=>e.theme.typography.code.fontSize};
+  vertical-align: middle;
+  line-height: 1.6;
+  border-radius: 4px;
+  font-weight: ${({theme:e})=>e.typography.fontWeightBold};
+  font-size: 12px;
+  + span[type] {
+    margin-left: 4px;
+  }
+`,To=K`
+  text-decoration: line-through;
+  color: #707070;
+`,Io=te.caption`
+  text-align: right;
+  font-size: 0.9em;
+  font-weight: normal;
+  color: ${e=>e.theme.colors.text.secondary};
+`,Ro=te.td`
+  border-left: 1px solid ${e=>e.theme.schema.linesColor};
+  box-sizing: border-box;
+  position: relative;
+  padding: 10px 10px 10px 0;
+
+  ${ee.lessThan("small")`
+    display: block;
+    overflow: hidden;
+  `}
+
+  tr:first-of-type > &,
+  tr.last > & {
+    border-left-width: 0;
+    background-position: top left;
+    background-repeat: no-repeat;
+    background-size: 1px 100%;
+  }
+
+  tr:first-of-type > & {
+    background-image: linear-gradient(
+      to bottom,
+      transparent 0%,
+      transparent 22px,
+      ${e=>e.theme.schema.linesColor} 22px,
+      ${e=>e.theme.schema.linesColor} 100%
+    );
+  }
+
+  tr.last > & {
+    background-image: linear-gradient(
+      to bottom,
+      ${e=>e.theme.schema.linesColor} 0%,
+      ${e=>e.theme.schema.linesColor} 22px,
+      transparent 22px,
+      transparent 100%
+    );
+  }
+
+  tr.last + tr > & {
+    border-left-color: transparent;
+  }
+
+  tr.last:first-child > & {
+    background: none;
+    border-left-color: transparent;
+  }
+`,No=te(Ro)`
+  padding: 0;
+`,Lo=te(Ro)`
+  vertical-align: top;
+  line-height: 20px;
+  white-space: nowrap;
+  font-size: 13px;
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+
+  &.deprecated {
+    ${To};
+  }
+
+  ${({kind:e})=>"patternProperties"===e&&K`
+      > span.property-name {
+        display: inline-table;
+        white-space: break-spaces;
+        margin-right: 20px;
+
+        ::before,
+        ::after {
+          content: '/';
+          filter: opacity(0.2);
+        }
+      }
+    `}
+
+  ${({kind:e=""})=>["field","additionalProperties","patternProperties"].includes(e)?"":"font-style: italic"};
+
+  ${re("PropertyNameCell")};
+`,Mo=te.td`
+  border-bottom: 1px solid #9fb4be;
+  padding: 10px 0;
+  width: ${e=>e.theme.schema.defaultDetailsWidth};
+  box-sizing: border-box;
+
+  tr.expanded & {
+    border-bottom: none;
+  }
+
+  ${ee.lessThan("small")`
+    padding: 0 20px;
+    border-bottom: none;
+    border-left: 1px solid ${e=>e.theme.schema.linesColor};
+
+    tr.last > & {
+      border-left: none;
+    }
+  `}
+
+  ${re("PropertyDetailsCell")};
+`,Do=te.span`
+  color: ${e=>e.theme.schema.linesColor};
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  margin-right: 10px;
+
+  &::before {
+    content: '';
+    display: inline-block;
+    vertical-align: middle;
+    width: 10px;
+    height: 1px;
+    background: ${e=>e.theme.schema.linesColor};
+  }
+
+  &::after {
+    content: '';
+    display: inline-block;
+    vertical-align: middle;
+    width: 1px;
+    background: ${e=>e.theme.schema.linesColor};
+    height: 7px;
+  }
+`,zo=te.div`
+  padding: ${({theme:e})=>e.schema.nestingSpacing};
+`,Fo=te.table`
+  border-collapse: separate;
+  border-radius: 3px;
+  font-size: ${e=>e.theme.typography.fontSize};
+
+  border-spacing: 0;
+  width: 100%;
+
+  > tr {
+    vertical-align: middle;
+  }
+
+  ${ee.lessThan("small")`
+    display: block;
+    > tr, > tbody > tr {
+      display: block;
+    }
+  `}
+
+  ${ee.lessThan("small",!1," and (-ms-high-contrast:none)")`
+    td {
+      float: left;
+      width: 100%;
+    }
+  `}
+
+  &
+    ${zo},
+    &
+    ${zo}
+    ${zo}
+    ${zo},
+    &
+    ${zo}
+    ${zo}
+    ${zo}
+    ${zo}
+    ${zo} {
+    margin: ${({theme:e})=>e.schema.nestingSpacing};
+    margin-right: 0;
+    background: ${({theme:e})=>e.schema.nestedBackground};
+  }
+
+  &
+    ${zo}
+    ${zo},
+    &
+    ${zo}
+    ${zo}
+    ${zo}
+    ${zo},
+    &
+    ${zo}
+    ${zo}
+    ${zo}
+    ${zo}
+    ${zo}
+    ${zo} {
+    background: #ffffff;
+  }
+`,Bo=te.div`
+  margin: 0 0 3px 0;
+  display: inline-block;
+`,qo=te.span`
+  font-size: 0.9em;
+  margin-right: 10px;
+  color: ${e=>e.theme.colors.primary.main};
+  font-family: ${e=>e.theme.typography.headings.fontFamily};
+}
+`,Uo=te.button`
+  display: inline-block;
+  margin-right: 10px;
+  margin-bottom: 5px;
+  font-size: 0.8em;
+  cursor: pointer;
+  border: 1px solid ${e=>e.theme.colors.primary.main};
+  padding: 2px 10px;
+  line-height: 1.5em;
+  outline: none;
+  &:focus {
+    box-shadow: 0 0 0 1px ${e=>e.theme.colors.primary.main};
+  }
+
+  ${({$deprecated:e})=>e&&To||""};
+
+  ${e=>e.$active?`\n      color: white;\n      background-color: ${e.theme.colors.primary.main};\n      &:focus {\n        box-shadow: none;\n        background-color: ${(0,t.darken)(.15,e.theme.colors.primary.main)};\n      }\n      `:`\n        color: ${e.theme.colors.primary.main};\n        background-color: white;\n      `}
+`,Vo=te.div`
+  font-size: 0.9em;
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  &::after {
+    content: ' [';
+  }
+`,Wo=te.div`
+  font-size: 0.9em;
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  &::after {
+    content: ']';
+  }
+`;var Ho=r(34471);const Qo=te(Ho.Tabs)`
+  > ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    margin: 0 -5px;
+
+    > li {
+      padding: 5px 10px;
+      display: inline-block;
+
+      background-color: ${({theme:e})=>e.codeBlock.backgroundColor};
+      border-bottom: 1px solid rgba(0, 0, 0, 0.5);
+      cursor: pointer;
+      text-align: center;
+      outline: none;
+      color: ${({theme:e})=>(0,t.darken)(e.colors.tonalOffset,e.rightPanel.textColor)};
+      margin: 0
+        ${({theme:e})=>`${e.spacing.unit}px ${e.spacing.unit}px ${e.spacing.unit}px`};
+      border: 1px solid ${({theme:e})=>(0,t.darken)(.05,e.codeBlock.backgroundColor)};
+      border-radius: 5px;
+      min-width: 60px;
+      font-size: 0.9em;
+      font-weight: bold;
+
+      &.react-tabs__tab--selected {
+        color: ${e=>e.theme.colors.text.primary};
+        background: ${({theme:e})=>e.rightPanel.textColor};
+        &:focus {
+          outline: auto;
+        }
+      }
+
+      &:only-child {
+        flex: none;
+        min-width: 100px;
+      }
+
+      &.tab-success {
+        color: ${e=>e.theme.colors.responses.success.tabTextColor};
+      }
+
+      &.tab-redirect {
+        color: ${e=>e.theme.colors.responses.redirect.tabTextColor};
+      }
+
+      &.tab-info {
+        color: ${e=>e.theme.colors.responses.info.tabTextColor};
+      }
+
+      &.tab-error {
+        color: ${e=>e.theme.colors.responses.error.tabTextColor};
+      }
+    }
+  }
+  > .react-tabs__tab-panel {
+    background: ${({theme:e})=>e.codeBlock.backgroundColor};
+    & > div,
+    & > pre {
+      padding: ${e=>4*e.theme.spacing.unit}px;
+      margin: 0;
+    }
+
+    & > div > pre {
+      padding: 0;
+    }
+  }
+`,Yo=(te(Qo)`
+  > ul {
+    display: block;
+    > li {
+      padding: 2px 5px;
+      min-width: auto;
+      margin: 0 15px 0 0;
+      font-size: 13px;
+      font-weight: normal;
+      border-bottom: 1px dashed;
+      color: ${({theme:e})=>(0,t.darken)(e.colors.tonalOffset,e.rightPanel.textColor)};
+      border-radius: 0;
+      background: none;
+
+      &:last-child {
+        margin-right: 0;
+      }
+
+      &.react-tabs__tab--selected {
+        color: ${({theme:e})=>e.rightPanel.textColor};
+        background: none;
+      }
+    }
+  }
+  > .react-tabs__tab-panel {
+    & > div,
+    & > pre {
+      padding: ${e=>2*e.theme.spacing.unit}px 0;
+    }
+  }
+`,te.div`
+  /**
+  * Based on prism-dark.css
+  */
+
+  code[class*='language-'],
+  pre[class*='language-'] {
+    /* color: white;
+    background: none; */
+    text-shadow: 0 -0.1em 0.2em black;
+    text-align: left;
+    white-space: pre;
+    word-spacing: normal;
+    word-break: normal;
+    word-wrap: normal;
+    line-height: 1.5;
+
+    -moz-tab-size: 4;
+    -o-tab-size: 4;
+    tab-size: 4;
+
+    -webkit-hyphens: none;
+    -moz-hyphens: none;
+    -ms-hyphens: none;
+    hyphens: none;
+  }
+
+  @media print {
+    code[class*='language-'],
+    pre[class*='language-'] {
+      text-shadow: none;
+    }
+  }
+
+  /* Code blocks */
+  pre[class*='language-'] {
+    padding: 1em;
+    margin: 0.5em 0;
+    overflow: auto;
+  }
+
+  .token.comment,
+  .token.prolog,
+  .token.doctype,
+  .token.cdata {
+    color: hsl(30, 20%, 50%);
+  }
+
+  .token.punctuation {
+    opacity: 0.7;
+  }
+
+  .namespace {
+    opacity: 0.7;
+  }
+
+  .token.property,
+  .token.tag,
+  .token.number,
+  .token.constant,
+  .token.symbol {
+    color: #4a8bb3;
+  }
+
+  .token.boolean {
+    color: #e64441;
+  }
+
+  .token.selector,
+  .token.attr-name,
+  .token.string,
+  .token.char,
+  .token.builtin,
+  .token.inserted {
+    color: #a0fbaa;
+    & + a,
+    & + a:visited {
+      color: #4ed2ba;
+      text-decoration: underline;
+    }
+  }
+
+  .token.property.string {
+    color: white;
+  }
+
+  .token.operator,
+  .token.entity,
+  .token.url,
+  .token.variable {
+    color: hsl(40, 90%, 60%);
+  }
+
+  .token.atrule,
+  .token.attr-value,
+  .token.keyword {
+    color: hsl(350, 40%, 70%);
+  }
+
+  .token.regex,
+  .token.important {
+    color: #e90;
+  }
+
+  .token.important,
+  .token.bold {
+    font-weight: bold;
+  }
+  .token.italic {
+    font-style: italic;
+  }
+
+  .token.entity {
+    cursor: help;
+  }
+
+  .token.deleted {
+    color: red;
+  }
+
+  ${re("Prism")};
+`),Go=te.div`
+  opacity: 0.7;
+  transition: opacity 0.3s ease;
+  text-align: right;
+  &:focus-within {
+    opacity: 1;
+  }
+  > button {
+    background-color: transparent;
+    border: 0;
+    color: inherit;
+    padding: 2px 10px;
+    font-family: ${({theme:e})=>e.typography.fontFamily};
+    font-size: ${({theme:e})=>e.typography.fontSize};
+    line-height: ${({theme:e})=>e.typography.lineHeight};
+    cursor: pointer;
+    outline: 0;
+
+    :hover,
+    :focus {
+      background: rgba(255, 255, 255, 0.1);
+    }
+  }
+`,Ko=te.div`
+  &:hover ${Go} {
+    opacity: 1;
+  }
+`,Xo=te(Yo).attrs({as:"pre"})`
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  font-size: ${e=>e.theme.typography.code.fontSize};
+  overflow-x: auto;
+  margin: 0;
+
+  white-space: ${({theme:e})=>e.typography.code.wrap?"pre-wrap":"pre"};
+`;var Jo=r(64431),Zo=n.n(Jo),es=Object.defineProperty,ts=Object.getOwnPropertySymbols,rs=Object.prototype.hasOwnProperty,ns=Object.prototype.propertyIsEnumerable,is=(e,t,r)=>t in e?es(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const os=Zo()||Jo;let ss="";a&&(ss=n(494),ss="function"==typeof ss.toString&&ss.toString()||"",ss="[object Object]"===ss?"":ss);const as=X`${ss}`,ls=te.div`
+  position: relative;
+`;class cs extends e.Component{constructor(){super(...arguments),this.handleRef=e=>{this._container=e}}componentDidMount(){const e=this._container.parentElement&&this._container.parentElement.scrollTop||0;this.inst=new os(this._container,this.props.options||{}),this._container.scrollTo&&this._container.scrollTo(0,e)}componentDidUpdate(){this.inst.update()}componentWillUnmount(){this.inst.destroy()}render(){const{children:t,className:r,updateFn:n}=this.props;return n&&n(this.componentDidU [...]
+  position: absolute;
+  pointer-events: none;
+  z-index: 1;
+  top: 50%;
+  -webkit-transform: translateY(-50%);
+  -ms-transform: translateY(-50%);
+  transform: translateY(-50%);
+  right: 8px;
+  margin: auto;
+  text-align: center;
+  polyline {
+    color: ${e=>"dark"===e.variant&&"white"};
+  }
+`,ds=e.memo(t=>{const{options:r,onChange:n,placeholder:i,value:o="",variant:s,className:a}=t;return e.createElement("div",{className:a},e.createElement(us,{variant:s}),e.createElement("select",{onChange:e=>{const{selectedIndex:t}=e.target;n(r[i?t-1:t])},value:o,className:"dropdown-select"},i&&e.createElement("option",{disabled:!0,hidden:!0,value:i},i),r.map(({idx:t,value:r,title:n},i)=>e.createElement("option",{key:t||r+i,value:r},n||r))),e.createElement("label",null,o))}),fs=Y()(ds)`
+  label {
+    box-sizing: border-box;
+    min-width: 100px;
+    outline: none;
+    display: inline-block;
+    font-family: ${e=>e.theme.typography.headings.fontFamily};
+    color: ${({theme:e})=>e.colors.text.primary};
+    vertical-align: bottom;
+    width: ${({fullWidth:e})=>e?"100%":"auto"};
+    text-transform: none;
+    padding: 0 22px 0 4px;
+
+    font-size: 0.929em;
+    line-height: 1.5em;
+    font-family: inherit;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    white-space: nowrap;
+  }
+  .dropdown-select {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    opacity: 0;
+    border: none;
+    appearance: none;
+    cursor: pointer;
+
+    color: ${({theme:e})=>e.colors.text.primary};
+    line-height: inherit;
+    font-family: inherit;
+  }
+  box-sizing: border-box;
+  min-width: 100px;
+  outline: none;
+  display: inline-block;
+  border-radius: 2px;
+  border: 1px solid rgba(38, 50, 56, 0.5);
+  vertical-align: bottom;
+  padding: 2px 0px 2px 6px;
+  position: relative;
+  width: auto;
+  background: white;
+  color: #263238;
+  font-family: ${e=>e.theme.typography.headings.fontFamily};
+  font-size: 0.929em;
+  line-height: 1.5em;
+  cursor: pointer;
+  transition: border 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
+
+  &:hover,
+  &:focus-within {
+    border: 1px solid ${e=>e.theme.colors.primary.main};
+    color: ${e=>e.theme.colors.primary.main};
+    box-shadow: 0px 0px 0px 1px ${e=>e.theme.colors.primary.main};
+  }
+`,hs=Y()(fs)`
+  margin-left: 10px;
+  text-transform: none;
+  font-size: 0.969em;
+
+  font-size: 1em;
+  border: none;
+  padding: 0 1.2em 0 0;
+  background: transparent;
+
+  &:hover,
+  &:focus-within {
+    border: none;
+    box-shadow: none;
+    label {
+      color: ${e=>e.theme.colors.primary.main};
+      text-shadow: 0px 0px 0px ${e=>e.theme.colors.primary.main};
+    }
+  }
+`,ms=Y().span`
+  margin-left: 10px;
+  text-transform: none;
+  font-size: 0.929em;
+  color: black;
+`;var gs=Object.defineProperty,ys=Object.getOwnPropertySymbols,bs=Object.prototype.hasOwnProperty,vs=Object.prototype.propertyIsEnumerable,xs=(e,t,r)=>t in e?gs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ws=(e,t)=>{for(var r in t||(t={}))bs.call(t,r)&&xs(e,r,t[r]);if(ys)for(var r of ys(t))vs.call(t,r)&&xs(e,r,t[r]);return e};function Ss(t){const{Label:r=ms,Dropdown:n=hs}=t;return 1===t.options.length?e.createElement(r,null,t.options[0].value):e.createElement(n,ws({}, [...]
+  a {
+    text-decoration: ${e=>e.theme.typography.links.textDecoration};
+    color: ${e=>e.theme.typography.links.color};
+
+    &:visited {
+      color: ${e=>e.theme.typography.links.visited};
+    }
+
+    &:hover {
+      color: ${e=>e.theme.typography.links.hover};
+      text-decoration: ${e=>e.theme.typography.links.hoverTextDecoration};
+    }
+  }
+`,Es=te(Yo)`
+  font-family: ${e=>e.theme.typography.fontFamily};
+  font-weight: ${e=>e.theme.typography.fontWeightRegular};
+  line-height: ${e=>e.theme.typography.lineHeight};
+
+  p {
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  ${({$compact:e})=>e&&"\n    p:first-child {\n      margin-top: 0;\n    }\n    p:last-child {\n      margin-bottom: 0;\n    }\n  "}
+
+  ${({$inline:e})=>e&&" p {\n    display: inline-block;\n  }"}
+
+  h1 {
+    ${ho(1)};
+    color: ${e=>e.theme.colors.primary.main};
+    margin-top: 0;
+  }
+
+  h2 {
+    ${ho(2)};
+    color: ${e=>e.theme.colors.text.primary};
+  }
+
+  code {
+    color: ${({theme:e})=>e.typography.code.color};
+    background-color: ${({theme:e})=>e.typography.code.backgroundColor};
+
+    font-family: ${e=>e.theme.typography.code.fontFamily};
+    border-radius: 2px;
+    border: 1px solid rgba(38, 50, 56, 0.1);
+    padding: 0 ${({theme:e})=>e.spacing.unit}px;
+    font-size: ${e=>e.theme.typography.code.fontSize};
+    font-weight: ${({theme:e})=>e.typography.code.fontWeight};
+
+    word-break: break-word;
+  }
+
+  pre {
+    font-family: ${e=>e.theme.typography.code.fontFamily};
+    white-space: ${({theme:e})=>e.typography.code.wrap?"pre-wrap":"pre"};
+    background-color: ${({theme:e})=>e.codeBlock.backgroundColor};
+    color: white;
+    padding: ${e=>4*e.theme.spacing.unit}px;
+    overflow-x: auto;
+    line-height: normal;
+    border-radius: 0;
+    border: 1px solid rgba(38, 50, 56, 0.1);
+
+    code {
+      background-color: transparent;
+      color: white;
+      padding: 0;
+
+      &:before,
+      &:after {
+        content: none;
+      }
+    }
+  }
+
+  blockquote {
+    margin: 0;
+    margin-bottom: 1em;
+    padding: 0 15px;
+    color: #777;
+    border-left: 4px solid #ddd;
+  }
+
+  img {
+    max-width: 100%;
+    box-sizing: content-box;
+  }
+
+  ul,
+  ol {
+    padding-left: 2em;
+    margin: 0;
+    margin-bottom: 1em;
+
+    ul,
+    ol {
+      margin-bottom: 0;
+      margin-top: 0;
+    }
+  }
+
+  table {
+    display: block;
+    width: 100%;
+    overflow: auto;
+    word-break: normal;
+    word-break: keep-all;
+    border-collapse: collapse;
+    border-spacing: 0;
+    margin-top: 1.5em;
+    margin-bottom: 1.5em;
+  }
+
+  table tr {
+    background-color: #fff;
+    border-top: 1px solid #ccc;
+
+    &:nth-child(2n) {
+      background-color: ${({theme:e})=>e.schema.nestedBackground};
+    }
+  }
+
+  table th,
+  table td {
+    padding: 6px 13px;
+    border: 1px solid #ddd;
+  }
+
+  table th {
+    text-align: left;
+    font-weight: bold;
+  }
+
+  ${_o(".share-link")};
+
+  ${ks}
+
+  ${re("Markdown")};
+`;var _s=Object.defineProperty,As=Object.defineProperties,Ps=Object.getOwnPropertyDescriptors,js=Object.getOwnPropertySymbols,$s=Object.prototype.hasOwnProperty,Cs=Object.prototype.propertyIsEnumerable,Ts=(e,t,r)=>t in e?_s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const Is=Y()(Es)`
+  display: inline;
+`;function Rs(t){var r=t,{inline:n,compact:i}=r,o=((e,t)=>{var r={};for(var n in e)$s.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&js)for(var n of js(e))t.indexOf(n)<0&&Cs.call(e,n)&&(r[n]=e[n]);return r})(r,["inline","compact"]);const s=n?Is:Es;return e.createElement(de,null,t=>{return e.createElement(s,(r=((e,t)=>{for(var r in t||(t={}))$s.call(t,r)&&Ts(e,r,t[r]);if(js)for(var r of js(t))Cs.call(t,r)&&Ts(e,r,t[r]);return e})({className:"redoc-markdown "+(o.className||""),dangerou [...]
+  position: relative;
+`,Ms=te.div`
+  position: absolute;
+  min-width: 80px;
+  max-width: 500px;
+  background: #fff;
+  bottom: 100%;
+  left: 50%;
+  margin-bottom: 10px;
+  transform: translateX(-50%);
+
+  border-radius: 4px;
+  padding: 0.3em 0.6em;
+  text-align: center;
+  box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);
+`,Ds=te.div`
+  background: #fff;
+  color: #000;
+  display: inline;
+  font-size: 0.85em;
+  white-space: nowrap;
+`,zs=te.div`
+  position: absolute;
+  width: 0;
+  height: 0;
+  bottom: -5px;
+  left: 50%;
+  margin-left: -5px;
+  border-left: solid transparent 5px;
+  border-right: solid transparent 5px;
+  border-top: solid #fff 5px;
+`,Fs=te.div`
+  position: absolute;
+  width: 100%;
+  height: 20px;
+  bottom: -20px;
+`;class Bs extends e.Component{render(){const{open:t,title:r,children:n}=this.props;return e.createElement(Ls,null,n,t&&e.createElement(Ms,null,e.createElement(Ds,null,r),e.createElement(zs,null),e.createElement(Fs,null)))}}const qs="undefined"!=typeof document&&document.queryCommandSupported&&document.queryCommandSupported("copy");class Us{static isSupported(){return qs}static selectElement(e){let t,r;document.body.createTextRange?(t=document.body.createTextRange(),t.moveToElementText(e [...]
+  .redoc-json code > .collapser {
+    display: none;
+    pointer-events: none;
+  }
+
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  font-size: ${e=>e.theme.typography.code.fontSize};
+
+  white-space: ${({theme:e})=>e.typography.code.wrap?"pre-wrap":"pre"};
+  contain: content;
+  overflow-x: auto;
+
+  .callback-function {
+    color: gray;
+  }
+
+  .collapser:after {
+    content: '-';
+    cursor: pointer;
+  }
+
+  .collapsed > .collapser:after {
+    content: '+';
+    cursor: pointer;
+  }
+
+  .ellipsis:after {
+    content: ' … ';
+  }
+
+  .collapsible {
+    margin-left: 2em;
+  }
+
+  .hoverable {
+    padding-top: 1px;
+    padding-bottom: 1px;
+    padding-left: 2px;
+    padding-right: 2px;
+    border-radius: 2px;
+  }
+
+  .hovered {
+    background-color: rgba(235, 238, 249, 1);
+  }
+
+  .collapser {
+    background-color: transparent;
+    border: 0;
+    color: #fff;
+    font-family: ${e=>e.theme.typography.code.fontFamily};
+    font-size: ${e=>e.theme.typography.code.fontSize};
+    padding-right: 6px;
+    padding-left: 6px;
+    padding-top: 0;
+    padding-bottom: 0;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 15px;
+    height: 15px;
+    position: absolute;
+    top: 4px;
+    left: -1.5em;
+    cursor: default;
+    user-select: none;
+    -webkit-user-select: none;
+    padding: 2px;
+    &:focus {
+      outline-color: #fff;
+      outline-style: dotted;
+      outline-width: 1px;
+    }
+  }
+
+  ul {
+    list-style-type: none;
+    padding: 0px;
+    margin: 0px 0px 0px 26px;
+  }
+
+  li {
+    position: relative;
+    display: block;
+  }
+
+  .hoverable {
+    display: inline-block;
+  }
+
+  .selected {
+    outline-style: solid;
+    outline-width: 1px;
+    outline-style: dotted;
+  }
+
+  .collapsed > .collapsible {
+    display: none;
+  }
+
+  .ellipsis {
+    display: none;
+  }
+
+  .collapsed > .ellipsis {
+    display: inherit;
+  }
+`,Zs=te.div`
+  &:hover > ${Go} {
+    opacity: 1;
+  }
+`,ea=te(t=>{const[r,n]=e.useState(),i=({renderCopyButton:r})=>{const i=t.data&&Object.values(t.data).some(e=>"object"==typeof e&&null!==e);return e.createElement(Zs,null,e.createElement(Go,null,r(),i&&e.createElement(e.Fragment,null,e.createElement("button",{onClick:o}," Expand all "),e.createElement("button",{onClick:s}," Collapse all "))),e.createElement(pe.Consumer,null,r=>e.createElement(Yo,{className:t.className,ref:e=>n(e),dangerouslySetInnerHTML:{__html:Hs(t.data,r.jsonSamplesExpa [...]
+  ${Js};
+`,ta=t=>{const{source:r,lang:n}=t;return e.createElement(Xo,{dangerouslySetInnerHTML:{__html:_t(r,n)}})},ra=t=>{const{source:r,lang:n}=t;return e.createElement(Vs,{data:r},({renderCopyButton:t})=>e.createElement(Ko,null,e.createElement(Go,null,t()),e.createElement(ta,{lang:n,source:r})))};function na({value:t,mimeType:r}){return We(r)?e.createElement(ea,{data:t}):("object"==typeof t&&(t=JSON.stringify(t,null,2)),e.createElement(ra,{lang:et(r),source:t}))}var ia=(e,t,r)=>new Promise((n,i) [...]
+  padding: 0.9em;
+  background-color: ${({theme:e})=>(0,t.transparentize)(.6,e.rightPanel.backgroundColor)};
+  margin: 0 0 10px 0;
+  display: block;
+  font-family: ${({theme:e})=>e.typography.headings.fontFamily};
+  font-size: 0.929em;
+  line-height: 1.5em;
+`,la=te.span`
+  font-family: ${({theme:e})=>e.typography.headings.fontFamily};
+  font-size: 12px;
+  position: absolute;
+  z-index: 1;
+  top: -11px;
+  left: 12px;
+  font-weight: ${({theme:e})=>e.typography.fontWeightBold};
+  color: ${({theme:e})=>(0,t.transparentize)(.3,e.rightPanel.textColor)};
+`,ca=te.div`
+  position: relative;
+`,pa=te(fs)`
+  label {
+    color: ${({theme:e})=>e.rightPanel.textColor};
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    overflow: hidden;
+    font-size: 1em;
+    text-transform: none;
+    border: none;
+  }
+  margin: 0 0 10px 0;
+  display: block;
+  background-color: ${({theme:e})=>(0,t.transparentize)(.6,e.rightPanel.backgroundColor)};
+  border: none;
+  padding: 0.9em 1.6em 0.9em 0.9em;
+  box-shadow: none;
+  &:hover,
+  &:focus-within {
+    border: none;
+    box-shadow: none;
+    background-color: ${({theme:e})=>(0,t.transparentize)(.3,e.rightPanel.backgroundColor)};
+  }
+`,ua=te.div`
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  font-size: 12px;
+  color: #ee807f;
+`;class da extends e.Component{constructor(){super(...arguments),this.state={activeIdx:0},this.switchMedia=({idx:e})=>{void 0!==e&&this.setState({activeIdx:e})}}render(){const{activeIdx:t}=this.state,r=this.props.mediaType.examples||{},n=this.props.mediaType.name,i=e.createElement(ua,null,"No sample"),o=Object.keys(r);if(0===o.length)return i;if(o.length>1){const i=o.map((e,t)=>({value:r[e].summary||e,idx:t})),s=r[o[t]],a=s.description;return e.createElement(fa,null,e.createElement(ca,nu [...]
+  margin-top: 15px;
+`;var ha=r(52856);const ma=te(Lo)`
+  &.deprecated {
+    span.property-name {
+      ${To}
+    }
+  }
+
+  button {
+    background-color: transparent;
+    border: 0;
+    outline: 0;
+    font-size: 13px;
+    font-family: ${e=>e.theme.typography.code.fontFamily};
+    cursor: pointer;
+    padding: 0;
+    color: ${e=>e.theme.colors.text.primary};
+    &:focus {
+      font-weight: ${({theme:e})=>e.typography.fontWeightBold};
+    }
+    ${({kind:e})=>"patternProperties"===e&&K`
+        display: inline-flex;
+        margin-right: 20px;
+
+        > span.property-name {
+          white-space: break-spaces;
+          text-align: left;
+
+          ::before,
+          ::after {
+            content: '/';
+            filter: opacity(0.2);
+          }
+        }
+
+        > svg {
+          align-self: center;
+        }
+      `}
+  }
+  ${$o} {
+    height: ${({theme:e})=>e.schema.arrow.size};
+    width: ${({theme:e})=>e.schema.arrow.size};
+    polygon {
+      fill: ${({theme:e})=>e.schema.arrow.color};
+    }
+  }
+`,ga=te.span`
+  vertical-align: middle;
+  font-size: ${({theme:e})=>e.typography.code.fontSize};
+  line-height: 20px;
+`,ya=te(ga)`
+  color: ${e=>(0,t.transparentize)(.1,e.theme.schema.typeNameColor)};
+`,ba=te(ga)`
+  color: ${e=>e.theme.schema.typeNameColor};
+`,va=te(ga)`
+  color: ${e=>e.theme.schema.typeTitleColor};
+  word-break: break-word;
+`,xa=ba,wa=te(ga).attrs({as:"div"})`
+  color: ${e=>e.theme.schema.requireLabelColor};
+  font-size: ${e=>e.theme.schema.labelsTextSize};
+  font-weight: normal;
+  margin-left: 20px;
+  line-height: 1;
+`,Sa=te(wa)`
+  color: ${e=>e.theme.colors.primary.light};
+`,Oa=te(ga)`
+  color: ${({theme:e})=>e.colors.warning.main};
+  font-size: 13px;
+`,ka=te(ga)`
+  color: #0e7c86;
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  font-size: 12px;
+  &::before,
+  &::after {
+    content: ' ';
+  }
+`,Ea=te(ga)`
+  border-radius: 2px;
+  word-break: break-word;
+  ${({theme:e})=>`\n    background-color: ${(0,t.transparentize)(.95,e.colors.text.primary)};\n    color: ${(0,t.transparentize)(.1,e.colors.text.primary)};\n\n    padding: 0 ${e.spacing.unit}px;\n    border: 1px solid ${(0,t.transparentize)(.9,e.colors.text.primary)};\n    font-family: ${e.typography.code.fontFamily};\n}`};
+  & + & {
+    margin-left: 0;
+  }
+  ${re("ExampleValue")};
+`,_a=te(Ea)``,Aa=te(ga)`
+  border-radius: 2px;
+  ${({theme:e})=>`\n    background-color: ${(0,t.transparentize)(.95,e.colors.primary.light)};\n    color: ${(0,t.transparentize)(.1,e.colors.primary.main)};\n\n    margin: 0 ${e.spacing.unit}px;\n    padding: 0 ${e.spacing.unit}px;\n    border: 1px solid ${(0,t.transparentize)(.9,e.colors.primary.main)};\n}`};
+  & + & {
+    margin-left: 0;
+  }
+  ${re("ConstraintItem")};
+`,Pa=te.button`
+  background-color: transparent;
+  border: 0;
+  color: ${({theme:e})=>e.colors.text.secondary};
+  margin-left: ${({theme:e})=>e.spacing.unit}px;
+  border-radius: 2px;
+  cursor: pointer;
+  outline-color: ${({theme:e})=>e.colors.text.secondary};
+  font-size: 12px;
+`;Object.defineProperty,Object.getOwnPropertyDescriptor;const ja=te.div`
+  ${ks};
+  ${({$compact:e})=>e?"":"margin: 1em 0"}
+`;let $a=class extends e.Component{render(){const{externalDocs:t}=this.props;return t&&t.url?e.createElement(ja,{$compact:this.props.compact},e.createElement("a",{href:t.url},t.description||t.url)):null}};$a=((e,t)=>{for(var r,n=t,i=e.length-1;i>=0;i--)(r=e[i])&&(n=r(n)||n);return n})([ha.observer],$a);const Ca=te(Es)`
+  table {
+    margin-bottom: 0.2em;
+  }
+`;class Ta extends e.PureComponent{constructor(e){super(e),this.state={collapsed:!0},this.toggle=this.toggle.bind(this)}toggle(){this.setState({collapsed:!this.state.collapsed})}render(){const{values:t,type:r}=this.props,{collapsed:n}=this.state,i=!Array.isArray(t),o=Array.isArray(t)&&t||Object.entries(t||{}).map(([e,t])=>({value:e,description:t})),{enumSkipQuotes:s,maxDisplayedEnumValues:a}=this.context;if(!o.length)return null;const l=this.state.collapsed&&a?o.slice(0,a):o,c=!!a&&o.len [...]
+  color: ${e=>e.theme.colors.primary.main};
+  vertical-align: middle;
+  font-size: 13px;
+  line-height: 20px;
+  padding: 0 5px;
+  cursor: pointer;
+`,Ra=te(Es)`
+  margin: 2px 0;
+`;class Na extends e.PureComponent{render(){const t=this.props.extensions;return e.createElement(pe.Consumer,null,r=>e.createElement(e.Fragment,null,r.showExtensions&&Object.keys(t).map(r=>e.createElement(Ra,{key:r},e.createElement(ga,null," ",r.substring(2),": ")," ",e.createElement(_a,null,"string"==typeof t[r]?t[r]:JSON.stringify(t[r]))))))}}function La({field:t}){return t.examples?e.createElement(e.Fragment,null,e.createElement(ga,null," ",R("examples"),": "),C(t.examples)?t.examples [...]
+  margin-top: 1em;
+  list-style-position: outside;
+`;class Da extends e.PureComponent{render(){return 0===this.props.constraints.length?null:e.createElement("span",null," ",this.props.constraints.map(t=>e.createElement(Aa,{key:t}," ",t," ")))}}const za=e.memo(function({value:t,label:r,raw:n}){if(void 0===t)return null;const i=n?String(t):JSON.stringify(t);return e.createElement("div",null,e.createElement(ga,null," ",r," ")," ",e.createElement(Ea,null,i))}),Fa=45;function Ba(t){const r=t.schema.pattern,{hideSchemaPattern:n}=e.useContext(p [...]
+  margin: 0 5px;
+  vertical-align: text-top;
+`;var Va=Object.defineProperty,Wa=Object.getOwnPropertySymbols,Ha=Object.prototype.hasOwnProperty,Qa=Object.prototype.propertyIsEnumerable,Ya=(e,t,r)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ga=(e,t)=>{for(var r in t||(t={}))Ha.call(t,r)&&Ya(e,r,t[r]);if(Wa)for(var r of Wa(t))Qa.call(t,r)&&Ya(e,r,t[r]);return e};const Ka=(0,ha.observer)(t=>{const{enumSkipQuotes:r,hideSchemaTitles:n}=e.useContext(pe),{showExamples:i,field:o,renderDiscriminatorSwitch:s}=t, [...]
+  padding-left: ${({theme:e})=>2*e.spacing.unit}px;
+`;class gl extends e.PureComponent{render(){const t=this.props.schema,r=t.items,n=this.props.fieldParentsName,i=void 0===t.minItems&&void 0===t.maxItems?"":`(${st(t)})`,o=n?[...n.slice(0,-1),n[n.length-1]+"[]"]:n;return t.fields?e.createElement(ol,hl(fl({},this.props),{level:this.props.level,fieldParentsName:o})):!t.displayType||r||i.length?e.createElement("div",null,e.createElement(Vo,null," Array ",i),e.createElement(ml,null,e.createElement(Dl,hl(fl({},this.props),{schema:r,fieldParent [...]
+  background: ${({theme:e})=>e.codeBlock.backgroundColor};
+  & > div,
+  & > pre {
+    padding: ${e=>4*e.theme.spacing.unit}px;
+    margin: 0;
+  }
+
+  & > div > pre {
+    padding: 0;
+  }
+`,Yl=(Y().div`
+  background-color: #e4e7eb;
+`,Y().ul`
+  display: inline;
+  list-style: none;
+  padding: 0;
+
+  li {
+    display: inherit;
+
+    &:after {
+      content: ',';
+    }
+    &:last-child:after {
+      content: none;
+    }
+  }
+`,Y().code`
+  font-size: ${e=>e.theme.typography.code.fontSize};
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  margin: 0 3px;
+  padding: 0.2em;
+  display: inline-block;
+  line-height: 1;
+
+  &:after {
+    content: ',';
+    font-weight: normal;
+  }
+
+  &:last-child:after {
+    content: none;
+  }
+`),Gl=Y().span`
+  &:after {
+    content: ' and ';
+    font-weight: normal;
+  }
+
+  &:last-child:after {
+    content: none;
+  }
+
+  ${ks};
+`,Kl=Y().span`
+  ${e=>!e.$expanded&&"white-space: nowrap;"}
+  &:after {
+    content: ' or ';
+    ${e=>e.$expanded&&"content: ' or \\a';"}
+    white-space: pre;
+  }
+
+  &:last-child:after,
+  &:only-child:after {
+    content: none;
+  }
+
+  ${ks};
+`,Xl=Y().div`
+  flex: 1 1 auto;
+  cursor: pointer;
+`,Jl=Y().div`
+  width: ${e=>e.theme.schema.defaultDetailsWidth};
+  text-overflow: ellipsis;
+  border-radius: 4px;
+  overflow: hidden;
+  ${e=>e.$expanded&&`background: ${e.theme.colors.gray[100]};\n     padding: 8px 9.6px;\n     margin: 20px 0;\n     width: 100%;\n    `};
+  ${ee.lessThan("small")`
+    margin-top: 10px;
+  `}
+`,Zl=Y()(vo)`
+  display: inline-block;
+  margin: 0;
+`,ec=Y().div`
+  width: 100%;
+  display: flex;
+  margin: 1em 0;
+  flex-direction: ${e=>e.$expanded?"column":"row"};
+  ${ee.lessThan("small")`
+    flex-direction: column;
+  `}
+`,tc=Y().div`
+  margin: 0.5em 0;
+`,rc=Y().div`
+  border-bottom: 1px solid ${({theme:e})=>e.colors.border.dark};
+  margin-bottom: 1.5em;
+  padding-bottom: 0.7em;
+
+  h5 {
+    line-height: 1em;
+    margin: 0 0 0.6em;
+    font-size: ${({theme:e})=>e.typography.fontSize};
+  }
+
+  .redoc-markdown p:first-child {
+    display: inline;
+  }
+`;function nc({children:t,height:r}){const n=e.createRef(),[i,o]=e.useState(!1),[s,a]=e.useState(!1);return e.useEffect(()=>{n.current&&n.current.clientHeight+20<n.current.scrollHeight&&a(!0)},[n]),e.createElement(e.Fragment,null,e.createElement(ic,{ref:n,className:i?"":"container",style:{height:i?"auto":r}},t),e.createElement(oc,{$dimmed:!i},s&&e.createElement(sc,{onClick:()=>{o(!i)}},i?"See less":"See more")))}const ic=Y().div`
+  overflow-y: hidden;
+`,oc=Y().div`
+  text-align: center;
+  line-height: 1.5em;
+  ${({$dimmed:e})=>e&&"background-image: linear-gradient(to bottom, transparent,rgb(255 255 255));\n     position: relative;\n     top: -0.5em;\n     padding-top: 0.5em;\n     background-position-y: -1em;\n    "}
+`,sc=Y().a`
+  cursor: pointer;
+`,ac=e.memo(function(t){const{type:r,flow:n,RequiredScopes:i}=t,o=Object.keys((null==n?void 0:n.scopes)||{});return e.createElement(e.Fragment,null,e.createElement(tc,null,e.createElement("b",null,"Flow type: "),e.createElement("code",null,r," ")),("implicit"===r||"authorizationCode"===r)&&e.createElement(tc,null,e.createElement("strong",null," Authorization URL: "),e.createElement("code",null,e.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:n.authorizationUrl},n.autho [...]
+  margin-top: 0;
+  margin-bottom: 0.5em;
+
+  ${re("ApiHeader")};
+`,gc=te.a`
+  border: 1px solid ${e=>e.theme.colors.primary.main};
+  color: ${e=>e.theme.colors.primary.main};
+  font-weight: normal;
+  margin-left: 0.5em;
+  padding: 4px 8px 4px;
+  display: inline-block;
+  text-decoration: none;
+  cursor: pointer;
+
+  ${re("DownloadButton")};
+`,yc=te.span`
+  &::before {
+    content: '|';
+    display: inline-block;
+    opacity: 0.5;
+    width: ${15}px;
+    text-align: center;
+  }
+
+  &:last-child::after {
+    display: none;
+  }
+`,bc=te.div`
+  overflow: hidden;
+`,vc=te.div`
+  display: flex;
+  flex-wrap: wrap;
+  // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888
+  margin-left: -${15}px;
+`;Object.defineProperty,Object.getOwnPropertyDescriptor;let xc=class extends e.Component{render(){const{store:t}=this.props,{info:r,externalDocs:n}=t.spec,i=t.options.hideDownloadButtons,o=r.downloadUrls,s=r.downloadFileName,a=r.license&&e.createElement(yc,null,"License:"," ",r.license.identifier?r.license.identifier:e.createElement("a",{href:r.license.url},r.license.name))||null,l=r.contact&&r.contact.url&&e.createElement(yc,null,"URL: ",e.createElement("a",{href:r.contact.url},r.contac [...]
+  max-height: ${e=>e.theme.logo.maxHeight};
+  max-width: ${e=>e.theme.logo.maxWidth};
+  padding: ${e=>e.theme.logo.gutter};
+  width: 100%;
+  display: block;
+`,Sc=te.div`
+  text-align: center;
+`,Oc=te.a`
+  display: inline-block;
+`;Object.defineProperty,Object.getOwnPropertyDescriptor;let kc=class extends e.Component{render(){const{info:t}=this.props,r=t["x-logo"];if(!r||!r.url)return null;const n=r.href||t.contact&&t.contact.url,i=r.altText?r.altText:"logo",o=e.createElement(wc,{src:r.url,alt:i});return e.createElement(Sc,{style:{backgroundColor:r.backgroundColor}},n?(s=n,t=>e.createElement(Oc,{href:s},t))(o):o);var s}};kc=((e,t)=>{for(var r,n=t,i=e.length-1;i>=0;i--)(r=e[i])&&(n=r(n)||n);return n})([ha.observer [...]
+  width: 9ex;
+  display: inline-block;
+  height: ${e=>e.theme.typography.code.fontSize};
+  line-height: ${e=>e.theme.typography.code.fontSize};
+  background-color: ${e=>e.color||"#333"};
+  border-radius: 3px;
+  background-repeat: no-repeat;
+  background-position: 6px 4px;
+  font-size: 7px;
+  font-family: Verdana, sans-serif; // web-safe
+  color: white;
+  text-transform: uppercase;
+  text-align: center;
+  font-weight: bold;
+  vertical-align: middle;
+  margin-right: 6px;
+  margin-top: 2px;
+
+  &.get {
+    background-color: ${({theme:e})=>e.colors.http.get};
+  }
+
+  &.post {
+    background-color: ${({theme:e})=>e.colors.http.post};
+  }
+
+  &.put {
+    background-color: ${({theme:e})=>e.colors.http.put};
+  }
+
+  &.options {
+    background-color: ${({theme:e})=>e.colors.http.options};
+  }
+
+  &.patch {
+    background-color: ${({theme:e})=>e.colors.http.patch};
+  }
+
+  &.delete {
+    background-color: ${({theme:e})=>e.colors.http.delete};
+  }
+
+  &.basic {
+    background-color: ${({theme:e})=>e.colors.http.basic};
+  }
+
+  &.link {
+    background-color: ${({theme:e})=>e.colors.http.link};
+  }
+
+  &.head {
+    background-color: ${({theme:e})=>e.colors.http.head};
+  }
+
+  &.hook {
+    background-color: ${({theme:e})=>e.colors.primary.main};
+  }
+
+  &.schema {
+    background-color: ${({theme:e})=>e.colors.http.basic};
+  }
+`;function Rc(e,{theme:t},r){return e>1?t.sidebar.level1Items[r]:1===e?t.sidebar.groupItems[r]:""}const Nc=te.ul`
+  margin: 0;
+  padding: 0;
+
+  &:first-child {
+    padding-bottom: 32px;
+  }
+
+  & & {
+    font-size: 0.929em;
+  }
+
+  ${e=>e.$expanded?"":"display: none;"};
+`,Lc=te.li`
+  list-style: none inside none;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  padding: 0;
+  ${e=>0===e.depth?"margin-top: 15px":""};
+`,Mc={0:K`
+    opacity: 0.7;
+    text-transform: ${({theme:e})=>e.sidebar.groupItems.textTransform};
+    font-size: 0.8em;
+    padding-bottom: 0;
+    cursor: default;
+  `,1:K`
+    font-size: 0.929em;
+    text-transform: ${({theme:e})=>e.sidebar.level1Items.textTransform};
+  `},Dc=te.label.attrs(e=>({className:Tc("-depth"+e.$depth,{active:e.$active})}))`
+  cursor: pointer;
+  color: ${e=>e.$active?Rc(e.$depth,e,"activeTextColor"):e.theme.sidebar.textColor};
+  margin: 0;
+  padding: 12.5px ${e=>4*e.theme.spacing.unit}px;
+  ${({$depth:e,$type:t,theme:r})=>"section"===t&&e>1&&"padding-left: "+8*r.spacing.unit+"px;"||""}
+  display: flex;
+  justify-content: space-between;
+  font-family: ${e=>e.theme.typography.headings.fontFamily};
+  ${e=>Mc[e.$depth]};
+  background-color: ${e=>e.$active?Rc(e.$depth,e,"activeBackgroundColor"):e.theme.sidebar.backgroundColor};
+
+  ${e=>e.$deprecated&&To||""};
+
+  &:hover {
+    color: ${e=>Rc(e.$depth,e,"activeTextColor")};
+    background-color: ${e=>Rc(e.$depth,e,"activeBackgroundColor")};
+  }
+
+  ${$o} {
+    height: ${({theme:e})=>e.sidebar.arrow.size};
+    width: ${({theme:e})=>e.sidebar.arrow.size};
+    polygon {
+      fill: ${({theme:e})=>e.sidebar.arrow.color};
+    }
+  }
+`,zc=te.span`
+  display: inline-block;
+  vertical-align: middle;
+  width: ${e=>e.width?e.width:"auto"};
+  overflow: hidden;
+  text-overflow: ellipsis;
+`,Fc=te.div`
+  ${({theme:e})=>K`
+    font-size: 0.8em;
+    margin-top: ${2*e.spacing.unit}px;
+    text-align: center;
+    position: fixed;
+    width: ${e.sidebar.width};
+    bottom: 0;
+    background: ${e.sidebar.backgroundColor};
+
+    a,
+    a:visited,
+    a:hover {
+      color: ${e.sidebar.textColor} !important;
+      padding: ${e.spacing.unit}px 0;
+      border-top: 1px solid ${(0,t.darken)(.1,e.sidebar.backgroundColor)};
+      text-decoration: none;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+  `};
+  img {
+    width: 15px;
+    margin-right: 5px;
+  }
+
+  ${ee.lessThan("small")`
+    width: 100%;
+  `};
+`,Bc=te.button`
+  border: 0;
+  width: 100%;
+  text-align: left;
+  & > * {
+    vertical-align: middle;
+  }
+
+  ${$o} {
+    polygon {
+      fill: ${({theme:e})=>(0,t.darken)(e.colors.tonalOffset,e.colors.gray[100])};
+    }
+  }
+`,qc=te.span`
+  text-decoration: ${e=>e.$deprecated?"line-through":"none"};
+  margin-right: 8px;
+`,Uc=te(Ic)`
+  margin: 0 5px 0 0;
+`,Vc=te(t=>{const{name:r,opened:n,className:i,onClick:o,httpVerb:s,deprecated:a}=t;return e.createElement(Bc,{className:i,onClick:o||void 0},e.createElement(Uc,{type:s},bt(s)),e.createElement($o,{size:"1.5em",direction:n?"down":"right",float:"left"}),e.createElement(qc,{$deprecated:a},r),a?e.createElement(Co,{type:"warning"}," ",R("deprecated")," "):null)})`
+  padding: 10px;
+  border-radius: 2px;
+  margin-bottom: 4px;
+  line-height: 1.5em;
+  background-color: ${({theme:e})=>e.colors.gray[100]};
+  cursor: pointer;
+  outline-color: ${({theme:e})=>(0,t.darken)(e.colors.tonalOffset,e.colors.gray[100])};
+`,Wc=te.div`
+  padding: 10px 25px;
+  background-color: ${({theme:e})=>e.colors.gray[50]};
+  margin-bottom: 5px;
+  margin-top: 5px;
+`;class Hc extends e.PureComponent{constructor(){super(...arguments),this.selectElement=()=>{Us.selectElement(this.child)}}render(){const{children:t}=this.props;return e.createElement("div",{ref:e=>this.child=e,onClick:this.selectElement,onFocus:this.selectElement,tabIndex:0,role:"button"},t)}}const Qc=te.div`
+  cursor: pointer;
+  position: relative;
+  margin-bottom: 5px;
+`,Yc=te.span`
+  font-family: ${e=>e.theme.typography.code.fontFamily};
+  margin-left: 10px;
+  flex: 1;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+`,Gc=te.button`
+  outline: 0;
+  color: inherit;
+  width: 100%;
+  text-align: left;
+  cursor: pointer;
+  padding: 10px 30px 10px ${e=>e.$inverted?"10px":"20px"};
+  border-radius: ${e=>e.$inverted?"0":"4px 4px 0 0"};
+  background-color: ${e=>e.$inverted?"transparent":e.theme.codeBlock.backgroundColor};
+  display: flex;
+  white-space: nowrap;
+  align-items: center;
+  border: ${e=>e.$inverted?"0":"1px solid transparent"};
+  border-bottom: ${e=>e.$inverted?"1px solid #ccc":"0"};
+  transition: border-color 0.25s ease;
+
+  ${e=>e.$expanded&&!e.$inverted&&`border-color: ${e.theme.colors.border.dark};`||""}
+
+  .${Yc} {
+    color: ${e=>e.$inverted?e.theme.colors.text.primary:"#ffffff"};
+  }
+  &:focus {
+    box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.45), 0 2px 0 rgba(128, 128, 128, 0.25);
+  }
+`,Kc=te.span.attrs(e=>({className:`http-verb ${e.type}`}))`
+  font-size: ${e=>e.$compact?"0.8em":"0.929em"};
+  line-height: ${e=>e.$compact?"18px":"20px"};
+  background-color: ${e=>e.theme.colors.http[e.type]||"#999999"};
+  color: #ffffff;
+  padding: ${e=>e.$compact?"2px 8px":"3px 10px"};
+  text-transform: uppercase;
+  font-family: ${e=>e.theme.typography.headings.fontFamily};
+  margin: 0;
+`,Xc=te.div`
+  position: absolute;
+  width: 100%;
+  z-index: 100;
+  background: ${e=>e.theme.rightPanel.servers.overlay.backgroundColor};
+  color: ${e=>e.theme.rightPanel.servers.overlay.textColor};
+  box-sizing: border-box;
+  box-shadow: 0 0 6px rgba(0, 0, 0, 0.33);
+  overflow: hidden;
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 4px;
+  transition: all 0.25s ease;
+  visibility: hidden;
+  ${e=>e.$expanded?"visibility: visible;":"transform: translateY(-50%) scaleY(0);"}
+`,Jc=te.div`
+  padding: 10px;
+`,Zc=te.div`
+  padding: 5px;
+  border: 1px solid #ccc;
+  background: ${e=>e.theme.rightPanel.servers.url.backgroundColor};
+  word-break: break-all;
+  color: ${e=>e.theme.colors.primary.main};
+  > span {
+    color: ${e=>e.theme.colors.text.primary};
+  }
+`;class ep extends e.Component{constructor(e){super(e),this.toggle=()=>{this.setState({expanded:!this.state.expanded})},this.state={expanded:!1}}render(){const{operation:t,inverted:r,hideHostname:n}=this.props,{expanded:i}=this.state;return e.createElement(pe.Consumer,null,o=>e.createElement(Qc,null,e.createElement(Gc,{onClick:this.toggle,$expanded:i,$inverted:r},e.createElement(Kc,{type:t.httpVerb,$compact:this.props.compact},t.httpVerb),e.createElement(Yc,null,t.path),e.createElement($ [...]
+  ${hp}
+`,gp=te("div")`
+  ${hp}
+  color: ${({theme:e})=>e.colors.text.secondary};
+  font-size: ${e=>e.theme.schema.labelsTextSize};
+`,yp=e.memo(function({title:t,type:r,empty:n,code:i,opened:o,className:s,onClick:a}){return e.createElement("button",{className:s,onClick:!n&&a||void 0,"aria-expanded":o,disabled:n},!n&&e.createElement($o,{size:"1.5em",color:r,direction:o?"down":"right",float:"left"}),e.createElement(wp,null,i," "),e.createElement(Ns,{compact:!0,inline:!0,source:t}))}),bp=te(yp)`
+  display: block;
+  border: 0;
+  width: 100%;
+  text-align: left;
+  padding: 10px;
+  border-radius: 2px;
+  margin-bottom: 4px;
+  line-height: 1.5em;
+  cursor: pointer;
+
+  color: ${e=>e.theme.colors.responses[e.type].color};
+  background-color: ${e=>e.theme.colors.responses[e.type].backgroundColor};
+  &:focus {
+    outline: auto ${e=>e.theme.colors.responses[e.type].color};
+  }
+  ${e=>e.empty?'\ncursor: default;\n&::before {\n  content: "\u2014";\n  font-weight: bold;\n  width: 1.5em;\n  text-align: center;\n  display: inline-block;\n  vertical-align: top;\n}\n&:focus {\n  outline: 0;\n}\n':""};
+`,vp=te.div`
+  padding: 10px;
+`,xp=te(vo).attrs({as:"caption"})`
+  text-align: left;
+  margin-top: 1em;
+  caption-side: top;
+`,wp=te.strong`
+  vertical-align: top;
+`;class Sp extends e.PureComponent{render(){const{headers:t}=this.props;return void 0===t||0===t.length?null:e.createElement(Fo,null,e.createElement(xp,null," Response Headers "),e.createElement("tbody",null,f(t,(t,r)=>e.createElement(nl,{isLast:r,key:t.name,field:t,showExamples:!0}))))}}var Op=Object.defineProperty,kp=Object.getOwnPropertySymbols,Ep=Object.prototype.hasOwnProperty,_p=Object.prototype.propertyIsEnumerable,Ap=(e,t,r)=>t in e?Op(e,t,{enumerable:!0,configurable:!0,writable: [...]
+  font-size: 1.3em;
+  padding: 0.2em 0;
+  margin: 3em 0 1.1em;
+  color: ${({theme:e})=>e.colors.text.primary};
+  font-weight: normal;
+`;class Cp extends e.PureComponent{render(){const{responses:t,isCallback:r}=this.props;return t&&0!==t.length?e.createElement("div",null,e.createElement($p,null,R(r?"callbackResponses":"responses")),t.map(t=>e.createElement(jp,{key:t.code,response:t}))):null}}function Tp(t){const{security:r,showSecuritySchemeType:n,expanded:i}=t,o=r.schemes.length>1;return 0===r.schemes.length?e.createElement(Kl,{$expanded:i},"None"):e.createElement(Kl,{$expanded:i},o&&"(",r.schemes.map(t=>e.createElemen [...]
+  margin-bottom: ${({theme:e})=>3*e.spacing.unit}px;
+`;Object.defineProperty,Object.getOwnPropertyDescriptor;let zp=class extends e.Component{constructor(){super(...arguments),this.toggle=()=>{this.props.callbackOperation.toggle()}}render(){const{name:t,expanded:r,httpVerb:n,deprecated:i}=this.props.callbackOperation;return e.createElement(e.Fragment,null,e.createElement(Vc,{onClick:this.toggle,name:t,opened:r,httpVerb:n,deprecated:i}),r&&e.createElement(Mp,{operation:this.props.callbackOperation}))}};zp=((e,t)=>{for(var r,n=t,i=e.length-1 [...]
+  font-size: 1.3em;
+  padding: 0.2em 0;
+  margin: 3em 0 1.1em;
+  color: ${({theme:e})=>e.colors.text.primary};
+  font-weight: normal;
+`;Object.defineProperty,Object.getOwnPropertyDescriptor;let qp=class extends e.Component{constructor(e){super(e),this.switchItem=({idx:e})=>{this.props.items&&void 0!==e&&this.setState({activeItemIdx:e})},this.state={activeItemIdx:0}}render(){const{items:t}=this.props;if(!t||!t.length)return null;const r=({children:t})=>this.props.label?e.createElement(ca,null,e.createElement(la,null,this.props.label),t):t;return e.createElement(e.Fragment,null,e.createElement(r,null,this.props.renderDro [...]
+  margin-top: 15px;
+`;var Zp=Object.defineProperty,eu=Object.defineProperties,tu=(Object.getOwnPropertyDescriptor,Object.getOwnPropertyDescriptors),ru=Object.getOwnPropertySymbols,nu=Object.prototype.hasOwnProperty,iu=Object.prototype.propertyIsEnumerable,ou=(e,t,r)=>t in e?Zp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;let su=class extends e.Component{constructor(){super(...arguments),this.renderDropdown=t=>{return e.createElement(Ss,(r=((e,t)=>{for(var r in t||(t={}))nu.call(t,r)&&ou(e [...]
+  background: ${({theme:e})=>e.codeBlock.backgroundColor};
+  padding: ${e=>4*e.theme.spacing.unit}px;
+`;Object.defineProperty,Object.getOwnPropertyDescriptor;let lu=class extends e.Component{render(){const{operation:t}=this.props,r=t.codeSamples,n=r.length>0,i=1===r.length&&this.context.hideSingleRequestSampleTab;return n&&e.createElement("div",null,e.createElement(bo,null," ",R("requestSamples")," "),e.createElement(Qo,{defaultIndex:0},e.createElement(Ho.TabList,{hidden:i},r.map(t=>e.createElement(Ho.Tab,{key:t.lang+"_"+(t.label||"")},void 0!==t.label?t.label:t.lang))),r.map(t=>e.create [...]
+  margin-bottom: ${({theme:e})=>6*e.spacing.unit}px;
+`,bu=(0,ha.observer)(({operation:t})=>{const{name:r,description:n,deprecated:i,externalDocs:o,isWebhook:s,httpVerb:a,badges:l}=t,c=!(!n&&!o),{showWebhookVerb:p}=e.useContext(pe),u=l.filter(({position:e})=>"before"===e),d=l.filter(({position:e})=>"after"===e);return e.createElement(pe.Consumer,null,l=>{return e.createElement(uo,(f=((e,t)=>{for(var r in t||(t={}))hu.call(t,r)&&gu(e,r,t[r]);if(fu)for(var r of fu(t))mu.call(t,r)&&gu(e,r,t[r]);return e})({},{[eo]:t.operationHash}),h={id:t.ope [...]
+  user-select: none;
+  width: 20px;
+  height: 20px;
+  align-self: center;
+  display: flex;
+  flex-direction: column;
+  color: ${e=>e.theme.colors.primary.main};
+`;let Xu;Object.defineProperty,Object.getOwnPropertyDescriptor,a&&(Xu=n(230));const Ju=Xu&&Xu(),Zu=te.div`
+  width: ${e=>e.theme.sidebar.width};
+  background-color: ${e=>e.theme.sidebar.backgroundColor};
+  overflow: hidden;
+  display: flex;
+  flex-direction: column;
+
+  backface-visibility: hidden;
+  /* contain: strict; TODO: breaks layout since Chrome 80*/
+
+  height: 100vh;
+  position: sticky;
+  position: -webkit-sticky;
+  top: 0;
+
+  ${ee.lessThan("small")`
+    position: fixed;
+    z-index: 20;
+    width: 100%;
+    background: ${({theme:e})=>e.sidebar.backgroundColor};
+    display: ${e=>e.$open?"flex":"none"};
+  `};
+
+  @media print {
+    display: none;
+  }
+`,ed=te.div`
+  outline: none;
+  user-select: none;
+  background-color: ${({theme:e})=>e.fab.backgroundColor};
+  color: ${e=>e.theme.colors.primary.main};
+  display: none;
+  cursor: pointer;
+  position: fixed;
+  right: 20px;
+  z-index: 100;
+  border-radius: 50%;
+  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
+  ${ee.lessThan("small")`
+    display: flex;
+  `};
+
+  bottom: 44px;
+
+  width: 60px;
+  height: 60px;
+  padding: 0 20px;
+  svg {
+    color: ${({theme:e})=>e.fab.color};
+  }
+
+  @media print {
+    display: none;
+  }
+`;let td=class extends e.Component{constructor(){super(...arguments),this.state={offsetTop:"0px"},this.toggleNavMenu=()=>{this.props.menu.toggleSidebar()}}componentDidMount(){Ju&&Ju.add(this.stickyElement),this.setState({offsetTop:this.getScrollYOffset(this.context)})}componentWillUnmount(){Ju&&Ju.remove(this.stickyElement)}getScrollYOffset(e){let t;return t=void 0!==this.props.scrollYOffset?H.normalizeScrollYOffset(this.props.scrollYOffset)():e.scrollYOffset(),t+"px"}render(){const t=th [...]
+  ${({theme:e})=>`\n  font-family: ${e.typography.fontFamily};\n  font-size: ${e.typography.fontSize};\n  font-weight: ${e.typography.fontWeightRegular};\n  line-height: ${e.typography.lineHeight};\n  color: ${e.colors.text.primary};\n  display: flex;\n  position: relative;\n  text-align: left;\n\n  -webkit-font-smoothing: ${e.typography.smoothing};\n  font-smoothing: ${e.typography.smoothing};\n  ${e.typography.optimizeSpeed?"text-rendering: optimizeSpeed !important":""};\n\n  tap-highl [...]
+`,nd=te.div`
+  z-index: 1;
+  position: relative;
+  overflow: hidden;
+  width: calc(100% - ${e=>e.theme.sidebar.width});
+  ${ee.lessThan("small",!0)`
+    width: 100%;
+  `};
+
+  contain: layout;
+`,id=te.div`
+  background: ${({theme:e})=>e.rightPanel.backgroundColor};
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  right: 0;
+  width: ${({theme:e})=>{if(e.rightPanel.width.endsWith("%")){const t=parseInt(e.rightPanel.width,10);return`calc((100% - ${e.sidebar.width}) * ${t/100})`}return e.rightPanel.width}};
+  ${ee.lessThan("medium",!0)`
+    display: none;
+  `};
+`,od=te.div`
+  padding: 5px 0;
+`,sd=te.input.attrs(()=>({className:"search-input"}))`
+  width: calc(100% - ${e=>8*e.theme.spacing.unit}px);
+  box-sizing: border-box;
+  margin: 0 ${e=>4*e.theme.spacing.unit}px;
+  padding: 5px ${e=>2*e.theme.spacing.unit}px 5px
+    ${e=>4*e.theme.spacing.unit}px;
+  border: 0;
+  border-bottom: 1px solid
+    ${({theme:e})=>((0,t.getLuminance)(e.sidebar.backgroundColor)>.5?t.darken:t.lighten)(.1,e.sidebar.backgroundColor)};
+  font-family: ${({theme:e})=>e.typography.fontFamily};
+  font-weight: bold;
+  font-size: 13px;
+  color: ${e=>e.theme.sidebar.textColor};
+  background-color: transparent;
+  outline: none;
+`,ad=te(t=>e.createElement("svg",{className:t.className,version:"1.1",viewBox:"0 0 1000 1000",x:"0px",xmlns:"http://www.w3.org/2000/svg",y:"0px"},e.createElement("path",{d:"M968.2,849.4L667.3,549c83.9-136.5,66.7-317.4-51.7-435.6C477.1-25,252.5-25,113.9,113.4c-138.5,138.3-138.5,362.6,0,501C219.2,730.1,413.2,743,547.6,666.5l301.9,301.4c43.6,43.6,76.9,14.9,104.2-12.4C981,928.3,1011.8,893,968.2,849.4z M524.5,522c-88.9,88.7-233,88.7-321.8,0c-88.9-88.7-88.9-232.6,0-321.3c88.9-88.7,233-88.7,321 [...]
+  position: absolute;
+  left: ${e=>4*e.theme.spacing.unit}px;
+  height: 1.8em;
+  width: 0.9em;
+
+  path {
+    fill: ${e=>e.theme.sidebar.textColor};
+  }
+`,ld=te.div`
+  padding: ${e=>e.theme.spacing.unit}px 0;
+  background-color: ${({theme:e})=>(0,t.darken)(.05,e.sidebar.backgroundColor)}};
+  color: ${e=>e.theme.sidebar.textColor};
+  min-height: 150px;
+  max-height: 250px;
+  border-top: ${({theme:e})=>(0,t.darken)(.1,e.sidebar.backgroundColor)}};
+  border-bottom: ${({theme:e})=>(0,t.darken)(.1,e.sidebar.backgroundColor)}};
+  margin-top: 10px;
+  line-height: 1.4;
+  font-size: 0.9em;
+  
+  li {
+    background-color: inherit;
+  }
+
+  ${Dc} {
+    padding-top: 6px;
+    padding-bottom: 6px;
+
+    &:hover,
+    &.active {
+      background-color: ${({theme:e})=>(0,t.darken)(.1,e.sidebar.backgroundColor)};
+    }
+
+    > svg {
+      display: none;
+    }
+  }
+`,cd=te.i`
+  position: absolute;
+  display: inline-block;
+  width: ${e=>2*e.theme.spacing.unit}px;
+  text-align: center;
+  right: ${e=>4*e.theme.spacing.unit}px;
+  line-height: 2em;
+  vertical-align: middle;
+  margin-right: 2px;
+  cursor: pointer;
+  font-style: normal;
+  color: '#666';
+`;var pd=Object.defineProperty,ud=Object.getOwnPropertyDescriptor;class dd extends e.PureComponent{constructor(e){super(e),this.activeItemRef=null,this.clear=()=>{this.setState({results:[],noResults:!1,term:"",activeItemIdx:-1}),this.props.marker.unmark()},this.handleKeyDown=e=>{if(27===e.keyCode&&this.clear(),40===e.keyCode&&(this.setState({activeItemIdx:Math.min(this.state.activeItemIdx+1,this.state.results.length-1)}),e.preventDefault()),38===e.keyCode&&(this.setState({activeItemIdx:M [...]
\ No newline at end of file
diff --git a/assets/js/8970.77bcc1f4.js.LICENSE.txt b/assets/js/5560.bc465987.js.LICENSE.txt
similarity index 94%
rename from assets/js/8970.77bcc1f4.js.LICENSE.txt
rename to assets/js/5560.bc465987.js.LICENSE.txt
index c40e902d..0786327f 100644
--- a/assets/js/8970.77bcc1f4.js.LICENSE.txt
+++ b/assets/js/5560.bc465987.js.LICENSE.txt
@@ -81,7 +81,7 @@
  * Licensed under MIT
  */
 
-/*! @license DOMPurify 3.4.10 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.10/LICENSE */
+/*! @license DOMPurify 3.4.12 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.12/LICENSE */
 
 /*! For license information please see redoc.browser.lib.js.LICENSE.txt */
 
diff --git a/assets/js/5621.e0c5e997.js b/assets/js/5621.e0c5e997.js
deleted file mode 100644
index 85d5d9e0..00000000
--- a/assets/js/5621.e0c5e997.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5621],{88673(e,t,s){s.d(t,{in:()=>c,OU:()=>A,Ki:()=>C,kJ:()=>x,x:()=>l,e7:()=>h,J_:()=>p,Gx:()=>k});var a=s(12888),n=s(37990),i=s(80379),r=s(11684);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=a.createContext(null);function c({children [...]
\ No newline at end of file
diff --git a/assets/js/56d481cb.8b75f29e.js b/assets/js/56d481cb.3147b732.js
similarity index 98%
rename from assets/js/56d481cb.8b75f29e.js
rename to assets/js/56d481cb.3147b732.js
index 9427a4c6..fe522b49 100644
--- a/assets/js/56d481cb.8b75f29e.js
+++ b/assets/js/56d481cb.3147b732.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4680],{90372(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"cluster/high_availability","title":"High Availability","description":"Due to the decentralized cluster-building capability provided by the Gossip-based protocol (base-cluster) we offer, BifroMQ StandardCluster nodes do not require additional service di [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4680],{29767(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"cluster/high_availability","title":"High Availability","description":"Due to the decentralized cluster-building capability provided by the Gossip-based protocol (base-cluster) we offer, BifroMQ StandardCluster nodes do not require additional service di [...]
\ No newline at end of file
diff --git a/assets/js/5964.a78b541c.js b/assets/js/5964.a78b541c.js
new file mode 100644
index 00000000..10dc7862
--- /dev/null
+++ b/assets/js/5964.a78b541c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5964],{2626(e,t,s){s.d(t,{P:()=>r});var i=s(93316),n=s(37970),r=(0,n.K2)((e,t,s,r)=>{e.attr("class",s);const{width:o,height:c,x:h,y:u}=a(e,t);(0,i.a$)(e,c,o,r);const y=l(h,u,o,c,t);e.attr("viewBox",y),n.Rm.debug(`viewBox configured: ${y} with padding: ${t}`)},"setupViewPortForSVG"),a=(0,n.K2)((e,t)=>{const s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*t,height:s.height+2*t,x [...]
\ No newline at end of file
diff --git a/assets/js/5964.fd01c50f.js b/assets/js/5964.fd01c50f.js
deleted file mode 100644
index 58f29776..00000000
--- a/assets/js/5964.fd01c50f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5964],{2626(e,t,s){s.d(t,{P:()=>r});var i=s(93316),n=s(37970),r=(0,n.K2)((e,t,s,r)=>{e.attr("class",s);const{width:o,height:c,x:h,y:u}=a(e,t);(0,i.a$)(e,c,o,r);const y=l(h,u,o,c,t);e.attr("viewBox",y),n.Rm.debug(`viewBox configured: ${y} with padding: ${t}`)},"setupViewPortForSVG"),a=(0,n.K2)((e,t)=>{const s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*t,height:s.height+2*t,x [...]
\ No newline at end of file
diff --git a/assets/js/5968.90eed6e4.js b/assets/js/5968.90eed6e4.js
deleted file mode 100644
index 5b1d7a6f..00000000
--- a/assets/js/5968.90eed6e4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5968],{35968(e,n,t){t.r(n),t.d(n,{render:()=>k});var r=t(42452),a=(t(62993),t(73641)),i=t(10566),o=(t(79478),t(2864),t(69808),t(93316)),d=t(37970),s=t(48585),c=t(88430),g=t(57303);const l=function(e){return(0,g.A)(e,4)};var f=t(63336);t(70092);function h(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:p(e),edges:u(e)};return c.A(e.graph())||(n.valu [...]
\ No newline at end of file
diff --git a/assets/js/5968.adb2d6de.js b/assets/js/5968.adb2d6de.js
new file mode 100644
index 00000000..3983c6a9
--- /dev/null
+++ b/assets/js/5968.adb2d6de.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5968],{35968(e,n,t){t.r(n),t.d(n,{render:()=>k});var r=t(42452),a=(t(62993),t(73641)),i=t(10566),o=(t(79478),t(15111),t(69808),t(93316)),d=t(37970),s=t(48585),c=t(88430),g=t(57303);const l=function(e){return(0,g.A)(e,4)};var f=t(63336);t(70092);function h(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:p(e),edges:u(e)};return c.A(e.graph())||(n.val [...]
\ No newline at end of file
diff --git a/assets/js/59ac30c5.f974bcfb.js b/assets/js/59ac30c5.f974bcfb.js
deleted file mode 100644
index 8153a7e6..00000000
--- a/assets/js/59ac30c5.f974bcfb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8080],{36018(e,i,n){n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>g});const o=JSON.parse('{"id":"admin_guide/observability/logging","title":"Logging","description":"BifroMQ utilizes the standard SLF4J interface for logging purposes and selects Logback as its logging backend. The logs are organized into five distinct levels: TRACE, DEBUG, INFO, WAR [...]
\ No newline at end of file
diff --git a/assets/js/59ac30c5.ff92fcc4.js b/assets/js/59ac30c5.ff92fcc4.js
new file mode 100644
index 00000000..b02acbf6
--- /dev/null
+++ b/assets/js/59ac30c5.ff92fcc4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8080],{42271(e,i,n){n.d(i,{R:()=>l,x:()=>r});var o=n(12888);const t={},s=o.createContext(t);function l(e){const i=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),o.createElement(s.Provider,{value:i},e.children)}},82288(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/5a23e989.70769601.js b/assets/js/5a23e989.70769601.js
new file mode 100644
index 00000000..a0abd33b
--- /dev/null
+++ b/assets/js/5a23e989.70769601.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2751],{41491(e,i,t){t.d(i,{A:()=>n});const n=t.p+"assets/images/integration-42a8d719f82cdd3f63af997a759b5308.png"},42271(e,i,t){t.d(i,{R:()=>o,x:()=>a});var n=t(12888);const s={},r=n.createContext(s);function o(e){const i=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e. [...]
\ No newline at end of file
diff --git a/assets/js/5b291976.d7d10c73.js b/assets/js/5b291976.30e18b6f.js
similarity index 96%
rename from assets/js/5b291976.d7d10c73.js
rename to assets/js/5b291976.30e18b6f.js
index 6d5e8334..f2b1c9c0 100644
--- a/assets/js/5b291976.d7d10c73.js
+++ b/assets/js/5b291976.30e18b6f.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6860],{63772(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>f,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"configuration/configs_print","title":"Configuration Printing","description":"When BifroMQ starts, it prints the values of various configurations in the info logs. Printing configuration information helps you understand the specific settings of the Bifr [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6860],{39152(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>f,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"configuration/configs_print","title":"Configuration Printing","description":"When BifroMQ starts, it prints the values of various configurations in the info logs. Printing configuration information helps you understand the specific settings of the Bifr [...]
\ No newline at end of file
diff --git a/assets/js/5b9a51ee.9cef49c2.js b/assets/js/5b9a51ee.9cef49c2.js
deleted file mode 100644
index 07991613..00000000
--- a/assets/js/5b9a51ee.9cef49c2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8748],{76062(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/nodes_on_k8s","title":"Notes on Kubernetes Deployment","description":"Deploying BifroMQ on Kubernetes requires careful consideration of its stateful service characteristics and understanding of Kubernetes-specific cluster operations and ma [...]
\ No newline at end of file
diff --git a/assets/js/5b9a51ee.afa42c96.js b/assets/js/5b9a51ee.afa42c96.js
new file mode 100644
index 00000000..230e89fc
--- /dev/null
+++ b/assets/js/5b9a51ee.afa42c96.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8748],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>a});var t=i(12888);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}},51440(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/5c0f4aef.3ad4f652.js b/assets/js/5c0f4aef.4ec4c946.js
similarity index 99%
rename from assets/js/5c0f4aef.3ad4f652.js
rename to assets/js/5c0f4aef.4ec4c946.js
index 678775a3..4ee54d3f 100644
--- a/assets/js/5c0f4aef.3ad4f652.js
+++ b/assets/js/5c0f4aef.4ec4c946.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[73],{93078(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"configuration/file_configs_manual","title":"Configuration file","description":"Introduction","source":"@site/versioned_docs/version-1.0.x/04_configuration/2_file_configs_manual.md","sourceDirName":"04_configuration","slug":"/configuration/file_configs_ma [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[73],{32556(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"configuration/file_configs_manual","title":"Configuration file","description":"Introduction","source":"@site/versioned_docs/version-1.0.x/04_configuration/2_file_configs_manual.md","sourceDirName":"04_configuration","slug":"/configuration/file_configs_ma [...]
\ No newline at end of file
diff --git a/assets/js/5d0c0105.7ef86e2e.js b/assets/js/5d0c0105.7ef86e2e.js
deleted file mode 100644
index 502ee904..00000000
--- a/assets/js/5d0c0105.7ef86e2e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3411],{82812(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector Plugin is designed to gather various events generated during the execution of BifroMQ. By filtering through event types, you can focus on the events that matter to you [...]
\ No newline at end of file
diff --git a/assets/js/5d0c0105.cefedd2a.js b/assets/js/5d0c0105.cefedd2a.js
new file mode 100644
index 00000000..7ca8fc32
--- /dev/null
+++ b/assets/js/5d0c0105.cefedd2a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3411],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>l});var o=n(12888);const i={},r=o.createContext(i);function s(e){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:t},e.children)}},63369(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/5d695bce.41d134dd.js b/assets/js/5d695bce.cae82461.js
similarity index 90%
rename from assets/js/5d695bce.41d134dd.js
rename to assets/js/5d695bce.cae82461.js
index 403ce0ce..5903878c 100644
--- a/assets/js/5d695bce.41d134dd.js
+++ b/assets/js/5d695bce.cae82461.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4874],{69736(e,t,o){o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"deploy/cluster","title":"Deploy Cluster","description":"Cluster","source":"@site/versioned_docs/version-1.0.x/03_deploy/21_cluster.md","sourceDirName":"03_deploy","slug":"/deploy/cluster","permalink":"/docs/1.0.x/deploy/cluster","draft":false,"unlisted [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4874],{35210(e,t,o){o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"deploy/cluster","title":"Deploy Cluster","description":"Cluster","source":"@site/versioned_docs/version-1.0.x/03_deploy/21_cluster.md","sourceDirName":"03_deploy","slug":"/deploy/cluster","permalink":"/docs/1.0.x/deploy/cluster","draft":false,"unlisted [...]
\ No newline at end of file
diff --git a/assets/js/5e95c892.1f17e302.js b/assets/js/5e95c892.1f17e302.js
deleted file mode 100644
index dd17e89e..00000000
--- a/assets/js/5e95c892.1f17e302.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9647],{6120(e,r,s){s.r(r),s.d(r,{default:()=>h});s(12888);var a=s(13526),u=s(40445),c=s(24962),i=s(41711),l=s(62482),o=s(11684);function h(e){return(0,o.jsx)(c.e3,{className:(0,a.A)(u.G.wrapper.docsPages),children:(0,o.jsx)(l.A,{children:(0,i.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/5e95c892.de85225d.js b/assets/js/5e95c892.de85225d.js
new file mode 100644
index 00000000..e564b58d
--- /dev/null
+++ b/assets/js/5e95c892.de85225d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9647],{59372(e,r,s){s.r(r),s.d(r,{default:()=>h});s(12888);var a=s(13526),u=s(34607),c=s(29364),i=s(78849),l=s(10459),o=s(11684);function h(e){return(0,o.jsx)(c.e3,{className:(0,a.A)(u.G.wrapper.docsPages),children:(0,o.jsx)(l.A,{children:(0,i.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/6059.4263ad9e.js b/assets/js/6059.4263ad9e.js
new file mode 100644
index 00000000..ce6f734c
--- /dev/null
+++ b/assets/js/6059.4263ad9e.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6059],{33597(e,t,n){"use strict";n.d(t,{A:()=>me});var s=n(12888),a=n(47672),r=n(13526),o=n(38997),c=n(63278);function l(){const{prism:e}=(0,c.p)(),{colorMode:t}=(0,o.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var i=n(34607),u=n(34809),d=n.n(u),m=n(46740),f=n(11684);const p=/title=(?<quote>["'])(?<title>.*?)\1/,h=/\{(?<range>[\d,-]+)\}/,b={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"}, [...]
\ No newline at end of file
diff --git a/assets/js/611b7604.3a68a653.js b/assets/js/611b7604.3a68a653.js
deleted file mode 100644
index 0930fa31..00000000
--- a/assets/js/611b7604.3a68a653.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7686],{70146(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/intro","title":"Observability Overview","description":"In the administration of BifroMQ, ensuring comprehensive system observability stands as a foundational element for conducting effective system operations and maintenance a [...]
\ No newline at end of file
diff --git a/assets/js/611b7604.6ac55a45.js b/assets/js/611b7604.6ac55a45.js
new file mode 100644
index 00000000..0d22e804
--- /dev/null
+++ b/assets/js/611b7604.6ac55a45.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7686],{42271(e,i,t){t.d(i,{R:()=>a,x:()=>r});var n=t(12888);const o={},s=n.createContext(o);function a(e){const i=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(s.Provider,{value:i},e.children)}},76010(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/618bf699.5ec62efe.js b/assets/js/618bf699.5ec62efe.js
new file mode 100644
index 00000000..fbe2c08e
--- /dev/null
+++ b/assets/js/618bf699.5ec62efe.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[152],{15739(e,t,n){n.d(t,{A:()=>i});const i=n.p+"assets/images/mqtt-at-the-frontline-74c1318615720635edc4f0cfdaf2328a.png"},42271(e,t,n){n.d(t,{R:()=>o,x:()=>s});var i=n(12888);const a={},r=i.createContext(a);function o(e){const t=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.comp [...]
\ No newline at end of file
diff --git a/assets/js/618bf699.6b6009a3.js b/assets/js/618bf699.6b6009a3.js
deleted file mode 100644
index 31d94bf2..00000000
--- a/assets/js/618bf699.6b6009a3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[152],{8689(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var i=n(73627),a=n(11684),r=n(10506);n(69863),n(69515),n(29915),n(95649);const o={slug:"introducing-apache-bifromq",title:"Introducing Apache BifroMQ (Incubating)",authors:["HaoYu"],tags:["Apache","BifroMQ","MQTT","Multi-Tenant","Serverless","Decentralized Cluster"]},s="Introducin [...]
\ No newline at end of file
diff --git a/assets/js/621db11d.09f0a34c.js b/assets/js/621db11d.09f0a34c.js
deleted file mode 100644
index 2d733cc1..00000000
--- a/assets/js/621db11d.09f0a34c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4212],{94237(t,s,e){e.r(s),e.d(s,{default:()=>m});e(12888);var a=e(13526),o=e(24962),r=e(40445),u=e(36583),l=e(72626),n=e(50710),i=e(41655),h=e(47224);const c={authorListItem:"authorListItem_aPeu"};var g=e(11684);function p({author:t}){return(0,g.jsx)("li",{className:c.authorListItem,children:(0,g.jsx)(h.A,{as:"h2",author:t,count:t.count})})}function d({authors:t}){return(0,g.jsx)("section",{className [...]
\ No newline at end of file
diff --git a/assets/js/621db11d.79ce902b.js b/assets/js/621db11d.79ce902b.js
new file mode 100644
index 00000000..0a066a37
--- /dev/null
+++ b/assets/js/621db11d.79ce902b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4212],{34022(t,s,e){e.r(s),e.d(s,{default:()=>m});e(12888);var a=e(13526),o=e(29364),r=e(34607),l=e(85205),u=e(31799),n=e(27090),i=e(69714),c=e(66989);const h={authorListItem:"authorListItem_lomc"};var g=e(11684);function p({author:t}){return(0,g.jsx)("li",{className:h.authorListItem,children:(0,g.jsx)(c.A,{as:"h2",author:t,count:t.count})})}function d({authors:t}){return(0,g.jsx)("section",{className [...]
\ No newline at end of file
diff --git a/assets/js/631c7b99.a41175d3.js b/assets/js/631c7b99.a41175d3.js
deleted file mode 100644
index 548929aa..00000000
--- a/assets/js/631c7b99.a41175d3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5251],{71042(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/intro","title":"Observability Overview","description":"In the administration of BifroMQ, ensuring comprehensive system observability stands as a foundational element for conducting effective system operations and maintenance a [...]
\ No newline at end of file
diff --git a/assets/js/631c7b99.c8f18e27.js b/assets/js/631c7b99.c8f18e27.js
new file mode 100644
index 00000000..0c814932
--- /dev/null
+++ b/assets/js/631c7b99.c8f18e27.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5251],{42271(e,i,t){t.d(i,{R:()=>a,x:()=>r});var n=t(12888);const o={},s=n.createContext(o);function a(e){const i=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(s.Provider,{value:i},e.children)}},73499(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/631ed09d.2da28191.js b/assets/js/631ed09d.2da28191.js
new file mode 100644
index 00000000..16400092
--- /dev/null
+++ b/assets/js/631ed09d.2da28191.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6467],{42271(e,i,n){n.d(i,{R:()=>a,x:()=>s});var t=n(12888);const o={},r=t.createContext(o);function a(e){const i=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(r.Provider,{value:i},e.children)}},91373(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/631ed09d.f6015c35.js b/assets/js/631ed09d.f6015c35.js
deleted file mode 100644
index bbdc1c31..00000000
--- a/assets/js/631ed09d.f6015c35.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6467],{14510(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"admin_guide/security/intro","title":"Security Overview","description":"Security, a broad and critical aspect of any system, is a key focus for BifroMQ. Recognizing the importance of securing MQTT broker deployments, BifroMQ offers a suite of features d [...]
\ No newline at end of file
diff --git a/assets/js/638.0c9ba1ea.js b/assets/js/638.0c9ba1ea.js
new file mode 100644
index 00000000..0d05eb05
--- /dev/null
+++ b/assets/js/638.0c9ba1ea.js
@@ -0,0 +1,2 @@
+/*! For license information please see 638.0c9ba1ea.js.LICENSE.txt */
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[638],{70638(e,t,n){function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key [...]
\ No newline at end of file
diff --git a/assets/js/3720.cc3fcb3b.js.LICENSE.txt b/assets/js/638.0c9ba1ea.js.LICENSE.txt
similarity index 100%
rename from assets/js/3720.cc3fcb3b.js.LICENSE.txt
rename to assets/js/638.0c9ba1ea.js.LICENSE.txt
diff --git a/assets/js/63acdfe1.16792923.js b/assets/js/63acdfe1.16792923.js
new file mode 100644
index 00000000..3e8fed25
--- /dev/null
+++ b/assets/js/63acdfe1.16792923.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5682],{42271(e,i,t){t.d(i,{R:()=>a,x:()=>r});var n=t(12888);const s={},o=n.createContext(s);function a(e){const i=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(o.Provider,{value:i},e.children)}},92594(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/63acdfe1.a9a1127b.js b/assets/js/63acdfe1.a9a1127b.js
deleted file mode 100644
index cd883b6b..00000000
--- a/assets/js/63acdfe1.a9a1127b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5682],{68554(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/events","title":"Events","description":"BifroMQ generates events at crucial junctures in its workflow, providing users with the ability to implement custom event collector plugins to capture and process these events.","source" [...]
\ No newline at end of file
diff --git a/assets/js/65584991.934627a0.js b/assets/js/65584991.934627a0.js
deleted file mode 100644
index a079a80d..00000000
--- a/assets/js/65584991.934627a0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1648],{72235(t,e,s){s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"mqtt_best_practices/mqtt","title":"Supported Specifications","description":"For reference, BifroMQ fully supports the following MQTT specifications:","source":"@site/versioned_docs/version-3.0.x/98_mqtt_best_practices/1_spec.md","sourceDirName":"98_mqt [...]
\ No newline at end of file
diff --git a/assets/js/65584991.a708736b.js b/assets/js/65584991.a708736b.js
new file mode 100644
index 00000000..a3ebfe45
--- /dev/null
+++ b/assets/js/65584991.a708736b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1648],{42271(t,e,s){s.d(e,{R:()=>n,x:()=>c});var i=s(12888);const o={},r=i.createContext(o);function n(t){const e=i.useContext(r);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:n(t.components),i.createElement(r.Provider,{value:e},t.children)}},97043(t,e,s [...]
\ No newline at end of file
diff --git a/assets/js/65666bd5.a5e3dd50.js b/assets/js/65666bd5.f4db018d.js
similarity index 89%
rename from assets/js/65666bd5.a5e3dd50.js
rename to assets/js/65666bd5.f4db018d.js
index 5696dea9..ebbf05b6 100644
--- a/assets/js/65666bd5.a5e3dd50.js
+++ b/assets/js/65666bd5.f4db018d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[225],{55008(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/connect/pubsub","title":"Basic Message Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source": [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[225],{35563(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/connect/pubsub","title":"Basic Message Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source": [...]
\ No newline at end of file
diff --git a/assets/js/6656.10603d59.js b/assets/js/6656.10603d59.js
new file mode 100644
index 00000000..d8a87d84
--- /dev/null
+++ b/assets/js/6656.10603d59.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6656],{5159(e,r,c){c.d(r,{wE:()=>t});var n=c(81457),a=c(45686),s=c(39779);function t(e){return(0,s.VF)(u("",null,null,null,[""],e=(0,s.c4)(e),0,[0],e))}function u(e,r,c,n,t,l,p,b,C){for(var w=0,d=0,h=p,H=0,v=0,g=0,k=1,j=1,$=1,S=0,M="",m=t,Y=l,x=n,N=M;j;)switch(g=S,S=(0,s.K2)()){case 40:if(108!=g&&58==(0,a.wN)(N,h-1)){-1!=(0,a.K5)(N+=(0,a.HC)((0,s.Tb)(S),"&","&\f"),"&\f",(0,a.tn)(w?b[w-1]:0))&&($=-1);b [...]
\ No newline at end of file
diff --git a/assets/js/669905aa.0dfb8709.js b/assets/js/669905aa.0dfb8709.js
deleted file mode 100644
index 3a7a1360..00000000
--- a/assets/js/669905aa.0dfb8709.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[954],{38814(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"best_practices/topicfilter","title":"Topic Filters Design","description":"Topic Filters in MQTT are a mechanism used for subscribing to topics, allowing clients to receive messages from topics they are interested in. When selecting and designing Topic F [...]
\ No newline at end of file
diff --git a/assets/js/669905aa.2186d0be.js b/assets/js/669905aa.2186d0be.js
new file mode 100644
index 00000000..fe4b60f1
--- /dev/null
+++ b/assets/js/669905aa.2186d0be.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[954],{42271(e,i,t){t.d(i,{R:()=>o,x:()=>c});var n=t(12888);const s={},r=n.createContext(s);function o(e){const i=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:i},e.children)}},76453(e,i,t) [...]
\ No newline at end of file
diff --git a/assets/js/66cca625.c8f6ad01.js b/assets/js/66cca625.c8f6ad01.js
deleted file mode 100644
index 58e72411..00000000
--- a/assets/js/66cca625.c8f6ad01.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4211],{36495(e,r,n){n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>t,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"cluster/loadbalance/apiserver","title":"API Server","description":"The API Server exposes HTTP/HTTPS endpoints for administrative operations such as proxy subscription, message publishing, session management, etc.","source":"@site/docs/cluster/loadbala [...]
\ No newline at end of file
diff --git a/assets/js/66cca625.d88f4ae1.js b/assets/js/66cca625.d88f4ae1.js
new file mode 100644
index 00000000..085431a5
--- /dev/null
+++ b/assets/js/66cca625.d88f4ae1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4211],{42271(e,r,n){n.d(r,{R:()=>a,x:()=>o});var i=n(12888);const s={},t=i.createContext(s);function a(e){const r=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(t.Provider,{value:r},e.children)}},58839(e,r,n [...]
\ No newline at end of file
diff --git a/assets/js/6800f374.e75790ed.js b/assets/js/6800f374.5d7dab76.js
similarity index 85%
rename from assets/js/6800f374.e75790ed.js
rename to assets/js/6800f374.5d7dab76.js
index 58086815..cfe00782 100644
--- a/assets/js/6800f374.e75790ed.js
+++ b/assets/js/6800f374.5d7dab76.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3277],{64338(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/connect/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions is a feature of the MQTT protocol that allows multiple subscribers to share the same topic and receive messages in a fair manner. Below is the basic  [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3277],{26875(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/connect/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions is a feature of the MQTT protocol that allows multiple subscribers to share the same topic and receive messages in a fair manner. Below is the basic  [...]
\ No newline at end of file
diff --git a/assets/js/681051d4.6ac3fc2b.js b/assets/js/681051d4.6ac3fc2b.js
deleted file mode 100644
index e07057de..00000000
--- a/assets/js/681051d4.6ac3fc2b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6700],{88714(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"bifromq_inside","title":"BifroMQ Inside","description":"This page lists projects or products that integrate with BifroMQ. If your project integrates with BifroMQ, you can submit it here.","source":"@site/versioned_docs/version-1.0.x/999_bifromq_inside. [...]
\ No newline at end of file
diff --git a/assets/js/681051d4.f9234fc6.js b/assets/js/681051d4.f9234fc6.js
new file mode 100644
index 00000000..a31deb24
--- /dev/null
+++ b/assets/js/681051d4.f9234fc6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6700],{3249(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"bifromq_inside","title":"BifroMQ Inside","description":"This page lists projects or products that integrate with BifroMQ. If your project integrates with BifroMQ, you can submit it here.","source":"@site/versioned_docs/version-1.0.x/999_bifromq_inside.m [...]
\ No newline at end of file
diff --git a/assets/js/6875c492.3e884a37.js b/assets/js/6875c492.3e884a37.js
new file mode 100644
index 00000000..18c56b86
--- /dev/null
+++ b/assets/js/6875c492.3e884a37.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4813],{18108(e,t,n){n.d(t,{A:()=>c});n(12888);var a=n(13526),s=n(81673);const i="tag_S6PQ",r="tagRegular_fgsO",l="tagWithCount_TmWI";var o=n(11684);function c({permalink:e,label:t,count:n,description:c}){return(0,o.jsxs)(s.A,{rel:"tag",href:e,title:c,className:(0,a.A)(i,n?l:r),children:[t,n&&(0,o.jsx)("span",{children:n})]})}},28582(e,t,n){n.d(t,{A:()=>F});n(12888);var a=n(13526),s=n(81449),i=n(11684) [...]
\ No newline at end of file
diff --git a/assets/js/6875c492.9e6a2b30.js b/assets/js/6875c492.9e6a2b30.js
deleted file mode 100644
index 6391c50a..00000000
--- a/assets/js/6875c492.9e6a2b30.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4813],{96658(e,t,n){n.d(t,{A:()=>r});n(12888);var a=n(61540),s=n(87295),i=n(11684);function r(e){const{metadata:t}=e,{previousPage:n,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,a.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(s.A,{permalink:n,title:(0,i.jsx [...]
\ No newline at end of file
diff --git a/assets/js/6960f02f.4eb4286c.js b/assets/js/6960f02f.4eb4286c.js
new file mode 100644
index 00000000..f0d5fc8d
--- /dev/null
+++ b/assets/js/6960f02f.4eb4286c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6960],{42271(e,i,t){t.d(i,{R:()=>o,x:()=>a});var s=t(12888);const n={},r=s.createContext(n);function o(e){const i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(r.Provider,{value:i},e.children)}},66903(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/6960f02f.fa841a5c.js b/assets/js/6960f02f.fa841a5c.js
deleted file mode 100644
index 0a1d3610..00000000
--- a/assets/js/6960f02f.fa841a5c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6960],{28367(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"get_started/intro","title":"Introduction","description":"BifroMQ is a Java-based, high-performance, distributed MQTT broker implementation that seamlessly integrates native multi-tenancy support. It is designed to facilitate the building of large-scale [...]
\ No newline at end of file
diff --git a/assets/js/69d9c17e.70ae2450.js b/assets/js/69d9c17e.796e32f2.js
similarity index 90%
rename from assets/js/69d9c17e.70ae2450.js
rename to assets/js/69d9c17e.796e32f2.js
index 86426245..b6881d82 100644
--- a/assets/js/69d9c17e.70ae2450.js
+++ b/assets/js/69d9c17e.796e32f2.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3429],{43937(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"intro/features_list","title":"Features List","description":"* Full support for MQTT 3.1, 3.1.1 (MQTT5 support coming soon) features over TCP, TLS, WS, WSS","source":"@site/versioned_docs/version-1.0.x/01_intro/features_list.md","sourceDirName":"01_intr [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3429],{42106(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"intro/features_list","title":"Features List","description":"* Full support for MQTT 3.1, 3.1.1 (MQTT5 support coming soon) features over TCP, TLS, WS, WSS","source":"@site/versioned_docs/version-1.0.x/01_intro/features_list.md","sourceDirName":"01_intr [...]
\ No newline at end of file
diff --git a/assets/js/69ff657b.12d21024.js b/assets/js/69ff657b.12d21024.js
new file mode 100644
index 00000000..e4d2da26
--- /dev/null
+++ b/assets/js/69ff657b.12d21024.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3392],{42271(e,t,i){i.d(t,{R:()=>o,x:()=>d});var r=i(12888);const n={},s=r.createContext(n);function o(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(s.Provider,{value:t},e.children)}},74861(e,t,i [...]
\ No newline at end of file
diff --git a/assets/js/69ff657b.930deb25.js b/assets/js/69ff657b.930deb25.js
deleted file mode 100644
index 6d612c9f..00000000
--- a/assets/js/69ff657b.930deb25.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3392],{74570(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"installation/intro","title":"Installation Overview","description":"Prerequisites","source":"@site/versioned_docs/version-3.2.x/02_installation/intro.md","sourceDirName":"02_installation","slug":"/installation/intro","permalink":"/docs/3.2.x/installatio [...]
\ No newline at end of file
diff --git a/assets/js/6a5167c3.81fbafa9.js b/assets/js/6a5167c3.5b8b69cf.js
similarity index 98%
rename from assets/js/6a5167c3.81fbafa9.js
rename to assets/js/6a5167c3.5b8b69cf.js
index a6dada1d..fe3053a5 100644
--- a/assets/js/6a5167c3.81fbafa9.js
+++ b/assets/js/6a5167c3.5b8b69cf.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2605],{67639(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>a,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"plugin/setting_provider/intro","title":"Setting Provider","description":"BifroMQ defines a category of Tenant-level Settings that can be modified at runtime, allowing for dynamic adjustment of BifroMQ\'s service behavior per tenant. The purpose of the  [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2605],{23866(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>a,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"plugin/setting_provider/intro","title":"Setting Provider","description":"BifroMQ defines a category of Tenant-level Settings that can be modified at runtime, allowing for dynamic adjustment of BifroMQ\'s service behavior per tenant. The purpose of the  [...]
\ No newline at end of file
diff --git a/assets/js/6a947e1d.3f82045b.js b/assets/js/6a947e1d.3f82045b.js
deleted file mode 100644
index c1b90c72..00000000
--- a/assets/js/6a947e1d.3f82045b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3020],{85162(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"plugin/plugin_practice","title":"Plugin Practice and Notice","description":"This article outlines some practices and considerations when developing BifroMQ plugins.","source":"@site/versioned_docs/version-3.0.x/06_plugin/5_plugin_practice.md","sourceDi [...]
\ No newline at end of file
diff --git a/assets/js/6a947e1d.56f8445e.js b/assets/js/6a947e1d.56f8445e.js
new file mode 100644
index 00000000..d2a12f69
--- /dev/null
+++ b/assets/js/6a947e1d.56f8445e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3020],{6854(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"plugin/plugin_practice","title":"Plugin Practice and Notice","description":"This article outlines some practices and considerations when developing BifroMQ plugins.","source":"@site/versioned_docs/version-3.0.x/06_plugin/5_plugin_practice.md","sourceDir [...]
\ No newline at end of file
diff --git a/assets/js/6aae132f.28290a08.js b/assets/js/6aae132f.28290a08.js
new file mode 100644
index 00000000..8d7afb1c
--- /dev/null
+++ b/assets/js/6aae132f.28290a08.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4458],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>o});var t=i(12888);const c={},s=t.createContext(c);function r(e){const n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:r(e.components),t.createElement(s.Provider,{value:n},e.children)}},84662(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/6aae132f.b3ed7ce1.js b/assets/js/6aae132f.b3ed7ce1.js
deleted file mode 100644
index d8c4840f..00000000
--- a/assets/js/6aae132f.b3ed7ce1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4458],{98143(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"configuration/performance_tuning_linux","title":"Performance Tuning (Linux)","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/versioned_docs/versio [...]
\ No newline at end of file
diff --git a/assets/js/6c52c7bd.5e01e618.js b/assets/js/6c52c7bd.5e01e618.js
deleted file mode 100644
index c8c3fa6e..00000000
--- a/assets/js/6c52c7bd.5e01e618.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4743],{91573(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"admin_guide/tuning/os_tuning_linux","title":"Linux Kernel Tuning","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/versioned_docs/version-3.3.x/07_ [...]
\ No newline at end of file
diff --git a/assets/js/6c52c7bd.878bc944.js b/assets/js/6c52c7bd.878bc944.js
new file mode 100644
index 00000000..fcb96e58
--- /dev/null
+++ b/assets/js/6c52c7bd.878bc944.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4743],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>o});var t=i(12888);const s={},c=t.createContext(s);function r(e){const n=t.useContext(c);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(c.Provider,{value:n},e.children)}},42572(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/6ccc01a2.b66922e8.js b/assets/js/6ccc01a2.9033e2c6.js
similarity index 90%
rename from assets/js/6ccc01a2.b66922e8.js
rename to assets/js/6ccc01a2.9033e2c6.js
index 5b3e8827..f70d8965 100644
--- a/assets/js/6ccc01a2.b66922e8.js
+++ b/assets/js/6ccc01a2.9033e2c6.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5576],{69885(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/versioned_docs/version-3.0.x/02_installation/3_windows.md","sourceDirName":"02_installation","slug":"/installation/windows","permalink":"/docs/3.0.x/installation/wind [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5576],{21292(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"installation/windows","title":"Windows","description":"Prerequisites","source":"@site/versioned_docs/version-3.0.x/02_installation/3_windows.md","sourceDirName":"02_installation","slug":"/installation/windows","permalink":"/docs/3.0.x/installation/wind [...]
\ No newline at end of file
diff --git a/assets/js/6d058473.a44d7b6c.js b/assets/js/6d058473.f01b1522.js
similarity index 94%
rename from assets/js/6d058473.a44d7b6c.js
rename to assets/js/6d058473.f01b1522.js
index 9b1c10c3..7c64d608 100644
--- a/assets/js/6d058473.a44d7b6c.js
+++ b/assets/js/6d058473.f01b1522.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7402],{65425(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/connect_to","title":"Connect to BifroMQ","description":"Simple Connection Verification using an MQTT Client","source":"@site/versioned_docs/version-2.0.0/02_get_started/2_connect_to.md","sourceDirName":"02_get_started","slug":"/get_started/ [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7402],{11695(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/connect_to","title":"Connect to BifroMQ","description":"Simple Connection Verification using an MQTT Client","source":"@site/versioned_docs/version-2.0.0/02_get_started/2_connect_to.md","sourceDirName":"02_get_started","slug":"/get_started/ [...]
\ No newline at end of file
diff --git a/assets/js/6df88df8.4b01d1af.js b/assets/js/6df88df8.4b01d1af.js
deleted file mode 100644
index f1a0bed7..00000000
--- a/assets/js/6df88df8.4b01d1af.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6225],{43687(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>p,frontMatter:()=>d,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin enhances BifroMQ by integrating authentication and authorization functionalities for MQTT clients and Pub/Sub operations. The plugin\'s interface is detailed in the f [...]
\ No newline at end of file
diff --git a/assets/js/6df88df8.713e1300.js b/assets/js/6df88df8.713e1300.js
new file mode 100644
index 00000000..174d7bc5
--- /dev/null
+++ b/assets/js/6df88df8.713e1300.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6225],{3151(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>p,frontMatter:()=>d,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin enhances BifroMQ by integrating authentication and authorization functionalities for MQTT clients and Pub/Sub operations. The plugin\'s interface is detailed in the fo [...]
\ No newline at end of file
diff --git a/assets/js/6eb3715c.c49ad4cd.js b/assets/js/6eb3715c.c49ad4cd.js
new file mode 100644
index 00000000..ebdb9277
--- /dev/null
+++ b/assets/js/6eb3715c.c49ad4cd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1357],{42271(e,s,i){i.d(s,{R:()=>t,x:()=>c});var n=i(12888);const r={},o=n.createContext(r);function t(e){const s=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),n.createElement(o.Provider,{value:s},e.children)}},75720(e,s,i [...]
\ No newline at end of file
diff --git a/assets/js/6eb3715c.f3f2322e.js b/assets/js/6eb3715c.f3f2322e.js
deleted file mode 100644
index 8058dcbd..00000000
--- a/assets/js/6eb3715c.f3f2322e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1357],{18404(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>c,default:()=>a,frontMatter:()=>t,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/basic/pubsub","title":"Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source":"@site/docs/use [...]
\ No newline at end of file
diff --git a/assets/js/70051b3d.a34ac991.js b/assets/js/70051b3d.a34ac991.js
new file mode 100644
index 00000000..1f0b7851
--- /dev/null
+++ b/assets/js/70051b3d.a34ac991.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9755],{42271(e,n,t){t.d(n,{R:()=>o,x:()=>a});var i=t(12888);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}},96301(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/70051b3d.eff33472.js b/assets/js/70051b3d.eff33472.js
deleted file mode 100644
index 140e4bb9..00000000
--- a/assets/js/70051b3d.eff33472.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9755],{61179(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"get_started/roadmap","title":"Road Map","description":"This roadmap is organized into two categories:","source":"@site/docs/get_started/roadmap.md","sourceDirName":"get_started","slug":"/get_started/roadmap","permalink":"/docs/get_started/roadmap","dra [...]
\ No newline at end of file
diff --git a/assets/js/7080.d5d1edbe.js b/assets/js/7080.80c6239f.js
similarity index 98%
rename from assets/js/7080.d5d1edbe.js
rename to assets/js/7080.80c6239f.js
index aa9f7686..7abdfef8 100644
--- a/assets/js/7080.d5d1edbe.js
+++ b/assets/js/7080.80c6239f.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7080],{85796(e,t,a){function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>i}),(0,a(37970).K2)(i,"populateCommonDb")},97080(e,t,a){a.d(t,{diagram:()=>v});var i=a(45717),l=a(85796),n=a(69808),r=a(93316),s=a(37970),o=a(99953),c=a(7012),p=r.UI.pie,d={sections:new Map,showData:!1,config:p},u=d.sections,g=d.sh [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7080],{85796(e,t,a){function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>i}),(0,a(37970).K2)(i,"populateCommonDb")},97080(e,t,a){a.d(t,{diagram:()=>v});var i=a(45717),l=a(85796),n=a(69808),r=a(93316),s=a(37970),o=a(99953),c=a(3170),p=r.UI.pie,d={sections:new Map,showData:!1,config:p},u=d.sections,g=d.sh [...]
\ No newline at end of file
diff --git a/assets/js/70900543.1771c6d0.js b/assets/js/70900543.8545a45a.js
similarity index 95%
rename from assets/js/70900543.1771c6d0.js
rename to assets/js/70900543.8545a45a.js
index 56f20531..1e4bbced 100644
--- a/assets/js/70900543.1771c6d0.js
+++ b/assets/js/70900543.8545a45a.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3611],{35649(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/nodes_on_k8s","title":"Notes on Kubernetes Deployment","description":"Deploying BifroMQ on Kubernetes requires careful consideration of its stateful service characteristics and understanding of Kubernetes-specific cluster operations and ma [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3611],{35004(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/nodes_on_k8s","title":"Notes on Kubernetes Deployment","description":"Deploying BifroMQ on Kubernetes requires careful consideration of its stateful service characteristics and understanding of Kubernetes-specific cluster operations and ma [...]
\ No newline at end of file
diff --git a/assets/js/714c7e8d.f6f974cb.js b/assets/js/714c7e8d.f6f974cb.js
deleted file mode 100644
index 95f72322..00000000
--- a/assets/js/714c7e8d.f6f974cb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2876],{10759(e,o,r){r.r(o),r.d(o,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>t,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"deploy/build_from_source","title":"Deploy from source","description":"Prerequisites","source":"@site/versioned_docs/version-1.0.x/03_deploy/11_build_from_source.md","sourceDirName":"03_deploy","slug":"/deploy/build_from_source","permalink":"/docs/1.0.x [...]
\ No newline at end of file
diff --git a/assets/js/714c7e8d.f972c26d.js b/assets/js/714c7e8d.f972c26d.js
new file mode 100644
index 00000000..68423063
--- /dev/null
+++ b/assets/js/714c7e8d.f972c26d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2876],{2742(e,o,r){r.r(o),r.d(o,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>t,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"deploy/build_from_source","title":"Deploy from source","description":"Prerequisites","source":"@site/versioned_docs/version-1.0.x/03_deploy/11_build_from_source.md","sourceDirName":"03_deploy","slug":"/deploy/build_from_source","permalink":"/docs/1.0.x/ [...]
\ No newline at end of file
diff --git a/assets/js/719db95c.26fa35eb.js b/assets/js/719db95c.26fa35eb.js
new file mode 100644
index 00000000..bb0d65eb
--- /dev/null
+++ b/assets/js/719db95c.26fa35eb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5971],{42271(e,t,n){n.d(t,{R:()=>i,x:()=>a});var r=n(12888);const s={},o=r.createContext(s);function i(e){const t=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(o.Provider,{value:t},e.children)}},77896(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/719db95c.97482ff3.js b/assets/js/719db95c.97482ff3.js
deleted file mode 100644
index 5381467a..00000000
--- a/assets/js/719db95c.97482ff3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5971],{5866(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"get_started/quick_install","title":"Install BifroMQ","description":"Docker","source":"@site/versioned_docs/version-2.1.x/02_get_started/1_quick_install.md","sourceDirName":"02_get_started","slug":"/get_started/quick_install","permalink":"/docs/2.1.x/get [...]
\ No newline at end of file
diff --git a/assets/js/72f15fed.572cc069.js b/assets/js/72f15fed.572cc069.js
new file mode 100644
index 00000000..78d55a4f
--- /dev/null
+++ b/assets/js/72f15fed.572cc069.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3889],{42271(e,i,n){n.d(i,{R:()=>s,x:()=>a});var t=n(12888);const o={},r=t.createContext(o);function s(e){const i=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:i},e.children)}},57500(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/72f15fed.e0fd72fc.js b/assets/js/72f15fed.e0fd72fc.js
deleted file mode 100644
index 5a468160..00000000
--- a/assets/js/72f15fed.e0fd72fc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3889],{60277(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"installation/docker","title":"Docker","description":"Prerequisites","source":"@site/versioned_docs/version-3.3.x/02_installation/1_docker.md","sourceDirName":"02_installation","slug":"/installation/docker","permalink":"/docs/3.3.x/installation/docker", [...]
\ No newline at end of file
diff --git a/assets/js/7304.b4b40b90.js b/assets/js/7304.b4b40b90.js
new file mode 100644
index 00000000..a8418394
--- /dev/null
+++ b/assets/js/7304.b4b40b90.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7304],{2626(t,e,n){n.d(e,{P:()=>s});var i=n(93316),o=n(37970),s=(0,o.K2)((t,e,n,s)=>{t.attr("class",n);const{width:c,height:l,x:h,y:d}=r(t,e);(0,i.a$)(t,l,c,s);const g=a(h,d,c,l,e);t.attr("viewBox",g),o.Rm.debug(`viewBox configured: ${g} with padding: ${e}`)},"setupViewPortForSVG"),r=(0,o.K2)((t,e)=>{const n=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:n.width+2*e,height:n.height+2*e,x [...]
\ No newline at end of file
diff --git a/assets/js/731c9e3c.484df5c5.js b/assets/js/731c9e3c.484df5c5.js
new file mode 100644
index 00000000..8fd0a085
--- /dev/null
+++ b/assets/js/731c9e3c.484df5c5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8101],{42271(e,i,n){n.d(i,{R:()=>r,x:()=>s});var t=n(12888);const o={},a=t.createContext(o);function r(e){const i=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(a.Provider,{value:i},e.children)}},61819(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/731c9e3c.d0d4b915.js b/assets/js/731c9e3c.d0d4b915.js
deleted file mode 100644
index cdf2a702..00000000
--- a/assets/js/731c9e3c.d0d4b915.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8101],{88081(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"admin_guide/configuration/intro","title":"Configuration Overview","description":"Based on different usage scenarios, BifroMQ divides configurations into system-level and tenant-level. System-level configurations are set at the system\'s startup and can [...]
\ No newline at end of file
diff --git a/assets/js/73345e90.5c812e18.js b/assets/js/73345e90.5c812e18.js
new file mode 100644
index 00000000..2a47392d
--- /dev/null
+++ b/assets/js/73345e90.5c812e18.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6221],{24220(e,i,n){n.d(i,{A:()=>t});const t=n.p+"assets/images/API-Arch-dc85a6a27094c8bc230d7786cd3f51b8.png"},42271(e,i,n){n.d(i,{R:()=>r,x:()=>a});var t=n(12888);const s={},o=t.createContext(s);function r(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.com [...]
\ No newline at end of file
diff --git a/assets/js/73345e90.6aaa72ca.js b/assets/js/73345e90.6aaa72ca.js
deleted file mode 100644
index dfe07e8d..00000000
--- a/assets/js/73345e90.6aaa72ca.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6221],{45936(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"user_guide/api/intro","title":"API Overview","description":"BifroMQ incorporates built-in API capabilities, allowing for operations such as disconnecting client connections, querying session status, publishing messages, and managing subscriptions. Thes [...]
\ No newline at end of file
diff --git a/assets/js/7344.2552418c.js b/assets/js/7344.2552418c.js
new file mode 100644
index 00000000..f5264ff4
--- /dev/null
+++ b/assets/js/7344.2552418c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7344],{37344(t,r,e){e.d(r,{diagram:()=>Rt});var o=e(85796),n=e(56733),a=e(69808),i=e(93316),s=e(37970),c=e(99953),d=e(3170),h={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},$=i.UI.gitGraph,m=(0,s.K2)(()=>(0,a.$t)({...$,...(0,i.zj)().gitGraph}),"getConfig"),l=new n.m(()=>{const t=m(),r=t.mainBranchName,e=t.mainBranchOrder;return{mainBranchName:r,commits:new Map,head:null,branchConfig:new Map([[ [...]
\ No newline at end of file
diff --git a/assets/js/7344.6d0370f1.js b/assets/js/7344.6d0370f1.js
deleted file mode 100644
index 9168f64f..00000000
--- a/assets/js/7344.6d0370f1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7344],{85796(t,r,e){function o(t,r){t.accDescr&&r.setAccDescription?.(t.accDescr),t.accTitle&&r.setAccTitle?.(t.accTitle),t.title&&r.setDiagramTitle?.(t.title)}e.d(r,{S:()=>o}),(0,e(37970).K2)(o,"populateCommonDb")},56733(t,r,e){e.d(r,{m:()=>n});var o=e(37970),n=class{constructor(t){this.init=t,this.records=this.init()}static{(0,o.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},37344(t [...]
\ No newline at end of file
diff --git a/assets/js/73910b6f.9df1a128.js b/assets/js/73910b6f.9df1a128.js
deleted file mode 100644
index bea9d67e..00000000
--- a/assets/js/73910b6f.9df1a128.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7801],{41974(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"cluster/standardcluster","title":"Deploy StandardCluster","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/04_cluster/1_standardcluster.md","sourceDirName":"04_cluster","slug":"/cluster/standardcluster","permalink":"/docs/3.1. [...]
\ No newline at end of file
diff --git a/assets/js/73910b6f.a6a57757.js b/assets/js/73910b6f.a6a57757.js
new file mode 100644
index 00000000..afd7fee5
--- /dev/null
+++ b/assets/js/73910b6f.a6a57757.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7801],{42271(e,t,n){n.d(t,{R:()=>i,x:()=>a});var s=n(12888);const r={},o=s.createContext(r);function i(e){const t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(o.Provider,{value:t},e.children)}},74818(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/743d3eb5.089d7389.js b/assets/js/743d3eb5.089d7389.js
new file mode 100644
index 00000000..f7abac81
--- /dev/null
+++ b/assets/js/743d3eb5.089d7389.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7572],{758(e,s,n){n.d(s,{A:()=>t});const t=n.p+"assets/images/p99-ae37867276c2b87082de257e810e7489.png"},1413(e,s,n){n.d(s,{A:()=>t});const t=n.p+"assets/images/mem-f0adba67f7375b0ba8a87556e3822437.png"},1952(e,s,n){n.d(s,{A:()=>t});const t=n.p+"assets/images/mean-44b7a9aa548542dd5f7396cdadd463b0.png"},2522(e,s,n){n.d(s,{A:()=>t});const t=n.p+"assets/images/cpu-60e69a7fbff4db566a36572384ee390b.png"},2 [...]
\ No newline at end of file
diff --git a/assets/js/743d3eb5.6b28e7f7.js b/assets/js/743d3eb5.6b28e7f7.js
deleted file mode 100644
index 7ad50c17..00000000
--- a/assets/js/743d3eb5.6b28e7f7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7572],{40392(e,s,n){n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>r,default:()=>o,frontMatter:()=>c,metadata:()=>t,toc:()=>h});const t=JSON.parse('{"id":"test_report/test_report","title":"Test Report","description":"Test Objectives","source":"@site/versioned_docs/version-2.0.0/99_test_report/1_test_report.md","sourceDirName":"99_test_report","slug":"/test_report/test_report","permalink":"/docs/2.0.0/tes [...]
\ No newline at end of file
diff --git a/assets/js/7516.5fab20f8.js b/assets/js/7516.5fab20f8.js
deleted file mode 100644
index 96c6b175..00000000
--- a/assets/js/7516.5fab20f8.js
+++ /dev/null
@@ -1 +0,0 @@
-(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7516],{99222(t){t.exports=function(){"use strict";return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var s=this.$utils(),r=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":retu [...]
\ No newline at end of file
diff --git a/assets/js/7516.c070ab16.js b/assets/js/7516.c070ab16.js
new file mode 100644
index 00000000..dacd78e2
--- /dev/null
+++ b/assets/js/7516.c070ab16.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7516],{16443(t){t.exports=function(){"use strict";return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var s=this.$utils(),r=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":retu [...]
\ No newline at end of file
diff --git a/assets/js/76510c22.539e6b44.js b/assets/js/76510c22.539e6b44.js
deleted file mode 100644
index f4b59116..00000000
--- a/assets/js/76510c22.539e6b44.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5381],{87350(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/intro","title":"User Guide Overview","description":"BifroMQ is a sophisticated, Java-based MQTT broker that excels in providing high-performance, distributed messaging capabilities. With its native support for multi-tenancy, BifroMQ stands o [...]
\ No newline at end of file
diff --git a/assets/js/76510c22.66b07c1b.js b/assets/js/76510c22.66b07c1b.js
new file mode 100644
index 00000000..61acd065
--- /dev/null
+++ b/assets/js/76510c22.66b07c1b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5381],{4721(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/intro","title":"User Guide Overview","description":"BifroMQ is a sophisticated, Java-based MQTT broker that excels in providing high-performance, distributed messaging capabilities. With its native support for multi-tenancy, BifroMQ stands ou [...]
\ No newline at end of file
diff --git a/assets/js/76666b2c.3e7f9d0d.js b/assets/js/76666b2c.a04a4d4d.js
similarity index 96%
rename from assets/js/76666b2c.3e7f9d0d.js
rename to assets/js/76666b2c.a04a4d4d.js
index 92deb21d..dbe65be1 100644
--- a/assets/js/76666b2c.3e7f9d0d.js
+++ b/assets/js/76666b2c.a04a4d4d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1001],{48299(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"mqtt_best_practices/mqtt_parameters","title":"MQTT Parameter Selection","description":"MQTT is a lightweight messaging protocol that is extensively used in various fields such as the Internet of Things (IoT), sensor networks, and mobile applications. W [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1001],{16209(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"mqtt_best_practices/mqtt_parameters","title":"MQTT Parameter Selection","description":"MQTT is a lightweight messaging protocol that is extensively used in various fields such as the Internet of Things (IoT), sensor networks, and mobile applications. W [...]
\ No newline at end of file
diff --git a/assets/js/76fd5b4b.62bd63fd.js b/assets/js/76fd5b4b.62bd63fd.js
new file mode 100644
index 00000000..ca1b0f41
--- /dev/null
+++ b/assets/js/76fd5b4b.62bd63fd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5993],{6248(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>a,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"user_guide/api/api_reference","title":"API Reference","description":"API Endpoints","source":"@site/versioned_docs/version-3.1.x/05_user_guide/3_api/1_api_reference.md","sourceDirName":"05_user_guide/3_api","slug":"/user_guide/api/api_reference","permal [...]
\ No newline at end of file
diff --git a/assets/js/76fd5b4b.82bcf9ff.js b/assets/js/76fd5b4b.82bcf9ff.js
deleted file mode 100644
index 64ac46f4..00000000
--- a/assets/js/76fd5b4b.82bcf9ff.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5993],{11648(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>a,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"user_guide/api/api_reference","title":"API Reference","description":"API Endpoints","source":"@site/versioned_docs/version-3.1.x/05_user_guide/3_api/1_api_reference.md","sourceDirName":"05_user_guide/3_api","slug":"/user_guide/api/api_reference","perma [...]
\ No newline at end of file
diff --git a/assets/js/770.3fa25de4.js b/assets/js/770.3fa25de4.js
new file mode 100644
index 00000000..3891b831
--- /dev/null
+++ b/assets/js/770.3fa25de4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[770],{56733(t,e,a){a.d(e,{m:()=>s});var r=a(37970),s=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},58389(t,e,a){a.d(e,{diagram:()=>Vt});var r=a(59164),s=a(68208),i=a(56733),n=a(69808),o=a(93316),c=a(37970),d=a(3170),l=a(41407),h=function(){var t=(0,c.K2)(function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);retur [...]
\ No newline at end of file
diff --git a/assets/js/770.65da5dab.js b/assets/js/770.65da5dab.js
deleted file mode 100644
index f39a6b34..00000000
--- a/assets/js/770.65da5dab.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[770],{68208(t,e,a){a.d(e,{CP:()=>h,Ck:()=>E,HT:()=>T,PB:()=>p,aC:()=>l,lC:()=>c,m:()=>d,tk:()=>o});var r=a(93316),s=a(37970),i=a(34674),n=a(7012),o=(0,s.K2)((t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),voi [...]
\ No newline at end of file
diff --git a/assets/js/772e6557.36efeb95.js b/assets/js/772e6557.36efeb95.js
deleted file mode 100644
index 5f36f1a8..00000000
--- a/assets/js/772e6557.36efeb95.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3061],{7830(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/install_from_source","title":"Install from Source","description":"Prerequisites","source":"@site/versioned_docs/version-3.0.x/02_installation/4_install_from_source.md","sourceDirName":"02_installation","slug":"/installation/install_from_sou [...]
\ No newline at end of file
diff --git a/assets/js/d6e2ca83.692aba9c.js b/assets/js/772e6557.cc4195ea.js
similarity index 56%
rename from assets/js/d6e2ca83.692aba9c.js
rename to assets/js/772e6557.cc4195ea.js
index 43fe404c..9410e251 100644
--- a/assets/js/d6e2ca83.692aba9c.js
+++ b/assets/js/772e6557.cc4195ea.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6439],{74254(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/install_from_source","title":"Install from Source","description":"Prerequisites","source":"@site/versioned_docs/version-3.3.x/02_installation/4_install_from_source.md","sourceDirName":"02_installation","slug":"/installation/install_from_so [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3061],{33609(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/install_from_source","title":"Install from Source","description":"Prerequisites","source":"@site/versioned_docs/version-3.0.x/02_installation/4_install_from_source.md","sourceDirName":"02_installation","slug":"/installation/install_from_so [...]
\ No newline at end of file
diff --git a/assets/js/7767cf95.0c3cb614.js b/assets/js/7767cf95.0c3cb614.js
deleted file mode 100644
index 89683882..00000000
--- a/assets/js/7767cf95.0c3cb614.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2265],{67641(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"admin_guide/overview","title":"Admin Guide Overview","description":"The administration of BifroMQ encompasses two levels: system-level management and tenant-level management. The former is mainly targeted at system administrators and operations personn [...]
\ No newline at end of file
diff --git a/assets/js/7767cf95.0e1fd885.js b/assets/js/7767cf95.0e1fd885.js
new file mode 100644
index 00000000..44c6a3e7
--- /dev/null
+++ b/assets/js/7767cf95.0e1fd885.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2265],{42271(e,n,t){t.d(n,{R:()=>s,x:()=>a});var i=t(12888);const o={},r=i.createContext(o);function s(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},88040(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/788d84e9.4c25d776.js b/assets/js/788d84e9.9ef1b953.js
similarity index 97%
rename from assets/js/788d84e9.4c25d776.js
rename to assets/js/788d84e9.9ef1b953.js
index 26eac3d1..d0200184 100644
--- a/assets/js/788d84e9.4c25d776.js
+++ b/assets/js/788d84e9.9ef1b953.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[612],{79159(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"admin_guide/tuning/os_tuning_linux","title":"Linux Kernel Tuning","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/versioned_docs/version-3.0.x/07_a [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[612],{34840(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"admin_guide/tuning/os_tuning_linux","title":"Linux Kernel Tuning","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/versioned_docs/version-3.0.x/07_a [...]
\ No newline at end of file
diff --git a/assets/js/7898e671.c59a1b8e.js b/assets/js/7898e671.c59a1b8e.js
deleted file mode 100644
index 7f09fb58..00000000
--- a/assets/js/7898e671.c59a1b8e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5344],{94606(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"plugin/intro","title":"Plugin Overview","description":"The plugin mechanism is a primary way for BifroMQ to deeply integrate with business systems. Currently, BifroMQ exposes five types of plugin extension interfaces to cater to different usage scenari [...]
\ No newline at end of file
diff --git a/assets/js/7898e671.e819843f.js b/assets/js/7898e671.e819843f.js
new file mode 100644
index 00000000..2f064c2c
--- /dev/null
+++ b/assets/js/7898e671.e819843f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5344],{42271(e,n,i){i.d(n,{R:()=>s,x:()=>l});var r=i(12888);const t={},o=r.createContext(t);function s(e){const n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),r.createElement(o.Provider,{value:n},e.children)}},94040(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/78be7ae3.b4b5803e.js b/assets/js/78be7ae3.560918c2.js
similarity index 98%
rename from assets/js/78be7ae3.b4b5803e.js
rename to assets/js/78be7ae3.560918c2.js
index 0f27b706..de0a1e15 100644
--- a/assets/js/78be7ae3.b4b5803e.js
+++ b/assets/js/78be7ae3.560918c2.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5657],{15559(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>a,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"user_guide/api/api_reference","title":"API Reference","description":"API Endpoints","source":"@site/versioned_docs/version-3.2.x/05_user_guide/3_api/1_api_reference.md","sourceDirName":"05_user_guide/3_api","slug":"/user_guide/api/api_reference","perma [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5657],{15577(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>a,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"user_guide/api/api_reference","title":"API Reference","description":"API Endpoints","source":"@site/versioned_docs/version-3.2.x/05_user_guide/3_api/1_api_reference.md","sourceDirName":"05_user_guide/3_api","slug":"/user_guide/api/api_reference","perma [...]
\ No newline at end of file
diff --git a/assets/js/7985.72d6dea7.js b/assets/js/7985.72d6dea7.js
new file mode 100644
index 00000000..dd8f9e6c
--- /dev/null
+++ b/assets/js/7985.72d6dea7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7985],{97985(t,i,e){e.d(i,{diagram:()=>it});var s=e(45717),a=e(15111),n=e(69808),h=e(93316),o=e(37970),r=e(3170),l=function(){var t=(0,o.K2)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],h=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],y=[1,34], [...]
\ No newline at end of file
diff --git a/assets/js/7985.a8128d2b.js b/assets/js/7985.a8128d2b.js
deleted file mode 100644
index 267cb005..00000000
--- a/assets/js/7985.a8128d2b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7985],{97985(t,i,e){e.d(i,{diagram:()=>it});var s=e(45717),a=e(2864),n=e(69808),h=e(93316),o=e(37970),r=e(7012),l=function(){var t=(0,o.K2)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],h=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],y=[1,34],m [...]
\ No newline at end of file
diff --git a/assets/js/79f17cff.2dedf374.js b/assets/js/79f17cff.2dedf374.js
deleted file mode 100644
index 5e2e59e3..00000000
--- a/assets/js/79f17cff.2dedf374.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8682],{56853(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"plugin/setting_provider/intro","title":"Setting Provider","description":"BifroMQ defines a category of Tenant-level Settings that can be modified at runtime, allowing for dynamic adjustment of BifroMQ\'s service behavior per tenant. The purpose of the  [...]
\ No newline at end of file
diff --git a/assets/js/79f17cff.9b4609a8.js b/assets/js/79f17cff.9b4609a8.js
new file mode 100644
index 00000000..40cdd620
--- /dev/null
+++ b/assets/js/79f17cff.9b4609a8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8682],{42271(e,n,t){t.d(n,{R:()=>o,x:()=>d});var i=t(12888);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},88315(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/7a438d72.0023ded6.js b/assets/js/7a438d72.0023ded6.js
new file mode 100644
index 00000000..82479711
--- /dev/null
+++ b/assets/js/7a438d72.0023ded6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5619],{42271(e,n,i){i.d(n,{R:()=>s,x:()=>l});var t=i(12888);const o={},r=t.createContext(o);function s(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},78671(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/7a438d72.91c7fcf4.js b/assets/js/7a438d72.91c7fcf4.js
deleted file mode 100644
index 43ad65e3..00000000
--- a/assets/js/7a438d72.91c7fcf4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5619],{22883(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"plugin/intro","title":"Plugin Overview","description":"The plugin mechanism is a primary way for BifroMQ to deeply integrate with business systems. Currently, BifroMQ exposes four types of plugin extension interfaces to cater to different usage scenari [...]
\ No newline at end of file
diff --git a/assets/js/7c3cfe74.73f42937.js b/assets/js/7c3cfe74.9757d212.js
similarity index 98%
rename from assets/js/7c3cfe74.73f42937.js
rename to assets/js/7c3cfe74.9757d212.js
index ea5eb043..8c2d1667 100644
--- a/assets/js/7c3cfe74.73f42937.js
+++ b/assets/js/7c3cfe74.9757d212.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2581],{61869(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2581],{28046(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
diff --git a/assets/js/7e380fdc.596c3494.js b/assets/js/7e380fdc.596c3494.js
new file mode 100644
index 00000000..86f0b401
--- /dev/null
+++ b/assets/js/7e380fdc.596c3494.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5559],{42271(e,n,t){t.d(n,{R:()=>o,x:()=>a});var i=t(12888);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},99840(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/7e380fdc.d0387780.js b/assets/js/7e380fdc.d0387780.js
deleted file mode 100644
index e4522d71..00000000
--- a/assets/js/7e380fdc.d0387780.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5559],{42749(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"admin_guide/security/intro","title":"Security Overview","description":"Security, a broad and critical aspect of any system, is a key focus for BifroMQ. Recognizing the importance of securing MQTT broker deployments, BifroMQ offers a suite of features d [...]
\ No newline at end of file
diff --git a/assets/js/7e3c7cc2.5026ce8f.js b/assets/js/7e3c7cc2.5026ce8f.js
new file mode 100644
index 00000000..f8eeef2d
--- /dev/null
+++ b/assets/js/7e3c7cc2.5026ce8f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8764],{42271(e,n,t){t.d(n,{R:()=>s,x:()=>a});var i=t(12888);const o={},r=i.createContext(o);function s(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},54012(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/7e3c7cc2.86d029ae.js b/assets/js/7e3c7cc2.86d029ae.js
deleted file mode 100644
index 48440a0c..00000000
--- a/assets/js/7e3c7cc2.86d029ae.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8764],{93329(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"admin_guide/overview","title":"Admin Guide Overview","description":"The administration of BifroMQ encompasses two levels: system-level management and tenant-level management. The former is mainly targeted at system administrators and operations personn [...]
\ No newline at end of file
diff --git a/assets/js/7e45b1de.1d40d545.js b/assets/js/7e45b1de.1d40d545.js
new file mode 100644
index 00000000..b2cecb6a
--- /dev/null
+++ b/assets/js/7e45b1de.1d40d545.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1868],{42271(e,n,t){t.d(n,{R:()=>o,x:()=>c});var s=t(12888);const r={},i=s.createContext(r);function o(e){const n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:n},e.children)}},81409(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/7e45b1de.5885b649.js b/assets/js/7e45b1de.5885b649.js
deleted file mode 100644
index 63cc73b9..00000000
--- a/assets/js/7e45b1de.5885b649.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1868],{66202(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"plugin/resource_throttler","title":"Resource Throttler","description":"In BifroMQ\'s multi-tenant architecture, tenants share resources provided by a single cluster instance. To prevent any single tenant from overusing resources and impacting others, i [...]
\ No newline at end of file
diff --git a/assets/js/7e5997dd.24f13435.js b/assets/js/7e5997dd.24f13435.js
new file mode 100644
index 00000000..7e8754a0
--- /dev/null
+++ b/assets/js/7e5997dd.24f13435.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[181],{41994(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/basic/pubsub","title":"Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source":"@site/versioned [...]
\ No newline at end of file
diff --git a/assets/js/7e5997dd.5775a1fa.js b/assets/js/7e5997dd.5775a1fa.js
deleted file mode 100644
index 42e8da99..00000000
--- a/assets/js/7e5997dd.5775a1fa.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[181],{9790(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/basic/pubsub","title":"Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source":"@site/versioned_ [...]
\ No newline at end of file
diff --git a/assets/js/7e80867e.144c425f.js b/assets/js/7e80867e.144c425f.js
new file mode 100644
index 00000000..d2b390fb
--- /dev/null
+++ b/assets/js/7e80867e.144c425f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7413],{42271(e,t,n){n.d(t,{R:()=>o,x:()=>a});var i=n(12888);const r={},s=i.createContext(r);function o(e){const t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:t},e.children)}},97790(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/7e80867e.176fe61a.js b/assets/js/7e80867e.176fe61a.js
deleted file mode 100644
index 9999afaf..00000000
--- a/assets/js/7e80867e.176fe61a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7413],{7638(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"intro/features_list","title":"Features List","description":"* Full support for MQTT 3.1, 3.1.1 (MQTT5 support coming soon) features over TCP, TLS, WS, WSS","source":"@site/versioned_docs/version-2.1.x/01_intro/features_list.md","sourceDirName":"01_intro [...]
\ No newline at end of file
diff --git a/assets/js/8019.d6323d0e.js b/assets/js/8019.d6323d0e.js
deleted file mode 100644
index a65a2dbc..00000000
--- a/assets/js/8019.d6323d0e.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see 8019.d6323d0e.js.LICENSE.txt */
-(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8019],{14371(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0,e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,e.htmlCtrlEntityRegex=/&(newline|tab);/gi,e.ctrlCharacter [...]
\ No newline at end of file
diff --git a/assets/js/8019.d6323d0e.js.LICENSE.txt b/assets/js/8019.d6323d0e.js.LICENSE.txt
deleted file mode 100644
index 92321fec..00000000
--- a/assets/js/8019.d6323d0e.js.LICENSE.txt
+++ /dev/null
@@ -1 +0,0 @@
-/*! @license DOMPurify 3.4.10 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.10/LICENSE */
diff --git a/assets/js/8049.5bd14382.js b/assets/js/8049.5bd14382.js
deleted file mode 100644
index dc0658a9..00000000
--- a/assets/js/8049.5bd14382.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8049],{68049(r,s,a){a.d(s,{diagram:()=>l});var e=a(15196),i=(a(14458),a(68208),a(95934),a(2626),a(77019),a(42452),a(62993),a(73641),a(10566),a(79478),a(2864),a(69808),a(93316),a(37970)),l={parser:e._$,get db(){return new e.NM},renderer:e.Lh,styles:e.tM,init:(0,i.K2)(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/8049.b425f5cf.js b/assets/js/8049.b425f5cf.js
new file mode 100644
index 00000000..4abe3505
--- /dev/null
+++ b/assets/js/8049.b425f5cf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8049],{68049(r,s,a){a.d(s,{diagram:()=>l});var e=a(15196),i=(a(14458),a(68208),a(95934),a(2626),a(77019),a(42452),a(62993),a(73641),a(10566),a(79478),a(15111),a(69808),a(93316),a(37970)),l={parser:e._$,get db(){return new e.NM},renderer:e.Lh,styles:e.tM,init:(0,i.K2)(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/808bc487.9b8ede3b.js b/assets/js/808bc487.00f2809e.js
similarity index 89%
rename from assets/js/808bc487.9b8ede3b.js
rename to assets/js/808bc487.00f2809e.js
index a5508205..b9b824ba 100644
--- a/assets/js/808bc487.9b8ede3b.js
+++ b/assets/js/808bc487.00f2809e.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[807],{49882(t,e,n){n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"get_started/quick_install","title":"Quick Install","description":"For a rapid setup, Docker is recommended.","source":"@site/versioned_docs/version-3.1.x/01_get_started/1_quick_install.md","sourceDirName":"01_get_started","slug":"/get_started/quick_inst [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[807],{41418(t,e,n){n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"get_started/quick_install","title":"Quick Install","description":"For a rapid setup, Docker is recommended.","source":"@site/versioned_docs/version-3.1.x/01_get_started/1_quick_install.md","sourceDirName":"01_get_started","slug":"/get_started/quick_inst [...]
\ No newline at end of file
diff --git a/assets/js/80bf6005.5caad930.js b/assets/js/80bf6005.5caad930.js
new file mode 100644
index 00000000..b7f630c8
--- /dev/null
+++ b/assets/js/80bf6005.5caad930.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5392],{42271(e,n,i){i.d(n,{R:()=>l,x:()=>t});var s=i(12888);const r={},d=s.createContext(r);function l(e){const n=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(d.Provider,{value:n},e.children)}},94865(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/80bf6005.782e6ce8.js b/assets/js/80bf6005.782e6ce8.js
deleted file mode 100644
index 21e8f970..00000000
--- a/assets/js/80bf6005.782e6ce8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5392],{80615(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>a,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"user_guide/api/api_reference","title":"API Reference","description":"API Endpoints","source":"@site/versioned_docs/version-3.3.x/05_user_guide/3_api/1_api_reference.md","sourceDirName":"05_user_guide/3_api","slug":"/user_guide/api/api_reference","perma [...]
\ No newline at end of file
diff --git a/assets/js/8152.099ec63b.js b/assets/js/8152.099ec63b.js
new file mode 100644
index 00000000..68c50dca
--- /dev/null
+++ b/assets/js/8152.099ec63b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8152],{38152(t,e,a){a.d(e,{diagram:()=>m});var r=a(45717),i=a(85796),o=a(69808),n=a(93316),s=a(37970),l=a(99953),c=n.UI.packet,d=class{constructor(){this.packet=[],this.setAccTitle=n.SV,this.getAccTitle=n.iN,this.setDiagramTitle=n.ke,this.getDiagramTitle=n.ab,this.getAccDescription=n.m7,this.setAccDescription=n.EI}static{(0,s.K2)(this,"PacketDB")}getConfig(){const t=(0,o.$t)({...c,...(0,n.zj)().packet [...]
\ No newline at end of file
diff --git a/assets/js/8152.97a9d83b.js b/assets/js/8152.97a9d83b.js
deleted file mode 100644
index 5a818774..00000000
--- a/assets/js/8152.97a9d83b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8152],{85796(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(37970).K2)(r,"populateCommonDb")},38152(t,e,a){a.d(e,{diagram:()=>m});var r=a(45717),i=a(85796),o=a(69808),n=a(93316),s=a(37970),l=a(99953),c=n.UI.packet,d=class{constructor(){this.packet=[],this.setAccTitle=n.SV,this.getA [...]
\ No newline at end of file
diff --git a/assets/js/81955bc0.8dccaa38.js b/assets/js/81955bc0.0a342dc9.js
similarity index 97%
rename from assets/js/81955bc0.8dccaa38.js
rename to assets/js/81955bc0.0a342dc9.js
index 7ea2f3e4..5c3c1036 100644
--- a/assets/js/81955bc0.8dccaa38.js
+++ b/assets/js/81955bc0.0a342dc9.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5368],{30363(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"admin_guide/configuration/configs_print","title":"Configuration Printing","description":"When BifroMQ starts, it prints the values of various configurations in the info logs. Printing configuration information helps you understand the specific settings [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5368],{20571(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"admin_guide/configuration/configs_print","title":"Configuration Printing","description":"When BifroMQ starts, it prints the values of various configurations in the info logs. Printing configuration information helps you understand the specific settings [...]
\ No newline at end of file
diff --git a/assets/js/8290.e0052283.js b/assets/js/8290.5b1ed9ca.js
similarity index 99%
rename from assets/js/8290.e0052283.js
rename to assets/js/8290.5b1ed9ca.js
index ac39c6f8..4b7ca0c2 100644
--- a/assets/js/8290.e0052283.js
+++ b/assets/js/8290.5b1ed9ca.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8290],{28290(t,e,n){n.d(e,{diagram:()=>lt});var i=n(45717),r=n(69808),a=n(93316),s=n(37970),o=n(7012),c=n(13212),l=n(58480),h=n(81896),d=function(){var t=(0,s.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[6,11,13,14,15,17,19,20,23,24],n=[1,12],i=[1,13],r=[1,14],a=[1,15],o=[1,16],c=[1,19],l=[1,20],h={trace:(0,s.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ti [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8290],{28290(t,e,n){n.d(e,{diagram:()=>lt});var i=n(45717),r=n(69808),a=n(93316),s=n(37970),o=n(3170),c=n(13212),l=n(58480),h=n(81896),d=function(){var t=(0,s.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[6,11,13,14,15,17,19,20,23,24],n=[1,12],i=[1,13],r=[1,14],a=[1,15],o=[1,16],c=[1,19],l=[1,20],h={trace:(0,s.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ti [...]
\ No newline at end of file
diff --git a/assets/js/82ae5bdc.a88338b2.js b/assets/js/82ae5bdc.a88338b2.js
deleted file mode 100644
index 5cba0868..00000000
--- a/assets/js/82ae5bdc.a88338b2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8389],{83166(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/basic/pubsub","title":"Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source":"@site/versione [...]
\ No newline at end of file
diff --git a/assets/js/82ae5bdc.c88d76d1.js b/assets/js/82ae5bdc.c88d76d1.js
new file mode 100644
index 00000000..4ed85636
--- /dev/null
+++ b/assets/js/82ae5bdc.c88d76d1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8389],{7576(e,s,i){i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"user_guide/basic/pubsub","title":"Pub/Sub","description":"According to the MQTT protocol, entities involved in sending and receiving messages can be categorized as Publishers and Subscribers. The basic model is depicted below:","source":"@site/versioned [...]
\ No newline at end of file
diff --git a/assets/js/82ec3b69.eaf63719.js b/assets/js/82ec3b69.eaf63719.js
new file mode 100644
index 00000000..19c4fc07
--- /dev/null
+++ b/assets/js/82ec3b69.eaf63719.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7173],{42271(e,i,n){n.d(i,{R:()=>s,x:()=>a});var t=n(12888);const r={},o=t.createContext(r);function s(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(o.Provider,{value:i},e.children)}},51253(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/82ec3b69.fdd8bb54.js b/assets/js/82ec3b69.fdd8bb54.js
deleted file mode 100644
index cb2dbcfa..00000000
--- a/assets/js/82ec3b69.fdd8bb54.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7173],{7982(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"user_guide/integration/intro","title":"Data Integration Overview","description":"BifroMQ focuses on being deeply integrated, providing foundational MQTT capabilities for various messaging systems. This guide primarily introduces the recommended methods  [...]
\ No newline at end of file
diff --git a/assets/js/82f6db90.a17732b8.js b/assets/js/82f6db90.a17732b8.js
new file mode 100644
index 00000000..f893dccc
--- /dev/null
+++ b/assets/js/82f6db90.a17732b8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6072],{42271(i,n,t){t.d(n,{R:()=>c,x:()=>u});var e=t(12888);const o={},r=e.createContext(o);function c(i){const n=e.useContext(r);return e.useMemo(function(){return"function"==typeof i?i(n):{...n,...i}},[n,i])}function u(i){let n;return n=i.disableParentContext?"function"==typeof i.components?i.components(o):i.components||o:c(i.components),e.createElement(r.Provider,{value:n},i.children)}},64020(i,n,t [...]
\ No newline at end of file
diff --git a/assets/js/82f6db90.f50a5d09.js b/assets/js/82f6db90.f50a5d09.js
deleted file mode 100644
index f20f401b..00000000
--- a/assets/js/82f6db90.f50a5d09.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6072],{39754(i,n,t){t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>u,default:()=>l,frontMatter:()=>c,metadata:()=>e,toc:()=>a});const e=JSON.parse('{"id":"contribution_guide/intro","title":"Contribution Guide","description":"Contributing to Apache BifroMQ (Incubating)","source":"@site/docs/contribution_guide/intro.md","sourceDirName":"contribution_guide","slug":"/contribution_guide/intro","permalink":"/d [...]
\ No newline at end of file
diff --git a/assets/js/8355.90615889.js b/assets/js/8355.90615889.js
new file mode 100644
index 00000000..bc39c2b2
--- /dev/null
+++ b/assets/js/8355.90615889.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8355],{38355(t,n,e){e.d(n,{diagram:()=>at});var i=e(93316),r=e(37970),s=e(3170);function o(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e>i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let r of t)null!=(r=n(r,++i,t))&&(e>r||void 0===e&&r>=r)&&(e=r)}return e}function l(t){return t.target.depth}function a(t,n){return t.sourceLinks.length?t.depth:n-1}function c(t,n){let e=0;if(void 0===n)for(let i  [...]
\ No newline at end of file
diff --git a/assets/js/8355.9ce5bcac.js b/assets/js/8355.9ce5bcac.js
deleted file mode 100644
index 01c4f8d8..00000000
--- a/assets/js/8355.9ce5bcac.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8355],{38355(t,n,e){e.d(n,{diagram:()=>at});var i=e(93316),r=e(37970),s=e(7012);function o(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e>i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let r of t)null!=(r=n(r,++i,t))&&(e>r||void 0===e&&r>=r)&&(e=r)}return e}function l(t){return t.target.depth}function a(t,n){return t.sourceLinks.length?t.depth:n-1}function c(t,n){let e=0;if(void 0===n)for(let i  [...]
\ No newline at end of file
diff --git a/assets/js/83984990.9f2cc4a8.js b/assets/js/83984990.3b502f8c.js
similarity index 93%
rename from assets/js/83984990.9f2cc4a8.js
rename to assets/js/83984990.3b502f8c.js
index a23ac5b3..1b6846bc 100644
--- a/assets/js/83984990.9f2cc4a8.js
+++ b/assets/js/83984990.3b502f8c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3341],{30912(e,t,r){r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>i});const a=JSON.parse('{"id":"cluster/loadbalance/stateful/retainstore","title":"Retain Store","description":"RetainStore serves retained messages (read-dominant). It runs as a stateful service on the base-kv overlay cluster; store_name for API headers: retain.store.","source":"@si [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3341],{31816(e,t,r){r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>i});const a=JSON.parse('{"id":"cluster/loadbalance/stateful/retainstore","title":"Retain Store","description":"RetainStore serves retained messages (read-dominant). It runs as a stateful service on the base-kv overlay cluster; store_name for API headers: retain.store.","source":"@si [...]
\ No newline at end of file
diff --git a/assets/js/84baa2a7.879422fd.js b/assets/js/84baa2a7.879422fd.js
new file mode 100644
index 00000000..3e4566a3
--- /dev/null
+++ b/assets/js/84baa2a7.879422fd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2569],{19(e,t,n){n.d(t,{A:()=>i});const i=n.p+"assets/images/subscribe-a7e73104ace819a62661347eab598b1f.jpg"},5152(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/quick_verify","title":"Quick Verify","description":"Below are the steps to quickly verify the basic MQTT functionality of BifroMQ using MQ [...]
\ No newline at end of file
diff --git a/assets/js/84baa2a7.d612030f.js b/assets/js/84baa2a7.d612030f.js
deleted file mode 100644
index 81ed86fa..00000000
--- a/assets/js/84baa2a7.d612030f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2569],{64946(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/quick_verify","title":"Quick Verify","description":"Below are the steps to quickly verify the basic MQTT functionality of BifroMQ using MQTTX.","source":"@site/versioned_docs/version-3.1.x/01_get_started/2_quick_verify.md","sourceDirName":" [...]
\ No newline at end of file
diff --git a/assets/js/84d79bf6.8a392953.js b/assets/js/84d79bf6.8a392953.js
new file mode 100644
index 00000000..a7dc61bc
--- /dev/null
+++ b/assets/js/84d79bf6.8a392953.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3129],{6640(t,e,s){s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"mqtt_best_practices/mqtt","title":"Supported Specifications","description":"For reference, BifroMQ fully supports the following MQTT specifications:","source":"@site/versioned_docs/version-3.1.x/98_mqtt_best_practices/1_spec.md","sourceDirName":"98_mqtt [...]
\ No newline at end of file
diff --git a/assets/js/84d79bf6.d0724327.js b/assets/js/84d79bf6.d0724327.js
deleted file mode 100644
index 36e04104..00000000
--- a/assets/js/84d79bf6.d0724327.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3129],{40662(t,e,s){s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"mqtt_best_practices/mqtt","title":"Supported Specifications","description":"For reference, BifroMQ fully supports the following MQTT specifications:","source":"@site/versioned_docs/version-3.1.x/98_mqtt_best_practices/1_spec.md","sourceDirName":"98_mqt [...]
\ No newline at end of file
diff --git a/assets/js/8585.0f90ae0e.js b/assets/js/8585.0f90ae0e.js
new file mode 100644
index 00000000..8c29a5c9
--- /dev/null
+++ b/assets/js/8585.0f90ae0e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8585],{5749(n,e,r){r.d(e,{A:()=>t});const t=function(n,e){var r=-1,t=n.length;for(e||(e=Array(t));++r<t;)e[r]=n[r];return e}},13907(n,e,r){r.d(e,{A:()=>o});var t=r(77251);const o=function(n,e){var r=e?(0,t.A)(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}},48585(n,e,r){r.d(e,{Zp:()=>Lr});var t=r(39344),o=r(90224),i=0;const u=function(n){var e=++i;return(0,o.A)(n)+e};var a=r(2807 [...]
\ No newline at end of file
diff --git a/assets/js/8585.74cd2c3a.js b/assets/js/8585.74cd2c3a.js
deleted file mode 100644
index a88166f1..00000000
--- a/assets/js/8585.74cd2c3a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8585],{48585(n,e,r){r.d(e,{Zp:()=>Lr});var t=r(39344),o=r(90224),i=0;const u=function(n){var e=++i;return(0,o.A)(n)+e};var a=r(28076),c=r(74722);const f=function(n){return(null==n?0:n.length)?(0,c.A)(n,1):[]};var d=r(63336),s=Math.ceil,v=Math.max;const h=function(n,e,r,t){for(var o=-1,i=v(s((e-n)/(r||1)),0),u=Array(i);i--;)u[t?i:++o]=n,n+=r;return u};var l=r(10778),g=r(92908),A=r(21143),p=r(80115);con [...]
\ No newline at end of file
diff --git a/assets/js/8625323d.5fb0fdb3.js b/assets/js/8625323d.5fb0fdb3.js
new file mode 100644
index 00000000..a4d6a6fa
--- /dev/null
+++ b/assets/js/8625323d.5fb0fdb3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1700],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>c});var o=n(12888);const r={},i=o.createContext(r);function s(e){const t=o.useContext(i);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:t},e.children)}},57449(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/8625323d.e2e9347a.js b/assets/js/8625323d.e2e9347a.js
deleted file mode 100644
index 2136b7d4..00000000
--- a/assets/js/8625323d.e2e9347a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1700],{77699(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>o,toc:()=>u});const o=JSON.parse('{"id":"benchmark/overview","title":"Benchmark Overview","description":"Coming Soon...","source":"@site/docs/benchmark/intro.md","sourceDirName":"benchmark","slug":"/benchmark/overview","permalink":"/docs/benchmark/overview","draft":false,"unlisted":false,"edi [...]
\ No newline at end of file
diff --git a/assets/js/86b2f003.b67607f3.js b/assets/js/86b2f003.b67607f3.js
deleted file mode 100644
index ad5513a4..00000000
--- a/assets/js/86b2f003.b67607f3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8036],{82464(e,r,n){n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"cluster/loadbalance/rpcserver","title":"Internal RPC Server","description":"BifroMQ\u2019s internal RPC framework supports runtime traffic governing, allowing operators to control how internal service requests are distributed across nodes at runtime.", [...]
\ No newline at end of file
diff --git a/assets/js/86b2f003.bfe82c80.js b/assets/js/86b2f003.bfe82c80.js
new file mode 100644
index 00000000..fa88e714
--- /dev/null
+++ b/assets/js/86b2f003.bfe82c80.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8036],{42271(e,r,n){n.d(r,{R:()=>a,x:()=>c});var s=n(12888);const i={},t=s.createContext(i);function a(e){const r=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(t.Provider,{value:r},e.children)}},54929(e,r,n [...]
\ No newline at end of file
diff --git a/assets/js/8723e90a.1b33ca41.js b/assets/js/8723e90a.1b33ca41.js
deleted file mode 100644
index f851cd30..00000000
--- a/assets/js/8723e90a.1b33ca41.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2158],{17387(e,r,i){i.r(r),i.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"admin_guide/configuration/bifromq_sys_props","title":"System Properties","description":"Before adjusting system properties in BifroMQ, it\'s necessary to have a thorough understanding of its internal mechanisms, as inappropriate modifications can lead  [...]
\ No newline at end of file
diff --git a/assets/js/8723e90a.cd785791.js b/assets/js/8723e90a.cd785791.js
new file mode 100644
index 00000000..13af423c
--- /dev/null
+++ b/assets/js/8723e90a.cd785791.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2158],{42271(e,r,i){i.d(r,{R:()=>d,x:()=>o});var s=i(12888);const n={},t=s.createContext(n);function d(e){const r=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),s.createElement(t.Provider,{value:r},e.children)}},46656(e,r,i [...]
\ No newline at end of file
diff --git a/assets/js/8788.28106b1e.js b/assets/js/8788.28106b1e.js
new file mode 100644
index 00000000..ef805c27
--- /dev/null
+++ b/assets/js/8788.28106b1e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8788],{14458(t,e,n){n.d(e,{o:()=>i});var i=(0,n(37970).K2)(()=>"\n  /* Font Awesome icon styling - consolidated */\n  .label-icon {\n    display: inline-block;\n    height: 1em;\n    overflow: visible;\n    vertical-align: -0.125em;\n  }\n  \n  .node .label-icon path {\n    fill: currentColor;\n    stroke: revert;\n    stroke-width: revert;\n  }\n","getIconStyles")},18788(t,e,n){n.d(e,{diagram:()=>I}) [...]
\ No newline at end of file
diff --git a/assets/js/8788.2d7a5d47.js b/assets/js/8788.2d7a5d47.js
deleted file mode 100644
index 385d2870..00000000
--- a/assets/js/8788.2d7a5d47.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8788],{14458(t,e,n){n.d(e,{o:()=>i});var i=(0,n(37970).K2)(()=>"\n  /* Font Awesome icon styling - consolidated */\n  .label-icon {\n    display: inline-block;\n    height: 1em;\n    overflow: visible;\n    vertical-align: -0.125em;\n  }\n  \n  .node .label-icon path {\n    fill: currentColor;\n    stroke: revert;\n    stroke-width: revert;\n  }\n","getIconStyles")},18788(t,e,n){n.d(e,{diagram:()=>I}) [...]
\ No newline at end of file
diff --git a/assets/js/878a1394.3292cd91.js b/assets/js/878a1394.3292cd91.js
new file mode 100644
index 00000000..183f2e4e
--- /dev/null
+++ b/assets/js/878a1394.3292cd91.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[542],{42271(e,n,t){t.d(n,{R:()=>o,x:()=>a});var i=t(12888);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},97751(e,n,t) [...]
\ No newline at end of file
diff --git a/assets/js/878a1394.c652cd62.js b/assets/js/878a1394.c652cd62.js
deleted file mode 100644
index 5a43f3ce..00000000
--- a/assets/js/878a1394.c652cd62.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[542],{26809(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin enhances BifroMQ by integrating authentication and authorization functionalities for MQTT clients and Pub/Sub operations. The plugin\'s interface is detailed in the fo [...]
\ No newline at end of file
diff --git a/assets/js/87d26d74.c57a92b6.js b/assets/js/87d26d74.1ffbeb76.js
similarity index 97%
rename from assets/js/87d26d74.c57a92b6.js
rename to assets/js/87d26d74.1ffbeb76.js
index b4590b96..324ca0e3 100644
--- a/assets/js/87d26d74.c57a92b6.js
+++ b/assets/js/87d26d74.1ffbeb76.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3561],{21456(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"user_guide/integration/intro","title":"Data Integration Overview","description":"BifroMQ focuses on being deeply integrated, providing foundational MQTT capabilities for various messaging systems. This guide primarily introduces the recommended methods [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3561],{18138(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"user_guide/integration/intro","title":"Data Integration Overview","description":"BifroMQ focuses on being deeply integrated, providing foundational MQTT capabilities for various messaging systems. This guide primarily introduces the recommended methods [...]
\ No newline at end of file
diff --git a/assets/js/88abfa74.4de4fc3f.js b/assets/js/88abfa74.15d884f4.js
similarity index 93%
rename from assets/js/88abfa74.4de4fc3f.js
rename to assets/js/88abfa74.15d884f4.js
index d190ff91..740f7b9b 100644
--- a/assets/js/88abfa74.4de4fc3f.js
+++ b/assets/js/88abfa74.15d884f4.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4020],{73932(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/versioned_docs/version-3. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4020],{35188(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/versioned_docs/version-3. [...]
\ No newline at end of file
diff --git a/assets/js/88ea7684.3dc1c98a.js b/assets/js/88ea7684.3dc1c98a.js
deleted file mode 100644
index 94db62a7..00000000
--- a/assets/js/88ea7684.3dc1c98a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8286],{60161(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/linux","title":"Linux","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/02_installation/2_linux.md","sourceDirName":"02_installation","slug":"/installation/linux","permalink":"/docs/3.1.x/installation/linux","draf [...]
\ No newline at end of file
diff --git a/assets/js/88ea7684.a0d684bc.js b/assets/js/88ea7684.a0d684bc.js
new file mode 100644
index 00000000..c717078d
--- /dev/null
+++ b/assets/js/88ea7684.a0d684bc.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8286],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>l});var t=i(12888);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}},71295(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/8970.77bcc1f4.js b/assets/js/8970.77bcc1f4.js
deleted file mode 100644
index 1d512b8b..00000000
--- a/assets/js/8970.77bcc1f4.js
+++ /dev/null
@@ -1,1841 +0,0 @@
-/*! For license information please see 8970.77bcc1f4.js.LICENSE.txt */
-(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8970],{30618(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv2020=void 0;const n=r(54445),i=r(68546),o=r(47486),s=r(68643),a="https://json-schema.org/draft/2020-12/schema";class l extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addV [...]
-              || (${a} == "string" && ${i} && ${i} == +${i})`).assign(l,s._`+${i}`);case"integer":return void n.elseIf(s._`${a} === "boolean" || ${i} === null
-              || (${a} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(l,s._`+${i}`);case"boolean":return void n.elseIf(s._`${i} === "false" || ${i} === 0 || ${i} === null`).assign(l,!1).elseIf(s._`${i} === "true" || ${i} === 1`).assign(l,!0);case"null":return n.elseIf(s._`${i} === "" || ${i} === 0 || ${i} === false`),void n.assign(l,null);case"array":n.elseIf(s._`${a} === "string" || ${a} === "number"
-              || ${a} === "boolean" || ${i} === null`).assign(l,s._`[${i}]`)}}n.else(),f(e),n.endIf(),n.if(s._`${l} !== undefined`,()=>{n.assign(i,l),function({gen:e,parentData:t,parentDataProperty:r},n){e.if(s._`${t} !== undefined`,()=>e.assign(s._`${t}[${r}]`,n))}(e,l)})}(e,t,a):f(e)})}return c};const u=new Set(["string","number","integer","boolean","null"]);function p(e,t,r,n=l.Correct){const i=n===l.Correct?s.operators.EQ:s.operators.NEQ;let o;switch(e){case"null":return s._`${t} ${i [...]
-    missingProperty: ${i},
-    depsCount: ${t},
-    deps: ${r}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,r]=function({schema:e}){const t={},r={};for(const n in e){if("__proto__"===n)continue;(Array.isArray(e[n])?t:r)[n]=e[n]}return[t,r]}(e);a(e,t),l(e,r)}};function a(e,t=e.schema){const{gen:r,data:i,it:s}=e;if(0===Object.keys(t).length)return;const a=r.let("missing");for(const l in t){const c=t[l];if(0===c.length)continue;const u=(0,o.propertyInData)(r,i,l,s.opts.ownProperties); [...]
-      @media ${t?"print, ":""} screen and (max-width: ${t=>t.theme.breakpoints[e]}) ${r||""} {
-        ${Y(...n)};
-      }
-    `,greaterThan:e=>(...t)=>Y`
-      @media (min-width: ${t=>t.theme.breakpoints[e]}) {
-        ${Y(...t)};
-      }
-    `,between:(e,t)=>(...r)=>Y`
-      @media (min-width: ${t=>t.theme.breakpoints[e]}) and (max-width: ${e=>e.theme.breakpoints[t]}) {
-        ${Y(...r)};
-      }
-    `};var te=Q;function re(e){return t=>{if(t.theme.extensionsHook)return t.theme.extensionsHook(e,t)}}const ne=te.div`
-  padding: 20px;
-  color: red;
-`;class ie extends e.Component{constructor(e){super(e),this.state={error:void 0}}componentDidCatch(e){return this.setState({error:e}),!1}render(){return this.state.error?e.createElement(ne,null,e.createElement("h1",null,"Something went wrong..."),e.createElement("small",null," ",this.state.error.message," "),e.createElement("p",null,e.createElement("details",null,e.createElement("summary",null,"Stack trace"),e.createElement("pre",null,this.state.error.stack))),e.createElement("small",nul [...]
-  0% {
-    transform: rotate(0deg); }
-  100% {
-    transform: rotate(360deg);
-  }
-`,se=te(t=>e.createElement("svg",{className:t.className,version:"1.1",width:"512",height:"512",viewBox:"0 0 512 512"},e.createElement("path",{d:"M275.682 147.999c0 10.864-8.837 19.661-19.682 19.661v0c-10.875 0-19.681-8.796-19.681-19.661v-96.635c0-10.885 8.806-19.661 19.681-19.661v0c10.844 0 19.682 8.776 19.682 19.661v96.635z"}),e.createElement("path",{d:"M275.682 460.615c0 10.865-8.837 19.682-19.682 19.682v0c-10.875 0-19.681-8.817-19.681-19.682v-96.604c0-10.885 8.806-19.681 19.681-19.681 [...]
-  animation: 2s ${oe} linear infinite;
-  width: 50px;
-  height: 50px;
-  content: '';
-  display: inline-block;
-  margin-left: -25px;
-
-  path {
-    fill: ${e=>e.color};
-  }
-`,ae=te.div`
-  font-family: helvetica, sans;
-  width: 100%;
-  text-align: center;
-  font-size: 25px;
-  margin: 30px 0 20px 0;
-  color: ${e=>e.color};
-`;class le extends e.PureComponent{render(){return e.createElement("div",{style:{textAlign:"center"}},e.createElement(ae,{color:this.props.color},"Loading ..."),e.createElement(se,{color:this.props.color}))}}var ce=r(2736);const ue=e.createContext(new H({})),pe=ue.Provider,de=ue.Consumer;var he=r(80199),fe=r(67409),me=r(13332),ge=n(65),ye=(e,t,r)=>new Promise((n,i)=>{var o=e=>{try{a(r.next(e))}catch(e){i(e)}},s=e=>{try{a(r.throw(e))}catch(e){i(e)}},a=e=>e.done?n(e.value):Promise.resolve( [...]
-  width: calc(100% - ${e=>e.theme.rightPanel.width});
-  padding: 0 ${e=>e.theme.spacing.sectionHorizontal}px;
-
-  ${({$compact:e,theme:t})=>ee.lessThan("medium",!0)`
-    width: 100%;
-    padding: ${`${e?0:t.spacing.sectionVertical}px ${t.spacing.sectionHorizontal}px`};
-  `};
-`,lo=te.div.attrs(e=>({[eo]:e.id}))`
-  padding: ${e=>e.theme.spacing.sectionVertical}px 0;
-
-  &:last-child {
-    min-height: calc(100vh + 1px);
-  }
-
-  & > &:last-child {
-    min-height: initial;
-  }
-
-  ${ee.lessThan("medium",!0)`
-    padding: 0;
-  `}
-  ${({$underlined:e})=>e?"\n    position: relative;\n\n    &:not(:last-of-type):after {\n      position: absolute;\n      bottom: 0;\n      width: 100%;\n      display: block;\n      content: '';\n      border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n    }\n  ":""}
-`,co=te.div`
-  width: ${e=>e.theme.rightPanel.width};
-  color: ${({theme:e})=>e.rightPanel.textColor};
-  background-color: ${e=>e.theme.rightPanel.backgroundColor};
-  padding: 0 ${e=>e.theme.spacing.sectionHorizontal}px;
-
-  ${ee.lessThan("medium",!0)`
-    width: 100%;
-    padding: ${e=>`${e.theme.spacing.sectionVertical}px ${e.theme.spacing.sectionHorizontal}px`};
-  `};
-`,uo=te(co)`
-  background-color: ${e=>e.theme.rightPanel.backgroundColor};
-`,po=te.div`
-  display: flex;
-  width: 100%;
-  padding: 0;
-
-  ${ee.lessThan("medium",!0)`
-    flex-direction: column;
-  `};
-`,ho={1:"1.85714em",2:"1.57143em",3:"1.27em"},fo=e=>Y`
-  font-family: ${({theme:e})=>e.typography.headings.fontFamily};
-  font-weight: ${({theme:e})=>e.typography.headings.fontWeight};
-  font-size: ${ho[e]};
-  line-height: ${({theme:e})=>e.typography.headings.lineHeight};
-`,mo=te.h1`
-  ${fo(1)};
-  color: ${({theme:e})=>e.colors.text.primary};
-
-  ${re("H1")};
-`,go=te.h2`
-  ${fo(2)};
-  color: ${({theme:e})=>e.colors.text.primary};
-  margin: 0 0 20px;
-
-  ${re("H2")};
-`,yo=te.h2`
-  ${fo(3)};
-  color: ${({theme:e})=>e.colors.text.primary};
-
-  ${re("H3")};
-`,bo=te.h3`
-  color: ${({theme:e})=>e.rightPanel.textColor};
-
-  ${re("RightPanelHeader")};
-`,vo=te.h5`
-  border-bottom: 1px solid rgba(38, 50, 56, 0.3);
-  margin: 1em 0 1em 0;
-  color: rgba(38, 50, 56, 0.5);
-  font-weight: normal;
-  text-transform: uppercase;
-  font-size: 0.929em;
-  line-height: 20px;
-
-  ${re("UnderlinedHeader")};
-`;var xo=(e,t,r)=>new Promise((n,i)=>{var o=e=>{try{a(r.next(e))}catch(e){i(e)}},s=e=>{try{a(r.throw(e))}catch(e){i(e)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())});const wo=(0,e.createContext)(void 0),{Provider:So,Consumer:ko}=wo;function Oo(t){const{spec:r,specUrl:n,options:i,onLoaded:o,children:s}=t,[a,l]=e.useState(null),[c,u]=e.useState(null);if(c)throw c;e.useEffect(()=>{!function(){xo(this,null,function*(){if(r||n){l(null);try{const e=yie [...]
-  ${e} {
-    cursor: pointer;
-    margin-left: -20px;
-    padding: 0;
-    line-height: 1;
-    width: 20px;
-    display: inline-block;
-    outline: 0;
-  }
-  ${e}:before {
-    content: '';
-    width: 15px;
-    height: 15px;
-    background-size: contain;
-    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS4 [...]
-    opacity: 0.5;
-    visibility: hidden;
-    display: inline-block;
-    vertical-align: middle;
-  }
-
-  h1:hover > ${e}::before, h2:hover > ${e}::before, ${e}:hover::before {
-    visibility: visible;
-  }
-`,Ao=te(function(t){const r=e.useContext(wo),n=e.useCallback(e=>{r&&function(e,t,r){t.defaultPrevented||0!==t.button||(e=>!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey))(t)||(t.preventDefault(),e.replace(encodeURI(r)))}(r.menu.history,e,t.to)},[r,t.to]);return r?e.createElement("a",{className:t.className,href:r.menu.history.linkForId(t.to),onClick:n,"aria-label":t.to},t.children):null})`
-  ${_o("&")};
-`;function jo(t){return e.createElement(Ao,{to:t.to})}const $o={left:"90deg",right:"-90deg",up:"-180deg",down:"0"},Po=te(t=>e.createElement("svg",{className:t.className,style:t.style,version:"1.1",viewBox:"0 0 24 24",x:"0",xmlns:"http://www.w3.org/2000/svg",y:"0","aria-hidden":"true"},e.createElement("polygon",{points:"17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "})))`
-  height: ${e=>e.size||"18px"};
-  width: ${e=>e.size||"18px"};
-  min-width: ${e=>e.size||"18px"};
-  vertical-align: middle;
-  float: ${e=>e.float||""};
-  transition: transform 0.2s ease-out;
-  transform: rotateZ(${e=>$o[e.direction||"down"]});
-
-  polygon {
-    fill: ${({color:e,theme:t})=>e&&t.colors.responses[e]&&t.colors.responses[e].color||e};
-  }
-`,To=te.span`
-  display: inline-block;
-  padding: 2px 8px;
-  margin: 0;
-  background-color: ${e=>e.color||e.theme.colors[e.type].main};
-  color: ${e=>e.theme.colors[e.type].contrastText};
-  font-size: ${e=>e.theme.typography.code.fontSize};
-  vertical-align: middle;
-  line-height: 1.6;
-  border-radius: 4px;
-  font-weight: ${({theme:e})=>e.typography.fontWeightBold};
-  font-size: 12px;
-  + span[type] {
-    margin-left: 4px;
-  }
-`,Co=Y`
-  text-decoration: line-through;
-  color: #707070;
-`,Io=te.caption`
-  text-align: right;
-  font-size: 0.9em;
-  font-weight: normal;
-  color: ${e=>e.theme.colors.text.secondary};
-`,No=te.td`
-  border-left: 1px solid ${e=>e.theme.schema.linesColor};
-  box-sizing: border-box;
-  position: relative;
-  padding: 10px 10px 10px 0;
-
-  ${ee.lessThan("small")`
-    display: block;
-    overflow: hidden;
-  `}
-
-  tr:first-of-type > &,
-  tr.last > & {
-    border-left-width: 0;
-    background-position: top left;
-    background-repeat: no-repeat;
-    background-size: 1px 100%;
-  }
-
-  tr:first-of-type > & {
-    background-image: linear-gradient(
-      to bottom,
-      transparent 0%,
-      transparent 22px,
-      ${e=>e.theme.schema.linesColor} 22px,
-      ${e=>e.theme.schema.linesColor} 100%
-    );
-  }
-
-  tr.last > & {
-    background-image: linear-gradient(
-      to bottom,
-      ${e=>e.theme.schema.linesColor} 0%,
-      ${e=>e.theme.schema.linesColor} 22px,
-      transparent 22px,
-      transparent 100%
-    );
-  }
-
-  tr.last + tr > & {
-    border-left-color: transparent;
-  }
-
-  tr.last:first-child > & {
-    background: none;
-    border-left-color: transparent;
-  }
-`,Ro=te(No)`
-  padding: 0;
-`,Lo=te(No)`
-  vertical-align: top;
-  line-height: 20px;
-  white-space: nowrap;
-  font-size: 13px;
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-
-  &.deprecated {
-    ${Co};
-  }
-
-  ${({kind:e})=>"patternProperties"===e&&Y`
-      > span.property-name {
-        display: inline-table;
-        white-space: break-spaces;
-        margin-right: 20px;
-
-        ::before,
-        ::after {
-          content: '/';
-          filter: opacity(0.2);
-        }
-      }
-    `}
-
-  ${({kind:e=""})=>["field","additionalProperties","patternProperties"].includes(e)?"":"font-style: italic"};
-
-  ${re("PropertyNameCell")};
-`,Do=te.td`
-  border-bottom: 1px solid #9fb4be;
-  padding: 10px 0;
-  width: ${e=>e.theme.schema.defaultDetailsWidth};
-  box-sizing: border-box;
-
-  tr.expanded & {
-    border-bottom: none;
-  }
-
-  ${ee.lessThan("small")`
-    padding: 0 20px;
-    border-bottom: none;
-    border-left: 1px solid ${e=>e.theme.schema.linesColor};
-
-    tr.last > & {
-      border-left: none;
-    }
-  `}
-
-  ${re("PropertyDetailsCell")};
-`,Mo=te.span`
-  color: ${e=>e.theme.schema.linesColor};
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  margin-right: 10px;
-
-  &::before {
-    content: '';
-    display: inline-block;
-    vertical-align: middle;
-    width: 10px;
-    height: 1px;
-    background: ${e=>e.theme.schema.linesColor};
-  }
-
-  &::after {
-    content: '';
-    display: inline-block;
-    vertical-align: middle;
-    width: 1px;
-    background: ${e=>e.theme.schema.linesColor};
-    height: 7px;
-  }
-`,zo=te.div`
-  padding: ${({theme:e})=>e.schema.nestingSpacing};
-`,Fo=te.table`
-  border-collapse: separate;
-  border-radius: 3px;
-  font-size: ${e=>e.theme.typography.fontSize};
-
-  border-spacing: 0;
-  width: 100%;
-
-  > tr {
-    vertical-align: middle;
-  }
-
-  ${ee.lessThan("small")`
-    display: block;
-    > tr, > tbody > tr {
-      display: block;
-    }
-  `}
-
-  ${ee.lessThan("small",!1," and (-ms-high-contrast:none)")`
-    td {
-      float: left;
-      width: 100%;
-    }
-  `}
-
-  &
-    ${zo},
-    &
-    ${zo}
-    ${zo}
-    ${zo},
-    &
-    ${zo}
-    ${zo}
-    ${zo}
-    ${zo}
-    ${zo} {
-    margin: ${({theme:e})=>e.schema.nestingSpacing};
-    margin-right: 0;
-    background: ${({theme:e})=>e.schema.nestedBackground};
-  }
-
-  &
-    ${zo}
-    ${zo},
-    &
-    ${zo}
-    ${zo}
-    ${zo}
-    ${zo},
-    &
-    ${zo}
-    ${zo}
-    ${zo}
-    ${zo}
-    ${zo}
-    ${zo} {
-    background: #ffffff;
-  }
-`,Bo=te.div`
-  margin: 0 0 3px 0;
-  display: inline-block;
-`,qo=te.span`
-  font-size: 0.9em;
-  margin-right: 10px;
-  color: ${e=>e.theme.colors.primary.main};
-  font-family: ${e=>e.theme.typography.headings.fontFamily};
-}
-`,Uo=te.button`
-  display: inline-block;
-  margin-right: 10px;
-  margin-bottom: 5px;
-  font-size: 0.8em;
-  cursor: pointer;
-  border: 1px solid ${e=>e.theme.colors.primary.main};
-  padding: 2px 10px;
-  line-height: 1.5em;
-  outline: none;
-  &:focus {
-    box-shadow: 0 0 0 1px ${e=>e.theme.colors.primary.main};
-  }
-
-  ${({$deprecated:e})=>e&&Co||""};
-
-  ${e=>e.$active?`\n      color: white;\n      background-color: ${e.theme.colors.primary.main};\n      &:focus {\n        box-shadow: none;\n        background-color: ${(0,t.darken)(.15,e.theme.colors.primary.main)};\n      }\n      `:`\n        color: ${e.theme.colors.primary.main};\n        background-color: white;\n      `}
-`,Vo=te.div`
-  font-size: 0.9em;
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  &::after {
-    content: ' [';
-  }
-`,Wo=te.div`
-  font-size: 0.9em;
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  &::after {
-    content: ']';
-  }
-`;var Ho=r(70476);const Go=te(Ho.Tabs)`
-  > ul {
-    list-style: none;
-    padding: 0;
-    margin: 0;
-    margin: 0 -5px;
-
-    > li {
-      padding: 5px 10px;
-      display: inline-block;
-
-      background-color: ${({theme:e})=>e.codeBlock.backgroundColor};
-      border-bottom: 1px solid rgba(0, 0, 0, 0.5);
-      cursor: pointer;
-      text-align: center;
-      outline: none;
-      color: ${({theme:e})=>(0,t.darken)(e.colors.tonalOffset,e.rightPanel.textColor)};
-      margin: 0
-        ${({theme:e})=>`${e.spacing.unit}px ${e.spacing.unit}px ${e.spacing.unit}px`};
-      border: 1px solid ${({theme:e})=>(0,t.darken)(.05,e.codeBlock.backgroundColor)};
-      border-radius: 5px;
-      min-width: 60px;
-      font-size: 0.9em;
-      font-weight: bold;
-
-      &.react-tabs__tab--selected {
-        color: ${e=>e.theme.colors.text.primary};
-        background: ${({theme:e})=>e.rightPanel.textColor};
-        &:focus {
-          outline: auto;
-        }
-      }
-
-      &:only-child {
-        flex: none;
-        min-width: 100px;
-      }
-
-      &.tab-success {
-        color: ${e=>e.theme.colors.responses.success.tabTextColor};
-      }
-
-      &.tab-redirect {
-        color: ${e=>e.theme.colors.responses.redirect.tabTextColor};
-      }
-
-      &.tab-info {
-        color: ${e=>e.theme.colors.responses.info.tabTextColor};
-      }
-
-      &.tab-error {
-        color: ${e=>e.theme.colors.responses.error.tabTextColor};
-      }
-    }
-  }
-  > .react-tabs__tab-panel {
-    background: ${({theme:e})=>e.codeBlock.backgroundColor};
-    & > div,
-    & > pre {
-      padding: ${e=>4*e.theme.spacing.unit}px;
-      margin: 0;
-    }
-
-    & > div > pre {
-      padding: 0;
-    }
-  }
-`,Ko=(te(Go)`
-  > ul {
-    display: block;
-    > li {
-      padding: 2px 5px;
-      min-width: auto;
-      margin: 0 15px 0 0;
-      font-size: 13px;
-      font-weight: normal;
-      border-bottom: 1px dashed;
-      color: ${({theme:e})=>(0,t.darken)(e.colors.tonalOffset,e.rightPanel.textColor)};
-      border-radius: 0;
-      background: none;
-
-      &:last-child {
-        margin-right: 0;
-      }
-
-      &.react-tabs__tab--selected {
-        color: ${({theme:e})=>e.rightPanel.textColor};
-        background: none;
-      }
-    }
-  }
-  > .react-tabs__tab-panel {
-    & > div,
-    & > pre {
-      padding: ${e=>2*e.theme.spacing.unit}px 0;
-    }
-  }
-`,te.div`
-  /**
-  * Based on prism-dark.css
-  */
-
-  code[class*='language-'],
-  pre[class*='language-'] {
-    /* color: white;
-    background: none; */
-    text-shadow: 0 -0.1em 0.2em black;
-    text-align: left;
-    white-space: pre;
-    word-spacing: normal;
-    word-break: normal;
-    word-wrap: normal;
-    line-height: 1.5;
-
-    -moz-tab-size: 4;
-    -o-tab-size: 4;
-    tab-size: 4;
-
-    -webkit-hyphens: none;
-    -moz-hyphens: none;
-    -ms-hyphens: none;
-    hyphens: none;
-  }
-
-  @media print {
-    code[class*='language-'],
-    pre[class*='language-'] {
-      text-shadow: none;
-    }
-  }
-
-  /* Code blocks */
-  pre[class*='language-'] {
-    padding: 1em;
-    margin: 0.5em 0;
-    overflow: auto;
-  }
-
-  .token.comment,
-  .token.prolog,
-  .token.doctype,
-  .token.cdata {
-    color: hsl(30, 20%, 50%);
-  }
-
-  .token.punctuation {
-    opacity: 0.7;
-  }
-
-  .namespace {
-    opacity: 0.7;
-  }
-
-  .token.property,
-  .token.tag,
-  .token.number,
-  .token.constant,
-  .token.symbol {
-    color: #4a8bb3;
-  }
-
-  .token.boolean {
-    color: #e64441;
-  }
-
-  .token.selector,
-  .token.attr-name,
-  .token.string,
-  .token.char,
-  .token.builtin,
-  .token.inserted {
-    color: #a0fbaa;
-    & + a,
-    & + a:visited {
-      color: #4ed2ba;
-      text-decoration: underline;
-    }
-  }
-
-  .token.property.string {
-    color: white;
-  }
-
-  .token.operator,
-  .token.entity,
-  .token.url,
-  .token.variable {
-    color: hsl(40, 90%, 60%);
-  }
-
-  .token.atrule,
-  .token.attr-value,
-  .token.keyword {
-    color: hsl(350, 40%, 70%);
-  }
-
-  .token.regex,
-  .token.important {
-    color: #e90;
-  }
-
-  .token.important,
-  .token.bold {
-    font-weight: bold;
-  }
-  .token.italic {
-    font-style: italic;
-  }
-
-  .token.entity {
-    cursor: help;
-  }
-
-  .token.deleted {
-    color: red;
-  }
-
-  ${re("Prism")};
-`),Qo=te.div`
-  opacity: 0.7;
-  transition: opacity 0.3s ease;
-  text-align: right;
-  &:focus-within {
-    opacity: 1;
-  }
-  > button {
-    background-color: transparent;
-    border: 0;
-    color: inherit;
-    padding: 2px 10px;
-    font-family: ${({theme:e})=>e.typography.fontFamily};
-    font-size: ${({theme:e})=>e.typography.fontSize};
-    line-height: ${({theme:e})=>e.typography.lineHeight};
-    cursor: pointer;
-    outline: 0;
-
-    :hover,
-    :focus {
-      background: rgba(255, 255, 255, 0.1);
-    }
-  }
-`,Yo=te.div`
-  &:hover ${Qo} {
-    opacity: 1;
-  }
-`,Xo=te(Ko).attrs({as:"pre"})`
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  font-size: ${e=>e.theme.typography.code.fontSize};
-  overflow-x: auto;
-  margin: 0;
-
-  white-space: ${({theme:e})=>e.typography.code.wrap?"pre-wrap":"pre"};
-`;var Jo=r(64431),Zo=n.n(Jo),es=Object.defineProperty,ts=Object.getOwnPropertySymbols,rs=Object.prototype.hasOwnProperty,ns=Object.prototype.propertyIsEnumerable,is=(e,t,r)=>t in e?es(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const os=Zo()||Jo;let ss="";a&&(ss=n(494),ss="function"==typeof ss.toString&&ss.toString()||"",ss="[object Object]"===ss?"":ss);const as=X`${ss}`,ls=te.div`
-  position: relative;
-`;class cs extends e.Component{constructor(){super(...arguments),this.handleRef=e=>{this._container=e}}componentDidMount(){const e=this._container.parentElement&&this._container.parentElement.scrollTop||0;this.inst=new os(this._container,this.props.options||{}),this._container.scrollTo&&this._container.scrollTo(0,e)}componentDidUpdate(){this.inst.update()}componentWillUnmount(){this.inst.destroy()}render(){const{children:t,className:r,updateFn:n}=this.props;return n&&n(this.componentDidU [...]
-  position: absolute;
-  pointer-events: none;
-  z-index: 1;
-  top: 50%;
-  -webkit-transform: translateY(-50%);
-  -ms-transform: translateY(-50%);
-  transform: translateY(-50%);
-  right: 8px;
-  margin: auto;
-  text-align: center;
-  polyline {
-    color: ${e=>"dark"===e.variant&&"white"};
-  }
-`,ds=e.memo(t=>{const{options:r,onChange:n,placeholder:i,value:o="",variant:s,className:a}=t;return e.createElement("div",{className:a},e.createElement(ps,{variant:s}),e.createElement("select",{onChange:e=>{const{selectedIndex:t}=e.target;n(r[i?t-1:t])},value:o,className:"dropdown-select"},i&&e.createElement("option",{disabled:!0,hidden:!0,value:i},i),r.map(({idx:t,value:r,title:n},i)=>e.createElement("option",{key:t||r+i,value:r},n||r))),e.createElement("label",null,o))}),hs=K()(ds)`
-  label {
-    box-sizing: border-box;
-    min-width: 100px;
-    outline: none;
-    display: inline-block;
-    font-family: ${e=>e.theme.typography.headings.fontFamily};
-    color: ${({theme:e})=>e.colors.text.primary};
-    vertical-align: bottom;
-    width: ${({fullWidth:e})=>e?"100%":"auto"};
-    text-transform: none;
-    padding: 0 22px 0 4px;
-
-    font-size: 0.929em;
-    line-height: 1.5em;
-    font-family: inherit;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    white-space: nowrap;
-  }
-  .dropdown-select {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    opacity: 0;
-    border: none;
-    appearance: none;
-    cursor: pointer;
-
-    color: ${({theme:e})=>e.colors.text.primary};
-    line-height: inherit;
-    font-family: inherit;
-  }
-  box-sizing: border-box;
-  min-width: 100px;
-  outline: none;
-  display: inline-block;
-  border-radius: 2px;
-  border: 1px solid rgba(38, 50, 56, 0.5);
-  vertical-align: bottom;
-  padding: 2px 0px 2px 6px;
-  position: relative;
-  width: auto;
-  background: white;
-  color: #263238;
-  font-family: ${e=>e.theme.typography.headings.fontFamily};
-  font-size: 0.929em;
-  line-height: 1.5em;
-  cursor: pointer;
-  transition: border 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
-
-  &:hover,
-  &:focus-within {
-    border: 1px solid ${e=>e.theme.colors.primary.main};
-    color: ${e=>e.theme.colors.primary.main};
-    box-shadow: 0px 0px 0px 1px ${e=>e.theme.colors.primary.main};
-  }
-`,fs=K()(hs)`
-  margin-left: 10px;
-  text-transform: none;
-  font-size: 0.969em;
-
-  font-size: 1em;
-  border: none;
-  padding: 0 1.2em 0 0;
-  background: transparent;
-
-  &:hover,
-  &:focus-within {
-    border: none;
-    box-shadow: none;
-    label {
-      color: ${e=>e.theme.colors.primary.main};
-      text-shadow: 0px 0px 0px ${e=>e.theme.colors.primary.main};
-    }
-  }
-`,ms=K().span`
-  margin-left: 10px;
-  text-transform: none;
-  font-size: 0.929em;
-  color: black;
-`;var gs=Object.defineProperty,ys=Object.getOwnPropertySymbols,bs=Object.prototype.hasOwnProperty,vs=Object.prototype.propertyIsEnumerable,xs=(e,t,r)=>t in e?gs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ws=(e,t)=>{for(var r in t||(t={}))bs.call(t,r)&&xs(e,r,t[r]);if(ys)for(var r of ys(t))vs.call(t,r)&&xs(e,r,t[r]);return e};function Ss(t){const{Label:r=ms,Dropdown:n=fs}=t;return 1===t.options.length?e.createElement(r,null,t.options[0].value):e.createElement(n,ws({}, [...]
-  a {
-    text-decoration: ${e=>e.theme.typography.links.textDecoration};
-    color: ${e=>e.theme.typography.links.color};
-
-    &:visited {
-      color: ${e=>e.theme.typography.links.visited};
-    }
-
-    &:hover {
-      color: ${e=>e.theme.typography.links.hover};
-      text-decoration: ${e=>e.theme.typography.links.hoverTextDecoration};
-    }
-  }
-`,Es=te(Ko)`
-  font-family: ${e=>e.theme.typography.fontFamily};
-  font-weight: ${e=>e.theme.typography.fontWeightRegular};
-  line-height: ${e=>e.theme.typography.lineHeight};
-
-  p {
-    &:last-child {
-      margin-bottom: 0;
-    }
-  }
-
-  ${({$compact:e})=>e&&"\n    p:first-child {\n      margin-top: 0;\n    }\n    p:last-child {\n      margin-bottom: 0;\n    }\n  "}
-
-  ${({$inline:e})=>e&&" p {\n    display: inline-block;\n  }"}
-
-  h1 {
-    ${fo(1)};
-    color: ${e=>e.theme.colors.primary.main};
-    margin-top: 0;
-  }
-
-  h2 {
-    ${fo(2)};
-    color: ${e=>e.theme.colors.text.primary};
-  }
-
-  code {
-    color: ${({theme:e})=>e.typography.code.color};
-    background-color: ${({theme:e})=>e.typography.code.backgroundColor};
-
-    font-family: ${e=>e.theme.typography.code.fontFamily};
-    border-radius: 2px;
-    border: 1px solid rgba(38, 50, 56, 0.1);
-    padding: 0 ${({theme:e})=>e.spacing.unit}px;
-    font-size: ${e=>e.theme.typography.code.fontSize};
-    font-weight: ${({theme:e})=>e.typography.code.fontWeight};
-
-    word-break: break-word;
-  }
-
-  pre {
-    font-family: ${e=>e.theme.typography.code.fontFamily};
-    white-space: ${({theme:e})=>e.typography.code.wrap?"pre-wrap":"pre"};
-    background-color: ${({theme:e})=>e.codeBlock.backgroundColor};
-    color: white;
-    padding: ${e=>4*e.theme.spacing.unit}px;
-    overflow-x: auto;
-    line-height: normal;
-    border-radius: 0;
-    border: 1px solid rgba(38, 50, 56, 0.1);
-
-    code {
-      background-color: transparent;
-      color: white;
-      padding: 0;
-
-      &:before,
-      &:after {
-        content: none;
-      }
-    }
-  }
-
-  blockquote {
-    margin: 0;
-    margin-bottom: 1em;
-    padding: 0 15px;
-    color: #777;
-    border-left: 4px solid #ddd;
-  }
-
-  img {
-    max-width: 100%;
-    box-sizing: content-box;
-  }
-
-  ul,
-  ol {
-    padding-left: 2em;
-    margin: 0;
-    margin-bottom: 1em;
-
-    ul,
-    ol {
-      margin-bottom: 0;
-      margin-top: 0;
-    }
-  }
-
-  table {
-    display: block;
-    width: 100%;
-    overflow: auto;
-    word-break: normal;
-    word-break: keep-all;
-    border-collapse: collapse;
-    border-spacing: 0;
-    margin-top: 1.5em;
-    margin-bottom: 1.5em;
-  }
-
-  table tr {
-    background-color: #fff;
-    border-top: 1px solid #ccc;
-
-    &:nth-child(2n) {
-      background-color: ${({theme:e})=>e.schema.nestedBackground};
-    }
-  }
-
-  table th,
-  table td {
-    padding: 6px 13px;
-    border: 1px solid #ddd;
-  }
-
-  table th {
-    text-align: left;
-    font-weight: bold;
-  }
-
-  ${_o(".share-link")};
-
-  ${Os}
-
-  ${re("Markdown")};
-`;var _s=Object.defineProperty,As=Object.defineProperties,js=Object.getOwnPropertyDescriptors,$s=Object.getOwnPropertySymbols,Ps=Object.prototype.hasOwnProperty,Ts=Object.prototype.propertyIsEnumerable,Cs=(e,t,r)=>t in e?_s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const Is=K()(Es)`
-  display: inline;
-`;function Ns(t){var r=t,{inline:n,compact:i}=r,o=((e,t)=>{var r={};for(var n in e)Ps.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&$s)for(var n of $s(e))t.indexOf(n)<0&&Ts.call(e,n)&&(r[n]=e[n]);return r})(r,["inline","compact"]);const s=n?Is:Es;return e.createElement(de,null,t=>{return e.createElement(s,(r=((e,t)=>{for(var r in t||(t={}))Ps.call(t,r)&&Cs(e,r,t[r]);if($s)for(var r of $s(t))Ts.call(t,r)&&Cs(e,r,t[r]);return e})({className:"redoc-markdown "+(o.className||""),dangerou [...]
-  position: relative;
-`,Ds=te.div`
-  position: absolute;
-  min-width: 80px;
-  max-width: 500px;
-  background: #fff;
-  bottom: 100%;
-  left: 50%;
-  margin-bottom: 10px;
-  transform: translateX(-50%);
-
-  border-radius: 4px;
-  padding: 0.3em 0.6em;
-  text-align: center;
-  box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);
-`,Ms=te.div`
-  background: #fff;
-  color: #000;
-  display: inline;
-  font-size: 0.85em;
-  white-space: nowrap;
-`,zs=te.div`
-  position: absolute;
-  width: 0;
-  height: 0;
-  bottom: -5px;
-  left: 50%;
-  margin-left: -5px;
-  border-left: solid transparent 5px;
-  border-right: solid transparent 5px;
-  border-top: solid #fff 5px;
-`,Fs=te.div`
-  position: absolute;
-  width: 100%;
-  height: 20px;
-  bottom: -20px;
-`;class Bs extends e.Component{render(){const{open:t,title:r,children:n}=this.props;return e.createElement(Ls,null,n,t&&e.createElement(Ds,null,e.createElement(Ms,null,r),e.createElement(zs,null),e.createElement(Fs,null)))}}const qs="undefined"!=typeof document&&document.queryCommandSupported&&document.queryCommandSupported("copy");class Us{static isSupported(){return qs}static selectElement(e){let t,r;document.body.createTextRange?(t=document.body.createTextRange(),t.moveToElementText(e [...]
-  .redoc-json code > .collapser {
-    display: none;
-    pointer-events: none;
-  }
-
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  font-size: ${e=>e.theme.typography.code.fontSize};
-
-  white-space: ${({theme:e})=>e.typography.code.wrap?"pre-wrap":"pre"};
-  contain: content;
-  overflow-x: auto;
-
-  .callback-function {
-    color: gray;
-  }
-
-  .collapser:after {
-    content: '-';
-    cursor: pointer;
-  }
-
-  .collapsed > .collapser:after {
-    content: '+';
-    cursor: pointer;
-  }
-
-  .ellipsis:after {
-    content: ' … ';
-  }
-
-  .collapsible {
-    margin-left: 2em;
-  }
-
-  .hoverable {
-    padding-top: 1px;
-    padding-bottom: 1px;
-    padding-left: 2px;
-    padding-right: 2px;
-    border-radius: 2px;
-  }
-
-  .hovered {
-    background-color: rgba(235, 238, 249, 1);
-  }
-
-  .collapser {
-    background-color: transparent;
-    border: 0;
-    color: #fff;
-    font-family: ${e=>e.theme.typography.code.fontFamily};
-    font-size: ${e=>e.theme.typography.code.fontSize};
-    padding-right: 6px;
-    padding-left: 6px;
-    padding-top: 0;
-    padding-bottom: 0;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    width: 15px;
-    height: 15px;
-    position: absolute;
-    top: 4px;
-    left: -1.5em;
-    cursor: default;
-    user-select: none;
-    -webkit-user-select: none;
-    padding: 2px;
-    &:focus {
-      outline-color: #fff;
-      outline-style: dotted;
-      outline-width: 1px;
-    }
-  }
-
-  ul {
-    list-style-type: none;
-    padding: 0px;
-    margin: 0px 0px 0px 26px;
-  }
-
-  li {
-    position: relative;
-    display: block;
-  }
-
-  .hoverable {
-    display: inline-block;
-  }
-
-  .selected {
-    outline-style: solid;
-    outline-width: 1px;
-    outline-style: dotted;
-  }
-
-  .collapsed > .collapsible {
-    display: none;
-  }
-
-  .ellipsis {
-    display: none;
-  }
-
-  .collapsed > .ellipsis {
-    display: inherit;
-  }
-`,Zs=te.div`
-  &:hover > ${Qo} {
-    opacity: 1;
-  }
-`,ea=te(t=>{const[r,n]=e.useState(),i=({renderCopyButton:r})=>{const i=t.data&&Object.values(t.data).some(e=>"object"==typeof e&&null!==e);return e.createElement(Zs,null,e.createElement(Qo,null,r(),i&&e.createElement(e.Fragment,null,e.createElement("button",{onClick:o}," Expand all "),e.createElement("button",{onClick:s}," Collapse all "))),e.createElement(ue.Consumer,null,r=>e.createElement(Ko,{className:t.className,ref:e=>n(e),dangerouslySetInnerHTML:{__html:Hs(t.data,r.jsonSamplesExpa [...]
-  ${Js};
-`,ta=t=>{const{source:r,lang:n}=t;return e.createElement(Xo,{dangerouslySetInnerHTML:{__html:_t(r,n)}})},ra=t=>{const{source:r,lang:n}=t;return e.createElement(Vs,{data:r},({renderCopyButton:t})=>e.createElement(Yo,null,e.createElement(Qo,null,t()),e.createElement(ta,{lang:n,source:r})))};function na({value:t,mimeType:r}){return We(r)?e.createElement(ea,{data:t}):("object"==typeof t&&(t=JSON.stringify(t,null,2)),e.createElement(ra,{lang:et(r),source:t}))}var ia=(e,t,r)=>new Promise((n,i) [...]
-  padding: 0.9em;
-  background-color: ${({theme:e})=>(0,t.transparentize)(.6,e.rightPanel.backgroundColor)};
-  margin: 0 0 10px 0;
-  display: block;
-  font-family: ${({theme:e})=>e.typography.headings.fontFamily};
-  font-size: 0.929em;
-  line-height: 1.5em;
-`,la=te.span`
-  font-family: ${({theme:e})=>e.typography.headings.fontFamily};
-  font-size: 12px;
-  position: absolute;
-  z-index: 1;
-  top: -11px;
-  left: 12px;
-  font-weight: ${({theme:e})=>e.typography.fontWeightBold};
-  color: ${({theme:e})=>(0,t.transparentize)(.3,e.rightPanel.textColor)};
-`,ca=te.div`
-  position: relative;
-`,ua=te(hs)`
-  label {
-    color: ${({theme:e})=>e.rightPanel.textColor};
-    text-overflow: ellipsis;
-    white-space: nowrap;
-    overflow: hidden;
-    font-size: 1em;
-    text-transform: none;
-    border: none;
-  }
-  margin: 0 0 10px 0;
-  display: block;
-  background-color: ${({theme:e})=>(0,t.transparentize)(.6,e.rightPanel.backgroundColor)};
-  border: none;
-  padding: 0.9em 1.6em 0.9em 0.9em;
-  box-shadow: none;
-  &:hover,
-  &:focus-within {
-    border: none;
-    box-shadow: none;
-    background-color: ${({theme:e})=>(0,t.transparentize)(.3,e.rightPanel.backgroundColor)};
-  }
-`,pa=te.div`
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  font-size: 12px;
-  color: #ee807f;
-`;class da extends e.Component{constructor(){super(...arguments),this.state={activeIdx:0},this.switchMedia=({idx:e})=>{void 0!==e&&this.setState({activeIdx:e})}}render(){const{activeIdx:t}=this.state,r=this.props.mediaType.examples||{},n=this.props.mediaType.name,i=e.createElement(pa,null,"No sample"),o=Object.keys(r);if(0===o.length)return i;if(o.length>1){const i=o.map((e,t)=>({value:r[e].summary||e,idx:t})),s=r[o[t]],a=s.description;return e.createElement(ha,null,e.createElement(ca,nu [...]
-  margin-top: 15px;
-`;var fa=r(129);const ma=te(Lo)`
-  &.deprecated {
-    span.property-name {
-      ${Co}
-    }
-  }
-
-  button {
-    background-color: transparent;
-    border: 0;
-    outline: 0;
-    font-size: 13px;
-    font-family: ${e=>e.theme.typography.code.fontFamily};
-    cursor: pointer;
-    padding: 0;
-    color: ${e=>e.theme.colors.text.primary};
-    &:focus {
-      font-weight: ${({theme:e})=>e.typography.fontWeightBold};
-    }
-    ${({kind:e})=>"patternProperties"===e&&Y`
-        display: inline-flex;
-        margin-right: 20px;
-
-        > span.property-name {
-          white-space: break-spaces;
-          text-align: left;
-
-          ::before,
-          ::after {
-            content: '/';
-            filter: opacity(0.2);
-          }
-        }
-
-        > svg {
-          align-self: center;
-        }
-      `}
-  }
-  ${Po} {
-    height: ${({theme:e})=>e.schema.arrow.size};
-    width: ${({theme:e})=>e.schema.arrow.size};
-    polygon {
-      fill: ${({theme:e})=>e.schema.arrow.color};
-    }
-  }
-`,ga=te.span`
-  vertical-align: middle;
-  font-size: ${({theme:e})=>e.typography.code.fontSize};
-  line-height: 20px;
-`,ya=te(ga)`
-  color: ${e=>(0,t.transparentize)(.1,e.theme.schema.typeNameColor)};
-`,ba=te(ga)`
-  color: ${e=>e.theme.schema.typeNameColor};
-`,va=te(ga)`
-  color: ${e=>e.theme.schema.typeTitleColor};
-  word-break: break-word;
-`,xa=ba,wa=te(ga).attrs({as:"div"})`
-  color: ${e=>e.theme.schema.requireLabelColor};
-  font-size: ${e=>e.theme.schema.labelsTextSize};
-  font-weight: normal;
-  margin-left: 20px;
-  line-height: 1;
-`,Sa=te(wa)`
-  color: ${e=>e.theme.colors.primary.light};
-`,ka=te(ga)`
-  color: ${({theme:e})=>e.colors.warning.main};
-  font-size: 13px;
-`,Oa=te(ga)`
-  color: #0e7c86;
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  font-size: 12px;
-  &::before,
-  &::after {
-    content: ' ';
-  }
-`,Ea=te(ga)`
-  border-radius: 2px;
-  word-break: break-word;
-  ${({theme:e})=>`\n    background-color: ${(0,t.transparentize)(.95,e.colors.text.primary)};\n    color: ${(0,t.transparentize)(.1,e.colors.text.primary)};\n\n    padding: 0 ${e.spacing.unit}px;\n    border: 1px solid ${(0,t.transparentize)(.9,e.colors.text.primary)};\n    font-family: ${e.typography.code.fontFamily};\n}`};
-  & + & {
-    margin-left: 0;
-  }
-  ${re("ExampleValue")};
-`,_a=te(Ea)``,Aa=te(ga)`
-  border-radius: 2px;
-  ${({theme:e})=>`\n    background-color: ${(0,t.transparentize)(.95,e.colors.primary.light)};\n    color: ${(0,t.transparentize)(.1,e.colors.primary.main)};\n\n    margin: 0 ${e.spacing.unit}px;\n    padding: 0 ${e.spacing.unit}px;\n    border: 1px solid ${(0,t.transparentize)(.9,e.colors.primary.main)};\n}`};
-  & + & {
-    margin-left: 0;
-  }
-  ${re("ConstraintItem")};
-`,ja=te.button`
-  background-color: transparent;
-  border: 0;
-  color: ${({theme:e})=>e.colors.text.secondary};
-  margin-left: ${({theme:e})=>e.spacing.unit}px;
-  border-radius: 2px;
-  cursor: pointer;
-  outline-color: ${({theme:e})=>e.colors.text.secondary};
-  font-size: 12px;
-`;Object.defineProperty,Object.getOwnPropertyDescriptor;const $a=te.div`
-  ${Os};
-  ${({$compact:e})=>e?"":"margin: 1em 0"}
-`;let Pa=class extends e.Component{render(){const{externalDocs:t}=this.props;return t&&t.url?e.createElement($a,{$compact:this.props.compact},e.createElement("a",{href:t.url},t.description||t.url)):null}};Pa=((e,t)=>{for(var r,n=t,i=e.length-1;i>=0;i--)(r=e[i])&&(n=r(n)||n);return n})([fa.observer],Pa);const Ta=te(Es)`
-  table {
-    margin-bottom: 0.2em;
-  }
-`;class Ca extends e.PureComponent{constructor(e){super(e),this.state={collapsed:!0},this.toggle=this.toggle.bind(this)}toggle(){this.setState({collapsed:!this.state.collapsed})}render(){const{values:t,type:r}=this.props,{collapsed:n}=this.state,i=!Array.isArray(t),o=Array.isArray(t)&&t||Object.entries(t||{}).map(([e,t])=>({value:e,description:t})),{enumSkipQuotes:s,maxDisplayedEnumValues:a}=this.context;if(!o.length)return null;const l=this.state.collapsed&&a?o.slice(0,a):o,c=!!a&&o.len [...]
-  color: ${e=>e.theme.colors.primary.main};
-  vertical-align: middle;
-  font-size: 13px;
-  line-height: 20px;
-  padding: 0 5px;
-  cursor: pointer;
-`,Na=te(Es)`
-  margin: 2px 0;
-`;class Ra extends e.PureComponent{render(){const t=this.props.extensions;return e.createElement(ue.Consumer,null,r=>e.createElement(e.Fragment,null,r.showExtensions&&Object.keys(t).map(r=>e.createElement(Na,{key:r},e.createElement(ga,null," ",r.substring(2),": ")," ",e.createElement(_a,null,"string"==typeof t[r]?t[r]:JSON.stringify(t[r]))))))}}function La({field:t}){return t.examples?e.createElement(e.Fragment,null,e.createElement(ga,null," ",N("examples"),": "),T(t.examples)?t.examples [...]
-  margin-top: 1em;
-  list-style-position: outside;
-`;class Ma extends e.PureComponent{render(){return 0===this.props.constraints.length?null:e.createElement("span",null," ",this.props.constraints.map(t=>e.createElement(Aa,{key:t}," ",t," ")))}}const za=e.memo(function({value:t,label:r,raw:n}){if(void 0===t)return null;const i=n?String(t):JSON.stringify(t);return e.createElement("div",null,e.createElement(ga,null," ",r," ")," ",e.createElement(Ea,null,i))}),Fa=45;function Ba(t){const r=t.schema.pattern,{hideSchemaPattern:n}=e.useContext(u [...]
-  margin: 0 5px;
-  vertical-align: text-top;
-`;var Va=Object.defineProperty,Wa=Object.getOwnPropertySymbols,Ha=Object.prototype.hasOwnProperty,Ga=Object.prototype.propertyIsEnumerable,Ka=(e,t,r)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Qa=(e,t)=>{for(var r in t||(t={}))Ha.call(t,r)&&Ka(e,r,t[r]);if(Wa)for(var r of Wa(t))Ga.call(t,r)&&Ka(e,r,t[r]);return e};const Ya=(0,fa.observer)(t=>{const{enumSkipQuotes:r,hideSchemaTitles:n}=e.useContext(ue),{showExamples:i,field:o,renderDiscriminatorSwitch:s}=t, [...]
-  padding-left: ${({theme:e})=>2*e.spacing.unit}px;
-`;class gl extends e.PureComponent{render(){const t=this.props.schema,r=t.items,n=this.props.fieldParentsName,i=void 0===t.minItems&&void 0===t.maxItems?"":`(${st(t)})`,o=n?[...n.slice(0,-1),n[n.length-1]+"[]"]:n;return t.fields?e.createElement(ol,fl(hl({},this.props),{level:this.props.level,fieldParentsName:o})):!t.displayType||r||i.length?e.createElement("div",null,e.createElement(Vo,null," Array ",i),e.createElement(ml,null,e.createElement(Ml,fl(hl({},this.props),{schema:r,fieldParent [...]
-  background: ${({theme:e})=>e.codeBlock.backgroundColor};
-  & > div,
-  & > pre {
-    padding: ${e=>4*e.theme.spacing.unit}px;
-    margin: 0;
-  }
-
-  & > div > pre {
-    padding: 0;
-  }
-`,Kl=(K().div`
-  background-color: #e4e7eb;
-`,K().ul`
-  display: inline;
-  list-style: none;
-  padding: 0;
-
-  li {
-    display: inherit;
-
-    &:after {
-      content: ',';
-    }
-    &:last-child:after {
-      content: none;
-    }
-  }
-`,K().code`
-  font-size: ${e=>e.theme.typography.code.fontSize};
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  margin: 0 3px;
-  padding: 0.2em;
-  display: inline-block;
-  line-height: 1;
-
-  &:after {
-    content: ',';
-    font-weight: normal;
-  }
-
-  &:last-child:after {
-    content: none;
-  }
-`),Ql=K().span`
-  &:after {
-    content: ' and ';
-    font-weight: normal;
-  }
-
-  &:last-child:after {
-    content: none;
-  }
-
-  ${Os};
-`,Yl=K().span`
-  ${e=>!e.$expanded&&"white-space: nowrap;"}
-  &:after {
-    content: ' or ';
-    ${e=>e.$expanded&&"content: ' or \\a';"}
-    white-space: pre;
-  }
-
-  &:last-child:after,
-  &:only-child:after {
-    content: none;
-  }
-
-  ${Os};
-`,Xl=K().div`
-  flex: 1 1 auto;
-  cursor: pointer;
-`,Jl=K().div`
-  width: ${e=>e.theme.schema.defaultDetailsWidth};
-  text-overflow: ellipsis;
-  border-radius: 4px;
-  overflow: hidden;
-  ${e=>e.$expanded&&`background: ${e.theme.colors.gray[100]};\n     padding: 8px 9.6px;\n     margin: 20px 0;\n     width: 100%;\n    `};
-  ${ee.lessThan("small")`
-    margin-top: 10px;
-  `}
-`,Zl=K()(vo)`
-  display: inline-block;
-  margin: 0;
-`,ec=K().div`
-  width: 100%;
-  display: flex;
-  margin: 1em 0;
-  flex-direction: ${e=>e.$expanded?"column":"row"};
-  ${ee.lessThan("small")`
-    flex-direction: column;
-  `}
-`,tc=K().div`
-  margin: 0.5em 0;
-`,rc=K().div`
-  border-bottom: 1px solid ${({theme:e})=>e.colors.border.dark};
-  margin-bottom: 1.5em;
-  padding-bottom: 0.7em;
-
-  h5 {
-    line-height: 1em;
-    margin: 0 0 0.6em;
-    font-size: ${({theme:e})=>e.typography.fontSize};
-  }
-
-  .redoc-markdown p:first-child {
-    display: inline;
-  }
-`;function nc({children:t,height:r}){const n=e.createRef(),[i,o]=e.useState(!1),[s,a]=e.useState(!1);return e.useEffect(()=>{n.current&&n.current.clientHeight+20<n.current.scrollHeight&&a(!0)},[n]),e.createElement(e.Fragment,null,e.createElement(ic,{ref:n,className:i?"":"container",style:{height:i?"auto":r}},t),e.createElement(oc,{$dimmed:!i},s&&e.createElement(sc,{onClick:()=>{o(!i)}},i?"See less":"See more")))}const ic=K().div`
-  overflow-y: hidden;
-`,oc=K().div`
-  text-align: center;
-  line-height: 1.5em;
-  ${({$dimmed:e})=>e&&"background-image: linear-gradient(to bottom, transparent,rgb(255 255 255));\n     position: relative;\n     top: -0.5em;\n     padding-top: 0.5em;\n     background-position-y: -1em;\n    "}
-`,sc=K().a`
-  cursor: pointer;
-`,ac=e.memo(function(t){const{type:r,flow:n,RequiredScopes:i}=t,o=Object.keys((null==n?void 0:n.scopes)||{});return e.createElement(e.Fragment,null,e.createElement(tc,null,e.createElement("b",null,"Flow type: "),e.createElement("code",null,r," ")),("implicit"===r||"authorizationCode"===r)&&e.createElement(tc,null,e.createElement("strong",null," Authorization URL: "),e.createElement("code",null,e.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:n.authorizationUrl},n.autho [...]
-  margin-top: 0;
-  margin-bottom: 0.5em;
-
-  ${re("ApiHeader")};
-`,gc=te.a`
-  border: 1px solid ${e=>e.theme.colors.primary.main};
-  color: ${e=>e.theme.colors.primary.main};
-  font-weight: normal;
-  margin-left: 0.5em;
-  padding: 4px 8px 4px;
-  display: inline-block;
-  text-decoration: none;
-  cursor: pointer;
-
-  ${re("DownloadButton")};
-`,yc=te.span`
-  &::before {
-    content: '|';
-    display: inline-block;
-    opacity: 0.5;
-    width: ${15}px;
-    text-align: center;
-  }
-
-  &:last-child::after {
-    display: none;
-  }
-`,bc=te.div`
-  overflow: hidden;
-`,vc=te.div`
-  display: flex;
-  flex-wrap: wrap;
-  // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888
-  margin-left: -${15}px;
-`;Object.defineProperty,Object.getOwnPropertyDescriptor;let xc=class extends e.Component{render(){const{store:t}=this.props,{info:r,externalDocs:n}=t.spec,i=t.options.hideDownloadButtons,o=r.downloadUrls,s=r.downloadFileName,a=r.license&&e.createElement(yc,null,"License:"," ",r.license.identifier?r.license.identifier:e.createElement("a",{href:r.license.url},r.license.name))||null,l=r.contact&&r.contact.url&&e.createElement(yc,null,"URL: ",e.createElement("a",{href:r.contact.url},r.contac [...]
-  max-height: ${e=>e.theme.logo.maxHeight};
-  max-width: ${e=>e.theme.logo.maxWidth};
-  padding: ${e=>e.theme.logo.gutter};
-  width: 100%;
-  display: block;
-`,Sc=te.div`
-  text-align: center;
-`,kc=te.a`
-  display: inline-block;
-`;Object.defineProperty,Object.getOwnPropertyDescriptor;let Oc=class extends e.Component{render(){const{info:t}=this.props,r=t["x-logo"];if(!r||!r.url)return null;const n=r.href||t.contact&&t.contact.url,i=r.altText?r.altText:"logo",o=e.createElement(wc,{src:r.url,alt:i});return e.createElement(Sc,{style:{backgroundColor:r.backgroundColor}},n?(s=n,t=>e.createElement(kc,{href:s},t))(o):o);var s}};Oc=((e,t)=>{for(var r,n=t,i=e.length-1;i>=0;i--)(r=e[i])&&(n=r(n)||n);return n})([fa.observer [...]
-  width: 9ex;
-  display: inline-block;
-  height: ${e=>e.theme.typography.code.fontSize};
-  line-height: ${e=>e.theme.typography.code.fontSize};
-  background-color: ${e=>e.color||"#333"};
-  border-radius: 3px;
-  background-repeat: no-repeat;
-  background-position: 6px 4px;
-  font-size: 7px;
-  font-family: Verdana, sans-serif; // web-safe
-  color: white;
-  text-transform: uppercase;
-  text-align: center;
-  font-weight: bold;
-  vertical-align: middle;
-  margin-right: 6px;
-  margin-top: 2px;
-
-  &.get {
-    background-color: ${({theme:e})=>e.colors.http.get};
-  }
-
-  &.post {
-    background-color: ${({theme:e})=>e.colors.http.post};
-  }
-
-  &.put {
-    background-color: ${({theme:e})=>e.colors.http.put};
-  }
-
-  &.options {
-    background-color: ${({theme:e})=>e.colors.http.options};
-  }
-
-  &.patch {
-    background-color: ${({theme:e})=>e.colors.http.patch};
-  }
-
-  &.delete {
-    background-color: ${({theme:e})=>e.colors.http.delete};
-  }
-
-  &.basic {
-    background-color: ${({theme:e})=>e.colors.http.basic};
-  }
-
-  &.link {
-    background-color: ${({theme:e})=>e.colors.http.link};
-  }
-
-  &.head {
-    background-color: ${({theme:e})=>e.colors.http.head};
-  }
-
-  &.hook {
-    background-color: ${({theme:e})=>e.colors.primary.main};
-  }
-
-  &.schema {
-    background-color: ${({theme:e})=>e.colors.http.basic};
-  }
-`;function Nc(e,{theme:t},r){return e>1?t.sidebar.level1Items[r]:1===e?t.sidebar.groupItems[r]:""}const Rc=te.ul`
-  margin: 0;
-  padding: 0;
-
-  &:first-child {
-    padding-bottom: 32px;
-  }
-
-  & & {
-    font-size: 0.929em;
-  }
-
-  ${e=>e.$expanded?"":"display: none;"};
-`,Lc=te.li`
-  list-style: none inside none;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  padding: 0;
-  ${e=>0===e.depth?"margin-top: 15px":""};
-`,Dc={0:Y`
-    opacity: 0.7;
-    text-transform: ${({theme:e})=>e.sidebar.groupItems.textTransform};
-    font-size: 0.8em;
-    padding-bottom: 0;
-    cursor: default;
-  `,1:Y`
-    font-size: 0.929em;
-    text-transform: ${({theme:e})=>e.sidebar.level1Items.textTransform};
-  `},Mc=te.label.attrs(e=>({className:Cc("-depth"+e.$depth,{active:e.$active})}))`
-  cursor: pointer;
-  color: ${e=>e.$active?Nc(e.$depth,e,"activeTextColor"):e.theme.sidebar.textColor};
-  margin: 0;
-  padding: 12.5px ${e=>4*e.theme.spacing.unit}px;
-  ${({$depth:e,$type:t,theme:r})=>"section"===t&&e>1&&"padding-left: "+8*r.spacing.unit+"px;"||""}
-  display: flex;
-  justify-content: space-between;
-  font-family: ${e=>e.theme.typography.headings.fontFamily};
-  ${e=>Dc[e.$depth]};
-  background-color: ${e=>e.$active?Nc(e.$depth,e,"activeBackgroundColor"):e.theme.sidebar.backgroundColor};
-
-  ${e=>e.$deprecated&&Co||""};
-
-  &:hover {
-    color: ${e=>Nc(e.$depth,e,"activeTextColor")};
-    background-color: ${e=>Nc(e.$depth,e,"activeBackgroundColor")};
-  }
-
-  ${Po} {
-    height: ${({theme:e})=>e.sidebar.arrow.size};
-    width: ${({theme:e})=>e.sidebar.arrow.size};
-    polygon {
-      fill: ${({theme:e})=>e.sidebar.arrow.color};
-    }
-  }
-`,zc=te.span`
-  display: inline-block;
-  vertical-align: middle;
-  width: ${e=>e.width?e.width:"auto"};
-  overflow: hidden;
-  text-overflow: ellipsis;
-`,Fc=te.div`
-  ${({theme:e})=>Y`
-    font-size: 0.8em;
-    margin-top: ${2*e.spacing.unit}px;
-    text-align: center;
-    position: fixed;
-    width: ${e.sidebar.width};
-    bottom: 0;
-    background: ${e.sidebar.backgroundColor};
-
-    a,
-    a:visited,
-    a:hover {
-      color: ${e.sidebar.textColor} !important;
-      padding: ${e.spacing.unit}px 0;
-      border-top: 1px solid ${(0,t.darken)(.1,e.sidebar.backgroundColor)};
-      text-decoration: none;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-    }
-  `};
-  img {
-    width: 15px;
-    margin-right: 5px;
-  }
-
-  ${ee.lessThan("small")`
-    width: 100%;
-  `};
-`,Bc=te.button`
-  border: 0;
-  width: 100%;
-  text-align: left;
-  & > * {
-    vertical-align: middle;
-  }
-
-  ${Po} {
-    polygon {
-      fill: ${({theme:e})=>(0,t.darken)(e.colors.tonalOffset,e.colors.gray[100])};
-    }
-  }
-`,qc=te.span`
-  text-decoration: ${e=>e.$deprecated?"line-through":"none"};
-  margin-right: 8px;
-`,Uc=te(Ic)`
-  margin: 0 5px 0 0;
-`,Vc=te(t=>{const{name:r,opened:n,className:i,onClick:o,httpVerb:s,deprecated:a}=t;return e.createElement(Bc,{className:i,onClick:o||void 0},e.createElement(Uc,{type:s},bt(s)),e.createElement(Po,{size:"1.5em",direction:n?"down":"right",float:"left"}),e.createElement(qc,{$deprecated:a},r),a?e.createElement(To,{type:"warning"}," ",N("deprecated")," "):null)})`
-  padding: 10px;
-  border-radius: 2px;
-  margin-bottom: 4px;
-  line-height: 1.5em;
-  background-color: ${({theme:e})=>e.colors.gray[100]};
-  cursor: pointer;
-  outline-color: ${({theme:e})=>(0,t.darken)(e.colors.tonalOffset,e.colors.gray[100])};
-`,Wc=te.div`
-  padding: 10px 25px;
-  background-color: ${({theme:e})=>e.colors.gray[50]};
-  margin-bottom: 5px;
-  margin-top: 5px;
-`;class Hc extends e.PureComponent{constructor(){super(...arguments),this.selectElement=()=>{Us.selectElement(this.child)}}render(){const{children:t}=this.props;return e.createElement("div",{ref:e=>this.child=e,onClick:this.selectElement,onFocus:this.selectElement,tabIndex:0,role:"button"},t)}}const Gc=te.div`
-  cursor: pointer;
-  position: relative;
-  margin-bottom: 5px;
-`,Kc=te.span`
-  font-family: ${e=>e.theme.typography.code.fontFamily};
-  margin-left: 10px;
-  flex: 1;
-  overflow-x: hidden;
-  text-overflow: ellipsis;
-`,Qc=te.button`
-  outline: 0;
-  color: inherit;
-  width: 100%;
-  text-align: left;
-  cursor: pointer;
-  padding: 10px 30px 10px ${e=>e.$inverted?"10px":"20px"};
-  border-radius: ${e=>e.$inverted?"0":"4px 4px 0 0"};
-  background-color: ${e=>e.$inverted?"transparent":e.theme.codeBlock.backgroundColor};
-  display: flex;
-  white-space: nowrap;
-  align-items: center;
-  border: ${e=>e.$inverted?"0":"1px solid transparent"};
-  border-bottom: ${e=>e.$inverted?"1px solid #ccc":"0"};
-  transition: border-color 0.25s ease;
-
-  ${e=>e.$expanded&&!e.$inverted&&`border-color: ${e.theme.colors.border.dark};`||""}
-
-  .${Kc} {
-    color: ${e=>e.$inverted?e.theme.colors.text.primary:"#ffffff"};
-  }
-  &:focus {
-    box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.45), 0 2px 0 rgba(128, 128, 128, 0.25);
-  }
-`,Yc=te.span.attrs(e=>({className:`http-verb ${e.type}`}))`
-  font-size: ${e=>e.$compact?"0.8em":"0.929em"};
-  line-height: ${e=>e.$compact?"18px":"20px"};
-  background-color: ${e=>e.theme.colors.http[e.type]||"#999999"};
-  color: #ffffff;
-  padding: ${e=>e.$compact?"2px 8px":"3px 10px"};
-  text-transform: uppercase;
-  font-family: ${e=>e.theme.typography.headings.fontFamily};
-  margin: 0;
-`,Xc=te.div`
-  position: absolute;
-  width: 100%;
-  z-index: 100;
-  background: ${e=>e.theme.rightPanel.servers.overlay.backgroundColor};
-  color: ${e=>e.theme.rightPanel.servers.overlay.textColor};
-  box-sizing: border-box;
-  box-shadow: 0 0 6px rgba(0, 0, 0, 0.33);
-  overflow: hidden;
-  border-bottom-left-radius: 4px;
-  border-bottom-right-radius: 4px;
-  transition: all 0.25s ease;
-  visibility: hidden;
-  ${e=>e.$expanded?"visibility: visible;":"transform: translateY(-50%) scaleY(0);"}
-`,Jc=te.div`
-  padding: 10px;
-`,Zc=te.div`
-  padding: 5px;
-  border: 1px solid #ccc;
-  background: ${e=>e.theme.rightPanel.servers.url.backgroundColor};
-  word-break: break-all;
-  color: ${e=>e.theme.colors.primary.main};
-  > span {
-    color: ${e=>e.theme.colors.text.primary};
-  }
-`;class eu extends e.Component{constructor(e){super(e),this.toggle=()=>{this.setState({expanded:!this.state.expanded})},this.state={expanded:!1}}render(){const{operation:t,inverted:r,hideHostname:n}=this.props,{expanded:i}=this.state;return e.createElement(ue.Consumer,null,o=>e.createElement(Gc,null,e.createElement(Qc,{onClick:this.toggle,$expanded:i,$inverted:r},e.createElement(Yc,{type:t.httpVerb,$compact:this.props.compact},t.httpVerb),e.createElement(Kc,null,t.path),e.createElement(P [...]
-  ${fu}
-`,gu=te("div")`
-  ${fu}
-  color: ${({theme:e})=>e.colors.text.secondary};
-  font-size: ${e=>e.theme.schema.labelsTextSize};
-`,yu=e.memo(function({title:t,type:r,empty:n,code:i,opened:o,className:s,onClick:a}){return e.createElement("button",{className:s,onClick:!n&&a||void 0,"aria-expanded":o,disabled:n},!n&&e.createElement(Po,{size:"1.5em",color:r,direction:o?"down":"right",float:"left"}),e.createElement(wu,null,i," "),e.createElement(Rs,{compact:!0,inline:!0,source:t}))}),bu=te(yu)`
-  display: block;
-  border: 0;
-  width: 100%;
-  text-align: left;
-  padding: 10px;
-  border-radius: 2px;
-  margin-bottom: 4px;
-  line-height: 1.5em;
-  cursor: pointer;
-
-  color: ${e=>e.theme.colors.responses[e.type].color};
-  background-color: ${e=>e.theme.colors.responses[e.type].backgroundColor};
-  &:focus {
-    outline: auto ${e=>e.theme.colors.responses[e.type].color};
-  }
-  ${e=>e.empty?'\ncursor: default;\n&::before {\n  content: "\u2014";\n  font-weight: bold;\n  width: 1.5em;\n  text-align: center;\n  display: inline-block;\n  vertical-align: top;\n}\n&:focus {\n  outline: 0;\n}\n':""};
-`,vu=te.div`
-  padding: 10px;
-`,xu=te(vo).attrs({as:"caption"})`
-  text-align: left;
-  margin-top: 1em;
-  caption-side: top;
-`,wu=te.strong`
-  vertical-align: top;
-`;class Su extends e.PureComponent{render(){const{headers:t}=this.props;return void 0===t||0===t.length?null:e.createElement(Fo,null,e.createElement(xu,null," Response Headers "),e.createElement("tbody",null,h(t,(t,r)=>e.createElement(nl,{isLast:r,key:t.name,field:t,showExamples:!0}))))}}var ku=Object.defineProperty,Ou=Object.getOwnPropertySymbols,Eu=Object.prototype.hasOwnProperty,_u=Object.prototype.propertyIsEnumerable,Au=(e,t,r)=>t in e?ku(e,t,{enumerable:!0,configurable:!0,writable: [...]
-  font-size: 1.3em;
-  padding: 0.2em 0;
-  margin: 3em 0 1.1em;
-  color: ${({theme:e})=>e.colors.text.primary};
-  font-weight: normal;
-`;class Tu extends e.PureComponent{render(){const{responses:t,isCallback:r}=this.props;return t&&0!==t.length?e.createElement("div",null,e.createElement(Pu,null,N(r?"callbackResponses":"responses")),t.map(t=>e.createElement($u,{key:t.code,response:t}))):null}}function Cu(t){const{security:r,showSecuritySchemeType:n,expanded:i}=t,o=r.schemes.length>1;return 0===r.schemes.length?e.createElement(Yl,{$expanded:i},"None"):e.createElement(Yl,{$expanded:i},o&&"(",r.schemes.map(t=>e.createElemen [...]
-  margin-bottom: ${({theme:e})=>3*e.spacing.unit}px;
-`;Object.defineProperty,Object.getOwnPropertyDescriptor;let zu=class extends e.Component{constructor(){super(...arguments),this.toggle=()=>{this.props.callbackOperation.toggle()}}render(){const{name:t,expanded:r,httpVerb:n,deprecated:i}=this.props.callbackOperation;return e.createElement(e.Fragment,null,e.createElement(Vc,{onClick:this.toggle,name:t,opened:r,httpVerb:n,deprecated:i}),r&&e.createElement(Du,{operation:this.props.callbackOperation}))}};zu=((e,t)=>{for(var r,n=t,i=e.length-1 [...]
-  font-size: 1.3em;
-  padding: 0.2em 0;
-  margin: 3em 0 1.1em;
-  color: ${({theme:e})=>e.colors.text.primary};
-  font-weight: normal;
-`;Object.defineProperty,Object.getOwnPropertyDescriptor;let qu=class extends e.Component{constructor(e){super(e),this.switchItem=({idx:e})=>{this.props.items&&void 0!==e&&this.setState({activeItemIdx:e})},this.state={activeItemIdx:0}}render(){const{items:t}=this.props;if(!t||!t.length)return null;const r=({children:t})=>this.props.label?e.createElement(ca,null,e.createElement(la,null,this.props.label),t):t;return e.createElement(e.Fragment,null,e.createElement(r,null,this.props.renderDro [...]
-  margin-top: 15px;
-`;var Zu=Object.defineProperty,ep=Object.defineProperties,tp=(Object.getOwnPropertyDescriptor,Object.getOwnPropertyDescriptors),rp=Object.getOwnPropertySymbols,np=Object.prototype.hasOwnProperty,ip=Object.prototype.propertyIsEnumerable,op=(e,t,r)=>t in e?Zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;let sp=class extends e.Component{constructor(){super(...arguments),this.renderDropdown=t=>{return e.createElement(Ss,(r=((e,t)=>{for(var r in t||(t={}))np.call(t,r)&&op(e [...]
-  background: ${({theme:e})=>e.codeBlock.backgroundColor};
-  padding: ${e=>4*e.theme.spacing.unit}px;
-`;Object.defineProperty,Object.getOwnPropertyDescriptor;let lp=class extends e.Component{render(){const{operation:t}=this.props,r=t.codeSamples,n=r.length>0,i=1===r.length&&this.context.hideSingleRequestSampleTab;return n&&e.createElement("div",null,e.createElement(bo,null," ",N("requestSamples")," "),e.createElement(Go,{defaultIndex:0},e.createElement(Ho.TabList,{hidden:i},r.map(t=>e.createElement(Ho.Tab,{key:t.lang+"_"+(t.label||"")},void 0!==t.label?t.label:t.lang))),r.map(t=>e.create [...]
-  margin-bottom: ${({theme:e})=>6*e.spacing.unit}px;
-`,bp=(0,fa.observer)(({operation:t})=>{const{name:r,description:n,deprecated:i,externalDocs:o,isWebhook:s,httpVerb:a,badges:l}=t,c=!(!n&&!o),{showWebhookVerb:u}=e.useContext(ue),p=l.filter(({position:e})=>"before"===e),d=l.filter(({position:e})=>"after"===e);return e.createElement(ue.Consumer,null,l=>{return e.createElement(po,(h=((e,t)=>{for(var r in t||(t={}))fp.call(t,r)&&gp(e,r,t[r]);if(hp)for(var r of hp(t))mp.call(t,r)&&gp(e,r,t[r]);return e})({},{[eo]:t.operationHash}),f={id:t.ope [...]
-  user-select: none;
-  width: 20px;
-  height: 20px;
-  align-self: center;
-  display: flex;
-  flex-direction: column;
-  color: ${e=>e.theme.colors.primary.main};
-`;let Xp;Object.defineProperty,Object.getOwnPropertyDescriptor,a&&(Xp=n(230));const Jp=Xp&&Xp(),Zp=te.div`
-  width: ${e=>e.theme.sidebar.width};
-  background-color: ${e=>e.theme.sidebar.backgroundColor};
-  overflow: hidden;
-  display: flex;
-  flex-direction: column;
-
-  backface-visibility: hidden;
-  /* contain: strict; TODO: breaks layout since Chrome 80*/
-
-  height: 100vh;
-  position: sticky;
-  position: -webkit-sticky;
-  top: 0;
-
-  ${ee.lessThan("small")`
-    position: fixed;
-    z-index: 20;
-    width: 100%;
-    background: ${({theme:e})=>e.sidebar.backgroundColor};
-    display: ${e=>e.$open?"flex":"none"};
-  `};
-
-  @media print {
-    display: none;
-  }
-`,ed=te.div`
-  outline: none;
-  user-select: none;
-  background-color: ${({theme:e})=>e.fab.backgroundColor};
-  color: ${e=>e.theme.colors.primary.main};
-  display: none;
-  cursor: pointer;
-  position: fixed;
-  right: 20px;
-  z-index: 100;
-  border-radius: 50%;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
-  ${ee.lessThan("small")`
-    display: flex;
-  `};
-
-  bottom: 44px;
-
-  width: 60px;
-  height: 60px;
-  padding: 0 20px;
-  svg {
-    color: ${({theme:e})=>e.fab.color};
-  }
-
-  @media print {
-    display: none;
-  }
-`;let td=class extends e.Component{constructor(){super(...arguments),this.state={offsetTop:"0px"},this.toggleNavMenu=()=>{this.props.menu.toggleSidebar()}}componentDidMount(){Jp&&Jp.add(this.stickyElement),this.setState({offsetTop:this.getScrollYOffset(this.context)})}componentWillUnmount(){Jp&&Jp.remove(this.stickyElement)}getScrollYOffset(e){let t;return t=void 0!==this.props.scrollYOffset?H.normalizeScrollYOffset(this.props.scrollYOffset)():e.scrollYOffset(),t+"px"}render(){const t=th [...]
-  ${({theme:e})=>`\n  font-family: ${e.typography.fontFamily};\n  font-size: ${e.typography.fontSize};\n  font-weight: ${e.typography.fontWeightRegular};\n  line-height: ${e.typography.lineHeight};\n  color: ${e.colors.text.primary};\n  display: flex;\n  position: relative;\n  text-align: left;\n\n  -webkit-font-smoothing: ${e.typography.smoothing};\n  font-smoothing: ${e.typography.smoothing};\n  ${e.typography.optimizeSpeed?"text-rendering: optimizeSpeed !important":""};\n\n  tap-highl [...]
-`,nd=te.div`
-  z-index: 1;
-  position: relative;
-  overflow: hidden;
-  width: calc(100% - ${e=>e.theme.sidebar.width});
-  ${ee.lessThan("small",!0)`
-    width: 100%;
-  `};
-
-  contain: layout;
-`,id=te.div`
-  background: ${({theme:e})=>e.rightPanel.backgroundColor};
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 0;
-  width: ${({theme:e})=>{if(e.rightPanel.width.endsWith("%")){const t=parseInt(e.rightPanel.width,10);return`calc((100% - ${e.sidebar.width}) * ${t/100})`}return e.rightPanel.width}};
-  ${ee.lessThan("medium",!0)`
-    display: none;
-  `};
-`,od=te.div`
-  padding: 5px 0;
-`,sd=te.input.attrs(()=>({className:"search-input"}))`
-  width: calc(100% - ${e=>8*e.theme.spacing.unit}px);
-  box-sizing: border-box;
-  margin: 0 ${e=>4*e.theme.spacing.unit}px;
-  padding: 5px ${e=>2*e.theme.spacing.unit}px 5px
-    ${e=>4*e.theme.spacing.unit}px;
-  border: 0;
-  border-bottom: 1px solid
-    ${({theme:e})=>((0,t.getLuminance)(e.sidebar.backgroundColor)>.5?t.darken:t.lighten)(.1,e.sidebar.backgroundColor)};
-  font-family: ${({theme:e})=>e.typography.fontFamily};
-  font-weight: bold;
-  font-size: 13px;
-  color: ${e=>e.theme.sidebar.textColor};
-  background-color: transparent;
-  outline: none;
-`,ad=te(t=>e.createElement("svg",{className:t.className,version:"1.1",viewBox:"0 0 1000 1000",x:"0px",xmlns:"http://www.w3.org/2000/svg",y:"0px"},e.createElement("path",{d:"M968.2,849.4L667.3,549c83.9-136.5,66.7-317.4-51.7-435.6C477.1-25,252.5-25,113.9,113.4c-138.5,138.3-138.5,362.6,0,501C219.2,730.1,413.2,743,547.6,666.5l301.9,301.4c43.6,43.6,76.9,14.9,104.2-12.4C981,928.3,1011.8,893,968.2,849.4z M524.5,522c-88.9,88.7-233,88.7-321.8,0c-88.9-88.7-88.9-232.6,0-321.3c88.9-88.7,233-88.7,321 [...]
-  position: absolute;
-  left: ${e=>4*e.theme.spacing.unit}px;
-  height: 1.8em;
-  width: 0.9em;
-
-  path {
-    fill: ${e=>e.theme.sidebar.textColor};
-  }
-`,ld=te.div`
-  padding: ${e=>e.theme.spacing.unit}px 0;
-  background-color: ${({theme:e})=>(0,t.darken)(.05,e.sidebar.backgroundColor)}};
-  color: ${e=>e.theme.sidebar.textColor};
-  min-height: 150px;
-  max-height: 250px;
-  border-top: ${({theme:e})=>(0,t.darken)(.1,e.sidebar.backgroundColor)}};
-  border-bottom: ${({theme:e})=>(0,t.darken)(.1,e.sidebar.backgroundColor)}};
-  margin-top: 10px;
-  line-height: 1.4;
-  font-size: 0.9em;
-  
-  li {
-    background-color: inherit;
-  }
-
-  ${Mc} {
-    padding-top: 6px;
-    padding-bottom: 6px;
-
-    &:hover,
-    &.active {
-      background-color: ${({theme:e})=>(0,t.darken)(.1,e.sidebar.backgroundColor)};
-    }
-
-    > svg {
-      display: none;
-    }
-  }
-`,cd=te.i`
-  position: absolute;
-  display: inline-block;
-  width: ${e=>2*e.theme.spacing.unit}px;
-  text-align: center;
-  right: ${e=>4*e.theme.spacing.unit}px;
-  line-height: 2em;
-  vertical-align: middle;
-  margin-right: 2px;
-  cursor: pointer;
-  font-style: normal;
-  color: '#666';
-`;var ud=Object.defineProperty,pd=Object.getOwnPropertyDescriptor;class dd extends e.PureComponent{constructor(e){super(e),this.activeItemRef=null,this.clear=()=>{this.setState({results:[],noResults:!1,term:"",activeItemIdx:-1}),this.props.marker.unmark()},this.handleKeyDown=e=>{if(27===e.keyCode&&this.clear(),40===e.keyCode&&(this.setState({activeItemIdx:Math.min(this.state.activeItemIdx+1,this.state.results.length-1)}),e.preventDefault()),38===e.keyCode&&(this.setState({activeItemIdx:M [...]
-    ${o} {
-      ${t=>ur(e,t.theme,i)}
-    }
-  `;return Object.assign(a,{GlobalStyle:l,raw:e,vars:s,resolve(t){if(!ce)throw new Error("createTheme.resolve() is client-only");const r=null!=t?t:document.documentElement;return function(e,t,r){const n={};return cr(e,t,n,(e,n)=>r.getPropertyValue("--"+t+e).trim()||n),n}(e,i,getComputedStyle(r))}})}var dr;class hr{constructor(e,t){this[dr]=!0,this.inject=(e,t=Bt)=>{const r=this.getName(t);if(!e.hasNameForId(this.id,r)){const n=t(this.rules,r,"@keyframes");e.insertRules(this.id,r,n)}},thi [...]
\ No newline at end of file
diff --git a/assets/js/8a4f6662.a73c1410.js b/assets/js/8a4f6662.a73c1410.js
new file mode 100644
index 00000000..1686880c
--- /dev/null
+++ b/assets/js/8a4f6662.a73c1410.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9656],{42271(e,o,n){n.d(o,{R:()=>t,x:()=>d});var i=n(12888);const s={},r=i.createContext(s);function t(e){const o=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),i.createElement(r.Provider,{value:o},e.children)}},96757(e,o,n [...]
\ No newline at end of file
diff --git a/assets/js/8a4f6662.d4e34741.js b/assets/js/8a4f6662.d4e34741.js
deleted file mode 100644
index c0e05962..00000000
--- a/assets/js/8a4f6662.d4e34741.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9656],{58143(e,o,n){n.r(o),n.d(o,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>t,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"deploy/deploy_on_windows","title":"Deploy on Windows","description":"* JDK 17+","source":"@site/versioned_docs/version-2.0.0/03_deploy/3_deploy_on_windows.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_on_windows","permalink":"/docs/2.0.0/deplo [...]
\ No newline at end of file
diff --git a/assets/js/8ab33ed3.61c6dc44.js b/assets/js/8ab33ed3.61c6dc44.js
deleted file mode 100644
index ad7f5625..00000000
--- a/assets/js/8ab33ed3.61c6dc44.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[268],{77979(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/events","title":"Events","description":"BifroMQ generates events at crucial junctures in its workflow, providing users with the ability to implement custom event collector plugins to capture and process these events.","source": [...]
\ No newline at end of file
diff --git a/assets/js/8ab33ed3.63c11d48.js b/assets/js/8ab33ed3.63c11d48.js
new file mode 100644
index 00000000..d4851939
--- /dev/null
+++ b/assets/js/8ab33ed3.63c11d48.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[268],{42271(e,i,t){t.d(i,{R:()=>a,x:()=>r});var n=t(12888);const s={},o=n.createContext(s);function a(e){const i=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(o.Provider,{value:i},e.children)}},61040(e,i,t) [...]
\ No newline at end of file
diff --git a/assets/js/8b5c1510.1c240acf.js b/assets/js/8b5c1510.1c240acf.js
new file mode 100644
index 00000000..a12a6944
--- /dev/null
+++ b/assets/js/8b5c1510.1c240acf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4252],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>o});var t=i(12888);const s={},a=t.createContext(s);function r(e){const n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(a.Provider,{value:n},e.children)}},85968(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/8b5c1510.f01ecbdb.js b/assets/js/8b5c1510.f01ecbdb.js
deleted file mode 100644
index 09aa0e1d..00000000
--- a/assets/js/8b5c1510.f01ecbdb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4252],{65344(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/intro","title":"User Guide Overview","description":"BifroMQ is a sophisticated, Java-based MQTT broker that excels in providing high-performance, distributed messaging capabilities. With its native support for multi-tenancy, BifroMQ stands o [...]
\ No newline at end of file
diff --git a/assets/js/2bfc3ba2.d9872367.js b/assets/js/8cd05687.b9e3e1b2.js
similarity index 84%
rename from assets/js/2bfc3ba2.d9872367.js
rename to assets/js/8cd05687.b9e3e1b2.js
index 23bbf49d..f3e3bd64 100644
--- a/assets/js/2bfc3ba2.d9872367.js
+++ b/assets/js/8cd05687.b9e3e1b2.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3800],{3503(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/connect/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions is a feature of the MQTT protocol that allows multiple subscribers to share the same topic and receive messages in a fair manner. Below is the basic p [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9430],{5874(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/connect/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions is a feature of the MQTT protocol that allows multiple subscribers to share the same topic and receive messages in a fair manner. Below is the basic p [...]
\ No newline at end of file
diff --git a/assets/js/8cd05687.e114a81e.js b/assets/js/8cd05687.e114a81e.js
deleted file mode 100644
index 23f19998..00000000
--- a/assets/js/8cd05687.e114a81e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9430],{80940(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/connect/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions is a feature of the MQTT protocol that allows multiple subscribers to share the same topic and receive messages in a fair manner. Below is the basic  [...]
\ No newline at end of file
diff --git a/assets/js/8d773b19.066117a1.js b/assets/js/8d773b19.066117a1.js
deleted file mode 100644
index fb4bae69..00000000
--- a/assets/js/8d773b19.066117a1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6344],{96781(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"admin_guide/security/intro","title":"Security Overview","description":"Security, a broad and critical aspect of any system, is a key focus for BifroMQ. Recognizing the importance of securing MQTT broker deployments, BifroMQ offers a suite of features d [...]
\ No newline at end of file
diff --git a/assets/js/8d773b19.07b86d44.js b/assets/js/8d773b19.07b86d44.js
new file mode 100644
index 00000000..742890c3
--- /dev/null
+++ b/assets/js/8d773b19.07b86d44.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6344],{42271(e,i,n){n.d(i,{R:()=>a,x:()=>s});var t=n(12888);const o={},r=t.createContext(o);function a(e){const i=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(r.Provider,{value:i},e.children)}},63069(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/8d95bed9.fd5395d6.js b/assets/js/8d95bed9.debe9b3a.js
similarity index 98%
rename from assets/js/8d95bed9.fd5395d6.js
rename to assets/js/8d95bed9.debe9b3a.js
index fc3b0915..e9818e4e 100644
--- a/assets/js/8d95bed9.fd5395d6.js
+++ b/assets/js/8d95bed9.debe9b3a.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7351],{71806(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"cluster/high_availability","title":"High Availability","description":"Due to the decentralized cluster-building capability provided by the Gossip-based protocol (base-cluster) we offer, BifroMQ StandardCluster nodes do not require additional service di [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7351],{26067(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"cluster/high_availability","title":"High Availability","description":"Due to the decentralized cluster-building capability provided by the Gossip-based protocol (base-cluster) we offer, BifroMQ StandardCluster nodes do not require additional service di [...]
\ No newline at end of file
diff --git a/assets/js/8df829f0.575484c6.js b/assets/js/8df829f0.575484c6.js
deleted file mode 100644
index f0886ae3..00000000
--- a/assets/js/8df829f0.575484c6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8292],{45269(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"operations/high_availability","title":"High Availability","description":"TODO","source":"@site/versioned_docs/version-1.0.x/07_operations/2_high_availability.md","sourceDirName":"07_operations","slug":"/operations/high_availability","permalink":"/docs/ [...]
\ No newline at end of file
diff --git a/assets/js/8df829f0.727781b2.js b/assets/js/8df829f0.727781b2.js
new file mode 100644
index 00000000..1b3ca12e
--- /dev/null
+++ b/assets/js/8df829f0.727781b2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8292],{42271(e,i,t){t.d(i,{R:()=>s,x:()=>r});var o=t(12888);const n={},a=o.createContext(n);function s(e){const i=o.useContext(a);return o.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),o.createElement(a.Provider,{value:i},e.children)}},66587(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/8e8e728d.ff42e6a7.js b/assets/js/8e8e728d.20ce4335.js
similarity index 88%
rename from assets/js/8e8e728d.ff42e6a7.js
rename to assets/js/8e8e728d.20ce4335.js
index b5dec295..f5fa8976 100644
--- a/assets/js/8e8e728d.ff42e6a7.js
+++ b/assets/js/8e8e728d.20ce4335.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9984],{37758(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"cluster/intro","title":"BifroMQ Cluster Overview","description":"BifroMQ employs a decentralized clustering approach, where MQTT protocol workloads are distributed across independent sub-clusters, each dedicated to specific functions. This design is bu [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9984],{37385(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"cluster/intro","title":"BifroMQ Cluster Overview","description":"BifroMQ employs a decentralized clustering approach, where MQTT protocol workloads are distributed across independent sub-clusters, each dedicated to specific functions. This design is bu [...]
\ No newline at end of file
diff --git a/assets/js/8ed8594c.239a2bcf.js b/assets/js/8ed8594c.da6440b8.js
similarity index 92%
rename from assets/js/8ed8594c.239a2bcf.js
rename to assets/js/8ed8594c.da6440b8.js
index 631e82be..34f0ffbf 100644
--- a/assets/js/8ed8594c.239a2bcf.js
+++ b/assets/js/8ed8594c.da6440b8.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1731],{29779(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/intro","title":"Observability Overview","description":"In the administration of BifroMQ, ensuring comprehensive system observability stands as a foundational element for conducting effective system operations and maintenance a [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1731],{22287(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/intro","title":"Observability Overview","description":"In the administration of BifroMQ, ensuring comprehensive system observability stands as a foundational element for conducting effective system operations and maintenance a [...]
\ No newline at end of file
diff --git a/assets/js/8f0b353b.2f74c0d7.js b/assets/js/8f0b353b.2f74c0d7.js
new file mode 100644
index 00000000..b9bf9c8c
--- /dev/null
+++ b/assets/js/8f0b353b.2f74c0d7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8380],{42271(e,n,t){t.d(n,{R:()=>o,x:()=>a});var i=t(12888);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},50378(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/8f9a75e1.2c1b4311.js b/assets/js/8f9a75e1.2c1b4311.js
new file mode 100644
index 00000000..337e1825
--- /dev/null
+++ b/assets/js/8f9a75e1.2c1b4311.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7973],{11741(e,i,n){n.d(i,{A:()=>t});const t=n.p+"assets/images/bifromqapproach-521169de298339ec249e62b65aef6939.jpg"},32230(e,i,n){n.d(i,{A:()=>t});const t=n.p+"assets/images/commonapproach-743344ed86b3f0e7dcbf0467da1458cd.jpg"},42271(e,i,n){n.d(i,{R:()=>s,x:()=>a});var t=n(12888);const r={},o=t.createContext(r);function s(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeo [...]
\ No newline at end of file
diff --git a/assets/js/8f9a75e1.5d806c3c.js b/assets/js/8f9a75e1.5d806c3c.js
deleted file mode 100644
index b1d56a46..00000000
--- a/assets/js/8f9a75e1.5d806c3c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7973],{98462(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"user_guide/integration/intro","title":"Data Integration Overview","description":"BifroMQ focuses on being deeply integrated, providing foundational MQTT capabilities for various messaging systems. This guide primarily introduces the recommended methods [...]
\ No newline at end of file
diff --git a/assets/js/8fb33ed2.12350907.js b/assets/js/8fb33ed2.12350907.js
new file mode 100644
index 00000000..96fa3309
--- /dev/null
+++ b/assets/js/8fb33ed2.12350907.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4626],{42271(e,i,t){t.d(i,{R:()=>r,x:()=>a});var s=t(12888);const o={},n=s.createContext(o);function r(e){const i=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(n.Provider,{value:i},e.children)}},53424(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/8fb33ed2.35f919a0.js b/assets/js/8fb33ed2.35f919a0.js
deleted file mode 100644
index e27632b0..00000000
--- a/assets/js/8fb33ed2.35f919a0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4626],{16397(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"bifromq_inside","title":"BifroMQ Inside","description":"This page lists projects or products that integrate with BifroMQ. If your project integrates with BifroMQ, you can submit it here.","source":"@site/versioned_docs/version-3.1.x/999_bifromq_inside. [...]
\ No newline at end of file
diff --git a/assets/js/90d83d50.8c4148ad.js b/assets/js/90d83d50.8c4148ad.js
deleted file mode 100644
index 570bb82b..00000000
--- a/assets/js/90d83d50.8c4148ad.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8550],{52517(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"admin_guide/security/intro","title":"Security Overview","description":"Security, a broad and critical aspect of any system, is a key focus for BifroMQ. Recognizing the importance of securing MQTT broker deployments, BifroMQ offers a suite of features d [...]
\ No newline at end of file
diff --git a/assets/js/90d83d50.dc92f0bf.js b/assets/js/90d83d50.dc92f0bf.js
new file mode 100644
index 00000000..e475a4dd
--- /dev/null
+++ b/assets/js/90d83d50.dc92f0bf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8550],{42271(e,i,n){n.d(i,{R:()=>a,x:()=>s});var t=n(12888);const o={},r=t.createContext(o);function a(e){const i=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(r.Provider,{value:i},e.children)}},80461(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/9146.a37b4d0f.js b/assets/js/9146.a37b4d0f.js
deleted file mode 100644
index b6a064c2..00000000
--- a/assets/js/9146.a37b4d0f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9146],{23449(e,n,t){t.d(n,{A:()=>E});var i=t(12888),s=t(11684);function a(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),a=n.filter(e=>e!==t),r=t?.props.children;return{mdxAdmonitionTitle:r,rest:a.length>0?(0,s.jsx)(s.Fragment,{children:a}):null}}(e.children),a=e.title??n;return{...e,...a&&{title:a},childr [...]
\ No newline at end of file
diff --git a/assets/js/919ea9bb.af3a3d2e.js b/assets/js/919ea9bb.af3a3d2e.js
new file mode 100644
index 00000000..0aa7f8ea
--- /dev/null
+++ b/assets/js/919ea9bb.af3a3d2e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[685],{42271(e,n,i){i.d(n,{R:()=>o,x:()=>l});var t=i(12888);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}},79762(e,n,i) [...]
\ No newline at end of file
diff --git a/assets/js/919ea9bb.e46864c8.js b/assets/js/919ea9bb.e46864c8.js
deleted file mode 100644
index c49e07c5..00000000
--- a/assets/js/919ea9bb.e46864c8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[685],{55861(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"contribution_guide/code_review","title":"Code Review","description":"Review a Pull Request","source":"@site/docs/contribution_guide/code_review.md","sourceDirName":"contribution_guide","slug":"/contribution_guide/code_review","permalink":"/docs/contribu [...]
\ No newline at end of file
diff --git a/assets/js/91c8b579.6aea0a13.js b/assets/js/91c8b579.0f5ef025.js
similarity index 94%
rename from assets/js/91c8b579.6aea0a13.js
rename to assets/js/91c8b579.0f5ef025.js
index a16ba16c..0f85c9af 100644
--- a/assets/js/91c8b579.6aea0a13.js
+++ b/assets/js/91c8b579.0f5ef025.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2983],{45022(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/connect_to","title":"Connect to BifroMQ","description":"Simple Connection Verification using an MQTT Client","source":"@site/versioned_docs/version-2.1.x/02_get_started/2_connect_to.md","sourceDirName":"02_get_started","slug":"/get_started/ [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2983],{11245(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/connect_to","title":"Connect to BifroMQ","description":"Simple Connection Verification using an MQTT Client","source":"@site/versioned_docs/version-2.1.x/02_get_started/2_connect_to.md","sourceDirName":"02_get_started","slug":"/get_started/ [...]
\ No newline at end of file
diff --git a/assets/js/936dcec6.3e613a53.js b/assets/js/936dcec6.3e613a53.js
deleted file mode 100644
index 499f5f50..00000000
--- a/assets/js/936dcec6.3e613a53.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4670],{68174(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"admin_guide/overview","title":"Admin Guide Overview","description":"The administration of BifroMQ encompasses two levels: system-level management and tenant-level management. The former is mainly targeted at system administrators and operations personn [...]
\ No newline at end of file
diff --git a/assets/js/936dcec6.81a04b4b.js b/assets/js/936dcec6.81a04b4b.js
new file mode 100644
index 00000000..b5a0f99f
--- /dev/null
+++ b/assets/js/936dcec6.81a04b4b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4670],{5529(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"admin_guide/overview","title":"Admin Guide Overview","description":"The administration of BifroMQ encompasses two levels: system-level management and tenant-level management. The former is mainly targeted at system administrators and operations personne [...]
\ No newline at end of file
diff --git a/assets/js/9375d79c.325d378e.js b/assets/js/9375d79c.dd162c01.js
similarity index 93%
rename from assets/js/9375d79c.325d378e.js
rename to assets/js/9375d79c.dd162c01.js
index ef340c86..55599850 100644
--- a/assets/js/9375d79c.325d378e.js
+++ b/assets/js/9375d79c.dd162c01.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5832],{67527(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/versioned_docs/version-3. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5832],{10220(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/versioned_docs/version-3. [...]
\ No newline at end of file
diff --git a/assets/js/9378ac58.c1a9dbd3.js b/assets/js/9378ac58.c1a9dbd3.js
new file mode 100644
index 00000000..b8f26293
--- /dev/null
+++ b/assets/js/9378ac58.c1a9dbd3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2982],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>l});var o=n(12888);const i={},r=o.createContext(i);function s(e){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:t},e.children)}},95759(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/9378ac58.f0cdcf65.js b/assets/js/9378ac58.f0cdcf65.js
deleted file mode 100644
index 028a56fd..00000000
--- a/assets/js/9378ac58.f0cdcf65.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2982],{79261(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector Plugin is designed to gather various events generated during the execution of BifroMQ. By filtering through event types, you can focus on the events that matter to you [...]
\ No newline at end of file
diff --git a/assets/js/938092f1.cda1b6b9.js b/assets/js/938092f1.8ef6b8b2.js
similarity index 97%
rename from assets/js/938092f1.cda1b6b9.js
rename to assets/js/938092f1.8ef6b8b2.js
index 4e640e99..cfd46ad0 100644
--- a/assets/js/938092f1.cda1b6b9.js
+++ b/assets/js/938092f1.8ef6b8b2.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7317],{78328(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"get_started/faq","title":"Frequently Asked Questions","description":"What versions of the MQTT protocol are supported by BifroMQ?","source":"@site/versioned_docs/version-3.2.x/01_get_started/3_faq.md","sourceDirName":"01_get_started","slug":"/get_start [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7317],{41025(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"get_started/faq","title":"Frequently Asked Questions","description":"What versions of the MQTT protocol are supported by BifroMQ?","source":"@site/versioned_docs/version-3.2.x/01_get_started/3_faq.md","sourceDirName":"01_get_started","slug":"/get_start [...]
\ No newline at end of file
diff --git a/assets/js/94048c89.53b50d00.js b/assets/js/94048c89.53b50d00.js
new file mode 100644
index 00000000..555c5fbb
--- /dev/null
+++ b/assets/js/94048c89.53b50d00.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9558],{42271(e,i,t){t.d(i,{R:()=>a,x:()=>r});var n=t(12888);const s={},o=n.createContext(s);function a(e){const i=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(o.Provider,{value:i},e.children)}},84051(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/94048c89.85c20f78.js b/assets/js/94048c89.85c20f78.js
deleted file mode 100644
index 48c0ac68..00000000
--- a/assets/js/94048c89.85c20f78.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9558],{46680(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"admin_guide/observability/events","title":"Events","description":"BifroMQ generates events at crucial junctures in its workflow, providing users with the ability to implement custom event collector plugins to capture and process these events.","source" [...]
\ No newline at end of file
diff --git a/assets/js/e81e104f.b808fd84.js b/assets/js/943b6858.182dd29c.js
similarity index 95%
copy from assets/js/e81e104f.b808fd84.js
copy to assets/js/943b6858.182dd29c.js
index 131a73da..90dd6205 100644
--- a/assets/js/e81e104f.b808fd84.js
+++ b/assets/js/943b6858.182dd29c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[523],{58819(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>x,frontMatter:()=>i,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"admin_guide/observability/metrics/tenantmetrics","title":"Tenant-level Metrics","description":"Below is a comprehensive table of BifroMQ\'s tenant metrics, including their MetricName (as recognized within Micrometer), the type of meter used, and a brief [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1422],{3366(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>x,frontMatter:()=>i,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"admin_guide/observability/metrics/tenantmetrics","title":"Tenant-level Metrics","description":"Below is a comprehensive table of BifroMQ\'s tenant metrics, including their MetricName (as recognized within Micrometer), the type of meter used, and a brief [...]
\ No newline at end of file
diff --git a/assets/js/943b6858.a0c7e826.js b/assets/js/943b6858.a0c7e826.js
deleted file mode 100644
index 1227bd03..00000000
--- a/assets/js/943b6858.a0c7e826.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1422],{95043(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>x,frontMatter:()=>i,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"admin_guide/observability/metrics/tenantmetrics","title":"Tenant-level Metrics","description":"Below is a comprehensive table of BifroMQ\'s tenant metrics, including their MetricName (as recognized within Micrometer), the type of meter used, and a brie [...]
\ No newline at end of file
diff --git a/assets/js/946377b5.8dec23dd.js b/assets/js/946377b5.bc6e36b0.js
similarity index 88%
rename from assets/js/946377b5.8dec23dd.js
rename to assets/js/946377b5.bc6e36b0.js
index f6c478aa..00d9365b 100644
--- a/assets/js/946377b5.8dec23dd.js
+++ b/assets/js/946377b5.bc6e36b0.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7452],{92334(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"cluster/intro","title":"BifroMQ Cluster Overview","description":"BifroMQ employs a decentralized clustering approach, where MQTT protocol workloads are distributed across independent sub-clusters, each dedicated to specific functions. This design is bu [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7452],{29564(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"cluster/intro","title":"BifroMQ Cluster Overview","description":"BifroMQ employs a decentralized clustering approach, where MQTT protocol workloads are distributed across independent sub-clusters, each dedicated to specific functions. This design is bu [...]
\ No newline at end of file
diff --git a/assets/js/94ce4ebc.2a579e49.js b/assets/js/94ce4ebc.2a579e49.js
new file mode 100644
index 00000000..304cb7f2
--- /dev/null
+++ b/assets/js/94ce4ebc.2a579e49.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5732],{19074(e,t,n){n.d(t,{A:()=>i});const i=n.p+"assets/images/newconn-5744d494a22ab7fd3231d5ae1435d296.jpg"},25808(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/quick_verify","title":"Quick Verify","description":"Below are the steps to quickly verify the basic MQTT functionality of BifroMQ using  [...]
\ No newline at end of file
diff --git a/assets/js/94ce4ebc.ab1f2808.js b/assets/js/94ce4ebc.ab1f2808.js
deleted file mode 100644
index d09a9128..00000000
--- a/assets/js/94ce4ebc.ab1f2808.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5732],{31338(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/quick_verify","title":"Quick Verify","description":"Below are the steps to quickly verify the basic MQTT functionality of BifroMQ using MQTTX.","source":"@site/versioned_docs/version-3.0.x/01_get_started/2_quick_verify.md","sourceDirName":" [...]
\ No newline at end of file
diff --git a/assets/js/9574.3bfde53b.js b/assets/js/9574.3bfde53b.js
deleted file mode 100644
index cdac5f56..00000000
--- a/assets/js/9574.3bfde53b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9574],{89574(t,e,a){a.d(e,{diagram:()=>Nt});var n=a(68208),i=a(69808),s=a(93316),r=a(37970),l=a(7012),o=a(34674),h=function(){var t=(0,r.K2)(function(t,e,a,n){for(a=a||{},n=t.length;n--;a[t[n]]=e);return a},"o"),e=[1,24],a=[1,25],n=[1,26],i=[1,27],s=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],p=[1,67],u=[1,68],y=[1,69],g=[1,29],f=[1,30],b=[1,31],x=[1,32],_=[1,33],m=[1,34],E=[1,35],S=[1,36],A=[1,37],C=[ [...]
\ No newline at end of file
diff --git a/assets/js/9574.ca104de7.js b/assets/js/9574.ca104de7.js
new file mode 100644
index 00000000..742f75f0
--- /dev/null
+++ b/assets/js/9574.ca104de7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9574],{68208(t,e,a){a.d(e,{CP:()=>d,Ck:()=>y,HT:()=>u,PB:()=>p,aC:()=>h,lC:()=>o,m:()=>c,tk:()=>l});var n=a(93316),i=a(37970),s=a(41407),r=a(3170),l=(0,i.K2)((t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),vo [...]
\ No newline at end of file
diff --git a/assets/js/95a0ca19.0efd6501.js b/assets/js/95a0ca19.0efd6501.js
new file mode 100644
index 00000000..48bd7923
--- /dev/null
+++ b/assets/js/95a0ca19.0efd6501.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3676],{42271(i,n,e){e.d(n,{R:()=>s,x:()=>a});var t=e(12888);const o={},r=t.createContext(o);function s(i){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof i?i(n):{...n,...i}},[n,i])}function a(i){let n;return n=i.disableParentContext?"function"==typeof i.components?i.components(o):i.components||o:s(i.components),t.createElement(r.Provider,{value:n},i.children)}},86939(i,n,e [...]
\ No newline at end of file
diff --git a/assets/js/95a0ca19.f24e9366.js b/assets/js/95a0ca19.f24e9366.js
deleted file mode 100644
index 238aa8e8..00000000
--- a/assets/js/95a0ca19.f24e9366.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3676],{64771(i,n,e){e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>f,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"configuration/configs_introduction","title":"Overview","description":"BifroMQ\'s system parameters can be configured through configuration file. This section will introduce explain their meanings.","source":"@site/versioned_docs/version-1.0.x/04_config [...]
\ No newline at end of file
diff --git a/assets/js/95b65fa9.2c200692.js b/assets/js/95b65fa9.8eced4a9.js
similarity index 93%
rename from assets/js/95b65fa9.2c200692.js
rename to assets/js/95b65fa9.8eced4a9.js
index ce3a1d04..2f5340ef 100644
--- a/assets/js/95b65fa9.2c200692.js
+++ b/assets/js/95b65fa9.8eced4a9.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6562],{65907(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"installation/docker","title":"Docker","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/02_installation/1_docker.md","sourceDirName":"02_installation","slug":"/installation/docker","permalink":"/docs/3.1.x/installation/docker", [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6562],{27093(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"installation/docker","title":"Docker","description":"Prerequisites","source":"@site/versioned_docs/version-3.1.x/02_installation/1_docker.md","sourceDirName":"02_installation","slug":"/installation/docker","permalink":"/docs/3.1.x/installation/docker", [...]
\ No newline at end of file
diff --git a/assets/js/96415e3b.2581b813.js b/assets/js/96415e3b.2581b813.js
deleted file mode 100644
index 0946ecc3..00000000
--- a/assets/js/96415e3b.2581b813.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3974],{15173(n,t,e){e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"installation/config_migration","title":"Configuration Convention & Migration","description":"Configurations may vary between different versions. When deploying BifroMQ, you can use previous configuration files, and it won\'t prevent BifroMQ from starti [...]
\ No newline at end of file
diff --git a/assets/js/96415e3b.d317fc9a.js b/assets/js/96415e3b.d317fc9a.js
new file mode 100644
index 00000000..2b9a8376
--- /dev/null
+++ b/assets/js/96415e3b.d317fc9a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3974],{42271(n,t,e){e.d(t,{R:()=>a,x:()=>s});var o=e(12888);const i={},r=o.createContext(i);function a(n){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof n?n(t):{...t,...n}},[t,n])}function s(n){let t;return t=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:a(n.components),o.createElement(r.Provider,{value:t},n.children)}},81340(n,t,e [...]
\ No newline at end of file
diff --git a/assets/js/97.cb7107da.js b/assets/js/97.cb7107da.js
deleted file mode 100644
index 4645e9bc..00000000
--- a/assets/js/97.cb7107da.js
+++ /dev/null
@@ -1 +0,0 @@
-(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[97],{20239(t,e,i){var r;r=function(t){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function( [...]
\ No newline at end of file
diff --git a/assets/js/97.fe1fd85e.js b/assets/js/97.fe1fd85e.js
new file mode 100644
index 00000000..04930779
--- /dev/null
+++ b/assets/js/97.fe1fd85e.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[97],{10097(t,e,i){"use strict";i.r(e),i.d(e,{render:()=>p});var r=i(37970),n=i(70638),o=i(50026),s=i(3170);function a(t,e){t.forEach(t=>{const i={id:t.id,labelText:t.label,height:t.height,width:t.width,padding:t.padding??0};Object.keys(t).forEach(e=>{["id","label","height","width","padding","x","y"].includes(e)||(i[e]=t[e])}),e.add({group:"nodes",data:i,position:{x:t.x??0,y:t.y??0}})})}function h(t,e){t.forEach(t= [...]
\ No newline at end of file
diff --git a/assets/js/970b1559.200f4090.js b/assets/js/970b1559.200f4090.js
deleted file mode 100644
index da1d9f6e..00000000
--- a/assets/js/970b1559.200f4090.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3501],{942(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin enhances BifroMQ by integrating authentication and authorization functionalities for MQTT clients and Pub/Sub operations. The plugin\'s interface is detailed in the fol [...]
\ No newline at end of file
diff --git a/assets/js/8f0b353b.ba75aa18.js b/assets/js/970b1559.6f19929b.js
similarity index 97%
rename from assets/js/8f0b353b.ba75aa18.js
rename to assets/js/970b1559.6f19929b.js
index e47d7ae0..2427f641 100644
--- a/assets/js/8f0b353b.ba75aa18.js
+++ b/assets/js/970b1559.6f19929b.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8380],{84245(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin enhances BifroMQ by integrating authentication and authorization functionalities for MQTT clients and Pub/Sub operations. The plugin\'s interface is detailed in the f [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3501],{39058(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"plugin/auth_provider","title":"Auth Provider","description":"The Auth Provider plugin enhances BifroMQ by integrating authentication and authorization functionalities for MQTT clients and Pub/Sub operations. The plugin\'s interface is detailed in the f [...]
\ No newline at end of file
diff --git a/assets/js/98560e78.0e822897.js b/assets/js/98560e78.0e822897.js
new file mode 100644
index 00000000..c525a5f2
--- /dev/null
+++ b/assets/js/98560e78.0e822897.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1821],{6875(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"admin_guide/overview","title":"Admin Guide Overview","description":"The administration of BifroMQ encompasses two levels: system-level management and tenant-level management. The former is mainly targeted at system administrators and operations personne [...]
\ No newline at end of file
diff --git a/assets/js/98560e78.3307b1e6.js b/assets/js/98560e78.3307b1e6.js
deleted file mode 100644
index c790f67b..00000000
--- a/assets/js/98560e78.3307b1e6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1821],{76815(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"admin_guide/overview","title":"Admin Guide Overview","description":"The administration of BifroMQ encompasses two levels: system-level management and tenant-level management. The former is mainly targeted at system administrators and operations personn [...]
\ No newline at end of file
diff --git a/assets/js/98b1a9b2.e17d5053.js b/assets/js/98b1a9b2.e17d5053.js
deleted file mode 100644
index 18ab498a..00000000
--- a/assets/js/98b1a9b2.e17d5053.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[729],{67881(e,s,i){i.r(s),i.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"admin_guide/configuration/bifromq_sys_props","title":"System Properties","description":"Before adjusting system properties in BifroMQ, it\'s necessary to have a thorough understanding of its internal mechanisms, as inappropriate modifications can lead t [...]
\ No newline at end of file
diff --git a/assets/js/98b1a9b2.f8d2e1dc.js b/assets/js/98b1a9b2.f8d2e1dc.js
new file mode 100644
index 00000000..707a0efc
--- /dev/null
+++ b/assets/js/98b1a9b2.f8d2e1dc.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[729],{42271(e,s,i){i.d(s,{R:()=>d,x:()=>o});var r=i(12888);const t={},n=r.createContext(t);function d(e){const s=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),r.createElement(n.Provider,{value:s},e.children)}},52527(e,s,i) [...]
\ No newline at end of file
diff --git a/assets/js/9953.19f56cbf.js b/assets/js/9953.19f56cbf.js
new file mode 100644
index 00000000..9cb42ae8
--- /dev/null
+++ b/assets/js/9953.19f56cbf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9953],{2186(e,t,r){r.d(t,{S:()=>o});var n=r(93228),i=class extends n.mR{static{(0,n.K2)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},a=class extends n.dg{static{(0,n.K2)(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){if("ARCH_ICON"===e.name)return t.replace(/[()]/g,"").trim();if("ARCH_TEXT_ICON"===e.name)return t.replace(/["()]/g,"");if("ARCH_TITLE"===e.name){ [...]
\ No newline at end of file
diff --git a/assets/js/9953.3ba7f46f.js b/assets/js/9953.3ba7f46f.js
deleted file mode 100644
index c7848f8a..00000000
--- a/assets/js/9953.3ba7f46f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9953],{2186(e,t,r){r.d(t,{S:()=>o});var n=r(93228),i=class extends n.mR{static{(0,n.K2)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},a=class extends n.dg{static{(0,n.K2)(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){if("ARCH_ICON"===e.name)return t.replace(/[()]/g,"").trim();if("ARCH_TEXT_ICON"===e.name)return t.replace(/["()]/g,"");if("ARCH_TITLE"===e.name){ [...]
\ No newline at end of file
diff --git a/assets/js/9ac6da4b.615675ac.js b/assets/js/9ac6da4b.968a85be.js
similarity index 96%
rename from assets/js/9ac6da4b.615675ac.js
rename to assets/js/9ac6da4b.968a85be.js
index 6586bd2c..d97a79bd 100644
--- a/assets/js/9ac6da4b.615675ac.js
+++ b/assets/js/9ac6da4b.968a85be.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1625],{30090(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"plugin/plugin","title":"Overview","description":"BifroMQ\'s plugin mechanism allows users to integrate custom business logic with BifroMQ at runtime. Currently, BifroMQ defines 3 types of Plugin interfaces, catering to different use cases:","source":"@ [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1625],{16375(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"plugin/plugin","title":"Overview","description":"BifroMQ\'s plugin mechanism allows users to integrate custom business logic with BifroMQ at runtime. Currently, BifroMQ defines 3 types of Plugin interfaces, catering to different use cases:","source":"@ [...]
\ No newline at end of file
diff --git a/assets/js/9b493251.3d57b685.js b/assets/js/9b493251.3d57b685.js
deleted file mode 100644
index c37530d5..00000000
--- a/assets/js/9b493251.3d57b685.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[714],{90797(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"user_guide/api/intro","title":"API Overview","description":"BifroMQ incorporates built-in API capabilities, allowing for operations such as disconnecting client connections, querying session status, publishing messages, and managing subscriptions. These [...]
\ No newline at end of file
diff --git a/assets/js/9b493251.c94bd64e.js b/assets/js/9b493251.c94bd64e.js
new file mode 100644
index 00000000..e0dcf8fe
--- /dev/null
+++ b/assets/js/9b493251.c94bd64e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[714],{2724(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"user_guide/api/intro","title":"API Overview","description":"BifroMQ incorporates built-in API capabilities, allowing for operations such as disconnecting client connections, querying session status, publishing messages, and managing subscriptions. These  [...]
\ No newline at end of file
diff --git a/assets/js/9b7d84bf.dc498459.js b/assets/js/9b7d84bf.1e03e1b2.js
similarity index 95%
rename from assets/js/9b7d84bf.dc498459.js
rename to assets/js/9b7d84bf.1e03e1b2.js
index 4b77e160..ce403e9a 100644
--- a/assets/js/9b7d84bf.dc498459.js
+++ b/assets/js/9b7d84bf.1e03e1b2.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3027],{50568(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"cluster/standardcluster","title":"Deploy StandardCluster","description":"Prerequisites","source":"@site/versioned_docs/version-3.3.x/04_cluster/1_standardcluster.md","sourceDirName":"04_cluster","slug":"/cluster/standardcluster","permalink":"/docs/3.3. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3027],{34376(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"cluster/standardcluster","title":"Deploy StandardCluster","description":"Prerequisites","source":"@site/versioned_docs/version-3.3.x/04_cluster/1_standardcluster.md","sourceDirName":"04_cluster","slug":"/cluster/standardcluster","permalink":"/docs/3.3. [...]
\ No newline at end of file
diff --git a/assets/js/9d099327.ca598239.js b/assets/js/9d099327.c231ef8a.js
similarity index 90%
rename from assets/js/9d099327.ca598239.js
rename to assets/js/9d099327.c231ef8a.js
index 6abeb912..64182963 100644
--- a/assets/js/9d099327.ca598239.js
+++ b/assets/js/9d099327.c231ef8a.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7808],{46907(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"intro/features_list","title":"Features List","description":"* Full support for MQTT 3.1, 3.1.1 (MQTT5 support coming soon) features over TCP, TLS, WS, WSS","source":"@site/versioned_docs/version-2.0.0/01_intro/features_list.md","sourceDirName":"01_intr [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7808],{28029(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"intro/features_list","title":"Features List","description":"* Full support for MQTT 3.1, 3.1.1 (MQTT5 support coming soon) features over TCP, TLS, WS, WSS","source":"@site/versioned_docs/version-2.0.0/01_intro/features_list.md","sourceDirName":"01_intr [...]
\ No newline at end of file
diff --git a/assets/js/9d599195.d4608c3a.js b/assets/js/9d599195.b528efd1.js
similarity index 88%
rename from assets/js/9d599195.d4608c3a.js
rename to assets/js/9d599195.b528efd1.js
index 7c8bb424..72712eda 100644
--- a/assets/js/9d599195.d4608c3a.js
+++ b/assets/js/9d599195.b528efd1.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3086],{56176(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"cluster/intro","title":"BifroMQ Cluster Overview","description":"BifroMQ employs a decentralized clustering approach, where MQTT protocol workloads are distributed across independent sub-clusters, each dedicated to specific functions. This design is bu [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3086],{11420(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"cluster/intro","title":"BifroMQ Cluster Overview","description":"BifroMQ employs a decentralized clustering approach, where MQTT protocol workloads are distributed across independent sub-clusters, each dedicated to specific functions. This design is bu [...]
\ No newline at end of file
diff --git a/assets/js/9e4087bc.2b1f785e.js b/assets/js/9e4087bc.2b1f785e.js
deleted file mode 100644
index a2b103b9..00000000
--- a/assets/js/9e4087bc.2b1f785e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2711],{38900(e,r,a){a.r(r),a.d(r,{default:()=>m});a(12888);var t=a(59374),n=a(61540),i=a(24962),s=a(48732),c=a(62482),l=a(41655),o=a(11684);function h({year:e,posts:r}){const a=(0,s.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:e,children:e}),(0,o.jsx)("ul",{children:r.map(e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(t.A,{to:e.metadat [...]
\ No newline at end of file
diff --git a/assets/js/9e4087bc.78483e84.js b/assets/js/9e4087bc.78483e84.js
new file mode 100644
index 00000000..c772f943
--- /dev/null
+++ b/assets/js/9e4087bc.78483e84.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2711],{194(e,r,a){a.d(r,{i:()=>n});var t=a(99461);function n(e={}){const{i18n:{currentLocale:r}}=(0,t.A)(),a=function(){const{i18n:{currentLocale:e,localeConfigs:r}}=(0,t.A)();return r[e].calendar}();return new Intl.DateTimeFormat(r,{calendar:a,...e})}},2656(e,r,a){a.r(r),a.d(r,{default:()=>m});a(12888);var t=a(81673),n=a(43978),i=a(29364),s=a(194),c=a(10459),l=a(69714),o=a(11684);function h({year:e,p [...]
\ No newline at end of file
diff --git a/assets/js/9ee7f0ab.befb2182.js b/assets/js/9ee7f0ab.befb2182.js
deleted file mode 100644
index 655c7f57..00000000
--- a/assets/js/9ee7f0ab.befb2182.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2178],{17589(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/linux","title":"Linux","description":"Prerequisites","source":"@site/versioned_docs/version-3.3.x/02_installation/2_linux.md","sourceDirName":"02_installation","slug":"/installation/linux","permalink":"/docs/3.3.x/installation/linux","draf [...]
\ No newline at end of file
diff --git a/assets/js/9ee7f0ab.f2adde4a.js b/assets/js/9ee7f0ab.f2adde4a.js
new file mode 100644
index 00000000..e91d5f2d
--- /dev/null
+++ b/assets/js/9ee7f0ab.f2adde4a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2178],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>l});var t=i(12888);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}},78545(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/a3a5772d.7d550a4f.js b/assets/js/a3a5772d.7d550a4f.js
deleted file mode 100644
index 8d8447f2..00000000
--- a/assets/js/a3a5772d.7d550a4f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7717],{79699(e,s,i){i.r(s),i.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"admin_guide/configuration/bifromq_sys_props","title":"System Properties","description":"Before adjusting system properties in BifroMQ, it\'s necessary to have a thorough understanding of its internal mechanisms, as inappropriate modifications can lead  [...]
\ No newline at end of file
diff --git a/assets/js/a3a5772d.ee187f0e.js b/assets/js/a3a5772d.ee187f0e.js
new file mode 100644
index 00000000..5d70f0b9
--- /dev/null
+++ b/assets/js/a3a5772d.ee187f0e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7717],{42271(e,s,i){i.d(s,{R:()=>d,x:()=>o});var r=i(12888);const t={},n=r.createContext(t);function d(e){const s=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),r.createElement(n.Provider,{value:s},e.children)}},79023(e,s,i [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.3f53bf67.js b/assets/js/a6aa9e1f.3f53bf67.js
new file mode 100644
index 00000000..008bfe89
--- /dev/null
+++ b/assets/js/a6aa9e1f.3f53bf67.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7643],{18108(e,t,a){a.d(t,{A:()=>c});a(12888);var s=a(13526),n=a(81673);const i="tag_S6PQ",r="tagRegular_fgsO",l="tagWithCount_TmWI";var o=a(11684);function c({permalink:e,label:t,count:a,description:c}){return(0,o.jsxs)(n.A,{rel:"tag",href:e,title:c,className:(0,s.A)(i,a?l:r),children:[t,a&&(0,o.jsx)("span",{children:a})]})}},26971(e,t,a){a.r(t),a.d(t,{default:()=>j});a(12888);var s=a(13526),n=a(9946 [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.8b75f1fa.js b/assets/js/a6aa9e1f.8b75f1fa.js
deleted file mode 100644
index 7aeb89dd..00000000
--- a/assets/js/a6aa9e1f.8b75f1fa.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7643],{27152(e,t,a){a.r(t),a.d(t,{default:()=>j});a(12888);var s=a(13526),n=a(11378),r=a(24962),i=a(40445),l=a(72626),o=a(96658),c=a(50710),d=a(79087),m=a(33988),g=a(88673),u=a(11684);function h(e){const t=(0,g.kJ)(e);return(0,u.jsx)(m.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function p(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,n.A)(),{blogDescri [...]
\ No newline at end of file
diff --git a/assets/js/a6eedc9e.d03c95e0.js b/assets/js/a6eedc9e.ada4ca84.js
similarity index 96%
rename from assets/js/a6eedc9e.d03c95e0.js
rename to assets/js/a6eedc9e.ada4ca84.js
index b8347f15..dc545193 100644
--- a/assets/js/a6eedc9e.d03c95e0.js
+++ b/assets/js/a6eedc9e.ada4ca84.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2837],{20323(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector Plugin is designed to gather various events generated during the execution of BifroMQ. By filtering through event types, you can focus on the events that matter to you [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2837],{17358(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector Plugin is designed to gather various events generated during the execution of BifroMQ. By filtering through event types, you can focus on the events that matter to you [...]
\ No newline at end of file
diff --git a/assets/js/a7023ec8.62917edf.js b/assets/js/a7023ec8.62917edf.js
new file mode 100644
index 00000000..7042716c
--- /dev/null
+++ b/assets/js/a7023ec8.62917edf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4636],{42271(e,s,i){i.d(s,{R:()=>d,x:()=>o});var r=i(12888);const t={},n=r.createContext(t);function d(e){const s=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),r.createElement(n.Provider,{value:s},e.children)}},62786(e,s,i [...]
\ No newline at end of file
diff --git a/assets/js/a7023ec8.fba978ca.js b/assets/js/a7023ec8.fba978ca.js
deleted file mode 100644
index 17f728d9..00000000
--- a/assets/js/a7023ec8.fba978ca.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4636],{61971(e,s,i){i.r(s),i.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"admin_guide/configuration/bifromq_sys_props","title":"System Properties","description":"Before adjusting system properties in BifroMQ, it\'s necessary to have a thorough understanding of its internal mechanisms, as inappropriate modifications can lead  [...]
\ No newline at end of file
diff --git a/assets/js/a7bd4aaa.fe44756a.js b/assets/js/a7bd4aaa.2dadbc32.js
similarity index 69%
rename from assets/js/a7bd4aaa.fe44756a.js
rename to assets/js/a7bd4aaa.2dadbc32.js
index ce8b2188..ae5cde06 100644
--- a/assets/js/a7bd4aaa.fe44756a.js
+++ b/assets/js/a7bd4aaa.2dadbc32.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7098],{48331(n,e,s){s.r(e),s.d(e,{default:()=>d});s(12888);var r=s(24962);function o(n,e){return`docs-${n}-${e}`}var i=s(63983),t=s(41711),c=s(50710),a=s(11684);function u(n){const{version:e}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{version:e.version,tag:o(e.pluginId,e.version)}),(0,a.jsx)(r.be,{children:e.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}funct [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7098],{35144(n,e,s){s.r(e),s.d(e,{default:()=>d});s(12888);var r=s(29364);function o(n,e){return`docs-${n}-${e}`}var i=s(81281),t=s(78849),c=s(27090),a=s(11684);function u(n){const{version:e}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{version:e.version,tag:o(e.pluginId,e.version)}),(0,a.jsx)(r.be,{children:e.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}funct [...]
\ No newline at end of file
diff --git a/assets/js/a8029a92.7062e665.js b/assets/js/a8029a92.7062e665.js
new file mode 100644
index 00000000..81511dbb
--- /dev/null
+++ b/assets/js/a8029a92.7062e665.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9409],{42271(e,i,t){t.d(i,{R:()=>o,x:()=>c});var n=t(12888);const s={},r=n.createContext(s);function o(e){const i=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:i},e.children)}},85642(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/a8029a92.818174ce.js b/assets/js/a8029a92.818174ce.js
deleted file mode 100644
index c69326fc..00000000
--- a/assets/js/a8029a92.818174ce.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9409],{1887(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"best_practices/topicfilter","title":"Topic Filters Design","description":"Topic Filters in MQTT are a mechanism used for subscribing to topics, allowing clients to receive messages from topics they are interested in. When selecting and designing Topic F [...]
\ No newline at end of file
diff --git a/assets/js/a82ee170.20f77027.js b/assets/js/a82ee170.20f77027.js
new file mode 100644
index 00000000..fade4564
--- /dev/null
+++ b/assets/js/a82ee170.20f77027.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7812],{33084(e,i,s){s.r(i),s.d(i,{assets:()=>h,contentTitle:()=>d,default:()=>T,frontMatter:()=>c,metadata:()=>n,toc:()=>p});const n=JSON.parse('{"type":"mdx","permalink":"/mqtt","source":"@site/src/pages/mqtt.mdx","title":"MQTT Protocol Guide | Apache BifroMQ","description":"Learn what MQTT is, how publish/subscribe messaging works, and how Apache BifroMQ implements MQTT for large-scale, multi-tenant [...]
\ No newline at end of file
diff --git a/assets/js/a82ee170.c77e7236.js b/assets/js/a82ee170.c77e7236.js
deleted file mode 100644
index 59d5f6b1..00000000
--- a/assets/js/a82ee170.c77e7236.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7812],{2733(e,i,s){s.r(i),s.d(i,{assets:()=>h,contentTitle:()=>d,default:()=>T,frontMatter:()=>c,metadata:()=>n,toc:()=>p});const n=JSON.parse('{"type":"mdx","permalink":"/mqtt","source":"@site/src/pages/mqtt.mdx","title":"MQTT Protocol Guide | Apache BifroMQ","description":"Learn what MQTT is, how publish/subscribe messaging works, and how Apache BifroMQ implements MQTT for large-scale, multi-tenant  [...]
\ No newline at end of file
diff --git a/assets/js/a8e0cd9d.41dd3a34.js b/assets/js/a8e0cd9d.41dd3a34.js
deleted file mode 100644
index e4283969..00000000
--- a/assets/js/a8e0cd9d.41dd3a34.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6321],{57100(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"admin_guide/configuration/configs_print","title":"Configuration Printing","description":"When BifroMQ starts, it prints the values of various configurations in the info logs. Printing configuration information helps you understand the specific settings [...]
\ No newline at end of file
diff --git a/assets/js/a8e0cd9d.bac87631.js b/assets/js/a8e0cd9d.bac87631.js
new file mode 100644
index 00000000..2893890b
--- /dev/null
+++ b/assets/js/a8e0cd9d.bac87631.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6321],{42271(e,n,t){t.d(n,{R:()=>a,x:()=>s});var i=t(12888);const r={},o=i.createContext(r);function a(e){const n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(o.Provider,{value:n},e.children)}},54496(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.7b0abee7.js b/assets/js/a94703ab.7b0abee7.js
new file mode 100644
index 00000000..66a4453b
--- /dev/null
+++ b/assets/js/a94703ab.7b0abee7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9048],{33532(e,t,n){n.r(t),n.d(t,{default:()=>Se});var a=n(12888),i=n(13526),s=n(29364),o=n(34607),r=n(48620),l=n(75793),c=n(43978),d=n(48984),u=n(48302);const m="backToTopButton_OX13",b="backToTopButtonShow_xSmS";var h=n(11684);function p(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:o}=(0,d.gk)();return(0,d.Mq)(({s [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.ab3c56b4.js b/assets/js/a94703ab.ab3c56b4.js
deleted file mode 100644
index c8c36e79..00000000
--- a/assets/js/a94703ab.ab3c56b4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9048],{36306(e,t,n){n.r(t),n.d(t,{default:()=>Ne});var a=n(12888),i=n(13526),s=n(24962),o=n(40445),l=n(60634),r=n(72391),c=n(61540),d=n(67382),u=n(86376);const m="backToTopButton_oxON",b="backToTopButtonShow_vyp9";var h=n(11684);function p(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:o}=(0,d.gk)();return(0,d.Mq)(({s [...]
\ No newline at end of file
diff --git a/assets/js/aa0502d1.d94a15ec.js b/assets/js/aa0502d1.d94a15ec.js
deleted file mode 100644
index ed277996..00000000
--- a/assets/js/aa0502d1.d94a15ec.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5439],{87853(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"plugin/plugin_practice","title":"Plugin Practice and Notice","description":"This article outlines some practices and considerations when developing BifroMQ plugins.","source":"@site/versioned_docs/version-3.3.x/06_plugin/5_plugin_practice.md","sourceDi [...]
\ No newline at end of file
diff --git a/assets/js/d2065ac6.b78d8eb1.js b/assets/js/aa0502d1.f5a8e677.js
similarity index 91%
rename from assets/js/d2065ac6.b78d8eb1.js
rename to assets/js/aa0502d1.f5a8e677.js
index 9eaaf08c..c7d0e66e 100644
--- a/assets/js/d2065ac6.b78d8eb1.js
+++ b/assets/js/aa0502d1.f5a8e677.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[174],{26784(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"plugin/plugin_practice","title":"Plugin Practice and Notice","description":"This article outlines some practices and considerations when developing BifroMQ plugins.","source":"@site/versioned_docs/version-3.2.x/06_plugin/5_plugin_practice.md","sourceDir [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5439],{9867(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"plugin/plugin_practice","title":"Plugin Practice and Notice","description":"This article outlines some practices and considerations when developing BifroMQ plugins.","source":"@site/versioned_docs/version-3.3.x/06_plugin/5_plugin_practice.md","sourceDir [...]
\ No newline at end of file
diff --git a/assets/js/aa4b0360.ae4b58b0.js b/assets/js/aa4b0360.ae4b58b0.js
deleted file mode 100644
index e55e861c..00000000
--- a/assets/js/aa4b0360.ae4b58b0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[114],{4463(e,n,i){i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"cluster/upgrade","title":"Upgrade","description":"BifroMQ supports multiple upgrade strategies to ensure smooth transitions between versions. This document provides a detailed guide on upgrading BifroMQ, including version compatibility, upgrade methods,  [...]
\ No newline at end of file
diff --git a/assets/js/aa4b0360.e079809b.js b/assets/js/aa4b0360.e079809b.js
new file mode 100644
index 00000000..6cc59026
--- /dev/null
+++ b/assets/js/aa4b0360.e079809b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[114],{20728(e,n,i){i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"cluster/upgrade","title":"Upgrade","description":"BifroMQ supports multiple upgrade strategies to ensure smooth transitions between versions. This document provides a detailed guide on upgrading BifroMQ, including version compatibility, upgrade methods, [...]
\ No newline at end of file
diff --git a/assets/js/ab663a41.4749130a.js b/assets/js/ab663a41.4749130a.js
deleted file mode 100644
index ab3d35fe..00000000
--- a/assets/js/ab663a41.4749130a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2547],{59965(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"plugin/event_collector","title":"Event Collector","description":"The Event Collector plugin is designed to capture a variety of events that occur during the running of BifroMQ. The interface for this plugin is defined in the following Maven module:","s [...]
\ No newline at end of file
diff --git a/assets/js/ab663a41.f33ffe7f.js b/assets/js/ab663a41.f33ffe7f.js
new file mode 100644
index 00000000..5f7a1bf4
--- /dev/null
+++ b/assets/js/ab663a41.f33ffe7f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2547],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>l});var o=n(12888);const i={},r=o.createContext(i);function s(e){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:t},e.children)}},77188(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/aba21aa0.57f9d597.js b/assets/js/aba21aa0.57f9d597.js
deleted file mode 100644
index d416ed4c..00000000
--- a/assets/js/aba21aa0.57f9d597.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5742],{27093(s){s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/aba21aa0.d201fad2.js b/assets/js/aba21aa0.d201fad2.js
new file mode 100644
index 00000000..c557a08b
--- /dev/null
+++ b/assets/js/aba21aa0.d201fad2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5742],{49474(s){s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/addcf824.f36968c4.js b/assets/js/addcf824.9cf1908c.js
similarity index 91%
rename from assets/js/addcf824.f36968c4.js
rename to assets/js/addcf824.9cf1908c.js
index df41967e..814c2559 100644
--- a/assets/js/addcf824.f36968c4.js
+++ b/assets/js/addcf824.9cf1908c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4284],{31489(t,e,o){o.r(e),o.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"mqtt/mqtt","title":"MQTT Specification","description":"View the full text of the MQTT 3.1.1 or MQTT 3.1.1 (Recommend) Specification here, which is full supported in BifroMQ.","source":"@site/versioned_docs/version-1.0.x/21_mqtt/1_mqtt.md","sourceDirNam [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4284],{40640(t,e,o){o.r(e),o.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"mqtt/mqtt","title":"MQTT Specification","description":"View the full text of the MQTT 3.1.1 or MQTT 3.1.1 (Recommend) Specification here, which is full supported in BifroMQ.","source":"@site/versioned_docs/version-1.0.x/21_mqtt/1_mqtt.md","sourceDirNam [...]
\ No newline at end of file
diff --git a/assets/js/ade2eb63.777eb51b.js b/assets/js/ade2eb63.d16e97c1.js
similarity index 97%
rename from assets/js/ade2eb63.777eb51b.js
rename to assets/js/ade2eb63.d16e97c1.js
index b4225e44..f9949916 100644
--- a/assets/js/ade2eb63.777eb51b.js
+++ b/assets/js/ade2eb63.d16e97c1.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1053],{89377(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"plugin/setting_provider/intro","title":"Setting Provider","description":"BifroMQ defines a category of Tenant-level Settings that can be modified at runtime, allowing for dynamic adjustment of BifroMQ\'s service behavior per tenant. The purpose of the  [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1053],{32750(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"plugin/setting_provider/intro","title":"Setting Provider","description":"BifroMQ defines a category of Tenant-level Settings that can be modified at runtime, allowing for dynamic adjustment of BifroMQ\'s service behavior per tenant. The purpose of the  [...]
\ No newline at end of file
diff --git a/assets/js/af62464c.a13caf8d.js b/assets/js/af62464c.a13caf8d.js
deleted file mode 100644
index 23e2fcd4..00000000
--- a/assets/js/af62464c.a13caf8d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8319],{17139(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"installation/config_migration_between_versions","title":"Configuration Convention & Migration","description":"Configurations may vary between different versions. When deploying BifroMQ, you can use previous configuration files, and it won\'t prevent Bi [...]
\ No newline at end of file
diff --git a/assets/js/af62464c.a9605e91.js b/assets/js/af62464c.a9605e91.js
new file mode 100644
index 00000000..20e3b394
--- /dev/null
+++ b/assets/js/af62464c.a9605e91.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8319],{42271(e,n,t){t.d(n,{R:()=>s,x:()=>a});var o=t(12888);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}},99063(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/afac7829.4917e86c.js b/assets/js/afac7829.4917e86c.js
new file mode 100644
index 00000000..05810e33
--- /dev/null
+++ b/assets/js/afac7829.4917e86c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[20],{1467(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"plugin/intro","title":"Plugin Overview","description":"The plugin mechanism is a primary way for BifroMQ to deeply integrate with business systems. Currently, BifroMQ exposes four types of plugin extension interfaces to cater to different usage scenarios: [...]
\ No newline at end of file
diff --git a/assets/js/afac7829.b008981a.js b/assets/js/afac7829.b008981a.js
deleted file mode 100644
index 0ebf259d..00000000
--- a/assets/js/afac7829.b008981a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[20],{34308(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"plugin/intro","title":"Plugin Overview","description":"The plugin mechanism is a primary way for BifroMQ to deeply integrate with business systems. Currently, BifroMQ exposes four types of plugin extension interfaces to cater to different usage scenarios [...]
\ No newline at end of file
diff --git a/assets/js/b0bb2cbb.0d244b35.js b/assets/js/b0bb2cbb.0d244b35.js
new file mode 100644
index 00000000..7ee491af
--- /dev/null
+++ b/assets/js/b0bb2cbb.0d244b35.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4216],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>o});var t=i(12888);const s={},a=t.createContext(s);function r(e){const n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(a.Provider,{value:n},e.children)}},70718(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/b0e63d89.6ddbb2e2.js b/assets/js/b0e63d89.6ddbb2e2.js
new file mode 100644
index 00000000..6a2ca255
--- /dev/null
+++ b/assets/js/b0e63d89.6ddbb2e2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1420],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>a});var i=n(12888);const r={},o=i.createContext(r);function s(e){const t=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(o.Provider,{value:t},e.children)}},75212(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/b0e63d89.7f1edfc5.js b/assets/js/b0e63d89.7f1edfc5.js
deleted file mode 100644
index 8379b720..00000000
--- a/assets/js/b0e63d89.7f1edfc5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1420],{86357(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"user_guide/integration/integration","title":"Integration SDK","description":"The Integration SDK serves as a reference starting point for building customized data integration solutions. Given that the volume of messages forwarded between services can e [...]
\ No newline at end of file
diff --git a/assets/js/b12f4718.522d1836.js b/assets/js/b12f4718.522d1836.js
new file mode 100644
index 00000000..db59123b
--- /dev/null
+++ b/assets/js/b12f4718.522d1836.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[676],{42271(n,t,e){e.d(t,{R:()=>a,x:()=>s});var o=e(12888);const i={},r=o.createContext(i);function a(n){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof n?n(t):{...t,...n}},[t,n])}function s(n){let t;return t=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:a(n.components),o.createElement(r.Provider,{value:t},n.children)}},92240(n,t,e) [...]
\ No newline at end of file
diff --git a/assets/js/b653693e.f9af5b19.js b/assets/js/b653693e.eb612844.js
similarity index 96%
rename from assets/js/b653693e.f9af5b19.js
rename to assets/js/b653693e.eb612844.js
index cc8509bb..f173ffd6 100644
--- a/assets/js/b653693e.f9af5b19.js
+++ b/assets/js/b653693e.eb612844.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8956],{79715(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"best_practices/mqtt_parameters","title":"MQTT Parameter Selection","description":"MQTT is a lightweight messaging protocol that is extensively used in various fields such as the Internet of Things (IoT), sensor networks, and mobile applications. When e [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8956],{12988(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"best_practices/mqtt_parameters","title":"MQTT Parameter Selection","description":"MQTT is a lightweight messaging protocol that is extensively used in various fields such as the Internet of Things (IoT), sensor networks, and mobile applications. When e [...]
\ No newline at end of file
diff --git a/assets/js/b6a42cc6.29c24bb8.js b/assets/js/b6a42cc6.a46e3d2d.js
similarity index 96%
rename from assets/js/b6a42cc6.29c24bb8.js
rename to assets/js/b6a42cc6.a46e3d2d.js
index 22d20225..bbb28b17 100644
--- a/assets/js/b6a42cc6.29c24bb8.js
+++ b/assets/js/b6a42cc6.a46e3d2d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5414],{45463(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"mqtt_best_practices/mqtt_parameters","title":"MQTT Parameter Selection","description":"MQTT is a lightweight messaging protocol that is extensively used in various fields such as the Internet of Things (IoT), sensor networks, and mobile applications. W [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5414],{14546(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"mqtt_best_practices/mqtt_parameters","title":"MQTT Parameter Selection","description":"MQTT is a lightweight messaging protocol that is extensively used in various fields such as the Internet of Things (IoT), sensor networks, and mobile applications. W [...]
\ No newline at end of file
diff --git a/assets/js/b6f14700.a4379301.js b/assets/js/b6f14700.a4379301.js
deleted file mode 100644
index ee34b99e..00000000
--- a/assets/js/b6f14700.a4379301.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7239],{90491(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"plugin/plugin_practice","title":"Plugin Practice and Notice","description":"This article outlines some practices and considerations when developing BifroMQ plugins.","source":"@site/versioned_docs/version-3.1.x/06_plugin/5_plugin_practice.md","sourceDi [...]
\ No newline at end of file
diff --git a/assets/js/b6f14700.d8c2e34a.js b/assets/js/b6f14700.d8c2e34a.js
new file mode 100644
index 00000000..d54fe483
--- /dev/null
+++ b/assets/js/b6f14700.d8c2e34a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7239],{42271(e,n,i){i.d(n,{R:()=>s,x:()=>a});var r=i(12888);const t={},o=r.createContext(t);function s(e){const n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),r.createElement(o.Provider,{value:n},e.children)}},89855(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/b9d80cf6.c0cc8dac.js b/assets/js/b9d80cf6.c0cc8dac.js
new file mode 100644
index 00000000..577c762e
--- /dev/null
+++ b/assets/js/b9d80cf6.c0cc8dac.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8395],{42271(e,i,t){t.d(i,{R:()=>o,x:()=>a});var s=t(12888);const n={},r=s.createContext(n);function o(e){const i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(r.Provider,{value:i},e.children)}},62348(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/b9f0e04f.a74de69c.js b/assets/js/b9f0e04f.5c1267e3.js
similarity index 93%
rename from assets/js/b9f0e04f.a74de69c.js
rename to assets/js/b9f0e04f.5c1267e3.js
index b9193a4b..c0779068 100644
--- a/assets/js/b9f0e04f.a74de69c.js
+++ b/assets/js/b9f0e04f.5c1267e3.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[351],{49907(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"admin_guide/configuration/intro","title":"Configuration Overview","description":"Based on different usage scenarios, BifroMQ divides configurations into system-level and tenant-level. System-level configurations are set at the system\'s startup and cann [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[351],{38893(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"admin_guide/configuration/intro","title":"Configuration Overview","description":"Based on different usage scenarios, BifroMQ divides configurations into system-level and tenant-level. System-level configurations are set at the system\'s startup and cann [...]
\ No newline at end of file
diff --git a/assets/js/ba9659bc.23422fae.js b/assets/js/ba9659bc.23422fae.js
deleted file mode 100644
index 1e2d9583..00000000
--- a/assets/js/ba9659bc.23422fae.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4370],{7448(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"admin_guide/observability/metrics/intro","title":"Metrics","description":"BifroMQ adopts Micrometer as its framework for metrics collection, analogous to its use of SLF4J and Logback for logging purposes. Micrometer acts as the \\"SLF4J for metrics\\" w [...]
\ No newline at end of file
diff --git a/assets/js/ba9659bc.5c492e40.js b/assets/js/ba9659bc.5c492e40.js
new file mode 100644
index 00000000..8221131b
--- /dev/null
+++ b/assets/js/ba9659bc.5c492e40.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[4370],{42271(e,i,t){t.d(i,{R:()=>s,x:()=>a});var n=t(12888);const r={},o=n.createContext(r);function s(e){const i=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(o.Provider,{value:i},e.children)}},77189(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/509497b3.41dc57cd.js b/assets/js/bab62e71.0fae22c1.js
similarity index 86%
rename from assets/js/509497b3.41dc57cd.js
rename to assets/js/bab62e71.0fae22c1.js
index dc0ebcb3..7c010e14 100644
--- a/assets/js/509497b3.41dc57cd.js
+++ b/assets/js/bab62e71.0fae22c1.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5818],{81589(e,o,i){i.r(o),i.d(o,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"deploy/deploy_with_docker","title":"Deploy on Docker","description":"Prerequisites","source":"@site/versioned_docs/version-2.1.x/03_deploy/1_deploy_with_docker.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_with_docker","permalink":"/docs/2.1.x [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9727],{39678(e,o,i){i.r(o),i.d(o,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"deploy/deploy_with_docker","title":"Deploy on Docker","description":"Prerequisites","source":"@site/versioned_docs/version-2.0.0/03_deploy/1_deploy_with_docker.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_with_docker","permalink":"/docs/2.0.0 [...]
\ No newline at end of file
diff --git a/assets/js/bab62e71.78883821.js b/assets/js/bab62e71.78883821.js
deleted file mode 100644
index 185ec181..00000000
--- a/assets/js/bab62e71.78883821.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9727],{4231(e,o,i){i.r(o),i.d(o,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"deploy/deploy_with_docker","title":"Deploy on Docker","description":"Prerequisites","source":"@site/versioned_docs/version-2.0.0/03_deploy/1_deploy_with_docker.md","sourceDirName":"03_deploy","slug":"/deploy/deploy_with_docker","permalink":"/docs/2.0.0/ [...]
\ No newline at end of file
diff --git a/assets/js/bd1120a7.680b9760.js b/assets/js/bd1120a7.680b9760.js
deleted file mode 100644
index fe2683d4..00000000
--- a/assets/js/bd1120a7.680b9760.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8773],{76976(t,e,o){o.r(e),o.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"mqtt/mqtt","title":"MQTT Specification","description":"View the full text of the MQTT 3.1.1 or MQTT 3.1.1 (Recommend) Specification here, which is full supported in BifroMQ.","source":"@site/versioned_docs/version-2.1.x/21_mqtt/1_mqtt.md","sourceDirNam [...]
\ No newline at end of file
diff --git a/assets/js/bd1120a7.b5fad565.js b/assets/js/bd1120a7.b5fad565.js
new file mode 100644
index 00000000..a8d6c6b5
--- /dev/null
+++ b/assets/js/bd1120a7.b5fad565.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8773],{42271(t,e,o){o.d(e,{R:()=>n,x:()=>c});var i=o(12888);const s={},r=i.createContext(s);function n(t){const e=i.useContext(r);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:n(t.components),i.createElement(r.Provider,{value:e},t.children)}},44904(t,e,o [...]
\ No newline at end of file
diff --git a/assets/js/bd2e2d5f.4794ba55.js b/assets/js/bd2e2d5f.4794ba55.js
new file mode 100644
index 00000000..6e785361
--- /dev/null
+++ b/assets/js/bd2e2d5f.4794ba55.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2709],{42271(e,t,n){n.d(t,{R:()=>r,x:()=>c});var i=n(12888);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}},49749(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/bd2e2d5f.a9804e39.js b/assets/js/bd2e2d5f.a9804e39.js
deleted file mode 100644
index 1c97042f..00000000
--- a/assets/js/bd2e2d5f.a9804e39.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2709],{77397(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/connect_to","title":"Connect to BifroMQ","description":"Simple Connection Verification using an MQTT Client","source":"@site/versioned_docs/version-1.0.x/02_get_started/2_connect_to.md","sourceDirName":"02_get_started","slug":"/get_started/ [...]
\ No newline at end of file
diff --git a/assets/js/bd8f7e8d.39943ce5.js b/assets/js/bd8f7e8d.eee7d62d.js
similarity index 95%
rename from assets/js/bd8f7e8d.39943ce5.js
rename to assets/js/bd8f7e8d.eee7d62d.js
index d91bde66..2e3a2a8c 100644
--- a/assets/js/bd8f7e8d.39943ce5.js
+++ b/assets/js/bd8f7e8d.eee7d62d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8095],{95003(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/basic/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions are a feature of the MQTT protocol that enables multiple subscribers to receive messages from the same topic in a fair manner.","source":"@site/version [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[8095],{19494(e,s,r){r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/basic/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions are a feature of the MQTT protocol that enables multiple subscribers to receive messages from the same topic in a fair manner.","source":"@site/version [...]
\ No newline at end of file
diff --git a/assets/js/beb5731e.81d3a996.js b/assets/js/beb5731e.81d3a996.js
new file mode 100644
index 00000000..27dc9b7f
--- /dev/null
+++ b/assets/js/beb5731e.81d3a996.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6307],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>o});var t=i(12888);const s={},c=t.createContext(s);function r(e){const n=t.useContext(c);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(c.Provider,{value:n},e.children)}},63767(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/beb5731e.a4726770.js b/assets/js/beb5731e.a4726770.js
deleted file mode 100644
index 98f49af5..00000000
--- a/assets/js/beb5731e.a4726770.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6307],{77108(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"admin_guide/tuning/os_tuning_linux","title":"Linux Kernel Tuning","description":"The following Kernel parameters can affect the maximum number of connections that the machine hosting BifroMQ can accept.","source":"@site/versioned_docs/version-3.2.x/07_ [...]
\ No newline at end of file
diff --git a/assets/js/bec8ceef.717a3164.js b/assets/js/bec8ceef.717a3164.js
new file mode 100644
index 00000000..b2af1375
--- /dev/null
+++ b/assets/js/bec8ceef.717a3164.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[344],{8520(e,t,n){n.d(t,{A:()=>i});const i=n.p+"assets/images/publish-15956d94297e1bfbac726fba2d5db831.jpg"},9978(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/quick_verify","title":"Quick Verify","description":"Below are the steps to quickly verify the basic MQTT functionality of BifroMQ using MQT [...]
\ No newline at end of file
diff --git a/assets/js/bec8ceef.cad3d5f5.js b/assets/js/bec8ceef.cad3d5f5.js
deleted file mode 100644
index eb7c9912..00000000
--- a/assets/js/bec8ceef.cad3d5f5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[344],{40629(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"get_started/quick_verify","title":"Quick Verify","description":"Below are the steps to quickly verify the basic MQTT functionality of BifroMQ using MQTTX.","source":"@site/versioned_docs/version-3.3.x/01_get_started/2_quick_verify.md","sourceDirName":"0 [...]
\ No newline at end of file
diff --git a/assets/js/bed8a7d2.998218f1.js b/assets/js/bed8a7d2.998218f1.js
new file mode 100644
index 00000000..aa16ece1
--- /dev/null
+++ b/assets/js/bed8a7d2.998218f1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2894],{42271(e,i,s){s.d(i,{R:()=>r,x:()=>a});var t=s(12888);const n={},o=t.createContext(n);function r(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),t.createElement(o.Provider,{value:i},e.children)}},64950(e,i,s [...]
\ No newline at end of file
diff --git a/assets/js/bed8a7d2.c4a2976b.js b/assets/js/bed8a7d2.c4a2976b.js
deleted file mode 100644
index 09bd52f6..00000000
--- a/assets/js/bed8a7d2.c4a2976b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2894],{70215(e,i,s){s.r(i),s.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/basic/intro","title":"MQTT Basic Features Highlights","description":"BifroMQ provides extensive MQTT protocol support for IoT applications and services, demonstrated through compatibility with different protocol versions, customized configur [...]
\ No newline at end of file
diff --git a/assets/js/c0d7bed2.9a4a2582.js b/assets/js/c0d7bed2.38c31566.js
similarity index 95%
rename from assets/js/c0d7bed2.9a4a2582.js
rename to assets/js/c0d7bed2.38c31566.js
index e0dfe68d..b664f1c8 100644
--- a/assets/js/c0d7bed2.9a4a2582.js
+++ b/assets/js/c0d7bed2.38c31566.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9520],{23919(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"installation/intro","title":"Installation Overview","description":"Prerequisites","source":"@site/docs/installation/intro.md","sourceDirName":"installation","slug":"/installation/intro","permalink":"/docs/installation/intro","draft":false,"unlisted":fa [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[9520],{39523(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"installation/intro","title":"Installation Overview","description":"Prerequisites","source":"@site/docs/installation/intro.md","sourceDirName":"installation","slug":"/installation/intro","permalink":"/docs/installation/intro","draft":false,"unlisted":fa [...]
\ No newline at end of file
diff --git a/assets/js/c0f48e5d.b9c60353.js b/assets/js/c0f48e5d.b9c60353.js
deleted file mode 100644
index 13f7afac..00000000
--- a/assets/js/c0f48e5d.b9c60353.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1278],{49470(e,t,s){s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"mqtt_best_practices/about_mqtt","title":"About MQTT","description":"Why use MQTT protocol for IoT? What are the advantages compared to HTTP protocol?","source":"@site/versioned_docs/version-3.0.x/98_mqtt_best_practices/2_about_mqtt.md","sourceDirName": [...]
\ No newline at end of file
diff --git a/assets/js/c0f48e5d.e5192118.js b/assets/js/c0f48e5d.e5192118.js
new file mode 100644
index 00000000..5ef9bf36
--- /dev/null
+++ b/assets/js/c0f48e5d.e5192118.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[1278],{42271(e,t,s){s.d(t,{R:()=>r,x:()=>a});var n=s(12888);const o={},i=n.createContext(o);function r(e){const t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},61580(e,t,s [...]
\ No newline at end of file
diff --git a/assets/js/c1812f81.d716ac2a.js b/assets/js/c1812f81.5e73d8f3.js
similarity index 96%
rename from assets/js/c1812f81.d716ac2a.js
rename to assets/js/c1812f81.5e73d8f3.js
index 129e05b5..4fd14eb1 100644
--- a/assets/js/c1812f81.d716ac2a.js
+++ b/assets/js/c1812f81.5e73d8f3.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3851],{15025(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"admin_guide/configuration/configs_print","title":"Configuration Printing","description":"When BifroMQ starts, it prints the values of various configurations in the info logs. Printing configuration information helps you understand the specific settings [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3851],{42166(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"admin_guide/configuration/configs_print","title":"Configuration Printing","description":"When BifroMQ starts, it prints the values of various configurations in the info logs. Printing configuration information helps you understand the specific settings [...]
\ No newline at end of file
diff --git a/assets/js/c2cbec99.7cafa11a.js b/assets/js/c2cbec99.7cafa11a.js
deleted file mode 100644
index ead4714a..00000000
--- a/assets/js/c2cbec99.7cafa11a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6813],{56154(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"spi/intro","title":"SPI Overview","description":"Service Provider Interfaces (SPIs) are extension points that let you customize BifroMQ\u2019s own runtime behavior. They share the same process and execution context as BifroMQ, and are intended for shap [...]
\ No newline at end of file
diff --git a/assets/js/c2cbec99.f9e0d170.js b/assets/js/c2cbec99.f9e0d170.js
new file mode 100644
index 00000000..01afa4c0
--- /dev/null
+++ b/assets/js/c2cbec99.f9e0d170.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6813],{42271(e,i,n){n.d(i,{R:()=>o,x:()=>a});var s=n(12888);const t={},r=s.createContext(t);function o(e){const i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:i},e.children)}},44196(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/c4412136.9aa99d37.js b/assets/js/c4412136.29d9a8cf.js
similarity index 89%
rename from assets/js/c4412136.9aa99d37.js
rename to assets/js/c4412136.29d9a8cf.js
index d2c35618..c5e0528c 100644
--- a/assets/js/c4412136.9aa99d37.js
+++ b/assets/js/c4412136.29d9a8cf.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3047],{71087(t,e,n){n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"get_started/quick_install","title":"Quick Install","description":"For a rapid setup, Docker is recommended.","source":"@site/versioned_docs/version-3.2.x/01_get_started/1_quick_install.md","sourceDirName":"01_get_started","slug":"/get_started/quick_ins [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3047],{39173(t,e,n){n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"get_started/quick_install","title":"Quick Install","description":"For a rapid setup, Docker is recommended.","source":"@site/versioned_docs/version-3.2.x/01_get_started/1_quick_install.md","sourceDirName":"01_get_started","slug":"/get_started/quick_ins [...]
\ No newline at end of file
diff --git a/assets/js/c481b752.5b1f2ad7.js b/assets/js/c481b752.5b1f2ad7.js
new file mode 100644
index 00000000..9b719a32
--- /dev/null
+++ b/assets/js/c481b752.5b1f2ad7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5755],{42271(e,i,s){s.d(i,{R:()=>r,x:()=>a});var t=s(12888);const n={},o=t.createContext(n);function r(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),t.createElement(o.Provider,{value:i},e.children)}},90020(e,i,s [...]
\ No newline at end of file
diff --git a/assets/js/c481b752.b6dd8316.js b/assets/js/c481b752.b6dd8316.js
deleted file mode 100644
index 2644f83c..00000000
--- a/assets/js/c481b752.b6dd8316.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5755],{76810(e,i,s){s.r(i),s.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"user_guide/basic/intro","title":"MQTT Basic Features Highlights","description":"BifroMQ provides extensive MQTT protocol support for IoT applications and services, demonstrated through compatibility with different protocol versions, customized configur [...]
\ No newline at end of file
diff --git a/assets/js/c68bc8f4.71fab21b.js b/assets/js/c68bc8f4.71fab21b.js
new file mode 100644
index 00000000..8ca89eec
--- /dev/null
+++ b/assets/js/c68bc8f4.71fab21b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5345],{42271(i,n,e){e.d(n,{R:()=>s,x:()=>a});var t=e(12888);const o={},r=t.createContext(o);function s(i){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof i?i(n):{...n,...i}},[n,i])}function a(i){let n;return n=i.disableParentContext?"function"==typeof i.components?i.components(o):i.components||o:s(i.components),t.createElement(r.Provider,{value:n},i.children)}},71659(i,n,e [...]
\ No newline at end of file
diff --git a/assets/js/c68bc8f4.824dad8d.js b/assets/js/c68bc8f4.824dad8d.js
deleted file mode 100644
index 33a1dc81..00000000
--- a/assets/js/c68bc8f4.824dad8d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5345],{61966(i,n,e){e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>f,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"configuration/configs_introduction","title":"Overview","description":"BifroMQ\'s system parameters can be configured through configuration file. This section will introduce explain their meanings.","source":"@site/versioned_docs/version-2.0.0/04_config [...]
\ No newline at end of file
diff --git a/assets/js/c82d1dd1.597c166e.js b/assets/js/c82d1dd1.597c166e.js
deleted file mode 100644
index 0bc35436..00000000
--- a/assets/js/c82d1dd1.597c166e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3170],{39042(e,i,n){n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>g});const o=JSON.parse('{"id":"admin_guide/observability/logging","title":"Logging","description":"BifroMQ utilizes the standard SLF4J interface for logging purposes and selects Logback as its logging backend. The logs are organized into five distinct levels: TRACE, DEBUG, INFO, WAR [...]
\ No newline at end of file
diff --git a/assets/js/c82d1dd1.d110ffff.js b/assets/js/c82d1dd1.d110ffff.js
new file mode 100644
index 00000000..b5ede638
--- /dev/null
+++ b/assets/js/c82d1dd1.d110ffff.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3170],{42271(e,i,n){n.d(i,{R:()=>l,x:()=>r});var o=n(12888);const t={},s=o.createContext(t);function l(e){const i=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),o.createElement(s.Provider,{value:i},e.children)}},57733(e,i,n [...]
\ No newline at end of file
diff --git a/assets/js/c8d5b3a1.01d65f6e.js b/assets/js/c8d5b3a1.8f9a1b6c.js
similarity index 94%
rename from assets/js/c8d5b3a1.01d65f6e.js
rename to assets/js/c8d5b3a1.8f9a1b6c.js
index a53970ff..b4bf075b 100644
--- a/assets/js/c8d5b3a1.01d65f6e.js
+++ b/assets/js/c8d5b3a1.8f9a1b6c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3068],{60649(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"user_guide/integration/integration","title":"Integration SDK","description":"The Integration SDK serves as a reference starting point for building customized data integration solutions. Given that the volume of messages forwarded between services can e [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3068],{40147(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"user_guide/integration/integration","title":"Integration SDK","description":"The Integration SDK serves as a reference starting point for building customized data integration solutions. Given that the volume of messages forwarded between services can e [...]
\ No newline at end of file
diff --git a/assets/js/c9859f9e.42ea92e3.js b/assets/js/c9859f9e.42ea92e3.js
new file mode 100644
index 00000000..8442fad8
--- /dev/null
+++ b/assets/js/c9859f9e.42ea92e3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3505],{42271(e,r,s){s.d(r,{R:()=>o,x:()=>a});var i=s(12888);const t={},n=i.createContext(t);function o(e){const r=i.useContext(n);return i.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(n.Provider,{value:r},e.children)}},98481(e,r,s [...]
\ No newline at end of file
diff --git a/assets/js/c9859f9e.e220b844.js b/assets/js/c9859f9e.e220b844.js
deleted file mode 100644
index a1b87112..00000000
--- a/assets/js/c9859f9e.e220b844.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[3505],{69154(e,r,s){s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"user_guide/basic/shared_sub","title":"Shared Subscriptions","description":"MQTT Shared Subscriptions are a feature of the MQTT protocol that enables multiple subscribers to receive messages from the same topic in a fair manner.","source":"@site/docs/us [...]
\ No newline at end of file
diff --git a/assets/js/ca27bb41.737f05c0.js b/assets/js/ca27bb41.737f05c0.js
deleted file mode 100644
index 6ef6d413..00000000
--- a/assets/js/ca27bb41.737f05c0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6639],{95017(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"user_guide/basic/connect","title":"Connect to BifroMQ","description":"BifroMQ is a standard MQTT messaging middleware, which allows you to connect using any client that supports MQTT version 3.1, 3.1.1 or 5.0.","source":"@site/docs/user_guide/basic/con [...]
\ No newline at end of file
diff --git a/assets/js/ca27bb41.891eee56.js b/assets/js/ca27bb41.891eee56.js
new file mode 100644
index 00000000..e194c3c6
--- /dev/null
+++ b/assets/js/ca27bb41.891eee56.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[6639],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>a});var i=n(12888);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}},55308(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/cae65f21.1427da5c.js b/assets/js/cae65f21.1427da5c.js
new file mode 100644
index 00000000..e984633c
--- /dev/null
+++ b/assets/js/cae65f21.1427da5c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2108],{42271(e,t,n){n.d(t,{R:()=>s,x:()=>a});var i=n(12888);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}},50492(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/cae65f21.d85f8236.js b/assets/js/cae65f21.d85f8236.js
deleted file mode 100644
index 3cd82210..00000000
--- a/assets/js/cae65f21.d85f8236.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[2108],{71169(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"operations/tls","title":"TLS","description":"Introduction","source":"@site/versioned_docs/version-2.0.0/07_operations/1_tls.md","sourceDirName":"07_operations","slug":"/operations/tls","permalink":"/docs/2.0.0/operations/tls","draft":false,"unlisted":f [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.3849a144.js b/assets/js/ccc49370.3849a144.js
deleted file mode 100644
index 5e87a0ea..00000000
--- a/assets/js/ccc49370.3849a144.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5630],{3279(e,t,n){n.d(t,{A:()=>U});n(12888);var a=n(13526),s=n(88673),i=n(11684);function r({children:e,className:t}){return(0,i.jsx)("article",{className:t,children:e})}var l=n(59374);const o="title_yUCz";function c({className:e}){const{metadata:t,isBlogPostPage:n}=(0,s.e7)(),{permalink:r,title:c}=t,d=n?"h1":"h2";return(0,i.jsx)(d,{className:(0,a.A)(o,e),children:n?c:(0,i.jsx)(l.A,{to:r,children:c}) [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.f8bb331d.js b/assets/js/ccc49370.f8bb331d.js
new file mode 100644
index 00000000..32f9ee7d
--- /dev/null
+++ b/assets/js/ccc49370.f8bb331d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[5630],{18108(e,t,n){n.d(t,{A:()=>c});n(12888);var a=n(13526),s=n(81673);const i="tag_S6PQ",r="tagRegular_fgsO",l="tagWithCount_TmWI";var o=n(11684);function c({permalink:e,label:t,count:n,description:c}){return(0,o.jsxs)(s.A,{rel:"tag",href:e,title:c,className:(0,a.A)(i,n?l:r),children:[t,n&&(0,o.jsx)("span",{children:n})]})}},24524(e,t,n){n.d(t,{A:()=>x});var a=n(12888),s=n(63278);function i(e){const [...]
\ No newline at end of file
diff --git a/assets/js/ce8b3878.4afd44fd.js b/assets/js/ce8b3878.4afd44fd.js
new file mode 100644
index 00000000..f21301e4
--- /dev/null
+++ b/assets/js/ce8b3878.4afd44fd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7097],{42271(n,e,i){i.d(e,{R:()=>o,x:()=>a});var t=i(12888);const s={},r=t.createContext(s);function o(n){const e=t.useContext(r);return t.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:o(n.components),t.createElement(r.Provider,{value:e},n.children)}},74167(n,e,i [...]
\ No newline at end of file
diff --git a/assets/js/ce8b3878.d2a7c504.js b/assets/js/ce8b3878.d2a7c504.js
deleted file mode 100644
index 11e12117..00000000
--- a/assets/js/ce8b3878.d2a7c504.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7097],{27791(n,e,i){i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"admin_guide/tuning/intro","title":"Tuning Overview","description":"Performance tuning in BifroMQ requires starting with adjustments in the running environment and specific optimizations for the workload.","source":"@site/versioned_docs/version-3.1.x/07 [...]
\ No newline at end of file
diff --git a/assets/js/cf65ad0c.6e601151.js b/assets/js/cf65ad0c.6e601151.js
new file mode 100644
index 00000000..86acdb98
--- /dev/null
+++ b/assets/js/cf65ad0c.6e601151.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7295],{42271(e,n,i){i.d(n,{R:()=>r,x:()=>a});var t=i(12888);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}},50069(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/cf65ad0c.88eb3ee8.js b/assets/js/cf65ad0c.88eb3ee8.js
deleted file mode 100644
index 77086c3a..00000000
--- a/assets/js/cf65ad0c.88eb3ee8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkbifromq=globalThis.webpackChunkbifromq||[]).push([[7295],{13843(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"installation/nodes_on_k8s","title":"Notes on Kubernetes Deployment","description":"Deploying BifroMQ on Kubernetes requires careful consideration of its stateful service characteristics and understanding of Kubernetes-specific cluster operations and ma [...]
\ No newline at end of file
diff --git a/assets/js/cf957108.447598e2.js b/assets/js/cf957108.e979a556.js
similarity index 95%
rename from assets/js/cf957108.447598e2.js
rename to assets/js/cf957108.e979a556.js
... 32188 lines suppressed ...