diff --git a/.github/build/features-to-json.js b/.github/build/features-to-json.js
index fe0c0aa7cc85..edfec44344ef 100755
--- a/.github/build/features-to-json.js
+++ b/.github/build/features-to-json.js
@@ -1,9 +1,9 @@
#!/usr/bin/env node
-const fs = require("fs").promises; // Use fs.promises
-const csv = require("csvtojson");
+import { promises as fs } from "fs"; // Use fs.promises
+import csv from "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",
@@ -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",
+ "Exclude",
"Docs",
];
@@ -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,
@@ -33,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 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()));
-
- if (!includeRow) return null;
+ // const includeRow = hasXTier && !(exclude && ["x", "X"].includes(exclude.toLowerCase()));
- 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 Tier"],
- teamDesigner: row["TeamDesigner Tier"],
- teamOperator: row["TeamOperator Tier"],
- enterprise: row["Enterprise Tier"],
- },
- 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;
@@ -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/.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"
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f6b43c067294..ffce62888d59 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](#contributing-to-layer5s-sistent)
- [How to Contribute](#how-to-contribute)
- [Prerequisites](#prerequisites)
- [Set up your Local Development Environment](#set-up-your-local-development-environment)
@@ -129,6 +130,37 @@ 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
+
+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
+
+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
+ ```
+1. The system will dynamically generate pages based on this content and handle routing automatically.
+
+### Example
+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
The following list of instructions pertains to commonplace site updates by contributors.
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/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/gatsby-config.js b/gatsby-config.js
index f52a4b0a6082..7f59da1f9a50 100644
--- a/gatsby-config.js
+++ b/gatsby-config.js
@@ -17,6 +17,7 @@ module.exports = {
},
trailingSlash: "never",
plugins: [
+ "@mediacurrent/gatsby-plugin-silence-css-order-warning",
{
resolve: "gatsby-plugin-webpack-bundle-analyser-v2",
options: {
@@ -545,7 +546,7 @@ module.exports = {
resolve: "gatsby-plugin-robots-txt",
options: {
host: "https://layer5.io",
- sitemap: "https://layer5.io/sitemap/sitemap-index.xml",
+ sitemap: "https://layer5.io/sitemap-index.xml",
policy: [{ userAgent: "*", allow: "/" }],
}
},
diff --git a/gatsby-node.js b/gatsby-node.js
index c38e2531ceed..7f8a6cb95605 100644
--- a/gatsby-node.js
+++ b/gatsby-node.js
@@ -9,6 +9,7 @@ const path = require("path");
const slugify = require("./src/utils/slugify");
const { paginate } = require("gatsby-awesome-pagination");
const { createFilePath } = require("gatsby-source-filesystem");
+const FilterWarningsPlugin = require("webpack-filter-warnings-plugin");
const config = require("./gatsby-config");
const {
componentsData,
@@ -977,7 +978,7 @@ const createSectionPage = ({ envCreatePage, node }) => {
});
};
-exports.onCreateWebpackConfig = ({ actions }) => {
+exports.onCreateWebpackConfig = ({ actions, stage, getConfig }) => {
actions.setWebpackConfig({
resolve: {
fallback: {
@@ -987,7 +988,29 @@ exports.onCreateWebpackConfig = ({ actions }) => {
},
},
});
+ actions.setWebpackConfig({
+ plugins: [
+ new FilterWarningsPlugin({
+ exclude:
+ /mini-css-extract-plugin[^]*Conflicting order. Following module has been added:/,
+ }),
+ ],
+ });
+
+ if (stage === "build-javascript") {
+ const config = getConfig();
+ const miniCssExtractPlugin = config.plugins.find(
+ (plugin) => plugin.constructor.name === "MiniCssExtractPlugin"
+ );
+
+ if (miniCssExtractPlugin) {
+ miniCssExtractPlugin.options.ignoreOrder = true;
+ }
+
+ actions.replaceWebpackConfig(config);
+ }
};
+
exports.createSchemaCustomization = ({ actions }) => {
const { createTypes } = actions;
const typeDefs = `
diff --git a/package-lock.json b/package-lock.json
index a5893119f34f..fa954b791b47 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,7 +10,7 @@
"dependencies": {
"@emotion/is-prop-valid": "^1.2.1",
"@emotion/react": "^11.11.4",
- "@emotion/styled": "^11.11.0",
+ "@emotion/styled": "^11.14.0",
"@fullcalendar/core": "^6.1.8",
"@fullcalendar/daygrid": "^6.1.8",
"@fullcalendar/google-calendar": "^6.0.2",
@@ -21,6 +21,7 @@
"@loadable/component": "^5.16.4",
"@mdx-js/mdx": "1.6.22",
"@mdx-js/react": "1.6.22",
+ "@mediacurrent/gatsby-plugin-silence-css-order-warning": "^1.0.0",
"@mui/icons-material": "^5.16.4",
"@mui/material": "^5.15.11",
"@react-icons/all-files": "^4.1.0",
@@ -61,9 +62,9 @@
"joi": "^17.10.2",
"js-search": "^2.0.0",
"lodash": "^4.17.21",
+ "mini-css-extract-plugin": "^2.9.2",
"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",
@@ -94,8 +95,9 @@
"simple-react-lightbox": "^3.6.9-0",
"slick-carousel": "^1.8.1",
"styled-components": "^6.0.5",
- "swiper": "^10.0.4",
+ "swiper": "^11.1.15",
"url": "^0.11.3",
+ "webpack-filter-warnings-plugin": "^1.2.1",
"xstate": "^5.13.0"
},
"devDependencies": {
@@ -106,7 +108,7 @@
"cpx": "^1.5.0",
"env-cmd": "^10.1.0",
"eslint": "^8.46.0",
- "eslint-plugin-react": "^7.34.2",
+ "eslint-plugin-react": "^7.37.3",
"gatsby-plugin-webpack-bundle-analyser-v2": "^1.1.30",
"gh-pages": "^6.0.0",
"husky": "^8.0.3",
@@ -2171,15 +2173,15 @@
}
},
"node_modules/@emotion/babel-plugin": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz",
- "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==",
+ "version": "11.13.5",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz",
+ "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==",
"dependencies": {
"@babel/helper-module-imports": "^7.16.7",
"@babel/runtime": "^7.18.3",
"@emotion/hash": "^0.9.2",
"@emotion/memoize": "^0.9.0",
- "@emotion/serialize": "^1.2.0",
+ "@emotion/serialize": "^1.3.3",
"babel-plugin-macros": "^3.1.0",
"convert-source-map": "^1.5.0",
"escape-string-regexp": "^4.0.0",
@@ -2247,14 +2249,14 @@
}
},
"node_modules/@emotion/serialize": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.2.tgz",
- "integrity": "sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
+ "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
"dependencies": {
"@emotion/hash": "^0.9.2",
"@emotion/memoize": "^0.9.0",
"@emotion/unitless": "^0.10.0",
- "@emotion/utils": "^1.4.1",
+ "@emotion/utils": "^1.4.2",
"csstype": "^3.0.2"
}
},
@@ -2264,16 +2266,16 @@
"integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg=="
},
"node_modules/@emotion/styled": {
- "version": "11.13.0",
- "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz",
- "integrity": "sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==",
+ "version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz",
+ "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==",
"dependencies": {
"@babel/runtime": "^7.18.3",
- "@emotion/babel-plugin": "^11.12.0",
+ "@emotion/babel-plugin": "^11.13.5",
"@emotion/is-prop-valid": "^1.3.0",
- "@emotion/serialize": "^1.3.0",
- "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0",
- "@emotion/utils": "^1.4.0"
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
+ "@emotion/utils": "^1.4.2"
},
"peerDependencies": {
"@emotion/react": "^11.0.0-rc.0",
@@ -2291,17 +2293,17 @@
"integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg=="
},
"node_modules/@emotion/use-insertion-effect-with-fallbacks": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz",
- "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz",
+ "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==",
"peerDependencies": {
"react": ">=16.8.0"
}
},
"node_modules/@emotion/utils": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.1.tgz",
- "integrity": "sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA=="
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
+ "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA=="
},
"node_modules/@emotion/weak-memoize": {
"version": "0.4.0",
@@ -3834,6 +3836,12 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/@mediacurrent/gatsby-plugin-silence-css-order-warning": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@mediacurrent/gatsby-plugin-silence-css-order-warning/-/gatsby-plugin-silence-css-order-warning-1.0.0.tgz",
+ "integrity": "sha512-TiBIncOzH5JtjHxZ43D4KmsZcjaKaGtl4p9+9HbhdDSNC5DcS3KpIJWT0nS0qnSd2QlbDRx44XAkrl4GZpIwTA==",
+ "license": "MIT"
+ },
"node_modules/@mischnic/json-sourcemap": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz",
@@ -7101,12 +7109,12 @@
}
},
"node_modules/array-buffer-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
- "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
+ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
"dependencies": {
- "call-bind": "^1.0.5",
- "is-array-buffer": "^3.0.4"
+ "call-bound": "^1.0.3",
+ "is-array-buffer": "^3.0.5"
},
"engines": {
"node": ">= 0.4"
@@ -7230,14 +7238,14 @@
}
},
"node_modules/array.prototype.flatmap": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
+ "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -7262,18 +7270,17 @@
}
},
"node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
- "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
+ "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.8",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.2.1",
- "get-intrinsic": "^1.2.3",
- "is-array-buffer": "^3.0.4",
- "is-shared-array-buffer": "^1.0.2"
+ "es-abstract": "^1.23.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "is-array-buffer": "^3.0.4"
},
"engines": {
"node": ">= 0.4"
@@ -8398,15 +8405,41 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.0",
"es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
+ "set-function-length": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
+ "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
+ "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "get-intrinsic": "^1.2.6"
},
"engines": {
"node": ">= 0.4"
@@ -10422,13 +10455,13 @@
"integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
},
"node_modules/data-view-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
- "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
+ "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
+ "is-data-view": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -10438,27 +10471,27 @@
}
},
"node_modules/data-view-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
- "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
+ "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
+ "is-data-view": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/inspect-js"
}
},
"node_modules/data-view-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
- "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
"is-data-view": "^1.0.1"
},
@@ -11019,6 +11052,19 @@
"resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
},
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/duplexer": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
@@ -11261,56 +11307,59 @@
}
},
"node_modules/es-abstract": {
- "version": "1.23.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
- "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "version": "1.23.8",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.8.tgz",
+ "integrity": "sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==",
"dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "arraybuffer.prototype.slice": "^1.0.3",
+ "array-buffer-byte-length": "^1.0.2",
+ "arraybuffer.prototype.slice": "^1.0.4",
"available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "data-view-buffer": "^1.0.1",
- "data-view-byte-length": "^1.0.1",
- "data-view-byte-offset": "^1.0.0",
- "es-define-property": "^1.0.0",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "data-view-buffer": "^1.0.2",
+ "data-view-byte-length": "^1.0.2",
+ "data-view-byte-offset": "^1.0.1",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.0.0",
"es-set-tostringtag": "^2.0.3",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.4",
- "get-symbol-description": "^1.0.2",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
+ "es-to-primitive": "^1.3.0",
+ "function.prototype.name": "^1.1.8",
+ "get-intrinsic": "^1.2.6",
+ "get-symbol-description": "^1.1.0",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
"hasown": "^2.0.2",
- "internal-slot": "^1.0.7",
- "is-array-buffer": "^3.0.4",
+ "internal-slot": "^1.1.0",
+ "is-array-buffer": "^3.0.5",
"is-callable": "^1.2.7",
- "is-data-view": "^1.0.1",
- "is-negative-zero": "^2.0.3",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.3",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.13",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.13.1",
+ "is-data-view": "^1.0.2",
+ "is-regex": "^1.2.1",
+ "is-shared-array-buffer": "^1.0.4",
+ "is-string": "^1.1.1",
+ "is-typed-array": "^1.1.15",
+ "is-weakref": "^1.1.0",
+ "math-intrinsics": "^1.1.0",
+ "object-inspect": "^1.13.3",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.5",
- "regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.2",
- "safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.9",
- "string.prototype.trimend": "^1.0.8",
+ "object.assign": "^4.1.7",
+ "own-keys": "^1.0.0",
+ "regexp.prototype.flags": "^1.5.3",
+ "safe-array-concat": "^1.1.3",
+ "safe-push-apply": "^1.0.0",
+ "safe-regex-test": "^1.1.0",
+ "string.prototype.trim": "^1.2.10",
+ "string.prototype.trimend": "^1.0.9",
"string.prototype.trimstart": "^1.0.8",
- "typed-array-buffer": "^1.0.2",
- "typed-array-byte-length": "^1.0.1",
- "typed-array-byte-offset": "^1.0.2",
- "typed-array-length": "^1.0.6",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.15"
+ "typed-array-buffer": "^1.0.3",
+ "typed-array-byte-length": "^1.0.3",
+ "typed-array-byte-offset": "^1.0.4",
+ "typed-array-length": "^1.0.7",
+ "unbox-primitive": "^1.1.0",
+ "which-typed-array": "^1.1.18"
},
"engines": {
"node": ">= 0.4"
@@ -11320,12 +11369,9 @@
}
},
"node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"engines": {
"node": ">= 0.4"
}
@@ -11358,24 +11404,26 @@
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.0.19",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz",
- "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
+ "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
+ "es-abstract": "^1.23.6",
"es-errors": "^1.3.0",
"es-set-tostringtag": "^2.0.3",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
+ "get-intrinsic": "^1.2.6",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "iterator.prototype": "^1.1.2",
- "safe-array-concat": "^1.1.2"
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "internal-slot": "^1.1.0",
+ "iterator.prototype": "^1.1.4",
+ "safe-array-concat": "^1.1.3"
},
"engines": {
"node": ">= 0.4"
@@ -11419,13 +11467,13 @@
}
},
"node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
"dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "is-callable": "^1.2.7",
+ "is-date-object": "^1.0.5",
+ "is-symbol": "^1.0.4"
},
"engines": {
"node": ">= 0.4"
@@ -11734,27 +11782,27 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.36.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz",
- "integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==",
+ "version": "7.37.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz",
+ "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==",
"dependencies": {
"array-includes": "^3.1.8",
"array.prototype.findlast": "^1.2.5",
- "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.3",
"array.prototype.tosorted": "^1.1.4",
"doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.19",
+ "es-iterator-helpers": "^1.2.1",
"estraverse": "^5.3.0",
"hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
"object.entries": "^1.1.8",
"object.fromentries": "^2.0.8",
- "object.values": "^1.2.0",
+ "object.values": "^1.2.1",
"prop-types": "^15.8.1",
"resolve": "^2.0.0-next.5",
"semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.11",
+ "string.prototype.matchall": "^4.0.12",
"string.prototype.repeat": "^1.0.0"
},
"engines": {
@@ -12699,11 +12747,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",
@@ -13495,14 +13538,16 @@
}
},
"node_modules/function.prototype.name": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
+ "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "functions-have-names": "^1.2.3"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "functions-have-names": "^1.2.3",
+ "hasown": "^2.0.2",
+ "is-callable": "^1.2.7"
},
"engines": {
"node": ">= 0.4"
@@ -15375,6 +15420,15 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/gatsby/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
"node_modules/gatsby/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -15568,6 +15622,45 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
+ "node_modules/gatsby/node_modules/mini-css-extract-plugin": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz",
+ "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0",
+ "webpack-sources": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.4.0 || ^5.0.0"
+ }
+ },
+ "node_modules/gatsby/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
"node_modules/gatsby/node_modules/semver": {
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
@@ -15689,15 +15782,20 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz",
+ "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "dunder-proto": "^1.0.0",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -15726,13 +15824,13 @@
}
},
"node_modules/get-symbol-description": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
- "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
+ "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4"
+ "get-intrinsic": "^1.2.6"
},
"engines": {
"node": ">= 0.4"
@@ -16029,11 +16127,11 @@
}
},
"node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -16241,9 +16339,12 @@
}
},
"node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
+ "dependencies": {
+ "dunder-proto": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -16252,9 +16353,9 @@
}
},
"node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"engines": {
"node": ">= 0.4"
},
@@ -16931,13 +17032,13 @@
}
},
"node_modules/internal-slot": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
- "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
+ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
"dependencies": {
"es-errors": "^1.3.0",
- "hasown": "^2.0.0",
- "side-channel": "^1.0.4"
+ "hasown": "^2.0.2",
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -17054,12 +17155,13 @@
}
},
"node_modules/is-array-buffer": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
- "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
+ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
},
"engines": {
"node": ">= 0.4"
@@ -17088,11 +17190,14 @@
}
},
"node_modules/is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
"dependencies": {
- "has-bigints": "^1.0.1"
+ "has-bigints": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -17110,12 +17215,12 @@
}
},
"node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz",
+ "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -17195,10 +17300,12 @@
}
},
"node_modules/is-data-view": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
- "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"dependencies": {
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
"is-typed-array": "^1.1.13"
},
"engines": {
@@ -17209,11 +17316,12 @@
}
},
"node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -17296,11 +17404,14 @@
}
},
"node_modules/is-finalizationregistry": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
- "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
+ "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bound": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -17428,17 +17539,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-negative-zero": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
- "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -17448,11 +17548,12 @@
}
},
"node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
+ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -17520,12 +17621,14 @@
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
},
"node_modules/is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -17576,11 +17679,11 @@
}
},
"node_modules/is-shared-array-buffer": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
- "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
+ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
"dependencies": {
- "call-bind": "^1.0.7"
+ "call-bound": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -17609,11 +17712,12 @@
}
},
"node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
+ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -17623,11 +17727,13 @@
}
},
"node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
"dependencies": {
- "has-symbols": "^1.0.2"
+ "call-bound": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "safe-regex-test": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -17637,11 +17743,11 @@
}
},
"node_modules/is-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
"dependencies": {
- "which-typed-array": "^1.1.14"
+ "which-typed-array": "^1.1.16"
},
"engines": {
"node": ">= 0.4"
@@ -17705,11 +17811,14 @@
}
},
"node_modules/is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz",
+ "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==",
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bound": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -17803,15 +17912,19 @@
}
},
"node_modules/iterator.prototype": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
- "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.4.tgz",
+ "integrity": "sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==",
"dependencies": {
- "define-properties": "^1.2.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "reflect.getprototypeof": "^1.0.4",
- "set-function-name": "^2.0.1"
+ "define-data-property": "^1.1.4",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
+ "reflect.getprototypeof": "^1.0.8",
+ "set-function-name": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/jackspeak": {
@@ -18487,6 +18600,14 @@
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
"integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q=="
},
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/math-random": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
@@ -18874,68 +18995,23 @@
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz",
- "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==",
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz",
+ "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==",
+ "license": "MIT",
"dependencies": {
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0",
- "webpack-sources": "^1.1.0"
+ "schema-utils": "^4.0.0",
+ "tapable": "^2.2.1"
},
"engines": {
- "node": ">= 10.13.0"
+ "node": ">= 12.13.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "webpack": "^4.4.0 || ^5.0.0"
- }
- },
- "node_modules/mini-css-extract-plugin/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/mini-css-extract-plugin/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=="
- },
- "node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "webpack": "^5.0.0"
}
},
"node_modules/minimatch": {
@@ -19648,9 +19724,9 @@
}
},
"node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
+ "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
"engines": {
"node": ">= 0.4"
},
@@ -19694,13 +19770,15 @@
}
},
"node_modules/object.assign": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
- "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"define-properties": "^1.2.1",
- "has-symbols": "^1.0.3",
+ "es-object-atoms": "^1.0.0",
+ "has-symbols": "^1.1.0",
"object-keys": "^1.1.1"
},
"engines": {
@@ -19779,11 +19857,12 @@
}
},
"node_modules/object.values": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
- "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
+ "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"define-properties": "^1.2.1",
"es-object-atoms": "^1.0.0"
},
@@ -19912,6 +19991,22 @@
"node": ">=0.10.0"
}
},
+ "node_modules/own-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
+ "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.6",
+ "object-keys": "^1.1.1",
+ "safe-push-apply": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/p-cancelable": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
@@ -21267,25 +21362,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",
@@ -22702,17 +22778,18 @@
}
},
"node_modules/reflect.getprototypeof": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
- "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz",
+ "integrity": "sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.1",
+ "dunder-proto": "^1.0.1",
+ "es-abstract": "^1.23.6",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
- "which-builtin-type": "^1.1.3"
+ "get-intrinsic": "^1.2.6",
+ "gopd": "^1.2.0",
+ "which-builtin-type": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -22801,14 +22878,14 @@
}
},
"node_modules/regexp.prototype.flags": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
- "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
"es-errors": "^1.3.0",
- "set-function-name": "^2.0.1"
+ "set-function-name": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -23588,13 +23665,14 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/safe-array-concat": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
- "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4",
- "has-symbols": "^1.0.3",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
"isarray": "^2.0.5"
},
"engines": {
@@ -23623,6 +23701,21 @@
}
]
},
+ "node_modules/safe-push-apply": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
+ "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/safe-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
@@ -23633,13 +23726,13 @@
}
},
"node_modules/safe-regex-test": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
- "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
- "is-regex": "^1.1.4"
+ "is-regex": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -23996,14 +24089,65 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"dependencies": {
- "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -24430,7 +24574,8 @@
"node_modules/source-list-map": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+ "license": "MIT"
},
"node_modules/source-map": {
"version": "0.5.7",
@@ -24868,22 +25013,23 @@
}
},
"node_modules/string.prototype.matchall": {
- "version": "4.0.11",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
- "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
+ "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
+ "es-abstract": "^1.23.6",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "regexp.prototype.flags": "^1.5.2",
+ "get-intrinsic": "^1.2.6",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "internal-slot": "^1.1.0",
+ "regexp.prototype.flags": "^1.5.3",
"set-function-name": "^2.0.2",
- "side-channel": "^1.0.6"
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -24902,14 +25048,17 @@
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
- "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
- "es-object-atoms": "^1.0.0"
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -24919,14 +25068,18 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
- "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
"define-properties": "^1.2.1",
"es-object-atoms": "^1.0.0"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -25405,9 +25558,9 @@
}
},
"node_modules/swiper": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/swiper/-/swiper-10.3.1.tgz",
- "integrity": "sha512-24Wk3YUdZHxjc9faID97GTu6xnLNia+adMt6qMTZG/HgdSUt4fS0REsGUXJOgpTED0Amh/j+gRGQxsLayJUlBQ==",
+ "version": "11.1.15",
+ "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.1.15.tgz",
+ "integrity": "sha512-IzWeU34WwC7gbhjKsjkImTuCRf+lRbO6cnxMGs88iVNKDwV+xQpBCJxZ4bNH6gSrIbbyVJ1kuGzo3JTtz//CBw==",
"funding": [
{
"type": "patreon",
@@ -26033,28 +26186,28 @@
"integrity": "sha512-39wxbwHdQ2sTiBB8wAzKfQ9GN+om8w+sjNWzr+vZJR5AMD5J+J7Yc8AtXnU9r/r2c8XiDZ/smxutDmZehX/qpQ=="
},
"node_modules/typed-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
- "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "is-typed-array": "^1.1.13"
+ "is-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/typed-array-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
- "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
+ "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
@@ -26064,16 +26217,17 @@
}
},
"node_modules/typed-array-byte-offset": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
- "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
+ "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
"dependencies": {
"available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.15",
+ "reflect.getprototypeof": "^1.0.9"
},
"engines": {
"node": ">= 0.4"
@@ -26083,16 +26237,16 @@
}
},
"node_modules/typed-array-length": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
- "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
"dependencies": {
"call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-proto": "^1.0.3",
"is-typed-array": "^1.1.13",
- "possible-typed-array-names": "^1.0.0"
+ "possible-typed-array-names": "^1.0.0",
+ "reflect.getprototypeof": "^1.0.6"
},
"engines": {
"node": ">= 0.4"
@@ -26153,14 +26307,17 @@
}
},
"node_modules/unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
+ "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bound": "^1.0.3",
"has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
+ "has-symbols": "^1.1.0",
+ "which-boxed-primitive": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -26717,12 +26874,12 @@
}
},
"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==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz",
+ "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==",
"peer": true,
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/util-deprecate": {
@@ -26865,11 +27022,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",
@@ -27082,6 +27234,18 @@
"url": "https://opencollective.com/webpack"
}
},
+ "node_modules/webpack-filter-warnings-plugin": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz",
+ "integrity": "sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.3 < 5.0.0 || >= 5.10"
+ },
+ "peerDependencies": {
+ "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0"
+ }
+ },
"node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
@@ -27099,6 +27263,7 @@
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
"integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "license": "MIT",
"dependencies": {
"source-list-map": "^2.0.0",
"source-map": "~0.6.1"
@@ -27108,6 +27273,7 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -27204,37 +27370,41 @@
}
},
"node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
+ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
"dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
+ "is-bigint": "^1.1.0",
+ "is-boolean-object": "^1.2.1",
+ "is-number-object": "^1.1.1",
+ "is-string": "^1.1.1",
+ "is-symbol": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/which-builtin-type": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
- "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
"dependencies": {
+ "call-bound": "^1.0.2",
"function.prototype.name": "^1.1.6",
"has-tostringtag": "^1.0.2",
"is-async-function": "^2.0.0",
- "is-date-object": "^1.0.5",
- "is-finalizationregistry": "^1.0.2",
+ "is-date-object": "^1.1.0",
+ "is-finalizationregistry": "^1.1.0",
"is-generator-function": "^1.0.10",
- "is-regex": "^1.1.4",
+ "is-regex": "^1.2.1",
"is-weakref": "^1.0.2",
"isarray": "^2.0.5",
- "which-boxed-primitive": "^1.0.2",
+ "which-boxed-primitive": "^1.1.0",
"which-collection": "^1.0.2",
- "which-typed-array": "^1.1.15"
+ "which-typed-array": "^1.1.16"
},
"engines": {
"node": ">= 0.4"
@@ -27266,14 +27436,15 @@
"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
},
"node_modules/which-typed-array": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
- "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
+ "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
"dependencies": {
"available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"for-each": "^0.3.3",
- "gopd": "^1.0.1",
+ "gopd": "^1.2.0",
"has-tostringtag": "^1.0.2"
},
"engines": {
diff --git a/package.json b/package.json
index 5470093167ac..8e691fea64a2 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
"dependencies": {
"@emotion/is-prop-valid": "^1.2.1",
"@emotion/react": "^11.11.4",
- "@emotion/styled": "^11.11.0",
+ "@emotion/styled": "^11.14.0",
"@fullcalendar/core": "^6.1.8",
"@fullcalendar/daygrid": "^6.1.8",
"@fullcalendar/google-calendar": "^6.0.2",
@@ -38,6 +38,7 @@
"@loadable/component": "^5.16.4",
"@mdx-js/mdx": "1.6.22",
"@mdx-js/react": "1.6.22",
+ "@mediacurrent/gatsby-plugin-silence-css-order-warning": "^1.0.0",
"@mui/icons-material": "^5.16.4",
"@mui/material": "^5.15.11",
"@react-icons/all-files": "^4.1.0",
@@ -78,9 +79,9 @@
"joi": "^17.10.2",
"js-search": "^2.0.0",
"lodash": "^4.17.21",
+ "mini-css-extract-plugin": "^2.9.2",
"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",
@@ -111,8 +112,9 @@
"simple-react-lightbox": "^3.6.9-0",
"slick-carousel": "^1.8.1",
"styled-components": "^6.0.5",
- "swiper": "^10.0.4",
+ "swiper": "^11.1.15",
"url": "^0.11.3",
+ "webpack-filter-warnings-plugin": "^1.2.1",
"xstate": "^5.13.0"
},
"devDependencies": {
@@ -123,7 +125,7 @@
"cpx": "^1.5.0",
"env-cmd": "^10.1.0",
"eslint": "^8.46.0",
- "eslint-plugin-react": "^7.34.2",
+ "eslint-plugin-react": "^7.37.3",
"gatsby-plugin-webpack-bundle-analyser-v2": "^1.1.30",
"gh-pages": "^6.0.0",
"husky": "^8.0.3",
diff --git a/src/assets/images/pricing/docs.svg b/src/assets/images/pricing/docs.svg
deleted file mode 100644
index 0e0bc4319871..000000000000
--- a/src/assets/images/pricing/docs.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
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 000000000000..5446c74242a6
Binary files /dev/null and b/src/assets/images/sistent/horizontal/sistent-horizontal-color.png differ
diff --git a/src/assets/images/sistent/horizontal/sistent-horizontal-color.svg b/src/assets/images/sistent/horizontal/sistent-horizontal-color.svg
new file mode 100644
index 000000000000..02b3169fd5d8
--- /dev/null
+++ b/src/assets/images/sistent/horizontal/sistent-horizontal-color.svg
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 000000000000..28895c3b8146
Binary files /dev/null and b/src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.png differ
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 000000000000..86a3ac9cd3b0
Binary files /dev/null and b/src/assets/images/sistent/horizontal/sistent-horizontal-white.png differ
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 000000000000..0af8e24264b7
Binary files /dev/null and b/src/assets/images/sistent/icon-only/sistent-icon-color.png differ
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 000000000000..1c58f44e9dfa
Binary files /dev/null and b/src/assets/images/sistent/icon-only/sistent-icon-white.png differ
diff --git a/src/assets/images/sistent/icon-only/sistent-icon-white.svg b/src/assets/images/sistent/icon-only/sistent-icon-white.svg
new file mode 100644
index 000000000000..2ef3ac6c2be4
--- /dev/null
+++ b/src/assets/images/sistent/icon-only/sistent-icon-white.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 000000000000..5614c28b04ff
Binary files /dev/null and b/src/assets/images/sistent/stacked/sistent-stacked-color.png differ
diff --git a/src/assets/images/sistent/stacked/sistent-stacked-color.svg b/src/assets/images/sistent/stacked/sistent-stacked-color.svg
new file mode 100644
index 000000000000..b32f7b0a3ba5
--- /dev/null
+++ b/src/assets/images/sistent/stacked/sistent-stacked-color.svg
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 000000000000..cf0e5907782e
Binary files /dev/null and b/src/assets/images/sistent/stacked/sistent-stacked-partial-color.png differ
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 000000000000..99af0863a685
Binary files /dev/null and b/src/assets/images/sistent/stacked/sistent-stacked-white.png differ
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 000000000000..4cb815785fa2
Binary files /dev/null and b/src/assets/images/sistent/text-only/sistent-text-color.png differ
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 000000000000..2ed56ca87fab
Binary files /dev/null and b/src/assets/images/sistent/text-only/sistent-text-white.png differ
diff --git a/src/assets/images/sistent/text-only/sistent-text-white.svg b/src/assets/images/sistent/text-only/sistent-text-white.svg
new file mode 100644
index 000000000000..857f62a10890
--- /dev/null
+++ b/src/assets/images/sistent/text-only/sistent-text-white.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
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. 😀
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",
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",
diff --git a/src/collections/integrations/knative/icons/components/cluster-ingress/icons/color/cluster-ingress-color.svg b/src/collections/integrations/knative/icons/components/cluster-ingress/icons/color/cluster-ingress-color.svg
new file mode 100644
index 000000000000..64c3ec97e09a
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/cluster-ingress/icons/color/cluster-ingress-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/cluster-ingress/icons/white/cluster-ingress-white.svg b/src/collections/integrations/knative/icons/components/cluster-ingress/icons/white/cluster-ingress-white.svg
new file mode 100644
index 000000000000..96eda4b47c97
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/cluster-ingress/icons/white/cluster-ingress-white.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/configuration/icons/color/configuration-color.svg b/src/collections/integrations/knative/icons/components/configuration/icons/color/configuration-color.svg
new file mode 100644
index 000000000000..64c3ec97e09a
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/configuration/icons/color/configuration-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/configuration/icons/white/configuration-white.svg b/src/collections/integrations/knative/icons/components/configuration/icons/white/configuration-white.svg
new file mode 100644
index 000000000000..96eda4b47c97
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/configuration/icons/white/configuration-white.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/ingress/icons/color/ingress-color.svg b/src/collections/integrations/knative/icons/components/ingress/icons/color/ingress-color.svg
new file mode 100644
index 000000000000..64c3ec97e09a
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/ingress/icons/color/ingress-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/ingress/icons/white/ingress-white.svg b/src/collections/integrations/knative/icons/components/ingress/icons/white/ingress-white.svg
new file mode 100644
index 000000000000..96eda4b47c97
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/ingress/icons/white/ingress-white.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/pod-autoscaler/icons/color/pod-autoscaler-color.svg b/src/collections/integrations/knative/icons/components/pod-autoscaler/icons/color/pod-autoscaler-color.svg
new file mode 100644
index 000000000000..64c3ec97e09a
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/pod-autoscaler/icons/color/pod-autoscaler-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/pod-autoscaler/icons/white/pod-autoscaler-white.svg b/src/collections/integrations/knative/icons/components/pod-autoscaler/icons/white/pod-autoscaler-white.svg
new file mode 100644
index 000000000000..96eda4b47c97
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/pod-autoscaler/icons/white/pod-autoscaler-white.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/revision/icons/color/revision-color.svg b/src/collections/integrations/knative/icons/components/revision/icons/color/revision-color.svg
new file mode 100644
index 000000000000..64c3ec97e09a
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/revision/icons/color/revision-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/revision/icons/white/revision-white.svg b/src/collections/integrations/knative/icons/components/revision/icons/white/revision-white.svg
new file mode 100644
index 000000000000..96eda4b47c97
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/revision/icons/white/revision-white.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/route/icons/color/route-color.svg b/src/collections/integrations/knative/icons/components/route/icons/color/route-color.svg
new file mode 100644
index 000000000000..64c3ec97e09a
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/route/icons/color/route-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/route/icons/white/route-white.svg b/src/collections/integrations/knative/icons/components/route/icons/white/route-white.svg
new file mode 100644
index 000000000000..96eda4b47c97
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/route/icons/white/route-white.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/serverless-service/icons/color/serverless-service-color.svg b/src/collections/integrations/knative/icons/components/serverless-service/icons/color/serverless-service-color.svg
new file mode 100644
index 000000000000..64c3ec97e09a
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/serverless-service/icons/color/serverless-service-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/serverless-service/icons/white/serverless-service-white.svg b/src/collections/integrations/knative/icons/components/serverless-service/icons/white/serverless-service-white.svg
new file mode 100644
index 000000000000..96eda4b47c97
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/serverless-service/icons/white/serverless-service-white.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/service/icons/color/service-color.svg b/src/collections/integrations/knative/icons/components/service/icons/color/service-color.svg
new file mode 100644
index 000000000000..64c3ec97e09a
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/service/icons/color/service-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/icons/components/service/icons/white/service-white.svg b/src/collections/integrations/knative/icons/components/service/icons/white/service-white.svg
new file mode 100644
index 000000000000..96eda4b47c97
--- /dev/null
+++ b/src/collections/integrations/knative/icons/components/service/icons/white/service-white.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/knative/index.mdx b/src/collections/integrations/knative/index.mdx
index ef3935ca8431..8492bdb00dfb 100644
--- a/src/collections/integrations/knative/index.mdx
+++ b/src/collections/integrations/knative/index.mdx
@@ -74,6 +74,54 @@ components: [
"colorIcon": "icons/components/trigger/icons/color/trigger-color.svg",
"whiteIcon": "icons/components/trigger/icons/white/trigger-white.svg",
"description": "",
+},
+{
+"name": "cluster-ingress",
+"colorIcon": "icons/components/cluster-ingress/icons/color/cluster-ingress-color.svg",
+"whiteIcon": "icons/components/cluster-ingress/icons/white/cluster-ingress-white.svg",
+"description": "",
+},
+{
+"name": "ingress",
+"colorIcon": "icons/components/ingress/icons/color/ingress-color.svg",
+"whiteIcon": "icons/components/ingress/icons/white/ingress-white.svg",
+"description": "",
+},
+{
+"name": "pod-autoscaler",
+"colorIcon": "icons/components/pod-autoscaler/icons/color/pod-autoscaler-color.svg",
+"whiteIcon": "icons/components/pod-autoscaler/icons/white/pod-autoscaler-white.svg",
+"description": "",
+},
+{
+"name": "serverless-service",
+"colorIcon": "icons/components/serverless-service/icons/color/serverless-service-color.svg",
+"whiteIcon": "icons/components/serverless-service/icons/white/serverless-service-white.svg",
+"description": "",
+},
+{
+"name": "configuration",
+"colorIcon": "icons/components/configuration/icons/color/configuration-color.svg",
+"whiteIcon": "icons/components/configuration/icons/white/configuration-white.svg",
+"description": "",
+},
+{
+"name": "revision",
+"colorIcon": "icons/components/revision/icons/color/revision-color.svg",
+"whiteIcon": "icons/components/revision/icons/white/revision-white.svg",
+"description": "",
+},
+{
+"name": "route",
+"colorIcon": "icons/components/route/icons/color/route-color.svg",
+"whiteIcon": "icons/components/route/icons/white/route-white.svg",
+"description": "",
+},
+{
+"name": "service",
+"colorIcon": "icons/components/service/icons/color/service-color.svg",
+"whiteIcon": "icons/components/service/icons/white/service-white.svg",
+"description": "",
}]
featureList: [
"Provides building blocks for serverless",
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.",
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 @@
-
+
diff --git a/src/collections/members/Muhammad-Moinuddin/index.mdx b/src/collections/members/Muhammad-Moinuddin/index.mdx
index 71c95517796d..930778c71946 100644
--- a/src/collections/members/Muhammad-Moinuddin/index.mdx
+++ b/src/collections/members/Muhammad-Moinuddin/index.mdx
@@ -10,6 +10,6 @@ location: Karachi, Pakistan
bio: |
Software Engineer - Computer Science - UoK.
Passionate about web apps, cloud native and open source, eager to learn and innovate.
-status: Active
+status: Inactive
published: true
---
\ No newline at end of file
diff --git a/src/collections/members/ahmed-hendawy/ahmed-hendawy.webp b/src/collections/members/ahmed-hendawy/ahmed-hendawy.webp
new file mode 100644
index 000000000000..2aa2a3087504
Binary files /dev/null and b/src/collections/members/ahmed-hendawy/ahmed-hendawy.webp differ
diff --git a/src/collections/members/ahmed-hendawy/index.mdx b/src/collections/members/ahmed-hendawy/index.mdx
new file mode 100644
index 000000000000..00f204eac28a
--- /dev/null
+++ b/src/collections/members/ahmed-hendawy/index.mdx
@@ -0,0 +1,15 @@
+---
+name: Ahmed Hendawy
+position: Contributor
+image_path: ./ahmed-hendawy.webp
+github: devhindo
+twitter: devhindo
+linkedin: devhindo
+layer5: c667a565-930a-4f7f-a29e-0a11ba392111
+location: Egypt
+bio: "devhindo is a Software Engineer with a specialized focus on Backend and Cloud Development. He is highly proficient in Golang, Python, and JavaScript, languages he uses to architect and develop scalable, cloud-native applications. His expertise extends to distributed systems and now includes blockchain technologies, allowing him to tackle intricate software challenges with ease. devhindo is passionate about contributing to open source projects, sharing his knowledge and giving back to the community. Additionally, he excels in problem-solving and has a deep understanding of algorithms, which he applies to optimize and innovate within the tech ecosystem. His love for technology drives him to continuously learn and adapt to new frameworks and methodologies in the ever-evolving world of software engineering."
+badges:
+ - meshery
+status: Active
+published: true
+---
diff --git a/src/collections/members/aviral-asthana/index.mdx b/src/collections/members/aviral-asthana/index.mdx
index 4d05f99b8145..81133b9ddc1d 100644
--- a/src/collections/members/aviral-asthana/index.mdx
+++ b/src/collections/members/aviral-asthana/index.mdx
@@ -7,6 +7,6 @@ linkedin: aviral-asthana-02b70824b
layer5: 3f770688-e487-45c2-943b-c94b950d3d69
location: Ghaziabad, India
bio: Aviral Asthana is a Computer Science student with a passion for full-stack web development. Proficient in the MERN stack, Aviral has hands-on experience in building robust applications and is keenly interested in Golang, Docker, and Kubernetes. He is dedicated to continuous improvement through contributions to open-source projects and actively engaging with the developer community.
-status: Active
+status: Inactive
published: true
---
\ No newline at end of file
diff --git a/src/collections/members/rex-joshua/index.mdx b/src/collections/members/rex-joshua/index.mdx
index d1d6c5e50fc9..b06fa1cbe0af 100644
--- a/src/collections/members/rex-joshua/index.mdx
+++ b/src/collections/members/rex-joshua/index.mdx
@@ -10,6 +10,6 @@ location: Lagos State, Nigeria.
bio: I am a digital product designer passionate about the interaction between humans and technology. I am also a curious, adaptable, and effective person, capable of analyzing and understanding new concepts quickly and applying them when needed. I use my skills to improve user flows in order to help them achieve their objectives and, as much as possible, align them with business goals to ensure an optimized experience and productivity. When I'm not designing and proposing solutions, I enjoy listening to music, watching football and movies, or playing video games.
badges:
- ui-ux
-status : Active
+status : Inactive
published: true
---
diff --git a/src/collections/members/rhoda-michael/index.mdx b/src/collections/members/rhoda-michael/index.mdx
index b917539d5eda..3c0cb5e011a9 100644
--- a/src/collections/members/rhoda-michael/index.mdx
+++ b/src/collections/members/rhoda-michael/index.mdx
@@ -10,6 +10,6 @@ location: Jos, Nigeria
bio: " I'm Rhoda Michael, a User Experience Designer/Researcher based in Nigeria I focus on accessibility and inclusion for users. I enjoy writing and reading."
badges:
- ui-ux
-status: Active
+status: Inactive
published: true
---
\ No newline at end of file
diff --git a/src/collections/members/shlok-mishra/index.mdx b/src/collections/members/shlok-mishra/index.mdx
index 5597e7fc3958..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: Active
+status: Inactive
published: true
----
\ No newline at end of file
+---
diff --git a/src/collections/members/vidit-kushwaha/index.mdx b/src/collections/members/vidit-kushwaha/index.mdx
new file mode 100644
index 000000000000..4f7141d329ed
--- /dev/null
+++ b/src/collections/members/vidit-kushwaha/index.mdx
@@ -0,0 +1,16 @@
+---
+name: Vidit Kushwaha
+position: Contributor
+image_path: ./vidit-kushwaha.webp
+github: Vidit-Kushwaha
+twitter: helloVidit
+linkedin: viditkushwaha
+layer5: 1bc7144f-a34f-4bfa-9b08-3a4dbf22e1e8
+location: Uttar Pradesh, India
+bio: "I'm Vidit Kushwaha, a final-year student doing my bachelor's of technology from the National Institute of Technology (NIT), Rourkela, and I'm a tech enthusiast, and I love creating applications that stay on the internet.
+I'm a self-taught developer and always looking for new ways to improve my skills and stay up-to-date with the latest technologies. I am passionate about creating clean and efficient code and love working on projects that challenge me."
+badges:
+ - meshery
+status: Active
+published: true
+---
diff --git a/src/collections/members/vidit-kushwaha/vidit-kushwaha.webp b/src/collections/members/vidit-kushwaha/vidit-kushwaha.webp
new file mode 100644
index 000000000000..5d15da749372
Binary files /dev/null and b/src/collections/members/vidit-kushwaha/vidit-kushwaha.webp differ
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
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..306cc41ebae8 100644
--- a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx
+++ b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx
@@ -14,28 +14,17 @@ 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";
-
-
-
-
diff --git a/src/components/CommonForm/index.js b/src/components/CommonForm/index.js
index a78c6dc4f9e9..5cf5926c3326 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 }) => {
Other
+ {form == "open-source-pricing" && (
+ <>
+
+ What is the name of your project? *
+
+
+
+ Please link the public repository of your OSS organization (github, gitlab, etc.) *
+
+
+
+ Please provide a link to your project website. *
+
+
+
+ What is the goal of this project? *
+
+
+
+ What types of user(s) benefit from this project? *
+
+
+
+ Please list all sponsors for this project. *
+
+
+
+ Path to Commercialization *
+
+
+
+ Select an option
+ Yes
+ No
+ Maybe
+
+
+
+
+ What is the code distribution license for your OSS project? *
+
+
+ Select a license
+ GNU Affero General Public License v3.0
+ Apache 2.0
+ BSD 2-Clause license
+ BSD-3-Clause license
+ BSD 4-Clause
+ GNU General Public License v3.0
+ GNU Lesser General Public License v3.0
+ MIT License
+ Mozilla Public License 2.0
+ Boost Software License 1.0
+ The Unlicense
+ BSD Zero Clause
+ Academic Free License v3.0
+ Creative Commons Attribution 4.0 International
+ Creative Commons Attribution Share Alike 4.0 International
+ Creative Commons Zero v1.0 Universal
+ Eclipse Public License 2.0
+ CeCILL Free Software License Agreement v2.1
+ Educational Community License v2.0
+ European Union Public License 1.2
+ ISC License
+ Microsoft Public License
+ Open Data Commons Open Database License v1.0
+ Common Development and Distribution License
+ Eiffel Forum License 2.0
+ Adaptive Public License 1.0
+ Mulan Permissive Software License, Version 2
+
+
+ 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.
+ >
+ )}
+
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" && }
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 }) => {
props.theme.grey050505ToGreyF1F2F1};
+ background: ${(props) => props.theme.grey0E0E0EToGreen3C494F};
padding: 0.125rem 0.5rem;
position: absolute;
width: fit-content;
@@ -86,7 +86,20 @@ const PlanCardWrapper = styled.section`
font-weight: 500;
top: 0rem;
right: .9rem;
- color: ${(props) => props.theme.greyDEE3DEToGrey363636};
+ color: #eee;
+ transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
+ }
+ .featured-label {
+ border-radius: 0px 4px;
+ background: ${(props) => props.theme.saffronColor};
+ padding: 0.125rem 0.5rem;
+ position: absolute;
+ width: fit-content;
+ font-size: 0.75rem;
+ font-weight: 500;
+ top: 0rem;
+ right: .9rem;
+ color: #111;
transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
h6 {
diff --git a/src/components/Related-Posts/index.js b/src/components/Related-Posts/index.js
index 95e09e8fd8ca..040e38a34c98 100644
--- a/src/components/Related-Posts/index.js
+++ b/src/components/Related-Posts/index.js
@@ -1,3 +1,5 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
import { Link } from "gatsby";
import { IoIosArrowRoundForward } from "@react-icons/all-files/io/IoIosArrowRoundForward";
@@ -5,8 +7,6 @@ import Card from "../Card";
import RelatedPostsWrapper from "./relatedPosts.style";
import { Col } from "../../reusecore/Layout";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import useHasMounted from "../../utils/useHasMounted";
const RelatedPosts = props => {
diff --git a/src/components/Related-Resources/index.js b/src/components/Related-Resources/index.js
index 2f717aa5c847..8739581a4d4b 100644
--- a/src/components/Related-Resources/index.js
+++ b/src/components/Related-Resources/index.js
@@ -1,3 +1,5 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
import { Link } from "gatsby";
import { IoIosArrowRoundForward } from "@react-icons/all-files/io/IoIosArrowRoundForward";
@@ -5,8 +7,6 @@ import Card from "../Card";
import RelatedResourcesWrapper from "./relatedResources.style";
import { Col } from "../../reusecore/Layout";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import useHasMounted from "../../utils/useHasMounted";
const RelatedResources = props => {
diff --git a/src/pages/community/open-source-program.js b/src/pages/community/open-source-program.js
new file mode 100644
index 000000000000..f895701ef04e
--- /dev/null
+++ b/src/pages/community/open-source-program.js
@@ -0,0 +1,17 @@
+import React from "react";
+import SEO from "../../components/seo";
+import OpenSourcePricingPage from "../../sections/Community/Open-Source-Program";
+
+const OpenSourcePricingProgramPage = () => {
+ return (
+ <>
+
+ >
+ );
+};
+export default OpenSourcePricingProgramPage;
+export const Head = () => {
+ return ;
+};
diff --git a/src/reusecore/Blockquote/Blockquote-alt-style/index.js b/src/reusecore/Blockquote/Blockquote-alt-style/index.js
index 2e3f47a0a2b7..f3a5ef02c349 100644
--- a/src/reusecore/Blockquote/Blockquote-alt-style/index.js
+++ b/src/reusecore/Blockquote/Blockquote-alt-style/index.js
@@ -2,7 +2,7 @@ import React from "react";
import PropTypes from "prop-types";
import BlockquoteStyle from "./blockquote.style";
-const Blockquote = ({ className, ...props }) => {
+const BlockquoteAlt = ({ className, ...props }) => {
const AllClasses = ["blockquote"];
if (className) {
AllClasses.push(className);
@@ -24,11 +24,12 @@ const Blockquote = ({ className, ...props }) => {
);
};
-Blockquote.propTypes = {
+BlockquoteAlt.propTypes = {
quote: PropTypes.string,
person: PropTypes.string,
title: PropTypes.string,
className: PropTypes.string,
};
-export default Blockquote;
+export default BlockquoteAlt;
+export { BlockquoteAlt };
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}
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default OpenSourcePricing;
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;
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..ba727deda986
--- /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;
diff --git a/src/sections/Community/slider.js b/src/sections/Community/slider.js
index 862ef223b348..859f323122b9 100644
--- a/src/sections/Community/slider.js
+++ b/src/sections/Community/slider.js
@@ -1,8 +1,8 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
import Slider from "react-slick";
import styled from "styled-components";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import { useStaticQuery, graphql } from "gatsby";
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/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);
diff --git a/src/sections/General/Navigation/navigation.style.js b/src/sections/General/Navigation/navigation.style.js
index 89cf57c8dcdc..fcb16b31b09b 100644
--- a/src/sections/General/Navigation/navigation.style.js
+++ b/src/sections/General/Navigation/navigation.style.js
@@ -1,7 +1,6 @@
import styled from "styled-components";
const NavigationWrap = styled.header`
- position: sticky;
width: 100vw;
z-index: 9999;
top: 0;
@@ -17,6 +16,7 @@ const NavigationWrap = styled.header`
}
}
.meshery-cta {
+ z-index: 999;
position: relative;
display: flex;
align-items: center;
@@ -619,12 +619,12 @@ const NavigationWrap = styled.header`
.mobile-nav-item {
padding: 1px;
ul:after {
- content: "";
- display: block;
- height: 1px;
- width: 40%;
- margin: 10px;
- background: ${(props) => props.theme.greyC1C1C1ToGreyB3B3B3};
+ content: "";
+ display: block;
+ height: 1px;
+ width: 40%;
+ margin: 10px;
+ background: ${(props) => props.theme.greyC1C1C1ToGreyB3B3B3};
}
.menu-item {
font-size: 16px;
@@ -758,7 +758,8 @@ const NavigationWrap = styled.header`
}
.dark-theme-toggle {
/* margin-left: 2rem; */
- visibility: ${(props) => typeof props.theme.DarkTheme === "boolean" ? "visible" : "hidden"};
+ visibility: ${(props) =>
+ typeof props.theme.DarkTheme === "boolean" ? "visible" : "hidden"};
}
.toggle {
diff --git a/src/sections/Home/Partners-home/index.js b/src/sections/Home/Partners-home/index.js
index abf636babcdc..b91262a93dc3 100644
--- a/src/sections/Home/Partners-home/index.js
+++ b/src/sections/Home/Partners-home/index.js
@@ -1,3 +1,5 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
import { Container, Row } from "../../../reusecore/Layout";
import SectionTitle from "../../../reusecore/SectionTitle";
@@ -5,8 +7,6 @@ import PartnerItemWrapper from "./partnerSection.style";
import { Link } from "gatsby";
import { partners } from "./partners-home-data";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
const settings = {
initialSlide: 1,
diff --git a/src/sections/Home/So-Special-Section/index.js b/src/sections/Home/So-Special-Section/index.js
index 92f87301128d..0474474f4749 100644
--- a/src/sections/Home/So-Special-Section/index.js
+++ b/src/sections/Home/So-Special-Section/index.js
@@ -1,7 +1,7 @@
-import React from "react";
-import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
+import React from "react";
+import Slider from "react-slick";
import SoSpecialWrapper from "./so-special-style";
import Button from "../../../reusecore/Button";
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/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% ;
}
diff --git a/src/sections/Learn/Books-grid/index.js b/src/sections/Learn/Books-grid/index.js
index d898f3c0e208..10f8313a8488 100644
--- a/src/sections/Learn/Books-grid/index.js
+++ b/src/sections/Learn/Books-grid/index.js
@@ -1,10 +1,10 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
import { graphql, useStaticQuery } from "gatsby";
import PageHeader from "../../../reusecore/PageHeader";
import { Link } from "gatsby";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import { BooksPageWrapper } from "./BooksGrid.style";
const BooksPage = ({ hide_path }) => {
diff --git a/src/sections/Learn/LearnPage-Sections/workshops.js b/src/sections/Learn/LearnPage-Sections/workshops.js
index af7175e20091..e7b8e90a0974 100644
--- a/src/sections/Learn/LearnPage-Sections/workshops.js
+++ b/src/sections/Learn/LearnPage-Sections/workshops.js
@@ -1,11 +1,11 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
import { graphql, useStaticQuery, Link } from "gatsby";
import { Row, Col } from "../../../reusecore/Layout";
import Button from "../../../reusecore/Button";
import { feedbackData } from "./feedbackData";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import { FiArrowRight } from "@react-icons/all-files/fi/FiArrowRight";
import { FiArrowLeft } from "@react-icons/all-files/fi/FiArrowLeft";
import styled from "styled-components";
diff --git a/src/sections/Meshery/Features-section/index.js b/src/sections/Meshery/Features-section/index.js
index 5f8f33648442..00c9744d426b 100644
--- a/src/sections/Meshery/Features-section/index.js
+++ b/src/sections/Meshery/Features-section/index.js
@@ -1,9 +1,9 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
import { Row, Col } from "../../../reusecore/Layout";
import Button from "../../../reusecore/Button";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import Slide1 from "../images/service mesh performance example.gif";
import Slide2 from "../images/meshery_benchmark_screen.webp";
import Slide3 from "../images/meshery-configuration-management.webp";
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/Meshery/Meshery-integrations/Integration.style.js b/src/sections/Meshery/Meshery-integrations/Integration.style.js
index 7c7ee84326d2..60b595b5be5e 100755
--- a/src/sections/Meshery/Meshery-integrations/Integration.style.js
+++ b/src/sections/Meshery/Meshery-integrations/Integration.style.js
@@ -1,7 +1,7 @@
-import styled from "styled-components";
-import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
+import styled from "styled-components";
+import Slider from "react-slick";
export const HoneycombGrid = styled.div`
.heading {
diff --git a/src/sections/Meshery/meshery-operator/index.js b/src/sections/Meshery/meshery-operator/index.js
index 13617d323278..3ef3a3c5bc81 100644
--- a/src/sections/Meshery/meshery-operator/index.js
+++ b/src/sections/Meshery/meshery-operator/index.js
@@ -1,12 +1,12 @@
-import React from "react";
+
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";import React from "react";
import { StaticImage } from "gatsby-plugin-image";
import MesheryOperatorWrapper from "./mesheryoperator.style";
import { Container, Row, Col } from "../../../reusecore/Layout";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import SubscribeSection from "../../../sections/subscribe/subscribe";
import Deployment from "./deployment.svg";
diff --git a/src/sections/Pricing/data.js b/src/sections/Pricing/archived/data.js
similarity index 100%
rename from src/sections/Pricing/data.js
rename to src/sections/Pricing/archived/data.js
diff --git a/src/sections/Pricing/comparison.js b/src/sections/Pricing/comparison.js
index 5dcd1f753513..5081e3181f40 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;
@@ -70,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;
@@ -101,64 +102,71 @@ 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;
+ color:${props => props.theme.saffronColor};
+ background-color:rgba(0,179,159,0.1);
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);
}
-.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{
- p{
+.details {
+ p {
color: #7A848E;
margin-left: 1.1rem;
}
}
-.category-icon{
- margin: 0rem auto;
+.category-icon {
+
}
-.categories{
+.categories {
display: flex;
+ width: 100%;
+ text-align: left;
align-items: center;
- margin: 1rem 0;
+ margin: 1rem auto;
}
- .docs{
+.docs {
width:1rem;
height:1rem;
- }
+}
- .feature-link-container {
+td.feature {
+ padding: auto;
+ margin: 0px;
+}
+.feature-link-container {
display: flex;
align-items: center;
justify-content: space-between;
@@ -173,7 +181,11 @@ h2, h5{
text-decoration: none;
font-size: 0.9rem;
}
-
+.feature-link > svg {
+ &:hover {
+ opacity:.5;
+ }
+ }
.feature-link:hover {
text-decoration: underline;
}
@@ -189,10 +201,11 @@ const Comparison = () => {
-
- Most popular
-
-
+
+
+ Most popular
+
+
@@ -205,20 +218,17 @@ const Comparison = () => {
{details.map((x) => (
<>
-
-
+
+
{x.category}
-
-
-
{x.features.map((f) => (
- {f.free}
- {f.teamDesigner}
- {f.teamOperator}
- {f.enterprise}
+ {f.free}
+ {f.teamDesigner}
+ {f.teamOperator}
+ {f.enterprise}
))}
>
diff --git a/src/sections/Pricing/feature_data.json b/src/sections/Pricing/feature_data.json
index 8dbe43728165..a6710a672626 100644
--- a/src/sections/Pricing/feature_data.json
+++ b/src/sections/Pricing/feature_data.json
@@ -1,232 +1,27 @@
[
{
- "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",
- "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",
- "category": "Support and Deployment",
- "functionOrder": "10",
- "function": "Community Support",
- "feature": "Get help with most of your Meshery questions and issues in our Community Forum.",
- "subscription_tier": "Free",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "",
- "teamOperator": "",
- "enterprise": ""
- },
- "pricing_page": "x",
- "docs": ""
- },
- {
- "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",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "x",
- "teamOperator": "x",
- "enterprise": ""
- },
- "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",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "x",
- "docs": ""
- },
- {
- "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",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "x",
- "docs": ""
- },
- {
- "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.",
- "subscription_tier": "Enterprise",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "x",
- "docs": "https://docs.layer5.io/cloud/self-hosted/"
- },
- {
- "theme": "",
- "categoryOrder": "9",
- "category": "Support and Deployment",
- "functionOrder": "9",
- "function": "Bring your own Database",
- "feature": "Support for Postgresql",
- "subscription_tier": "",
+ "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": "1st section of webpage",
"comparison_tiers": {
- "free": "",
+ "free": "2nd section of webpage",
"teamDesigner": "",
"teamOperator": "",
"enterprise": ""
},
- "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": "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": "",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "x",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "x",
- "docs": ""
- },
- {
- "theme": "",
- "categoryOrder": "1",
- "category": "Catalog",
+ "categoryOrder": "0",
+ "category": "Configuration Management",
"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.",
+ "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",
@@ -234,252 +29,29 @@
"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": "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": "Create new design",
- "feature": "Create new Meshery design",
- "subscription_tier": "Free",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "x",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "",
- "docs": "https://docs.meshery.io/guides/configuration-management/creating-a-meshery-design"
- },
- {
- "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",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "x",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "",
"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",
- "subscription_tier": "Free",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "x",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "",
- "docs": ""
- },
- {
- "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",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "x",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "",
- "docs": ""
- },
- {
- "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",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "x",
- "docs": ""
- },
- {
- "theme": "",
- "categoryOrder": "8",
- "category": "Security",
- "functionOrder": "",
- "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": "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"
- },
- "pricing_page": "",
- "docs": ""
- },
- {
- "theme": "",
- "categoryOrder": "2",
- "category": "Kanvas",
- "functionOrder": "1",
- "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.",
+ "categoryOrder": "0",
+ "category": "Configuration Management",
+ "functionOrder": "2",
+ "function": "Export Designs",
+ "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",
"teamDesigner": "x",
- "teamOperator": "",
- "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": "TeamDesigner|TeamOperator",
- "comparison_tiers": {
- "free": "",
- "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": {
- "free": "",
- "teamDesigner": "",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file"
},
{
"theme": "",
- "categoryOrder": "4",
+ "categoryOrder": "0",
"category": "Configuration Management",
- "functionOrder": "2",
+ "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",
@@ -489,33 +61,15 @@
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.meshery.io/concepts/logical/models"
},
{
"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",
- "comparison_tiers": {
- "free": "",
- "teamDesigner": "x",
- "teamOperator": "",
- "enterprise": "x"
- },
- "pricing_page": "x",
- "docs": ""
- },
- {
- "theme": "",
- "categoryOrder": "5",
- "category": "Identity & Access Management",
- "functionOrder": "1",
- "function": "Built-in Roles",
- "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin",
+ "categoryOrder": "0",
+ "category": "Configuration Management",
+ "functionOrder": "4",
+ "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",
@@ -523,50 +77,47 @@
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": "https://docs.layer5.io/cloud/security/roles/"
+ "docs": "https://docs.meshery.io/guides/configuration-management/importing-models"
},
{
"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.",
- "subscription_tier": "Free",
+ "categoryOrder": "0",
+ "category": "Configuration Management",
+ "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": "5",
- "category": "Identity & Access Management",
- "functionOrder": "4",
- "function": "User-defined Roles",
- "feature": "Customizable roles for specific permission assignments",
- "subscription_tier": "Enterprise",
+ "categoryOrder": "0",
+ "category": "Configuration Management",
+ "functionOrder": "6",
+ "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": "",
+ "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.",
+ "categoryOrder": "0",
+ "category": "Configuration Management",
+ "functionOrder": "7",
+ "function": "Bulk Import IaC",
+ "feature": "Bulk import of your existing infrastructure as code from GitHub repositories.",
"subscription_tier": "",
"comparison_tiers": {
"free": "",
@@ -574,66 +125,62 @@
"teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/getting-started/github-integration/"
},
{
"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": "0",
+ "category": "Configuration Management",
+ "functionOrder": "8",
+ "function": "Validate Infrastructure Configuration",
+ "feature": "Static validation of configured parameters for design completeness and accuracy.",
+ "subscription_tier": "TeamDesigner",
"comparison_tiers": {
"free": "",
- "teamDesigner": "",
+ "teamDesigner": "x",
"teamOperator": "",
- "enterprise": "x"
+ "enterprise": ""
},
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/"
},
{
"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",
+ "categoryOrder": "",
+ "category": "",
+ "functionOrder": "",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "no",
"comparison_tiers": {
- "free": "x",
+ "free": "",
"teamDesigner": "",
"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",
+ "categoryOrder": "",
+ "category": "",
+ "functionOrder": "",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
- "free": "x",
+ "free": "",
"teamDesigner": "",
"teamOperator": "",
- "enterprise": "x"
+ "enterprise": ""
},
- "pricing_page": "",
- "docs": "https://docs.layer5.io/cloud/getting-started/getting-started-with-layer5-account/#7-viewing-your-layer5-profile"
+ "docs": ""
},
{
"theme": "",
"categoryOrder": "1",
"category": "Lifecycle Management",
- "functionOrder": "1",
- "function": "Topology visualization",
+ "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": {
@@ -642,33 +189,31 @@
"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",
+ "functionOrder": "102",
+ "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": "",
- "teamDesigner": "",
+ "free": "x",
+ "teamDesigner": "x",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.meshery.io/reference/mesheryctl"
},
{
"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.",
+ "functionOrder": "103",
+ "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": "",
@@ -676,16 +221,15 @@
"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.",
+ "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": "",
@@ -693,152 +237,79 @@
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/"
},
{
"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": ""
- },
- {
- "theme": "",
- "categoryOrder": "0",
- "category": "Configuration Management",
- "functionOrder": "1",
- "function": "Whiteboarding",
- "feature": "Ability to freeform draw any shapes, draw edges",
- "subscription_tier": "Free",
+ "functionOrder": "105",
+ "function": "Standard Metrics",
+ "feature": "Real-time resource metrics for managed workloads.",
+ "subscription_tier": "",
"comparison_tiers": {
- "free": "x",
- "teamDesigner": "x",
+ "free": "",
+ "teamDesigner": "",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/"
+ "docs": "https://docs.layer5.io/kanvas/operator/operator-views/"
},
{
"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": "1",
+ "category": "Lifecycle Management",
+ "functionOrder": "107",
+ "function": "Assign Views to Workspace",
+ "feature": "Add new views to workspace",
+ "subscription_tier": "",
"comparison_tiers": {
- "free": "x",
- "teamDesigner": "x",
+ "free": "",
+ "teamDesigner": "",
"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",
- "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": "0",
- "category": "GitOps",
- "functionOrder": "4",
- "function": "GitOps Integrations",
- "feature": "Initiate deployment with creation of pull request, ArgoEvents, Flux sync, or webhook.",
- "subscription_tier": "Enterprise",
+ "categoryOrder": "1",
+ "category": "Lifecycle Management",
+ "functionOrder": "108",
+ "function": "Export views",
+ "feature": "Export views to JSON format",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
- "teamOperator": "",
+ "teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.layer5.io/kanvas/operator/operator-views/#5-export-a-view"
},
{
"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.",
- "subscription_tier": "TeamOperator",
+ "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": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": "https://docs.layer5.io/kanvas/operator/"
+ "docs": "https://docs.layer5.io/kanvas/operator/operator-views/#3-share-a-view"
},
{
"theme": "",
"categoryOrder": "1",
"category": "Lifecycle Management",
- "functionOrder": "1",
- "function": "Standard Events and Metrics",
- "feature": "Real-time resource metrics.",
+ "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": "",
@@ -846,16 +317,15 @@
"teamOperator": "x",
"enterprise": "x"
},
- "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.",
+ "categoryOrder": "1",
+ "category": "Lifecycle Management",
+ "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": "",
@@ -863,118 +333,79 @@
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": ""
- },
- {
- "theme": "",
- "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",
- "teamDesigner": "x",
- "teamOperator": "x",
- "enterprise": "x"
- },
- "pricing_page": "x",
"docs": ""
},
{
"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",
+ "categoryOrder": "1",
+ "category": "Lifecycle Management",
+ "functionOrder": "113",
+ "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": {
"free": "",
- "teamDesigner": "x",
+ "teamDesigner": "",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
"docs": ""
},
{
"theme": "",
- "categoryOrder": "4",
- "category": "Collaboration",
+ "categoryOrder": "",
+ "category": "",
"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",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
- "teamDesigner": "x",
+ "teamDesigner": "",
"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": "1",
+ "category": "Lifecycle Management",
+ "functionOrder": "115",
+ "function": "Orchestration: Provisioning / Deprovisioning",
+ "feature": "Provision and deprovision cloud native infrastructure using your designs.",
+ "subscription_tier": "",
"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/tasks/designs/undeploying-designs/"
},
{
"theme": "",
- "categoryOrder": "4",
- "category": "Collaboration",
+ "categoryOrder": "",
+ "category": "",
"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",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
"teamOperator": "",
- "enterprise": "x"
+ "enterprise": ""
},
- "pricing_page": "x",
"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.",
+ "categoryOrder": "2",
+ "category": "Kanvas",
+ "functionOrder": "201",
+ "function": "Whiteboarding",
+ "feature": "Pencil for freeform drawing of any shapes",
"subscription_tier": "Free",
"comparison_tiers": {
"free": "x",
@@ -982,118 +413,143 @@
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.layer5.io/kanvas/designer/whiteboarding/"
},
{
"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",
+ "categoryOrder": "2",
+ "category": "Kanvas",
+ "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": "",
+ "free": "x",
"teamDesigner": "x",
- "teamOperator": "",
+ "teamOperator": "x",
"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",
+ "categoryOrder": "2",
+ "category": "Kanvas",
+ "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": "",
+ "free": "x",
"teamDesigner": "x",
- "teamOperator": "",
+ "teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "",
"docs": ""
},
{
"theme": "",
"categoryOrder": "",
- "category": "Account Management",
+ "category": "",
"functionOrder": "",
- "function": "Entitlement",
- "feature": "List and see details of active and inactive subscriptions.",
- "subscription_tier": "Team",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
- "free": "x",
- "teamDesigner": "x",
+ "free": "",
+ "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": "3",
+ "category": "Performance Management",
+ "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": "",
+ "teamOperator": "x",
+ "enterprise": "x"
+ },
+ "docs": "https://docs.meshery.io/guides/performance-management/performance-management"
+ },
+ {
+ "theme": "",
+ "categoryOrder": "3",
+ "category": "Performance Management",
+ "functionOrder": "302",
+ "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": "",
- "category": "Catalog",
- "functionOrder": "",
- "function": "Export Design",
- "feature": "To your local filesystem",
- "subscription_tier": "Free",
+ "categoryOrder": "3",
+ "category": "Performance Management",
+ "functionOrder": "303",
+ "function": "Comparative Testing",
+ "feature": "Visual comparison of performance test results.",
+ "subscription_tier": "",
"comparison_tiers": {
- "free": "x",
- "teamDesigner": "x",
+ "free": "",
+ "teamDesigner": "",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "",
"docs": ""
},
{
"theme": "",
- "categoryOrder": "",
- "category": "Catalog",
- "functionOrder": "",
- "function": "Export Design",
- "feature": "Export a latest version of design in Meshery Design (YAML format)",
- "subscription_tier": "Free",
+ "categoryOrder": "3",
+ "category": "Performance Management",
+ "functionOrder": "304",
+ "function": "Capacity, soak, and burst testing",
+ "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency",
+ "subscription_tier": "",
"comparison_tiers": {
- "free": "x",
- "teamDesigner": "x",
+ "free": "",
+ "teamDesigner": "",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-a-design-file"
+ "docs": ""
},
{
"theme": "",
"categoryOrder": "",
- "category": "Catalog",
+ "category": "",
"functionOrder": "",
- "function": "Export Design",
- "feature": "Export a latest version of design in Meshery Design (OCI format)",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
+ "comparison_tiers": {
+ "free": "",
+ "teamDesigner": "",
+ "teamOperator": "",
+ "enterprise": ""
+ },
+ "docs": ""
+ },
+ {
+ "theme": "",
+ "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": "",
@@ -1101,16 +557,15 @@
"teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": "https://docs.layer5.io/kanvas/designer/export-designs/#exporting-as-an-oci-image"
+ "docs": "https://docs.layer5.io/kanvas/designer/comments/"
},
{
"theme": "",
- "categoryOrder": "",
- "category": "Catalog",
- "functionOrder": "",
- "function": "Export Design",
- "feature": "Export a design at a specific version",
+ "categoryOrder": "4",
+ "category": "Collaboration",
+ "functionOrder": "402",
+ "function": "Collaborative Infrastructure Design",
+ "feature": "Create and collaborate in online designs in real-time.",
"subscription_tier": "TeamDesigner",
"comparison_tiers": {
"free": "",
@@ -1118,152 +573,143 @@
"teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
"docs": ""
},
{
"theme": "",
- "categoryOrder": "1",
- "category": "Catalog",
- "functionOrder": "3",
- "function": "Publish Design",
- "feature": "Publish a design",
+ "categoryOrder": "4",
+ "category": "Collaboration",
+ "functionOrder": "403",
+ "function": "Public and Private Designs",
+ "feature": "Invite any user to collaborate on your public or private designs.",
"subscription_tier": "TeamDesigner",
"comparison_tiers": {
"free": "",
"teamDesigner": "x",
"teamOperator": "",
- "enterprise": ""
+ "enterprise": "x"
},
- "pricing_page": "",
- "docs": "https://docs.meshery.io/extensions/publishing-a-design"
+ "docs": ""
},
{
"theme": "",
- "categoryOrder": "1",
- "category": "Catalog",
- "functionOrder": "4",
- "function": "Orchestration: Pre-provisioning",
- "feature": "Validate a design",
+ "categoryOrder": "4",
+ "category": "Collaboration",
+ "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",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
"teamOperator": "x",
- "enterprise": ""
+ "enterprise": "x"
},
- "pricing_page": "",
- "docs": "https://docs.layer5.io/kanvas/tasks/designs/validating-designs/"
+ "docs": ""
},
{
"theme": "",
- "categoryOrder": "1",
- "category": "Catalog",
- "functionOrder": "4",
- "function": "Orchestration: Provisioning",
- "feature": "Provision and deprovision cloud native infrastructure using your designs.",
+ "categoryOrder": "4",
+ "category": "Collaboration",
+ "functionOrder": "405",
+ "function": "Public and Private Views",
+ "feature": "Invite any user to collaborate on your public or private views.",
"subscription_tier": "TeamOperator",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
"teamOperator": "x",
- "enterprise": ""
+ "enterprise": "x"
},
- "pricing_page": "",
- "docs": "https://docs.layer5.io/kanvas/tasks/designs/deploying-designs/"
+ "docs": "https://docs.layer5.io/kanvas/operator/operator-views/"
},
{
"theme": "",
- "categoryOrder": "1",
- "category": "Catalog",
- "functionOrder": "4",
- "function": "Orchestration: Deprovisioning",
- "feature": "Retract all resources used in a Meshery design from the cluster",
- "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/undeploying-designs/"
+ "docs": ""
},
{
"theme": "",
"categoryOrder": "",
- "category": "Identity & Access Management",
+ "category": "",
"functionOrder": "",
- "function": "Organizations",
- "feature": "Establish new organization for organizing teams, users, and resource access.",
- "subscription_tier": "Enterprise",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
"teamOperator": "",
- "enterprise": "x"
+ "enterprise": ""
},
- "pricing_page": "",
- "docs": "https://docs.layer5.io/cloud/identity/organizations/"
+ "docs": ""
},
{
"theme": "",
"categoryOrder": "5",
- "category": "Roles",
- "functionOrder": "",
- "function": "Create Custom Roles",
- "feature": "Assign User Roles, Assign Keychains to Roles",
- "subscription_tier": "Enterprise",
+ "category": "Identity & Access Management",
+ "functionOrder": "501",
+ "function": "Built-in Roles",
+ "feature": "Predefined user roles: Organization Admin, Team Admin, Workspace Admin",
+ "subscription_tier": "Free",
"comparison_tiers": {
- "free": "",
- "teamDesigner": "",
+ "free": "x",
+ "teamDesigner": "x",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/security/roles/"
},
{
"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",
+ "categoryOrder": "5",
+ "category": "Identity & Access Management",
+ "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": "",
- "teamDesigner": "",
+ "free": "x",
+ "teamDesigner": "x",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "",
"docs": ""
},
{
"theme": "",
- "categoryOrder": "",
- "category": "Environments",
- "functionOrder": "",
- "function": "Environments",
- "feature": "Operational control of infrastructure and applications by group. Deploy to multiple Environments.",
- "subscription_tier": "Free",
+ "categoryOrder": "5",
+ "category": "Identity & Access Management",
+ "functionOrder": "503",
+ "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": "x",
+ "free": "",
"teamDesigner": "x",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "x",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/identity/teams/"
},
{
"theme": "",
- "categoryOrder": "",
- "category": "Environments",
- "functionOrder": "2",
- "function": "Environments",
- "feature": "Group related resources together, making it easier to navigate and manage complex deployments.",
+ "categoryOrder": "5",
+ "category": "Identity & Access Management",
+ "functionOrder": "504",
+ "function": "Custom Roles",
+ "feature": "Assign User Roles, Assign Keychains to Roles",
"subscription_tier": "Enterprise",
"comparison_tiers": {
"free": "",
@@ -1271,33 +717,31 @@
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/security/roles/"
},
{
"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": "5",
+ "category": "Identity & Access Management",
+ "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": "x",
+ "teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "x",
"docs": ""
},
{
"theme": "",
- "categoryOrder": "6",
- "category": "Workspaces",
- "functionOrder": "4",
- "function": "Transfer files between workspaces",
- "feature": "Move designs, views, and models between Shared Workspaces.",
+ "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": "",
@@ -1305,16 +749,31 @@
"teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "x",
+ "docs": "https://docs.layer5.io/cloud/identity/organizations/"
+ },
+ {
+ "theme": "",
+ "categoryOrder": "",
+ "category": "",
+ "functionOrder": "",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
+ "comparison_tiers": {
+ "free": "",
+ "teamDesigner": "",
+ "teamOperator": "",
+ "enterprise": ""
+ },
"docs": ""
},
{
"theme": "",
"categoryOrder": "6",
"category": "Workspaces",
- "functionOrder": "1",
- "function": "Assign Designs to Workspaces",
- "feature": "Assign designs to 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",
@@ -1322,236 +781,238 @@
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "",
"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.",
- "subscription_tier": "Free",
+ "categoryOrder": "6",
+ "category": "Workspaces",
+ "functionOrder": "605",
+ "function": "Manage Workspace Team and Environment Access",
+ "feature": "Assign designs, views, users, and environments to shared workspaces.",
+ "subscription_tier": "",
+ "comparison_tiers": {
+ "free": "",
+ "teamDesigner": "x",
+ "teamOperator": "x",
+ "enterprise": "x"
+ },
+ "docs": ""
+ },
+ {
+ "theme": "",
+ "categoryOrder": "6",
+ "category": "Workspaces",
+ "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": "x",
+ "free": "",
"teamDesigner": "x",
"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",
+ "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": "",
- "teamOperator": "x",
+ "teamDesigner": "x",
+ "teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/"
+ "docs": "https://docs.layer5.io/cloud/tutorials/gitops-snapshots/"
},
{
"theme": "",
- "categoryOrder": "1",
- "category": "Lifecycle Management",
- "functionOrder": "1",
- "function": "Assign Views to Workspace",
- "feature": "Add new views to workspace",
- "subscription_tier": "TeamOperator",
+ "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": "x",
+ "teamOperator": "",
"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",
+ "categoryOrder": "",
+ "category": "",
+ "functionOrder": "",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
- "teamOperator": "x",
- "enterprise": "x"
+ "teamOperator": "",
+ "enterprise": ""
},
- "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": "7",
+ "category": "Catalog",
+ "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": "",
- "teamDesigner": "",
+ "free": "x",
+ "teamDesigner": "x",
"teamOperator": "x",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": "https://docs.layer5.io/kanvas/visualizer/visualizer-views/#3-share-a-view"
+ "docs": "https://cloud.layer5.io/catalog"
},
{
"theme": "",
- "categoryOrder": "1",
- "category": "Lifecycle Management",
- "functionOrder": "1",
- "function": "Clone Views",
- "feature": "Clone Views",
- "subscription_tier": "TeamOperator",
+ "categoryOrder": "7",
+ "category": "Catalog",
+ "functionOrder": "702",
+ "function": "Organization 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",
+ "teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/catalog/"
},
{
"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",
+ "categoryOrder": "7",
+ "category": "Catalog",
+ "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": "",
- "teamDesigner": "",
- "teamOperator": "x",
+ "free": "x",
+ "teamDesigner": "x",
+ "teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/kanvas/designer/share-resource/"
},
{
"theme": "",
- "categoryOrder": "3",
- "category": "Performance 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",
+ "categoryOrder": "7",
+ "category": "Catalog",
+ "functionOrder": "704",
+ "function": "Clone Design",
+ "feature": "Clone any published design to customise it according to your use cases",
+ "subscription_tier": "",
"comparison_tiers": {
- "free": "",
- "teamDesigner": "",
- "teamOperator": "x",
+ "free": "x",
+ "teamDesigner": "x",
+ "teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/kanvas/tasks/designs/cloning-a-design/"
},
{
"theme": "",
- "categoryOrder": "3",
- "category": "Performance Management",
- "functionOrder": "",
- "function": "Export test results",
- "feature": "Single or multiple results in standardized format.",
- "subscription_tier": "TeamOperator",
+ "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": "x",
- "enterprise": "x"
+ "teamOperator": "",
+ "enterprise": ""
},
- "pricing_page": "",
"docs": ""
},
{
"theme": "",
- "categoryOrder": "3",
- "category": "Performance Management",
- "functionOrder": "",
- "function": "Comparative Testing",
- "feature": "Visual comparison of performance test results.",
- "subscription_tier": "TeamOperator",
+ "categoryOrder": "7",
+ "category": "Catalog",
+ "functionOrder": "708",
+ "function": "Approve Catalog Request",
+ "feature": "Change management for the curation of content published in the catalog.",
+ "subscription_tier": "Enterprise",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
- "teamOperator": "x",
+ "teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/catalog/"
},
{
"theme": "",
- "categoryOrder": "3",
- "category": "Performance Management",
+ "categoryOrder": "",
+ "category": "",
"functionOrder": "",
- "function": "Capacity, soak, and burst testing",
- "feature": "Protocols: HTTP, HTTPS, TCP, gRPC with configuration duration, concurrency",
- "subscription_tier": "TeamOperator",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
- "teamOperator": "x",
- "enterprise": "x"
+ "teamOperator": "",
+ "enterprise": ""
},
- "pricing_page": "",
"docs": ""
},
{
"theme": "",
- "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",
+ "categoryOrder": "8",
+ "category": "Security",
+ "functionOrder": "802",
+ "function": "Event 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": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/security/"
},
{
"theme": "",
- "categoryOrder": "9",
+ "categoryOrder": "8",
"category": "Security",
- "functionOrder": "",
- "function": "Credentials and Connections",
- "feature": "Assign connections to environment",
- "subscription_tier": "TeamOperator",
+ "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": "",
"teamDesigner": "",
- "teamOperator": "x",
+ "teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/security/"
},
{
"theme": "",
- "categoryOrder": "9",
+ "categoryOrder": "8",
"category": "Security",
- "functionOrder": "",
- "function": "API Tokens, Sessions",
+ "functionOrder": "805",
+ "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": {
@@ -1560,160 +1021,166 @@
"teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
- "docs": ""
+ "docs": "https://docs.layer5.io/cloud/security/tokens/"
},
{
"theme": "",
- "categoryOrder": "9",
- "category": "Security",
+ "categoryOrder": "",
+ "category": "",
"functionOrder": "",
- "function": "Keys, Keychain, and Roles",
+ "function": "",
"feature": "",
- "subscription_tier": "Enterprise",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
"teamOperator": "",
- "enterprise": "x"
+ "enterprise": ""
},
- "pricing_page": "",
"docs": ""
},
{
"theme": "",
- "categoryOrder": "",
- "category": "Infrastructure Management",
- "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",
+ "categoryOrder": "9",
+ "category": "Managed Service Provider",
+ "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": "x",
+ "teamOperator": "",
"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",
+ "categoryOrder": "9",
+ "category": "Managed Service Provider",
+ "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": "x",
+ "teamDesigner": "",
"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",
+ "categoryOrder": "9",
+ "category": "Managed Service Provider",
+ "functionOrder": "904",
+ "function": "Self-service User Accounts",
+ "feature": "New user sign-up verification. Self-service password recovery.",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
- "teamDesigner": "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": "10",
+ "category": "Support and Deployment",
+ "functionOrder": "1001",
+ "function": "Community Support",
+ "feature": "Get help with most of your questions and issues in our Community Forum.",
+ "subscription_tier": "Free",
+ "comparison_tiers": {
+ "free": "x",
+ "teamDesigner": "x",
+ "teamOperator": "x",
+ "enterprise": "x"
+ },
"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",
+ "categoryOrder": "10",
+ "category": "Support and Deployment",
+ "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": "",
+ "teamOperator": "x",
"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",
+ "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 Multi-tenancy: Hierarchical organizations, teams, users and customizable permissioning.",
+ "subscription_tier": "Enterprise",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
- "teamOperator": "x",
+ "teamOperator": "",
"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",
+ "categoryOrder": "10",
+ "category": "Support and Deployment",
+ "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": "x",
+ "teamOperator": "",
"enterprise": "x"
},
- "pricing_page": "",
"docs": ""
},
{
"theme": "",
"categoryOrder": "",
- "category": "Infrastructure Management",
+ "category": "",
"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",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
- "teamOperator": "x",
- "enterprise": "x"
+ "teamOperator": "",
+ "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",
+ "function": "",
+ "feature": "",
+ "subscription_tier": "",
"comparison_tiers": {
"free": "",
"teamDesigner": "",
- "teamOperator": "x",
- "enterprise": "x"
+ "teamOperator": "",
+ "enterprise": ""
},
- "pricing_page": "",
"docs": ""
}
]
\ No newline at end of file
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 b22fdd7b716a..498fec33f2d9 100644
--- a/src/sections/Pricing/generateDetails.js
+++ b/src/sections/Pricing/generateDetails.js
@@ -9,11 +9,11 @@ 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";
-import { ReactComponent as Docs } from "../../assets/images/pricing/docs.svg";
+import Docs from "./icons/docs.js";
function generateDetails(data) {
const categories = [
@@ -23,11 +23,13 @@ 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 },
- { 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 => {
diff --git a/src/sections/Pricing/generatePlans.js b/src/sections/Pricing/generatePlans.js
index d39dbc163b10..a819f58e67fa 100644
--- a/src/sections/Pricing/generatePlans.js
+++ b/src/sections/Pricing/generatePlans.js
@@ -11,13 +11,13 @@ function generatePlans(data) {
monthlyprice: 0,
yearlyprice: 0,
byline: "The basics for individuals and organizations",
- byline2: "",
+ byline2: " Everything from Open Source, plus...",
button: ["Join for Free", "https://cloud.layer5.io"]
},
"TeamDesigner": {
tier: "Team Designer",
featured: true,
- monthlyprice: 6,
+ monthlyprice: 8,
yearlyprice: 68,
byline: "Advanced collaboration for declarative DevOps",
byline2: "← Everything included in Free, plus...",
@@ -25,10 +25,10 @@ function generatePlans(data) {
},
"TeamOperator": {
tier: "Team Operator",
- featured: true,
- monthlyprice: 6,
+ featured: false,
+ monthlyprice: 8,
yearlyprice: 68,
- pricing_coming_soon: ,
+ // pricing_coming_soon: ,
byline: "Advanced collaboration for imperative DevOps",
byline2: "← Everything included in Free, plus...",
button: ["Start Free Trial", "https://cloud.layer5.io"],
@@ -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) => {
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
diff --git a/src/sections/Pricing/pricing.style.js b/src/sections/Pricing/pricing.style.js
index 714d0efffa52..c4ed2a12b473 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;
}
@@ -56,15 +56,16 @@ const PricingWrapper = styled.section`
.toggle-container span {
cursor: pointer;
padding: .5rem 1rem;
- color: #222;
+ color: #fff;
border-radius: .5rem;
transition: background-color 0.3s, color 0.3s;
}
.toggle-container .active {
- background-color: ${props => props.theme.darkJungleGreenColor};
- color: #ccc;
- border-color: ${props => props.theme.darkJungleGreenHalfColor};
+ background-color: ${props => props.theme.secondaryColor};
+ color: #fff;
+ font-weight: 600;
+ border-color: ${props => props.theme.secondaryColor};
}
@@ -110,7 +111,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);
}
}
diff --git a/src/sections/Pricing/review-slider.js b/src/sections/Pricing/review-slider.js
index 5acb8d09d61c..58f2a76e84f2 100644
--- a/src/sections/Pricing/review-slider.js
+++ b/src/sections/Pricing/review-slider.js
@@ -1,9 +1,9 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
import styled from "styled-components";
import Customers from "../../reusecore/Blockquote/Blockquote-image";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import Maxi from "../../collections/members/maximiliano-churichi/Maximiliano-Churichi.webp";
import Otto from "../../collections/members/otto-van-der-schaaf/otto-van-der-schaaf.webp";
import Nic from "../../collections/members/nicholas-jackson/nic-jackson.webp";
diff --git a/src/sections/Projects/Image-Hub/index.js b/src/sections/Projects/Image-Hub/index.js
index 197da9b1642d..7ccdcc359a30 100644
--- a/src/sections/Projects/Image-Hub/index.js
+++ b/src/sections/Projects/Image-Hub/index.js
@@ -1,3 +1,5 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
import React from "react";
@@ -6,8 +8,6 @@ import ImageHubWrapper from "./imageHub.style";
import { Container } from "../../../reusecore/Layout";
import Button from "../../../reusecore/Button";
import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
import VintageBox from "../../../reusecore/VintageBox";
diff --git a/src/sections/Projects/Sistent/components/card/code.js b/src/sections/Projects/Sistent/components/card/code.js
new file mode 100644
index 000000000000..078ba6a4a8bf
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/card/code.js
@@ -0,0 +1,279 @@
+import React from "react";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+
+import {
+ SistentThemeProvider,
+ Card,
+ CardActions,
+ CardContent,
+ CardMedia,
+ Typography,
+ Button,
+} from "@layer5/sistent";
+import { CodeBlock } from "../button/code-block";
+import { SistentLayout } from "../../sistent-layout";
+
+import MesheryLogo from "../../../../../assets/images/meshery/meshery-logo-light-text-side.webp";
+import KanvasLogo from "../../../../../assets/images/kanvas/icon-only/kanvas-icon-color.png";
+
+import TabButton from "../../../../../reusecore/Button";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+
+const codes = [
+ `
+
+
+ Company Spotlight
+
+
+ Layer5
+
+
+ Platform
+
+
+ Empowering engineers with cloud-native management solutions.
+
+
+
+
+ Learn More
+
+
+ `,
+
+ `
+
+
+
+
+ Meshery
+
+
+ Meshery is an open-source cloud-native management platform
+ designed to help users manage, monitor, and optimize the
+ performance of service meshes and their workloads.
+
+
+
+ `,
+
+ `
+
+
+
+
+ Kanvas
+
+
+ Kanvas is a collaborative design tool that allows users to
+ create, edit, and manage visual assets seamlessly within a
+ shared workspace.
+
+
+
+
+
+ Share
+
+
+ `,
+];
+
+const CardCode = () => {
+ const location = useLocation();
+ const { isDark } = useStyledDarkMode();
+
+ return (
+
+
+
+ Card
+
+
+ The Card component is a UI element used to encapsulate information or
+ actions related to a single topic, typically in a visually separated,
+ easily digestible format. It often includes elements like images,
+ text, and buttons to present content and enable quick interactions
+ without navigating away from the card.
+
+
+ navigate("/projects/sistent/components/card")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/card/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/card/code")}
+ title="Code"
+ />
+
+
+
+ A card often lets users interact with its entire surface to trigger
+ its main function, whether it’s expanding, navigating to another
+ screen, or activating some other behavior.
+
+
+ Oultined Card Example
+
+
+ An outlined card is a variation of the standard card component,
+ often used to provide a lighter, more minimalist design. Instead of
+ a solid background or shadow, an outlined card uses a border to
+ define its boundaries, giving it a cleaner and more refined
+ appearance.
+
+
+
+
+
+
+
+ Company Spotlight
+
+
+ Layer5
+
+
+ Platform
+
+
+ Empowering engineers with cloud-native management
+ solutions.
+
+
+
+
+ Learn More
+
+
+
+
+
+
+
+
+
+
+ Main Action Cards
+
+
+ This type of interactive card is well-suited for use in
+ applications where quick access to more information or actions is
+ important, such as dashboards, or product catalogs. For example,
+ ont the website, users can tap anywhere on the card to open the
+ full product page.
+
+
+
+
+
+
+
+
+
+ Meshery
+
+
+ Meshery is an open-source cloud-native management
+ platform designed to help users manage, monitor, and
+ optimize the performance of service meshes and their
+ workloads.
+
+
+
+
+
+
+
+
+
+
+ Cards can also include secondary actions, which should be positioned
+ away from the primary action area to avoid unintentional interaction
+ conflicts.
+
+
+
+
+
+
+
+
+
+ Kanvas
+
+
+ Kanvas is a collaborative design tool that allows users
+ to create, edit, and manage visual assets seamlessly
+ within a shared workspace.
+
+
+
+
+
+ Share
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default CardCode;
diff --git a/src/sections/Projects/Sistent/components/card/guidance.js b/src/sections/Projects/Sistent/components/card/guidance.js
new file mode 100644
index 000000000000..06eb7ece8ec7
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/card/guidance.js
@@ -0,0 +1,232 @@
+import React from "react";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+import { Row } from "../../../../../reusecore/Layout";
+import {
+ SistentThemeProvider,
+ Card,
+ CardActions,
+ CardContent,
+ CardMedia,
+ Typography,
+ Button,
+} from "@layer5/sistent";
+import { SistentLayout } from "../../sistent-layout";
+import MesheryLogo from "../../../../../assets/images/meshery/meshery-logo-light-text-side.webp";
+import KanvasLogo from "../../../../../assets/images/kanvas/icon-only/kanvas-icon-color.png";
+
+import TabButton from "../../../../../reusecore/Button";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+
+const CardGuidance = () => {
+ const location = useLocation();
+ const { isDark } = useStyledDarkMode();
+
+ return (
+
+
+
+ Card
+
+
+ The Card component is a UI element used to encapsulate information or
+ actions related to a single topic, typically in a visually separated,
+ easily digestible format. It often includes elements like images,
+ text, and buttons to present content and enable quick interactions
+ without navigating away from the card.
+
+
+ navigate("/projects/sistent/components/card")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/card/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/card/code")}
+ title="Code"
+ />
+
+
+
+ For proper application, these cards can be used for different
+ purposes to enable easier and consistent combination when guiding
+ users across digital experiences.
+
+
+
+ Function
+
+
+
The Card Component serves various functions:
+
+
Oultined Card
+
+ Outlined cards are ideal for use in layouts that benefit from a
+ subtle, modern look, such as in settings with light backgrounds
+ where visual clarity is important. They’re perfect for showcasing
+ items like product listings, profiles, or dashboard summaries, as
+ the minimal border keeps the focus on the content without adding
+ visual weight.
+
+
+
+
+
+
+ Company Spotlight
+
+
+ Layer5
+
+
+ Platform
+
+
+ Empowering engineers with cloud-native management solutions.
+
+
+
+
+ Learn More
+
+
+
+
+
+
+
Main Action Cards
+
+ This type of interactive card is well-suited for use in applications
+ where quick access to more information or actions is important, such
+ as dashboards, or product catalogs. For example, ont the website,
+ users can tap anywhere on the card to open the full product page.
+
+
+
+
+
+
+
+
+ Meshery
+
+
+ Meshery is an open-source cloud-native management platform
+ designed to help users manage, monitor, and optimize the
+ performance of service meshes and their workloads.
+
+
+
+
+
+
+
+
+ In usage, cards can incorporate secondary actions, like sharing,
+ bookmarking, or viewing additional details, which are typically
+ placed separately from the main action area. This separation
+ prevents accidental taps or clicks, allowing users to clearly
+ distinguish between the primary function of the card (like opening a
+ detailed view) and other supporting actions.
+
+
+
+
+
+
+
+
+ Kanvas
+
+
+ Kanvas is a collaborative design tool that allows users to
+ create, edit, and manage visual assets seamlessly within a
+ shared workspace.
+
+
+
+
+
+ Share
+
+
+
+
+
+
+
+ Labeling
+
+
+ For card components, clear labeling helps define the purpose and
+ hierarchy of each card, making it easier for users to understand the
+ content at a glance. Labels, like titles or category tags, can
+ indicate the main topic or action associated with each card,
+ improving navigation and usability within a grid of multiple cards.
+
+
+
Hierarchy and Visual Cues
+
+ Cards benefit from a clear hierarchy, using typography, spacing, and
+ color to guide users through the content. For instance, a card title
+ in bold or larger text immediately draws attention, while secondary
+ information is displayed with subdued colors.
+
+
+
Interactivity and Feedback
+
+ Cards often use hover effects, shadow adjustments, or subtle
+ animations to indicate interactivity. This feedback helps users
+ identify clickable areas or interactive elements within the card,
+ providing a more engaging experience.
+
+
+
Consistency in Style and Layout
+
+ Cards should maintain a consistent style throughout an interface to
+ ensure a unified look and feel. Consistency in aspects like font
+ sizes, padding, border radii, and color schemes helps cards blend
+ naturally into the overall UI design, improving readability and
+ making interactions feel intuitive across different screens or
+ sections.
+
+
+
+
+ );
+};
+
+export default CardGuidance;
diff --git a/src/sections/Projects/Sistent/components/card/index.js b/src/sections/Projects/Sistent/components/card/index.js
new file mode 100644
index 000000000000..3827a05e2f62
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/card/index.js
@@ -0,0 +1,198 @@
+import React from "react";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+import MesheryLogo from "../../../../../assets/images/meshery/meshery-logo-light-text-side.webp";
+import KanvasLogo from "../../../../../assets/images/kanvas/icon-only/kanvas-icon-color.png";
+
+import {
+ SistentThemeProvider,
+ Card,
+ CardActions,
+ CardContent,
+ CardMedia,
+ Typography,
+ Button,
+} from "@layer5/sistent";
+import TabButton from "../../../../../reusecore/Button";
+import { SistentLayout } from "../../sistent-layout";
+import { Row } from "../../../../../reusecore/Layout";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+
+const SistentCard = () => {
+ const location = useLocation();
+ const { isDark } = useStyledDarkMode();
+
+ return (
+
+
+
+ Card
+
+
+ The Card component is a UI element used to encapsulate information or
+ actions related to a single topic, typically in a visually separated,
+ easily digestible format. It often includes elements like images,
+ text, and buttons to present content and enable quick interactions
+ without navigating away from the card.
+
+
+ navigate("/projects/sistent/components/card")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/card/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/card/code")}
+ title="Code"
+ />
+
+
+
+ The card component is a versatile UI element commonly used in web
+ and mobile applications. It's designed to showcase content in a
+ clean, concise, and visually organized manner. Typically, a card
+ groups related information, making it easy for users to digest and
+ interact with. It often includes an image or icon, title,
+ description, and actionable buttons or links, all contained within a
+ defined boundary that makes it visually distinct.
+
+
+ Types of Cards
+
+
+
Outlined
+
+ An outlined card is a variation of the standard card component,
+ often used to provide a lighter, more minimalist design. Instead of
+ a solid background or shadow, an outlined card uses a border to
+ define its boundaries, giving it a cleaner and more refined
+ appearance.
+
+
+
+
+
+
+ Company Spotlight
+
+
+ Layer5
+
+
+ Platform
+
+
+ Empowering engineers with cloud-native management solutions.
+
+
+
+
+ Learn More
+
+
+
+
+
+
+
Main Action
+
+ 1. A card often lets users interact with its entire surface to
+ trigger its main function, whether it’s expanding, navigating to
+ another screen, or activating some other behavior.
+
+
+
+
+
+
+
+
+ Meshery
+
+
+ Meshery is an open-source cloud-native management platform
+ designed to help users manage, monitor, and optimize the
+ performance of service meshes and their workloads.
+
+
+
+
+
+
+
+
+ 2. Cards can also include secondary actions, which should be
+ positioned away from the primary action area to avoid unintentional
+ interaction conflicts.
+
+
+
+
+
+
+
+
+ Kanvas
+
+
+ Kanvas is a collaborative design tool that allows users to
+ create, edit, and manage visual assets seamlessly within a
+ shared workspace.
+
+
+
+
+
+ Share
+
+
+
+
+
+
+
+ NOTE: Cards may offer multiple actions, UI elements, and an overflow
+ menu, but it’s important to exercise restraint, as they are
+ primarily designed to serve as entry points to deeper and more
+ comprehensive content.
+
+
+
+
+ );
+};
+
+export default SistentCard;
diff --git a/src/sections/Projects/Sistent/components/content.js b/src/sections/Projects/Sistent/components/content.js
index 388e34486f06..45ce8275c89d 100644
--- a/src/sections/Projects/Sistent/components/content.js
+++ b/src/sections/Projects/Sistent/components/content.js
@@ -95,6 +95,14 @@ const componentsData = [
url: "/projects/sistent/components/backdrop",
src: "/backdrop",
},
+ {
+ id: 13,
+ name: "Card",
+ description:
+ "Cards are surfaces that showcase content and actions centered around a specific topic.",
+ url: "/projects/sistent/components/card",
+ src: "/card",
+ },
];
module.exports = { componentsData };
\ No newline at end of file
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 (
-
Sistent
+
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 {
diff --git a/src/sections/app.style.js b/src/sections/app.style.js
index dbff856e861e..1a1a644524fc 100644
--- a/src/sections/app.style.js
+++ b/src/sections/app.style.js
@@ -64,7 +64,6 @@ 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;
font-weight: 400 !important;
margin: 0;
padding: 0;
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;
-
-
diff --git a/static/brand/sistent-brand-kit.zip b/static/brand/sistent-brand-kit.zip
new file mode 100644
index 000000000000..7fd46639e7bc
Binary files /dev/null and b/static/brand/sistent-brand-kit.zip differ