From aabbf3fa1f026df4fa4e615c1f3e9f4bfd897f0c Mon Sep 17 00:00:00 2001 From: Vlad Boisa <60569670+vladboisa@users.noreply.github.com> Date: Sat, 26 Oct 2024 16:24:12 +0000 Subject: [PATCH 01/83] fix: remove 404 link Remove 404 link, and swap for 'Appears on publication' content Fixes #5885 Signed-off-by: GitHub --- .../service-mesh-patterns/index.mdx | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx index e67e23191878..0a53fbd6f505 100644 --- a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx +++ b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx @@ -20,22 +20,13 @@ import service_mesh_pattern_book from "./service-mesh-patterns.webp";
- - -
 
-

From ebd308f129ed67485bcb2ac2b825b69aa4f32354 Mon Sep 17 00:00:00 2001 From: Vlad Boisa <60569670+vladboisa@users.noreply.github.com> Date: Sat, 26 Oct 2024 16:30:42 +0000 Subject: [PATCH 02/83] refactor: remove unused import Remove unused import Button Signed-off-by: GitHub --- .../service-mesh-books/service-mesh-patterns/index.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx index 0a53fbd6f505..be5bd80374f7 100644 --- a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx +++ b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx @@ -14,7 +14,6 @@ redirect_from: import { BookWrapper } from "../Book.style.js"; import Table from "../../../components/service-mesh-patterns-Table/Table.js"; import { Link } from "gatsby"; -import Button from "../../../reusecore/Button"; import service_mesh_pattern_book from "./service-mesh-patterns.webp"; From d06507f683bd0b7eb84019b9773daff1e6c066c6 Mon Sep 17 00:00:00 2001 From: Vrushabh Date: Sun, 3 Nov 2024 21:00:40 +0530 Subject: [PATCH 03/83] made row to flex-wrap Signed-off-by: Vrushabh --- src/sections/Careers/Career-single/CareerSingle.style.js | 4 ++++ src/sections/Careers/Career-single/index.js | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sections/Careers/Career-single/CareerSingle.style.js b/src/sections/Careers/Career-single/CareerSingle.style.js index 974038ab538f..29a4a996548c 100644 --- a/src/sections/Careers/Career-single/CareerSingle.style.js +++ b/src/sections/Careers/Career-single/CareerSingle.style.js @@ -46,6 +46,10 @@ const CareerPageWrapper = styled.div` } } + .job-details-row { + flex-wrap: wrap; + } + .layer5-logo { width: 15rem; margin: auto; diff --git a/src/sections/Careers/Career-single/index.js b/src/sections/Careers/Career-single/index.js index a44d059797fb..3eb6ad643ad3 100644 --- a/src/sections/Careers/Career-single/index.js +++ b/src/sections/Careers/Career-single/index.js @@ -20,7 +20,7 @@ const CareerSingle = ({ data }) => { - +
Start Date

{frontmatter.start_date}

From ac42648e501bfc6bdac9525be92c1da30985e0f4 Mon Sep 17 00:00:00 2001 From: Vidit Kushwaha Date: Mon, 9 Dec 2024 11:55:47 +0000 Subject: [PATCH 04/83] Updated contributing.md for sistent documentation Signed-off-by: Vidit Kushwaha --- CONTRIBUTING.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f6b43c067294..2510c3f47851 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,6 +5,7 @@ We are beyond excited to see that you want to contribute! We would love to accep - [Before You Get Started](#before-you-get-started) - [Contributing to Layer5 Projects](#contributing-to-layer5-projects) - [Contributing to Layer5's Blogs](#contributing-to-layer5s-blogs) +- [Contributing to Layer5's Sistent documentation](#contributing-to-layer5s-sistent-documentation) - [How to Contribute](#how-to-contribute) - [Prerequisites](#prerequisites) - [Set up your Local Development Environment](#set-up-your-local-development-environment) @@ -129,6 +130,21 @@ If you'd like to contribute a post to layer5.io/blog, please open an Issue and s 3. Follow the instructions included in the news template and name the new file after the title of the news article. 4. Entries will be listed in chronological order automatically. +## Contributing to Layer5's Sistent documentation + +If you'd like to contribute a post to layer5.io/projects/sistent/components. start by selecting the area/sistent label in the [#GitHub issue tracker](https://github.com/layer5io/layer5/labels/project%2Fsistent). We've streamlined the process by introducing a dynamic page creation workflow, simplifying the addition of new pages and ensuring a consistent structure for all contributions. + +### Adding Sistent Component +1. All content is managed in a centralized file: + ``` + src/sections/Projects/Sistent/components/content.js + ``` +2. To add a new page, simply update this `content.js` file with the necessary details. +3. The system will dynamically generate pages based on this content and handle routing automatically. + +### Example +Refer to the **Button component** in the Sistent Library for an example of how to structure the content. + # Common Types of Site Contributions The following list of instructions pertains to commonplace site updates by contributors. From 72f26fdc0f23faf9294a2a9126d7c719a7ba24a2 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Mon, 9 Dec 2024 14:39:11 -0600 Subject: [PATCH 05/83] Update src/collections/service-mesh-books/service-mesh-patterns/index.mdx Signed-off-by: Lee Calcote --- .../service-mesh-books/service-mesh-patterns/index.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx index be5bd80374f7..306cc41ebae8 100644 --- a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx +++ b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx @@ -25,7 +25,6 @@ import service_mesh_pattern_book from "./service-mesh-patterns.webp"; src={service_mesh_pattern_book} align="center" /> -

Appears on publication

From 3530ba20f3c626263db1f51e5049e02d25a66afb Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Mon, 9 Dec 2024 16:41:23 -0600 Subject: [PATCH 06/83] Enhance feature data processing and update JSON structure for pricing page Signed-off-by: Lee Calcote --- .github/build/features-to-json.js | 10 +- Makefile | 2 +- src/sections/Pricing/feature_data.json | 129 ++++++++++++++----------- 3 files changed, 82 insertions(+), 59 deletions(-) diff --git a/.github/build/features-to-json.js b/.github/build/features-to-json.js index fe0c0aa7cc85..b9940d709d4f 100755 --- a/.github/build/features-to-json.js +++ b/.github/build/features-to-json.js @@ -3,7 +3,7 @@ const fs = require("fs").promises; // Use fs.promises const csv = require("csvtojson"); const [major, minor, patch] = process.versions.node.split(".").map(Number); -console.log(`Node.js version: ${major}.${minor}.${patch}`); +console.log(`Using Node.js version: ${major}.${minor}.${patch}`); const headers = [ "Theme", @@ -25,6 +25,9 @@ const headers = [ async function processCSV() { try { const csvFilePath = process.argv[2] || ".github/build/spreadsheet.csv"; + if (process.argv[2]) { + console.log("Downloading features to: " + process.argv[2]); + } const rows = await csv({ noheader: true, headers: headers, @@ -69,8 +72,11 @@ async function processCSV() { // Read existing JSON data // const featuresFile = process.env.FEATURES_FILE; - console.log("process.argv[3]: " + process.argv[3]); + const featuresFile = process.argv[3] || "src/sections/Pricing/feature_data.json"; + if (process.argv[3]) { + console.log("Converting CSV to JSON in: " + process.argv[3]); + } // const featuresFile = "src/sections/Pricing/feature_data.json"; diff --git a/Makefile b/Makefile index eb38918808a7..3a5aa5fecf05 100644 --- a/Makefile +++ b/Makefile @@ -43,8 +43,8 @@ lint: ## Prepare a list of features for the pricing page. features: - #`which nvm` use 18 curl -L https://docs.google.com/spreadsheets/d/e/2PACX-1vQwzrUSKfuSRcpkp7sJTw1cSB63s4HCjYLJeGPWECsvqn222hjaaONQlN4X8auKvlaB0es3BqV5rQyz/pub\?gid\=1153419764\&single\=true\&output\=csv -o .github/build/spreadsheet.csv node .github/build/features-to-json.js .github/build/spreadsheet.csv src/sections/Pricing/feature_data.json + rm .github/build/spreadsheet.csv .PHONY: setup build site clean site-fast lint features diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 8dbe43728165..b50b7aa38759 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -477,7 +477,7 @@ }, { "theme": "", - "categoryOrder": "4", + "categoryOrder": "0", "category": "Configuration Management", "functionOrder": "2", "function": "350 Built-in Models", @@ -492,6 +492,74 @@ "pricing_page": "x", "docs": "" }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "3", + "function": "400 Cloud Native Patterns", + "feature": "", + "subscription_tier": "", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "https://cloud.layer5.io/catalog" + }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "1", + "function": "Whiteboarding", + "feature": "Ability to freeform draw any shapes, draw edges", + "subscription_tier": "Free", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" + }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "1", + "function": "Visual Design", + "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", + "subscription_tier": "Free", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "2", + "function": "Collaborative Design Review", + "feature": "Kanvas’s Designer enables you to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", + "subscription_tier": "TeamDesigner", + "comparison_tiers": { + "free": "", + "teamDesigner": "x", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "https://docs.layer5.io/kanvas/designer/comments/" + }, { "theme": "", "categoryOrder": "5", @@ -730,57 +798,6 @@ "pricing_page": "x", "docs": "" }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "1", - "function": "Whiteboarding", - "feature": "Ability to freeform draw any shapes, draw edges", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" - }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "1", - "function": "Visual Design", - "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "2", - "function": "Collaborative Design Review", - "feature": "Kanvas’s Designer enables you to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/comments/" - }, { "theme": "", "categoryOrder": "0", @@ -1055,7 +1072,7 @@ }, { "theme": "", - "categoryOrder": "", + "categoryOrder": "1", "category": "Catalog", "functionOrder": "", "function": "Export Design", @@ -1072,7 +1089,7 @@ }, { "theme": "", - "categoryOrder": "", + "categoryOrder": "1", "category": "Catalog", "functionOrder": "", "function": "Export Design", @@ -1089,7 +1106,7 @@ }, { "theme": "", - "categoryOrder": "", + "categoryOrder": "1", "category": "Catalog", "functionOrder": "", "function": "Export Design", @@ -1106,7 +1123,7 @@ }, { "theme": "", - "categoryOrder": "", + "categoryOrder": "1", "category": "Catalog", "functionOrder": "", "function": "Export Design", From 19fcf0ee3c273889f77a9f9164154ed3b7ddc8b3 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Mon, 9 Dec 2024 16:44:12 -0600 Subject: [PATCH 07/83] Remove unused theme style files from blog, classic, hosting, and modern themes Signed-off-by: Lee Calcote --- src/theme/blog/themeStyles.js | 50 -------------------------------- src/theme/classic/themeStyles.js | 19 ------------ src/theme/hosting/themeStyles.js | 20 ------------- src/theme/modern/themeStyles.js | 19 ------------ 4 files changed, 108 deletions(-) delete mode 100644 src/theme/blog/themeStyles.js delete mode 100644 src/theme/classic/themeStyles.js delete mode 100644 src/theme/hosting/themeStyles.js delete mode 100644 src/theme/modern/themeStyles.js diff --git a/src/theme/blog/themeStyles.js b/src/theme/blog/themeStyles.js deleted file mode 100644 index b420abb322c8..000000000000 --- a/src/theme/blog/themeStyles.js +++ /dev/null @@ -1,50 +0,0 @@ -const theme = { - black: "#000000", - white: "#ffffff", - - // charcoal - primaryColor: "#3c494f", - - // silver chalice (light gray) - primaryLightColor: "#b3b3b3", - - // keppel (dark green) - primaryLightColorTwo: "#00d3a9", - keppelColor: "#00d3a9", - - // caribbean green (light green) - secondaryColor: "#00b39f", - caribbeanGreenColor: "#00d3a9", - secondaryLightColorTwo: "#F3FFFD", - - // lavender blush (light pink) - secondaryLightColor: "#FFEBEC", - - // dark jungle green - tertiaryColor: "#1e2117", - - headingColor: "#111111", - - // light slate gray (medium gray) - textColor: "#000000", - shadowColor: "rgba(0, 0, 0, 0.05)", - - // platinum (light gray) - shadowLightColor: "#E6E6E6", - - // charcoal - menuColor: "#3c494f", - - // caribbean green (light green) - menuHoverColor: "#00b39f", - linkColor: "#111111", - - // saffron (dark yellow) - highlightColor: "#EBC017", - - // flax (light yellow) - highlightLightColor: "#EAD07D", - saffronLightColor: "#EAD07D", -}; -export default theme; - diff --git a/src/theme/classic/themeStyles.js b/src/theme/classic/themeStyles.js deleted file mode 100644 index ad2eb14d059e..000000000000 --- a/src/theme/classic/themeStyles.js +++ /dev/null @@ -1,19 +0,0 @@ - - -const theme = { - black: "#000000", - white: "#ffffff", - primaryColor: "#52DE97", - primaryLightColor: "#e0f5ea", - primaryLightColorTwo: "#f8f5fd", - secondaryColor: "#00B39F", - secondaryLightColor: "#FFEBEC", - shadowColor: "rgba(0, 0, 0, 0.15)", - headingColor: "#3c494f", - textColor: "#7A848E", - shadowLightColor: "#E6E6E6", - menuHoverColor: "#00B39F" -}; - -export default theme; - diff --git a/src/theme/hosting/themeStyles.js b/src/theme/hosting/themeStyles.js deleted file mode 100644 index bbc33e7979e6..000000000000 --- a/src/theme/hosting/themeStyles.js +++ /dev/null @@ -1,20 +0,0 @@ - - -const theme = { - black: "#000000", - white: "#ffffff", - primaryColor: "#A29BFE", - primaryLightColor: "#EDEBFC", - primaryLightColorTwo: "#EDEBFC", - secondaryColor: "#00B39F", - secondaryLightColor: "#FFEBEC", - shadowColor: "rgba(0, 0, 0, 0.15)", - headingColor: "#3c494f", - textColor: "#7A848E", - shadowLightColor: "#E6E6E6", - tetriaryColor: "#00B39F", - menuHoverColor: "#00B39F" -}; - -export default theme; - diff --git a/src/theme/modern/themeStyles.js b/src/theme/modern/themeStyles.js deleted file mode 100644 index e1dc487022a5..000000000000 --- a/src/theme/modern/themeStyles.js +++ /dev/null @@ -1,19 +0,0 @@ -const theme = { - black: "#000000", - white: "#ffffff", - primaryColor: "#8A57DE", - primaryLightColor: "#EEE6FA", - primaryLightColorTwo: "#f8f5fd", - secondaryColor: "#00B39F", - secondaryLightColor: "#FFEBEC", - tetriaryColor: "#E281CE", - headingColor: "#3c494f", - textColor: "#7A848E", - shadowColor: "rgba(138, 87, 222, 0.15)", - shadowLightColor: "#E6E6E6", - menuColor: "#ffffff", - menuHoverColor: "#00B39F" -}; -export default theme; - - From 19d25a9825a747e750ee747cb7bb34205af07703 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Mon, 9 Dec 2024 18:14:45 -0600 Subject: [PATCH 08/83] Refactor Kanvas banner styles for improved layout and responsiveness Signed-off-by: Lee Calcote --- src/sections/Kanvas/kanvas_banner.js | 148 +++++++++++++-------------- 1 file changed, 73 insertions(+), 75 deletions(-) diff --git a/src/sections/Kanvas/kanvas_banner.js b/src/sections/Kanvas/kanvas_banner.js index dc43b3f1c906..c0355ae86048 100644 --- a/src/sections/Kanvas/kanvas_banner.js +++ b/src/sections/Kanvas/kanvas_banner.js @@ -4,18 +4,21 @@ import KanvasIcon from "./kanvas-icon.svg"; const BannerSectionWrapper = styled.div` - display: flex; - background: #000000; - border-radius: 0% 85% 0% 0% / 0% 80% 0% 0% ; - -webkit-box-shadow: 5px -5px 15px 5px rgba(0,0,0,0.33); - box-shadow: 1px -5px 5px 1px rgba(235,192,23,.5); - - padding: 8rem 6rem 3rem 6rem; - max-width: 1140px; - width: 100%; - margin: auto; - min-height: 25rem; - + display: flex; + flex-wrap: nowrap; + background: #000000; + border-radius: 0% 85% 0% 0% / 0% 80% 0% 0% ; + -webkit-box-shadow: 5px -5px 15px 5px rgba(0,0,0,0.33); + box-shadow: 1px -5px 5px 1px rgba(235,192,23,.5); + gap: 5rem; + padding: 6rem 6rem 6rem 6rem; + max-width: 1140px; + width: 100%; + margin: auto; + min-height: 25rem; + align-content: end; + + div.banner-text { h1 { /* background-color: ${props => props.theme.black}; */ font-weight: 500; @@ -35,7 +38,7 @@ const BannerSectionWrapper = styled.div` } @media screen and (max-width: 448px) { font-size: 38px; - span{ + span { font-size: 48px; } } @@ -44,62 +47,58 @@ const BannerSectionWrapper = styled.div` margin: 1.5rem 0; } } - h2 { - margin-bottom: 1rem; - font-size: 1.95rem; - font-weight: 400; - color: ${props => props.theme.white}; - font-style: italic; - span { + h2 { + margin-bottom: 1rem; + font-size: 1.95rem; + font-weight: 400; + color: ${props => props.theme.white}; + font-style: italic; + span { + font-style: normal; + } + } + h2.readyPlayer { + margin: 2rem 0rem 0rem 0rem; + background-color: black; + position: absolute; + z-index: 1; + padding: 1.5rem; + color: white; font-style: normal; + text-transform: uppercase ; + font-size: 2.5rem; + text-align: center; } - } - h2.readyPlayer { - margin: 2rem 0rem 0rem 0rem; - background-color: black; - position: absolute; - z-index: 1; - padding: 1.5rem; - color: white; - font-style: normal; - text-transform: uppercase ; - font-size: 2.5rem; - text-align: center; - } - - } - .banner-text p { - color: ${props => props.theme.saffronColor}; - margin-bottom: .5rem; - font-weight: 400; - font-size: 1.75rem; - font-style: italic; - min-width: 18rem; - font-family: "Qanelas Soft"; - span { + p { color: ${props => props.theme.saffronColor}; + margin-bottom: .5rem; + font-weight: 400; + font-size: 1.75rem; + font-style: italic; + min-width: 18rem; + font-family: "Qanelas Soft"; + span { + color: ${props => props.theme.saffronColor}; + } } - } - h4 { - text-transform: uppercase; - padding-left: 1rem; - font-style: italic; - font-size: 1.25rem; - color: ${props => props.theme.white}; - span { + h4 { + text-transform: uppercase; padding-left: 1rem; + font-style: italic; + font-size: 1.25rem; + color: ${props => props.theme.white}; + span { + padding-left: 1rem; + } } } - .kanvas-logo { width: 14rem; overflow: hidden; - margin-top: -7rem; - position: relative; - left: 30%; - z-index: 0; - - } + display: flex; + align-self: center; + flex-wrap: nowrap; + } div.accent-bubble { width: 50%; height: 100%; @@ -118,8 +117,6 @@ const BannerSectionWrapper = styled.div` @media screen and (max-width: 1700px) { .kanvas-logo { width: 12rem; - /* right: 12rem; */ - /* margin-top: -5rem; */ } .para { margin-top: -3rem; @@ -127,38 +124,39 @@ const BannerSectionWrapper = styled.div` } @media screen and (max-width: 1200px) { .kanvas-logo { - left: 20%; width: 10rem; - /* right: 8rem; */ - margin-top: -5rem; } - /* border-radius: 0% 85% 0% 0% / 0% 60% 0% 0% ; */ + border-radius: 0% 85% 0% 0% / 0% 60% 0% 0% ; } @media screen and (max-width: 992px) { .kanvas-logo { width: 8rem; - margin-top: -2rem; - left: 15%; } + .banner-text { + margin-left: 0rem; + margin-bottom: 0rem; + h1 { font-size: 50px; } + h2 { font-size: 1.25rem; } + h4 { font-size: 1rem; } + p { font-size: 1.25rem; } + } + gap: 2.5rem; + min-height: 12rem; + padding: 6rem 2rem 2rem 2rem; border-radius: 0% 85% 0% 0% / 0% 60% 0% 0% ; } @media screen and (max-width: 768px) { padding: 8rem 2rem 3rem; .kanvas-logo { - margin-top: -5rem; - margin-right: 2rem; - left: 7%; - min-width: 5rem; + min-width: 6rem; } border-radius: 0% 85% 0% 0% / 0% 40% 0% 0% ; } @media screen and (max-width: 500px) { .kanvas-logo { - margin-top: -5rem; - margin-right: 2rem; - left: 0%; - min-width: 3rem; + + /* min-width: 3rem; */ } border-radius: 0% 85% 0% 0% / 0% 40% 0% 0% ; } From 3167eb3d5434c8d6eef3aaed92f56362c8dd4a34 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Tue, 10 Dec 2024 10:36:50 -0600 Subject: [PATCH 09/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 1396 ++++++++++------------- src/sections/Pricing/generateDetails.js | 2 +- 2 files changed, 631 insertions(+), 767 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index b50b7aa38759..3667d99fb24e 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -1,33 +1,16 @@ [ { "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "1", - "function": "Extensible Webhooks", - "feature": "Layer5 Cloud uses webhooks to automate approval flows and email notifications. This guide will help you customize and add your own custom webhooks.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", + "categoryOrder": "0", + "category": "Configuration Management", "functionOrder": "2", - "function": "Enterprise API", - "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", - "subscription_tier": "Enterprise", + "function": "350 Built-in Models", + "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", @@ -35,96 +18,96 @@ }, { "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", + "categoryOrder": "0", + "category": "Configuration Management", "functionOrder": "3", - "function": "Managed Service Provider", - "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud.", - "subscription_tier": "Enterprise", + "function": "400 Cloud Native Patterns", + "feature": "", + "subscription_tier": "", "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://cloud.layer5.io/catalog" }, { "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "10", - "function": "Community Support", - "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "1", + "function": "Whiteboarding", + "feature": "Ability to freeform draw any shapes, draw edges", "subscription_tier": "Free", "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" }, { "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "10", - "function": "Standard Support", - "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", - "subscription_tier": "TeamDesigner|TeamOperator", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "1", + "function": "Visual Design", + "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", "teamOperator": "x", - "enterprise": "" + "enterprise": "x" }, "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "10", - "function": "Premium Support", - "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", - "subscription_tier": "Enterprise", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "2", + "function": "Collaborative Design Review", + "feature": "Kanvas’s Designer enables you to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", + "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", - "teamDesigner": "", + "teamDesigner": "x", "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/designer/comments/" }, { "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "8", - "function": "Invoice Billing", - "feature": "Pay bills via invoice, rather than using your credit card.", - "subscription_tier": "Enterprise", + "categoryOrder": "0", + "category": "GitOps", + "functionOrder": "2", + "function": "GitOps Snapshots", + "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", + "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", - "teamDesigner": "", + "teamDesigner": "x", "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/cloud/tutorials/gitops-snapshots/" }, { "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "9", - "function": "Self-hosted Deployment", - "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", + "categoryOrder": "0", + "category": "GitOps", + "functionOrder": "4", + "function": "GitOps Integrations", + "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", @@ -133,21 +116,21 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/self-hosted/" + "docs": "" }, { "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "9", - "function": "Bring your own Database", - "feature": "Support for Postgresql", - "subscription_tier": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "", + "function": "Thousands of Components", + "feature": "Thousands of fundamental building blocks used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. Clone and lock components as needed.", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" }, "pricing_page": "x", "docs": "" @@ -256,118 +239,118 @@ }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", + "categoryOrder": "1", + "category": "Lifecycle Management", "functionOrder": "1", - "function": "Share Design", - "feature": "Share design with anyone within your organization, and make your design easily accessible to all relevant team members.", - "subscription_tier": "", + "function": "Topology visualization", + "feature": "Discover clusters and/or import existing Kubernetes applications. Visualize their architecture, and gain a clear understanding of how different components interact.", + "subscription_tier": "Free", "comparison_tiers": { "free": "x", "teamDesigner": "x", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/designer/share-resource/" + "pricing_page": "x", + "docs": "" }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "1", - "function": "Clone Design", - "feature": "Clone any published design to customise it according to your use cases", - "subscription_tier": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "2", + "function": "Design dry-run", + "feature": "Test and verify configuration changes in a separate environment.", + "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "", + "free": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/" + "pricing_page": "x", + "docs": "" }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "", - "function": "Create new design", - "feature": "Create new Meshery design", - "subscription_tier": "Free", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "2", + "function": "Kubernetes Clusters", + "feature": "Ongoing synchronization of Kubernetes configuration, workloads and service mesh changes across any number of Kubernetes clusters.", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", - "teamDesigner": "x", - "teamOperator": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.meshery.io/guides/configuration-management/creating-a-meshery-design" + "pricing_page": "x", + "docs": "" }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "", - "function": "View Designs", - "feature": "View all public and published designs of other team members and private of signed-in user", - "subscription_tier": "Free", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "2", + "function": "AWS and GCP", + "feature": "Ongoing synchronization of AWS and GCP services configuration, workloads and changes across any number of accounts.", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", - "teamDesigner": "x", - "teamOperator": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "", - "function": "View Filters", - "feature": "View all public and published filters of other team members and private of signed-in user", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Robust CLI", + "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "" + "pricing_page": "x", + "docs": "https://docs.meshery.io/reference/mesheryctl" }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "", - "function": "Approve Catalog Request", - "feature": "Change management through a process of curation of content to be published in the catalog.", - "subscription_tier": "Enterprise", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Web-based Terminal", + "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", - "teamDesigner": "x", - "teamOperator": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "" + "pricing_page": "x", + "docs": "https://docs.layer5.io/kanvas/operator/" }, { "theme": "", - "categoryOrder": "8", - "category": "Security", - "functionOrder": "7", - "function": "Audit Trail", - "feature": "Detailed accounting of user activity. Historical record or each action taken.", - "subscription_tier": "Enterprise", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Standard Events and Metrics", + "feature": "Real-time resource metrics.", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", @@ -375,33 +358,101 @@ }, { "theme": "", - "categoryOrder": "8", - "category": "Security", - "functionOrder": "", - "function": "Permissions: Keychains and Keys", - "feature": "15 built-in keychains.", - "subscription_tier": "Enterprise", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Views", + "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/security/keychains" + "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" }, { "theme": "", - "categoryOrder": "8", - "category": "Security", - "functionOrder": "", - "function": "Keys", - "feature": "Audit history of when a key is used and who used the key.", - "subscription_tier": "Enterprise", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Assign Views to Workspace", + "feature": "Add new views to workspace", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Export views", + "feature": "Export views to JSON format", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#5-export-a-view" + }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Share Views", + "feature": "Share Views", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view" + }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Clone Views", + "feature": "Clone Views", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Stream container logs", + "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", @@ -477,11 +528,11 @@ }, { "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "2", - "function": "350 Built-in Models", - "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", + "categoryOrder": "3", + "category": "Performance Management", + "functionOrder": "1", + "function": "Service Performance", + "feature": "Continuous visibility across all of your clusters and workloads.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -494,113 +545,113 @@ }, { "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "3", - "function": "400 Cloud Native Patterns", - "feature": "", - "subscription_tier": "", + "categoryOrder": "3", + "category": "Performance Management", + "functionOrder": "2", + "function": "Performance Profiles", + "feature": "Define, name, and save performance profiles. Share performance profiles and test results with individual users or teams.", + "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", + "free": "", + "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "https://cloud.layer5.io/catalog" + "pricing_page": "", + "docs": "" }, { "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "1", - "function": "Whiteboarding", - "feature": "Ability to freeform draw any shapes, draw edges", - "subscription_tier": "Free", + "categoryOrder": "3", + "category": "Performance Management", + "functionOrder": "3", + "function": "Export test results", + "feature": "Single or multiple results in standardized format.", + "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", + "free": "", + "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" + "pricing_page": "", + "docs": "" }, { "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "1", - "function": "Visual Design", - "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", - "subscription_tier": "Free", + "categoryOrder": "3", + "category": "Performance Management", + "functionOrder": "4", + "function": "Comparative Testing", + "feature": "Visual comparison of performance test results.", + "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", + "free": "", + "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "2", - "function": "Collaborative Design Review", - "feature": "Kanvas’s Designer enables you to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", - "subscription_tier": "TeamDesigner", + "categoryOrder": "3", + "category": "Performance Management", + "functionOrder": "5", + "function": "Capacity, soak, and burst testing", + "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", - "teamDesigner": "x", - "teamOperator": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/comments/" + "pricing_page": "", + "docs": "" }, { "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "3", - "function": "Resource Access Management", - "feature": "Manage access to designs on a team-by-team, or individual user, basis.", - "subscription_tier": "TeamDesigner", + "categoryOrder": "3", + "category": "Performance Management", + "functionOrder": "", + "function": "Performance Profiles", + "feature": "Storage of 500 result sets in Provider for a given Performance Profile.", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", - "teamDesigner": "x", - "teamOperator": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "1", - "function": "Built-in Roles", - "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin", - "subscription_tier": "Free", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "3", + "function": "Manage access to views", + "feature": "Create and collaborate in online operational topologies in real-time.", + "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", + "free": "", + "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/security/roles/" + "docs": "" }, { "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "2", - "function": "Identity through OAuth", - "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "1", + "function": "Create and collaborate in online designs in real-time.", + "feature": "Create and collaborate in online designs in real-time.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -613,33 +664,16 @@ }, { "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "4", - "function": "User-defined Roles", - "feature": "Customizable roles for specific permission assignments", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "2", + "function": "Team Chat", + "feature": "Message in real-time, unattached to a specific design. Control who can pariticpate in the discussion.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/security/roles/" - }, - { - "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "6", - "function": "User Provisioning through SCIM", - "feature": "Use your existing accounts and centrally manage access.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", + "teamDesigner": "x", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", @@ -647,164 +681,28 @@ }, { "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "5", - "function": "Identity through OIDC", - "feature": "Own and control the user accounts of your organization members through your identity provider (IdP).", - "subscription_tier": "", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "", + "function": "Design Reviews", + "feature": "Discuss any design by leaving review comments or notes on a specific design. Control who has access, notify discussion participants with updates, and link from anywhere.", + "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "6", - "category": "Identity & Access Management", - "functionOrder": "6", - "function": "Public Profiles for Users", - "feature": "See public user profile details, public activities and public resources.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "", + "teamDesigner": "x", "teamOperator": "", "enterprise": "" }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "6", - "category": "Identity & Access Management", - "functionOrder": "6", - "function": "Self-service user accounts", - "feature": "New user sign-up verification. Self-service password recovery.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Topology visualization", - "feature": "Discover clusters and/or import existing Kubernetes applications. Visualize their architecture, and gain a clear understanding of how different components interact.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "2", - "function": "Design dry-run", - "feature": "Test and verify configuration changes in a separate environment.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "2", - "function": "Kubernetes Clusters", - "feature": "Ongoing synchronization of Kubernetes configuration, workloads and service mesh changes across any number of Kubernetes clusters.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "2", - "function": "AWS and GCP", - "feature": "Ongoing synchronization of AWS and GCP services configuration, workloads and changes across any number of accounts.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Robust CLI", - "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, "pricing_page": "x", - "docs": "https://docs.meshery.io/reference/mesheryctl" - }, - { - "theme": "", - "categoryOrder": "3", - "category": "Performance Management", - "functionOrder": "1", - "function": "Service Performance", - "feature": "Continuous visibility across all of your clusters and workloads.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/designer/comments/" }, { "theme": "", - "categoryOrder": "0", - "category": "GitOps", - "functionOrder": "2", - "function": "GitOps Snapshots", - "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "", + "function": "Collaborators for public designs", + "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", @@ -813,32 +711,15 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/tutorials/gitops-snapshots/" - }, - { - "theme": "", - "categoryOrder": "0", - "category": "GitOps", - "functionOrder": "4", - "function": "GitOps Integrations", - "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Web-based Terminal", - "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "", + "function": "Collaborators for public views", + "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -847,20 +728,20 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/operator/" + "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" }, { "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Standard Events and Metrics", - "feature": "Real-time resource metrics.", - "subscription_tier": "TeamOperator", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "", + "function": "Collaborators for private designs and views", + "feature": "Multi-player collaboration on infrastructure design and management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your private or public designs and views.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", @@ -868,16 +749,16 @@ }, { "theme": "", - "categoryOrder": "4", - "category": "Collaboration", + "categoryOrder": "5", + "category": "Identity & Access Management", "functionOrder": "3", - "function": "Manage access to views", - "feature": "Create and collaborate in online operational topologies in real-time.", - "subscription_tier": "TeamOperator", + "function": "Resource Access Management", + "feature": "Manage access to designs on a team-by-team, or individual user, basis.", + "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", - "teamDesigner": "", - "teamOperator": "x", + "teamDesigner": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", @@ -885,11 +766,11 @@ }, { "theme": "", - "categoryOrder": "4", - "category": "Collaboration", + "categoryOrder": "5", + "category": "Identity & Access Management", "functionOrder": "1", - "function": "Create and collaborate in online designs in real-time.", - "feature": "Create and collaborate in online designs in real-time.", + "function": "Built-in Roles", + "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -898,18 +779,18 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/cloud/security/roles/" }, { "theme": "", - "categoryOrder": "4", - "category": "Collaboration", + "categoryOrder": "5", + "category": "Identity & Access Management", "functionOrder": "2", - "function": "Team Chat", - "feature": "Message in real-time, unattached to a specific design. Control who can pariticpate in the discussion.", - "subscription_tier": "Enterprise", + "function": "Identity through OAuth", + "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -919,63 +800,29 @@ }, { "theme": "", - "categoryOrder": "4", - "category": "Collaboration", - "functionOrder": "", - "function": "Design Reviews", - "feature": "Discuss any design by leaving review comments or notes on a specific design. Control who has access, notify discussion participants with updates, and link from anywhere.", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/comments/" - }, - { - "theme": "", - "categoryOrder": "4", - "category": "Collaboration", - "functionOrder": "", - "function": "Collaborators for public designs", - "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "4", - "category": "Collaboration", - "functionOrder": "", - "function": "Collaborators for public views", - "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", - "subscription_tier": "TeamOperator", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "4", + "function": "User-defined Roles", + "feature": "Customizable roles for specific permission assignments", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" + "docs": "https://docs.layer5.io/cloud/security/roles/" }, { "theme": "", - "categoryOrder": "4", - "category": "Collaboration", - "functionOrder": "", - "function": "Collaborators for private designs and views", - "feature": "Multi-player collaboration on infrastructure design and management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your private or public designs and views.", - "subscription_tier": "Enterprise", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "6", + "function": "User Provisioning through SCIM", + "feature": "Use your existing accounts and centrally manage access.", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", @@ -986,51 +833,34 @@ "docs": "" }, { - "theme": "", - "categoryOrder": "", - "category": "Lifecycle Management", - "functionOrder": "", - "function": "Greenfield support of existing infrastructure", - "feature": "Discover and register existing infrastructure with the Meshery Operator and MeshSync.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Account Management", - "functionOrder": "", - "function": "Connect your Github Account", - "feature": "Link your social sign-in with GitHub to your existing user account.", - "subscription_tier": "Team", + "theme": "", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "5", + "function": "Identity through OIDC", + "feature": "Own and control the user accounts of your organization members through your identity provider (IdP).", + "subscription_tier": "", "comparison_tiers": { "free": "", - "teamDesigner": "x", + "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "", - "category": "Account Management", - "functionOrder": "", - "function": "Connect your Google Account", - "feature": "Link your social sign-in with Google to your existing user account.", - "subscription_tier": "Team", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "5", + "function": "Custom Roles", + "feature": "Assign User Roles, Assign Keychains to Roles", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", - "teamDesigner": "x", - "teamOperator": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", @@ -1038,109 +868,109 @@ }, { "theme": "", - "categoryOrder": "", - "category": "Account Management", - "functionOrder": "", - "function": "Entitlement", - "feature": "List and see details of active and inactive subscriptions.", - "subscription_tier": "Team", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "6", + "function": "Public Profiles for Users", + "feature": "See public user profile details, public activities and public resources.", + "subscription_tier": "Free", "comparison_tiers": { "free": "x", - "teamDesigner": "x", + "teamDesigner": "", "teamOperator": "", - "enterprise": "x" + "enterprise": "" }, "pricing_page": "", "docs": "" }, { "theme": "", - "categoryOrder": "", - "category": "Account Management", - "functionOrder": "", - "function": "View Plans", - "feature": "Explore subscription plans and compare their features.", - "subscription_tier": "Team", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "6", + "function": "Self-service user accounts", + "feature": "New user sign-up verification. Self-service password recovery.", + "subscription_tier": "Free", "comparison_tiers": { "free": "x", - "teamDesigner": "x", + "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" }, { "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "", - "function": "Export Design", - "feature": "To your local filesystem", - "subscription_tier": "Free", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "2", + "function": "Assign environments to workspaces", + "feature": "Grant workspaces access to environments and their resources.", + "subscription_tier": "TeamOperator|Enterprise", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", + "free": "", + "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "", - "function": "Export Design", - "feature": "Export a latest version of design in Meshery Design (YAML format)", - "subscription_tier": "Free", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "4", + "function": "Transfer files between workspaces", + "feature": "Move designs, views, and models between Shared Workspaces.", + "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", + "free": "", + "teamDesigner": "", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" + "pricing_page": "x", + "docs": "" }, { "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "", - "function": "Export Design", - "feature": "Export a latest version of design in Meshery Design (OCI format)", - "subscription_tier": "TeamDesigner", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "1", + "function": "Assign Designs to Workspaces", + "feature": "Assign designs to workspaces", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-an-oci-image" + "docs": "" }, { "theme": "", - "categoryOrder": "1", + "categoryOrder": "7", "category": "Catalog", - "functionOrder": "", + "functionOrder": "1", "function": "Export Design", - "feature": "Export a design at a specific version", - "subscription_tier": "TeamDesigner", + "feature": "Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Meshery Design, OCI image)", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" }, { "theme": "", - "categoryOrder": "1", + "categoryOrder": "7", "category": "Catalog", "functionOrder": "3", "function": "Publish Design", @@ -1157,11 +987,11 @@ }, { "theme": "", - "categoryOrder": "1", + "categoryOrder": "7", "category": "Catalog", "functionOrder": "4", "function": "Orchestration: Pre-provisioning", - "feature": "Validate a design", + "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -1174,7 +1004,7 @@ }, { "theme": "", - "categoryOrder": "1", + "categoryOrder": "7", "category": "Catalog", "functionOrder": "4", "function": "Orchestration: Provisioning", @@ -1191,7 +1021,7 @@ }, { "theme": "", - "categoryOrder": "1", + "categoryOrder": "7", "category": "Catalog", "functionOrder": "4", "function": "Orchestration: Deprovisioning", @@ -1208,50 +1038,101 @@ }, { "theme": "", - "categoryOrder": "", - "category": "Identity & Access Management", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "1", + "function": "Share Design", + "feature": "Share design with anyone within your organization, and make your design easily accessible to all relevant team members.", + "subscription_tier": "", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/designer/share-resource/" + }, + { + "theme": "", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "1", + "function": "Clone Design", + "feature": "Clone any published design to customise it according to your use cases", + "subscription_tier": "", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/" + }, + { + "theme": "", + "categoryOrder": "7", + "category": "Catalog", "functionOrder": "", - "function": "Organizations", - "feature": "Establish new organization for organizing teams, users, and resource access.", + "function": "Approve Catalog Request", + "feature": "Change management through a process of curation of content to be published in the catalog.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", - "teamDesigner": "", + "teamDesigner": "x", "teamOperator": "", "enterprise": "x" }, "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/identity/organizations/" + "docs": "https://docs.layer5.io/cloud/catalog/" }, { "theme": "", - "categoryOrder": "5", - "category": "Roles", - "functionOrder": "", - "function": "Create Custom Roles", - "feature": "Assign User Roles, Assign Keychains to Roles", + "categoryOrder": "8", + "category": "Security", + "functionOrder": "1", + "function": "Audit Trail", + "feature": "Detailed accounting of user activity. Historical record or each action taken.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "", - "category": "Lifecycle Management", + "categoryOrder": "8", + "category": "Security", + "functionOrder": "2", + "function": "Permissions: Keychains and Keys", + "feature": "15 built-in keychains.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/cloud/security/keychains" + }, + { + "theme": "", + "categoryOrder": "8", + "category": "Security", "functionOrder": "", - "function": "Connections: Cluster discovery", - "feature": "Day 2 support for ongoing synchronization of Kubernetes configuration, workloads and service mesh changes.", - "subscription_tier": "TeamOperator", + "function": "Keys", + "feature": "Audit history of when a key is used and who used the key.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "", @@ -1259,33 +1140,33 @@ }, { "theme": "", - "categoryOrder": "", - "category": "Environments", + "categoryOrder": "8", + "category": "Security", "functionOrder": "", - "function": "Environments", - "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", - "subscription_tier": "Free", + "function": "Credentials and Connections", + "feature": "Assign connections to environment", + "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", + "free": "", + "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { "theme": "", - "categoryOrder": "", - "category": "Environments", - "functionOrder": "2", - "function": "Environments", - "feature": "Group related resources together, making it easier to navigate and manage complex deployments.", + "categoryOrder": "8", + "category": "Security", + "functionOrder": "", + "function": "API Tokens, Sessions", + "feature": "Expiring and non-expiring API tokens. Visibility into active and expired user sessions.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "", @@ -1293,16 +1174,16 @@ }, { "theme": "", - "categoryOrder": "6", - "category": "Workspaces", - "functionOrder": "2", - "function": "Assign environments to workspaces", - "feature": "Grant workspaces access to environments and their resources.", - "subscription_tier": "TeamOperator|Enterprise", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "1", + "function": "Extensible Webhooks", + "feature": "Layer5 Cloud uses webhooks to automate approval flows and email notifications. This guide will help you customize and add your own custom webhooks.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", @@ -1310,11 +1191,11 @@ }, { "theme": "", - "categoryOrder": "6", - "category": "Workspaces", - "functionOrder": "4", - "function": "Transfer files between workspaces", - "feature": "Move designs, views, and models between Shared Workspaces.", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "2", + "function": "Enterprise API", + "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", @@ -1327,28 +1208,28 @@ }, { "theme": "", - "categoryOrder": "6", - "category": "Workspaces", - "functionOrder": "1", - "function": "Assign Designs to Workspaces", - "feature": "Assign designs to workspaces", - "subscription_tier": "Free", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "3", + "function": "Managed Service Provider", + "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud.", + "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", + "free": "", + "teamDesigner": "", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "", - "category": "Configuration Management", - "functionOrder": "", - "function": "Thousands of Components", - "feature": "Thousands of fundamental building blocks used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. Clone and lock components as needed.", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "25", + "function": "Community Support", + "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -1356,123 +1237,106 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Views", - "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" + "docs": "" }, { "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Assign Views to Workspace", - "feature": "Add new views to workspace", - "subscription_tier": "TeamOperator", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "25", + "function": "Standard Support", + "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", + "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { "free": "", - "teamDesigner": "", + "teamDesigner": "x", "teamOperator": "x", - "enterprise": "x" + "enterprise": "" }, "pricing_page": "", "docs": "" }, { "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Export views", - "feature": "Export views to JSON format", - "subscription_tier": "TeamOperator", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "25", + "function": "Premium Support", + "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#5-export-a-view" + "docs": "" }, { "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Share Views", - "feature": "Share Views", - "subscription_tier": "TeamOperator", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "8", + "function": "Invoice Billing", + "feature": "Pay bills via invoice, rather than using your credit card.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view" + "pricing_page": "x", + "docs": "" }, { "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Clone Views", - "feature": "Clone Views", - "subscription_tier": "TeamOperator", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "9", + "function": "Self-hosted Deployment", + "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "" + "pricing_page": "x", + "docs": "https://docs.layer5.io/cloud/self-hosted/" }, { "theme": "", - "categoryOrder": "1", + "categoryOrder": "", "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Stream container logs", - "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", - "subscription_tier": "TeamOperator", + "functionOrder": "", + "function": "Greenfield support of existing infrastructure", + "feature": "Discover and register existing infrastructure with the Meshery Operator and MeshSync.", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", - "teamDesigner": "", + "free": "x", + "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "3", - "category": "Performance Management", + "categoryOrder": "", + "category": "Account Management", "functionOrder": "", - "function": "Performance Profiles", - "feature": "Define, name, and save performance profiles. Share performance profiles and test results with individual users or teams.", - "subscription_tier": "TeamOperator", + "function": "Connect your Github Account", + "feature": "Link your social sign-in with GitHub to your existing user account.", + "subscription_tier": "Team", "comparison_tiers": { "free": "", - "teamDesigner": "", - "teamOperator": "x", + "teamDesigner": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "", @@ -1480,16 +1344,16 @@ }, { "theme": "", - "categoryOrder": "3", - "category": "Performance Management", + "categoryOrder": "", + "category": "Account Management", "functionOrder": "", - "function": "Export test results", - "feature": "Single or multiple results in standardized format.", - "subscription_tier": "TeamOperator", + "function": "Connect your Google Account", + "feature": "Link your social sign-in with Google to your existing user account.", + "subscription_tier": "Team", "comparison_tiers": { "free": "", - "teamDesigner": "", - "teamOperator": "x", + "teamDesigner": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "", @@ -1497,16 +1361,16 @@ }, { "theme": "", - "categoryOrder": "3", - "category": "Performance Management", + "categoryOrder": "", + "category": "Account Management", "functionOrder": "", - "function": "Comparative Testing", - "feature": "Visual comparison of performance test results.", - "subscription_tier": "TeamOperator", + "function": "Entitlement", + "feature": "List and see details of active and inactive subscriptions.", + "subscription_tier": "Team", "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", + "free": "x", + "teamDesigner": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "", @@ -1514,16 +1378,16 @@ }, { "theme": "", - "categoryOrder": "3", - "category": "Performance Management", + "categoryOrder": "", + "category": "Account Management", "functionOrder": "", - "function": "Capacity, soak, and burst testing", - "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", - "subscription_tier": "TeamOperator", + "function": "View Plans", + "feature": "Explore subscription plans and compare their features.", + "subscription_tier": "Team", "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", + "free": "x", + "teamDesigner": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "", @@ -1531,28 +1395,28 @@ }, { "theme": "", - "categoryOrder": "3", - "category": "Performance Management", + "categoryOrder": "", + "category": "Identity & Access Management", "functionOrder": "", - "function": "Performance Profiles", - "feature": "Storage of 500 result sets in Provider for a given Performance Profile.", - "subscription_tier": "TeamOperator", + "function": "Organizations", + "feature": "Establish new organization for organizing teams, users, and resource access.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/cloud/identity/organizations/" }, { "theme": "", - "categoryOrder": "9", - "category": "Security", + "categoryOrder": "", + "category": "Lifecycle Management", "functionOrder": "", - "function": "Credentials and Connections", - "feature": "Assign connections to environment", + "function": "Connections: Cluster discovery", + "feature": "Day 2 support for ongoing synchronization of Kubernetes configuration, workloads and service mesh changes.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -1565,33 +1429,33 @@ }, { "theme": "", - "categoryOrder": "9", - "category": "Security", + "categoryOrder": "", + "category": "Environments", "functionOrder": "", - "function": "API Tokens, Sessions", - "feature": "Expiring and non-expiring API tokens. Visibility into active and expired user sessions.", - "subscription_tier": "Enterprise", + "function": "Environments", + "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "9", - "category": "Security", - "functionOrder": "", - "function": "Keys, Keychain, and Roles", - "feature": "", + "categoryOrder": "", + "category": "Environments", + "functionOrder": "2", + "function": "Environments", + "feature": "Group related resources together, making it easier to navigate and manage complex deployments.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", diff --git a/src/sections/Pricing/generateDetails.js b/src/sections/Pricing/generateDetails.js index b22fdd7b716a..164475fa4dab 100644 --- a/src/sections/Pricing/generateDetails.js +++ b/src/sections/Pricing/generateDetails.js @@ -23,7 +23,7 @@ function generateDetails(data) { { id: 3, name: "Performance Management", icon: Perforamance }, { id: 4, name: "Collaboration", icon: Collab }, { id: 5, name: "Identity & Access Management", icon: Identity }, - { id: 6, name: "Spaces", icon: Spaces }, + { id: 6, name: "Workspaces", icon: Spaces }, // { id: 6, name: "Incident Management", icon: Notification }, { id: 7, name: "Catalog", icon: Catalog }, { id: 8, name: "Security", icon: Security }, From 10328e4170457e793d8ecd59fb4c5d96deded973 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Tue, 10 Dec 2024 10:42:08 -0600 Subject: [PATCH 10/83] pricing Signed-off-by: Lee Calcote --- .../Brand/Brand-components/stickfigures.js | 38 +++++++++---------- src/sections/Pricing/feature_data.json | 4 +- src/sections/Pricing/generatePlans.js | 4 +- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/sections/Company/Brand/Brand-components/stickfigures.js b/src/sections/Company/Brand/Brand-components/stickfigures.js index 01b6f608ed1d..e6eeb69a2a98 100644 --- a/src/sections/Company/Brand/Brand-components/stickfigures.js +++ b/src/sections/Company/Brand/Brand-components/stickfigures.js @@ -6,25 +6,25 @@ import SFL from "../../../../assets/images/five/SVG/stick-figures.svg"; import teamOfFives from "../../../../assets/images/five/SVG/team-of-fives.svg"; import resourcesSign from "../../../../assets/images/five/SVG/resources-sign.svg"; import mesheryWorship from "../../../../assets/images/five/meshery-worship.png"; -import f1 from "../../../../assets/images/five/SVG/1.svg"; -import f2 from "../../../../assets/images/five/SVG/2.svg"; -import f3 from "../../../../assets/images/five/SVG/3.svg"; -import f4 from "../../../../assets/images/five/SVG/4.svg"; -import f5 from "../../../../assets/images/five/SVG/5.svg"; -import f6 from "../../../../assets/images/five/SVG/6.svg"; -import f7 from "../../../../assets/images/five/SVG/7.svg"; -import f8 from "../../../../assets/images/five/SVG/8.svg"; -import f9 from "../../../../assets/images/five/SVG/9.svg"; -import f10 from "../../../../assets/images/five/SVG/10.svg"; -import f11 from "../../../../assets/images/five/SVG/11.svg"; -import f12 from "../../../../assets/images/five/SVG/12.svg"; -import f13 from "../../../../assets/images/five/SVG/13.svg"; -import f14 from "../../../../assets/images/five/SVG/14.svg"; -import f15 from "../../../../assets/images/five/SVG/15.svg"; -import f16 from "../../../../assets/images/five/SVG/16.svg"; -import f17 from "../../../../assets/images/five/SVG/17.svg"; -import f18 from "../../../../assets/images/five/SVG/18.svg"; -import f19 from "../../../../assets/images/five/SVG/19.svg"; +// import f1 from "../../../../assets/images/five/SVG/1.svg"; +// import f2 from "../../../../assets/images/five/SVG/2.svg"; +// import f3 from "../../../../assets/images/five/SVG/3.svg"; +// import f4 from "../../../../assets/images/five/SVG/4.svg"; +// import f5 from "../../../../assets/images/five/SVG/5.svg"; +// import f6 from "../../../../assets/images/five/SVG/6.svg"; +// import f7 from "../../../../assets/images/five/SVG/7.svg"; +// import f8 from "../../../../assets/images/five/SVG/8.svg"; +// import f9 from "../../../../assets/images/five/SVG/9.svg"; +// import f10 from "../../../../assets/images/five/SVG/10.svg"; +// import f11 from "../../../../assets/images/five/SVG/11.svg"; +// import f12 from "../../../../assets/images/five/SVG/12.svg"; +// import f13 from "../../../../assets/images/five/SVG/13.svg"; +// import f14 from "../../../../assets/images/five/SVG/14.svg"; +// import f15 from "../../../../assets/images/five/SVG/15.svg"; +// import f16 from "../../../../assets/images/five/SVG/16.svg"; +// import f17 from "../../../../assets/images/five/SVG/17.svg"; +// import f18 from "../../../../assets/images/five/SVG/18.svg"; +// import f19 from "../../../../assets/images/five/SVG/19.svg"; const StickFigures = () => { return ( diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 3667d99fb24e..3054b68f3603 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -499,9 +499,9 @@ "functionOrder": "3", "function": "My Workspace", "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", - "subscription_tier": "TeamDesigner|TeamOperator", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" diff --git a/src/sections/Pricing/generatePlans.js b/src/sections/Pricing/generatePlans.js index d39dbc163b10..a10d655d5180 100644 --- a/src/sections/Pricing/generatePlans.js +++ b/src/sections/Pricing/generatePlans.js @@ -17,7 +17,7 @@ function generatePlans(data) { "TeamDesigner": { tier: "Team Designer", featured: true, - monthlyprice: 6, + monthlyprice: 8, yearlyprice: 68, byline: "Advanced collaboration for declarative DevOps", byline2: "← Everything included in Free, plus...", @@ -26,7 +26,7 @@ function generatePlans(data) { "TeamOperator": { tier: "Team Operator", featured: true, - monthlyprice: 6, + monthlyprice: 8, yearlyprice: 68, pricing_coming_soon: Coming Soon, byline: "Advanced collaboration for imperative DevOps", From e286e80d4ac07087a8a0442f1659c4810df57939 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Tue, 10 Dec 2024 10:44:55 -0600 Subject: [PATCH 11/83] Clear subscription tier values in feature data JSON for pricing section Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 3054b68f3603..0b81913ddfc6 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -635,7 +635,7 @@ "functionOrder": "3", "function": "Manage access to views", "feature": "Create and collaborate in online operational topologies in real-time.", - "subscription_tier": "TeamOperator", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", @@ -788,7 +788,7 @@ "functionOrder": "2", "function": "Identity through OAuth", "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", - "subscription_tier": "Free", + "subscription_tier": "", "comparison_tiers": { "free": "x", "teamDesigner": "x", @@ -907,7 +907,7 @@ "functionOrder": "2", "function": "Assign environments to workspaces", "feature": "Grant workspaces access to environments and their resources.", - "subscription_tier": "TeamOperator|Enterprise", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", @@ -924,7 +924,7 @@ "functionOrder": "4", "function": "Transfer files between workspaces", "feature": "Move designs, views, and models between Shared Workspaces.", - "subscription_tier": "Enterprise", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", @@ -1281,7 +1281,7 @@ "functionOrder": "8", "function": "Invoice Billing", "feature": "Pay bills via invoice, rather than using your credit card.", - "subscription_tier": "Enterprise", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", From 93dfdeb2094570f9698ccad5d98edbc3002537e2 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Tue, 10 Dec 2024 10:48:26 -0600 Subject: [PATCH 12/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 42 +++----------------------- 1 file changed, 4 insertions(+), 38 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 0b81913ddfc6..f7d7fe5a6cdd 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -86,7 +86,7 @@ }, { "theme": "", - "categoryOrder": "0", + "categoryOrder": "3", "category": "GitOps", "functionOrder": "2", "function": "GitOps Snapshots", @@ -103,7 +103,7 @@ }, { "theme": "", - "categoryOrder": "0", + "categoryOrder": "3", "category": "GitOps", "functionOrder": "4", "function": "GitOps Integrations", @@ -118,23 +118,6 @@ "pricing_page": "x", "docs": "" }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "", - "function": "Thousands of Components", - "feature": "Thousands of fundamental building blocks used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. Clone and lock components as needed.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, { "theme": "", "categoryOrder": "1", @@ -1431,27 +1414,10 @@ "theme": "", "categoryOrder": "", "category": "Environments", - "functionOrder": "", + "functionOrder": "1", "function": "Environments", "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Environments", - "functionOrder": "2", - "function": "Environments", - "feature": "Group related resources together, making it easier to navigate and manage complex deployments.", - "subscription_tier": "Enterprise", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", "teamDesigner": "", From 2f13a3337ae7cdeed7467c9b05427e35e55f0358 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Tue, 10 Dec 2024 10:49:24 -0600 Subject: [PATCH 13/83] Remove unused Button import in Kanvas visualize banner component Signed-off-by: Lee Calcote --- src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js | 2 +- src/sections/Pricing/generateDetails.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js index 4547ee727622..23d20fabd611 100644 --- a/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js +++ b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js @@ -1,6 +1,6 @@ import React from "react"; import styled from "styled-components"; -import Button from "../../../reusecore/Button"; +// import Button from "../../../reusecore/Button"; import KanvasBtn from "../kanvas-buttons"; const VisualizeBannerWrapper = styled.div` diff --git a/src/sections/Pricing/generateDetails.js b/src/sections/Pricing/generateDetails.js index 164475fa4dab..13391d1444bc 100644 --- a/src/sections/Pricing/generateDetails.js +++ b/src/sections/Pricing/generateDetails.js @@ -9,7 +9,7 @@ import Perforamance from "./icons/perf.svg"; import Collab from "./icons/collaboration.svg"; import Spaces from "./icons/spaces.svg"; import Identity from "./icons/identity.svg"; -import Notification from "./icons/notification.svg"; +// import Notification from "./icons/notification.svg"; import Support from "./icons/support.svg"; import Catalog from "./icons/catalog.svg"; import Security from "./icons/security.svg"; From 2a1a2bedbfdb8c9b206c5b2da1b3db9cf06f843d Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Tue, 10 Dec 2024 11:53:46 -0600 Subject: [PATCH 14/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 196 ++++++------------------- src/sections/Pricing/pricing.style.js | 8 +- 2 files changed, 51 insertions(+), 153 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index f7d7fe5a6cdd..2fc5840801fc 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -39,7 +39,7 @@ "category": "Configuration Management", "functionOrder": "1", "function": "Whiteboarding", - "feature": "Ability to freeform draw any shapes, draw edges", + "feature": "Pencil for freeform drawing of any shapes", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -50,12 +50,29 @@ "pricing_page": "x", "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "2", + "function": "Layers", + "feature": "Use layers to show, hide, and group objects on the same board—perfect for building detailed diagrams or revealing project phases.", + "subscription_tier": "", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", "functionOrder": "1", - "function": "Visual Design", + "function": "Infrastructure as Design", "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", "subscription_tier": "Free", "comparison_tiers": { @@ -157,34 +174,17 @@ "categoryOrder": "1", "category": "Catalog", "functionOrder": "1", - "function": "Standard Design Export", - "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub)", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "1", - "function": "Premium Design Export", - "feature": "Export a design as a snapshot", - "subscription_tier": "", + "function": "Export Designs", + "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" }, { "theme": "", @@ -259,8 +259,8 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "2", - "function": "Kubernetes Clusters", - "feature": "Ongoing synchronization of Kubernetes configuration, workloads and service mesh changes across any number of Kubernetes clusters.", + "function": "Multiple Kubernetes Clusters", + "feature": "Management and ongoing synchronization of cloud native infrastructure across any number of Clouds and Kubernetes clusters.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -277,7 +277,7 @@ "category": "Lifecycle Management", "functionOrder": "2", "function": "AWS and GCP", - "feature": "Ongoing synchronization of AWS and GCP services configuration, workloads and changes across any number of accounts.", + "feature": "Management and ongoing synchronization of AWS and GCP services, workloads and changes across any number of accounts.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -429,7 +429,7 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "1", - "function": "Stream container logs", + "function": "Stream Container Logs", "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", "subscription_tier": "TeamOperator", "comparison_tiers": { @@ -438,7 +438,7 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { @@ -514,8 +514,8 @@ "categoryOrder": "3", "category": "Performance Management", "functionOrder": "1", - "function": "Service Performance", - "feature": "Continuous visibility across all of your clusters and workloads.", + "function": "Load Generation and Performance Testing", + "feature": "Continuous visibility across all of your clusters and workloads. Single or multiple results in standardized format.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -526,40 +526,6 @@ "pricing_page": "x", "docs": "" }, - { - "theme": "", - "categoryOrder": "3", - "category": "Performance Management", - "functionOrder": "2", - "function": "Performance Profiles", - "feature": "Define, name, and save performance profiles. Share performance profiles and test results with individual users or teams.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "3", - "category": "Performance Management", - "functionOrder": "3", - "function": "Export test results", - "feature": "Single or multiple results in standardized format.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, { "theme": "", "categoryOrder": "3", @@ -598,9 +564,9 @@ "theme": "", "categoryOrder": "3", "category": "Performance Management", - "functionOrder": "", + "functionOrder": "2", "function": "Performance Profiles", - "feature": "Storage of 500 result sets in Provider for a given Performance Profile.", + "feature": "Storage of 500 result sets in Provider for a given Performance Profile. Capacity, soak, and burst testing supporting HTTP, HTTPS, TCP, gRPC load generation with configurable test duration, RPS, and request concurrency.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -684,7 +650,7 @@ "categoryOrder": "4", "category": "Collaboration", "functionOrder": "", - "function": "Collaborators for public designs", + "function": "Collaborators for public/private designs", "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", "subscription_tier": "TeamDesigner", "comparison_tiers": { @@ -701,7 +667,7 @@ "categoryOrder": "4", "category": "Collaboration", "functionOrder": "", - "function": "Collaborators for public views", + "function": "Collaborators for public/private views", "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", "subscription_tier": "TeamOperator", "comparison_tiers": { @@ -713,23 +679,6 @@ "pricing_page": "x", "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" }, - { - "theme": "", - "categoryOrder": "4", - "category": "Collaboration", - "functionOrder": "", - "function": "Collaborators for private designs and views", - "feature": "Multi-player collaboration on infrastructure design and management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your private or public designs and views.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, { "theme": "", "categoryOrder": "5", @@ -768,7 +717,7 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "2", + "functionOrder": "1", "function": "Identity through OAuth", "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", "subscription_tier": "", @@ -836,7 +785,7 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "5", + "functionOrder": "2", "function": "Custom Roles", "feature": "Assign User Roles, Assign Keychains to Roles", "subscription_tier": "Enterprise", @@ -888,7 +837,7 @@ "categoryOrder": "6", "category": "Workspaces", "functionOrder": "2", - "function": "Assign environments to workspaces", + "function": "Assign Environments to Workspaces", "feature": "Grant workspaces access to environments and their resources.", "subscription_tier": "", "comparison_tiers": { @@ -922,7 +871,7 @@ "categoryOrder": "6", "category": "Workspaces", "functionOrder": "1", - "function": "Assign Designs to Workspaces", + "function": "Manage Workspace Team and User Access", "feature": "Assign designs to workspaces", "subscription_tier": "Free", "comparison_tiers": { @@ -934,40 +883,6 @@ "pricing_page": "", "docs": "" }, - { - "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "1", - "function": "Export Design", - "feature": "Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Meshery Design, OCI image)", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" - }, - { - "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "3", - "function": "Publish Design", - "feature": "Publish a design", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "" - }, - "pricing_page": "", - "docs": "https://docs.meshery.io/extensions/publishing-a-design" - }, { "theme": "", "categoryOrder": "7", @@ -1159,25 +1074,8 @@ "theme": "", "categoryOrder": "9", "category": "Support and Deployment", - "functionOrder": "1", - "function": "Extensible Webhooks", - "feature": "Layer5 Cloud uses webhooks to automate approval flows and email notifications. This guide will help you customize and add your own custom webhooks.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "2", - "function": "Enterprise API", + "functionOrder": "4", + "function": "Enterprise API & Extensible Webhooks", "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", "subscription_tier": "Enterprise", "comparison_tiers": { @@ -1210,7 +1108,7 @@ "theme": "", "categoryOrder": "9", "category": "Support and Deployment", - "functionOrder": "25", + "functionOrder": "1", "function": "Community Support", "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", "subscription_tier": "Free", @@ -1227,7 +1125,7 @@ "theme": "", "categoryOrder": "9", "category": "Support and Deployment", - "functionOrder": "25", + "functionOrder": "2", "function": "Standard Support", "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", "subscription_tier": "TeamDesigner|TeamOperator", @@ -1244,7 +1142,7 @@ "theme": "", "categoryOrder": "9", "category": "Support and Deployment", - "functionOrder": "25", + "functionOrder": "3", "function": "Premium Support", "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", "subscription_tier": "Enterprise", @@ -1261,7 +1159,7 @@ "theme": "", "categoryOrder": "9", "category": "Support and Deployment", - "functionOrder": "8", + "functionOrder": "6", "function": "Invoice Billing", "feature": "Pay bills via invoice, rather than using your credit card.", "subscription_tier": "", @@ -1278,7 +1176,7 @@ "theme": "", "categoryOrder": "9", "category": "Support and Deployment", - "functionOrder": "9", + "functionOrder": "7", "function": "Self-hosted Deployment", "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", "subscription_tier": "Enterprise", diff --git a/src/sections/Pricing/pricing.style.js b/src/sections/Pricing/pricing.style.js index 714d0efffa52..e976ff42d91f 100644 --- a/src/sections/Pricing/pricing.style.js +++ b/src/sections/Pricing/pricing.style.js @@ -47,8 +47,8 @@ const PricingWrapper = styled.section` width: 85%; } -.toggle{ - border: 2px solid ${props => props.theme.darkJungleGreenHalfColor}; +.toggle { + border: 2px solid ${props => props.theme.shadowLightColor}; padding: .4rem; border-radius: .5rem; } @@ -62,9 +62,9 @@ const PricingWrapper = styled.section` } .toggle-container .active { - background-color: ${props => props.theme.darkJungleGreenColor}; + background-color: ${props => props.theme.secondaryColor}; color: #ccc; - border-color: ${props => props.theme.darkJungleGreenHalfColor}; + border-color: ${props => props.theme.secondaryColor}; } From f618cad2ad42bf75396fc79655edda1b896a7c36 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Tue, 10 Dec 2024 12:02:25 -0600 Subject: [PATCH 15/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/comparison.js | 3 ++- src/sections/Pricing/feature_data.json | 36 +++++++++++++------------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/sections/Pricing/comparison.js b/src/sections/Pricing/comparison.js index 5dcd1f753513..d30b7a59b0b3 100644 --- a/src/sections/Pricing/comparison.js +++ b/src/sections/Pricing/comparison.js @@ -148,10 +148,11 @@ h2, h5{ .category-icon{ margin: 0rem auto; } -.categories{ +.categories { display: flex; align-items: center; margin: 1rem 0; + width: 100% } .docs{ width:1rem; diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 2fc5840801fc..ddd87fb4688b 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -220,6 +220,23 @@ "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/catalog/" }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Brownfield discovery of existing infrastructure", + "feature": "Discover and register existing infrastructure with the Meshery Operator and MeshSync.", + "subscription_tier": "Free", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, { "theme": "", "categoryOrder": "1", @@ -640,7 +657,7 @@ "free": "", "teamDesigner": "x", "teamOperator": "", - "enterprise": "" + "enterprise": "x" }, "pricing_page": "x", "docs": "https://docs.layer5.io/kanvas/designer/comments/" @@ -1189,23 +1206,6 @@ "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/self-hosted/" }, - { - "theme": "", - "categoryOrder": "", - "category": "Lifecycle Management", - "functionOrder": "", - "function": "Greenfield support of existing infrastructure", - "feature": "Discover and register existing infrastructure with the Meshery Operator and MeshSync.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, { "theme": "", "categoryOrder": "", From d053e2715f3e238a6a4b6412e3bf476fca28acc3 Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Wed, 11 Dec 2024 00:25:33 +0000 Subject: [PATCH 16/83] [Docs] Generated documentation for Integration Signed-off-by: l5io --- .../database/icons/color/database-color.svg | 22 +++++++++++++++++++ .../database/icons/white/database-white.svg | 22 +++++++++++++++++++ .../icons/color/publication-color.svg | 22 +++++++++++++++++++ .../icons/white/publication-white.svg | 22 +++++++++++++++++++ .../icons/color/subscription-color.svg | 22 +++++++++++++++++++ .../icons/white/subscription-white.svg | 22 +++++++++++++++++++ .../integrations/cloudnative-pg/index.mdx | 18 +++++++++++++++ 7 files changed, 150 insertions(+) create mode 100644 src/collections/integrations/cloudnative-pg/icons/components/database/icons/color/database-color.svg create mode 100644 src/collections/integrations/cloudnative-pg/icons/components/database/icons/white/database-white.svg create mode 100644 src/collections/integrations/cloudnative-pg/icons/components/publication/icons/color/publication-color.svg create mode 100644 src/collections/integrations/cloudnative-pg/icons/components/publication/icons/white/publication-white.svg create mode 100644 src/collections/integrations/cloudnative-pg/icons/components/subscription/icons/color/subscription-color.svg create mode 100644 src/collections/integrations/cloudnative-pg/icons/components/subscription/icons/white/subscription-white.svg diff --git a/src/collections/integrations/cloudnative-pg/icons/components/database/icons/color/database-color.svg b/src/collections/integrations/cloudnative-pg/icons/components/database/icons/color/database-color.svg new file mode 100644 index 000000000000..0d48a57cc865 --- /dev/null +++ b/src/collections/integrations/cloudnative-pg/icons/components/database/icons/color/database-color.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/cloudnative-pg/icons/components/database/icons/white/database-white.svg b/src/collections/integrations/cloudnative-pg/icons/components/database/icons/white/database-white.svg new file mode 100644 index 000000000000..85acca51dd85 --- /dev/null +++ b/src/collections/integrations/cloudnative-pg/icons/components/database/icons/white/database-white.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/collections/integrations/cloudnative-pg/icons/components/publication/icons/color/publication-color.svg b/src/collections/integrations/cloudnative-pg/icons/components/publication/icons/color/publication-color.svg new file mode 100644 index 000000000000..0d48a57cc865 --- /dev/null +++ b/src/collections/integrations/cloudnative-pg/icons/components/publication/icons/color/publication-color.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/cloudnative-pg/icons/components/publication/icons/white/publication-white.svg b/src/collections/integrations/cloudnative-pg/icons/components/publication/icons/white/publication-white.svg new file mode 100644 index 000000000000..85acca51dd85 --- /dev/null +++ b/src/collections/integrations/cloudnative-pg/icons/components/publication/icons/white/publication-white.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/collections/integrations/cloudnative-pg/icons/components/subscription/icons/color/subscription-color.svg b/src/collections/integrations/cloudnative-pg/icons/components/subscription/icons/color/subscription-color.svg new file mode 100644 index 000000000000..0d48a57cc865 --- /dev/null +++ b/src/collections/integrations/cloudnative-pg/icons/components/subscription/icons/color/subscription-color.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/cloudnative-pg/icons/components/subscription/icons/white/subscription-white.svg b/src/collections/integrations/cloudnative-pg/icons/components/subscription/icons/white/subscription-white.svg new file mode 100644 index 000000000000..85acca51dd85 --- /dev/null +++ b/src/collections/integrations/cloudnative-pg/icons/components/subscription/icons/white/subscription-white.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/collections/integrations/cloudnative-pg/index.mdx b/src/collections/integrations/cloudnative-pg/index.mdx index 18694957d280..9eae4cdf2f1d 100644 --- a/src/collections/integrations/cloudnative-pg/index.mdx +++ b/src/collections/integrations/cloudnative-pg/index.mdx @@ -44,6 +44,24 @@ components: [ "colorIcon": "icons/components/scheduled-backup/icons/color/scheduled-backup-color.svg", "whiteIcon": "icons/components/scheduled-backup/icons/white/scheduled-backup-white.svg", "description": "", +}, +{ +"name": "database", +"colorIcon": "icons/components/database/icons/color/database-color.svg", +"whiteIcon": "icons/components/database/icons/white/database-white.svg", +"description": "", +}, +{ +"name": "publication", +"colorIcon": "icons/components/publication/icons/color/publication-color.svg", +"whiteIcon": "icons/components/publication/icons/white/publication-white.svg", +"description": "", +}, +{ +"name": "subscription", +"colorIcon": "icons/components/subscription/icons/color/subscription-color.svg", +"whiteIcon": "icons/components/subscription/icons/white/subscription-white.svg", +"description": "", }] featureList: [ "Automates PostgreSQL deployment and management", From 245dcfd7e6d805728132fa282a650d1caa704e9b Mon Sep 17 00:00:00 2001 From: l5io Date: Wed, 11 Dec 2024 01:43:53 +0000 Subject: [PATCH 17/83] Updated feature data from spreadsheet Signed-off-by: l5io --- src/sections/Pricing/feature_data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index ddd87fb4688b..33d01ff420e1 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -90,7 +90,7 @@ "category": "Configuration Management", "functionOrder": "2", "function": "Collaborative Design Review", - "feature": "Kanvas’s Designer enables you to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", + "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", From 998071abd5a13bdf6c3486fd57523dd671c46802 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Wed, 11 Dec 2024 08:28:38 -0600 Subject: [PATCH 18/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 668 ++++++++++++------------- src/sections/Pricing/generatePlans.js | 2 +- src/sections/Pricing/pricing.style.js | 4 +- 3 files changed, 320 insertions(+), 354 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 33d01ff420e1..ebb376cdc8b3 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -3,9 +3,9 @@ "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "2", - "function": "350 Built-in Models", - "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", + "functionOrder": "1", + "function": "Whiteboarding", + "feature": "Pencil for freeform drawing of any shapes", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -14,16 +14,16 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "3", - "function": "400 Cloud Native Patterns", - "feature": "", - "subscription_tier": "", + "functionOrder": "1", + "function": "Infrastructure as Design", + "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", + "subscription_tier": "Free", "comparison_tiers": { "free": "x", "teamDesigner": "x", @@ -31,15 +31,15 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "https://cloud.layer5.io/catalog" + "docs": "" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "1", - "function": "Whiteboarding", - "feature": "Pencil for freeform drawing of any shapes", + "functionOrder": "2", + "function": "350 Built-in Models", + "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -48,7 +48,7 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" + "docs": "" }, { "theme": "", @@ -67,23 +67,6 @@ "pricing_page": "x", "docs": "" }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "1", - "function": "Infrastructure as Design", - "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, { "theme": "", "categoryOrder": "0", @@ -101,132 +84,13 @@ "pricing_page": "x", "docs": "https://docs.layer5.io/kanvas/designer/comments/" }, - { - "theme": "", - "categoryOrder": "3", - "category": "GitOps", - "functionOrder": "2", - "function": "GitOps Snapshots", - "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/tutorials/gitops-snapshots/" - }, - { - "theme": "", - "categoryOrder": "3", - "category": "GitOps", - "functionOrder": "4", - "function": "GitOps Integrations", - "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "1", - "function": "Import your IaC", - "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", - "subscription_tier": "", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.meshery.io/extensions/importing-a-design" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "1", - "function": "Premium Import IaC", - "feature": "Bulk import designs from GitHub", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/getting-started/github-integration/" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "1", - "function": "Export Designs", - "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "1", - "function": "Public Catalog", - "feature": "A library of pre-built design patterns and operational templates for common deployment scenarios, simplifying the configuration process and ensuring best practices.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://cloud.layer5.io/catalog" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Catalog", - "functionOrder": "1", - "function": "Private Catalog", - "feature": "Privately publish and share reusable design patterns and operational templates within your organization.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/catalog/" - }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "1", - "function": "Brownfield discovery of existing infrastructure", - "feature": "Discover and register existing infrastructure with the Meshery Operator and MeshSync.", + "function": "Discovery of existing infrastructure", + "feature": "Discover clusters and/or import existing Kubernetes applications. Visualize their architecture, and gain a clear understanding of how different components interact.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -242,8 +106,8 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "1", - "function": "Topology visualization", - "feature": "Discover clusters and/or import existing Kubernetes applications. Visualize their architecture, and gain a clear understanding of how different components interact.", + "function": "Robust CLI", + "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -252,15 +116,15 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.meshery.io/reference/mesheryctl" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "2", - "function": "Design dry-run", - "feature": "Test and verify configuration changes in a separate environment.", + "functionOrder": "1", + "function": "Web-based Terminal", + "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -269,15 +133,15 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/operator/" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "2", - "function": "Multiple Kubernetes Clusters", - "feature": "Management and ongoing synchronization of cloud native infrastructure across any number of Clouds and Kubernetes clusters.", + "functionOrder": "1", + "function": "Standard Events and Metrics", + "feature": "Real-time resource metrics.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -292,9 +156,9 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "2", - "function": "AWS and GCP", - "feature": "Management and ongoing synchronization of AWS and GCP services, workloads and changes across any number of accounts.", + "functionOrder": "1", + "function": "Views", + "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -302,33 +166,16 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Robust CLI", - "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.meshery.io/reference/mesheryctl" + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "1", - "function": "Web-based Terminal", - "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", + "function": "Assign Views to Workspace", + "feature": "Add new views to workspace", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -336,16 +183,16 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/operator/" + "pricing_page": "", + "docs": "" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "1", - "function": "Standard Events and Metrics", - "feature": "Real-time resource metrics.", + "function": "Export views", + "feature": "Export views to JSON format", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -353,16 +200,16 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#5-export-a-view" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "1", - "function": "Views", - "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", + "function": "Share Views", + "feature": "Share Views", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -371,15 +218,15 @@ "enterprise": "x" }, "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" + "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "1", - "function": "Assign Views to Workspace", - "feature": "Add new views to workspace", + "function": "Clone Views", + "feature": "Clone Views", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -395,8 +242,8 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "1", - "function": "Export views", - "feature": "Export views to JSON format", + "function": "Stream Container Logs", + "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -404,16 +251,16 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#5-export-a-view" + "pricing_page": "x", + "docs": "" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Share Views", - "feature": "Share Views", + "functionOrder": "2", + "function": "Design dry-run", + "feature": "Test and verify configuration changes in a separate environment.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -421,16 +268,16 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view" + "pricing_page": "x", + "docs": "" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Clone Views", - "feature": "Clone Views", + "functionOrder": "2", + "function": "Multiple Kubernetes Clusters", + "feature": "Management and ongoing synchronization of cloud native infrastructure across any number of Clouds and Kubernetes clusters.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -438,16 +285,16 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Stream Container Logs", - "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", + "functionOrder": "2", + "function": "AWS and GCP", + "feature": "Management and ongoing synchronization of AWS and GCP services, workloads and changes across any number of accounts.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -495,10 +342,10 @@ { "theme": "", "categoryOrder": "3", - "category": "Workspaces", - "functionOrder": "3", - "function": "My Workspace", - "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", + "category": "Performance Management", + "functionOrder": "1", + "function": "Load Generation and Performance Testing", + "feature": "Continuous visibility across all of your clusters and workloads. Single or multiple results in standardized format.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -512,27 +359,44 @@ { "theme": "", "categoryOrder": "3", - "category": "Workspaces", - "functionOrder": "3", - "function": "Shared Workspaces", - "feature": "Shared Workspaces are collaborative spaces that you can use to store and collaborate on files within and between teams. Easily share files with customizable permissions (edit, comment, view). Create up to 10 shared workspaces per organization.", - "subscription_tier": "Enterprise", + "category": "GitOps", + "functionOrder": "2", + "function": "GitOps Snapshots", + "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", + "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", - "teamDesigner": "", + "teamDesigner": "x", "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/cloud/tutorials/gitops-snapshots/" }, { "theme": "", "categoryOrder": "3", "category": "Performance Management", - "functionOrder": "1", - "function": "Load Generation and Performance Testing", - "feature": "Continuous visibility across all of your clusters and workloads. Single or multiple results in standardized format.", + "functionOrder": "2", + "function": "Performance Profiles", + "feature": "Storage of 500 result sets in Provider for a given Performance Profile. Capacity, soak, and burst testing supporting HTTP, HTTPS, TCP, gRPC load generation with configurable test duration, RPS, and request concurrency.", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "3", + "category": "Workspaces", + "functionOrder": "3", + "function": "My Workspace", + "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -546,44 +410,44 @@ { "theme": "", "categoryOrder": "3", - "category": "Performance Management", - "functionOrder": "4", - "function": "Comparative Testing", - "feature": "Visual comparison of performance test results.", - "subscription_tier": "TeamOperator", + "category": "Workspaces", + "functionOrder": "3", + "function": "Shared Workspaces", + "feature": "Shared Workspaces are collaborative spaces that you can use to store and collaborate on files within and between teams. Easily share files with customizable permissions (edit, comment, view). Create up to 10 shared workspaces per organization.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", "categoryOrder": "3", - "category": "Performance Management", - "functionOrder": "5", - "function": "Capacity, soak, and burst testing", - "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", - "subscription_tier": "TeamOperator", + "category": "GitOps", + "functionOrder": "4", + "function": "GitOps Integrations", + "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", "categoryOrder": "3", "category": "Performance Management", - "functionOrder": "2", - "function": "Performance Profiles", - "feature": "Storage of 500 result sets in Provider for a given Performance Profile. Capacity, soak, and burst testing supporting HTTP, HTTPS, TCP, gRPC load generation with configurable test duration, RPS, and request concurrency.", + "functionOrder": "4", + "function": "Comparative Testing", + "feature": "Visual comparison of performance test results.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -596,19 +460,19 @@ }, { "theme": "", - "categoryOrder": "4", - "category": "Collaboration", - "functionOrder": "3", - "function": "Manage access to views", - "feature": "Create and collaborate in online operational topologies in real-time.", - "subscription_tier": "", + "categoryOrder": "3", + "category": "Performance Management", + "functionOrder": "5", + "function": "Capacity, soak, and burst testing", + "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { @@ -645,6 +509,23 @@ "pricing_page": "x", "docs": "" }, + { + "theme": "", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "3", + "function": "Manage access to views", + "feature": "Create and collaborate in online operational topologies in real-time.", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, { "theme": "", "categoryOrder": "4", @@ -700,27 +581,27 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "3", - "function": "Resource Access Management", - "feature": "Manage access to designs on a team-by-team, or individual user, basis.", - "subscription_tier": "TeamDesigner", + "functionOrder": "1", + "function": "Built-in Roles", + "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/cloud/security/roles/" }, { "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", "functionOrder": "1", - "function": "Built-in Roles", - "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin", - "subscription_tier": "Free", + "function": "Identity through OAuth", + "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", + "subscription_tier": "", "comparison_tiers": { "free": "x", "teamDesigner": "x", @@ -728,50 +609,50 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/security/roles/" + "docs": "" }, { "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "1", - "function": "Identity through OAuth", - "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", - "subscription_tier": "", + "functionOrder": "2", + "function": "Custom Roles", + "feature": "Assign User Roles, Assign Keychains to Roles", + "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "x", - "teamDesigner": "x", + "free": "", + "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "4", - "function": "User-defined Roles", - "feature": "Customizable roles for specific permission assignments", - "subscription_tier": "Enterprise", + "functionOrder": "3", + "function": "Resource Access Management", + "feature": "Manage access to designs on a team-by-team, or individual user, basis.", + "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", - "teamDesigner": "", + "teamDesigner": "x", "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/security/roles/" + "docs": "" }, { "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "6", - "function": "User Provisioning through SCIM", - "feature": "Use your existing accounts and centrally manage access.", - "subscription_tier": "", + "functionOrder": "4", + "function": "User-defined Roles", + "feature": "Customizable roles for specific permission assignments", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", @@ -779,7 +660,7 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/cloud/security/roles/" }, { "theme": "", @@ -802,17 +683,17 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "2", - "function": "Custom Roles", - "feature": "Assign User Roles, Assign Keychains to Roles", - "subscription_tier": "Enterprise", + "functionOrder": "6", + "function": "User Provisioning through SCIM", + "feature": "Use your existing accounts and centrally manage access.", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { @@ -849,6 +730,23 @@ "pricing_page": "", "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" }, + { + "theme": "", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "1", + "function": "Manage Workspace Team and User Access", + "feature": "Assign designs to workspaces", + "subscription_tier": "Free", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, { "theme": "", "categoryOrder": "6", @@ -885,71 +783,88 @@ }, { "theme": "", - "categoryOrder": "6", - "category": "Workspaces", + "categoryOrder": "7", + "category": "Catalog", "functionOrder": "1", - "function": "Manage Workspace Team and User Access", - "feature": "Assign designs to workspaces", - "subscription_tier": "Free", + "function": "Import your IaC", + "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", + "subscription_tier": "", "comparison_tiers": { "free": "x", "teamDesigner": "x", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "" + "pricing_page": "x", + "docs": "https://docs.meshery.io/extensions/importing-a-design" }, { "theme": "", "categoryOrder": "7", "category": "Catalog", - "functionOrder": "4", - "function": "Orchestration: Pre-provisioning", - "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", - "subscription_tier": "TeamOperator", + "functionOrder": "1", + "function": "Premium Import IaC", + "feature": "Bulk import designs from GitHub", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "https://docs.layer5.io/cloud/getting-started/github-integration/" + }, + { + "theme": "", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "1", + "function": "Export Designs", + "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", + "subscription_tier": "Free", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", "teamOperator": "x", - "enterprise": "" + "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/" + "pricing_page": "x", + "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" }, { "theme": "", "categoryOrder": "7", "category": "Catalog", - "functionOrder": "4", - "function": "Orchestration: Provisioning", - "feature": "Provision and deprovision cloud native infrastructure using your designs.", - "subscription_tier": "TeamOperator", + "functionOrder": "1", + "function": "Public Catalog: 400 Cloud Native Patterns", + "feature": "A library of pre-built design patterns and operational templates for common deployment scenarios, simplifying the configuration process and ensuring best practices.", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", - "teamDesigner": "", + "free": "x", + "teamDesigner": "x", "teamOperator": "x", - "enterprise": "" + "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/" + "pricing_page": "x", + "docs": "https://cloud.layer5.io/catalog" }, { "theme": "", "categoryOrder": "7", "category": "Catalog", - "functionOrder": "4", - "function": "Orchestration: Deprovisioning", - "feature": "Retract all resources used in a Meshery design from the cluster", - "subscription_tier": "TeamOperator", + "functionOrder": "1", + "function": "Private Catalog", + "feature": "Privately publish and share reusable design patterns and operational templates within your organization.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", - "enterprise": "" + "teamOperator": "", + "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/" + "pricing_page": "x", + "docs": "https://docs.layer5.io/cloud/catalog/" }, { "theme": "", @@ -985,6 +900,57 @@ "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/" }, + { + "theme": "", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "4", + "function": "Orchestration: Pre-provisioning", + "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/" + }, + { + "theme": "", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "4", + "function": "Orchestration: Provisioning", + "feature": "Provision and deprovision cloud native infrastructure using your designs.", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/" + }, + { + "theme": "", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "4", + "function": "Orchestration: Deprovisioning", + "feature": "Retract all resources used in a Meshery design from the cluster", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/" + }, { "theme": "", "categoryOrder": "7", @@ -1087,40 +1053,6 @@ "pricing_page": "", "docs": "" }, - { - "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "4", - "function": "Enterprise API & Extensible Webhooks", - "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "3", - "function": "Managed Service Provider", - "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, { "theme": "", "categoryOrder": "9", @@ -1155,6 +1087,23 @@ "pricing_page": "", "docs": "" }, + { + "theme": "", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "3", + "function": "Managed Service Provider", + "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, { "theme": "", "categoryOrder": "9", @@ -1172,6 +1121,23 @@ "pricing_page": "", "docs": "" }, + { + "theme": "", + "categoryOrder": "9", + "category": "Support and Deployment", + "functionOrder": "4", + "function": "Enterprise API & Extensible Webhooks", + "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, { "theme": "", "categoryOrder": "9", diff --git a/src/sections/Pricing/generatePlans.js b/src/sections/Pricing/generatePlans.js index a10d655d5180..d35a4b6816ac 100644 --- a/src/sections/Pricing/generatePlans.js +++ b/src/sections/Pricing/generatePlans.js @@ -11,7 +11,7 @@ function generatePlans(data) { monthlyprice: 0, yearlyprice: 0, byline: "The basics for individuals and organizations", - byline2: "", + byline2: " Everything included in Open Source, plus...", button: ["Join for Free", "https://cloud.layer5.io"] }, "TeamDesigner": { diff --git a/src/sections/Pricing/pricing.style.js b/src/sections/Pricing/pricing.style.js index e976ff42d91f..a94de6745a8f 100644 --- a/src/sections/Pricing/pricing.style.js +++ b/src/sections/Pricing/pricing.style.js @@ -56,7 +56,7 @@ const PricingWrapper = styled.section` .toggle-container span { cursor: pointer; padding: .5rem 1rem; - color: #222; + color: solid ${props => props.theme.shadowLightColor}; border-radius: .5rem; transition: background-color 0.3s, color 0.3s; } @@ -110,7 +110,7 @@ const PricingWrapper = styled.section` .inactive { background-color: ${props => props.theme.primaryLightColor}; - padding: 0.2rem; + padding: 0.rem; transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); } } From 60f8ffd9d364ae29375836935c1558feaba5c760 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Wed, 11 Dec 2024 08:47:21 -0600 Subject: [PATCH 19/83] Fix wording in pricing plan description for clarity Signed-off-by: Lee Calcote --- src/sections/Pricing/generatePlans.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sections/Pricing/generatePlans.js b/src/sections/Pricing/generatePlans.js index d35a4b6816ac..94a1027ec2a9 100644 --- a/src/sections/Pricing/generatePlans.js +++ b/src/sections/Pricing/generatePlans.js @@ -11,7 +11,7 @@ function generatePlans(data) { monthlyprice: 0, yearlyprice: 0, byline: "The basics for individuals and organizations", - byline2: " Everything included in Open Source, plus...", + byline2: " Everything from Open Source, plus...", button: ["Join for Free", "https://cloud.layer5.io"] }, "TeamDesigner": { From 89f0563744a7b42b786be7bf649779e9b3fce640 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Wed, 11 Dec 2024 15:49:44 -0600 Subject: [PATCH 20/83] Refactor pricing and feature names for consistency and clarity Signed-off-by: Lee Calcote --- .github/build/features-to-json.js | 28 +- src/sections/Pricing/feature_data.json | 286 +- src/sections/Pricing/feature_data_old.json | 4246 -------------------- src/sections/Pricing/generateDetails.js | 4 +- 4 files changed, 110 insertions(+), 4454 deletions(-) delete mode 100644 src/sections/Pricing/feature_data_old.json diff --git a/.github/build/features-to-json.js b/.github/build/features-to-json.js index b9940d709d4f..36baabe0d599 100755 --- a/.github/build/features-to-json.js +++ b/.github/build/features-to-json.js @@ -13,11 +13,11 @@ const headers = [ "Function", "Feature", "Subscription Tier", - "Free Tier", - "TeamDesigner Tier", - "TeamOperator Tier", - "Enterprise Tier", - "Pricing Page?", + "Free", + "Team Designer", + "Team Operator", + "Enterprise", + "Pricing Page", "Docs", ]; @@ -36,12 +36,12 @@ async function processCSV() { const filteredData = rows.map(row => { try { - const pricingPage = row["Pricing Page?"]?.toLowerCase() || ""; + const pricingPage = row["Pricing Page"]?.toLowerCase() || ""; const hasXTier = [ - "Free Tier", - "TeamDesigner Tier", - "TeamOperator Tier", - "Enterprise Tier"] + "Free", + "Team Designer", + "Team Operator", + "Enterprise"] .some(tier => row[tier]?.trim().toLowerCase() === "x"); const includeRow = hasXTier || (pricingPage && ["x", "X"].includes(pricingPage.toLowerCase())); @@ -57,11 +57,11 @@ async function processCSV() { subscription_tier: row["Subscription Tier"], comparison_tiers: { free: row["Free Tier"], - teamDesigner: row["TeamDesigner Tier"], - teamOperator: row["TeamOperator Tier"], - enterprise: row["Enterprise Tier"], + teamDesigner: row["Team Designer"], + teamOperator: row["Team Operator"], + enterprise: row["Enterprise"], }, - pricing_page: row["Pricing Page?"], + pricing_page: row["Pricing Page"], docs: row["Docs"] }; } catch (error) { diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index ebb376cdc8b3..86f564ab0e0c 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -1,14 +1,13 @@ [ { "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", + "categoryOrder": "2", + "category": "Kanvas", "functionOrder": "1", "function": "Whiteboarding", "feature": "Pencil for freeform drawing of any shapes", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -25,7 +24,6 @@ "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -42,7 +40,6 @@ "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -52,14 +49,13 @@ }, { "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "2", + "categoryOrder": "2", + "category": "Kanvas", + "functionOrder": "3", "function": "Layers", "feature": "Use layers to show, hide, and group objects on the same board—perfect for building detailed diagrams or revealing project phases.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -76,7 +72,6 @@ "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -93,7 +88,6 @@ "feature": "Discover clusters and/or import existing Kubernetes applications. Visualize their architecture, and gain a clear understanding of how different components interact.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -110,7 +104,6 @@ "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -127,7 +120,6 @@ "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -144,7 +136,6 @@ "feature": "Real-time resource metrics.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -161,7 +152,6 @@ "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -178,7 +168,6 @@ "feature": "Add new views to workspace", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -195,7 +184,6 @@ "feature": "Export views to JSON format", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -212,7 +200,6 @@ "feature": "Share Views", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -229,7 +216,6 @@ "feature": "Clone Views", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -246,7 +232,6 @@ "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -259,11 +244,10 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "2", - "function": "Design dry-run", + "function": "Deployment dry-run", "feature": "Test and verify configuration changes in a separate environment.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -280,7 +264,6 @@ "feature": "Management and ongoing synchronization of cloud native infrastructure across any number of Clouds and Kubernetes clusters.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -297,7 +280,6 @@ "feature": "Management and ongoing synchronization of AWS and GCP services, workloads and changes across any number of accounts.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -309,29 +291,11 @@ "theme": "", "categoryOrder": "2", "category": "Kanvas", - "functionOrder": "1", + "functionOrder": "2", "function": "500 Built-in Shapes, Pen and Pencil", - "feature": "Draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to delete a shape from canvas.", - "subscription_tier": "", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "2", - "category": "Kanvas", - "functionOrder": "1", - "function": "Non-semantic Annotations", - "feature": "Kanvas Designer allows you to draw shapes, lines, text, customize style, drag and drop images and text files to represent the components and relationships of between your infrastructure components.", + "feature": "Draw shapes, lines, text, customize style, drag and drop images and text files to represent the components and relationships of between your infrastructure components.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -348,7 +312,6 @@ "feature": "Continuous visibility across all of your clusters and workloads. Single or multiple results in standardized format.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -365,7 +328,6 @@ "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -382,7 +344,6 @@ "feature": "Storage of 500 result sets in Provider for a given Performance Profile. Capacity, soak, and burst testing supporting HTTP, HTTPS, TCP, gRPC load generation with configurable test duration, RPS, and request concurrency.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -399,7 +360,6 @@ "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -416,7 +376,6 @@ "feature": "Shared Workspaces are collaborative spaces that you can use to store and collaborate on files within and between teams. Easily share files with customizable permissions (edit, comment, view). Create up to 10 shared workspaces per organization.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -433,7 +392,6 @@ "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -450,7 +408,6 @@ "feature": "Visual comparison of performance test results.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -467,7 +424,6 @@ "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -480,13 +436,12 @@ "categoryOrder": "4", "category": "Collaboration", "functionOrder": "1", - "function": "Create and collaborate in online designs in real-time.", + "function": "Collaborative Infrastructure Design", "feature": "Create and collaborate in online designs in real-time.", - "subscription_tier": "Free", + "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { - "free": "x", "teamDesigner": "x", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", @@ -496,13 +451,12 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "2", - "function": "Team Chat", - "feature": "Message in real-time, unattached to a specific design. Control who can pariticpate in the discussion.", - "subscription_tier": "Enterprise", + "functionOrder": "1", + "function": "Collaborative Infrastructure Views", + "feature": "Simultaneously manage your infrastructure using shared views in real-time.", + "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", - "teamDesigner": "x", + "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, @@ -518,7 +472,6 @@ "feature": "Create and collaborate in online operational topologies in real-time.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -526,23 +479,6 @@ "pricing_page": "x", "docs": "" }, - { - "theme": "", - "categoryOrder": "4", - "category": "Collaboration", - "functionOrder": "", - "function": "Design Reviews", - "feature": "Discuss any design by leaving review comments or notes on a specific design. Control who has access, notify discussion participants with updates, and link from anywhere.", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/comments/" - }, { "theme": "", "categoryOrder": "4", @@ -552,7 +488,6 @@ "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -569,7 +504,6 @@ "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -586,7 +520,6 @@ "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -603,7 +536,6 @@ "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -620,7 +552,6 @@ "feature": "Assign User Roles, Assign Keychains to Roles", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -637,7 +568,6 @@ "feature": "Manage access to designs on a team-by-team, or individual user, basis.", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -654,7 +584,6 @@ "feature": "Customizable roles for specific permission assignments", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -671,24 +600,6 @@ "feature": "Own and control the user accounts of your organization members through your identity provider (IdP).", "subscription_tier": "", "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "6", - "function": "User Provisioning through SCIM", - "feature": "Use your existing accounts and centrally manage access.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -696,40 +607,6 @@ "pricing_page": "x", "docs": "" }, - { - "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "6", - "function": "Public Profiles for Users", - "feature": "See public user profile details, public activities and public resources.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "6", - "function": "Self-service user accounts", - "feature": "New user sign-up verification. Self-service password recovery.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" - }, { "theme": "", "categoryOrder": "6", @@ -739,7 +616,6 @@ "feature": "Assign designs to workspaces", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -756,7 +632,6 @@ "feature": "Grant workspaces access to environments and their resources.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -773,7 +648,6 @@ "feature": "Move designs, views, and models between Shared Workspaces.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -783,14 +657,13 @@ }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", + "categoryOrder": "0", + "category": "Configuration Management", "functionOrder": "1", "function": "Import your IaC", "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -800,14 +673,13 @@ }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", + "categoryOrder": "0", + "category": "Configuration Management", "functionOrder": "1", - "function": "Premium Import IaC", + "function": "Bulk Import IaC", "feature": "Bulk import designs from GitHub", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -817,14 +689,13 @@ }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", + "categoryOrder": "0", + "category": "Configuration Management", "functionOrder": "1", "function": "Export Designs", "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -841,7 +712,6 @@ "feature": "A library of pre-built design patterns and operational templates for common deployment scenarios, simplifying the configuration process and ensuring best practices.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -858,7 +728,6 @@ "feature": "Privately publish and share reusable design patterns and operational templates within your organization.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -875,7 +744,6 @@ "feature": "Share design with anyone within your organization, and make your design easily accessible to all relevant team members.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -892,7 +760,6 @@ "feature": "Clone any published design to customise it according to your use cases", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -902,14 +769,13 @@ }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", + "categoryOrder": "1", + "category": "Lifecycle Management", "functionOrder": "4", "function": "Orchestration: Pre-provisioning", "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -919,14 +785,13 @@ }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", + "categoryOrder": "1", + "category": "Lifecycle Management", "functionOrder": "4", "function": "Orchestration: Provisioning", "feature": "Provision and deprovision cloud native infrastructure using your designs.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -936,14 +801,13 @@ }, { "theme": "", - "categoryOrder": "7", - "category": "Catalog", + "categoryOrder": "1", + "category": "Lifecycle Management", "functionOrder": "4", "function": "Orchestration: Deprovisioning", "feature": "Retract all resources used in a Meshery design from the cluster", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -960,7 +824,6 @@ "feature": "Change management through a process of curation of content to be published in the catalog.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -977,7 +840,6 @@ "feature": "Detailed accounting of user activity. Historical record or each action taken.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -994,7 +856,6 @@ "feature": "15 built-in keychains.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1011,7 +872,6 @@ "feature": "Audit history of when a key is used and who used the key.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1028,7 +888,6 @@ "feature": "Assign connections to environment", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1045,7 +904,6 @@ "feature": "Expiring and non-expiring API tokens. Visibility into active and expired user sessions.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1062,7 +920,6 @@ "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -1079,7 +936,6 @@ "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "x", "enterprise": "" @@ -1096,7 +952,6 @@ "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1113,7 +968,6 @@ "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1130,7 +984,6 @@ "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1147,7 +1000,6 @@ "feature": "Pay bills via invoice, rather than using your credit card.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1164,7 +1016,6 @@ "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1172,6 +1023,70 @@ "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/self-hosted/" }, + { + "theme": "", + "categoryOrder": "10", + "category": "Managed Service Provider", + "functionOrder": "6", + "function": "User Provisioning through SCIM", + "feature": "Use your existing accounts and centrally manage access.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "10", + "category": "Managed Service Provider", + "functionOrder": "6", + "function": "Public Profiles for Users", + "feature": "See public user profile details, public activities and public resources.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "10", + "category": "Managed Service Provider", + "functionOrder": "6", + "function": "Recognition Program Badges", + "feature": "Badges are visual indicators of achievements or milestones that users can earn in order to recognizing activity milestones, encouraging positive behavior, mark progress, and gamifying platform experience.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "10", + "category": "Managed Service Provider", + "functionOrder": "6", + "function": "Self-service User Accounts", + "feature": "New user sign-up verification. Self-service password recovery.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" + }, { "theme": "", "categoryOrder": "", @@ -1181,7 +1096,6 @@ "feature": "Link your social sign-in with GitHub to your existing user account.", "subscription_tier": "Team", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1198,7 +1112,6 @@ "feature": "Link your social sign-in with Google to your existing user account.", "subscription_tier": "Team", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1215,7 +1128,6 @@ "feature": "List and see details of active and inactive subscriptions.", "subscription_tier": "Team", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1232,7 +1144,6 @@ "feature": "Explore subscription plans and compare their features.", "subscription_tier": "Team", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1249,7 +1160,6 @@ "feature": "Establish new organization for organizing teams, users, and resource access.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1266,7 +1176,6 @@ "feature": "Day 2 support for ongoing synchronization of Kubernetes configuration, workloads and service mesh changes.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1283,7 +1192,6 @@ "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1300,7 +1208,6 @@ "feature": "This permission grants the user the ability to manage infrastructure life cycles within meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1317,7 +1224,6 @@ "feature": "Manage configuration for applications like EmojiVoto, HTTPBin, Image Hub, Istio Book Info", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1334,7 +1240,6 @@ "feature": "Configure infrastructure with some predefined options like Automatic Sidecar injection, Envoy Filter, Policy", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1351,7 +1256,6 @@ "feature": "Validate cloud native infrastructure configuration against best practices like Analyze Running Configuration, SMI conformance", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1368,7 +1272,6 @@ "feature": "This permission grants the user the ability to apply custom configuration and customize existing configuration of thier cloud native infrastructure", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1385,7 +1288,6 @@ "feature": "This permission grants the user the ability to deploy their infrastructure to a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1402,7 +1304,6 @@ "feature": "This permission grants the user the ability to undeploy their infrastructure from a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1419,7 +1320,6 @@ "feature": "This permission grants the user the ability to view all cloud native infrastructure in Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" diff --git a/src/sections/Pricing/feature_data_old.json b/src/sections/Pricing/feature_data_old.json deleted file mode 100644 index 66a7d422ffc9..000000000000 --- a/src/sections/Pricing/feature_data_old.json +++ /dev/null @@ -1,4246 +0,0 @@ -[ - { - "documentation": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile", - "entire_row": { - "Category": "Profile", - "Documented?": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile", - "Feature": "View your profile.", - "Function": "View Profile", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Account Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/catalog/", - "entire_row": { - "Category": "Catalog", - "Documented?": "https://docs.layer5.io/cloud/catalog/", - "Feature": "Export a copy of a design to your local system.", - "Function": "", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/designer/share-resource/", - "entire_row": { - "Category": "Catalog", - "Documented?": "https://docs.layer5.io/kanvas/designer/share-resource/", - "Feature": "Share design with anyone within your organization, and make your design easily accessible to all relevant team members.", - "Function": "Share Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/", - "entire_row": { - "Category": "Catalog", - "Documented?": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/", - "Feature": "Clone any published design to customise it according to your use cases", - "Function": "Clone Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/creating-a-meshery-design", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.meshery.io/guides/configuration-management/creating-a-meshery-design", - "Feature": "Create new Meshery design", - "Function": "Create new design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/extensions/importing-a-design", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.meshery.io/extensions/importing-a-design", - "Feature": "Import a design", - "Function": "Import Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "Feature": "Import a design from Kubernetes Manifest", - "Function": "Import Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/getting-started/starting-helm/#importing-a-design", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.layer5.io/kanvas/getting-started/starting-helm/#importing-a-design", - "Feature": "Import a design from Meshery Design (YAML)", - "Function": "Import Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "Feature": "Import a design from Helm Chart", - "Function": "Import Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "Feature": "Import a design from Docker Compose", - "Function": "Import Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Designs", - "Documented?": "", - "Feature": "Import a design from Kubernetes Manifest, Meshery Design (YAML), Helm Chart, Docker Compose or Meshery Design (OCI Image)", - "Function": "Standard Import Design", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/getting-started/github-integration/#connect-github-and-import-designs", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.layer5.io/cloud/getting-started/github-integration/#connect-github-and-import-designs", - "Feature": "Import a design from GitHub", - "Function": "Import Design", - "Pricing page?": "", - "Subscription Tier": "Enterprise", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Designs", - "Documented?": "", - "Feature": "Import a design from GitHub, GitLab, BitBucket", - "Function": "Premium Design Import Features", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file", - "Feature": "Export a latest version of design in Meshery Design (YAML format)", - "Function": "Export Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-an-oci-image", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-an-oci-image", - "Feature": "Export a latest version of design in Meshery Design (OCI format)", - "Function": "Export Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Designs", - "Documented?": "", - "Feature": "Export a latest version of design in Meshery Design (OCI format, YAML format) Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose)", - "Function": "Standard Export Design", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Designs", - "Documented?": "", - "Feature": "Export a design to GitHub, GitLab, BitBucket", - "Function": "Premium Export Design Features", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Designs", - "Documented?": "", - "Feature": "Import and export your designs using your local filesystem or remote URL.", - "Function": "Cloud Native Design Patterns", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/extensions/publishing-a-design", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.meshery.io/extensions/publishing-a-design", - "Feature": "Publish a design", - "Function": "Publish Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/", - "Feature": "Validate a design", - "Function": "Validate Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/", - "Feature": "Deploy a design", - "Function": "Deploy Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/", - "entire_row": { - "Category": "Designs", - "Documented?": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/", - "Feature": "Retract all resources used in a Meshery design from the cluster", - "Function": "Undeploy Design", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/filter-management", - "entire_row": { - "Category": "Filters", - "Documented?": "https://docs.meshery.io/guides/configuration-management/filter-management", - "Feature": "Import a filter", - "Function": "Import Filter", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/filter-management", - "entire_row": { - "Category": "Filters", - "Documented?": "https://docs.meshery.io/guides/configuration-management/filter-management", - "Feature": "Publish WASM Filter", - "Function": "Publish WASM Filter", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/filter-management", - "entire_row": { - "Category": "Filters", - "Documented?": "https://docs.meshery.io/guides/configuration-management/filter-management", - "Feature": "Unpublish WASM Filter", - "Function": "Unpublish WASM Filter", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/filter-management", - "entire_row": { - "Category": "Filters", - "Documented?": "https://docs.meshery.io/guides/configuration-management/filter-management", - "Feature": "Download a WASM filter", - "Function": "Download a WASM filter", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/filter-management", - "entire_row": { - "Category": "Filters", - "Documented?": "https://docs.meshery.io/guides/configuration-management/filter-management", - "Feature": "Check information or details of a WASM filter", - "Function": "Details of WASM Filter", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/filter-management", - "entire_row": { - "Category": "Filters", - "Documented?": "https://docs.meshery.io/guides/configuration-management/filter-management", - "Feature": "Edit WASM filter", - "Function": "Edit WASM filter", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/filter-management", - "entire_row": { - "Category": "Filters", - "Documented?": "https://docs.meshery.io/guides/configuration-management/filter-management", - "Feature": "Clone WASM filter from catalog, which allows customizing filter and use it in design", - "Function": "Clone WASM Filter", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "documentation": "https://docs.meshery.io/guides/configuration-management/filter-management", - "entire_row": { - "Category": "Filters", - "Documented?": "https://docs.meshery.io/guides/configuration-management/filter-management", - "Feature": "Delete WASM filter permanently from catalog.", - "Function": "Delete WASM Filter", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Filters", - "Documented?": "", - "Feature": "Import, Unpublish, Publish, Download, Edit, Clone, Delete, Details of WASM Filter", - "Function": "WASM Filter and filter", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Team Chat", - "Documented?": "", - "Feature": "Message in real-time, unattached to a specific design. Control who can pariticpate in the discussion.", - "Function": "Message in real-time", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Collaboration" - } - }, - { - "pricing_page": "true", - "documentation": "https://docs.layer5.io/kanvas/designer/comments/", - "entire_row": { - "Category": "Design Reviews", - "Documented?": "https://docs.layer5.io/kanvas/designer/comments/", - "Feature": "Discuss any design by leaving review comments or notes on a specific design. Control who has access, notify discussion participants with updates, and link from anywhere.", - "Function": "Discuss any design by leaving review comments", - "Pricing page?": "X", - "Subscription Tier": "Team", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Collaboration" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Organization and Team Management", - "Documented?": "", - "Feature": "Manage access to designs on a team-by-team, or individual user, basis.", - "Function": "Manage access to designs", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Collaboration" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Built-in Roles", - "Documented?": "", - "Feature": "Static - out of the box", - "Function": "Built-in Roles", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Identity & Access Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "User-defined Roles", - "Documented?": "", - "Feature": "Customizable roles for specific permission assignments", - "Function": "User-defined Roles", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Identity & Access Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Authentication: LDAP", - "Documented?": "", - "Feature": "Access Meshery Server using your existing accounts and centrally manage repository access.", - "Function": "Authentication: LDAP", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Identity & Access Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Authentication: SAML", - "Documented?": "", - "Feature": "Use an identity provider to manage the identities of GitHub users and applications.", - "Function": "Authentication: SAML", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Identity & Access Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/identity/users/user-management/#add-user-remove-user", - "entire_row": { - "Category": "Users", - "Documented?": "https://docs.layer5.io/cloud/identity/users/user-management/#add-user-remove-user", - "Feature": "Delete a user account", - "Function": "Delete User", - "Pricing page?": "", - "Subscription Tier": "Team", - "Tech": "", - "Theme (also: Keychain Name)": "Identity & Access Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/identity/users/user-management/#create-user", - "entire_row": { - "Category": "Users", - "Documented?": "https://docs.layer5.io/cloud/identity/users/user-management/#create-user", - "Feature": "Create a new user", - "Function": "Create User", - "Pricing page?": "", - "Subscription Tier": "", - "Tech": "", - "Theme (also: Keychain Name)": "Identity & Access Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/identity/teams/", - "entire_row": { - "Category": "Teams", - "Documented?": "https://docs.layer5.io/cloud/identity/teams/", - "Feature": "Directly create a new user account within a team.", - "Function": "Add User to Team", - "Pricing page?": "", - "Subscription Tier": "Team", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Identity & Access Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/identity/organizations/", - "entire_row": { - "Category": "Organizations", - "Documented?": "https://docs.layer5.io/cloud/identity/organizations/", - "Feature": "Establish new organization for organizing teams, users, and resource access.", - "Function": "Create Organization", - "Pricing page?": "", - "Subscription Tier": "Enterprise", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Identity & Access Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Dry-run", - "Documented?": "", - "Feature": "Test and verify configuration changes in a separate environment.", - "Function": "Dry-run", - "Pricing page?": "X", - "Subscription Tier": "Team", - "Tech": "Server", - "Theme (also: Keychain Name)": "Lifecycle Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Multiple Kubernetes Clusters", - "Documented?": "", - "Feature": "Ongoing synchronization of Kubernetes configuration, workloads and service mesh changes across any number of Kubernetes clusters.", - "Function": "Multiple Kubernetes Clusters", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Lifecycle Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "mesheryctl", - "Documented?": "", - "Feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface", - "Function": "all mesheryctl commands", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Golang", - "Theme (also: Keychain Name)": "Meshery System" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/catalog/metrics/", - "entire_row": { - "Category": "Settings", - "Documented?": "https://docs.layer5.io/cloud/catalog/metrics/", - "Feature": "View already configured metrics", - "Function": "View Metrics", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Meshery System" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Service Performance", - "Documented?": "", - "Feature": "Continuous visibility across all of your clusters and workloads.", - "Function": "Service Performance", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/concepts/relationships/#2-hierarchical-relationships", - "entire_row": { - "Category": "Design Patterns", - "Documented?": "https://docs.layer5.io/kanvas/concepts/relationships/#2-hierarchical-relationships", - "Feature": "", - "Function": "Use heirarchical relationships", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Design Patterns", - "Documented?": "", - "Feature": "This permission grants the user the ability to undo/redo any action in done in Kanvas", - "Function": "Undo or Redo", - "Pricing page?": "X", - "Subscription Tier": "Team", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "pricing_page": "true", - "documentation": "https://docs.layer5.io/kanvas/designer/whiteboarding/", - "entire_row": { - "Category": "Design Patterns", - "Documented?": "https://docs.layer5.io/kanvas/designer/whiteboarding/", - "Feature": "Ability to freeform draw any shapes, draw edges", - "Function": "Whiteboarding", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Visual Design", - "Documented?": "", - "Feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", - "Function": "Visual Design", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Design Review", - "Documented?": "", - "Feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", - "Function": "Collaborative Design Review", - "Pricing page?": "x", - "Subscription Tier": "TeamDesigner", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/", - "entire_row": { - "Category": "Operator", - "Documented?": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/", - "Feature": "See all views withing a workspace", - "Function": "View Views", - "Pricing page?": "", - "Subscription Tier": "TeamOperator", - "Tech": "Server", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#4-delete-a-view", - "entire_row": { - "Category": "Operator", - "Documented?": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#4-delete-a-view", - "Feature": "Dissolve environment and all connection memberships. Leave associated resources intact.", - "Function": "Delete View", - "Pricing page?": "", - "Subscription Tier": "TeamOperator", - "Tech": "Server", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#5-export-a-view", - "entire_row": { - "Category": "Operator", - "Documented?": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#5-export-a-view", - "Feature": "Export views to JSON format", - "Function": "Export views", - "Pricing page?": "", - "Subscription Tier": "TeamOperator", - "Tech": "Server", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "documentation": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view", - "entire_row": { - "Category": "Operator", - "Documented?": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view", - "Feature": "Share Views", - "Function": "Share Views", - "Pricing page?": "", - "Subscription Tier": "TeamOperator", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Operator", - "Documented?": "", - "Feature": "View Interactive Terminal", - "Function": "View Interactive Terminal", - "Pricing page?": "X", - "Subscription Tier": "TeamOperator", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Operator", - "Documented?": "", - "Feature": "View real-time resource metrics in Kanvas Operator", - "Function": "View Observability Metrics", - "Pricing page?": "X", - "Subscription Tier": "TeamOperator", - "Tech": "Kanvas", - "Theme (also: Keychain Name)": "Kanvas" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Load Generation", - "Documented?": "", - "Feature": "Single Load Generator: Support testing multiple endpoints simultaneously.", - "Function": "Load Generation", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Performance Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Load Generation", - "Documented?": "", - "Feature": "Multiple Meshery Servers or Meshery Adapters generating load, collecting and coalescing results into a single report.", - "Function": "Distributed Load Generator", - "Pricing page?": "X", - "Subscription Tier": "Team", - "Tech": "GetNighthawk", - "Theme (also: Keychain Name)": "Performance Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Performance Profiles", - "Documented?": "", - "Feature": "Share performance profiles and test results with individual users or teams.", - "Function": "Performance Profiles", - "Pricing page?": "X", - "Subscription Tier": "Team", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Performance Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Comparative Testing", - "Documented?": "", - "Feature": "Historical views: Infrastructure-centric", - "Function": "Comparative Testing", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Performance Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Comparative Testing", - "Documented?": "", - "Feature": "Detect real-time anomalies.", - "Function": "Comparative Testing", - "Pricing page?": "X", - "Subscription Tier": "Team", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Performance Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Continuous Quality of Service Monitoring", - "Documented?": "", - "Feature": "Experience uninterrupted oversight of your service quality with our Continuous Quality of Service Monitoring.", - "Function": "Continuous Quality of Service Monitoring", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Performance Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "MeshMark", - "Documented?": "", - "Feature": "Identify the cost of a specific network function.", - "Function": "MeshMark", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Performance Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/security/sessions/#what-sessions-are", - "entire_row": { - "Category": "Sessions", - "Documented?": "https://docs.layer5.io/cloud/security/sessions/#what-sessions-are", - "Feature": "", - "Function": "View Sessions", - "Pricing page?": "", - "Subscription Tier": "", - "Tech": "", - "Theme (also: Keychain Name)": "Security Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/security/tokens/#creating-tokens", - "entire_row": { - "Category": "Tokens", - "Documented?": "https://docs.layer5.io/cloud/security/tokens/#creating-tokens", - "Feature": "", - "Function": "Create Token", - "Pricing page?": "", - "Subscription Tier": "", - "Tech": "", - "Theme (also: Keychain Name)": "Security Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/security/keys/", - "entire_row": { - "Category": "Keys", - "Documented?": "https://docs.layer5.io/cloud/security/keys/", - "Feature": "", - "Function": "View Keys", - "Pricing page?": "", - "Subscription Tier": "", - "Tech": "", - "Theme (also: Keychain Name)": "Security Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/spaces/workspaces/", - "entire_row": { - "Category": "Workspace", - "Documented?": "https://docs.layer5.io/cloud/spaces/workspaces/", - "Feature": "See all workspaces within an organisation", - "Function": "View Workspace", - "Pricing page?": "", - "Subscription Tier": "Enterprise", - "Tech": "", - "Theme (also: Keychain Name)": "Workspace Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/spaces/environments/#deleting-an-environment", - "entire_row": { - "Category": "Environments", - "Documented?": "https://docs.layer5.io/cloud/spaces/environments/#deleting-an-environment", - "Feature": "Dissolve environment and all connection memberships. Leave associated resources intact.", - "Function": "Delete Environment", - "Pricing page?": "", - "Subscription Tier": "Enterprise", - "Tech": "", - "Theme (also: Keychain Name)": "Workspace Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/getting-started/creating-a-design-from-templete.md/", - "entire_row": { - "Category": "Catalog", - "Documented?": "https://docs.layer5.io/cloud/getting-started/creating-a-design-from-templete.md/", - "Feature": "Clone any item from catalog", - "Function": "Clone Catalog Item", - "Pricing page?": "", - "Subscription Tier": "", - "Tech": "", - "Theme (also: Keychain Name)": "Catalog Management" - } - }, - { - "pricing_page": "true", - "documentation": "https://docs.layer5.io/cloud/getting-started/support/#contacting-support", - "entire_row": { - "Category": "Community Support", - "Documented?": "https://docs.layer5.io/cloud/getting-started/support/#contacting-support", - "Feature": "Get help with most of your Meshery questions and issues in our Community Forum.", - "Function": "Community Support", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "", - "Theme (also: Keychain Name)": "Support and Deployment" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Standard Support", - "Documented?": "", - "Feature": "Layer5 Support can help you troubleshoot issues you run into while using Meshery. Get support via the web.", - "Function": "Standard Support", - "Pricing page?": "X", - "Subscription Tier": "Team", - "Tech": "", - "Theme (also: Keychain Name)": "Support and Deployment" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Premium and Premium Plus Support", - "Documented?": "", - "Feature": "With Premium, get a 30-minute SLA and 24/7 web and phone support. With Premium Plus, get everything in Premium plus your own Support Account Manager and more.", - "Function": "Premium and Premium Plus Support", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "", - "Theme (also: Keychain Name)": "Support and Deployment" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Self-hosted Deployment", - "Documented?": "", - "Feature": "Self-hosted Meshery Cloud for on-prem appliances or self-managed cloud tenants.", - "Function": "Self-hosted Deployment", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "", - "Theme (also: Keychain Name)": "Support and Deployment" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Phone Support", - "Documented?": "", - "Feature": "Layer5 Support can help you troubleshoot issues you run into while using Meshery. Get support via phone.", - "Function": "Phone Support", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "", - "Theme (also: Keychain Name)": "Support and Deployment" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Invoice Billing", - "Documented?": "", - "Feature": "", - "Function": "Pay bills via invoice, rather than using your credit card.", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "", - "Theme (also: Keychain Name)": "Support and Deployment" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Screenshots", - "Documented?": "", - "Feature": "Capture and share visual snapshots of your work with ease using our Screenshots feature.", - "Function": "Screenshots", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "WASM", - "Theme (also: Keychain Name)": "Digital Experience Management" - } - }, - { - "documentation": "https://docs.layer5.io/cloud/identity/users/notification-preferences/", - "entire_row": { - "Category": "Notification Center", - "Documented?": "https://docs.layer5.io/cloud/identity/users/notification-preferences/", - "Feature": "", - "Function": "Events: Reporting of asynchronous events.", - "Pricing page?": "", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Incident Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Notification Center", - "Documented?": "", - "Feature": "Consolidate all important updates, alerts, and messages in one centralized hub, ensuring you never miss a critical communication or task.", - "Function": "Notification Center", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server", - "Theme (also: Keychain Name)": "Incident Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Audit Trail", - "Documented?": "", - "Feature": "Detailed accounting of user activity. Historical record or each action taken.", - "Function": "Audit Trail", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "", - "Theme (also: Keychain Name)": "Incident Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Alert Generation", - "Documented?": "", - "Feature": "Dismiss individual; Dismiss bulk.", - "Function": "Alert Generation", - "Pricing page?": "X", - "Subscription Tier": "Free", - "Tech": "Server UI", - "Theme (also: Keychain Name)": "Incident Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Calendaring", - "Documented?": "", - "Feature": "Get integration with GSuite and integration with Microsoft Outlook.", - "Function": "Calendaring", - "Pricing page?": "X", - "Subscription Tier": "Team", - "Tech": "Golang", - "Theme (also: Keychain Name)": "Incident Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Traffic Replay", - "Documented?": "", - "Feature": "Visual event replay in Kanvas", - "Function": "Traffic Replay", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Postgres", - "Theme (also: Keychain Name)": "Incident Management" - } - }, - { - "pricing_page": "true", - "entire_row": { - "Category": "Notification Integrations", - "Documented?": "", - "Feature": "Access a variety of third-party applications, right from Kanvas. Send a message to Slack, identify an on-duty team to page, or raise an alarm in Datadog.", - "Function": "Notification Integrations", - "Pricing page?": "X", - "Subscription Tier": "Enterprise", - "Tech": "Cloud", - "Theme (also: Keychain Name)": "Incident Management" - } - }, - { - "theme": "Account Management", - "category": "Profile", - "function": "View Profile", - "feature": "View your profile.", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Catalog", - "function": "", - "feature": "Export a copy of a design to your local system.", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/catalog/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Catalog", - "function": "Share Design", - "feature": "Share design with anyone within your organization, and make your design easily accessible to all relevant team members.", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/designer/share-resource/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Catalog", - "function": "Clone Design", - "feature": "Clone any published design to customise it according to your use cases", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Create new design", - "feature": "Create new Meshery design", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/creating-a-meshery-design", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Import Design", - "feature": "Import a design", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/extensions/importing-a-design", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Import Design", - "feature": "Import a design from Kubernetes Manifest", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Import Design", - "feature": "Import a design from Meshery Design (YAML)", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/getting-started/starting-helm/#importing-a-design", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Import Design", - "feature": "Import a design from Helm Chart", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Import Design", - "feature": "Import a design from Docker Compose", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-cli", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Standard Import IaC", - "feature": "Import a design from Kubernetes Manifest, Helm Chart, or Docker Compose", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Import Design", - "feature": "Import a design from GitHub", - "subscription_tier": "Enterprise", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/getting-started/github-integration/#connect-github-and-import-designs", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Premium Import IaC", - "feature": "Bulk import designs from GitHub", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Export Design", - "feature": "Export a latest version of design in Meshery Design (YAML format)", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Export Design", - "feature": "Export a latest version of design in Meshery Design (OCI format)", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-an-oci-image", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Standard Design Export", - "feature": "Export a latest version of design in Meshery Design (OCI format, YAML format) Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose)", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Premium Design Export", - "feature": "Export a design as a snapshot", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Cloud Native Design Patterns", - "feature": "Import and export your designs using your local filesystem or remote URL.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Publish Design", - "feature": "Publish a design", - "subscription_tier": "TeamDesigner", - "pricing_page": "", - "documented": "https://docs.meshery.io/extensions/publishing-a-design", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Validate Design", - "feature": "Validate a design", - "subscription_tier": "TeamDesigner", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Deploy Design", - "feature": "Deploy a design", - "subscription_tier": "TeamOperator", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Undeploy Design", - "feature": "Retract all resources used in a Meshery design from the cluster", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "Import Filter", - "feature": "Import a filter", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/filter-management", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "Publish WASM Filter", - "feature": "Publish WASM Filter", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/filter-management", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "Unpublish WASM Filter", - "feature": "Unpublish WASM Filter", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/filter-management", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "Download a WASM filter", - "feature": "Download a WASM filter", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/filter-management", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "Details of WASM Filter", - "feature": "Check information or details of a WASM filter", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/filter-management", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "Edit WASM filter", - "feature": "Edit WASM filter", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/filter-management", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "Clone WASM Filter", - "feature": "Clone WASM filter from catalog, which allows customizing filter and use it in design", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/filter-management", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "Delete WASM Filter", - "feature": "Delete WASM filter permanently from catalog.", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.meshery.io/guides/configuration-management/filter-management", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "WASM Filter and filter", - "feature": "Import, Unpublish, Publish, Download, Edit, Clone, Delete, Details of WASM Filter", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Collaboration", - "category": "Team Chat", - "function": "Message in real-time", - "feature": "Message in real-time, unattached to a specific design. Control who can pariticpate in the discussion.", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Collaboration", - "category": "Design Reviews", - "function": "Discuss any design by leaving review comments", - "feature": "Discuss any design by leaving review comments or notes on a specific design. Control who has access, notify discussion participants with updates, and link from anywhere.", - "subscription_tier": "Team", - "pricing_page": "X", - "documented": "https://docs.layer5.io/kanvas/designer/comments/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Collaboration", - "category": "Organization and Team Management", - "function": "Manage access to designs", - "feature": "Manage access to designs on a team-by-team, or individual user, basis.", - "subscription_tier": "TeamDesigner", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "", - "category": "", - "function": "Manage access to views", - "feature": "Create and collaborate in online operational topologies in real-time.", - "subscription_tier": "TeamOperator", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Identity & Access Management", - "category": "Built-in Roles", - "function": "Built-in Roles", - "feature": "Static - out of the box", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Identity & Access Management", - "category": "User-defined Roles", - "function": "User-defined Roles", - "feature": "Customizable roles for specific permission assignments", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Identity & Access Management", - "category": "Authentication: LDAP", - "function": "Authentication: LDAP", - "feature": "Access Meshery Server using your existing accounts and centrally manage repository access.", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Identity & Access Management", - "category": "Authentication: SAML", - "function": "Authentication: SAML", - "feature": "Use an identity provider to manage the identities of GitHub users and applications.", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Identity & Access Management", - "category": "Users", - "function": "Delete User", - "feature": "Delete a user account", - "subscription_tier": "Team", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/identity/users/user-management/#add-user-remove-user", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Identity & Access Management", - "category": "Users", - "function": "Create User", - "feature": "Create a new user", - "subscription_tier": "", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/identity/users/user-management/#create-user", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Identity & Access Management", - "category": "Teams", - "function": "Add User to Team", - "feature": "Directly create a new user account within a team.", - "subscription_tier": "Team", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/identity/teams/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Identity & Access Management", - "category": "Organizations", - "function": "Create Organization", - "feature": "Establish new organization for organizing teams, users, and resource access.", - "subscription_tier": "Enterprise", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/identity/organizations/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Lifecycle Management", - "category": "Dry-run", - "function": "Dry-run", - "feature": "Test and verify configuration changes in a separate environment.", - "subscription_tier": "TeamOperator", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Lifecycle Management", - "category": "Multiple Kubernetes Clusters", - "function": "Multiple Kubernetes Clusters", - "feature": "Ongoing synchronization of Kubernetes configuration, workloads and service mesh changes across any number of Kubernetes clusters.", - "subscription_tier": "TeamOperator", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Meshery System", - "category": "mesheryctl", - "function": "CLI", - "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "https://docs.meshery.io/reference/mesheryctl", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Meshery System", - "category": "Settings", - "function": "View Metrics", - "feature": "View already configured metrics", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/catalog/metrics/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Service Performance", - "function": "Service Performance", - "feature": "Continuous visibility across all of your clusters and workloads.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Use heirarchical relationships", - "feature": "", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/concepts/relationships/#2-hierarchical-relationships", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Undo or Redo", - "feature": "This permission grants the user the ability to undo/redo any action in done in Kanvas", - "subscription_tier": "Team", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Whiteboarding", - "feature": "Ability to freeform draw any shapes, draw edges", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "https://docs.layer5.io/kanvas/designer/whiteboarding/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Visual Design", - "function": "Visual Design", - "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Collaborative Design Review", - "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", - "subscription_tier": "TeamDesigner", - "pricing_page": "x", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "View Views", - "feature": "See all views withing a workspace", - "subscription_tier": "TeamOperator", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Delete View", - "feature": "Dissolve environment and all connection memberships. Leave associated resources intact.", - "subscription_tier": "TeamOperator", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#4-delete-a-view", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Export views", - "feature": "Export views to JSON format", - "subscription_tier": "TeamOperator", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#5-export-a-view", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Share Views", - "feature": "Share Views", - "subscription_tier": "TeamOperator", - "pricing_page": "", - "documented": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Web-based Terminal", - "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", - "subscription_tier": "TeamOperator", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Standard Events and Metrics", - "feature": "Real-time resource metrics.", - "subscription_tier": "TeamOperator", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Performance Management", - "category": "Load Generation", - "function": "Load Generation", - "feature": "Single Load Generator: Support testing multiple endpoints simultaneously.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Load Generation", - "function": "Distributed Load Generator", - "feature": "Multiple Meshery Servers or Meshery Adapters generating load, collecting and coalescing results into a single report.", - "subscription_tier": "Team", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Performance Profiles", - "function": "Performance Profiles", - "feature": "Share performance profiles and test results with individual users or teams.", - "subscription_tier": "Team", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Comparative Testing", - "function": "Comparative Testing", - "feature": "Historical views: Infrastructure-centric", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Comparative Testing", - "function": "Comparative Testing", - "feature": "Detect real-time anomalies.", - "subscription_tier": "Team", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Continuous Quality of Service Monitoring", - "function": "Continuous Quality of Service Monitoring", - "feature": "Experience uninterrupted oversight of your service quality with our Continuous Quality of Service Monitoring.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "MeshMark", - "function": "MeshMark", - "feature": "Identify the cost of a specific network function.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Security Management", - "category": "Sessions", - "function": "View Sessions", - "feature": "", - "subscription_tier": "", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/security/sessions/#what-sessions-are", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Security Management", - "category": "Tokens", - "function": "Create Token", - "feature": "", - "subscription_tier": "", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/security/tokens/#creating-tokens", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Security Management", - "category": "Keys", - "function": "View Keys", - "feature": "", - "subscription_tier": "", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/security/keys/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "View Workspace", - "feature": "See all workspaces within an organisation", - "subscription_tier": "Enterprise", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/spaces/workspaces/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Workspace Management", - "category": "Environments", - "function": "Delete Environment", - "feature": "Dissolve environment and all connection memberships. Leave associated resources intact.", - "subscription_tier": "Enterprise", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/spaces/environments/#deleting-an-environment", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Catalog", - "function": "Clone Catalog Item", - "feature": "Clone any item from catalog", - "subscription_tier": "", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/getting-started/creating-a-design-from-templete.md/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Support and Deployment", - "category": "Community Support", - "function": "Community Support", - "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "https://docs.layer5.io/cloud/getting-started/support/#contacting-support", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Support and Deployment", - "category": "Standard Support", - "function": "Standard Support", - "feature": "Layer5 Support can help you troubleshoot issues you run into while using Meshery. Get support via the web.", - "subscription_tier": "TeamDesigner", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Support and Deployment", - "category": "Premium and Premium Plus Support", - "function": "Premium and Premium Plus Support", - "feature": "With Premium, get a 30-minute SLA and 24/7 web and phone support. With Premium Plus, get everything in Premium plus your own Support Account Manager and more.", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Support and Deployment", - "category": "Self-hosted Deployment", - "function": "Self-hosted Deployment", - "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Support and Deployment", - "category": "Phone Support", - "function": "Phone Support", - "feature": "Layer5 Support can help you troubleshoot issues you run into while using Meshery. Get support via phone.", - "subscription_tier": "TeamDesigner", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Support and Deployment", - "category": "Invoice Billing", - "function": "Pay bills via invoice, rather than using your credit card.", - "feature": "", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Digital Experience Management", - "category": "Screenshots", - "function": "Screenshots", - "feature": "Capture and share visual snapshots of your work with ease using our Screenshots feature.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Incident Management", - "category": "Notification Center", - "function": "Events: Reporting of asynchronous events.", - "feature": "", - "subscription_tier": "Free", - "pricing_page": "", - "documented": "https://docs.layer5.io/cloud/identity/users/notification-preferences/", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Incident Management", - "category": "Notification Center", - "function": "Notification Center", - "feature": "Consolidate all important updates, alerts, and messages in one centralized hub, ensuring you never miss a critical communication or task.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Incident Management", - "category": "Audit Trail", - "function": "Audit Trail", - "feature": "Detailed accounting of user activity. Historical record or each action taken.", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Incident Management", - "category": "Alert Generation", - "function": "Alert Generation", - "feature": "Dismiss individual; Dismiss bulk.", - "subscription_tier": "Free", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Incident Management", - "category": "Calendaring", - "function": "Calendaring", - "feature": "Get integration with GSuite and integration with Microsoft Outlook.", - "subscription_tier": "Team", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Incident Management", - "category": "Traffic Replay", - "function": "Traffic Replay", - "feature": "Visual event replay in Kanvas", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Incident Management", - "category": "Notification Integrations", - "function": "Notification Integrations", - "feature": "Access a variety of third-party applications, right from Kanvas. Send a message to Slack, identify an on-duty team to page, or raise an alarm in Datadog.", - "subscription_tier": "Enterprise", - "pricing_page": "X", - "documented": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "View Workspace", - "feature": "See all workspaces within an organization", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Export Design", - "feature": "To your local filesystem", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Details of design", - "feature": "Set design information or details of a design", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Identity & Access Management", - "category": "Authentication", - "function": "Authentication: OAuth", - "feature": "", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Lifecycle Management", - "category": "Cluster discovery", - "function": "Cluster discovery", - "feature": "Day 2 support for ongoing synchronization of Kubernetes configuration, workloads and service mesh changes.", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Lifecycle Management", - "category": "Mesh Federation", - "function": "Environments", - "feature": "", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Create View", - "feature": "Create a new view", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Edit View", - "feature": "Edit environment and it connection membership", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Assign Views to Workspace", - "feature": "Add new views to workspace", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Unassign Views from Workspace", - "feature": "Remove views from workspace", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "View view component details", - "feature": "View detailed information about a view and it's comopnent", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Open view", - "feature": "Open a pre-existing view", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Save Views", - "feature": "Saved view", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Clone Views", - "feature": "Clone Views", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Stream container logs", - "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "View Interactive Terminal", - "feature": "View Interactive Terminal", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "View Component Details", - "feature": "View managed infrastructure resources details in Kanvas Operator", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "View Observability Metrics", - "feature": "View real-time resource metrics in Kanvas Operator", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Perform conformance test", - "feature": "Perform a conformance test in Kanvas Operator", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Stream container logs", - "feature": "Stream container logs in Kanvas Operator", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Perform performance test in visualizer", - "feature": "Perform performance test in Kanvas Operator", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Operator", - "function": "Select performance profile in visualizer", - "feature": "Select a performance profile to run tests using", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Performance Profiles", - "function": "Persistence of test results", - "feature": "Baseline and track your service mesh performance from release to release.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Load Generation", - "function": "Load Generator Interface: Common interface used as an extension point for supporting different types of load generators", - "feature": "", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Performance", - "function": "Add performace profile", - "feature": "Add a new performace profile", - "subscription_tier": "Platfrom Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "TeamOperator, Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Performance", - "function": "Run test", - "feature": "Run a test on performance profile", - "subscription_tier": "Platfrom Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "TeamOperator, Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Performance", - "function": "View Results", - "feature": "View results of performance tests", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "TeamOperator, Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Performance", - "function": "Edit performance test", - "feature": "Edit performance test", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "TeamOperator, Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Performance", - "function": "Delete performance test", - "feature": "Delete performance test", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "TeamOperator, Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Performance Management", - "category": "Performance", - "function": "View performance profiles", - "feature": "View all performance profiles", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "TeamOperator, Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Policy", - "category": "Alert Management", - "function": "Notification Suppression", - "feature": "", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Policy", - "category": "Alert Management", - "function": "Notification Correlation", - "feature": "", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Team", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Policy", - "category": "Policies", - "function": "Versioned", - "feature": "", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "", - "teamDesigner": "Team", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Policy", - "category": "Audit Trail", - "function": "Log of all actions invoked by users", - "feature": "", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Policy", - "category": "RBAC Violations", - "function": "Notification of attempts to invoke unauthorized actions", - "feature": "", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Policy", - "category": "Open Policy Agent integration", - "function": "Admission control for specific workloads on the mesh", - "feature": "", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Policy", - "category": "Open Policy Agent integration", - "function": "Service request authorization with JWT", - "feature": "", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Policy", - "category": "Open Policy Agent integration", - "function": "Performance Budget support in Patterns", - "feature": "", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Security Management", - "category": "Overview", - "function": "View Overview", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Security Management", - "category": "Credentials", - "function": "View Credentials", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Security Management", - "category": "Credentials", - "function": "Create Credential", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Security Management", - "category": "Credentials", - "function": "Edit Credential", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Security Management", - "category": "Credentials", - "function": "Delete Credential", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Security Management", - "category": "Sessions", - "function": "Logout from a Session", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Infrastructure Management", - "category": "Cloud native infrastructure lifecycle", - "function": "Manage cloud native infrastructure life cycle", - "feature": "This permission grants the user the ability to manage infrastructure life cycles within meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Infrastructure Management", - "category": "Cloud native infrastructure lifecycle", - "function": "Apply custom cloud native configuration", - "feature": "This permission grants the user the ability to apply custom configuration and customize existing configuration of thier cloud native infrastructure", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Infrastructure Management", - "category": "Cloud native infrastructure lifecycle", - "function": "Deploy cloud native infrastructure", - "feature": "This permission grants the user the ability to deploy their infrastructure to a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Infrastructure Management", - "category": "Cloud native infrastructure lifecycle", - "function": "Undeploy cloud native infrastructure", - "feature": "This permission grants the user the ability to undeploy their infrastructure from a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Infrastructure Management", - "category": "Cloud native infrastructure lifecycle", - "function": "View cloud native infrastructure", - "feature": "This permission grants the user the ability to view all cloud native infrastructure in Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamOperator", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Delete Workspace", - "feature": "Dissolve workspace and all team and environment memberships. Leave associated resources intact", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Edit Workspace", - "feature": "Edit workspace and it's team and environment membership", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Create Workspace", - "feature": "Create new workspace", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Assign team to workspace", - "feature": "Add new team to workspace", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Remove team from workspace", - "feature": "Remove team from workspace", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Assign environment to workspace", - "feature": "Add new environment to workspace", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Remove environment from workspace", - "feature": "Remove environment from workspace", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Assign Designs to Workspaces", - "feature": "Assign designs to workspaces", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Remove Designs from Workspaces", - "feature": "Remove designs from workspaces", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Workspace", - "function": "Connect Google Account to Workspace", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Enterprise", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Workspace Management", - "category": "Environments", - "function": "View Environment", - "feature": "See all environments within an workspace.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Workspace Management", - "category": "Environments", - "function": "Create Environment", - "feature": "Create a new environment", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Workspace Management", - "category": "Environments", - "function": "Edit Environment", - "feature": "Edit environment and it connection membership", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Workspace Management", - "category": "Environments", - "function": "Assign connections to environment", - "feature": "Add new connections to environments", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Workspace Management", - "category": "Environments", - "function": "Remove connections from environments", - "feature": "Remove connections from environment,", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Enterprise", - "teamOperator": "", - "enterprise": "" - } - }, - { - "theme": "Catalog Management", - "category": "Catalog", - "function": "View Catalog", - "feature": "View all items in catalog", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Account Management", - "category": "Profile", - "function": "Edit Account", - "feature": "Update details of your user account.", - "subscription_tier": "User", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "" - } - }, - { - "theme": "Account Management", - "category": "Profile", - "function": "Reset Pasword", - "feature": "Perform a password reset for your user account.", - "subscription_tier": "User", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "" - } - }, - { - "theme": "Account Management", - "category": "Profile", - "function": "Delete Account", - "feature": "Delete your user account.", - "subscription_tier": "User", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "" - } - }, - { - "theme": "Account Management", - "category": "Profile", - "function": "Connect your Github Account", - "feature": "Link your social sign-in with GitHub to your existing user account.", - "subscription_tier": "User", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Team", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Account Management", - "category": "Profile", - "function": "Connect your Google Account", - "feature": "Link your social sign-in with Google to your existing user account.", - "subscription_tier": "User", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Team", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Account Management", - "category": "Subscription", - "function": "View Subcription", - "feature": "List and see details of active and inactive subscriptions.", - "subscription_tier": "Billing", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Team", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Account Management", - "category": "Plans", - "function": "View Plans", - "feature": "Explore subscription plans and compare their features.", - "subscription_tier": "Billing", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Team", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "View Designs", - "feature": "View all public and published designs of other team members and private of signed-in user", - "subscription_tier": "", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Filters", - "function": "View Filters", - "feature": "View all public and published filters of other team members and private of signed-in user", - "subscription_tier": "", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Catalog Requests", - "function": "View Catalog Requests", - "feature": "View the catalog publication request queue", - "subscription_tier": "", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Enterprise", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Catalog Requests", - "function": "Approve Catalog Request", - "feature": "Approve catalog publication requests", - "subscription_tier": "", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Enterprise", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Catalog Requests", - "function": "Deny Catalog Request", - "feature": "Deny catalog publication requests", - "subscription_tier": "", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Enterprise", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Import Design", - "feature": "Import a design from Meshery Design (OCI Image)", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Export Design", - "feature": "Export a design at a specific version", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Catalog Management", - "category": "Designs", - "function": "Unpublish Design", - "feature": "Unpublish a design", - "subscription_tier": "Platform Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Meshery System", - "category": "Settings", - "function": "View Settings", - "feature": "View settings in Meshery", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "" - } - }, - { - "theme": "Meshery System", - "category": "Settings", - "function": "Connect adapter", - "feature": "Configure and connect to Meshery adapters", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "" - } - }, - { - "theme": "Meshery System", - "category": "Settings", - "function": "Connect Metrics", - "feature": "Configure and connect to metrics like Grafana and Promethues", - "subscription_tier": "Operator", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "" - } - }, - { - "theme": "Meshery System", - "category": "Settings", - "function": "View Registry", - "feature": "Explore entities within capabilities registry", - "subscription_tier": "Platfrom Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "" - } - }, - { - "theme": "Meshery System", - "category": "Settings", - "function": "Reset Database", - "feature": "Reset Meshery database", - "subscription_tier": "Platfrom Engineer", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Drag-n-drop pattern (merge with existing nodes on canvas)", - "feature": "Like a Google Doc, Designs are a user's primary tool for collaborative authorship of their infrastructure and services. A Design describes all the resources and their properties that users wants for a single deployment based on Meshery’s declarative syntax. This permission grants the user the ability to drag and drop a design onto the canvas to merge with exisitng nodes on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Load design pattern (displace current nodes on canvas)", - "feature": "Like a Google Doc, Designs are a user's primary tool for collaborative authorship of their infrastructure and services. A Design describes all the resources and their properties that users wants for a single deployment based on Meshery’s declarative syntax. This permission grants the user the ability to drag and drop a design onto the canvas to displace the exisitng nodes on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Edit Component confuguration (RJSF Tooltips)", - "feature": "In Meshery, a Component is a fundamental building block used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. This permission grants the user the ability to configure a component currently present on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Configure fieldrefs", - "feature": "", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Components", - "function": "Delete components", - "feature": "In Meshery, a Component is a fundamental building block used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. This permission grants the user the ability to delete a component from canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Components", - "function": "Clone components", - "feature": "In Meshery, a Component is a fundamental building block used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. This permission grants the user the ability to clone a component, along with it's configuration, on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Components", - "function": "Copy components", - "feature": "In Meshery, a Component is a fundamental building block used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. This permission grants the user the ability to clone a component, along with it's configuration, on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Components", - "function": "Lock components", - "feature": "In Meshery, a Component is a fundamental building block used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. This permission grants the user the ability to lock a component's state present on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Components", - "function": "Add components", - "feature": "In Meshery, a Component is a fundamental building block used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. This permission grants the user the ability to copy a component present on canvas. The canvas is where the design and all it's components are displayed and configured. This permission grants the user the ability to cofigure/edit/update a design by adding new components to the canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Components", - "function": "Configure component styles", - "feature": "In Meshery, a Component is a fundamental building block used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. This permission grants the user the ability to configure the style of a component.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Components", - "function": "Reset component styles", - "feature": "In Meshery, a Component is a fundamental building block used to represent and define the infrastructure under management. Each component provides granular and specific support for your infrastructure and applications. This permission grants the user the ability to reset a component to it's initial style.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Shapes", - "function": "Delete shapes", - "feature": "Draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to delete a shape from canvas.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Shapes", - "function": "Delete shapes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to delete a shape from canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Shapes", - "function": "Clone shapes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to clone a shape on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Shapes", - "function": "Copy shapes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to clone a shape on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Shapes", - "function": "Lock shapes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to lock a shape on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Shapes", - "function": "Add shapes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to add new shapes on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Shapes", - "function": "Configure shape styles", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to configure the styles of shapes present on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Shapes", - "function": "Reset shape styles", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to reset the styles of shapes present on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Textboxes", - "function": "Delete textboxes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to delete a textbox from canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Textboxes", - "function": "Clone textboxes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to clone a textbox on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Textboxes", - "function": "Copy textboxes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to clone a textbox on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Textboxes", - "function": "Lock textboxes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to lock a textbox on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Textboxes", - "function": "Add textboxes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to add new textboxes on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Textboxes", - "function": "Configure textbox styles", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to configure the styles of textboxes present on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Textboxes", - "function": "Reset textbox styles", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to reset the styles of textboxes present on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Sections", - "function": "Delete sections", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to delete a section from canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Sections", - "function": "Clone sections", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to clone a section on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Sections", - "function": "Copy sections", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to clone a section on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Sections", - "function": "Lock sections", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to lock a section on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Sections", - "function": "Add sections", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to add new sections on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Sections", - "function": "Configure section styles", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to configure the styles of sections present on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Sections", - "function": "Reset section styles", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to reset the styles of sections present on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Add text to textboxes", - "feature": "Kanvas Designer allows users to draw shapes, lines, text, add custom styles, images and icons to represent the components and relationships of Kubernetes clusters as they see fit. This permission grants the user the ability to add text to the textboxes currently on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Create dynamic fieldrefs", - "feature": "", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Configure edge handles", - "feature": "", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Delete edge handles", - "feature": "", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Use inventory relationships", - "feature": "", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Change design layout", - "feature": "Like a Google Doc, Designs are a user's primary tool for collaborative authorship of their infrastructure and services. A Design describes all the resources and their properties that users wants for a single deployment based on Meshery’s declarative syntax. This permission grants the user the ability to change the layout of the components in the design.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Use Pencil", - "feature": "Pencil is mouse/tool mode available in Kanvas that allows users to draw freehand shapes. This permission grants user the ability to use the pencil mode in Kanvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Use Pen", - "feature": "Pen is a mouse/tool mode available in Kanvas that allows users to draw edges from one component to another. This permission grants user the ability to use the pencil mode in Kanvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Meshery Model", - "function": "Models", - "feature": "Generator for GCP via K8s CRDs", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Meshery Model", - "function": "Models", - "feature": "Generator for AWS via K8s CRDs", - "subscription_tier": "ALL", - "comparison_tiers": { - "free": "Open", - "teamDesigner": "Free", - "teamOperator": "x", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Create blank design in Kanvas", - "feature": "The canvas is where the design and all it's components are displayed and configured. This permission grants the user the ability to remove all current entities from the canvas and create a new one to start from scratch", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Patterns", - "function": "Save design in Kanvas", - "feature": "Like a Google Doc, Designs are your primary tool for collaborative authorship of your infrastructure and services. A Design describes all the resources and their properties that you want for a single deployment based on Meshery’s declarative syntax. This permission grants the user the ability to save a design (while logged in)", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "View comments", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to view comments in a design on canvas.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Resolve a comment", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to resolve a comment thread in a design on canvas.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Delete comments", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to delete a comment on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Clone comments", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to clone a comment on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Copy comments", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to copy a comment on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Lock comments", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to lock a comment on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Add comments", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to add a comment on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Configure comment styles", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to configure the styles of a comment on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Kanvas", - "category": "Design Review", - "function": "Reset comment styles", - "feature": "Kanvas’s Designer enables users to place comments “inline” within designs. Comments can be used to offer feedback to team members, take detailed design notes, capture helpful tips for team members, and include justification as to infrastructure and application configuration decisions. This permission grants the user the ability to reset the styles of a comment on canvas.", - "subscription_tier": "All", - "comparison_tiers": { - "free": "Closed", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Infrastructure Management", - "category": "Cloud native infrastructure lifecycle", - "function": "Manage cloud native infrastructure configuration", - "feature": "Manage configuration for applications like EmojiVoto, HTTPBin, Image Hub, Istio Book Info", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Infrastructure Management", - "category": "Cloud native infrastructure lifecycle", - "function": "Apply cloud native infrastructure configuration", - "feature": "Configure infrastructure with some predefined options like Automatic Sidecar injection, Envoy Filter, Policy", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - }, - { - "theme": "Infrastructure Management", - "category": "Cloud native infrastructure lifecycle", - "function": "Validate cloud native infrastructure configuration", - "feature": "Validate cloud native infrastructure configuration against best practices like Analyze Running Configuration, SMI conformance", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "TeamDesigner", - "teamOperator": "", - "enterprise": "x" - } - } -] \ No newline at end of file diff --git a/src/sections/Pricing/generateDetails.js b/src/sections/Pricing/generateDetails.js index 13391d1444bc..0e7f9d4d21c1 100644 --- a/src/sections/Pricing/generateDetails.js +++ b/src/sections/Pricing/generateDetails.js @@ -27,7 +27,9 @@ function generateDetails(data) { // { id: 6, name: "Incident Management", icon: Notification }, { id: 7, name: "Catalog", icon: Catalog }, { id: 8, name: "Security", icon: Security }, - { id: 9, name: "Support and Deployment", icon: Support }, + { id: 9, name: "Managed Service Provider", icon: Support }, + { id: 10, name: "Support and Deployment", icon: Support }, + // { id: 11, name: "Support and Deployment", icon: Support }, ]; return categories.map(category => { From 5fad4530f264cfaa8176d768e8a596961a94866a Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Wed, 11 Dec 2024 15:52:38 -0600 Subject: [PATCH 21/83] Update feature descriptions for improved clarity and consistency Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 374 ++++++++++++------------- 1 file changed, 187 insertions(+), 187 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 86f564ab0e0c..99284d999619 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -1,11 +1,11 @@ [ { "theme": "", - "categoryOrder": "2", - "category": "Kanvas", + "categoryOrder": "0", + "category": "Configuration Management", "functionOrder": "1", - "function": "Whiteboarding", - "feature": "Pencil for freeform drawing of any shapes", + "function": "Infrastructure as Design", + "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", "subscription_tier": "Free", "comparison_tiers": { "teamDesigner": "x", @@ -13,31 +13,47 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" + "docs": "" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", "functionOrder": "1", - "function": "Infrastructure as Design", - "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", - "subscription_tier": "Free", + "function": "Import your IaC", + "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", + "subscription_tier": "", "comparison_tiers": { "teamDesigner": "x", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.meshery.io/extensions/importing-a-design" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "2", - "function": "350 Built-in Models", - "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", + "functionOrder": "1", + "function": "Bulk Import IaC", + "feature": "Bulk import designs from GitHub", + "subscription_tier": "", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "https://docs.layer5.io/cloud/getting-started/github-integration/" + }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "1", + "function": "Export Designs", + "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", "subscription_tier": "Free", "comparison_tiers": { "teamDesigner": "x", @@ -45,16 +61,16 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" }, { "theme": "", - "categoryOrder": "2", - "category": "Kanvas", - "functionOrder": "3", - "function": "Layers", - "feature": "Use layers to show, hide, and group objects on the same board—perfect for building detailed diagrams or revealing project phases.", - "subscription_tier": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "2", + "function": "350 Built-in Models", + "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", + "subscription_tier": "Free", "comparison_tiers": { "teamDesigner": "x", "teamOperator": "x", @@ -287,6 +303,70 @@ "pricing_page": "x", "docs": "" }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "4", + "function": "Orchestration: Pre-provisioning", + "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/" + }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "4", + "function": "Orchestration: Provisioning", + "feature": "Provision and deprovision cloud native infrastructure using your designs.", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/" + }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "4", + "function": "Orchestration: Deprovisioning", + "feature": "Retract all resources used in a Meshery design from the cluster", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/" + }, + { + "theme": "", + "categoryOrder": "2", + "category": "Kanvas", + "functionOrder": "1", + "function": "Whiteboarding", + "feature": "Pencil for freeform drawing of any shapes", + "subscription_tier": "Free", + "comparison_tiers": { + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" + }, { "theme": "", "categoryOrder": "2", @@ -303,6 +383,22 @@ "pricing_page": "", "docs": "" }, + { + "theme": "", + "categoryOrder": "2", + "category": "Kanvas", + "functionOrder": "3", + "function": "Layers", + "feature": "Use layers to show, hide, and group objects on the same board—perfect for building detailed diagrams or revealing project phases.", + "subscription_tier": "", + "comparison_tiers": { + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, { "theme": "", "categoryOrder": "3", @@ -655,54 +751,6 @@ "pricing_page": "x", "docs": "" }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "1", - "function": "Import your IaC", - "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", - "subscription_tier": "", - "comparison_tiers": { - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.meshery.io/extensions/importing-a-design" - }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "1", - "function": "Bulk Import IaC", - "feature": "Bulk import designs from GitHub", - "subscription_tier": "", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/getting-started/github-integration/" - }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "1", - "function": "Export Designs", - "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", - "subscription_tier": "Free", - "comparison_tiers": { - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" - }, { "theme": "", "categoryOrder": "7", @@ -767,54 +815,6 @@ "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/" }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "4", - "function": "Orchestration: Pre-provisioning", - "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "4", - "function": "Orchestration: Provisioning", - "feature": "Provision and deprovision cloud native infrastructure using your designs.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "4", - "function": "Orchestration: Deprovisioning", - "feature": "Retract all resources used in a Meshery design from the cluster", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/" - }, { "theme": "", "categoryOrder": "7", @@ -914,31 +914,31 @@ { "theme": "", "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "1", - "function": "Community Support", - "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", - "subscription_tier": "Free", + "category": "Managed Service Provider", + "functionOrder": "6", + "function": "User Provisioning through SCIM", + "feature": "Use your existing accounts and centrally manage access.", + "subscription_tier": "", "comparison_tiers": { - "teamDesigner": "x", - "teamOperator": "x", + "teamDesigner": "", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "2", - "function": "Standard Support", - "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", - "subscription_tier": "TeamDesigner|TeamOperator", + "category": "Managed Service Provider", + "functionOrder": "6", + "function": "Public Profiles for Users", + "feature": "See public user profile details, public activities and public resources.", + "subscription_tier": "", "comparison_tiers": { - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "" + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" }, "pricing_page": "", "docs": "" @@ -946,74 +946,74 @@ { "theme": "", "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "3", - "function": "Managed Service Provider", - "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud.", - "subscription_tier": "Enterprise", + "category": "Managed Service Provider", + "functionOrder": "6", + "function": "Recognition Program Badges", + "feature": "Badges are visual indicators of achievements or milestones that users can earn in order to recognizing activity milestones, encouraging positive behavior, mark progress, and gamifying platform experience.", + "subscription_tier": "", "comparison_tiers": { "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { "theme": "", "categoryOrder": "9", - "category": "Support and Deployment", - "functionOrder": "3", - "function": "Premium Support", - "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", - "subscription_tier": "Enterprise", + "category": "Managed Service Provider", + "functionOrder": "6", + "function": "Self-service User Accounts", + "feature": "New user sign-up verification. Self-service password recovery.", + "subscription_tier": "", "comparison_tiers": { "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" }, { "theme": "", - "categoryOrder": "9", + "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "4", - "function": "Enterprise API & Extensible Webhooks", - "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", - "subscription_tier": "Enterprise", + "functionOrder": "1", + "function": "Community Support", + "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", + "subscription_tier": "Free", "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "", + "teamDesigner": "x", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { "theme": "", - "categoryOrder": "9", + "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "6", - "function": "Invoice Billing", - "feature": "Pay bills via invoice, rather than using your credit card.", - "subscription_tier": "", + "functionOrder": "2", + "function": "Standard Support", + "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", + "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { "theme": "", - "categoryOrder": "9", + "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "7", - "function": "Self-hosted Deployment", - "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", + "functionOrder": "3", + "function": "Managed Service Provider", + "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. Hierarchical user organizations and permissioning. Enforcement of tenancy.", "subscription_tier": "Enterprise", "comparison_tiers": { "teamDesigner": "", @@ -1021,71 +1021,71 @@ "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/self-hosted/" + "docs": "" }, { "theme": "", "categoryOrder": "10", - "category": "Managed Service Provider", - "functionOrder": "6", - "function": "User Provisioning through SCIM", - "feature": "Use your existing accounts and centrally manage access.", + "category": "Support and Deployment", + "functionOrder": "3", + "function": "Premium Support", + "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", "subscription_tier": "Enterprise", "comparison_tiers": { "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", + "pricing_page": "", "docs": "" }, { "theme": "", "categoryOrder": "10", - "category": "Managed Service Provider", - "functionOrder": "6", - "function": "Public Profiles for Users", - "feature": "See public user profile details, public activities and public resources.", + "category": "Support and Deployment", + "functionOrder": "4", + "function": "Enterprise API & Extensible Webhooks", + "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", "subscription_tier": "Enterprise", "comparison_tiers": { "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", "categoryOrder": "10", - "category": "Managed Service Provider", + "category": "Support and Deployment", "functionOrder": "6", - "function": "Recognition Program Badges", - "feature": "Badges are visual indicators of achievements or milestones that users can earn in order to recognizing activity milestones, encouraging positive behavior, mark progress, and gamifying platform experience.", - "subscription_tier": "Enterprise", + "function": "Invoice Billing", + "feature": "Pay bills via invoice, rather than using your credit card.", + "subscription_tier": "", "comparison_tiers": { "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", + "pricing_page": "x", "docs": "" }, { "theme": "", "categoryOrder": "10", - "category": "Managed Service Provider", - "functionOrder": "6", - "function": "Self-service User Accounts", - "feature": "New user sign-up verification. Self-service password recovery.", + "category": "Support and Deployment", + "functionOrder": "7", + "function": "Self-hosted Deployment", + "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", "subscription_tier": "Enterprise", "comparison_tiers": { "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" + "pricing_page": "x", + "docs": "https://docs.layer5.io/cloud/self-hosted/" }, { "theme": "", From 2f38d0b77f57cc97bca46b9f95ebefb64e4babda Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Wed, 11 Dec 2024 17:14:52 -0600 Subject: [PATCH 22/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 115 +++++++++++++++++++++---- src/sections/Pricing/pricing.style.js | 3 +- 2 files changed, 101 insertions(+), 17 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 99284d999619..5a43e98bda8a 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -8,6 +8,7 @@ "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -24,6 +25,7 @@ "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -40,6 +42,7 @@ "feature": "Bulk import designs from GitHub", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -56,6 +59,7 @@ "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -72,6 +76,7 @@ "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -88,6 +93,7 @@ "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -104,6 +110,7 @@ "feature": "Discover clusters and/or import existing Kubernetes applications. Visualize their architecture, and gain a clear understanding of how different components interact.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -120,6 +127,7 @@ "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -136,6 +144,7 @@ "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -152,6 +161,7 @@ "feature": "Real-time resource metrics.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -168,6 +178,7 @@ "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -184,6 +195,7 @@ "feature": "Add new views to workspace", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -200,6 +212,7 @@ "feature": "Export views to JSON format", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -216,6 +229,7 @@ "feature": "Share Views", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -232,6 +246,7 @@ "feature": "Clone Views", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -248,6 +263,7 @@ "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -264,6 +280,7 @@ "feature": "Test and verify configuration changes in a separate environment.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -280,6 +297,7 @@ "feature": "Management and ongoing synchronization of cloud native infrastructure across any number of Clouds and Kubernetes clusters.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -296,6 +314,7 @@ "feature": "Management and ongoing synchronization of AWS and GCP services, workloads and changes across any number of accounts.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -312,6 +331,7 @@ "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -328,6 +348,7 @@ "feature": "Provision and deprovision cloud native infrastructure using your designs.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -344,6 +365,7 @@ "feature": "Retract all resources used in a Meshery design from the cluster", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -360,6 +382,7 @@ "feature": "Pencil for freeform drawing of any shapes", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -376,6 +399,7 @@ "feature": "Draw shapes, lines, text, customize style, drag and drop images and text files to represent the components and relationships of between your infrastructure components.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -392,6 +416,7 @@ "feature": "Use layers to show, hide, and group objects on the same board—perfect for building detailed diagrams or revealing project phases.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -408,6 +433,7 @@ "feature": "Continuous visibility across all of your clusters and workloads. Single or multiple results in standardized format.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -424,6 +450,7 @@ "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -440,6 +467,7 @@ "feature": "Storage of 500 result sets in Provider for a given Performance Profile. Capacity, soak, and burst testing supporting HTTP, HTTPS, TCP, gRPC load generation with configurable test duration, RPS, and request concurrency.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -456,6 +484,7 @@ "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -472,6 +501,7 @@ "feature": "Shared Workspaces are collaborative spaces that you can use to store and collaborate on files within and between teams. Easily share files with customizable permissions (edit, comment, view). Create up to 10 shared workspaces per organization.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -488,6 +518,7 @@ "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -504,6 +535,7 @@ "feature": "Visual comparison of performance test results.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -520,6 +552,7 @@ "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -536,6 +569,7 @@ "feature": "Create and collaborate in online designs in real-time.", "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -552,6 +586,7 @@ "feature": "Simultaneously manage your infrastructure using shared views in real-time.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -568,6 +603,7 @@ "feature": "Create and collaborate in online operational topologies in real-time.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -584,6 +620,7 @@ "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -600,6 +637,7 @@ "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -616,6 +654,7 @@ "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -632,6 +671,7 @@ "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -648,6 +688,7 @@ "feature": "Assign User Roles, Assign Keychains to Roles", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -664,6 +705,7 @@ "feature": "Manage access to designs on a team-by-team, or individual user, basis.", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -680,6 +722,7 @@ "feature": "Customizable roles for specific permission assignments", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -696,6 +739,7 @@ "feature": "Own and control the user accounts of your organization members through your identity provider (IdP).", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -712,6 +756,7 @@ "feature": "Assign designs to workspaces", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -728,6 +773,7 @@ "feature": "Grant workspaces access to environments and their resources.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -744,6 +790,7 @@ "feature": "Move designs, views, and models between Shared Workspaces.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -760,6 +807,7 @@ "feature": "A library of pre-built design patterns and operational templates for common deployment scenarios, simplifying the configuration process and ensuring best practices.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -776,6 +824,7 @@ "feature": "Privately publish and share reusable design patterns and operational templates within your organization.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -792,6 +841,7 @@ "feature": "Share design with anyone within your organization, and make your design easily accessible to all relevant team members.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -808,6 +858,7 @@ "feature": "Clone any published design to customise it according to your use cases", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -824,6 +875,7 @@ "feature": "Change management through a process of curation of content to be published in the catalog.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -840,6 +892,7 @@ "feature": "Detailed accounting of user activity. Historical record or each action taken.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -856,6 +909,7 @@ "feature": "15 built-in keychains.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -872,6 +926,7 @@ "feature": "Audit history of when a key is used and who used the key.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -888,6 +943,7 @@ "feature": "Assign connections to environment", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -904,6 +960,7 @@ "feature": "Expiring and non-expiring API tokens. Visibility into active and expired user sessions.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -920,6 +977,7 @@ "feature": "Use your existing accounts and centrally manage access.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -936,6 +994,7 @@ "feature": "See public user profile details, public activities and public resources.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -952,6 +1011,7 @@ "feature": "Badges are visual indicators of achievements or milestones that users can earn in order to recognizing activity milestones, encouraging positive behavior, mark progress, and gamifying platform experience.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -968,6 +1028,7 @@ "feature": "New user sign-up verification. Self-service password recovery.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -984,6 +1045,7 @@ "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -1000,6 +1062,7 @@ "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "x", "enterprise": "" @@ -1016,6 +1079,7 @@ "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. Hierarchical user organizations and permissioning. Enforcement of tenancy.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1032,6 +1096,7 @@ "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1048,6 +1113,7 @@ "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1064,6 +1130,7 @@ "feature": "Pay bills via invoice, rather than using your credit card.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1080,6 +1147,7 @@ "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1087,6 +1155,23 @@ "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/self-hosted/" }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "1", + "function": "Environments", + "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, { "theme": "", "categoryOrder": "", @@ -1096,6 +1181,7 @@ "feature": "Link your social sign-in with GitHub to your existing user account.", "subscription_tier": "Team", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1112,6 +1198,7 @@ "feature": "Link your social sign-in with Google to your existing user account.", "subscription_tier": "Team", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1128,6 +1215,7 @@ "feature": "List and see details of active and inactive subscriptions.", "subscription_tier": "Team", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1144,6 +1232,7 @@ "feature": "Explore subscription plans and compare their features.", "subscription_tier": "Team", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1160,6 +1249,7 @@ "feature": "Establish new organization for organizing teams, users, and resource access.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1176,22 +1266,7 @@ "feature": "Day 2 support for ongoing synchronization of Kubernetes configuration, workloads and service mesh changes.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Environments", - "functionOrder": "1", - "function": "Environments", - "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1208,6 +1283,7 @@ "feature": "This permission grants the user the ability to manage infrastructure life cycles within meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1224,6 +1300,7 @@ "feature": "Manage configuration for applications like EmojiVoto, HTTPBin, Image Hub, Istio Book Info", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1240,6 +1317,7 @@ "feature": "Configure infrastructure with some predefined options like Automatic Sidecar injection, Envoy Filter, Policy", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1256,6 +1334,7 @@ "feature": "Validate cloud native infrastructure configuration against best practices like Analyze Running Configuration, SMI conformance", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1272,6 +1351,7 @@ "feature": "This permission grants the user the ability to apply custom configuration and customize existing configuration of thier cloud native infrastructure", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1288,6 +1368,7 @@ "feature": "This permission grants the user the ability to deploy their infrastructure to a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1304,6 +1385,7 @@ "feature": "This permission grants the user the ability to undeploy their infrastructure from a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1320,6 +1402,7 @@ "feature": "This permission grants the user the ability to view all cloud native infrastructure in Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" diff --git a/src/sections/Pricing/pricing.style.js b/src/sections/Pricing/pricing.style.js index a94de6745a8f..d0abf5e24a45 100644 --- a/src/sections/Pricing/pricing.style.js +++ b/src/sections/Pricing/pricing.style.js @@ -63,7 +63,8 @@ const PricingWrapper = styled.section` .toggle-container .active { background-color: ${props => props.theme.secondaryColor}; - color: #ccc; + color: #fff; + font-weight: 600; border-color: ${props => props.theme.secondaryColor}; } From f2903453ffdd815d10acfab49efc4851fadc7dd9 Mon Sep 17 00:00:00 2001 From: l5io Date: Thu, 12 Dec 2024 01:43:18 +0000 Subject: [PATCH 23/83] Updated feature data from spreadsheet Signed-off-by: l5io --- src/sections/Pricing/feature_data.json | 99 +++++--------------------- 1 file changed, 16 insertions(+), 83 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 5a43e98bda8a..cb8b098b9f01 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -8,7 +8,6 @@ "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -25,7 +24,6 @@ "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -42,7 +40,6 @@ "feature": "Bulk import designs from GitHub", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -59,7 +56,6 @@ "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -76,7 +72,6 @@ "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -93,7 +88,6 @@ "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -110,7 +104,6 @@ "feature": "Discover clusters and/or import existing Kubernetes applications. Visualize their architecture, and gain a clear understanding of how different components interact.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -127,7 +120,6 @@ "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -144,7 +136,6 @@ "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -161,7 +152,6 @@ "feature": "Real-time resource metrics.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -178,7 +168,6 @@ "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -195,7 +184,6 @@ "feature": "Add new views to workspace", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -212,7 +200,6 @@ "feature": "Export views to JSON format", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -229,7 +216,6 @@ "feature": "Share Views", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -246,7 +232,6 @@ "feature": "Clone Views", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -263,7 +248,6 @@ "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -280,7 +264,6 @@ "feature": "Test and verify configuration changes in a separate environment.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -297,7 +280,6 @@ "feature": "Management and ongoing synchronization of cloud native infrastructure across any number of Clouds and Kubernetes clusters.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -314,7 +296,6 @@ "feature": "Management and ongoing synchronization of AWS and GCP services, workloads and changes across any number of accounts.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -331,7 +312,6 @@ "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -348,7 +328,6 @@ "feature": "Provision and deprovision cloud native infrastructure using your designs.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -365,7 +344,6 @@ "feature": "Retract all resources used in a Meshery design from the cluster", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -382,7 +360,6 @@ "feature": "Pencil for freeform drawing of any shapes", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -399,7 +376,6 @@ "feature": "Draw shapes, lines, text, customize style, drag and drop images and text files to represent the components and relationships of between your infrastructure components.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -416,7 +392,6 @@ "feature": "Use layers to show, hide, and group objects on the same board—perfect for building detailed diagrams or revealing project phases.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -433,7 +408,6 @@ "feature": "Continuous visibility across all of your clusters and workloads. Single or multiple results in standardized format.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -450,7 +424,6 @@ "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -467,7 +440,6 @@ "feature": "Storage of 500 result sets in Provider for a given Performance Profile. Capacity, soak, and burst testing supporting HTTP, HTTPS, TCP, gRPC load generation with configurable test duration, RPS, and request concurrency.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -484,7 +456,6 @@ "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -501,7 +472,6 @@ "feature": "Shared Workspaces are collaborative spaces that you can use to store and collaborate on files within and between teams. Easily share files with customizable permissions (edit, comment, view). Create up to 10 shared workspaces per organization.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -518,7 +488,6 @@ "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -535,7 +504,6 @@ "feature": "Visual comparison of performance test results.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -552,7 +520,6 @@ "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -569,7 +536,6 @@ "feature": "Create and collaborate in online designs in real-time.", "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -586,7 +552,6 @@ "feature": "Simultaneously manage your infrastructure using shared views in real-time.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -603,7 +568,6 @@ "feature": "Create and collaborate in online operational topologies in real-time.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -620,7 +584,6 @@ "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -637,7 +600,6 @@ "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -654,7 +616,6 @@ "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -671,7 +632,6 @@ "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -688,7 +648,6 @@ "feature": "Assign User Roles, Assign Keychains to Roles", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -705,7 +664,6 @@ "feature": "Manage access to designs on a team-by-team, or individual user, basis.", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -722,7 +680,6 @@ "feature": "Customizable roles for specific permission assignments", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -739,7 +696,6 @@ "feature": "Own and control the user accounts of your organization members through your identity provider (IdP).", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -756,7 +712,6 @@ "feature": "Assign designs to workspaces", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -773,7 +728,6 @@ "feature": "Grant workspaces access to environments and their resources.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -790,7 +744,6 @@ "feature": "Move designs, views, and models between Shared Workspaces.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -807,7 +760,6 @@ "feature": "A library of pre-built design patterns and operational templates for common deployment scenarios, simplifying the configuration process and ensuring best practices.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -824,7 +776,6 @@ "feature": "Privately publish and share reusable design patterns and operational templates within your organization.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -841,7 +792,6 @@ "feature": "Share design with anyone within your organization, and make your design easily accessible to all relevant team members.", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -858,7 +808,6 @@ "feature": "Clone any published design to customise it according to your use cases", "subscription_tier": "", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -875,7 +824,6 @@ "feature": "Change management through a process of curation of content to be published in the catalog.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -892,7 +840,6 @@ "feature": "Detailed accounting of user activity. Historical record or each action taken.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -909,7 +856,6 @@ "feature": "15 built-in keychains.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -926,7 +872,6 @@ "feature": "Audit history of when a key is used and who used the key.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -943,7 +888,6 @@ "feature": "Assign connections to environment", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -960,7 +904,6 @@ "feature": "Expiring and non-expiring API tokens. Visibility into active and expired user sessions.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -977,7 +920,6 @@ "feature": "Use your existing accounts and centrally manage access.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -994,7 +936,6 @@ "feature": "See public user profile details, public activities and public resources.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1011,7 +952,6 @@ "feature": "Badges are visual indicators of achievements or milestones that users can earn in order to recognizing activity milestones, encouraging positive behavior, mark progress, and gamifying platform experience.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1028,7 +968,6 @@ "feature": "New user sign-up verification. Self-service password recovery.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1045,7 +984,6 @@ "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", "subscription_tier": "Free", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -1062,7 +1000,6 @@ "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "x", "enterprise": "" @@ -1079,7 +1016,6 @@ "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. Hierarchical user organizations and permissioning. Enforcement of tenancy.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1096,7 +1032,6 @@ "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1113,7 +1048,6 @@ "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1130,7 +1064,6 @@ "feature": "Pay bills via invoice, rather than using your credit card.", "subscription_tier": "", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1147,7 +1080,6 @@ "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1164,7 +1096,6 @@ "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1181,7 +1112,6 @@ "feature": "Link your social sign-in with GitHub to your existing user account.", "subscription_tier": "Team", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1198,7 +1128,6 @@ "feature": "Link your social sign-in with Google to your existing user account.", "subscription_tier": "Team", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1215,7 +1144,6 @@ "feature": "List and see details of active and inactive subscriptions.", "subscription_tier": "Team", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1232,7 +1160,6 @@ "feature": "Explore subscription plans and compare their features.", "subscription_tier": "Team", "comparison_tiers": { - "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1249,7 +1176,6 @@ "feature": "Establish new organization for organizing teams, users, and resource access.", "subscription_tier": "Enterprise", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1266,7 +1192,6 @@ "feature": "Day 2 support for ongoing synchronization of Kubernetes configuration, workloads and service mesh changes.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1283,7 +1208,6 @@ "feature": "This permission grants the user the ability to manage infrastructure life cycles within meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1300,7 +1224,6 @@ "feature": "Manage configuration for applications like EmojiVoto, HTTPBin, Image Hub, Istio Book Info", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1317,7 +1240,6 @@ "feature": "Configure infrastructure with some predefined options like Automatic Sidecar injection, Envoy Filter, Policy", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1334,7 +1256,6 @@ "feature": "Validate cloud native infrastructure configuration against best practices like Analyze Running Configuration, SMI conformance", "subscription_tier": "TeamDesigner", "comparison_tiers": { - "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1351,7 +1272,6 @@ "feature": "This permission grants the user the ability to apply custom configuration and customize existing configuration of thier cloud native infrastructure", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1368,7 +1288,6 @@ "feature": "This permission grants the user the ability to deploy their infrastructure to a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1385,7 +1304,6 @@ "feature": "This permission grants the user the ability to undeploy their infrastructure from a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1402,12 +1320,27 @@ "feature": "This permission grants the user the ability to view all cloud native infrastructure in Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", "subscription_tier": "TeamOperator", "comparison_tiers": { - "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", "docs": "" + }, + { + "theme": "", + "categoryOrder": "1", + "category": "Life", + "functionOrder": "", + "function": "Timeline (DVR)", + "feature": "Playback service transactions. Scrub over the history of changes to your deployments.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" } ] \ No newline at end of file From 6d7df3a07495c89354d257ac394c7686c0349640 Mon Sep 17 00:00:00 2001 From: Vidit Kushwaha Date: Thu, 12 Dec 2024 11:02:15 +0000 Subject: [PATCH 24/83] add general contribution and documentation guidelines for Sistent Signed-off-by: Vidit Kushwaha --- CONTRIBUTING.md | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2510c3f47851..ffce62888d59 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ We are beyond excited to see that you want to contribute! We would love to accep - [Before You Get Started](#before-you-get-started) - [Contributing to Layer5 Projects](#contributing-to-layer5-projects) - [Contributing to Layer5's Blogs](#contributing-to-layer5s-blogs) -- [Contributing to Layer5's Sistent documentation](#contributing-to-layer5s-sistent-documentation) +- [Contributing to Layer5's Sistent](#contributing-to-layer5s-sistent) - [How to Contribute](#how-to-contribute) - [Prerequisites](#prerequisites) - [Set up your Local Development Environment](#set-up-your-local-development-environment) @@ -130,20 +130,36 @@ If you'd like to contribute a post to layer5.io/blog, please open an Issue and s 3. Follow the instructions included in the news template and name the new file after the title of the news article. 4. Entries will be listed in chronological order automatically. -## Contributing to Layer5's Sistent documentation +# Contributing to Layer5's Sistent -If you'd like to contribute a post to layer5.io/projects/sistent/components. start by selecting the area/sistent label in the [#GitHub issue tracker](https://github.com/layer5io/layer5/labels/project%2Fsistent). We've streamlined the process by introducing a dynamic page creation workflow, simplifying the addition of new pages and ensuring a consistent structure for all contributions. +If you'd like to contribute to Sistent, start by selecting the project/sistent label in the [#GitHub issue tracker](https://github.com/layer5io/layer5/labels/project%2Fsistent). + +### General Contribution Guidelines + +1. Select the [project/sistent](https://github.com/layer5io/layer5/labels/project%2Fsistent) label in the GitHub issue tracker. +1. Navigate to the relevant directory, such as: + ``` + src/sections/Projects/Sistent + ``` + > Note: For other parts of the project, the file path may vary. Ensure you're working in the correct file associated with the area you're contributing to. +1. Add or update content. The system dynamically generates pages and routes to maintain consistency. ### Adding Sistent Component -1. All content is managed in a centralized file: + +We've streamlined the process by introducing a dynamic page creation workflow, simplifying the addition of new pages and ensuring a consistent structure for all contributions. + +1. Navigate to the relevant directory, such as: + ``` + src/sections/Projects/Sistent + ``` +1. To add a new page, simply update this `content.js` file with the necessary details. All content is managed in a centralized file: ``` src/sections/Projects/Sistent/components/content.js ``` -2. To add a new page, simply update this `content.js` file with the necessary details. -3. The system will dynamically generate pages based on this content and handle routing automatically. +1. The system will dynamically generate pages based on this content and handle routing automatically. ### Example -Refer to the **Button component** in the Sistent Library for an example of how to structure the content. +Refer to the [**Button component**](https://layer5.io/projects/sistent/components/button) in the Sistent Library for an example of how to structure the content. # Common Types of Site Contributions From 2efb95f1426bc2235a201c9fa359dfd5a5a99e2a Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Thu, 12 Dec 2024 13:48:16 -0600 Subject: [PATCH 25/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 537 ++++++++++++++++--------- 1 file changed, 336 insertions(+), 201 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index cb8b098b9f01..1b5fe37272ee 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -8,6 +8,7 @@ "feature": "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -19,75 +20,97 @@ "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "1", - "function": "Import your IaC", - "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", + "functionOrder": "2", + "function": "Export Designs", + "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "https://docs.meshery.io/extensions/importing-a-design" + "pricing_page": "", + "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "1", - "function": "Bulk Import IaC", - "feature": "Bulk import designs from GitHub", - "subscription_tier": "", + "functionOrder": "3", + "function": "350 Built-in Models", + "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", + "subscription_tier": "Free", "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "", + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/getting-started/github-integration/" + "docs": "" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "1", - "function": "Export Designs", - "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", + "functionOrder": "4", + "function": "Custom Model Import/Export", + "feature": "Import of Model package as OCI image", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" + "docs": "" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "2", - "function": "350 Built-in Models", - "feature": "Thousands of standardized components to represent complex systems, providing logical architecture of your infrastructure.", - "subscription_tier": "Free", + "functionOrder": "5", + "function": "Import your IaC", + "feature": "Import a design from Kubernetes Manifest, Helm Chart, Docker Compose or Artifact Hub.", + "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", - "teamOperator": "x", + "teamOperator": "", "enterprise": "x" }, "pricing_page": "x", - "docs": "" + "docs": "https://docs.meshery.io/extensions/importing-a-design" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "2", + "functionOrder": "6", + "function": "Bulk Import IaC", + "feature": "Bulk import designs from GitHub", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "https://docs.layer5.io/cloud/getting-started/github-integration/" + }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "7", "function": "Collaborative Design Review", "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -99,11 +122,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "101", "function": "Discovery of existing infrastructure", "feature": "Discover clusters and/or import existing Kubernetes applications. Visualize their architecture, and gain a clear understanding of how different components interact.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -115,11 +139,29 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "102", + "function": "Environments", + "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "1", + "category": "Lifecycle Management", + "functionOrder": "103", "function": "Robust CLI", "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -131,11 +173,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "104", "function": "Web-based Terminal", "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -147,11 +190,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "105", "function": "Standard Events and Metrics", "feature": "Real-time resource metrics.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -163,27 +207,29 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "106", "function": "Views", "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" + "docs": "https://docs.layer5.io/kanvas/operator/operator-views/" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "107", "function": "Assign Views to Workspace", "feature": "Add new views to workspace", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -195,59 +241,46 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "108", "function": "Export views", "feature": "Export views to JSON format", - "subscription_tier": "TeamOperator", + "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#5-export-a-view" + "docs": "https://docs.layer5.io/kanvas/operator/operator-views/#5-export-a-view" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "109", "function": "Share Views", - "feature": "Share Views", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Clone Views", - "feature": "Clone Views", + "feature": "Share views with anyone within your organization, and make your design easily accessible to all relevant team members.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/operator/operator-views/#3-share-a-view" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "1", + "functionOrder": "110", "function": "Stream Container Logs", "feature": "Stream and search logs from one or more pod/container simultaneously to observe application behavior and identify issues in real time.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -259,11 +292,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "2", + "functionOrder": "111", "function": "Deployment dry-run", "feature": "Test and verify configuration changes in a separate environment.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -275,11 +309,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "2", + "functionOrder": "112", "function": "Multiple Kubernetes Clusters", "feature": "Management and ongoing synchronization of cloud native infrastructure across any number of Clouds and Kubernetes clusters.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -291,11 +326,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "2", + "functionOrder": "113", "function": "AWS and GCP", "feature": "Management and ongoing synchronization of AWS and GCP services, workloads and changes across any number of accounts.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -307,11 +343,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "4", + "functionOrder": "114", "function": "Orchestration: Pre-provisioning", "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -323,11 +360,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "4", + "functionOrder": "115", "function": "Orchestration: Provisioning", "feature": "Provision and deprovision cloud native infrastructure using your designs.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -339,11 +377,12 @@ "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "4", + "functionOrder": "116", "function": "Orchestration: Deprovisioning", "feature": "Retract all resources used in a Meshery design from the cluster", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" @@ -355,11 +394,12 @@ "theme": "", "categoryOrder": "2", "category": "Kanvas", - "functionOrder": "1", + "functionOrder": "201", "function": "Whiteboarding", "feature": "Pencil for freeform drawing of any shapes", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -371,11 +411,12 @@ "theme": "", "categoryOrder": "2", "category": "Kanvas", - "functionOrder": "2", + "functionOrder": "202", "function": "500 Built-in Shapes, Pen and Pencil", "feature": "Draw shapes, lines, text, customize style, drag and drop images and text files to represent the components and relationships of between your infrastructure components.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -387,11 +428,12 @@ "theme": "", "categoryOrder": "2", "category": "Kanvas", - "functionOrder": "3", + "functionOrder": "203", "function": "Layers", "feature": "Use layers to show, hide, and group objects on the same board—perfect for building detailed diagrams or revealing project phases.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -403,11 +445,12 @@ "theme": "", "categoryOrder": "3", "category": "Performance Management", - "functionOrder": "1", + "functionOrder": "301", "function": "Load Generation and Performance Testing", "feature": "Continuous visibility across all of your clusters and workloads. Single or multiple results in standardized format.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -415,31 +458,16 @@ "pricing_page": "x", "docs": "" }, - { - "theme": "", - "categoryOrder": "3", - "category": "GitOps", - "functionOrder": "2", - "function": "GitOps Snapshots", - "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/tutorials/gitops-snapshots/" - }, { "theme": "", "categoryOrder": "3", "category": "Performance Management", - "functionOrder": "2", + "functionOrder": "302", "function": "Performance Profiles", - "feature": "Storage of 500 result sets in Provider for a given Performance Profile. Capacity, soak, and burst testing supporting HTTP, HTTPS, TCP, gRPC load generation with configurable test duration, RPS, and request concurrency.", + "feature": "Define, name, and save performance profiles. Share performance profiles and test results with individual users or teams.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -447,63 +475,16 @@ "pricing_page": "", "docs": "" }, - { - "theme": "", - "categoryOrder": "3", - "category": "Workspaces", - "functionOrder": "3", - "function": "My Workspace", - "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", - "subscription_tier": "Free", - "comparison_tiers": { - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "3", - "category": "Workspaces", - "functionOrder": "3", - "function": "Shared Workspaces", - "feature": "Shared Workspaces are collaborative spaces that you can use to store and collaborate on files within and between teams. Easily share files with customizable permissions (edit, comment, view). Create up to 10 shared workspaces per organization.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "3", - "category": "GitOps", - "functionOrder": "4", - "function": "GitOps Integrations", - "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, { "theme": "", "categoryOrder": "3", "category": "Performance Management", - "functionOrder": "4", + "functionOrder": "303", "function": "Comparative Testing", "feature": "Visual comparison of performance test results.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -515,11 +496,12 @@ "theme": "", "categoryOrder": "3", "category": "Performance Management", - "functionOrder": "5", + "functionOrder": "304", "function": "Capacity, soak, and burst testing", "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -531,11 +513,12 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "1", + "functionOrder": "401", "function": "Collaborative Infrastructure Design", "feature": "Create and collaborate in online designs in real-time.", - "subscription_tier": "TeamDesigner|TeamOperator", + "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -547,11 +530,12 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "1", + "functionOrder": "402", "function": "Collaborative Infrastructure Views", "feature": "Simultaneously manage your infrastructure using shared views in real-time.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -563,11 +547,12 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "3", + "functionOrder": "403", "function": "Manage access to views", "feature": "Create and collaborate in online operational topologies in real-time.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -579,11 +564,12 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "", + "functionOrder": "404", "function": "Collaborators for public/private designs", "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -595,27 +581,29 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "", + "functionOrder": "405", "function": "Collaborators for public/private views", "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/" + "docs": "https://docs.layer5.io/kanvas/operator/operator-views/" }, { "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "1", + "functionOrder": "501", "function": "Built-in Roles", "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -627,11 +615,12 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "1", + "functionOrder": "502", "function": "Identity through OAuth", "feature": "Use third-party identity providers, Google and GitHub, to manage the identities of your organization's members.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -643,11 +632,12 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "2", + "functionOrder": "503", "function": "Custom Roles", "feature": "Assign User Roles, Assign Keychains to Roles", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -659,11 +649,12 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "3", + "functionOrder": "504", "function": "Resource Access Management", "feature": "Manage access to designs on a team-by-team, or individual user, basis.", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -675,11 +666,12 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "4", + "functionOrder": "505", "function": "User-defined Roles", "feature": "Customizable roles for specific permission assignments", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -691,15 +683,84 @@ "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "5", + "functionOrder": "506", "function": "Identity through OIDC", "feature": "Own and control the user accounts of your organization members through your identity provider (IdP).", "subscription_tier": "", "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "507", + "function": "Cloud as an IDP", + "feature": "Own and control the user accounts of your enterprise members with Layer5 Cloud your identity provider (IdP).", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "508", + "function": "Teams", + "feature": "Establish new team for organizing groups of users and resource access. Single organization, multiple teams.", + "subscription_tier": "TeamDesigner|TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "https://docs.layer5.io/cloud/identity/teams/" + }, + { + "theme": "", + "categoryOrder": "5", + "category": "Identity & Access Management", + "functionOrder": "509", + "function": "Organizations", + "feature": "Particpate as a member of multiple organizations each with their own accounting and billing structure. Multiple organizations, multiple teams.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, + "pricing_page": "", + "docs": "https://docs.layer5.io/cloud/identity/organizations/" + }, + { + "theme": "", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "601", + "function": "My Workspace", + "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", + "subscription_tier": "Free", + "comparison_tiers": { + "free": "x", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, "pricing_page": "x", "docs": "" }, @@ -707,11 +768,12 @@ "theme": "", "categoryOrder": "6", "category": "Workspaces", - "functionOrder": "1", + "functionOrder": "605", "function": "Manage Workspace Team and User Access", "feature": "Assign designs to workspaces", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -723,11 +785,63 @@ "theme": "", "categoryOrder": "6", "category": "Workspaces", - "functionOrder": "2", + "functionOrder": "602", + "function": "Shared Workspaces", + "feature": "Shared Workspaces are collaborative spaces that you can use to store and collaborate on files within and between teams. Easily share files with customizable permissions (edit, comment, view). Create up to 10 shared workspaces per organization.", + "subscription_tier": "TeamDesigner|TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "x", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "603", + "function": "GitOps Snapshots", + "feature": "Visual insights in your pull requests in GitHub. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests.", + "subscription_tier": "TeamDesigner", + "comparison_tiers": { + "free": "", + "teamDesigner": "x", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "https://docs.layer5.io/cloud/tutorials/gitops-snapshots/" + }, + { + "theme": "", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "604", + "function": "GitOps Integrations", + "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "pricing_page": "x", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "606", "function": "Assign Environments to Workspaces", "feature": "Grant workspaces access to environments and their resources.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -739,11 +853,12 @@ "theme": "", "categoryOrder": "6", "category": "Workspaces", - "functionOrder": "4", + "functionOrder": "607", "function": "Transfer files between workspaces", "feature": "Move designs, views, and models between Shared Workspaces.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -755,11 +870,12 @@ "theme": "", "categoryOrder": "7", "category": "Catalog", - "functionOrder": "1", + "functionOrder": "701", "function": "Public Catalog: 400 Cloud Native Patterns", "feature": "A library of pre-built design patterns and operational templates for common deployment scenarios, simplifying the configuration process and ensuring best practices.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -771,11 +887,12 @@ "theme": "", "categoryOrder": "7", "category": "Catalog", - "functionOrder": "1", + "functionOrder": "702", "function": "Private Catalog", "feature": "Privately publish and share reusable design patterns and operational templates within your organization.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -787,11 +904,12 @@ "theme": "", "categoryOrder": "7", "category": "Catalog", - "functionOrder": "1", + "functionOrder": "703", "function": "Share Design", "feature": "Share design with anyone within your organization, and make your design easily accessible to all relevant team members.", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -803,11 +921,12 @@ "theme": "", "categoryOrder": "7", "category": "Catalog", - "functionOrder": "1", + "functionOrder": "704", "function": "Clone Design", "feature": "Clone any published design to customise it according to your use cases", "subscription_tier": "", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -819,11 +938,12 @@ "theme": "", "categoryOrder": "7", "category": "Catalog", - "functionOrder": "", + "functionOrder": "708", "function": "Approve Catalog Request", "feature": "Change management through a process of curation of content to be published in the catalog.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -835,11 +955,29 @@ "theme": "", "categoryOrder": "8", "category": "Security", - "functionOrder": "1", + "functionOrder": "801", + "function": "Credentials and Connections", + "feature": "Assign connections to environment", + "subscription_tier": "TeamOperator", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "x", + "enterprise": "x" + }, + "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "8", + "category": "Security", + "functionOrder": "802", "function": "Audit Trail", "feature": "Detailed accounting of user activity. Historical record or each action taken.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -851,11 +989,12 @@ "theme": "", "categoryOrder": "8", "category": "Security", - "functionOrder": "2", + "functionOrder": "803", "function": "Permissions: Keychains and Keys", "feature": "15 built-in keychains.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -867,11 +1006,12 @@ "theme": "", "categoryOrder": "8", "category": "Security", - "functionOrder": "", + "functionOrder": "804", "function": "Keys", "feature": "Audit history of when a key is used and who used the key.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -883,27 +1023,12 @@ "theme": "", "categoryOrder": "8", "category": "Security", - "functionOrder": "", - "function": "Credentials and Connections", - "feature": "Assign connections to environment", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "8", - "category": "Security", - "functionOrder": "", + "functionOrder": "805", "function": "API Tokens, Sessions", "feature": "Expiring and non-expiring API tokens. Visibility into active and expired user sessions.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -915,11 +1040,12 @@ "theme": "", "categoryOrder": "9", "category": "Managed Service Provider", - "functionOrder": "6", + "functionOrder": "901", "function": "User Provisioning through SCIM", "feature": "Use your existing accounts and centrally manage access.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -931,11 +1057,12 @@ "theme": "", "categoryOrder": "9", "category": "Managed Service Provider", - "functionOrder": "6", + "functionOrder": "902", "function": "Public Profiles for Users", "feature": "See public user profile details, public activities and public resources.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -947,11 +1074,12 @@ "theme": "", "categoryOrder": "9", "category": "Managed Service Provider", - "functionOrder": "6", + "functionOrder": "903", "function": "Recognition Program Badges", "feature": "Badges are visual indicators of achievements or milestones that users can earn in order to recognizing activity milestones, encouraging positive behavior, mark progress, and gamifying platform experience.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -963,11 +1091,12 @@ "theme": "", "categoryOrder": "9", "category": "Managed Service Provider", - "functionOrder": "6", + "functionOrder": "904", "function": "Self-service User Accounts", "feature": "New user sign-up verification. Self-service password recovery.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -979,11 +1108,12 @@ "theme": "", "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "1", + "functionOrder": "1001", "function": "Community Support", "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", "subscription_tier": "Free", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" @@ -995,11 +1125,12 @@ "theme": "", "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "2", + "functionOrder": "1002", "function": "Standard Support", "feature": "Layer5 Support can help you troubleshoot issues you run into. Get support via email.", "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "x", "enterprise": "" @@ -1011,11 +1142,12 @@ "theme": "", "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "3", + "functionOrder": "1003", "function": "Managed Service Provider", - "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. Hierarchical user organizations and permissioning. Enforcement of tenancy.", + "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. \n\nHierarchical user organizations and permissioning. Enforcement of tenancy.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1027,11 +1159,12 @@ "theme": "", "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "3", + "functionOrder": "1004", "function": "Premium Support", "feature": "With Premium, get a 2-hour SLA and 24/7 web and phone support.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1043,11 +1176,12 @@ "theme": "", "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "4", + "functionOrder": "1005", "function": "Enterprise API & Extensible Webhooks", "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1059,11 +1193,12 @@ "theme": "", "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "6", + "functionOrder": "1007", "function": "Invoice Billing", "feature": "Pay bills via invoice, rather than using your credit card.", "subscription_tier": "", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1075,11 +1210,12 @@ "theme": "", "categoryOrder": "10", "category": "Support and Deployment", - "functionOrder": "7", + "functionOrder": "1008", "function": "Self-hosted Deployment", "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1087,22 +1223,6 @@ "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/self-hosted/" }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "1", - "function": "Environments", - "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, { "theme": "", "categoryOrder": "", @@ -1112,6 +1232,7 @@ "feature": "Link your social sign-in with GitHub to your existing user account.", "subscription_tier": "Team", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1128,6 +1249,7 @@ "feature": "Link your social sign-in with Google to your existing user account.", "subscription_tier": "Team", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1144,6 +1266,7 @@ "feature": "List and see details of active and inactive subscriptions.", "subscription_tier": "Team", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1160,6 +1283,7 @@ "feature": "Explore subscription plans and compare their features.", "subscription_tier": "Team", "comparison_tiers": { + "free": "x", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1176,6 +1300,7 @@ "feature": "Establish new organization for organizing teams, users, and resource access.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" @@ -1192,6 +1317,7 @@ "feature": "Day 2 support for ongoing synchronization of Kubernetes configuration, workloads and service mesh changes.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1208,6 +1334,7 @@ "feature": "This permission grants the user the ability to manage infrastructure life cycles within meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1224,6 +1351,7 @@ "feature": "Manage configuration for applications like EmojiVoto, HTTPBin, Image Hub, Istio Book Info", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1240,6 +1368,7 @@ "feature": "Configure infrastructure with some predefined options like Automatic Sidecar injection, Envoy Filter, Policy", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1256,6 +1385,7 @@ "feature": "Validate cloud native infrastructure configuration against best practices like Analyze Running Configuration, SMI conformance", "subscription_tier": "TeamDesigner", "comparison_tiers": { + "free": "", "teamDesigner": "x", "teamOperator": "", "enterprise": "x" @@ -1272,6 +1402,7 @@ "feature": "This permission grants the user the ability to apply custom configuration and customize existing configuration of thier cloud native infrastructure", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1288,6 +1419,7 @@ "feature": "This permission grants the user the ability to deploy their infrastructure to a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1304,6 +1436,7 @@ "feature": "This permission grants the user the ability to undeploy their infrastructure from a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1320,6 +1453,7 @@ "feature": "This permission grants the user the ability to view all cloud native infrastructure in Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", "subscription_tier": "TeamOperator", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" @@ -1336,6 +1470,7 @@ "feature": "Playback service transactions. Scrub over the history of changes to your deployments.", "subscription_tier": "Enterprise", "comparison_tiers": { + "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" From 56b7a4b41774d360a70efd29b750d638a2b84884 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Thu, 12 Dec 2024 13:51:30 -0600 Subject: [PATCH 26/83] Update feature JSON key for consistency in naming Signed-off-by: Lee Calcote --- .github/build/features-to-json.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/build/features-to-json.js b/.github/build/features-to-json.js index 36baabe0d599..bf8e73197403 100755 --- a/.github/build/features-to-json.js +++ b/.github/build/features-to-json.js @@ -56,7 +56,7 @@ async function processCSV() { feature: row["Feature"], subscription_tier: row["Subscription Tier"], comparison_tiers: { - free: row["Free Tier"], + free: row["Free"], teamDesigner: row["Team Designer"], teamOperator: row["Team Operator"], enterprise: row["Enterprise"], From c9dd570ee6072f4e4fcc36d8689a15f8d1ba2d76 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Thu, 12 Dec 2024 15:15:45 -0600 Subject: [PATCH 27/83] pricing Signed-off-by: Lee Calcote --- src/assets/images/pricing/docs.svg | 6 +- src/sections/Pricing/comparison.js | 7 +- src/sections/Pricing/feature_data.json | 871 +++++++++---------------- src/sections/Pricing/generatePlans.js | 3 +- 4 files changed, 314 insertions(+), 573 deletions(-) diff --git a/src/assets/images/pricing/docs.svg b/src/assets/images/pricing/docs.svg index 0e0bc4319871..a3ce670b2789 100644 --- a/src/assets/images/pricing/docs.svg +++ b/src/assets/images/pricing/docs.svg @@ -1,5 +1,7 @@ - + + + \ No newline at end of file diff --git a/src/sections/Pricing/comparison.js b/src/sections/Pricing/comparison.js index d30b7a59b0b3..e16871d758d8 100644 --- a/src/sections/Pricing/comparison.js +++ b/src/sections/Pricing/comparison.js @@ -140,7 +140,7 @@ h2, h5{ margin-top: 1rem; } .details{ - p{ + p { color: #7A848E; margin-left: 1.1rem; } @@ -154,9 +154,12 @@ h2, h5{ margin: 1rem 0; width: 100% } - .docs{ + .docs { width:1rem; height:1rem; + & > svg { + background-color:{props => props.theme.whiteZeroFiveToBlackZeroFive}; + } } .feature-link-container { diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 1b5fe37272ee..58af05fbaa9e 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -1,4 +1,20 @@ [ + { + "theme": "", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "Subscription Tier\n(1st website section)", + "comparison_tiers": { + "free": "Comparison Tiers\n(2nd website section)", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, + "docs": "" + }, { "theme": "", "categoryOrder": "0", @@ -13,7 +29,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -30,7 +45,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file" }, { @@ -47,7 +61,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -64,7 +77,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -81,7 +93,6 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", "docs": "https://docs.meshery.io/extensions/importing-a-design" }, { @@ -89,6 +100,22 @@ "categoryOrder": "0", "category": "Configuration Management", "functionOrder": "6", + "function": "Collaborative Design Review", + "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", + "subscription_tier": "TeamDesigner", + "comparison_tiers": { + "free": "", + "teamDesigner": "x", + "teamOperator": "", + "enterprise": "x" + }, + "docs": "https://docs.layer5.io/kanvas/designer/comments/" + }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "7", "function": "Bulk Import IaC", "feature": "Bulk import designs from GitHub", "subscription_tier": "", @@ -98,25 +125,55 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/getting-started/github-integration/" }, { "theme": "", - "categoryOrder": "0", + "categoryOrder": "1", "category": "Configuration Management", - "functionOrder": "7", - "function": "Collaborative Design Review", - "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", + "functionOrder": "8", + "function": "Validate Infrastructure Configuration", + "feature": "Static validation of configured parameters for design completeness and accuracy.", "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", "teamDesigner": "x", "teamOperator": "", - "enterprise": "x" + "enterprise": "" }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/designer/comments/" + "docs": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/" + }, + { + "theme": "", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "no", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, + "docs": "" + }, + { + "theme": "", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, + "docs": "" }, { "theme": "", @@ -132,7 +189,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -140,23 +196,6 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "102", - "function": "Environments", - "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "103", "function": "Robust CLI", "feature": "Seamlessly manage your configurations, deployments, and interactions through our intuitive and powerful command-line interface: mesheryctl", "subscription_tier": "Free", @@ -166,16 +205,15 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "https://docs.meshery.io/reference/mesheryctl" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "104", - "function": "Web-based Terminal", - "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", + "functionOrder": "103", + "function": "Environments", + "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -183,16 +221,15 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/operator/" + "docs": "" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "105", - "function": "Standard Events and Metrics", - "feature": "Real-time resource metrics.", + "functionOrder": "104", + "function": "Web-based Terminal", + "feature": "Direct terminal access to one ore more pods/containers simultaneously. Integrated experience.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -200,16 +237,15 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/operator/" }, { "theme": "", "categoryOrder": "1", "category": "Lifecycle Management", - "functionOrder": "106", - "function": "Views", - "feature": "See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", + "functionOrder": "105", + "function": "Standard Events and Metrics", + "feature": "Real-time resource metrics.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -217,7 +253,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/operator/operator-views/" }, { @@ -227,14 +262,13 @@ "functionOrder": "107", "function": "Assign Views to Workspace", "feature": "Add new views to workspace", - "subscription_tier": "TeamOperator", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "" }, { @@ -251,7 +285,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/operator/operator-views/#5-export-a-view" }, { @@ -261,14 +294,13 @@ "functionOrder": "109", "function": "Share Views", "feature": "Share views with anyone within your organization, and make your design easily accessible to all relevant team members.", - "subscription_tier": "TeamOperator", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/operator/operator-views/#3-share-a-view" }, { @@ -285,7 +317,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -293,7 +324,7 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "111", - "function": "Deployment dry-run", + "function": "Deployments and Deployment dry-runs", "feature": "Test and verify configuration changes in a separate environment.", "subscription_tier": "TeamOperator", "comparison_tiers": { @@ -302,8 +333,7 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/" }, { "theme": "", @@ -319,7 +349,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -327,7 +356,7 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "113", - "function": "AWS and GCP", + "function": "Multi-Cloud Integration", "feature": "Management and ongoing synchronization of AWS and GCP services, workloads and changes across any number of accounts.", "subscription_tier": "TeamOperator", "comparison_tiers": { @@ -336,25 +365,23 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "114", - "function": "Orchestration: Pre-provisioning", - "feature": "Validate infrastructure configuration. Dry-run infrastructure deployment.", - "subscription_tier": "TeamOperator", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", + "teamOperator": "", "enterprise": "" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/" + "docs": "" }, { "theme": "", @@ -363,15 +390,14 @@ "functionOrder": "115", "function": "Orchestration: Provisioning", "feature": "Provision and deprovision cloud native infrastructure using your designs.", - "subscription_tier": "TeamOperator", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/" + "docs": "" }, { "theme": "", @@ -380,16 +406,31 @@ "functionOrder": "116", "function": "Orchestration: Deprovisioning", "feature": "Retract all resources used in a Meshery design from the cluster", - "subscription_tier": "TeamOperator", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "" }, - "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/" }, + { + "theme": "", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, + "docs": "" + }, { "theme": "", "categoryOrder": "2", @@ -404,7 +445,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/" }, { @@ -418,10 +458,9 @@ "comparison_tiers": { "free": "x", "teamDesigner": "x", - "teamOperator": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "" }, { @@ -438,7 +477,22 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, "docs": "" }, { @@ -455,8 +509,7 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" + "docs": "https://docs.meshery.io/guides/performance-management/performance-management" }, { "theme": "", @@ -472,7 +525,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "" }, { @@ -489,7 +541,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "" }, { @@ -499,14 +550,29 @@ "functionOrder": "304", "function": "Capacity, soak, and burst testing", "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency", - "subscription_tier": "TeamOperator", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", + "docs": "" + }, + { + "theme": "", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, "docs": "" }, { @@ -523,7 +589,6 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -531,16 +596,15 @@ "categoryOrder": "4", "category": "Collaboration", "functionOrder": "402", - "function": "Collaborative Infrastructure Views", - "feature": "Simultaneously manage your infrastructure using shared views in real-time.", - "subscription_tier": "TeamOperator", + "function": "Public and Private Designs", + "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", + "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", - "teamDesigner": "", - "teamOperator": "x", + "teamDesigner": "x", + "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -548,16 +612,15 @@ "categoryOrder": "4", "category": "Collaboration", "functionOrder": "403", - "function": "Manage access to views", - "feature": "Create and collaborate in online operational topologies in real-time.", - "subscription_tier": "", + "function": "Collaborative Infrastructure Views", + "feature": "Simultaneously manage your infrastructure using shared views in real-time. See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -565,34 +628,32 @@ "categoryOrder": "4", "category": "Collaboration", "functionOrder": "404", - "function": "Collaborators for public/private designs", - "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", - "subscription_tier": "TeamDesigner", + "function": "Public and Private Views", + "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", + "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", - "teamDesigner": "x", - "teamOperator": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/kanvas/operator/operator-views/" }, { "theme": "", - "categoryOrder": "4", - "category": "Collaboration", - "functionOrder": "405", - "function": "Collaborators for public/private views", - "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", - "subscription_tier": "TeamOperator", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" + "teamOperator": "", + "enterprise": "" }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/kanvas/operator/operator-views/" + "docs": "" }, { "theme": "", @@ -608,7 +669,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/security/roles/" }, { @@ -625,7 +685,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -633,136 +692,96 @@ "categoryOrder": "5", "category": "Identity & Access Management", "functionOrder": "503", - "function": "Custom Roles", - "feature": "Assign User Roles, Assign Keychains to Roles", - "subscription_tier": "Enterprise", + "function": "Teams", + "feature": "Establish new team for organizing groups of users and resource access. Single organization, multiple teams.", + "subscription_tier": "TeamDesigner|TeamOperator", "comparison_tiers": { "free": "", - "teamDesigner": "", + "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/cloud/identity/teams/" }, { "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", "functionOrder": "504", - "function": "Resource Access Management", - "feature": "Manage access to designs on a team-by-team, or individual user, basis.", - "subscription_tier": "TeamDesigner", + "function": "Custom Roles", + "feature": "Assign User Roles, Assign Keychains to Roles", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", - "teamDesigner": "x", - "teamOperator": "", + "teamDesigner": "", + "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/cloud/security/roles/" }, { "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "505", - "function": "User-defined Roles", - "feature": "Customizable roles for specific permission assignments", - "subscription_tier": "Enterprise", + "functionOrder": "508", + "function": "Cloud as an IDP", + "feature": "Own and control the user accounts of your enterprise members with Layer5 Cloud your identity provider (IdP).", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/security/roles/" + "docs": "" }, { "theme": "", "categoryOrder": "5", "category": "Identity & Access Management", - "functionOrder": "506", - "function": "Identity through OIDC", - "feature": "Own and control the user accounts of your organization members through your identity provider (IdP).", - "subscription_tier": "", + "functionOrder": "509", + "function": "Organizations", + "feature": "Particpate as a member of multiple organizations each with their own accounting and billing structure. Multiple organizations, multiple teams.", + "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" + "docs": "https://docs.layer5.io/cloud/identity/organizations/" }, { "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "507", - "function": "Cloud as an IDP", - "feature": "Own and control the user accounts of your enterprise members with Layer5 Cloud your identity provider (IdP).", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "", - "enterprise": "x" + "enterprise": "" }, - "pricing_page": "", "docs": "" }, { "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "508", - "function": "Teams", - "feature": "Establish new team for organizing groups of users and resource access. Single organization, multiple teams.", - "subscription_tier": "TeamDesigner|TeamOperator", + "categoryOrder": "6", + "category": "Workspaces", + "functionOrder": "601", + "function": "My Workspace", + "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", + "subscription_tier": "Free", "comparison_tiers": { - "free": "", + "free": "x", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/identity/teams/" - }, - { - "theme": "", - "categoryOrder": "5", - "category": "Identity & Access Management", - "functionOrder": "509", - "function": "Organizations", - "feature": "Particpate as a member of multiple organizations each with their own accounting and billing structure. Multiple organizations, multiple teams.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/identity/organizations/" - }, - { - "theme": "", - "categoryOrder": "6", - "category": "Workspaces", - "functionOrder": "601", - "function": "My Workspace", - "feature": "My Workspace is your always available, primary space for storing designs, views, and models that you own.", - "subscription_tier": "Free", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" + "docs": "" }, { "theme": "", @@ -778,7 +797,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "" }, { @@ -795,7 +813,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "" }, { @@ -812,7 +829,6 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/tutorials/gitops-snapshots/" }, { @@ -829,41 +845,22 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "6", - "category": "Workspaces", - "functionOrder": "606", - "function": "Assign Environments to Workspaces", - "feature": "Grant workspaces access to environments and their resources.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "x", "docs": "" }, { "theme": "", - "categoryOrder": "6", - "category": "Workspaces", - "functionOrder": "607", - "function": "Transfer files between workspaces", - "feature": "Move designs, views, and models between Shared Workspaces.", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "", - "enterprise": "x" + "enterprise": "" }, - "pricing_page": "x", "docs": "" }, { @@ -880,7 +877,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "x", "docs": "https://cloud.layer5.io/catalog" }, { @@ -888,7 +884,7 @@ "categoryOrder": "7", "category": "Catalog", "functionOrder": "702", - "function": "Private Catalog", + "function": "Organization Private Catalog", "feature": "Privately publish and share reusable design patterns and operational templates within your organization.", "subscription_tier": "Enterprise", "comparison_tiers": { @@ -897,7 +893,6 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "x", "docs": "https://docs.layer5.io/cloud/catalog/" }, { @@ -914,7 +909,6 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/designer/share-resource/" }, { @@ -931,9 +925,24 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", "docs": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/" }, + { + "theme": "", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "707", + "function": "View Filters", + "feature": "View all public and published filters of other team members and private of signed-in user", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, + "docs": "" + }, { "theme": "", "categoryOrder": "7", @@ -948,50 +957,63 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", "docs": "https://docs.layer5.io/cloud/catalog/" }, { "theme": "", - "categoryOrder": "8", - "category": "Security", - "functionOrder": "801", - "function": "Credentials and Connections", - "feature": "Assign connections to environment", - "subscription_tier": "TeamOperator", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "709", + "function": "Single and multiple approvers", + "feature": "", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" + "teamOperator": "", + "enterprise": "" }, - "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/cloud/catalog/" }, { "theme": "", - "categoryOrder": "8", - "category": "Security", - "functionOrder": "802", - "function": "Audit Trail", - "feature": "Detailed accounting of user activity. Historical record or each action taken.", - "subscription_tier": "Enterprise", + "categoryOrder": "7", + "category": "Catalog", + "functionOrder": "710", + "function": "Import Filter", + "feature": "Import a publish WASM filter", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "", - "enterprise": "x" + "enterprise": "" + }, + "docs": "https://docs.meshery.io/guides/configuration-management/filter-management" + }, + { + "theme": "", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" }, - "pricing_page": "x", "docs": "" }, { "theme": "", "categoryOrder": "8", "category": "Security", - "functionOrder": "803", - "function": "Permissions: Keychains and Keys", - "feature": "15 built-in keychains.", + "functionOrder": "802", + "function": "Event Audit Trail", + "feature": "Detailed accounting of user activity. Historical record or each action taken.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", @@ -999,16 +1021,15 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/security/keychains" + "docs": "https://docs.layer5.io/cloud/security/" }, { "theme": "", "categoryOrder": "8", "category": "Security", - "functionOrder": "804", - "function": "Keys", - "feature": "Audit history of when a key is used and who used the key.", + "functionOrder": "803", + "function": "Customizable Permissions: Keys, Keychains and Roles", + "feature": "Highly flexible permissioning. Organize keys into custom keychains and assign to existing or custom roles that you define.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", @@ -1016,15 +1037,14 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/cloud/security/" }, { "theme": "", "categoryOrder": "8", "category": "Security", "functionOrder": "805", - "function": "API Tokens, Sessions", + "function": "User Session and API Token Oversight", "feature": "Expiring and non-expiring API tokens. Visibility into active and expired user sessions.", "subscription_tier": "Enterprise", "comparison_tiers": { @@ -1033,24 +1053,22 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "" + "docs": "https://docs.layer5.io/cloud/security/tokens/" }, { "theme": "", - "categoryOrder": "9", - "category": "Managed Service Provider", - "functionOrder": "901", - "function": "User Provisioning through SCIM", - "feature": "Use your existing accounts and centrally manage access.", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "", - "enterprise": "x" + "enterprise": "" }, - "pricing_page": "x", "docs": "" }, { @@ -1067,7 +1085,6 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", "docs": "" }, { @@ -1084,7 +1101,6 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", "docs": "" }, { @@ -1101,16 +1117,31 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" }, + { + "theme": "", + "categoryOrder": "9", + "category": "Managed Service Provider", + "functionOrder": "905", + "function": "Multi-tenancy", + "feature": "Hierarchical permissioning. Enforcement of tenancy.", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, + "docs": "" + }, { "theme": "", "categoryOrder": "10", "category": "Support and Deployment", "functionOrder": "1001", "function": "Community Support", - "feature": "Get help with most of your Meshery questions and issues in our Community Forum.", + "feature": "Get help with most of your questions and issues in our Community Forum.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -1118,7 +1149,6 @@ "teamOperator": "x", "enterprise": "x" }, - "pricing_page": "", "docs": "" }, { @@ -1135,24 +1165,6 @@ "teamOperator": "x", "enterprise": "" }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "10", - "category": "Support and Deployment", - "functionOrder": "1003", - "function": "Managed Service Provider", - "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. \n\nHierarchical user organizations and permissioning. Enforcement of tenancy.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", "docs": "" }, { @@ -1169,313 +1181,38 @@ "teamOperator": "", "enterprise": "x" }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "10", - "category": "Support and Deployment", - "functionOrder": "1005", - "function": "Enterprise API & Extensible Webhooks", - "feature": "Provides a powerful and flexible way to interact with the platform, enabling automation, integration, and customization to optimize your cloud native development and management processes.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "10", - "category": "Support and Deployment", - "functionOrder": "1007", - "function": "Invoice Billing", - "feature": "Pay bills via invoice, rather than using your credit card.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "10", - "category": "Support and Deployment", - "functionOrder": "1008", - "function": "Self-hosted Deployment", - "feature": "Self-hosted Layer5 Cloud for on-prem appliances or self-managed cloud tenants. Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "x", - "docs": "https://docs.layer5.io/cloud/self-hosted/" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Account Management", - "functionOrder": "", - "function": "Connect your Github Account", - "feature": "Link your social sign-in with GitHub to your existing user account.", - "subscription_tier": "Team", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Account Management", - "functionOrder": "", - "function": "Connect your Google Account", - "feature": "Link your social sign-in with Google to your existing user account.", - "subscription_tier": "Team", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Account Management", - "functionOrder": "", - "function": "Entitlement", - "feature": "List and see details of active and inactive subscriptions.", - "subscription_tier": "Team", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Account Management", - "functionOrder": "", - "function": "View Plans", - "feature": "Explore subscription plans and compare their features.", - "subscription_tier": "Team", - "comparison_tiers": { - "free": "x", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Identity & Access Management", - "functionOrder": "", - "function": "Organizations", - "feature": "Establish new organization for organizing teams, users, and resource access.", - "subscription_tier": "Enterprise", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "https://docs.layer5.io/cloud/identity/organizations/" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Lifecycle Management", - "functionOrder": "", - "function": "Connections: Cluster discovery", - "feature": "Day 2 support for ongoing synchronization of Kubernetes configuration, workloads and service mesh changes.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", "docs": "" }, { "theme": "", "categoryOrder": "", - "category": "Infrastructure Management", + "category": "", "functionOrder": "", - "function": "Manage cloud native infrastructure life cycle", - "feature": "This permission grants the user the ability to manage infrastructure life cycles within meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", - "subscription_tier": "TeamOperator", + "function": "", + "feature": "", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Infrastructure Management", - "functionOrder": "", - "function": "Manage cloud native infrastructure configuration", - "feature": "Manage configuration for applications like EmojiVoto, HTTPBin, Image Hub, Istio Book Info", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Infrastructure Management", - "functionOrder": "", - "function": "Apply cloud native infrastructure configuration", - "feature": "Configure infrastructure with some predefined options like Automatic Sidecar injection, Envoy Filter, Policy", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Infrastructure Management", - "functionOrder": "", - "function": "Validate cloud native infrastructure configuration", - "feature": "Validate cloud native infrastructure configuration against best practices like Analyze Running Configuration, SMI conformance", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", "teamOperator": "", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Infrastructure Management", - "functionOrder": "", - "function": "Apply custom cloud native configuration", - "feature": "This permission grants the user the ability to apply custom configuration and customize existing configuration of thier cloud native infrastructure", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Infrastructure Management", - "functionOrder": "", - "function": "Deploy cloud native infrastructure", - "feature": "This permission grants the user the ability to deploy their infrastructure to a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "", - "category": "Infrastructure Management", - "functionOrder": "", - "function": "Undeploy cloud native infrastructure", - "feature": "This permission grants the user the ability to undeploy their infrastructure from a cluster through Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" + "enterprise": "" }, - "pricing_page": "", "docs": "" }, { "theme": "", "categoryOrder": "", - "category": "Infrastructure Management", + "category": "", "functionOrder": "", - "function": "View cloud native infrastructure", - "feature": "This permission grants the user the ability to view all cloud native infrastructure in Meshery. Meshery allows users to visualize, work on and manage various cloud native technologies.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "pricing_page": "", - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Life", - "functionOrder": "", - "function": "Timeline (DVR)", - "feature": "Playback service transactions. Scrub over the history of changes to your deployments.", - "subscription_tier": "Enterprise", + "function": "", + "feature": "", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "", - "enterprise": "x" + "enterprise": "" }, - "pricing_page": "", "docs": "" } ] \ No newline at end of file diff --git a/src/sections/Pricing/generatePlans.js b/src/sections/Pricing/generatePlans.js index 94a1027ec2a9..8251b005f8e5 100644 --- a/src/sections/Pricing/generatePlans.js +++ b/src/sections/Pricing/generatePlans.js @@ -57,8 +57,7 @@ function generatePlans(data) { }) .filter((item) => { const matches = - item.subscription_tier === tierName && - item.pricing_page === "x"; + item.subscription_tier === tierName; //&& !item.exclude === "x"; return matches; }) .map((item, index) => { From 91db97a13d56966cf746c3578a25c6a9709ebaa0 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Thu, 12 Dec 2024 15:36:41 -0600 Subject: [PATCH 28/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/feature_data.json | 96 +++++++++++--------------- 1 file changed, 40 insertions(+), 56 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 58af05fbaa9e..70087ec968fd 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -37,7 +37,7 @@ "category": "Configuration Management", "functionOrder": "2", "function": "Export Designs", - "feature": "Export a latest version of design in Meshery Design (OCI format, YAML, or JSON). Export a design in source type format (Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub).", + "feature": "Export a latest version of design in any supported format: Kubernetes Manifest, Helm Chart, Docker Compose, Artifact Hub and as any OCI, YAML, or JSON.", "subscription_tier": "", "comparison_tiers": { "free": "x", @@ -61,15 +61,15 @@ "teamOperator": "x", "enterprise": "x" }, - "docs": "" + "docs": "https://docs.meshery.io/concepts/logical/models" }, { "theme": "", "categoryOrder": "0", "category": "Configuration Management", "functionOrder": "4", - "function": "Custom Model Import/Export", - "feature": "Import of Model package as OCI image", + "function": "Custom Models", + "feature": "Define new components, relationships, and policies as needed. Import/export your custom models as OCI images.", "subscription_tier": "Free", "comparison_tiers": { "free": "x", @@ -77,7 +77,7 @@ "teamOperator": "x", "enterprise": "x" }, - "docs": "" + "docs": "https://docs.meshery.io/guides/configuration-management/importing-models" }, { "theme": "", @@ -100,8 +100,8 @@ "categoryOrder": "0", "category": "Configuration Management", "functionOrder": "6", - "function": "Collaborative Design Review", - "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", + "function": "Team Design Review", + "feature": "Multiple users to simultaneously edit a document, leave comments directly on specific text sections, and track changes made by others, enabling efficient collaboration and feedback loops during the review process.", "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", @@ -116,8 +116,24 @@ "categoryOrder": "0", "category": "Configuration Management", "functionOrder": "7", + "function": "Design Review Notifications", + "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "x", + "teamOperator": "", + "enterprise": "x" + }, + "docs": "" + }, + { + "theme": "", + "categoryOrder": "0", + "category": "Configuration Management", + "functionOrder": "8", "function": "Bulk Import IaC", - "feature": "Bulk import designs from GitHub", + "feature": "Bulk import of your existing infrastructure as code from GitHub repositories.", "subscription_tier": "", "comparison_tiers": { "free": "", @@ -129,9 +145,9 @@ }, { "theme": "", - "categoryOrder": "1", + "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "8", + "functionOrder": "9", "function": "Validate Infrastructure Configuration", "feature": "Static validation of configured parameters for design completeness and accuracy.", "subscription_tier": "TeamDesigner", @@ -212,8 +228,8 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "103", - "function": "Environments", - "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.", + "function": "Environments, Deployments, & Dry-runs", + "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments. Test and verify configuration changes prior to deployment.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -244,9 +260,9 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "105", - "function": "Standard Events and Metrics", - "feature": "Real-time resource metrics.", - "subscription_tier": "TeamOperator", + "function": "Standard Metrics", + "feature": "Real-time resource metrics for managed workloads.", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", @@ -319,22 +335,6 @@ }, "docs": "" }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "111", - "function": "Deployments and Deployment dry-runs", - "feature": "Test and verify configuration changes in a separate environment.", - "subscription_tier": "TeamOperator", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "x" - }, - "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/" - }, { "theme": "", "categoryOrder": "1", @@ -388,30 +388,14 @@ "categoryOrder": "1", "category": "Lifecycle Management", "functionOrder": "115", - "function": "Orchestration: Provisioning", + "function": "Orchestration: Provisioning / Deprovisioning", "feature": "Provision and deprovision cloud native infrastructure using your designs.", "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", "teamOperator": "x", - "enterprise": "" - }, - "docs": "" - }, - { - "theme": "", - "categoryOrder": "1", - "category": "Lifecycle Management", - "functionOrder": "116", - "function": "Orchestration: Deprovisioning", - "feature": "Retract all resources used in a Meshery design from the cluster", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "x", - "enterprise": "" + "enterprise": "x" }, "docs": "https://docs.layer5.io/kanvas/tasks/designs/undeploying-designs/" }, @@ -534,7 +518,7 @@ "functionOrder": "303", "function": "Comparative Testing", "feature": "Visual comparison of performance test results.", - "subscription_tier": "TeamOperator", + "subscription_tier": "", "comparison_tiers": { "free": "", "teamDesigner": "", @@ -597,7 +581,7 @@ "category": "Collaboration", "functionOrder": "402", "function": "Public and Private Designs", - "feature": "Multi-player collaboration on infrastructure design in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public designs.", + "feature": "Invite any user to collaborate on your public or private designs.", "subscription_tier": "TeamDesigner", "comparison_tiers": { "free": "", @@ -629,7 +613,7 @@ "category": "Collaboration", "functionOrder": "404", "function": "Public and Private Views", - "feature": "Multi-player collaboration on infrastructure management in real-time, fostering teamwork and knowledge sharing. Invite any user to collaborate on your public views.", + "feature": "Invite any user to collaborate on your public or private views.", "subscription_tier": "TeamOperator", "comparison_tiers": { "free": "", @@ -788,11 +772,11 @@ "categoryOrder": "6", "category": "Workspaces", "functionOrder": "605", - "function": "Manage Workspace Team and User Access", - "feature": "Assign designs to workspaces", - "subscription_tier": "Free", + "function": "Manage Workspace Team and Environment Access", + "feature": "Assign designs, views, users, and environments to shared workspaces.", + "subscription_tier": "", "comparison_tiers": { - "free": "x", + "free": "", "teamDesigner": "x", "teamOperator": "x", "enterprise": "x" From c7d9dc3e0d06486ef13a5a6521ec79f5b831d544 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Thu, 12 Dec 2024 16:41:36 -0600 Subject: [PATCH 29/83] pricing Signed-off-by: Lee Calcote --- .github/build/features-to-json.js | 44 +++++++++--------- src/assets/images/pricing/docs.svg | 7 --- src/sections/Pricing/comparison.js | 62 +++++++++++++++---------- src/sections/Pricing/feature_data.json | 16 +++++++ src/sections/Pricing/generateDetails.js | 2 +- src/sections/Pricing/icons/docs.js | 22 +++++++++ 6 files changed, 99 insertions(+), 54 deletions(-) delete mode 100644 src/assets/images/pricing/docs.svg create mode 100644 src/sections/Pricing/icons/docs.js diff --git a/.github/build/features-to-json.js b/.github/build/features-to-json.js index bf8e73197403..b4667d5979b9 100755 --- a/.github/build/features-to-json.js +++ b/.github/build/features-to-json.js @@ -17,7 +17,7 @@ const headers = [ "Team Designer", "Team Operator", "Enterprise", - "Pricing Page", + "Exclude", "Docs", ]; @@ -36,34 +36,34 @@ async function processCSV() { const filteredData = rows.map(row => { try { - const pricingPage = row["Pricing Page"]?.toLowerCase() || ""; + const exclude = row["Exclude"]?.toLowerCase(); const hasXTier = [ "Free", "Team Designer", "Team Operator", "Enterprise"] .some(tier => row[tier]?.trim().toLowerCase() === "x"); - const includeRow = hasXTier || (pricingPage && ["x", "X"].includes(pricingPage.toLowerCase())); + // const includeRow = hasXTier && !(exclude && ["x", "X"].includes(exclude.toLowerCase())); - if (!includeRow) return null; - - return { - theme: row["Theme"], - categoryOrder: row["Category Order"], - category: row["Category"], - functionOrder: row["Function Order"], - function: row["Function"], - feature: row["Feature"], - subscription_tier: row["Subscription Tier"], - comparison_tiers: { - free: row["Free"], - teamDesigner: row["Team Designer"], - teamOperator: row["Team Operator"], - enterprise: row["Enterprise"], - }, - pricing_page: row["Pricing Page"], - docs: row["Docs"] - }; + // if (!includeRow) return null; + if (!exclude) { + return { + theme: row["Theme"], + categoryOrder: row["Category Order"], + category: row["Category"], + functionOrder: row["Function Order"], + function: row["Function"], + feature: row["Feature"], + subscription_tier: row["Subscription Tier"], + comparison_tiers: { + free: row["Free"], + teamDesigner: row["Team Designer"], + teamOperator: row["Team Operator"], + enterprise: row["Enterprise"], + }, + docs: row["Docs"] + }; + } } catch (error) { console.error("Error processing row:", row, error); return null; diff --git a/src/assets/images/pricing/docs.svg b/src/assets/images/pricing/docs.svg deleted file mode 100644 index a3ce670b2789..000000000000 --- a/src/assets/images/pricing/docs.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - \ No newline at end of file diff --git a/src/sections/Pricing/comparison.js b/src/sections/Pricing/comparison.js index e16871d758d8..7754865126e4 100644 --- a/src/sections/Pricing/comparison.js +++ b/src/sections/Pricing/comparison.js @@ -40,7 +40,7 @@ h2, h5{ vertical-align: middle; transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); - h5{ + h5 { display: flex; text-align: left; padding-top: 1rem; @@ -49,7 +49,9 @@ h2, h5{ } .price-table tr td:first-child { border-left: 0 none; - width: 45%; + width: 100%; + justify-content: flex-start; + text-align: left; } .price-table tr td:not(:first-child) { text-align: center; @@ -101,7 +103,7 @@ h2, h5{ display: inline-block; border-radius: 64px; } -.price-table td.price-table-popular { +.price-table th.price-table-popular { border-top: 3px solid #00b39f; color: #00b39f; text-transform: uppercase; @@ -115,54 +117,59 @@ h2, h5{ transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); } -.category{ +.category { display: inline-block; margin: 0 1rem; } -.icon{ +.icon { height: 4rem; width: auto; fill: #00b39f; display: inline-block; } -.no-icon{ +.no-icon { height: 1.5rem; width: auto; fill: red; } -.yes-icon{ +.yes-icon { height: 1.5rem; width: auto; fill: #00b39f; } -.toggle-btn{ +.toggle-btn { margin-top: 1rem; } -.details{ +.details { p { color: #7A848E; margin-left: 1.1rem; } } -.category-icon{ - margin: 0rem auto; +.category-icon { + } .categories { display: flex; + width: 100%; + text-align: left; align-items: center; - margin: 1rem 0; - width: 100% + margin: 1rem auto; } - .docs { +.docs { width:1rem; height:1rem; - & > svg { - background-color:{props => props.theme.whiteZeroFiveToBlackZeroFive}; + /* > svg { */ + fill: "red"; + /* fill:${props => props.theme.whiteZeroFiveToBlackZeroFive};*/ + &:hover { + opacity:.5; } - } + +} - .feature-link-container { +.feature-link-container { display: flex; align-items: center; justify-content: space-between; @@ -177,7 +184,13 @@ h2, h5{ text-decoration: none; font-size: 0.9rem; } - +.feature-link > svg { + fill: "red"; + /* fill:${props => props.theme.whiteZeroFiveToBlackZeroFive};*/ + &:hover { + opacity:.5; + } + } .feature-link:hover { text-decoration: underline; } @@ -193,10 +206,11 @@ const Comparison = () => { - - - - + + + + + @@ -209,7 +223,7 @@ const Comparison = () => { {details.map((x) => ( <> - diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 70087ec968fd..c394237e2061 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -1151,6 +1151,22 @@ }, "docs": "" }, + { + "theme": "", + "categoryOrder": "10", + "category": "Support and Deployment", + "functionOrder": "1003", + "function": "Managed Service Provider", + "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. \n\nHierarchical user organizations and permissioning. Enforcement of tenancy.", + "subscription_tier": "Enterprise", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "x" + }, + "docs": "" + }, { "theme": "", "categoryOrder": "10", diff --git a/src/sections/Pricing/generateDetails.js b/src/sections/Pricing/generateDetails.js index 0e7f9d4d21c1..498fec33f2d9 100644 --- a/src/sections/Pricing/generateDetails.js +++ b/src/sections/Pricing/generateDetails.js @@ -13,7 +13,7 @@ import Identity from "./icons/identity.svg"; import Support from "./icons/support.svg"; import Catalog from "./icons/catalog.svg"; import Security from "./icons/security.svg"; -import { ReactComponent as Docs } from "../../assets/images/pricing/docs.svg"; +import Docs from "./icons/docs.js"; function generateDetails(data) { const categories = [ diff --git a/src/sections/Pricing/icons/docs.js b/src/sections/Pricing/icons/docs.js new file mode 100644 index 000000000000..01640ee2ee19 --- /dev/null +++ b/src/sections/Pricing/icons/docs.js @@ -0,0 +1,22 @@ +import React from "react"; + +const docsIcon = ({ + width = "20px", + height = "20px", + fill = "currentColor", + style = {} +}) => ( + + + +); + +export default docsIcon; \ No newline at end of file From 0ccf4743f807e92f8a25e9ce182f1d7a508cfa74 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Thu, 12 Dec 2024 17:09:48 -0600 Subject: [PATCH 30/83] pricing Signed-off-by: Lee Calcote --- src/sections/Pricing/comparison.js | 41 +++++++++++++----------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/src/sections/Pricing/comparison.js b/src/sections/Pricing/comparison.js index 7754865126e4..cbb5dc318992 100644 --- a/src/sections/Pricing/comparison.js +++ b/src/sections/Pricing/comparison.js @@ -72,22 +72,21 @@ h2, h5{ /* Highlighted column */ -.price-table tr td:nth-child(2) { +.price-table tr td:nth-child(3) { background: rgba(0,179,159,0.1); padding: 8px 48px; } .price-table tr.price-table-head td { - font-size: 16px; + font-size: 1.15rem; + line-height: 1.5rem; font-weight: 600; + padding: .5rem; text-transform: uppercase; } .price-table tr.price-table-head { - background-color: #00b39f; + background-color:${props => props.theme.secondaryColor}; color: #FFFFFF; - td{ - padding: 1rem 0; - } } .price-table td.price { padding: 16px 24px; @@ -105,14 +104,14 @@ h2, h5{ } .price-table th.price-table-popular { border-top: 3px solid #00b39f; - color: #00b39f; + color:${props => props.theme.whiteEightToBlack}; text-transform: uppercase; font-size: 12px; padding: 12px 48px; font-weight: 700; } .price-table .price-blank { - background-color: ${props => props.theme.grey191919ToGreyFAFAFA}; + background-color: ${props => props.theme.secondaryDarkColor}; border: 0 none; transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); } @@ -160,15 +159,12 @@ h2, h5{ .docs { width:1rem; height:1rem; - /* > svg { */ - fill: "red"; - /* fill:${props => props.theme.whiteZeroFiveToBlackZeroFive};*/ - &:hover { - opacity:.5; - } - } +td.feature { + padding: auto; + margin: 0px; +} .feature-link-container { display: flex; align-items: center; @@ -185,8 +181,6 @@ h2, h5{ font-size: 0.9rem; } .feature-link > svg { - fill: "red"; - /* fill:${props => props.theme.whiteZeroFiveToBlackZeroFive};*/ &:hover { opacity:.5; } @@ -223,20 +217,21 @@ const Comparison = () => { {details.map((x) => ( <> - + {x.features.map((f) => ( - - - - + + + + ))} From 52d1e7d361aa7b7f930c0d9ef56aa87779a6ead8 Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Fri, 13 Dec 2024 00:25:40 +0000 Subject: [PATCH 31/83] [Docs] Generated documentation for Integration Signed-off-by: l5io --- .../discovery-engine-data-store-color.svg | 5 ++++ .../discovery-engine-data-store-white.svg | 3 +++ .../icons/color/kms-autokey-config-color.svg | 5 ++++ .../icons/white/kms-autokey-config-white.svg | 3 +++ .../icons/color/kms-key-handle-color.svg | 5 ++++ .../icons/white/kms-key-handle-white.svg | 3 +++ ...secure-source-manager-repository-color.svg | 5 ++++ ...secure-source-manager-repository-white.svg | 3 +++ .../k8s-config-connector/index.mdx | 24 +++++++++++++++++++ 9 files changed, 56 insertions(+) create mode 100644 src/collections/integrations/k8s-config-connector/icons/components/discovery-engine-data-store/icons/color/discovery-engine-data-store-color.svg create mode 100644 src/collections/integrations/k8s-config-connector/icons/components/discovery-engine-data-store/icons/white/discovery-engine-data-store-white.svg create mode 100644 src/collections/integrations/k8s-config-connector/icons/components/kms-autokey-config/icons/color/kms-autokey-config-color.svg create mode 100644 src/collections/integrations/k8s-config-connector/icons/components/kms-autokey-config/icons/white/kms-autokey-config-white.svg create mode 100644 src/collections/integrations/k8s-config-connector/icons/components/kms-key-handle/icons/color/kms-key-handle-color.svg create mode 100644 src/collections/integrations/k8s-config-connector/icons/components/kms-key-handle/icons/white/kms-key-handle-white.svg create mode 100644 src/collections/integrations/k8s-config-connector/icons/components/secure-source-manager-repository/icons/color/secure-source-manager-repository-color.svg create mode 100644 src/collections/integrations/k8s-config-connector/icons/components/secure-source-manager-repository/icons/white/secure-source-manager-repository-white.svg diff --git a/src/collections/integrations/k8s-config-connector/icons/components/discovery-engine-data-store/icons/color/discovery-engine-data-store-color.svg b/src/collections/integrations/k8s-config-connector/icons/components/discovery-engine-data-store/icons/color/discovery-engine-data-store-color.svg new file mode 100644 index 000000000000..3a66f9c1117e --- /dev/null +++ b/src/collections/integrations/k8s-config-connector/icons/components/discovery-engine-data-store/icons/color/discovery-engine-data-store-color.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/collections/integrations/k8s-config-connector/icons/components/discovery-engine-data-store/icons/white/discovery-engine-data-store-white.svg b/src/collections/integrations/k8s-config-connector/icons/components/discovery-engine-data-store/icons/white/discovery-engine-data-store-white.svg new file mode 100644 index 000000000000..941c48f8914b --- /dev/null +++ b/src/collections/integrations/k8s-config-connector/icons/components/discovery-engine-data-store/icons/white/discovery-engine-data-store-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/collections/integrations/k8s-config-connector/icons/components/kms-autokey-config/icons/color/kms-autokey-config-color.svg b/src/collections/integrations/k8s-config-connector/icons/components/kms-autokey-config/icons/color/kms-autokey-config-color.svg new file mode 100644 index 000000000000..3a66f9c1117e --- /dev/null +++ b/src/collections/integrations/k8s-config-connector/icons/components/kms-autokey-config/icons/color/kms-autokey-config-color.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/collections/integrations/k8s-config-connector/icons/components/kms-autokey-config/icons/white/kms-autokey-config-white.svg b/src/collections/integrations/k8s-config-connector/icons/components/kms-autokey-config/icons/white/kms-autokey-config-white.svg new file mode 100644 index 000000000000..941c48f8914b --- /dev/null +++ b/src/collections/integrations/k8s-config-connector/icons/components/kms-autokey-config/icons/white/kms-autokey-config-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/collections/integrations/k8s-config-connector/icons/components/kms-key-handle/icons/color/kms-key-handle-color.svg b/src/collections/integrations/k8s-config-connector/icons/components/kms-key-handle/icons/color/kms-key-handle-color.svg new file mode 100644 index 000000000000..3a66f9c1117e --- /dev/null +++ b/src/collections/integrations/k8s-config-connector/icons/components/kms-key-handle/icons/color/kms-key-handle-color.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/collections/integrations/k8s-config-connector/icons/components/kms-key-handle/icons/white/kms-key-handle-white.svg b/src/collections/integrations/k8s-config-connector/icons/components/kms-key-handle/icons/white/kms-key-handle-white.svg new file mode 100644 index 000000000000..941c48f8914b --- /dev/null +++ b/src/collections/integrations/k8s-config-connector/icons/components/kms-key-handle/icons/white/kms-key-handle-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/collections/integrations/k8s-config-connector/icons/components/secure-source-manager-repository/icons/color/secure-source-manager-repository-color.svg b/src/collections/integrations/k8s-config-connector/icons/components/secure-source-manager-repository/icons/color/secure-source-manager-repository-color.svg new file mode 100644 index 000000000000..3a66f9c1117e --- /dev/null +++ b/src/collections/integrations/k8s-config-connector/icons/components/secure-source-manager-repository/icons/color/secure-source-manager-repository-color.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/collections/integrations/k8s-config-connector/icons/components/secure-source-manager-repository/icons/white/secure-source-manager-repository-white.svg b/src/collections/integrations/k8s-config-connector/icons/components/secure-source-manager-repository/icons/white/secure-source-manager-repository-white.svg new file mode 100644 index 000000000000..941c48f8914b --- /dev/null +++ b/src/collections/integrations/k8s-config-connector/icons/components/secure-source-manager-repository/icons/white/secure-source-manager-repository-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/collections/integrations/k8s-config-connector/index.mdx b/src/collections/integrations/k8s-config-connector/index.mdx index 754b35fb3522..9256cedddc2c 100644 --- a/src/collections/integrations/k8s-config-connector/index.mdx +++ b/src/collections/integrations/k8s-config-connector/index.mdx @@ -2108,6 +2108,30 @@ components: [ "colorIcon": "icons/components/workstation-cluster/icons/color/workstation-cluster-color.svg", "whiteIcon": "icons/components/workstation-cluster/icons/white/workstation-cluster-white.svg", "description": "", +}, +{ +"name": "discovery-engine-data-store", +"colorIcon": "icons/components/discovery-engine-data-store/icons/color/discovery-engine-data-store-color.svg", +"whiteIcon": "icons/components/discovery-engine-data-store/icons/white/discovery-engine-data-store-white.svg", +"description": "", +}, +{ +"name": "kms-autokey-config", +"colorIcon": "icons/components/kms-autokey-config/icons/color/kms-autokey-config-color.svg", +"whiteIcon": "icons/components/kms-autokey-config/icons/white/kms-autokey-config-white.svg", +"description": "", +}, +{ +"name": "kms-key-handle", +"colorIcon": "icons/components/kms-key-handle/icons/color/kms-key-handle-color.svg", +"whiteIcon": "icons/components/kms-key-handle/icons/white/kms-key-handle-white.svg", +"description": "", +}, +{ +"name": "secure-source-manager-repository", +"colorIcon": "icons/components/secure-source-manager-repository/icons/color/secure-source-manager-repository-color.svg", +"whiteIcon": "icons/components/secure-source-manager-repository/icons/white/secure-source-manager-repository-white.svg", +"description": "", }] featureList: [ "Provides a wide range of cloud services", From 986529a82a22e26f7e412ff300bae5eab465b668 Mon Sep 17 00:00:00 2001 From: l5io Date: Fri, 13 Dec 2024 01:44:32 +0000 Subject: [PATCH 32/83] Updated feature data from spreadsheet Signed-off-by: l5io --- src/sections/Pricing/feature_data.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index c394237e2061..d599597f757c 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -1,14 +1,14 @@ [ { - "theme": "", + "theme": "This sheet is for purposes of classifying and itemizing the features and their subscription tiers for publishing on layer5.io/pricing and cloud.layer5.io.", "categoryOrder": "", "category": "", "functionOrder": "", "function": "", "feature": "", - "subscription_tier": "Subscription Tier\n(1st website section)", + "subscription_tier": "1st section of webpage", "comparison_tiers": { - "free": "Comparison Tiers\n(2nd website section)", + "free": "2nd section of webpage", "teamDesigner": "", "teamOperator": "", "enterprise": "" @@ -253,7 +253,7 @@ "teamOperator": "x", "enterprise": "x" }, - "docs": "https://docs.layer5.io/kanvas/operator/" + "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/" }, { "theme": "", From 0fff2d56ae79c9ae59df5bcd9169fd4d60a94e1a Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Fri, 13 Dec 2024 15:20:50 -0600 Subject: [PATCH 33/83] honor some html tags in pricing features Signed-off-by: Lee Calcote --- .../PlanCard/collapsible-details.js | 4 +- src/sections/Pricing/feature_data.json | 60 ++++++++++++------- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/src/components/PlanCard/collapsible-details.js b/src/components/PlanCard/collapsible-details.js index 9b9a96d5e93a..5deedb574edb 100644 --- a/src/components/PlanCard/collapsible-details.js +++ b/src/components/PlanCard/collapsible-details.js @@ -93,8 +93,8 @@ const FeatureDetails = ({ category, description, tier }) => { {tier === "Team-Beta" && }
-

