Skip to content

Commit f1179d1

Browse files
committed
refactor(tbmq): drop MQTT Broker section from installations page
Remove the TBMQ product tab from /installations/ along with everything that only existed to serve it: - the `mqtt-broker` product entry in installations.ts (hero, buttons, features, deploy groups) and the now-unused `mqttBroker()` image helper and `@models/tbmq` import - productTabs: replace the ternary chain (whose fallback was the TBMQ label) with a TAB_LABELS map over the five remaining products - orphaned assets: landings/mqtt-broker/tbmq-try-{1,2}.png and installation/helm.svg, whose last reference was the TBMQ deploy cards No redirect needed: nothing links to /installations/?product=mqtt-broker, and InnerNavigation falls back to the first tab for an unknown ?product=.
1 parent caf56ab commit f1179d1

4 files changed

Lines changed: 9 additions & 178 deletions

File tree

src/assets/images/installation/helm.svg

Lines changed: 0 additions & 11 deletions
This file was deleted.
-225 KB
Binary file not shown.
-83.9 KB
Binary file not shown.

src/data/installations.ts

Lines changed: 9 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { TBMQ_DOCS_URL, TBMQ_SITE_URL, tbmqDocsUrl } from '@models/tbmq';
21

32
export interface HeroButton {
43
id: string;
@@ -53,7 +52,6 @@ export interface ProductData {
5352

5453
const install = (name: string) => `/src/assets/images/installation/${name}`;
5554
const installations = (name: string) => `/src/assets/images/installations/${name}`;
56-
const mqttBroker = (name: string) => `/src/assets/images/landings/mqtt-broker/${name}`;
5755
const trendz = (name: string) => `/src/assets/images/landings/trendz/${name}`;
5856

5957
// ---------------------------------------------------------------------------
@@ -608,174 +606,18 @@ export const products: ProductData[] = [
608606
},
609607
],
610608
},
611-
612-
// ── MQTT Broker ───────────────────────────────────────────────────────────
613-
{
614-
id: 'mqtt-broker',
615-
title: 'MQTT Broker',
616-
description:
617-
`<b>TBMQ</b> is a highly scalable and durable <a href="${TBMQ_SITE_URL}" target="_blank" rel="noopener noreferrer">MQTT message broker</a> built for real-time data processing across IoT ecosystems of any scale. It efficiently handles millions of concurrent client connections and processes millions of messages per second while maintaining low latency and reliable delivery. Designed for horizontal scalability, TBMQ seamlessly expands across cluster nodes to support massive deployments with millions of connected devices. <a href="${TBMQ_DOCS_URL}" target="_blank" rel="noopener noreferrer">Read more<span class="sr-only"> about TBMQ MQTT Broker</span></a>.`,
618-
buttons: [
619-
{
620-
id: 'TryItNow_TBMQ_Demo',
621-
label: 'Live Demo',
622-
href: 'https://demo.tbmq.io/signup',
623-
target: '_blank',
624-
},
625-
{
626-
id: 'TryItNow_TBMQ_Install_CE',
627-
label: 'Download CE',
628-
href: tbmqDocsUrl('installation/'),
629-
target: '_blank',
630-
secondary: true,
631-
},
632-
{
633-
id: 'TryItNow_TBMQ_Install_PE',
634-
label: 'Start PE Trial',
635-
href: tbmqDocsUrl('pe/installation/'),
636-
target: '_blank',
637-
secondary: true,
638-
},
639-
],
640-
heroImages: [
641-
{
642-
src: mqttBroker('tbmq-try-2.png'),
643-
alt: 'ThingsBoard MQTT Broker Home Page',
644-
position: 'bg',
645-
},
646-
{
647-
src: mqttBroker('tbmq-try-1.png'),
648-
alt: 'ThingsBoard MQTT Broker Sessions Page',
649-
position: 'main',
650-
},
651-
],
652-
features: [
653-
[
654-
{
655-
title: 'Unlimited Horizontal Scaling',
656-
href: tbmqDocsUrl('reference/100m-connections-performance-test/'),
657-
target: '_blank',
658-
description: 'Scale horizontally to manage more than 100M MQTT connections on a single cluster',
659-
},
660-
{
661-
title: 'Million-Message Throughput',
662-
href: tbmqDocsUrl('reference/3m-throughput-single-node-performance-test/'),
663-
target: '_blank',
664-
description:
665-
'Process millions of messages per second with 1 TBMQ server and single-digit latency',
666-
},
667-
{
668-
title: 'Masterless High Availability',
669-
href: tbmqDocsUrl('architecture/'),
670-
target: '_blank',
671-
description: 'Prevent single point of failure with masterless nodes in the cluster',
672-
},
673-
],
674-
[
675-
{
676-
title: 'Universal MQTT Support',
677-
href: tbmqDocsUrl('getting-started/'),
678-
target: '_blank',
679-
description: 'MQTT 3.x and 5.0 compatible for a seamless and secure connection experience',
680-
},
681-
{
682-
title: 'Zero Data Loss Guarantee',
683-
href: tbmqDocsUrl('architecture/'),
684-
target: '_blank',
685-
description:
686-
'Guarantee the persistence and replication of your data to ensure it\'s never lost',
687-
},
688-
{
689-
title: 'K8s & Cloud Agnostic',
690-
href: tbmqDocsUrl('installation/'),
691-
target: '_blank',
692-
description: 'Deploy in cloud or on-premises using K8s scripts with ease',
693-
},
694-
],
695-
],
696-
deployGroups: [
697-
{
698-
type: 'premise',
699-
cards: [
700-
{
701-
logo: install('docker-linux-mac.svg'),
702-
logoAlt: 'Docker (Linux or Mac OS)',
703-
title: 'Docker (Linux or Mac OS)',
704-
href: tbmqDocsUrl('installation/docker/'),
705-
target: '_blank',
706-
},
707-
{
708-
logo: install('docker-windows.svg'),
709-
logoAlt: 'Docker (Windows)',
710-
title: 'Docker (Windows)',
711-
href: tbmqDocsUrl('installation/docker-windows/'),
712-
target: '_blank',
713-
},
714-
{
715-
logo: install('docker-compose.svg'),
716-
logoAlt: 'Cluster setup with Docker Compose',
717-
title: 'Cluster with Docker Compose',
718-
href: tbmqDocsUrl('installation/cluster/docker-compose-setup/'),
719-
target: '_blank',
720-
},
721-
{
722-
logo: install('minikube.svg'),
723-
logoAlt: 'Cluster setup with Minikube',
724-
title: 'Cluster setup with Minikube',
725-
href: tbmqDocsUrl('installation/cluster/minikube-cluster-setup/'),
726-
target: '_blank',
727-
},
728-
],
729-
},
730-
{
731-
type: 'cloud',
732-
cards: [
733-
{
734-
logo: install('eks.svg'),
735-
logoAlt: 'Cluster setup on EKS',
736-
title: 'Cluster setup on EKS',
737-
href: tbmqDocsUrl('installation/cluster/aws-cluster-setup/'),
738-
target: '_blank',
739-
},
740-
{
741-
logo: install('azure.svg'),
742-
logoAlt: 'Cluster setup on AKS',
743-
title: 'Cluster setup on AKS',
744-
href: tbmqDocsUrl('installation/cluster/azure-cluster-setup/'),
745-
target: '_blank',
746-
},
747-
{
748-
logo: install('gcp.svg'),
749-
logoAlt: 'Cluster setup on GCP',
750-
title: 'Cluster setup on GCP',
751-
href: tbmqDocsUrl('installation/cluster/gcp-cluster-setup/'),
752-
target: '_blank',
753-
},
754-
{
755-
logo: install('helm.svg'),
756-
logoAlt: 'Cluster setup using Helm',
757-
title: 'Cluster setup using Helm',
758-
href: tbmqDocsUrl('installation/?installationType=helm'),
759-
target: '_blank',
760-
},
761-
],
762-
},
763-
],
764-
},
765609
];
766610

611+
const TAB_LABELS: Record<string, string> = {
612+
'thingsboard-cloud': 'Cloud',
613+
'thingsboard-ce': 'Community Edition',
614+
'thingsboard-pe': 'Professional Edition',
615+
'thingsboard-edge': 'Edge',
616+
'thingsboard-trendz': 'Trendz',
617+
};
618+
767619
export const productTabs = products.map((p, i) => ({
768620
id: p.id,
769-
label: p.id === 'thingsboard-ce'
770-
? 'Community Edition'
771-
: p.id === 'thingsboard-pe'
772-
? 'Professional Edition'
773-
: p.id === 'thingsboard-cloud'
774-
? 'Cloud'
775-
: p.id === 'thingsboard-edge'
776-
? 'Edge'
777-
: p.id === 'thingsboard-trendz'
778-
? 'Trendz'
779-
: 'TBMQ',
621+
label: TAB_LABELS[p.id] ?? p.title,
780622
active: i === 0,
781623
}));

0 commit comments

Comments
 (0)