- {description} +

diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index d599597f757c..9ccc2bd0c2c0 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -100,22 +100,6 @@ "categoryOrder": "0", "category": "Configuration Management", "functionOrder": "6", - "function": "Team Design Review", - "feature": "Multiple users to simultaneously edit a document, leave comments directly on specific text sections, and track changes made by others, enabling efficient collaboration and feedback loops during the review process.", - "subscription_tier": "TeamDesigner", - "comparison_tiers": { - "free": "", - "teamDesigner": "x", - "teamOperator": "", - "enterprise": "x" - }, - "docs": "https://docs.layer5.io/kanvas/designer/comments/" - }, - { - "theme": "", - "categoryOrder": "0", - "category": "Configuration Management", - "functionOrder": "7", "function": "Design Review Notifications", "feature": "In-line commenting. Threaded discussions. Notifications w/user mentions. Silence notifications. Resolve and reopen comments. Comment history.", "subscription_tier": "", @@ -131,7 +115,7 @@ "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "8", + "functionOrder": "7", "function": "Bulk Import IaC", "feature": "Bulk import of your existing infrastructure as code from GitHub repositories.", "subscription_tier": "", @@ -147,7 +131,7 @@ "theme": "", "categoryOrder": "0", "category": "Configuration Management", - "functionOrder": "9", + "functionOrder": "8", "function": "Validate Infrastructure Configuration", "feature": "Static validation of configured parameters for design completeness and accuracy.", "subscription_tier": "TeamDesigner", @@ -564,6 +548,22 @@ "categoryOrder": "4", "category": "Collaboration", "functionOrder": "401", + "function": "Team Design Review", + "feature": "Multiple users to simultaneously edit a document, leave comments directly on specific text sections, and track changes made by others, enabling efficient collaboration and feedback loops during the review process.", + "subscription_tier": "TeamDesigner", + "comparison_tiers": { + "free": "", + "teamDesigner": "x", + "teamOperator": "", + "enterprise": "x" + }, + "docs": "https://docs.layer5.io/kanvas/designer/comments/" + }, + { + "theme": "", + "categoryOrder": "4", + "category": "Collaboration", + "functionOrder": "402", "function": "Collaborative Infrastructure Design", "feature": "Create and collaborate in online designs in real-time.", "subscription_tier": "TeamDesigner", @@ -579,7 +579,7 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "402", + "functionOrder": "403", "function": "Public and Private Designs", "feature": "Invite any user to collaborate on your public or private designs.", "subscription_tier": "TeamDesigner", @@ -595,7 +595,7 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "403", + "functionOrder": "404", "function": "Collaborative Infrastructure Views", "feature": "Simultaneously manage your infrastructure using shared views in real-time. See the status of your deployments, monitor performance, and troubleshoot issues. Views provide tools for interacting with your cluster, such as terminal access and log streaming.", "subscription_tier": "TeamOperator", @@ -611,7 +611,7 @@ "theme": "", "categoryOrder": "4", "category": "Collaboration", - "functionOrder": "404", + "functionOrder": "405", "function": "Public and Private Views", "feature": "Invite any user to collaborate on your public or private views.", "subscription_tier": "TeamOperator", @@ -639,6 +639,22 @@ }, "docs": "" }, + { + "theme": "", + "categoryOrder": "", + "category": "", + "functionOrder": "", + "function": "", + "feature": "", + "subscription_tier": "", + "comparison_tiers": { + "free": "", + "teamDesigner": "", + "teamOperator": "", + "enterprise": "" + }, + "docs": "" + }, { "theme": "", "categoryOrder": "5", @@ -1157,7 +1173,7 @@ "category": "Support and Deployment", "functionOrder": "1003", "function": "Managed Service Provider", - "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. \n\nHierarchical user organizations and permissioning. Enforcement of tenancy.", + "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud.

Multi-tenancy: Hierarchical organizations, teams, users and customizable permissioning.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", From 32008bf1ae408f5ec1b98b426c257f96b941ce63 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Fri, 13 Dec 2024 16:29:54 -0600 Subject: [PATCH 34/83] Refactor feature details rendering and update feature data for improved clarity and organization Signed-off-by: Lee Calcote --- src/components/PlanCard/index.js | 9 ++++++--- src/components/PlanCard/planCard.style.js | 17 +++++++++++++++-- src/sections/Pricing/{ => archived}/data.js | 0 src/sections/Pricing/comparison.js | 9 +++------ src/sections/Pricing/generatePlans.js | 4 ++-- src/sections/Pricing/pricing.style.js | 2 +- 6 files changed, 27 insertions(+), 14 deletions(-) rename src/sections/Pricing/{ => archived}/data.js (100%) diff --git a/src/components/PlanCard/index.js b/src/components/PlanCard/index.js index d94867f483ce..b3b8cca35533 100644 --- a/src/components/PlanCard/index.js +++ b/src/components/PlanCard/index.js @@ -14,11 +14,14 @@ const PlanCard = ({ planData , isYearly }) => { {planData.map((x) => ( -
+ // +
{x.tier === "Personal" ?
Free Forever
: null} + {x.tier === "Team Designer" ?
Most Popular
: null} + {x.pricing_coming_soon && (
{x.pricing_coming_soon} @@ -66,10 +69,10 @@ const PlanCard = ({ planData , isYearly }) => {
- - - - - {x.features.map((f) => ( diff --git a/src/sections/Pricing/generatePlans.js b/src/sections/Pricing/generatePlans.js index 8251b005f8e5..a819f58e67fa 100644 --- a/src/sections/Pricing/generatePlans.js +++ b/src/sections/Pricing/generatePlans.js @@ -25,10 +25,10 @@ function generatePlans(data) { }, "TeamOperator": { tier: "Team Operator", - featured: true, + featured: false, monthlyprice: 8, yearlyprice: 68, - pricing_coming_soon: Coming Soon, + // pricing_coming_soon: Coming Soon, byline: "Advanced collaboration for imperative DevOps", byline2: "← Everything included in Free, plus...", button: ["Start Free Trial", "https://cloud.layer5.io"], diff --git a/src/sections/Pricing/pricing.style.js b/src/sections/Pricing/pricing.style.js index d0abf5e24a45..c4ed2a12b473 100644 --- a/src/sections/Pricing/pricing.style.js +++ b/src/sections/Pricing/pricing.style.js @@ -56,7 +56,7 @@ const PricingWrapper = styled.section` .toggle-container span { cursor: pointer; padding: .5rem 1rem; - color: solid ${props => props.theme.shadowLightColor}; + color: #fff; border-radius: .5rem; transition: background-color 0.3s, color 0.3s; } From 51c0889a19dbddbc6640d49aa16210dcc2d3ec42 Mon Sep 17 00:00:00 2001 From: l5io Date: Sat, 14 Dec 2024 01:40:20 +0000 Subject: [PATCH 35/83] Updated feature data from spreadsheet Signed-off-by: l5io --- src/sections/Pricing/feature_data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 9ccc2bd0c2c0..89598b8f374d 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -1173,7 +1173,7 @@ "category": "Support and Deployment", "functionOrder": "1003", "function": "Managed Service Provider", - "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud.

Multi-tenancy: Hierarchical organizations, teams, users and customizable permissioning.", + "feature": "White Label: Customize the appearance and branding of your engineering platform powered by Layer5 Cloud. \n

Multi-tenancy: Hierarchical organizations, teams, users and customizable permissioning.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", From b3b690821edab22003c43ade45599c404e51cd1a Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Sun, 15 Dec 2024 00:27:32 +0000 Subject: [PATCH 36/83] [Docs] Generated documentation for Integration Signed-off-by: l5io --- .../components/limit-range/icons/color/limit-range-color.svg | 2 +- .../components/limit-range/icons/white/limit-range-white.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/collections/integrations/kubernetes/icons/components/limit-range/icons/color/limit-range-color.svg b/src/collections/integrations/kubernetes/icons/components/limit-range/icons/color/limit-range-color.svg index fca385123ecb..56f4608a0b5c 100644 --- a/src/collections/integrations/kubernetes/icons/components/limit-range/icons/color/limit-range-color.svg +++ b/src/collections/integrations/kubernetes/icons/components/limit-range/icons/color/limit-range-color.svg @@ -1,3 +1,3 @@ - + diff --git a/src/collections/integrations/kubernetes/icons/components/limit-range/icons/white/limit-range-white.svg b/src/collections/integrations/kubernetes/icons/components/limit-range/icons/white/limit-range-white.svg index 8fcf9c9f8f58..670b24782e27 100644 --- a/src/collections/integrations/kubernetes/icons/components/limit-range/icons/white/limit-range-white.svg +++ b/src/collections/integrations/kubernetes/icons/components/limit-range/icons/white/limit-range-white.svg @@ -1,3 +1,3 @@ - + From 1f26b92061354b9dfc1b654d2f7b0b1579122ca9 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Sun, 15 Dec 2024 11:02:14 -0600 Subject: [PATCH 37/83] sistent logos Signed-off-by: Lee Calcote --- .../horizontal/sistent-horizontal-color.png | Bin 0 -> 72249 bytes .../horizontal/sistent-horizontal-color.svg | 41 +++++++++++++++++ .../sistent-horizontal-partial-color.png | Bin 0 -> 70555 bytes .../sistent-horizontal-partial-color.svg | 41 +++++++++++++++++ .../horizontal/sistent-horizontal-white.png | Bin 0 -> 64595 bytes .../horizontal/sistent-horizontal-white.svg | 43 ++++++++++++++++++ .../sistent/icon-only/sistent-icon-color.png | Bin 0 -> 32157 bytes .../sistent/icon-only/sistent-icon-color.svg | 20 ++++++++ .../sistent/icon-only/sistent-icon-white.png | Bin 0 -> 31252 bytes .../sistent/icon-only/sistent-icon-white.svg | 26 +++++++++++ .../sistent/stacked/sistent-stacked-color.png | Bin 0 -> 42224 bytes .../sistent/stacked/sistent-stacked-color.svg | 41 +++++++++++++++++ .../stacked/sistent-stacked-partial-color.png | Bin 0 -> 41840 bytes .../stacked/sistent-stacked-partial-color.svg | 41 +++++++++++++++++ .../sistent/stacked/sistent-stacked-white.png | Bin 0 -> 40310 bytes .../sistent/stacked/sistent-stacked-white.svg | 43 ++++++++++++++++++ .../sistent/text-only/sistent-text-color.png | Bin 0 -> 23976 bytes .../sistent/text-only/sistent-text-color.svg | 23 ++++++++++ .../sistent/text-only/sistent-text-white.png | Bin 0 -> 22568 bytes .../sistent/text-only/sistent-text-white.svg | 23 ++++++++++ 20 files changed, 342 insertions(+) create mode 100644 src/assets/images/sistent/horizontal/sistent-horizontal-color.png create mode 100644 src/assets/images/sistent/horizontal/sistent-horizontal-color.svg create mode 100644 src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.png create mode 100644 src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.svg create mode 100644 src/assets/images/sistent/horizontal/sistent-horizontal-white.png create mode 100644 src/assets/images/sistent/horizontal/sistent-horizontal-white.svg create mode 100644 src/assets/images/sistent/icon-only/sistent-icon-color.png create mode 100644 src/assets/images/sistent/icon-only/sistent-icon-color.svg create mode 100644 src/assets/images/sistent/icon-only/sistent-icon-white.png create mode 100644 src/assets/images/sistent/icon-only/sistent-icon-white.svg create mode 100644 src/assets/images/sistent/stacked/sistent-stacked-color.png create mode 100644 src/assets/images/sistent/stacked/sistent-stacked-color.svg create mode 100644 src/assets/images/sistent/stacked/sistent-stacked-partial-color.png create mode 100644 src/assets/images/sistent/stacked/sistent-stacked-partial-color.svg create mode 100644 src/assets/images/sistent/stacked/sistent-stacked-white.png create mode 100644 src/assets/images/sistent/stacked/sistent-stacked-white.svg create mode 100644 src/assets/images/sistent/text-only/sistent-text-color.png create mode 100644 src/assets/images/sistent/text-only/sistent-text-color.svg create mode 100644 src/assets/images/sistent/text-only/sistent-text-white.png create mode 100644 src/assets/images/sistent/text-only/sistent-text-white.svg diff --git a/src/assets/images/sistent/horizontal/sistent-horizontal-color.png b/src/assets/images/sistent/horizontal/sistent-horizontal-color.png new file mode 100644 index 0000000000000000000000000000000000000000..5446c74242a6d74f7ed3d0cf60d03720b56eaffe GIT binary patch literal 72249 zcmeFadpwls8$Uj!Qk&?sl}&UQ*;-MoQ%>#2c9;s4kaf;!bB-LxVcLq_CF+r+5!LRJ zLyjTmDMjOucEd1^Wl)VlWY9Q#ulpHP==*#9{{KF&*JpPV&wbz5;eEZY_jQ}kAIEeK zuK4D=ZwLg!3eusUPY?)e8VCe|H%phmS3=^k_3*D{u7`}=350c$=zj}HCy4z7!e#>L z=buh`$MiJUIBk4;llzLd$&b88UFR_v~o-Q((U@C_#faPXAl-%BuB*9rdq!PA4Fi`^VO^3zM<(y2`l8w2OBr1S zrc%1MVtglT!07!oiJ>by9t_XB0kl<@LmNL1lN3qMlXJzMna00pbst(e`<;YVjq~aR zZ-FVNCYcUw<&qRTGK~#I<`}Bo3At)pebB^Ky;FTTp7dnz!^l|)^Bk*C8^y{+<_lRY z1@lX3J<+}eY&Gu&*1-mp<(%FW5UE7Fr+P^(Hs5g6=Usj!S{~V-6vry`q#tjTY7DJ( zHl4>(9a3=qr*J6iZ`h`FGAj08H)@9@eCvLEqY-}J#|~Uqv;KzTpDMm^wy9|Ek@*)o zy)le_?F$=iO)5Bgr>J|L!;6U^o9>5*l4>NXq_xTk@QBp2jrWs-XTOu+Dz=DAX#e)X zoxrFaDPH{AS>N4@@7+ zdc7l|>uZ6Ub_BjtIAz5+Y>?PpXROok)j%y2M}FexG|@2o$jJJy+cXN9Uo&yV_*Mwi z;MY6Gih{vZHFa8Z&hM=Paniqr`65m3>Cp2(6Z)Nchbzj+hHB!rgtfLNl>r)512}h_9=d#f+ybXnG+{qP}kqeY#35`hX%-; z)wZv-uyVx@$@3&%Lh9v?Q$-616)30R@JYVQv-+?7y)mlAe=ht{^oS6tBnUq&B?5eE zDJ~A-Cq7U3#jHktN?I|#AJfLnLlSmNlt>wcSN6_>zO)?(s5H+&0S2H-@&0Boy=HA= z)5*DrdP5bxbU8ApBFQ;9clSnJQvTV-mU+Lx# z@n^zr*{|=^1O=*+z1E}*>@@22j;eAEJ!==exrk~ZjABm}z(>+Z3dNqE9|>Xqd^XKR zu@|rp)oE?4>D{iX3JCzJ@OiSobt^j5G5|`zd{ccFOM`$TsHD$RCn&i;BdEF!Pz6vj z2yZRZK#4N%2L6Y>73$<(`c9~mYr8s*K=qsNJFO5<38IPyK;;B+)fEnJFP|r@$`8Xk z5vH=?8-5Z5*1%0AYWi>i-*#K4}c2 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.png b/src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.png new file mode 100644 index 0000000000000000000000000000000000000000..28895c3b81468fe192b57c83837a768068ac3fc6 GIT binary patch literal 70555 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.svg b/src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.svg new file mode 100644 index 000000000000..3c1c6c35baae --- /dev/null +++ b/src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/horizontal/sistent-horizontal-white.png b/src/assets/images/sistent/horizontal/sistent-horizontal-white.png new file mode 100644 index 0000000000000000000000000000000000000000..86a3ac9cd3b019f6e07e5ceb62a19cbdf808597a GIT binary patch literal 64595 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/sistent/horizontal/sistent-horizontal-white.svg b/src/assets/images/sistent/horizontal/sistent-horizontal-white.svg new file mode 100644 index 000000000000..122f0e1838ed --- /dev/null +++ b/src/assets/images/sistent/horizontal/sistent-horizontal-white.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/icon-only/sistent-icon-color.png b/src/assets/images/sistent/icon-only/sistent-icon-color.png new file mode 100644 index 0000000000000000000000000000000000000000..0af8e24264b7376730cf1082a0b286e999814020 GIT binary patch literal 32157 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/sistent/icon-only/sistent-icon-color.svg b/src/assets/images/sistent/icon-only/sistent-icon-color.svg new file mode 100644 index 000000000000..1e72c03b8703 --- /dev/null +++ b/src/assets/images/sistent/icon-only/sistent-icon-color.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/icon-only/sistent-icon-white.png b/src/assets/images/sistent/icon-only/sistent-icon-white.png new file mode 100644 index 0000000000000000000000000000000000000000..1c58f44e9dfa5ccfacbb767904de870eea0bc930 GIT binary patch literal 31252 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 ps&Yu>$gUHQB>%sCR6Z+hbpFag|6g9YV + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/stacked/sistent-stacked-color.png b/src/assets/images/sistent/stacked/sistent-stacked-color.png new file mode 100644 index 0000000000000000000000000000000000000000..5614c28b04ff187aa320c339786cf9a2493c5acb GIT binary patch literal 42224 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/stacked/sistent-stacked-partial-color.png b/src/assets/images/sistent/stacked/sistent-stacked-partial-color.png new file mode 100644 index 0000000000000000000000000000000000000000..cf0e5907782ef9cf5e5ce7cf3b6b14d4198ad4d1 GIT binary patch literal 41840 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⪚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 K@?f*ong0hDWX?|j literal 0 HcmV?d00001 diff --git a/src/assets/images/sistent/stacked/sistent-stacked-partial-color.svg b/src/assets/images/sistent/stacked/sistent-stacked-partial-color.svg new file mode 100644 index 000000000000..9be9b1f2db95 --- /dev/null +++ b/src/assets/images/sistent/stacked/sistent-stacked-partial-color.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/stacked/sistent-stacked-white.png b/src/assets/images/sistent/stacked/sistent-stacked-white.png new file mode 100644 index 0000000000000000000000000000000000000000..99af0863a6856336fd153aaf447980f895f6a41b GIT binary patch literal 40310 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 F{{d!#4^{vG literal 0 HcmV?d00001 diff --git a/src/assets/images/sistent/stacked/sistent-stacked-white.svg b/src/assets/images/sistent/stacked/sistent-stacked-white.svg new file mode 100644 index 000000000000..d13a1f2840b0 --- /dev/null +++ b/src/assets/images/sistent/stacked/sistent-stacked-white.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/text-only/sistent-text-color.png b/src/assets/images/sistent/text-only/sistent-text-color.png new file mode 100644 index 0000000000000000000000000000000000000000..4cb815785fa20a8c5e5ae18f003a66382e0b1528 GIT binary patch literal 23976 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 DL;tU~ literal 0 HcmV?d00001 diff --git a/src/assets/images/sistent/text-only/sistent-text-color.svg b/src/assets/images/sistent/text-only/sistent-text-color.svg new file mode 100644 index 000000000000..ebc04fdc1f48 --- /dev/null +++ b/src/assets/images/sistent/text-only/sistent-text-color.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/sistent/text-only/sistent-text-white.png b/src/assets/images/sistent/text-only/sistent-text-white.png new file mode 100644 index 0000000000000000000000000000000000000000..2ed56ca87fab2ff81c2260874581d8243f32b2e4 GIT binary patch literal 22568 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 + + + + + + + + + + + + + + + + + + \ No newline at end of file From a091547e37ca386824885802883012b5f3b1d113 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Sun, 15 Dec 2024 11:03:29 -0600 Subject: [PATCH 38/83] Refactor feature details rendering for improved clarity and organization Signed-off-by: Lee Calcote --- static/brand/sistent-brand-kit.zip | Bin 0 -> 361203 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/brand/sistent-brand-kit.zip diff --git a/static/brand/sistent-brand-kit.zip b/static/brand/sistent-brand-kit.zip new file mode 100644 index 0000000000000000000000000000000000000000..7fd46639e7bc7f9c71fc9318dab527abead6e622 GIT binary patch literal 361203 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%0DVce3(PVqER0^1(c&iQQ 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Ⓢdr) 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 _3SvBWi3GT^*Qda%jfdBkG{4)@WnxZ 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 TP&kwZ{}qBAEm^I=Eg Date: Sun, 15 Dec 2024 11:20:33 -0600 Subject: [PATCH 39/83] Replace header text with Sistent logo and enhance styling for better layout Signed-off-by: Lee Calcote --- src/sections/Projects/Sistent/index.js | 3 ++- src/sections/Projects/Sistent/sistent.style.js | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/sections/Projects/Sistent/index.js b/src/sections/Projects/Sistent/index.js index 9c9684df1960..d2c3b5030f66 100644 --- a/src/sections/Projects/Sistent/index.js +++ b/src/sections/Projects/Sistent/index.js @@ -1,12 +1,13 @@ import React from "react"; import SistentWrapper from "./sistent.style"; import HandbookCard from "../../../components/HandbookCard"; +import SistentLogo from "../../../assets/images/sistent/horizontal/sistent-horizontal-white.svg"; const SistentHome = () => { return (

Design system for Layer5 projects

diff --git a/src/sections/Projects/Sistent/sistent.style.js b/src/sections/Projects/Sistent/sistent.style.js index 57ef8e728ca4..4f69e1fabe2f 100644 --- a/src/sections/Projects/Sistent/sistent.style.js +++ b/src/sections/Projects/Sistent/sistent.style.js @@ -101,6 +101,8 @@ const SistentWrapper = styled.div` .page-header-section { height: 10rem; text-align: center; + display: flex; + justify-content: center; background: rgb(71, 126, 150); background: linear-gradient( 250deg, @@ -108,10 +110,15 @@ const SistentWrapper = styled.div` rgba(0, 179, 159, 1) 35%, rgba(60, 73, 79, 1) 100% ); + padding: 0 1.5rem; h1 { line-height: 10rem; color: white; } + img { + max-width: 500px; + width: 100%; + } } .community-home-subtitle { From 87fe4ddfa94ed8dfa678cf5cb3151342b053f4ba Mon Sep 17 00:00:00 2001 From: l5io Date: Tue, 17 Dec 2024 00:52:37 +0000 Subject: [PATCH 40/83] Updated feature data from spreadsheet Signed-off-by: l5io --- src/sections/Pricing/feature_data.json | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 89598b8f374d..be2cc59fa0d6 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -949,11 +949,11 @@ "category": "Catalog", "functionOrder": "708", "function": "Approve Catalog Request", - "feature": "Change management through a process of curation of content to be published in the catalog.", + "feature": "Change management for the curation of content published in the catalog.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", - "teamDesigner": "x", + "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, @@ -1119,22 +1119,6 @@ }, "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" }, - { - "theme": "", - "categoryOrder": "9", - "category": "Managed Service Provider", - "functionOrder": "905", - "function": "Multi-tenancy", - "feature": "Hierarchical permissioning. Enforcement of tenancy.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - }, - "docs": "" - }, { "theme": "", "categoryOrder": "10", @@ -1163,7 +1147,7 @@ "free": "", "teamDesigner": "x", "teamOperator": "x", - "enterprise": "" + "enterprise": "x" }, "docs": "" }, From b6ed840e021939d6a7b84f97ba7f437739228eca Mon Sep 17 00:00:00 2001 From: l5io Date: Tue, 17 Dec 2024 01:43:05 +0000 Subject: [PATCH 41/83] Updated feature data from spreadsheet Signed-off-by: l5io --- src/sections/Pricing/feature_data.json | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index 89598b8f374d..be2cc59fa0d6 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -949,11 +949,11 @@ "category": "Catalog", "functionOrder": "708", "function": "Approve Catalog Request", - "feature": "Change management through a process of curation of content to be published in the catalog.", + "feature": "Change management for the curation of content published in the catalog.", "subscription_tier": "Enterprise", "comparison_tiers": { "free": "", - "teamDesigner": "x", + "teamDesigner": "", "teamOperator": "", "enterprise": "x" }, @@ -1119,22 +1119,6 @@ }, "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile" }, - { - "theme": "", - "categoryOrder": "9", - "category": "Managed Service Provider", - "functionOrder": "905", - "function": "Multi-tenancy", - "feature": "Hierarchical permissioning. Enforcement of tenancy.", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - }, - "docs": "" - }, { "theme": "", "categoryOrder": "10", @@ -1163,7 +1147,7 @@ "free": "", "teamDesigner": "x", "teamOperator": "x", - "enterprise": "" + "enterprise": "x" }, "docs": "" }, From 46810274defa9440ba129e3ad1d436b8e390a560 Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Wed, 18 Dec 2024 00:24:45 +0000 Subject: [PATCH 42/83] [Docs] Generated documentation for Integration Signed-off-by: l5io --- .../icons/color/resource-outline-filter-color.svg | 1 + .../icons/white/resource-outline-filter-white.svg | 1 + src/collections/integrations/kube-ui-server/index.mdx | 6 ++++++ 3 files changed, 8 insertions(+) create mode 100644 src/collections/integrations/kube-ui-server/icons/components/resource-outline-filter/icons/color/resource-outline-filter-color.svg create mode 100644 src/collections/integrations/kube-ui-server/icons/components/resource-outline-filter/icons/white/resource-outline-filter-white.svg diff --git a/src/collections/integrations/kube-ui-server/icons/components/resource-outline-filter/icons/color/resource-outline-filter-color.svg b/src/collections/integrations/kube-ui-server/icons/components/resource-outline-filter/icons/color/resource-outline-filter-color.svg new file mode 100644 index 000000000000..b96151ed1c2c --- /dev/null +++ b/src/collections/integrations/kube-ui-server/icons/components/resource-outline-filter/icons/color/resource-outline-filter-color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/collections/integrations/kube-ui-server/icons/components/resource-outline-filter/icons/white/resource-outline-filter-white.svg b/src/collections/integrations/kube-ui-server/icons/components/resource-outline-filter/icons/white/resource-outline-filter-white.svg new file mode 100644 index 000000000000..c506b44faa1a --- /dev/null +++ b/src/collections/integrations/kube-ui-server/icons/components/resource-outline-filter/icons/white/resource-outline-filter-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/collections/integrations/kube-ui-server/index.mdx b/src/collections/integrations/kube-ui-server/index.mdx index 6ac76f97e6a5..4fd512f5d9ae 100644 --- a/src/collections/integrations/kube-ui-server/index.mdx +++ b/src/collections/integrations/kube-ui-server/index.mdx @@ -80,6 +80,12 @@ components: [ "colorIcon": "icons/components/cluster-profile/icons/color/cluster-profile-color.svg", "whiteIcon": "icons/components/cluster-profile/icons/white/cluster-profile-white.svg", "description": "", +}, +{ +"name": "resource-outline-filter", +"colorIcon": "icons/components/resource-outline-filter/icons/color/resource-outline-filter-color.svg", +"whiteIcon": "icons/components/resource-outline-filter/icons/white/resource-outline-filter-white.svg", +"description": "", }] featureList: [ "WhoAmI service returns the user info of the user making the api call.", From 504e2c7e4245ee156252d0c4de8e0afbd11cd760 Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Wed, 18 Dec 2024 16:21:17 +0530 Subject: [PATCH 43/83] chore: transition member profile Signed-off-by: Vivek Vishal --- src/collections/members/shlok-mishra/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/collections/members/shlok-mishra/index.mdx b/src/collections/members/shlok-mishra/index.mdx index 5597e7fc3958..bdf6c04f67e6 100644 --- a/src/collections/members/shlok-mishra/index.mdx +++ b/src/collections/members/shlok-mishra/index.mdx @@ -12,6 +12,6 @@ My journey in the realm of technology has been an exciting exploration of creati Proficient in Java, Python, C#, Docker, Kubernetes, Unity, Unreal, Blender, and Flask. Skilled in Linux, macOS, and Windows OS. Ready to excel in tech roles." badges: - meshery -status: Active +status: Inative published: true ---- \ No newline at end of file +--- From d8e98404abf9a42e54706f768eddc513ea66cdb5 Mon Sep 17 00:00:00 2001 From: aakankshabhende Date: Wed, 18 Dec 2024 18:05:40 +0530 Subject: [PATCH 44/83] Removed posthog dependency from the site Signed-off-by: aakankshabhende --- gatsby-browser.js | 15 - package-lock.json | 341 ++---------------- package.json | 1 - .../posthog/icons/color/posthog-color.svg | 18 - ...lick-house-installation-template-color.svg | 18 - ...lick-house-installation-template-white.svg | 31 -- .../color/click-house-installation-color.svg | 18 - .../white/click-house-installation-white.svg | 31 -- ...ick-house-operator-configuration-color.svg | 18 - ...ick-house-operator-configuration-white.svg | 31 -- .../posthog/icons/white/posthog-white.svg | 31 -- .../integrations/posthog/index.mdx | 51 --- src/sections/General/Navigation/index.js | 10 +- 13 files changed, 31 insertions(+), 583 deletions(-) delete mode 100644 src/collections/integrations/posthog/icons/color/posthog-color.svg delete mode 100644 src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg delete mode 100644 src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg delete mode 100644 src/collections/integrations/posthog/icons/components/click-house-installation/icons/color/click-house-installation-color.svg delete mode 100644 src/collections/integrations/posthog/icons/components/click-house-installation/icons/white/click-house-installation-white.svg delete mode 100644 src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg delete mode 100644 src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg delete mode 100644 src/collections/integrations/posthog/icons/white/posthog-white.svg delete mode 100644 src/collections/integrations/posthog/index.mdx diff --git a/gatsby-browser.js b/gatsby-browser.js index b8de40d7000f..d0ebcb45e806 100644 --- a/gatsby-browser.js +++ b/gatsby-browser.js @@ -1,5 +1,4 @@ import "./fonts.css"; -import posthog from "posthog-js"; document.addEventListener("DOMContentLoaded", () => { /** init gtm after 3500 seconds - this could be adjusted */ @@ -29,19 +28,5 @@ function initGTM() { document.head.appendChild(script); } -export const onClientEntry = () => { - if (process.env.NODE_ENV === "production") { - posthog.init("phc_Yynjz2lAiQDJFqTWeGT0FJrt50hl53WBx8do3eKImgX", - { - api_host: "https://us.i.posthog.com", - person_profiles: "always", - autocapture: { - url_ignorelist: ["community/newcomers", "/calendar", "/newcomers"] - } - } - ); - } -}; - export { wrapRootElement } from "./root-wrapper"; export { wrapPageElement } from "./page-wrapper"; diff --git a/package-lock.json b/package-lock.json index a5893119f34f..a31a9447b667 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,6 @@ "lodash": "^4.17.21", "mui-datatables": "^4.3.0", "path-browserify": "^1.0.1", - "posthog-js": "^1.161.6", "prism-react-renderer": "^2.0.6", "process": "^0.11.10", "prop-types": "^15.7.2", @@ -2345,6 +2344,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2367,6 +2367,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2382,6 +2383,7 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -2395,12 +2397,14 @@ "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/@eslint/js": { "version": "8.57.1", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -2989,6 +2993,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", + "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", @@ -3002,6 +3007,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, "engines": { "node": ">=12.22" }, @@ -3014,7 +3020,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead" + "deprecated": "Use @eslint/object-schema instead", + "dev": true }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.33.5", @@ -6174,136 +6181,6 @@ "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "peer": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "peer": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "peer": true, - "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", @@ -6406,58 +6283,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "peer": true, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/utils": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", @@ -6575,27 +6400,11 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, "node_modules/@vercel/webpack-asset-relocator-loader": { "version": "1.7.3", @@ -6785,25 +6594,6 @@ "resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==" }, - "node_modules/@xstate/react": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@xstate/react/-/react-4.1.3.tgz", - "integrity": "sha512-zhE+ZfrcCR87bu71Rkh5Z5ruZBivR/7uD/dkelzJqjQdI45IZc9DqTI8lL4Cg5+VN2p5k86KxDsusqW1kW11Tg==", - "peer": true, - "dependencies": { - "use-isomorphic-layout-effect": "^1.1.2", - "use-sync-external-store": "^1.2.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "xstate": "^5.18.2" - }, - "peerDependenciesMeta": { - "xstate": { - "optional": true - } - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -7451,36 +7241,6 @@ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-eslint/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/babel-jsx-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/babel-jsx-utils/-/babel-jsx-utils-1.1.0.tgz", @@ -11515,6 +11275,7 @@ "version": "8.57.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -11960,6 +11721,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -11975,6 +11737,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11989,6 +11752,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12004,6 +11768,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -12014,12 +11779,14 @@ "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -12035,6 +11802,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -12046,6 +11814,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -12057,6 +11826,7 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -12071,6 +11841,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -12078,12 +11849,14 @@ "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12109,6 +11882,7 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -12125,6 +11899,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -12699,11 +12474,6 @@ "pend": "~1.2.0" } }, - "node_modules/fflate": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", - "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -17473,6 +17243,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -17878,12 +17649,6 @@ "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "peer": true - }, "node_modules/js-cookie": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", @@ -21267,25 +21032,6 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, - "node_modules/posthog-js": { - "version": "1.165.0", - "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.165.0.tgz", - "integrity": "sha512-rUfRJobvOz3Q9Er+zwb32Eq2qs+ToBe/B4k4IoKzmyszI7240Rf4xVWRB0ky8LvmdZfCeYX5knS2Uv3pnn/d5A==", - "dependencies": { - "fflate": "^0.4.8", - "preact": "^10.19.3", - "web-vitals": "^4.0.1" - } - }, - "node_modules/posthog-js/node_modules/preact": { - "version": "10.24.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.1.tgz", - "integrity": "sha512-PnBAwFI3Yjxxcxw75n6VId/5TFxNW/81zexzWD9jn1+eSrOP84NdsS38H5IkF/UH3frqRPT+MvuCoVHjTDTnDw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, "node_modules/preact": { "version": "10.12.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", @@ -26114,19 +25860,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/ua-parser-js": { "version": "1.0.39", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", @@ -26716,15 +26449,6 @@ } } }, - "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "peer": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -26865,11 +26589,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/web-vitals": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.3.tgz", - "integrity": "sha512-/CFAm1mNxSmOj6i0Co+iGFJ58OS4NRGVP+AWS/l509uIK5a1bSoIVaHz/ZumpHTfHSZBpgrJ+wjfpAOrTHok5Q==" - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index 5470093167ac..4441d0a99256 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,6 @@ "lodash": "^4.17.21", "mui-datatables": "^4.3.0", "path-browserify": "^1.0.1", - "posthog-js": "^1.161.6", "prism-react-renderer": "^2.0.6", "process": "^0.11.10", "prop-types": "^15.7.2", diff --git a/src/collections/integrations/posthog/icons/color/posthog-color.svg b/src/collections/integrations/posthog/icons/color/posthog-color.svg deleted file mode 100644 index 00d11bde3adc..000000000000 --- a/src/collections/integrations/posthog/icons/color/posthog-color.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg b/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg deleted file mode 100644 index 00d11bde3adc..000000000000 --- a/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg b/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg deleted file mode 100644 index 5c94c587a317..000000000000 --- a/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-installation/icons/color/click-house-installation-color.svg b/src/collections/integrations/posthog/icons/components/click-house-installation/icons/color/click-house-installation-color.svg deleted file mode 100644 index 00d11bde3adc..000000000000 --- a/src/collections/integrations/posthog/icons/components/click-house-installation/icons/color/click-house-installation-color.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-installation/icons/white/click-house-installation-white.svg b/src/collections/integrations/posthog/icons/components/click-house-installation/icons/white/click-house-installation-white.svg deleted file mode 100644 index 5c94c587a317..000000000000 --- a/src/collections/integrations/posthog/icons/components/click-house-installation/icons/white/click-house-installation-white.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg b/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg deleted file mode 100644 index 00d11bde3adc..000000000000 --- a/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg b/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg deleted file mode 100644 index 5c94c587a317..000000000000 --- a/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/white/posthog-white.svg b/src/collections/integrations/posthog/icons/white/posthog-white.svg deleted file mode 100644 index 5c94c587a317..000000000000 --- a/src/collections/integrations/posthog/icons/white/posthog-white.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/collections/integrations/posthog/index.mdx b/src/collections/integrations/posthog/index.mdx deleted file mode 100644 index c3852a994485..000000000000 --- a/src/collections/integrations/posthog/index.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Posthog -subtitle: Collaborative and visual infrastructure as design for Posthog -integrationIcon: icons/color/posthog-color.svg -darkModeIntegrationIcon: icons/white/posthog-white.svg -docURL: https://docs.meshery.io/extensibility/integrations/posthog -description: -category: App Definition and Development -subcategory: Database -registrant: Artifact Hub -components: [ -{ -"name": "click-house-installation", -"colorIcon": "icons/components/click-house-installation/icons/color/click-house-installation-color.svg", -"whiteIcon": "icons/components/click-house-installation/icons/white/click-house-installation-white.svg", -"description": "", -}, -{ -"name": "click-house-installation-template", -"colorIcon": "icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg", -"whiteIcon": "icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg", -"description": "", -}, -{ -"name": "click-house-operator-configuration", -"colorIcon": "icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg", -"whiteIcon": "icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg", -"description": "", -}] -featureList: [ - "Event tracking and analysis", - "User behavior insights", - "Experimentation and A/B testing" -] -workingSlides: [ - ../_images/kanvas-visualizer.png, - ../_images/kanvas-designer.png -] -howItWorks: "Integrates PostHog analytics" -howItWorksDetails: "Data-driven insights for improving Kubernetes applications and services" -published: TRUE ---- -

-PostHog is an open-source product analytics platform. -

-

- Collaboratively and visually diagram your cloud native infrastructure with GitOps-style pipeline integration. Design, test, and manage configuration your Kubernetes-based, containerized applications as a visual topology. -

-

- Looking for best practice cloud native design and deployment best practices? Choose from thousands of pre-built components in MeshMap. Choose from hundreds of ready-made design patterns by importing templates from Meshery Catalog or use our low code designer, MeshMap, to create and deploy your own cloud native infrastructure designs. -

diff --git a/src/sections/General/Navigation/index.js b/src/sections/General/Navigation/index.js index dc5b61b7e009..3962b78a94b3 100644 --- a/src/sections/General/Navigation/index.js +++ b/src/sections/General/Navigation/index.js @@ -21,7 +21,7 @@ import CloudIcon from "./utility/CloudIcon.js"; import LogoutIcon from "./utility/LogoutIcon.js"; // import LogoutIcon from "./utility/LogoutIcon.js"; import KanvasIcon from "./utility/KanvasIcon.js"; -import posthog from "posthog-js"; + const Navigation = () => { let data = useStaticQuery( graphql`{ @@ -198,14 +198,6 @@ const Navigation = () => { } const data = response.data; - if (data){ - posthog.identify( - data?.id, - { - email: data?.email - } - ); - } setUserData(data); } catch (error) { console.error("There was a problem with your fetch operation:", error); From 223547c3139ec9cb49de950ccb5f7a9518708fa6 Mon Sep 17 00:00:00 2001 From: Ajay Singh <37625112+Ajay-singh1@users.noreply.github.com> Date: Wed, 18 Dec 2024 22:10:41 +0530 Subject: [PATCH 45/83] Fix typo in member profile Signed-off-by: Ajay Singh <37625112+Ajay-singh1@users.noreply.github.com> --- src/collections/members/shlok-mishra/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/collections/members/shlok-mishra/index.mdx b/src/collections/members/shlok-mishra/index.mdx index bdf6c04f67e6..70df72fb73a9 100644 --- a/src/collections/members/shlok-mishra/index.mdx +++ b/src/collections/members/shlok-mishra/index.mdx @@ -12,6 +12,6 @@ My journey in the realm of technology has been an exciting exploration of creati Proficient in Java, Python, C#, Docker, Kubernetes, Unity, Unreal, Blender, and Flask. Skilled in Linux, macOS, and Windows OS. Ready to excel in tech roles." badges: - meshery -status: Inative +status: Inactive published: true --- From 8cfa914e2beba35de0d8f7ad681b8a16059f0eee Mon Sep 17 00:00:00 2001 From: l5io Date: Thu, 19 Dec 2024 00:50:51 +0000 Subject: [PATCH 46/83] Updated feature data from spreadsheet Signed-off-by: l5io --- src/sections/Pricing/feature_data.json | 32 -------------------------- 1 file changed, 32 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index be2cc59fa0d6..a6710a672626 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -959,38 +959,6 @@ }, "docs": "https://docs.layer5.io/cloud/catalog/" }, - { - "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "709", - "function": "Single and multiple approvers", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - }, - "docs": "https://docs.layer5.io/cloud/catalog/" - }, - { - "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "710", - "function": "Import Filter", - "feature": "Import a publish WASM filter", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - }, - "docs": "https://docs.meshery.io/guides/configuration-management/filter-management" - }, { "theme": "", "categoryOrder": "", From b086fa7061e4d9a79d4465b9dad3ed46c8ff2e22 Mon Sep 17 00:00:00 2001 From: l5io Date: Thu, 19 Dec 2024 01:40:50 +0000 Subject: [PATCH 47/83] Updated feature data from spreadsheet Signed-off-by: l5io --- src/sections/Pricing/feature_data.json | 32 -------------------------- 1 file changed, 32 deletions(-) diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json index be2cc59fa0d6..a6710a672626 100644 --- a/src/sections/Pricing/feature_data.json +++ b/src/sections/Pricing/feature_data.json @@ -959,38 +959,6 @@ }, "docs": "https://docs.layer5.io/cloud/catalog/" }, - { - "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "709", - "function": "Single and multiple approvers", - "feature": "", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - }, - "docs": "https://docs.layer5.io/cloud/catalog/" - }, - { - "theme": "", - "categoryOrder": "7", - "category": "Catalog", - "functionOrder": "710", - "function": "Import Filter", - "feature": "Import a publish WASM filter", - "subscription_tier": "", - "comparison_tiers": { - "free": "", - "teamDesigner": "", - "teamOperator": "", - "enterprise": "" - }, - "docs": "https://docs.meshery.io/guides/configuration-management/filter-management" - }, { "theme": "", "categoryOrder": "", From b1574b8d05de351dd22f9b6b17606700c5c44e78 Mon Sep 17 00:00:00 2001 From: aakankshabhende Date: Thu, 19 Dec 2024 11:51:12 +0530 Subject: [PATCH 48/83] Restored posthog integration folder Signed-off-by: aakankshabhende --- .../posthog/icons/color/posthog-color.svg | 18 +++++++ ...lick-house-installation-template-color.svg | 18 +++++++ ...lick-house-installation-template-white.svg | 31 +++++++++++ .../color/click-house-installation-color.svg | 18 +++++++ .../white/click-house-installation-white.svg | 31 +++++++++++ ...ick-house-operator-configuration-color.svg | 18 +++++++ ...ick-house-operator-configuration-white.svg | 31 +++++++++++ .../posthog/icons/white/posthog-white.svg | 31 +++++++++++ .../integrations/posthog/index.mdx | 51 +++++++++++++++++++ 9 files changed, 247 insertions(+) create mode 100644 src/collections/integrations/posthog/icons/color/posthog-color.svg create mode 100644 src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg create mode 100644 src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg create mode 100644 src/collections/integrations/posthog/icons/components/click-house-installation/icons/color/click-house-installation-color.svg create mode 100644 src/collections/integrations/posthog/icons/components/click-house-installation/icons/white/click-house-installation-white.svg create mode 100644 src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg create mode 100644 src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg create mode 100644 src/collections/integrations/posthog/icons/white/posthog-white.svg create mode 100644 src/collections/integrations/posthog/index.mdx diff --git a/src/collections/integrations/posthog/icons/color/posthog-color.svg b/src/collections/integrations/posthog/icons/color/posthog-color.svg new file mode 100644 index 000000000000..00d11bde3adc --- /dev/null +++ b/src/collections/integrations/posthog/icons/color/posthog-color.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg b/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg new file mode 100644 index 000000000000..00d11bde3adc --- /dev/null +++ b/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg b/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg new file mode 100644 index 000000000000..5c94c587a317 --- /dev/null +++ b/src/collections/integrations/posthog/icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-installation/icons/color/click-house-installation-color.svg b/src/collections/integrations/posthog/icons/components/click-house-installation/icons/color/click-house-installation-color.svg new file mode 100644 index 000000000000..00d11bde3adc --- /dev/null +++ b/src/collections/integrations/posthog/icons/components/click-house-installation/icons/color/click-house-installation-color.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-installation/icons/white/click-house-installation-white.svg b/src/collections/integrations/posthog/icons/components/click-house-installation/icons/white/click-house-installation-white.svg new file mode 100644 index 000000000000..5c94c587a317 --- /dev/null +++ b/src/collections/integrations/posthog/icons/components/click-house-installation/icons/white/click-house-installation-white.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg b/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg new file mode 100644 index 000000000000..00d11bde3adc --- /dev/null +++ b/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg b/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg new file mode 100644 index 000000000000..5c94c587a317 --- /dev/null +++ b/src/collections/integrations/posthog/icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/posthog/icons/white/posthog-white.svg b/src/collections/integrations/posthog/icons/white/posthog-white.svg new file mode 100644 index 000000000000..5c94c587a317 --- /dev/null +++ b/src/collections/integrations/posthog/icons/white/posthog-white.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/integrations/posthog/index.mdx b/src/collections/integrations/posthog/index.mdx new file mode 100644 index 000000000000..c3852a994485 --- /dev/null +++ b/src/collections/integrations/posthog/index.mdx @@ -0,0 +1,51 @@ +--- +title: Posthog +subtitle: Collaborative and visual infrastructure as design for Posthog +integrationIcon: icons/color/posthog-color.svg +darkModeIntegrationIcon: icons/white/posthog-white.svg +docURL: https://docs.meshery.io/extensibility/integrations/posthog +description: +category: App Definition and Development +subcategory: Database +registrant: Artifact Hub +components: [ +{ +"name": "click-house-installation", +"colorIcon": "icons/components/click-house-installation/icons/color/click-house-installation-color.svg", +"whiteIcon": "icons/components/click-house-installation/icons/white/click-house-installation-white.svg", +"description": "", +}, +{ +"name": "click-house-installation-template", +"colorIcon": "icons/components/click-house-installation-template/icons/color/click-house-installation-template-color.svg", +"whiteIcon": "icons/components/click-house-installation-template/icons/white/click-house-installation-template-white.svg", +"description": "", +}, +{ +"name": "click-house-operator-configuration", +"colorIcon": "icons/components/click-house-operator-configuration/icons/color/click-house-operator-configuration-color.svg", +"whiteIcon": "icons/components/click-house-operator-configuration/icons/white/click-house-operator-configuration-white.svg", +"description": "", +}] +featureList: [ + "Event tracking and analysis", + "User behavior insights", + "Experimentation and A/B testing" +] +workingSlides: [ + ../_images/kanvas-visualizer.png, + ../_images/kanvas-designer.png +] +howItWorks: "Integrates PostHog analytics" +howItWorksDetails: "Data-driven insights for improving Kubernetes applications and services" +published: TRUE +--- +

+PostHog is an open-source product analytics platform. +

+

+ Collaboratively and visually diagram your cloud native infrastructure with GitOps-style pipeline integration. Design, test, and manage configuration your Kubernetes-based, containerized applications as a visual topology. +

+

+ Looking for best practice cloud native design and deployment best practices? Choose from thousands of pre-built components in MeshMap. Choose from hundreds of ready-made design patterns by importing templates from Meshery Catalog or use our low code designer, MeshMap, to create and deploy your own cloud native infrastructure designs. +

From 2f388b5e6428079b69ab7faf5558ec44743b493f Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Fri, 20 Dec 2024 15:17:55 -0600 Subject: [PATCH 49/83] Migrate to generic language and away from service mesh specific language Signed-off-by: Lee Calcote --- .../index.mdx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/collections/blog/2021/2021-02-07-meshkit-and-meshery-adapter-library/index.mdx b/src/collections/blog/2021/2021-02-07-meshkit-and-meshery-adapter-library/index.mdx index 0e4792e186ba..f5810c35b758 100644 --- a/src/collections/blog/2021/2021-02-07-meshkit-and-meshery-adapter-library/index.mdx +++ b/src/collections/blog/2021/2021-02-07-meshkit-and-meshery-adapter-library/index.mdx @@ -1,6 +1,6 @@ --- title: "Introducing Meshkit and the Meshery Adapter Library" -subtitle: "Making the DX of service mesh management easy." +subtitle: "Making the DX of cloud native infrastructure management easy." date: 2021-02-07 12:12:12 +0002 author: Michael Gfeller thumbnail: ./meshery-adapter-library-overview.webp @@ -28,18 +28,18 @@ import malOverview from "./meshery-adapter-library-overview.webp";

The Meshery v0.5.0 release includes two new libraries: MeshKit and Meshery Adapter Library. -These two libraries improve contributor experience and development speed by reducing the burden of sustaining the plethora of Meshery adapters, allowing contributors to focus on exposing a service mesh's differentiated value, -instead of having to redundantly implement plumbing for managing service meshes. +These two libraries improve contributor experience and development speed by reducing the burden of sustaining the plethora of Meshery adapters, allowing contributors to focus on exposing any given infrastructure component's differentiated value, +instead of having to redundantly implement plumbing for managing cloud native infrastructure.

## MeshKit -MeshKit was formerly named `gokit` and was renamed recently to align with the other Meshery components' names (and avoid confusion with the `go-kit` project). MeshKit can be considered a derivative of `go-kit` with specific focus on service mesh management. +MeshKit was formerly named `gokit` and was renamed recently to align with the other Meshery components' names (and avoid confusion with the `go-kit` project). MeshKit can be considered a derivative of `go-kit` with specific focus on cloud native management. In the Meshery v0.5.0 release, MeshKit has been enhanced and expanded substantially. Considering that the MeshKit library provides broadly useful functionality, it is used in a growing number of Meshery components. It is intended to be one of the top level libraries in the Meshery ecosystem.
Meshkit provides functionality useful across all Meshery components.
-MeshKit is a toolkit for Layer5’s microservices, and is positioned to become Layer5’s middleware component for Layer5’s microservices, leveraging other libraries like `go-kit/kit`. In complement to functionality provided by a service mesh, its purpose is to provide implementations for common cross-cutting concerns like error handling, logging, and tracing. Uniform error handling and logging across all Meshery components helps to implement efficient tooling for observability, monitoring and troubleshooting. The library provides some common data models for Meshery, notably for Service Mesh Interface conformance testing, and Kubernetes' `kubeconfig`. +MeshKit is a toolkit for Layer5’s microservices, and is positioned to become Layer5’s middleware component for Layer5’s microservices, leveraging other libraries like `go-kit/kit`. In complement to functionality provided by any given cloud native infrastructure component, its purpose is to provide implementations for common cross-cutting concerns like error handling, logging, and tracing. Uniform error handling and logging across all Meshery components helps to implement efficient tooling for observability, monitoring and troubleshooting. The library provides some common data models for Meshery and Meshery's
ecosystem of extensions. Another central component in Meshkit is the `utils` package. @@ -130,7 +130,7 @@ spec: ## Meshery Adapters -Meshery adapters are management plane components and manage the lifecycle of service meshes. This includes installation and deletion, configuration, and verification that an installation follows recommended practices. In addition, Meshery adapters can assess to what extent a service mesh complies to the Service Mesh Interface standard. Meshery adapters support management of multiple versions of their respective service mesh and also come bundled with sample applications that can be deployed for easy and quick exploration of service mesh capabilities.
Meshery adapters manage the lifecycle of service meshes.
+Meshery adapters are management plane components and manage the lifecycle of cloud native infra. This includes installation and deletion, configuration, and verification that an installation follows recommended practices. As example use of Meshery adapters is for purposes of compliance verification, actively attesting whether whether infrastructure complies to an open standard, like that of Service Mesh Interface. Meshery adapters support management of multiple versions of their respective capabilites and also come bundled with sample applications that can be deployed for easy and quick exploration of infrastructure (or other) capabilities.
Meshery adapters extend Meshery's core functionality housed within Meshery Server, often deepening Meshery's ability to manage the lifecycle infratructure, but not limited to those use cases. Adapters have been known to act as engineering workflow facilititors, providing gate reviews, sending emails, and so on.
A Meshery adapter is a gRPC server that exposes the `MeshServiceServer` interface: @@ -145,15 +145,15 @@ type MeshServiceServer interface { } ``` -- `CreateMeshInstance` sets up the Kubernetes client. It does not, as the name might imply, create an instance of a service mesh. -- `MeshName` returns the name of the mesh, configured in the adapter. -- `SupportedOperations` returns all supported operations, configured in the adapter. An operation is e.g. the installation of a service mesh. +- `CreateInstance` sets up the Kubernetes client. It does not, as the name might imply, create an instance of an infrastructure component. +- `Name` returns the name of the infrastructure component, configured in the adapter. +- `SupportedOperations` returns all supported operations, configured in the adapter. An operation is e.g. the installation of any given cloud native infrastructure component or service. - `ApplyOperation` executes the operation specified in the request. It is one of the supported operations. - `StreamEvents` allows sending events from the server to the client. -This API is one of the extension points of Meshery, making it easy to add support for new service meshes to Meshery. Meshery adapters abstract away differences in installation and configuration of the various service meshes.
Adapters allow Meshery to interface with the different service meshes, exposing their differentiated value to users.
+This API is one of the extension points of Meshery, making it easy to add support for new cloud native technologies to Meshery. Meshery adapters abstract away differences in installation and configuration of the various technologies. Various cloud native technologies are installed and configured in their own way. For instance, some projects have their own installer, like `istioctl` for Istio, while others use Helm charts, like Consul. One of the purposes of Meshery adapters is to abstract these differences away.
It's important to note, however, that Meshery Adapters allow Meshery to interface with each managed system uniquely, and not treat those systems uniformly by only offering the lowest common denominator of functionality, but instead by exposing that system's differentiated value to users.
+ -In general, the various service mesh implementations are installed and configured in their own way. For instance, some service meshes have their own installer, like `istioctl` for Istio, while others use Helm charts, like Consul. One of the purposes of Meshery adapters is to abstract these differences away. ## Meshery Adapter Library @@ -168,7 +168,7 @@ Also, it means new adapters can be implemented quickly, as only configuration an
The Meshery Adapter Library provides a common and consistent set of functionality that Meshery adapters use for managing the lifecycle of - service meshes and their workloads. + cloud infrastructure and their workloads.
The initial commit was submitted on October 6th, 2020 based on a refactoring effort in the adapter for the Kuma service mesh. Within a few months, several adapters have been refactored or implemented from scratch based on the Meshery Adapter Library. @@ -224,7 +224,7 @@ The `service` is a struct that holds all the parameters that specify an adapter Extracting common code from adapters to the two new libraries has proven to be a worthwhile investment. It led to cleaner code as well as cleaner application architecture, shortened implementation time for new adapters considerably, and upleveled the quality of Meshery's adapters through consistency of implementation. -

P.S. If these topics excite you and you want to explore the beautiful realm of service meshes, come and say "Hi" on the community Slack and you are sure to be warmly welcomed. 😀

+

P.S. If these topics excite you and you want to explore the beautiful realm of cloud native infrastructure, come and say "Hi" on the community Slack and you are sure to be warmly welcomed. 😀

From 4bc11a016d96cd84431d6be3c939295822624cc6 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Sat, 21 Dec 2024 08:53:31 -0600 Subject: [PATCH 50/83] Update index.mdx Signed-off-by: Lee Calcote --- src/collections/members/vivek-vishal/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/collections/members/vivek-vishal/index.mdx b/src/collections/members/vivek-vishal/index.mdx index bd9bf5b019cc..4c5a5e65a561 100644 --- a/src/collections/members/vivek-vishal/index.mdx +++ b/src/collections/members/vivek-vishal/index.mdx @@ -8,7 +8,7 @@ linkedin: vishalvivekm location: Punjab, India layer5: 878488d5-c394-4b04-91b4-fd2f9e67ffaf bio: Vivek Vishal is a passionate CS undergrad from India who loves to explore new technologies and contribute to Open-Source projects. With proficiency in various programming languages, including Java, C++, C, Bash, and JavaScript, he possesses a profound understanding of SQL, Git, and Command-line tools. Vivek has a strong inclination towards Maths and a keen interest in Machine Learning, constantly expanding his knowledge and skillset. As an active member of the Layer5 community, he eagerly participates in community events and discussions, both to learn and to assist others in getting started with Layer5 projects or other Open-Source endeavors. Don't hesitate to connect with him on his socials below -status: Active +status: Inactive badges: - community - docs From 9d62e6b0c61807aa96f7000886f01394415b2cca Mon Sep 17 00:00:00 2001 From: balagowda Date: Mon, 23 Dec 2024 16:41:01 +0530 Subject: [PATCH 51/83] animation div sticky correction Signed-off-by: balagowda --- src/sections/General/Navigation/navigation.style.js | 2 +- src/sections/Meshery/How-meshery-works/howitworks.style.js | 1 + src/sections/app.style.js | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sections/General/Navigation/navigation.style.js b/src/sections/General/Navigation/navigation.style.js index 89cf57c8dcdc..a0a6a2882e1b 100644 --- a/src/sections/General/Navigation/navigation.style.js +++ b/src/sections/General/Navigation/navigation.style.js @@ -1,7 +1,7 @@ import styled from "styled-components"; const NavigationWrap = styled.header` - position: sticky; + // position: sticky; width: 100vw; z-index: 9999; top: 0; diff --git a/src/sections/Meshery/How-meshery-works/howitworks.style.js b/src/sections/Meshery/How-meshery-works/howitworks.style.js index 1fa527c79528..54b027752651 100644 --- a/src/sections/Meshery/How-meshery-works/howitworks.style.js +++ b/src/sections/Meshery/How-meshery-works/howitworks.style.js @@ -71,6 +71,7 @@ h2 { } .diagram { + margin-bottom:150px; width: 591px; max-width: 100%; position: sticky; diff --git a/src/sections/app.style.js b/src/sections/app.style.js index dbff856e861e..f677276dae6c 100644 --- a/src/sections/app.style.js +++ b/src/sections/app.style.js @@ -64,7 +64,7 @@ body { transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1); font-family: "Qanelas Soft", "Open Sans", sans-serif; - overflow-x: hidden !important; + // overflow-x: hidden !important; font-weight: 400 !important; margin: 0; padding: 0; From 48a0984eb0a7293699ffe9025a13e7b2be2f0149 Mon Sep 17 00:00:00 2001 From: Ajay Singh <37625112+Ajay-singh1@users.noreply.github.com> Date: Mon, 23 Dec 2024 20:06:37 +0530 Subject: [PATCH 52/83] Fix typo in workflow file Signed-off-by: Ajay Singh <37625112+Ajay-singh1@users.noreply.github.com> --- .github/workflows/build-and-preview-site.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-preview-site.yml b/.github/workflows/build-and-preview-site.yml index 75adc4c8cf5b..3544064837b7 100644 --- a/.github/workflows/build-and-preview-site.yml +++ b/.github/workflows/build-and-preview-site.yml @@ -28,5 +28,5 @@ jobs: name: public-dir path: ./public-dir.zip retention-days: 1 - - name: Triger Inner workflow - run: echo "trigering inner workflow" + - name: Trigger Inner workflow + run: echo "triggering inner workflow" From 765519634bd7c859a9a59ff8bba93a67a86a338a Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Tue, 24 Dec 2024 19:13:52 +0530 Subject: [PATCH 53/83] feat: sign-up form for open source program Signed-off-by: Vivek Vishal --- .../Open-Source-Program/signup-form.js | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/sections/Community/Open-Source-Program/signup-form.js diff --git a/src/sections/Community/Open-Source-Program/signup-form.js b/src/sections/Community/Open-Source-Program/signup-form.js new file mode 100644 index 000000000000..b31bc80c1025 --- /dev/null +++ b/src/sections/Community/Open-Source-Program/signup-form.js @@ -0,0 +1,68 @@ +import React from "react"; +import styled from "styled-components"; +import { Container, Row, Col } from "../../../reusecore/Layout"; + +import CommonForm from "../../../components/CommonForm"; + +const SignupFormWrapper = styled.div` +h4 { + font-weight: 700; +} +`; +const SignupForm = () => { + return ( + +
+ + +
+

Who can Apply?

+

Layer5-Sponsored Open Source program is ideal for developers working on projects without a path to commercialization.

+

Why join the Layer5-Sponsored Open Source program?

+

+ Unlock Free Access to Advanced Cloud Native Design Tools
+ Gain access to Layer5's drag-and-drop cloud-native infrastructure designer, which includes 350+ built-in models and public catalog patterns, starting templates, enabling teams to design, configure, and deploy their workloads effortlessly. +

+

+ Collaborative Infrastructure Design
+ Access advanced tools like real-time collaborative infrastructure design and team workspaces. Enhance productivity with shared environments that allow multiple contributors to design, edit, and review infrastructure configurations simultaneously. +

+

+ Comprehensive Cloud Native Support
+ Leverage tools for discovering existing infrastructure, visualizing Kubernetes applications, and managing multi-cloud clusters. Layer5 provides built-in components, public catalogs, and performance profiling to streamline your project's development. +

+

Qualification Criteria

+

+ To qualify for the Layer5-Sponsored Open Source program, your project namespace must: +

+
    +
  • Be shared in public repositories on Github or GitLab etc. and the source code must also be publicly accessible on its respective repository.
  • +
  • Meet the Open Source Initiative definition.
  • +
  • Not have a pathway to commercialization. Your organization must not seek to make a profit through services or by charging for higher tiers. Accepting donations to sustain your efforts is permissible.
  • +
+

Layer5-Sponsored Open Source program Terms of Agreement

+
    +
  • Program benefits are provided only to project leads and core project committers.
  • +
  • Program status and benefits are valid for one year and can be renewed if your project still meets the program requirements.
  • +
  • You may use the program benefits solely for developing non-commercial open-source projects.
  • +
  • Layer5 licenses are for use only by project collaborators and cannot be shared with any third party.
  • +
+ + +
+ + + + + + + ); +}; + +export default SignupForm; From 4e2b488bfd48ac27e11a655b661f3378756291fe Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Tue, 24 Dec 2024 19:14:42 +0530 Subject: [PATCH 54/83] Create index.js Signed-off-by: Vivek Vishal --- .../Community/Open-Source-Program/index.js | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/sections/Community/Open-Source-Program/index.js diff --git a/src/sections/Community/Open-Source-Program/index.js b/src/sections/Community/Open-Source-Program/index.js new file mode 100644 index 000000000000..4d01ef3cc508 --- /dev/null +++ b/src/sections/Community/Open-Source-Program/index.js @@ -0,0 +1,38 @@ +import React from "react"; +import { Container, Row, Col } from "../../../reusecore/Layout"; +import OpenSourcePricingWrapper from "./index.style"; +import productsImageColor from "./images/layer5-products-overview.svg"; +import productsImageWhite from "./images/layer5-products-overview-dark.svg"; +import { useStyledDarkMode } from "../../../theme/app/useStyledDarkMode"; +import SignupForm from "./signup-form"; + +const OpenSourcePricing = () => { + const { isDark } = useStyledDarkMode(); + return ( + + + + + +

Layer5-Sponsored Open Source Program

+

+ The open source community is at the heart of modern development. Developers around the world create new technology using open source and we're here to help make those innovations a reality. + In the Layer5 Open Source program, non-commercial open source developers can continue to collaborate, innovate, and push their projects forward — all with the support of Layer5 offered tools +

+ +
+ Layer5 products + + +
+ +
+ + + ); +}; + +export default OpenSourcePricing; From ae6736bab3d907c1720151260a732ffba19bc908 Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Tue, 24 Dec 2024 19:15:19 +0530 Subject: [PATCH 55/83] Create index.style.js Signed-off-by: Vivek Vishal --- .../Open-Source-Program/index.style.js | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/sections/Community/Open-Source-Program/index.style.js diff --git a/src/sections/Community/Open-Source-Program/index.style.js b/src/sections/Community/Open-Source-Program/index.style.js new file mode 100644 index 000000000000..eeb2d5cea4a9 --- /dev/null +++ b/src/sections/Community/Open-Source-Program/index.style.js @@ -0,0 +1,51 @@ +import styled from "styled-components"; + +const OpenSourcePricingWrapper = styled.div` + + .open-source-container { + padding-top: 11rem; + .dotsimage{ + position: absolute; + top: -0.125rem; + left: 0; + } + } + .hero{ + p{ + margin: 1.875rem auto 1rem auto; + } + .products-logo-wrapper{ + display: flex; + justify-content: center; + img{ + max-height: 25rem; + } + svg { + height: 25rem; + } + } + } + + .signup-form{ + margin: 8.25rem auto 2.75rem auto; + h2{ + margin-bottom: 1.875rem; + } + p{ + margin-bottom: 1.875rem; + } + } + @media only screen and (max-width: 480px){ + .signup-form{ + margin: 3.125rem auto 1.875rem auto; + p{ + margin-bottom: 0.625rem; + } + } + .open-source-container { + padding-top: 5rem; + } + } +`; + +export default OpenSourcePricingWrapper; From dd4a1046c93eebbd9833899b60a1b4b9390df1de Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Tue, 24 Dec 2024 19:15:59 +0530 Subject: [PATCH 56/83] Create layer5-products-overview-dark.svg Signed-off-by: Vivek Vishal --- .../images/layer5-products-overview-dark.svg | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 src/sections/Community/Open-Source-Program/images/layer5-products-overview-dark.svg diff --git a/src/sections/Community/Open-Source-Program/images/layer5-products-overview-dark.svg b/src/sections/Community/Open-Source-Program/images/layer5-products-overview-dark.svg new file mode 100644 index 000000000000..9d215be6d39a --- /dev/null +++ b/src/sections/Community/Open-Source-Program/images/layer5-products-overview-dark.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 61f0150f998168a267c141f10e3f2e3bcff194de Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Tue, 24 Dec 2024 19:16:28 +0530 Subject: [PATCH 57/83] Create layer5-products-overview.svg Signed-off-by: Vivek Vishal --- .../images/layer5-products-overview.svg | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/sections/Community/Open-Source-Program/images/layer5-products-overview.svg diff --git a/src/sections/Community/Open-Source-Program/images/layer5-products-overview.svg b/src/sections/Community/Open-Source-Program/images/layer5-products-overview.svg new file mode 100644 index 000000000000..147b9ad88a0d --- /dev/null +++ b/src/sections/Community/Open-Source-Program/images/layer5-products-overview.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From ba0e793cccee6d17cc0209cd6256799d49a8d94a Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Tue, 24 Dec 2024 19:17:45 +0530 Subject: [PATCH 58/83] add additional fields for open-source form Signed-off-by: Vivek Vishal --- src/components/CommonForm/index.js | 77 ++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/src/components/CommonForm/index.js b/src/components/CommonForm/index.js index a78c6dc4f9e9..80e4c70adee5 100644 --- a/src/components/CommonForm/index.js +++ b/src/components/CommonForm/index.js @@ -186,6 +186,83 @@ const CommonForm = ({ form, title, submit_title, submit_body }) => { + {form == "open-source-pricing" && ( + <> + + + + + + + + + + + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Does this project have a pathway to commercialization? Your organization can accept donations to sustain its work, but it can't seek to make a profit by selling services, by charging for enhancements or add-ons, or by other means specifically for this project. If you don't meet this criteria, Please reach out to Layer5 sales team who will assist you find a partner program that may better fit your needs.
+ + )} +
+

Who can Apply?

Layer5-Sponsored Open Source program is ideal for developers working on projects without a path to commercialization.

Why join the Layer5-Sponsored Open Source program?

From 0d4f6d970960a21ce47dcb684fd2623aed1ade7e Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Fri, 27 Dec 2024 16:31:59 +0530 Subject: [PATCH 62/83] Update src/components/CommonForm/index.js Co-authored-by: SKM <131444479+dextrot@users.noreply.github.com> Signed-off-by: Vivek Vishal --- src/components/CommonForm/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/CommonForm/index.js b/src/components/CommonForm/index.js index 80e4c70adee5..5cf5926c3326 100644 --- a/src/components/CommonForm/index.js +++ b/src/components/CommonForm/index.js @@ -188,10 +188,10 @@ const CommonForm = ({ form, title, submit_title, submit_body }) => { {form == "open-source-pricing" && ( <> -
Most popularMost popular
+ {x.category}

{x.category}

- {x.category} + + {x.category}

{x.category}

{f.free}{f.teamDesigner}{f.teamOperator}{f.enterprise}{f.free}{f.teamDesigner}{f.teamOperator}{f.enterprise}
+ {x.category}

{x.category}