├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── ci.md │ ├── config.yml │ ├── documentation.md │ ├── fbug_report.md │ ├── feature_request.md │ ├── meshery-extensions_bug.md │ ├── meshery-extensions_feature.md │ ├── meshery-ui_bug.md │ ├── meshery-ui_feature.md │ ├── mesheryctl_bug.md │ ├── mesheryctl_feature.md │ ├── models.md │ └── playground.md ├── PULL_REQUEST_TEMPLATE.md ├── actions │ └── comment-preview-on-pr │ │ ├── Dockerfile │ │ ├── action.yml │ │ └── app │ │ └── main.py ├── assets │ └── images │ │ ├── Meshery-celebration-Dark.svg │ │ ├── Meshery-celebration-Light.svg │ │ ├── buttons │ │ ├── community.png │ │ ├── landscape.png │ │ └── smps.png │ │ ├── clone.png │ │ ├── docker-hub │ │ └── meshery-extension-closeup.png │ │ ├── fork.png │ │ ├── git-signoff-vscode.png │ │ ├── hierarchical_relationship.png │ │ ├── image-hub │ │ └── layer5-image-hub.png │ │ ├── layer5 │ │ ├── 5-light-bg.png │ │ └── layer5-tag-white-bg.png │ │ ├── meshery │ │ ├── full logo │ │ │ ├── meshery-logo-dark-tex-shadow.png │ │ │ ├── meshery-logo-dark-text-shadow.svg │ │ │ ├── meshery-logo-dark-text-side.png │ │ │ ├── meshery-logo-dark-text-side.svg │ │ │ ├── meshery-logo-dark-text.png │ │ │ ├── meshery-logo-dark-text.svg │ │ │ ├── meshery-logo-light-text-pad.png │ │ │ ├── meshery-logo-light-text-pad.svg │ │ │ ├── meshery-logo-light-text-shadow.png │ │ │ ├── meshery-logo-light-text-shadow.svg │ │ │ ├── meshery-logo-light-text-side.png │ │ │ ├── meshery-logo-light-text-side.svg │ │ │ ├── meshery-logo-light-text.png │ │ │ ├── meshery-logo-light-text.svg │ │ │ ├── meshery-logo-shadow-light-white-text-side.png │ │ │ ├── meshery-logo-shadow-light-white-text-side.svg │ │ │ ├── meshery-logo-white-text-shadow.png │ │ │ ├── meshery-logo-white-text-shadow.svg │ │ │ ├── meshery-logo-white-text-side.png │ │ │ ├── meshery-logo-white-text-side.svg │ │ │ ├── meshery-logo-white-text.png │ │ │ └── meshery-logo-white-text.svg │ │ ├── icon-only │ │ │ ├── meshery-light-icon-shadow.png │ │ │ ├── meshery-light-icon-shadow.svg │ │ │ ├── meshery-light-icon.png │ │ │ ├── meshery-light-icon.svg │ │ │ ├── meshery-white-icon.png │ │ │ └── meshery-white-icon.svg │ │ ├── meshery-logo-dark-text-side.png │ │ ├── meshery-logo-dark-text-side.svg │ │ ├── meshery-logo-dark-text.png │ │ ├── meshery-logo-light-text-side.svg │ │ ├── meshery-logo-tag-light-text-side.png │ │ ├── meshery-logo.svg │ │ └── text-only │ │ │ ├── meshery-text-dark.png │ │ │ ├── meshery-text-dark.svg │ │ │ ├── meshery-text-white.png │ │ │ └── meshery-text-white.svg │ │ ├── mount_edge_relationship.png │ │ ├── network_policy_edge_relationship.png │ │ ├── readme │ │ ├── Layer5-MeshMentors.png │ │ ├── Meshery-Grafana-Charts.png │ │ ├── Meshery-client-architecture.svg │ │ ├── cloud-native-integrations.png │ │ ├── cncf-black.png │ │ ├── cncf-black.svg │ │ ├── cncf-horizontal-color.svg │ │ ├── cncf-white.png │ │ ├── cncf-white.svg │ │ ├── community.png │ │ ├── community.svg │ │ ├── deploying-linkerd-with-meshery.png │ │ ├── environments.gif │ │ ├── layer5-community-sign.png │ │ ├── meshery--integrations.png │ │ ├── meshery-logo-dark-text-side.svg │ │ ├── meshery-logo-dark-text.svg │ │ ├── meshery-logo-light-text-side.svg │ │ ├── meshery-logo-light-text.svg │ │ ├── meshery-policies-2.png │ │ ├── meshery-wasm.png │ │ ├── meshery_benchmark_screen.png │ │ ├── meshery_lifecycle_management.png │ │ ├── meshery_multi_mesh.png │ │ ├── mesheryctl.png │ │ ├── meshmap.gif │ │ ├── nginx.svg │ │ ├── opa-logo.svg │ │ ├── performance-metrics.gif │ │ ├── service mesh performance example.gif │ │ ├── service-mesh-performance-example.gif │ │ ├── slack.svg │ │ ├── smi-conformance-with-meshery.png │ │ ├── smp-dark-text.svg │ │ ├── smp-video-poster-play.png │ │ ├── thumbnail.png │ │ ├── traefik.svg │ │ ├── webassembly_logo.svg │ │ └── workspace.gif │ │ ├── sibling_relationship.png │ │ ├── site.png │ │ ├── slack.png │ │ ├── smp-dark-text.svg │ │ └── twitter.png ├── config.yml ├── dependabot.yml ├── label-commenter-config.yml ├── labeler.yml ├── release-drafter.yml ├── stale.yml └── workflows │ ├── build-and-deploy.yml │ ├── build-and-preview-site.yml │ ├── build-release.yml │ ├── comment-e2e-test.yml │ ├── eslint-gh.yml │ ├── first-time-contributor.yml │ ├── invitations.yml │ ├── kanvas.yml │ ├── label-commenter.yml │ ├── labeler.yml │ ├── notify-providers.yaml │ ├── osps-baseline.yml │ ├── preview-site.yml │ ├── release-drafter.yml │ ├── release-notes.yml │ └── slack.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .vscode └── settings.json ├── CNAME ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── GOVERNANCE.md ├── LICENSE ├── MAINTAINERS.md ├── Makefile ├── README.md ├── SECURITY.md ├── build ├── Makefile.core.mk └── Makefile.show-help.mk ├── script.sh └── site ├── .babelrc ├── .eslintignore ├── .eslintrc.js ├── gatsby-config.js ├── gatsby-node.js ├── gatsby-srr.js ├── package-lock.json ├── package.json └── src ├── assets ├── fonts │ └── qanelas-soft │ │ ├── QanelasSoftBlack.otf │ │ ├── QanelasSoftBlackItalic.otf │ │ ├── QanelasSoftBold.otf │ │ ├── QanelasSoftBoldItalic.otf │ │ ├── QanelasSoftExtraBold.otf │ │ ├── QanelasSoftExtraBoldItalic.otf │ │ ├── QanelasSoftHeavy.otf │ │ ├── QanelasSoftHeavyItalic.otf │ │ ├── QanelasSoftLight.otf │ │ ├── QanelasSoftLightItalic.otf │ │ ├── QanelasSoftMedium.otf │ │ ├── QanelasSoftMediumItalic.otf │ │ ├── QanelasSoftRegular.otf │ │ ├── QanelasSoftRegularItalic.otf │ │ ├── QanelasSoftSemiBold.otf │ │ ├── QanelasSoftSemiBoldItalic.otf │ │ ├── QanelasSoftThin.otf │ │ ├── QanelasSoftThinItalic.otf │ │ ├── QanelasSoftUltraLight.otf │ │ └── QanelasSoftUltraLightItalic.otf └── images │ ├── meshery-learn-logo-white.png │ ├── meshery-learn-logo.png │ ├── meshery-light-text.svg │ ├── meshery-logo-light-text-side.svg │ └── social-icons │ ├── calendar.png │ ├── docker.svg │ ├── github.svg │ ├── linkedin.png │ ├── slack.svg │ ├── twitter.svg │ └── youtube.svg ├── components ├── Footer │ ├── Footer.styles.js │ └── index.js ├── Navigation │ ├── CloudIcon.js │ ├── DefaultAvatar.js │ ├── KanvasIcon.js │ ├── LogoutIcon.js │ ├── Navigation.styles.js │ └── index.js ├── ShapeBuilder │ ├── index.js │ └── shapeBuilder.styles.js ├── Toggle.js ├── useDarkMode.js └── utils │ └── instructionsModal.js ├── fonts.css ├── pages └── index.js └── styles └── styles.js /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/ci.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🛠 Continuous Integration / DevOps 3 | about: Improve or update workflows or other automation 4 | title: '[CI]' 5 | labels: 'area/ci' 6 | assignees: '' 7 | --- 8 | ### Current Behavior 9 | 10 | 11 | ### Desired Behavior 12 | 13 | 14 | ### Implementation 15 | 16 | 17 | ### Acceptance Tests 18 | 19 | 20 | --- 21 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 22 | - 🛠 [Meshery Build & Release Strategy](https://docs.meshery.io/project/contributing/build-and-release) 23 | - 📚 [Instructions for contributing to documentation](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#documentation-contribution-flow) 24 | - Meshery documentation [site](https://docs.meshery.io/) and [source](https://github.com/meshery/meshery/tree/master/docs) 25 | - 🎨 Wireframes and designs for Meshery UI in [Figma](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) 26 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 27 | - 🧪 [Meshery Test Plan Spreadsheet](https://docs.google.com/spreadsheets/d/13Ir4gfaKoAX9r8qYjAFFl_U9ntke4X5ndREY1T7bnVs/edit#gid=0) 28 | 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: 🙋🏾🙋🏼‍Question 4 | url: https://meshery.io/community#community-forums 5 | about: Submit your question on the discussion forum. 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 📄 Documentation issue 3 | about: Issues related to documentation. 4 | title: '[Docs]' 5 | labels: 'area/docs, framework/jekyll, language/markdown' 6 | assignees: '' 7 | --- 8 | ### Current State 9 | 10 | 11 | ### Desired State 12 | 13 | 14 | --- 15 | 16 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 17 | - 📚 [Instructions for contributing to documentation](https://docs.meshery.io/project/contributing/contributing-docs) 18 | - Meshery documentation [site](https://docs.meshery.io/) and [source](https://github.com/meshery/meshery/tree/master/docs) 19 | - 🛠 [Meshery Build & Release Strategy](https://docs.meshery.io/project/contributing/build-and-release) 20 | - 🎨 Wireframes and [designs for Meshery UI](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) 21 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/fbug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🐛 General Bug Report 3 | about: Report an issue to help improve the project. 4 | title: '' 5 | labels: 'kind/bug' 6 | assignees: '' 7 | --- 8 | ### Current Behavior 9 | 10 | 11 | ### Expected Behavior 12 | 13 | 14 | ### Screenshots/Logs 15 | 16 | 17 | ### Environment 18 | 19 | - **Host OS:** Mac Linux Windows 20 | - **Platform:** Docker or Kubernetes 21 | - **Meshery Server Version:** stable-v 22 | - **Meshery Client Version:** stable-v 23 | 24 | 31 | 32 | --- 33 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 34 | - 🛠 [Meshery Build & Release Strategy](https://docs.meshery.io/project/contributing/build-and-release) 35 | - 📚 [Instructions for contributing to documentation](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#documentation-contribution-flow) 36 | - Meshery documentation [site](https://docs.meshery.io/) and [source](https://github.com/meshery/meshery/tree/master/docs) 37 | - 🎨 Wireframes and [designs for Meshery UI](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) 38 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 💡 General Feature Request 3 | about: Suggest an enhancement to Meshery. 4 | title: '' 5 | labels: 'kind/enhancement' 6 | assignees: '' 7 | --- 8 | ### Current Behavior 9 | 10 | 11 | ### Desired Behavior 12 | 13 | 14 | ### Implementation 15 | 16 | 17 | ### Acceptance Tests 18 | 19 | 20 | ### Mockups 21 | 22 | 23 | --- 24 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 25 | - 🛠 [Meshery Build & Release Strategy](https://docs.meshery.io/project/contributing/build-and-release) 26 | - 📚 [Instructions for contributing to documentation](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#documentation-contribution-flow) 27 | - Meshery documentation [site](https://docs.meshery.io/) and [source](https://github.com/meshery/meshery/tree/master/docs) 28 | - 🎨 Wireframes and designs for Meshery UI in [Figma](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) 29 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/meshery-extensions_bug.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: ⌨️ 🐛 Meshery Extensions Bug Report 3 | about: Report a bug in Meshery Extensions 4 | title: '[Extensions]' 5 | labels: kind/bug, component/extensions 6 | assignees: '' 7 | --- 8 | 9 | 10 | ### Current Behavior 11 | 12 | 13 | ### Desired Behavior 14 | 15 | 16 | ### Screenshots/Logs 17 | 18 | 19 | ### Environment 20 | 21 | - Host OS: Mac Linux Windows 22 | - Meshery Server Version: stable-v 23 | - Meshery Extension Version: stable-v 24 | - Meshery Client Version: stable-v 25 | - Platform: Docker Kubernetes 26 | 27 | --- 28 | 29 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 30 | - 📚 [Meshery Build and Release Strategy](https://docs.meshery.io/project/contributing/build-and-release) 31 | - 🎨 UI Design For Meshery Extensions [Figma](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) 32 | - 📚 [Meshery Extensibility Providers](https://docs.meshery.io/extensibility/providers) 33 | - ⌨️ [Meshery API Docs](https://docs.meshery.io/extensibility/api) 34 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 35 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/meshery-extensions_feature.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🖥 💡 Meshery Extensions Feature Request 3 | about: Request an enhancement in Meshery Extensions 4 | title: '[Extensions]' 5 | labels: kind/enhancement, component/extensions 6 | assignees: '' 7 | --- 8 | 9 | 10 | ### Current Behavior 11 | 12 | 13 | ### Desired Behavior 14 | 15 | 16 | ### Implementation 17 | 18 | 19 | ### Acceptance Tests 20 | 21 | 22 | ### Mockups 23 | 24 | 25 | --- 26 | 27 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 28 | - 📚 [Meshery Build and Release Strategy](https://docs.meshery.io/project/contributing/build-and-release) 29 | - 🎨 UI Design For Meshery Extensions [Figma](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) 30 | - 📚 [Meshery Extensibility Providers](https://docs.meshery.io/extensibility/providers) 31 | - ⌨️ [Meshery API Docs](https://docs.meshery.io/extensibility/api) 32 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/meshery-ui_bug.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🖥 🐛 Meshery UI Bug Report 3 | about: Report a bug in Meshery's UI 4 | title: '[UI]' 5 | labels: component/ui, language/javascript, framework/react, kind/bug 6 | assignees: '' 7 | --- 8 | 9 | ### Current Behavior 10 | 11 | 12 | ### Desired Behavior 13 | 14 | 15 | ### Screenshots/Logs 16 | 17 | 18 | ### Environment 19 | 20 | - Browser: Chrome Safari Firefox 21 | - Host OS: Mac Linux Windows 22 | - Meshery Server Version: stable-v 23 | - Platform: Docker Kubernetes 24 | 25 | --- 26 | 27 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 28 | 29 | - 🎨 Wireframes and [designs for Meshery UI](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) 30 | - 🖥 [Contributing to Meshery UI](https://docs.meshery.io/project/contributing/contributing-ui) 31 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 32 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/meshery-ui_feature.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🖥 💡 Meshery UI Feature Request 3 | about: Request an enhancement in Meshery's UI 4 | title: '[UI]' 5 | labels: component/ui, language/javascript, framework/react, kind/enhancement 6 | assignees: '' 7 | --- 8 | 9 | ### Current Behavior 10 | 11 | 12 | ### Desired Behavior 13 | 14 | 15 | ### Implementation 16 | 17 | 18 | ### Acceptance Tests 19 | 20 | 21 | ### Mockups 22 | 23 | 24 | --- 25 | 26 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 27 | 28 | - 🎨 Wireframes and [designs for Meshery UI](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) 29 | - 🖥 [Contributing to Meshery UI](https://docs.meshery.io/project/contributing/contributing-ui) 30 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/mesheryctl_bug.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: ⌨️ 🐛 mesheryctl Bug Report 3 | about: Report a bug in Meshery's CLI 4 | title: '[mesheryctl]' 5 | labels: component/mesheryctl, language/go, kind/bug 6 | assignees: '' 7 | --- 8 | 9 | 10 | _See [mesheryctl Command Tracker](https://bit.ly/3dqXy1q) for current status of commands._ 11 | 12 | ### Current Behavior 13 | 14 | 15 | ### Desired Behavior 16 | 17 | 18 | ### Screenshots/Logs 19 | 20 | 21 | ### Environment 22 | 23 | - Host OS: Mac Linux Windows 24 | - Meshery Server Version: stable-v 25 | - Meshery Client Version: stable-v 26 | - Platform: Docker Kubernetes 27 | 28 | --- 29 | 30 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 31 | - 📚 [mesheryctl Contributing Guide](https://github.com/meshery/meshery/blob/master/mesheryctl/README.md) 32 | - 📺 [Beginner's guide to contributing to Meshery and mesheryctl](https://youtu.be/hh_kFLZx3G4) 33 | - ⌨️ [mesheryctl Command Tracker](https://docs.google.com/spreadsheets/d/1q63sIGAuCnIeDs8PeM-0BAkNj8BBgPUXhLbe1Y-318o/edit#gid=0) 34 | - ⌨️ [Meshery CLI Commands and Documentation](https://docs.google.com/document/d/1xRlFpElRmybJ3WacgPKXgCSiQ2poJl3iCCV1dAalf0k/edit#heading=h.5fucij4hc5wt) 35 | - ⌨️ [Meshkit errors Guide](https://docs.meshery.io/project/contributing/contributing-error) 36 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 37 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/mesheryctl_feature.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: ⌨️ 💡 mesheryctl Feature Request 3 | about: Request an enhancement in Meshery's CLI 4 | title: '[mesheryctl]' 5 | labels: component/mesheryctl, language/go, kind/enhancement 6 | assignees: '' 7 | --- 8 | 9 | 10 | _See [mesheryctl Command Tracker](https://bit.ly/3dqXy1q) for current status of commands._ 11 | 12 | ### Current Behavior 13 | 14 | 15 | ### Desired Behavior 16 | 17 | 18 | ### Implementation 19 | 20 | 21 | ### Acceptance Tests 22 | 23 | 24 | ### Mockups 25 | 26 | 27 | --- 28 | 29 | ### Contributor Resources 30 | 31 | - ⌨️ [mesheryctl Contributing Guide](https://github.com/meshery/meshery/blob/master/mesheryctl/README.md) 32 | - [Beginner's guide to contributing to Meshery and mesheryctl](https://youtu.be/hh_kFLZx3G4) 33 | - [mesheryctl Command Tracker](https://docs.google.com/spreadsheets/d/1q63sIGAuCnIeDs8PeM-0BAkNj8BBgPUXhLbe1Y-318o/edit#gid=0) 34 | - [Meshery CLI Commands and Documentation](https://docs.google.com/document/d/1xRlFpElRmybJ3WacgPKXgCSiQ2poJl3iCCV1dAalf0k/edit#heading=h.5fucij4hc5wt) 35 | - ⌨️ [Meshkit errors guide](https://docs.meshery.io/project/contributing/contributing-error) 36 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 37 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/models.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🖥 💡 Models Update 3 | about: An update, addition, or removal of one or more of the models, components, relationships, workflows, or policies within Meshery Models. 4 | title: '[Models] ' 5 | labels: 6 | - area/models 7 | - area/devops 8 | assignees: '' 9 | --- 10 | ### Current Situation 11 | 12 | 13 | ### Proposed Change 14 | 15 | 16 | --- 17 | 18 | ### General Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 19 | 20 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 21 | 22 | ### Understanding Meshery Models 23 | 24 | - 📚 [Models](https://docs.meshery.io/concepts/logical/models) 25 | - 📚 [Components](https://docs.meshery.io/concepts/logical/components) 26 | - 📚 [Relationships](https://docs.meshery.io/concepts/logical/components) 27 | - 👨‍💻[Models Repository](https://github.com/meshery/meshery/tree/master/server/meshmodel) 28 | 29 | ### Contributing to Meshery Models 30 | - [Contributing Models](https://docs.meshery.io/project/contributing/contributing-models) 31 | - [Contributing Components](https://docs.meshery.io/project/contributing/contributing-components) 32 | - [Contributing Relationships](https://docs.meshery.io/project/contributing/contributing-relationships) 33 | 34 | 37 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/playground.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 💡 Playground Feedback 3 | about: Offer feedback on the cloud native playground 4 | title: '' 5 | labels: 'playground' 6 | assignees: '' 7 | --- 8 | ### What I don't like about the Playground 9 | 10 | 11 | ### What I like about the Playground 12 | 13 | 14 | 15 | --- 16 | ### Contributor [Guides](https://docs.meshery.io/project/contributing) and [Handbook](https://layer5.io/community/handbook) 17 | - 🛠 [Meshery Build & Release Strategy](https://docs.meshery.io/project/contributing/build-and-release) 18 | - 📚 [Instructions for contributing to documentation](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#documentation-contribution-flow) 19 | - Meshery documentation [site](https://docs.meshery.io/) and [source](https://github.com/meshery/meshery/tree/master/docs) 20 | - 🎨 Wireframes and designs for Meshery UI in [Figma](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI) 21 | - 🙋🏾🙋🏼 Questions: [Discussion Forum](https://meshery.io/community#community-forums) and [Community Slack](https://slack.meshery.io) 22 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | **Notes for Reviewers** 2 | 3 | - This PR fixes # 4 | 5 | **[Signed commits](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#signing-off-on-commits-developer-certificate-of-origin)** 6 | - [ ] Yes, I signed my commits. 7 | 8 | 21 | -------------------------------------------------------------------------------- /.github/actions/comment-preview-on-pr/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.7 2 | 3 | RUN pip install httpx "pydantic==1.5.1" pygithub 4 | 5 | COPY ./app /app 6 | 7 | CMD ["python", "/app/main.py"] -------------------------------------------------------------------------------- /.github/actions/comment-preview-on-pr/action.yml: -------------------------------------------------------------------------------- 1 | name: Comment Preview in PR 2 | description: Comment the preview URL in the PR 3 | author: Sebastián Ramírez 4 | inputs: 5 | token: 6 | description: Token for the repo. Can be passed in using {{ secrets.GITHUB_TOKEN }} 7 | required: true 8 | deploy_url: 9 | description: The deployment URL to comment in the PR 10 | required: true 11 | runs: 12 | using: docker 13 | image: Dockerfile 14 | -------------------------------------------------------------------------------- /.github/actions/comment-preview-on-pr/app/main.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import sys 3 | from pathlib import Path 4 | from typing import Optional 5 | 6 | import httpx 7 | from github import Github 8 | from github.PullRequest import PullRequest 9 | from pydantic import BaseModel, BaseSettings, SecretStr, ValidationError 10 | 11 | github_api = "https://api.github.com" 12 | 13 | 14 | class Settings(BaseSettings): 15 | github_repository: str 16 | github_event_path: Path 17 | github_event_name: Optional[str] = None 18 | input_token: SecretStr 19 | input_deploy_url: str 20 | 21 | 22 | class PartialGithubEventHeadCommit(BaseModel): 23 | id: str 24 | 25 | 26 | class PartialGithubEventWorkflowRun(BaseModel): 27 | head_commit: PartialGithubEventHeadCommit 28 | 29 | 30 | class PartialGithubEvent(BaseModel): 31 | workflow_run: PartialGithubEventWorkflowRun 32 | 33 | 34 | if __name__ == "__main__": 35 | logging.basicConfig(level=logging.INFO) 36 | settings = Settings() 37 | logging.info(f"Using config: {settings.json()}") 38 | g = Github(settings.input_token.get_secret_value()) 39 | repo = g.get_repo(settings.github_repository) 40 | try: 41 | event = PartialGithubEvent.parse_file(settings.github_event_path) 42 | except ValidationError as e: 43 | logging.error(f"Error parsing event file: {e.errors()}") 44 | sys.exit(0) 45 | use_pr: Optional[PullRequest] = None 46 | for pr in repo.get_pulls(): 47 | if pr.head.sha == event.workflow_run.head_commit.id: 48 | use_pr = pr 49 | break 50 | if not use_pr: 51 | logging.error( 52 | f"No PR found for hash: {event.workflow_run.head_commit.id}" 53 | ) 54 | sys.exit(0) 55 | github_headers = { 56 | "Authorization": f"token {settings.input_token.get_secret_value()}" 57 | } 58 | url = f"{github_api}/repos/{settings.github_repository}/issues/{use_pr.number}/comments" 59 | logging.info(f"Using comments URL: {url}") 60 | response = httpx.post( 61 | url, 62 | headers=github_headers, 63 | json={ 64 | "body": f"🚀 Preview for commit {use_pr.head.sha} at: {settings.input_deploy_url}" 65 | }, 66 | ) 67 | if not (200 <= response.status_code <= 300): 68 | logging.error(f"Error posting comment: {response.text}") 69 | sys.exit(1) 70 | logging.info("Finished") -------------------------------------------------------------------------------- /.github/assets/images/buttons/community.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/buttons/community.png -------------------------------------------------------------------------------- /.github/assets/images/buttons/landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/buttons/landscape.png -------------------------------------------------------------------------------- /.github/assets/images/buttons/smps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/buttons/smps.png -------------------------------------------------------------------------------- /.github/assets/images/clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/clone.png -------------------------------------------------------------------------------- /.github/assets/images/docker-hub/meshery-extension-closeup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/docker-hub/meshery-extension-closeup.png -------------------------------------------------------------------------------- /.github/assets/images/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/fork.png -------------------------------------------------------------------------------- /.github/assets/images/git-signoff-vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/git-signoff-vscode.png -------------------------------------------------------------------------------- /.github/assets/images/hierarchical_relationship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/hierarchical_relationship.png -------------------------------------------------------------------------------- /.github/assets/images/image-hub/layer5-image-hub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/image-hub/layer5-image-hub.png -------------------------------------------------------------------------------- /.github/assets/images/layer5/5-light-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/layer5/5-light-bg.png -------------------------------------------------------------------------------- /.github/assets/images/layer5/layer5-tag-white-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/layer5/layer5-tag-white-bg.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-dark-tex-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-dark-tex-shadow.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-dark-text-side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-dark-text-side.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-dark-text-side.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-dark-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-dark-text.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-dark-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-light-text-pad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-light-text-pad.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-light-text-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-light-text-shadow.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-light-text-side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-light-text-side.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-light-text-side.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-light-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-light-text.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-light-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-shadow-light-white-text-side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-shadow-light-white-text-side.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-white-text-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-white-text-shadow.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-white-text-side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-white-text-side.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-white-text-side.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-white-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/full logo/meshery-logo-white-text.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/full logo/meshery-logo-white-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/icon-only/meshery-light-icon-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/icon-only/meshery-light-icon-shadow.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/icon-only/meshery-light-icon-shadow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/icon-only/meshery-light-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/icon-only/meshery-light-icon.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/icon-only/meshery-light-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/icon-only/meshery-white-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/icon-only/meshery-white-icon.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/icon-only/meshery-white-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/meshery-logo-dark-text-side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/meshery-logo-dark-text-side.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/meshery-logo-dark-text-side.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/meshery-logo-dark-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/meshery-logo-dark-text.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/meshery-logo-light-text-side.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/meshery-logo-tag-light-text-side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/meshery-logo-tag-light-text-side.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/meshery-logo.svg: -------------------------------------------------------------------------------- 1 | meshery-logo -------------------------------------------------------------------------------- /.github/assets/images/meshery/text-only/meshery-text-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/text-only/meshery-text-dark.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/text-only/meshery-text-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.github/assets/images/meshery/text-only/meshery-text-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/meshery/text-only/meshery-text-white.png -------------------------------------------------------------------------------- /.github/assets/images/meshery/text-only/meshery-text-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.github/assets/images/mount_edge_relationship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/mount_edge_relationship.png -------------------------------------------------------------------------------- /.github/assets/images/network_policy_edge_relationship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/network_policy_edge_relationship.png -------------------------------------------------------------------------------- /.github/assets/images/readme/Layer5-MeshMentors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/Layer5-MeshMentors.png -------------------------------------------------------------------------------- /.github/assets/images/readme/Meshery-Grafana-Charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/Meshery-Grafana-Charts.png -------------------------------------------------------------------------------- /.github/assets/images/readme/cloud-native-integrations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/cloud-native-integrations.png -------------------------------------------------------------------------------- /.github/assets/images/readme/cncf-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/cncf-black.png -------------------------------------------------------------------------------- /.github/assets/images/readme/cncf-horizontal-color.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/assets/images/readme/cncf-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/cncf-white.png -------------------------------------------------------------------------------- /.github/assets/images/readme/community.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/community.png -------------------------------------------------------------------------------- /.github/assets/images/readme/community.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/assets/images/readme/deploying-linkerd-with-meshery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/deploying-linkerd-with-meshery.png -------------------------------------------------------------------------------- /.github/assets/images/readme/environments.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/environments.gif -------------------------------------------------------------------------------- /.github/assets/images/readme/layer5-community-sign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/layer5-community-sign.png -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery--integrations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/meshery--integrations.png -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery-logo-dark-text-side.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery-logo-dark-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery-logo-light-text-side.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery-logo-light-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery-policies-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/meshery-policies-2.png -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery-wasm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/meshery-wasm.png -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery_benchmark_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/meshery_benchmark_screen.png -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery_lifecycle_management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/meshery_lifecycle_management.png -------------------------------------------------------------------------------- /.github/assets/images/readme/meshery_multi_mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/meshery_multi_mesh.png -------------------------------------------------------------------------------- /.github/assets/images/readme/mesheryctl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/mesheryctl.png -------------------------------------------------------------------------------- /.github/assets/images/readme/meshmap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/meshmap.gif -------------------------------------------------------------------------------- /.github/assets/images/readme/nginx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/assets/images/readme/performance-metrics.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/performance-metrics.gif -------------------------------------------------------------------------------- /.github/assets/images/readme/service mesh performance example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/service mesh performance example.gif -------------------------------------------------------------------------------- /.github/assets/images/readme/service-mesh-performance-example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/service-mesh-performance-example.gif -------------------------------------------------------------------------------- /.github/assets/images/readme/slack.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.github/assets/images/readme/smi-conformance-with-meshery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/smi-conformance-with-meshery.png -------------------------------------------------------------------------------- /.github/assets/images/readme/smp-dark-text.svg: -------------------------------------------------------------------------------- 1 | smp-dark-text -------------------------------------------------------------------------------- /.github/assets/images/readme/smp-video-poster-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/smp-video-poster-play.png -------------------------------------------------------------------------------- /.github/assets/images/readme/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/thumbnail.png -------------------------------------------------------------------------------- /.github/assets/images/readme/webassembly_logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/assets/images/readme/workspace.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/readme/workspace.gif -------------------------------------------------------------------------------- /.github/assets/images/sibling_relationship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/sibling_relationship.png -------------------------------------------------------------------------------- /.github/assets/images/site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/site.png -------------------------------------------------------------------------------- /.github/assets/images/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/slack.png -------------------------------------------------------------------------------- /.github/assets/images/smp-dark-text.svg: -------------------------------------------------------------------------------- 1 | smp-dark-text -------------------------------------------------------------------------------- /.github/assets/images/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/.github/assets/images/twitter.png -------------------------------------------------------------------------------- /.github/config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | #------------------------------------------------------------------------------- 3 | # Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome 4 | # Comment to be posted to on first time issues 5 | newIssueWelcomeComment: > 6 | Thanks for opening this issue. A contributor will be by to give feedback soon. In the meantime, please review the [Contributors' Welcome Guide](https://docs.meshery.io/project/community), engage in the [discussion forum](https://meshery.io/community#community-forums), and be sure to join the [community Slack](http://slack.meshery.io/). 7 | # Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome 8 | # Comment to be posted to on PRs from first time contributors in your repository 9 | newPRWelcomeComment: > 10 | Yay, your first pull request! :thumbsup: A contributor will be by to give feedback soon. In the meantime, you can find updates in the [#github-notifications](https://mesheryio.slack.com/archives/CLVT4TSG4) channel in the [community Slack](https://slack.meshery.io). 11 | 12 | Be sure to double-check that you have signed your commits. Here are instructions for [making signing an implicit activity while performing a commit](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#signing-off-on-commits-developer-certificate-of-origin). 13 | 14 | #------------------------------------------------------------------------------- 15 | # Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge 16 | # Comment to be posted to on pull requests merged by a first time user 17 | firstPRMergeComment: > 18 | Thanks for your contribution to Meshery! :tada: 19 | 20 | 21 | 22 | 23 | Meshery Logo 24 | 25 | 26 |         [Join the community](http://slack.meshery.io), if you haven't yet and please leave a :star: [star on the project](../stargazers). :smile: 27 | 28 | #------------------------------------------------------------------------------- 29 | # Configuration for request-info - https://github.com/behaviorbot/request-info 30 | # Comment to reply with 31 | requestInfoReplyComment: > 32 | Thanks for opening this issue. We welcome all input! If you could provide a little more information, this will greatly aide in its resolution. :thumbsup: 33 | # *OPTIONAL* Add a list of people whose Issues/PRs will not be commented on 34 | # keys must be GitHub usernames 35 | #requestInfoUserstoExclude: 36 | # - meshery/maintainers 37 | 38 | #------------------------------------------------------------------------------- 39 | # Configuration for sentiment-bot - https://github.com/behaviorbot/sentiment-bot 40 | # *Required* toxicity threshold between 0 and .99 with the higher numbers being the most toxic 41 | # Anything higher than this threshold will be marked as toxic and commented on 42 | sentimentBotToxicityThreshold: .9 43 | 44 | # *Required* Comment to reply with 45 | sentimentBotReplyComment: > 46 | Please be sure to review the code of conduct and be respectful of other users. // @meshery/maintainers 47 | 48 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: gomod 4 | directory: "/" 5 | schedule: 6 | interval: monthly 7 | open-pull-requests-limit: 5 8 | labels: 9 | - pr/dependencies 10 | - kind/chore 11 | - language/go 12 | ignore: 13 | - dependency-name: k8s.io/api 14 | versions: 15 | - ">= 0.20.a" 16 | - "< 0.21" 17 | - dependency-name: k8s.io/apimachinery 18 | versions: 19 | - ">= 0.20.a" 20 | - "< 0.21" 21 | - dependency-name: k8s.io/client-go 22 | versions: 23 | - ">= 0.20.a" 24 | - "< 0.21" 25 | - package-ecosystem: npm 26 | directory: "/ui" 27 | schedule: 28 | interval: monthly 29 | open-pull-requests-limit: 5 30 | labels: 31 | - kind/chore 32 | - pr/dependencies 33 | ignore: 34 | - dependency-name: "@material-ui/core" 35 | versions: 36 | - "> 4.9.13" 37 | - "< 5" 38 | - dependency-name: next 39 | versions: 40 | - "> 10.0.1" 41 | - "< 10.1" 42 | - dependency-name: next-redux-wrapper 43 | versions: 44 | - ">= 6.a" 45 | - "< 7" 46 | - dependency-name: react-select 47 | versions: 48 | - ">= 3.1.a" 49 | - "< 3.2" 50 | - package-ecosystem: npm 51 | directory: "/provider-ui" 52 | schedule: 53 | interval: monthly 54 | open-pull-requests-limit: 5 55 | labels: 56 | - kind/chore 57 | - pr/dependencies 58 | -------------------------------------------------------------------------------- /.github/labeler.yml: -------------------------------------------------------------------------------- 1 | area/docs: 2 | - changed-files: 3 | - any-glob-to-any-file: 4 | - "docs/**/*" 5 | area/ci: 6 | - changed-files: 7 | - any-glob-to-any-file: 8 | - ".github/**/*" 9 | component/ui: 10 | - changed-files: 11 | - any-glob-to-any-file: 12 | - "ui/**/*" 13 | - "provider-ui/**/*" 14 | component/server: 15 | - changed-files: 16 | - any-glob-to-any-file: 17 | - "server/**/*" 18 | area/models: 19 | - changed-files: 20 | - any-glob-to-any-file: 21 | - "server/meshmodel/**/*" 22 | component/mesheryctl: 23 | - changed-files: 24 | - any-glob-to-any-file: 25 | - "mesheryctl/**/*" 26 | component/extensions: 27 | - changed-files: 28 | - any-glob-to-any-file: 29 | - "install/docker-extension/**/*" 30 | - "ui/components/ExtensionSandbox.js" 31 | - "ui/remote-component.config.js" 32 | area/lifecycle: 33 | - changed-files: 34 | - any-glob-to-any-file: 35 | - "install/*" 36 | kubernetes: 37 | - changed-files: 38 | - any-glob-to-any-file: 39 | - "install/deployment_yamls/*" 40 | - "install/kubernetes/**/*" 41 | framework/helm: 42 | - changed-files: 43 | - any-glob-to-any-file: 44 | - "install/kubernetes/helm/**/*" 45 | framework/graphql: 46 | - changed-files: 47 | - any-glob-to-any-file: 48 | - "server/internal/graphql/*" 49 | component/database: 50 | - changed-files: 51 | - any-glob-to-any-file: 52 | - "server/internal/sql/*" 53 | playground: 54 | - changed-files: 55 | - any-glob-to-any-file: 56 | - "install/playground/**/*" 57 | opa: 58 | - changed-files: 59 | - any-glob-to-any-file: 60 | - "*.rego" 61 | tests: 62 | - changed-files: 63 | - any-glob-to-any-file: 64 | - "ui/tests/**/*" -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name-template: 'Meshery v$NEXT_PATCH_VERSION' 2 | tag-template: 'v$NEXT_PATCH_VERSION' 3 | categories: 4 | - title: '🚀 Features' 5 | labels: 6 | - 'kind/feature' 7 | - 'kind/enhancement' 8 | - title: '⌨️ Meshery CLI' 9 | labels: 10 | - 'component/mesheryctl' 11 | - title: '🖥 Meshery UI' 12 | labels: 13 | - 'component/ui' 14 | - title: '🔋 Patterns, Filters, Applications' 15 | labels: 16 | - 'component/patterns' 17 | - 'component/applications' 18 | - 'component/filters' 19 | - title: '🐛 Bug Fixes' 20 | labels: 21 | - 'kind/fix' 22 | - 'kind/bugfix' 23 | - 'kind/bug' 24 | - title: '🧰 Maintenance' 25 | labels: 26 | - 'kind/chore' 27 | - 'area/ci' 28 | - 'area/tests' 29 | - title: 📖 Documentation 30 | label: area/docs 31 | - title: 🔒 Security 32 | label: security 33 | change-template: '- $TITLE @$AUTHOR (#$NUMBER)' 34 | template: | 35 | ## What's New 36 | ## 🔤 General 37 | $CHANGES 38 | 39 | ## 👨🏽‍💻 Contributors 40 | 41 | Thank you to our contributors for making this release possible: 42 | $CONTRIBUTORS 43 | autolabeler: 44 | - label: 'area/docs' 45 | branch: 46 | - '/docs/' 47 | - label: 'area/ci' 48 | branch: 49 | - '/.github/' 50 | - label: 'component/ui' 51 | branch: 52 | - '/ui/' 53 | - '/provider-ui/' 54 | - label: 'component/mesheryctl' 55 | branch: 56 | - '/mesheryctl/' 57 | - label: 'area/lifecycle' 58 | branch: 59 | - '/install/' 60 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 40 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 10 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - issue/willfix 8 | # Label to use when marking an issue as stale 9 | staleLabel: issue/stale 10 | # Comment to post when marking an issue as stale. Set to `false` to disable 11 | markComment: > 12 | This issue has been automatically marked as stale because it has not had 13 | recent activity. It will be closed if no further activity occurs. Thank you 14 | for your contributions. 15 | # Comment to post when closing a stale issue. Set to `false` to disable 16 | closeComment: > 17 | This issue is being automatically closed due to inactivity. 18 | However, you may choose to reopen this issue. 19 | -------------------------------------------------------------------------------- /.github/workflows/build-and-deploy.yml: -------------------------------------------------------------------------------- 1 | name: Build and Deploy Site 2 | on: 3 | push: 4 | branches: [master] 5 | workflow_dispatch: 6 | workflow_call: 7 | 8 | jobs: 9 | build-and-deploy: 10 | permissions: 11 | contents: write 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout 🛎️ 15 | uses: actions/checkout@master 16 | with: 17 | fetch-depth: 1 18 | 19 | - name: Install and Build 🔧 20 | run: | 21 | make setup 22 | make build 23 | 24 | - name: Deploy 🚀 25 | uses: JamesIves/github-pages-deploy-action@v4.7.3 26 | with: 27 | branch: site # The branch the action should deploy to. 28 | folder: site/public # The folder the action should deploy. 29 | clean: true -------------------------------------------------------------------------------- /.github/workflows/build-and-preview-site.yml: -------------------------------------------------------------------------------- 1 | name: Build and Preview Site 2 | on: 3 | pull_request: 4 | branches: [master] 5 | types: [opened, synchronize, reopened] 6 | 7 | jobs: 8 | site-preview: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Checkout 🛎️ 12 | uses: actions/checkout@master 13 | with: 14 | persist-credentials: false 15 | fetch-depth: 1 16 | 17 | - name: Install and Build 🔧 18 | run: | 19 | make setup 20 | make build 21 | 22 | - name: Zip Site 23 | run: bash ./script.sh 24 | 25 | - name: Upload files 26 | uses: actions/upload-artifact@master 27 | with: 28 | name: public-dir 29 | path: ./public-dir.zip 30 | retention-days: 1 31 | - name: Trigger Inner workflow 32 | run: echo "triggering inner workflow" -------------------------------------------------------------------------------- /.github/workflows/build-release.yml: -------------------------------------------------------------------------------- 1 | name: Notify Meshery Extensions channel build 2 | on: 3 | workflow_dispatch: 4 | # push: 5 | # tags: 6 | # - 'v*' 7 | jobs: 8 | notfiy-build: 9 | name: Notify providers for Meshery Extensions channel build 10 | if: github.repository == 'meshery-extensions/shape-builder' 11 | runs-on: ubuntu-24.04 12 | steps: 13 | - name: trigger plugins for edge 14 | uses: layer5io/trigger-remote-provider-action@master 15 | with: 16 | name: "Build and Rollout Kanvas" 17 | repo: layer5labs/meshery-extensions-packages 18 | token: ${{ secrets.GH_ACCESS_TOKEN }} 19 | -------------------------------------------------------------------------------- /.github/workflows/comment-e2e-test.yml: -------------------------------------------------------------------------------- 1 | name: E2E Report on Pull Request Comment 2 | on: 3 | workflow_run: 4 | workflows: ['Meshery UI and Server'] 5 | types: [completed] 6 | 7 | permissions: 8 | issues: write 9 | contents: read 10 | pull-requests: write 11 | 12 | jobs: 13 | e2e-test-reporter: 14 | if: github.repository == 'meshery-extensions/shape-builder' 15 | runs-on: ubuntu-24.04 16 | steps: 17 | - name: Download e2e test report artifact 18 | uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 19 | with: 20 | name: e2e-test-reporter 21 | github-token: ${{ secrets.GH_ACCESS_TOKEN }} 22 | run-id: ${{ github.event.workflow_run.id }} 23 | - name: Retrieve PR Number 24 | run: | 25 | echo "PULL_REQUEST=$(cat ./pr/number)" >> $GITHUB_OUTPUT 26 | id: pr 27 | - name: Find Comment 28 | uses: peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e # v3.1.0 29 | id: fc 30 | with: 31 | issue-number: ${{ steps.pr.outputs.PULL_REQUEST }} 32 | comment-author: 'github-actions[bot]' 33 | body-includes: END-TO-END TESTS 34 | - name: Delete Previous Comment 35 | if: steps.fc.outputs.comment-id != '' 36 | uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 37 | with: 38 | script: | 39 | github.rest.issues.deleteComment({ 40 | owner: context.repo.owner, 41 | repo: context.repo.repo, 42 | comment_id: ${{ steps.fc.outputs.comment-id }} 43 | }) 44 | - name: Comment on staging url 45 | if: ${{ !cancelled() }} 46 | uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 47 | with: 48 | script: | 49 | const fs = require('fs') 50 | const PRNumber = Number(fs.readFileSync('./pr/number')) 51 | const E2ETestReporter = String(fs.readFileSync('./ui/test-report.md')) 52 | 53 | await github.rest.issues.createComment({ 54 | owner: context.repo.owner, 55 | repo: context.repo.repo, 56 | issue_number: PRNumber, 57 | body: E2ETestReporter 58 | }) -------------------------------------------------------------------------------- /.github/workflows/eslint-gh.yml: -------------------------------------------------------------------------------- 1 | name: eslint-check 2 | on: 3 | pull_request: 4 | paths-ignore: 5 | - 'docs/**' 6 | - '*.md' 7 | jobs: 8 | eslint: 9 | name: runner / eslint 10 | runs-on: ubuntu-24.04 11 | steps: 12 | - uses: actions/checkout@v4 13 | - name: Run eslint 14 | run: cd site && npm install && NODE_ENV=test npx eslint . 15 | -------------------------------------------------------------------------------- /.github/workflows/first-time-contributor.yml: -------------------------------------------------------------------------------- 1 | name: First Time Contributor 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | welcome: 10 | runs-on: ubuntu-24.04 # Specify the environment for the job 11 | if: ${{ 12 | github.repository == 'meshery/meshery' && 13 | github.event.action == 'opened' && 14 | github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' && 15 | github.event.pull_request.author_association != 'COLLABORATOR' && 16 | github.event.pull_request.author_association != 'CONTRIBUTOR' && 17 | github.event.pull_request.author_association != 'MANNEQUIN' && 18 | github.event.pull_request.author_association != 'MEMBER' && 19 | github.event.pull_request.author_association != 'OWNER' 20 | }} 21 | steps: 22 | - name: Leave Welcome Comment 23 | uses: actions/github-script@v6 24 | with: 25 | github-token: ${{ secrets.GH_ACCESS_TOKEN }} 26 | script: | 27 | const message = `Welcome, @${{ github.event.pull_request.user.login }}! Thank you for your first contribution! 🎉 A contributor will be by to give feedback soon. In the meantime, please review the [Newcomers' Guide](https://layer5.io/community/newcomers) and be sure to join the [community Slack](https://slack.meshery.io/). 28 |

29 | 30 |

31 | Be sure to double-check that you have signed your commits. 32 | Here are instructions for [making signing an implicit activity while performing a commit](https://docs.meshery.io/project/contributing#general-contribution-flow).`; 33 | await github.rest.issues.createComment({ 34 | issue_number: context.issue.number, 35 | owner: context.repo.owner, 36 | repo: context.repo.repo, 37 | body: message 38 | }); 39 | - name: Label Pull Request (Optional) 40 | uses: actions/github-script@v6 41 | with: 42 | github-token: ${{ secrets.GH_ACCESS_TOKEN }} 43 | script: | 44 | await github.rest.issues.addLabels({ 45 | issue_number: context.issue.number, 46 | owner: context.repo.owner, 47 | repo: context.repo.repo, 48 | labels: ['first-time-contributor'] 49 | }); 50 | 51 | -------------------------------------------------------------------------------- /.github/workflows/invitations.yml: -------------------------------------------------------------------------------- 1 | name: Invite User to GH Org 2 | on: 3 | issues: 4 | types: [labeled] 5 | 6 | jobs: 7 | automate_invite: 8 | if: contains(github.event.issue.labels.*.name, 'issue/invite') && github.repository == 'meshery/' 9 | runs-on: ubuntu-24.04 10 | steps: 11 | - name: Invite on label 12 | uses: vj-abigo/invite-on-label@v1.2 13 | with: 14 | organization: layer5io 15 | label: issue/invite 16 | repo-token: ${{ secrets.GITHUB_TOKEN }} 17 | comment: "We are sending you an invitation to join the Layer5 GitHub Organization. :partying_face: Welcome to the community! 🎉

   Be sure to :star: [star the projects](../stargazers), if you haven't already.
" 18 | env: 19 | INVITE_TOKEN: ${{ secrets.RELEASE_NOTES_PAT }} 20 | 21 | - name: View context attributes 22 | uses: actions/github-script@v4 23 | id: set-url 24 | with: 25 | script: | 26 | const url = context.issue.url 27 | return url 28 | result-encoding: string 29 | 30 | - name: Get url 31 | run: | 32 | echo "URL=${{steps.set-url.outputs.result}}" >> $GITHUB_ENV 33 | echo "ISSUE=${{steps.set-url.outputs.url}}" >> $GITHUB_ENV 34 | 35 | - name: Notify slack 36 | env: 37 | SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} 38 | uses: pullreminders/slack-action@master 39 | with: 40 | args: '{\"channel\":\"CF9RK4H89\",\"text\":\"An invitation to join the layer5io GitHub org has been sent\"}' 41 | # to the author of: ${{env.URL}}\"}' 42 | -------------------------------------------------------------------------------- /.github/workflows/kanvas.yml: -------------------------------------------------------------------------------- 1 | name: Kanvas Screenshot Service 2 | 'on': 3 | workflow_dispatch: 4 | inputs: 5 | contentID: 6 | description: ID of the design to render. 7 | required: true 8 | type: string 9 | assetLocation: 10 | required: true 11 | type: string 12 | description: Remote location where the generated asset (screenshot) for the design will be stored. 13 | email: 14 | required: false 15 | type: string 16 | description: Optional email address to receive the snapshot. 17 | workflow_call: 18 | inputs: 19 | fileName: 20 | description: Relative file path from the root directory 21 | required: true 22 | type: string 23 | outputs: 24 | resource_url: 25 | description: The URL of the generated resource. 26 | value: ${{ jobs.KanvasScreenshot.outputs.resource_url }} 27 | permissions: 28 | actions: read 29 | contents: write 30 | security-events: write 31 | statuses: write 32 | pull-requests: write 33 | id-token: write 34 | jobs: 35 | KanvasScreenshot: 36 | runs-on: ubuntu-24.04 37 | outputs: 38 | resource_url: ${{ steps.test_result.outputs.resource_url }} 39 | steps: 40 | - name: Set PR number 41 | run: | 42 | export pull_number=$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH") 43 | echo "PULL_NO=$pull_number" >> $GITHUB_ENV 44 | - uses: actions/checkout@v4 45 | - uses: actions/checkout@v4 46 | with: 47 | path: action 48 | repository: layer5labs/kanvas-snapshot 49 | - id: test_result 50 | uses: layer5labs/kanvas-snapshot@v0.2.33 51 | with: 52 | githubToken: ${{ secrets.GITHUB_TOKEN }} # github's personal access token example: "ghp_...." 53 | mesheryToken: ${{ secrets.MESHERY_TOKEN }} # Meshery Cloud Authentication token, signin to meshery-cloud to get one, example: ey..... 54 | prNumber: ${{ env.PULL_NO }} # auto-filled from the above step 55 | application_type: "Design" # your application type, could be any of three: "Kubernetes Manifest", "Docker Compose", "Helm Chart" 56 | skipComment: true 57 | designID: ${{ inputs.contentID }} # relative file-path from the root directory in the github-runner env, you might require to checkout the repository as described in step 2 58 | assetLocation: ${{ inputs.assetLocation }} 59 | email: ${{ inputs.email }} -------------------------------------------------------------------------------- /.github/workflows/label-commenter.yml: -------------------------------------------------------------------------------- 1 | name: Label Commenter 2 | 3 | on: 4 | issues: 5 | types: 6 | - labeled 7 | 8 | pull_request_target: 9 | types: 10 | - labeled 11 | 12 | permissions: 13 | contents: read 14 | issues: write 15 | pull-requests: write 16 | 17 | jobs: 18 | comment: 19 | runs-on: ubuntu-24.04 20 | steps: 21 | - name: Checkout repo 🛎️ 22 | uses: actions/checkout@master 23 | with: 24 | ref: master # Set your default branch 25 | env: 26 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 27 | - name: Label Commenter 28 | uses: peaceiris/actions-label-commenter@v1.10.0 29 | 30 | -------------------------------------------------------------------------------- /.github/workflows/labeler.yml: -------------------------------------------------------------------------------- 1 | name: "Pull Request Labeler" 2 | on: 3 | - pull_request_target 4 | 5 | jobs: 6 | triage: 7 | permissions: 8 | contents: read 9 | pull-requests: write 10 | runs-on: ubuntu-24.04 11 | steps: 12 | - uses: actions/labeler@v5 13 | with: 14 | repo-token: "${{ secrets.GITHUB_TOKEN }}" 15 | -------------------------------------------------------------------------------- /.github/workflows/notify-providers.yaml: -------------------------------------------------------------------------------- 1 | name: Notify Remote Providers 2 | on: 3 | push: 4 | # branches: 5 | # - 'master' 6 | tags: 7 | - 'v*' 8 | paths-ignore: 9 | - 'docs/**' 10 | - 'mesheryctl/**' 11 | 12 | jobs: 13 | notify-remote-provider-build: 14 | name: Notify Remote Providers of Release 15 | if: github.repository == 'meshery-extensions/shape-builder' 16 | runs-on: ubuntu-24.04 17 | steps: 18 | - name: trigger plugins for edge 19 | if: startsWith(github.ref, 'refs/tags/') != true && success() 20 | uses: layer5io/trigger-remote-provider-action@master 21 | with: 22 | name: "Build and Publish" 23 | repo: layer5labs/meshery-extensions 24 | token: ${{ secrets.GH_ACCESS_TOKEN }} 25 | version: master 26 | - name: set env 27 | if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success() 28 | id: vars 29 | run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT 30 | - name: trigger plugins for release 31 | if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success() 32 | uses: layer5io/trigger-remote-provider-action@master 33 | with: 34 | name: "Build and Publish" 35 | repo: layer5labs/meshery-extensions 36 | token: ${{ secrets.GH_ACCESS_TOKEN }} 37 | version: ${{ steps.vars.outputs.tag }} 38 | -------------------------------------------------------------------------------- /.github/workflows/osps-baseline.yml: -------------------------------------------------------------------------------- 1 | name: OSPS Baseline Scan 2 | 3 | on: [workflow_dispatch] 4 | 5 | jobs: 6 | scan: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - name: Checkout repository 11 | uses: actions/checkout@v4 12 | 13 | - name: Pull the pvtr-github-repo image 14 | run: docker pull eddieknight/pvtr-github-repo:latest 15 | 16 | - name: Add GitHub Secret to config file so it is protected in outputs 17 | run: | 18 | sed -i 's/{{ GH_ACCESS_TOKEN }}/${{ secrets.GH_ACCESS_TOKEN }}/g' ${{ github.workspace }}/.github/pvtr-config.yml 19 | 20 | - name: Scan all repos specified in .github/pvtr-config.yml 21 | run: | 22 | docker run --rm \ 23 | -v ${{ github.workspace }}/.github/pvtr-config.yml:/.privateer/config.yml \ 24 | -v ${{ github.workspace }}/docker_output:/evaluation_results \ 25 | eddieknight/pvtr-github-repo:latest -------------------------------------------------------------------------------- /.github/workflows/preview-site.yml: -------------------------------------------------------------------------------- 1 | name: Deploy Preview 2 | on: 3 | workflow_run: 4 | workflows: 5 | - Build and Preview Site 6 | types: 7 | - completed 8 | 9 | jobs: 10 | deploy-preview: 11 | if: github.repository == 'meshery-extensions/shape-builder' 12 | runs-on: ubuntu-24.04 13 | steps: 14 | - name: Checkout code 15 | uses: actions/checkout@master 16 | 17 | - name: Download Site dir 18 | uses: dawidd6/action-download-artifact@v6 19 | with: 20 | github_token: ${{ secrets.RELEASE_NOTES_PAT }} 21 | workflow: build-and-preview-site.yml 22 | run_id: ${{ github.event.workflow_run.id }} 23 | name: site-dir 24 | 25 | - name: Unzip Site 26 | run: | 27 | rm -rf ./docs/_site 28 | unzip site-dir.zip 29 | rm -f site-dir.zip 30 | 31 | - name: Deploy to Netlify 32 | id: netlify 33 | uses: nwtgck/actions-netlify@v1.1 34 | with: 35 | publish-dir: 'docs/_site' 36 | production-deploy: false 37 | github-token: ${{ secrets.RELEASE_NOTES_PATN }} 38 | enable-commit-comment: false 39 | env: 40 | NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} 41 | NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} 42 | 43 | - name: Comment Deploy URL 44 | uses: ./.github/actions/comment-preview-on-pr 45 | with: 46 | token: ${{ secrets.RELEASE_NOTES_PAT }} 47 | deploy_url: "${{ steps.netlify.outputs.deploy-url }}" 48 | 49 | 50 | -------------------------------------------------------------------------------- /.github/workflows/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name: Release Drafter 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - master 8 | paths-ignore: 9 | - '.github/**' 10 | jobs: 11 | update_release_draft: 12 | if: github.repository == 'meshery-extensions/shape-builder' 13 | runs-on: ubuntu-24.04 14 | steps: 15 | - name: Drafting release 16 | id: release_drafter 17 | uses: release-drafter/release-drafter@v5 18 | with: 19 | config-name: release-drafter.yml 20 | env: 21 | GITHUB_TOKEN: ${{ secrets.RELEASE_NOTES_PAT }} 22 | 23 | # - name: Checkout 24 | # uses: actions/checkout@master 25 | 26 | # - name: Write release notes to markdown file 27 | # run: | 28 | # echo "Tag: " ${{ steps.release_drafter.outputs.tag_name }} 29 | # printf '%b\n' "---\nlayout: release\ndate: $(date +'%Y-%m-%d')\ntag: ${{ steps.release_drafter.outputs.tag_name }}\n---\n\n${{ steps.release_drafter.outputs.body }} " > ./docs/_releases/${{ steps.release_drafter.outputs.tag_name }}.md 30 | 31 | # - name: Create Pull Request 32 | # id: cpr 33 | # uses: peter-evans/create-pull-request@v3 34 | # with: 35 | # token: ${{ secrets.RELEASE_NOTES_PAT }} 36 | # commit-message: "Created release note file ${{ steps.release_drafter.outputs.tag_name }}.md" 37 | # committer: l5io 38 | # author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> 39 | # signoff: true 40 | # branch: docs/automated-release-notes 41 | # base: master 42 | # title: '[Docs] Release Notes for Meshery ${{ steps.release_drafter.outputs.tag_name }}' 43 | # body: | 44 | # An auto-generated pull request to document release notes for Meshery ${{ steps.release_drafter.outputs.tag_name }} 45 | # labels: | 46 | # area/ci 47 | # kind/chore 48 | # # assignees: 49 | # # reviewers: 50 | # team-reviewers: | 51 | # release-team 52 | # maintainers 53 | # # milestone: 1 54 | # draft: true 55 | 56 | # - name: Verify PR 57 | # run: | 58 | # echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" 59 | # echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" 60 | -------------------------------------------------------------------------------- /.github/workflows/release-notes.yml: -------------------------------------------------------------------------------- 1 | name: Release Notes Publisher 2 | 3 | on: 4 | release: 5 | types: 'published' 6 | 7 | jobs: 8 | update_release_notes_docs: 9 | runs-on: ubuntu-24.04 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@master 13 | with: 14 | token: ${{ secrets.RELEASE_NOTES_PAT }} 15 | ref: 'master' 16 | 17 | - name: Get Release Info 18 | run: | 19 | curl -s https://api.github.com/repos/meshery/meshery/releases/latest > latest_release.json 20 | 21 | export RELEASE_TAG=$( cat latest_release.json | jq '.["tag_name"]' | tr -d '"') 22 | export PRERELEASE=$( cat latest_release.json | jq '.["prerelease"]' | tr -d '"') 23 | export RELEASE_BODY=$( cat latest_release.json | jq '.["body"]' | tr -d '"') 24 | 25 | PROCESSED_BODY=$(echo "$RELEASE_BODY" | sed -E 's|(\[)|\\\1|g; s|(\])|\\\1|g') 26 | 27 | printf '%b\n' "---\nlayout: release\ndate: $(date +'%Y-%m-%d')\ntag: $RELEASE_TAG\nprerelease: $PRERELEASE\n---\n\n$PROCESSED_BODY" > ./docs/_releases/$RELEASE_TAG.md 28 | 29 | - name: Pull changes from remote 30 | run: git pull origin master 31 | 32 | - name: Commit 33 | uses: stefanzweifel/git-auto-commit-action@v5 34 | with: 35 | file_pattern: docs 36 | commit_user_name: l5io 37 | commit_user_email: ci@layer5.io 38 | commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> 39 | commit_options: '--signoff' 40 | commit_message: '[Docs] Release Notes for Meshery ${{ steps.release_drafter.outputs.tag_name }}' 41 | branch: master -------------------------------------------------------------------------------- /.github/workflows/slack.yml: -------------------------------------------------------------------------------- 1 | name: Slack Notify 2 | on: 3 | watch: 4 | types: [started] 5 | jobs: 6 | star-notify: 7 | if: github.event_name == 'watch' 8 | name: Notify Slack on star 9 | runs-on: ubuntu-24.04 10 | steps: 11 | - name: Get current star count 12 | run: | 13 | echo "STARS=$(curl --silent 'https://api.github.com/repos/${{github.repository}}' -H 'Accept: application/vnd.github.preview' | jq '.stargazers_count')" >> $GITHUB_ENV 14 | - name: Notify slack 15 | env: 16 | SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} 17 | uses: pullreminders/slack-action@master 18 | with: 19 | args: '{\"channel\":\"CSK7N9TGX\",\"text\":\"${{ github.actor }} just starred ${{github.repository}}! (https://github.com/${{github.repository}}/stargazers) Total ⭐️: ${{env.STARS}}\"}' 20 | good-first-issue-notify: 21 | if: github.event_name == 'issues' && github.event.label.name == 'good first issue' || github.event.label.name == 'first-timers-only' 22 | name: Notify Slack for new good-first-issue 23 | runs-on: ubuntu-24.04 24 | steps: 25 | - name: Notify slack 26 | env: 27 | SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} 28 | uses: pullreminders/slack-action@master 29 | with: 30 | args: '{\"channel\":\"C019426UBNY\",\"text\":\"A good first issue label was just added to ${{github.event.issue.html_url}}.\"}' 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries for programs and plugins 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | 8 | # Test binary, built with `go test -c` 9 | *.test 10 | 11 | # Output of the go coverage tool, specifically when used with LiteIDE 12 | *.out 13 | 14 | # env file 15 | .env 16 | 17 | # Dependency directories (remove the comment below to include it) 18 | # vendor/ 19 | 20 | # IDEs 21 | .vscode/* 22 | 23 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 24 | 25 | # dependencies 26 | site/node_modules 27 | site/.cache 28 | site/public 29 | site/.pnp 30 | site/.pnp.js 31 | 32 | # testing 33 | site/coverage 34 | 35 | # production 36 | site/build 37 | 38 | # misc 39 | site/.DS_Store 40 | site/.env.local 41 | site/.env.development.local 42 | site/.env.test.local 43 | site/.env.production.local 44 | 45 | site/npm-debug.log* 46 | site/yarn-debug.log* 47 | site/yarn-error.log* 48 | 49 | .DS_Store 50 | .github/.DS_Store 51 | node_modules 52 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | legacy-peer-deps=true -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v18.13.0 -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.colorCustomizations": { 3 | "activityBar.activeBackground": "#1a1a1a", 4 | "activityBar.background": "#1a1a1a", 5 | "activityBar.foreground": "#e7e7e7", 6 | "activityBar.inactiveForeground": "#e7e7e799", 7 | "activityBarBadge.background": "#606020", 8 | "activityBarBadge.foreground": "#e7e7e7", 9 | "commandCenter.border": "#e7e7e799", 10 | "sash.hoverBorder": "#1a1a1a", 11 | "statusBar.background": "#000000", 12 | "statusBar.foreground": "#e7e7e7", 13 | "statusBarItem.hoverBackground": "#1a1a1a", 14 | "statusBarItem.remoteBackground": "#000000", 15 | "statusBarItem.remoteForeground": "#e7e7e7", 16 | "titleBar.activeBackground": "#000000", 17 | "titleBar.activeForeground": "#e7e7e7", 18 | "titleBar.inactiveBackground": "#00000099", 19 | "titleBar.inactiveForeground": "#e7e7e799" 20 | } 21 | } -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | shapes.meshery.io -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Meshery Code of Conduct 2 | 3 | The Meshery community follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). 4 | 5 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported through the [Community Incident Report Form](https://docs.google.com/forms/d/e/1FAIpQLSeWzC5HjlHugFjB0TtaAVnSkPPqsRQ3JRYjdwyDXf0oyRxcdQ/viewform). 6 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing Overview 2 | 3 | Please do! Thank you for your help in improving Meshery! :balloon: 4 | 5 | Find the complete set of contributor guides at https://docs.meshery.io/project/contributing 6 | -------------------------------------------------------------------------------- /GOVERNANCE.md: -------------------------------------------------------------------------------- 1 | # Meshery Governance 2 | 3 | See the https://github.com/meshery/meshery repository GOVERNANCE.md document, which defines governance policies for the Meshery project. 4 | -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- 1 | # Meshery Maintainers 2 | 3 | See the https://github.com/meshery/meshery repository MAINTAINERS.md document, which defines governance policies for the Meshery project. 4 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Copyright Meshery Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | include build/Makefile.show-help.mk 16 | 17 | setup-libs: site-setup 18 | 19 | ## Install site dependencies 20 | setup: 21 | cd site; npm install --legacy-peer-deps; cd .. 22 | 23 | ## Build site; generate static site 24 | build: 25 | cd site; npm run build; cd .. 26 | 27 | ## Build and run site 28 | site: 29 | cd site; npm start; cd .. 30 | 31 | # Alternate Method 32 | site-fast: 33 | cd site; npx gatsby develop; cd .. 34 | 35 | clean: 36 | cd site; npx gatsby clean && npm start; cd .. 37 | 38 | lint: 39 | cd site; npx eslint .; cd .. 40 | 41 | #----------------------------------------------------------------------------- 42 | # Docker-based Builds 43 | #----------------------------------------------------------------------------- 44 | 45 | ## Build and run site in a container 46 | docker: 47 | docker run --name site -d --rm -p 4000:4000 -v `pwd`:"/srv/jekyll" jekyll/jekyll:4.0.0 bash -c "bundle install; jekyll serve --drafts --livereload" 48 | 49 | .PHONY: setup-libs site-setup build docker site setup -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Meshery Security 2 | 3 | See the https://github.com/meshery/meshery repository [SECURITY.md document](https://github.com/meshery/meshery/blob/master/SECURITY.md), which defines governance policies for the Meshery project. 4 | -------------------------------------------------------------------------------- /build/Makefile.core.mk: -------------------------------------------------------------------------------- 1 | # Copyright Meshery Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | #----------------------------------------------------------------------------- 16 | # Global Variables 17 | #----------------------------------------------------------------------------- 18 | GIT_VERSION = $(shell git describe --tags `git rev-list --tags --max-count=1`) 19 | GIT_COMMITSHA = $(shell git rev-list -1 HEAD) 20 | GIT_STRIPPED_VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1` | cut -c 2-) 21 | REMOTE_PROVIDER="Meshery" 22 | LOCAL_PROVIDER="None" 23 | GOVERSION = 1.23 24 | GOPATH = $(shell go env GOPATH) 25 | GOBIN = $(GOPATH)/bin 26 | KEYS_PATH="../../server/permissions/keys.csv" 27 | 28 | SHELL := /usr/bin/env bash -o pipefail 29 | 30 | #----------------------------------------------------------------------------- 31 | # Components 32 | #----------------------------------------------------------------------------- 33 | # All Adapters 34 | # ADAPTER_URLS := "localhost:10000 localhost:10001 localhost:10002 localhost:10004 localhost:10005 localhost:10006 localhost:10007 localhost:10009 localhost:10010 localhost:10012" 35 | # No Adapters 36 | ADAPTER_URLS := "localhost:10000 localhost:10001 localhost:10012 localhost:10013" 37 | 38 | #----------------------------------------------------------------------------- 39 | # Providers 40 | #----------------------------------------------------------------------------- 41 | REMOTE_PROVIDER_LOCAL="http://localhost:9876" 42 | MESHERY_CLOUD_DEV="http://localhost:9876" 43 | MESHERY_CLOUD_PROD="https://cloud.layer5.io" 44 | MESHERY_CLOUD_STAGING="https://staging-cloud.layer5.io" 45 | 46 | #----------------------------------------------------------------------------- 47 | # Server 48 | #----------------------------------------------------------------------------- 49 | MESHERY_K8S_SKIP_COMP_GEN ?= TRUE 50 | APPLICATIONCONFIGPATH="./apps.json" 51 | PORT:=9081 52 | 53 | #----------------------------------------------------------------------------- 54 | # Build 55 | #----------------------------------------------------------------------------- 56 | RELEASE_CHANNEL="edge" -------------------------------------------------------------------------------- /build/Makefile.show-help.mk: -------------------------------------------------------------------------------- 1 | .DEFAULT_GOAL := show-help 2 | # See for explanation. 3 | .PHONY: show-help 4 | show-help: 5 | @echo "$$(tput bold)Please specify a build target. The choices are:$$(tput sgr0)";echo;sed -ne"/^## /{h;s/.*//;:d" -e"H;n;s/^## //;td" -e"s/:.*//;G;s/\\n## /---/;s/\\n/ /g;p;}" ${MAKEFILE_LIST}|LC_ALL='C' sort -f|awk -F --- -v n=$$(tput cols) -v i=19 -v a="$$(tput setaf 6)" -v z="$$(tput sgr0)" '{printf"%s%*s%s ",a,-i,$$1,z;m=split($$2,w," ");l=n-i;for(j=1;j<=m;j++){l-=length(w[j])+1;if(l<= 0){l=n-i-length(w[j])-1;printf"\n%*s ",-i," ";}printf"%s ",w[j];}printf"\n";}'|more $(shell test $(shell uname) == Darwin && echo '-Xr') -------------------------------------------------------------------------------- /script.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | if [ -f public-dir.zip ]; then 4 | rm -rf public-dir.zip 5 | fi 6 | mkdir -p public 7 | zip -r public-dir.zip . -i ./public -------------------------------------------------------------------------------- /site/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "babel-preset-gatsby", 5 | { 6 | "targets": { 7 | "browsers": [">0.25%", "not dead"] 8 | } 9 | } 10 | ] 11 | ] 12 | } -------------------------------------------------------------------------------- /site/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | **/*.test.js 3 | src/utils/ 4 | .cache/ 5 | .github/ 6 | assets/ 7 | public/ 8 | .babelrc 9 | .env.development 10 | CNAME 11 | CODE_OF_CONDUCT.md 12 | CODEOWNERS 13 | font-preload-cache.json 14 | LICENSE 15 | Makefile 16 | README.md 17 | package.json 18 | package-lock.json 19 | -------------------------------------------------------------------------------- /site/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | "env": { 4 | "browser": true, 5 | "es6": true, 6 | "node": true, 7 | "amd": true 8 | }, 9 | "settings": { 10 | "react": { 11 | "version": "detect" 12 | } 13 | }, 14 | "extends": [ 15 | "eslint:recommended", 16 | "plugin:react/recommended" 17 | ], 18 | "parser": "@babel/eslint-parser", 19 | "parserOptions": { 20 | "ecmaFeatures": { 21 | "jsx": true 22 | }, 23 | "ecmaVersion": 2018, 24 | "sourceType": "module" 25 | }, 26 | "plugins": [ 27 | "react" 28 | ], 29 | "rules": { 30 | "array-bracket-spacing": ["error", "never"], 31 | "comma-style": ["error"], 32 | "arrow-spacing": [ 33 | "error", 34 | { 35 | "after": true, 36 | "before": true 37 | } 38 | ], 39 | "block-scoped-var": "error", 40 | "block-spacing": "error", 41 | "brace-style": [ 42 | "error", 43 | "1tbs" 44 | ], 45 | "jsx-quotes": ["error", "prefer-double"], 46 | "keyword-spacing": "error", 47 | "key-spacing": ["error", { 48 | "beforeColon": false, 49 | "afterColon": true, 50 | }], 51 | "no-unused-vars": [ 52 | "warn", 53 | { 54 | "varsIgnorePattern": "React" 55 | } 56 | ], 57 | "no-trailing-spaces": "error", 58 | "object-curly-spacing": ["error", "always"], 59 | "react/display-name": 0, 60 | "react/prop-types": 0, 61 | "react/no-unescaped-entities": [0], 62 | "react/jsx-no-duplicate-props": [0], 63 | "indent": [ 64 | "error", 2, { 65 | "FunctionExpression": { "parameters": "first" }, 66 | "FunctionDeclaration": { "parameters": "first" }, 67 | "MemberExpression": 1, 68 | "SwitchCase": 1, 69 | "outerIIFEBody": 0, 70 | "VariableDeclarator": { "var": 2, "let": 2, "const": 3 }, 71 | ignoredNodes: ["TemplateLiteral"] 72 | } 73 | ], 74 | "linebreak-style": [ 75 | "error", 76 | "unix" 77 | ], 78 | "quotes": [ 79 | "error", 80 | "double" 81 | ], 82 | "semi": [ 83 | "error", 84 | "always" 85 | ], 86 | "strict": 0, 87 | "valid-typeof": 0, 88 | "space-unary-ops": [ 89 | 1, { 90 | "words": true, 91 | "nonwords": false 92 | } 93 | ], 94 | "space-infix-ops": [ 95 | "error" 96 | ] 97 | } 98 | }; -------------------------------------------------------------------------------- /site/gatsby-config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @type {import('gatsby').GatsbyConfig} 3 | */ 4 | module.exports = { 5 | siteMetadata: { 6 | title: "Meshery Shape Builder", 7 | siteUrl: "https://shapes.meshery.io" 8 | }, 9 | plugins: ["gatsby-plugin-styled-components"] 10 | }; -------------------------------------------------------------------------------- /site/gatsby-node.js: -------------------------------------------------------------------------------- 1 | exports.onCreateWebpackConfig = ({ actions, getConfig }) => { 2 | const config = getConfig(); 3 | 4 | // fallbacks for node core modules 5 | config.resolve.fallback = { 6 | ...config.resolve.fallback, 7 | path: require.resolve("path-browserify"), 8 | process: require.resolve("process/browser"), 9 | url: require.resolve("url/"), 10 | }; 11 | 12 | actions.replaceWebpackConfig(config); 13 | }; 14 | -------------------------------------------------------------------------------- /site/gatsby-srr.js: -------------------------------------------------------------------------------- 1 | // gatsby-ssr.js 2 | 3 | // TODO: apply SistentThemeProvider to root, once everything is migrated to Sistent -------------------------------------------------------------------------------- /site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "site", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "site", 6 | "author": "Meshery Authors", 7 | "keywords": [ 8 | "gatsby" 9 | ], 10 | "scripts": { 11 | "develop": "gatsby develop", 12 | "start": "gatsby develop", 13 | "build": "gatsby build", 14 | "serve": "gatsby serve", 15 | "clean": "gatsby clean", 16 | "lint": "eslint --fix .", 17 | "checklint": "eslint .", 18 | "pretest": "eslint --ignore-path .gitignore ." 19 | }, 20 | "dependencies": { 21 | "@layer5/sistent": "^0.14.173", 22 | "@mui/icons-material": "^5.15.14", 23 | "@svgdotjs/svg.draw.js": "^3.0.2", 24 | "@svgdotjs/svg.js": "^3.2.4", 25 | "babel-plugin-styled-components": "^2.1.4", 26 | "eslint": "^7.32.0", 27 | "gatsby": "^5.14.0", 28 | "gatsby-plugin-styled-components": "^6.14.0", 29 | "path-browserify": "^1.0.1", 30 | "process": "^0.11.10", 31 | "react": "^18.2.0", 32 | "react-dom": "^18.2.0", 33 | "styled-components": "^6.1.17", 34 | "url": "^0.11.3", 35 | "xstate": "^5.19.0" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftBlack.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftBlack.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftBlackItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftBlackItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftBold.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftBoldItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBold.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBoldItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftHeavy.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftHeavy.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftHeavyItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftHeavyItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftLight.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftLightItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftMedium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftMedium.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftMediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftMediumItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftRegular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftRegular.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftRegularItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftRegularItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBold.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBoldItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftThin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftThin.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftThinItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftThinItalic.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLight.otf -------------------------------------------------------------------------------- /site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLightItalic.otf -------------------------------------------------------------------------------- /site/src/assets/images/meshery-learn-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/images/meshery-learn-logo-white.png -------------------------------------------------------------------------------- /site/src/assets/images/meshery-learn-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/images/meshery-learn-logo.png -------------------------------------------------------------------------------- /site/src/assets/images/meshery-light-text.svg: -------------------------------------------------------------------------------- 1 | Asset 13 -------------------------------------------------------------------------------- /site/src/assets/images/meshery-logo-light-text-side.svg: -------------------------------------------------------------------------------- 1 | meshery-logo-light-text-side -------------------------------------------------------------------------------- /site/src/assets/images/social-icons/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/images/social-icons/calendar.png -------------------------------------------------------------------------------- /site/src/assets/images/social-icons/docker.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site/src/assets/images/social-icons/github.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site/src/assets/images/social-icons/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meshery-extensions/shape-builder/b250bdc6766eb4a8e11a871b6e958d95ae19133a/site/src/assets/images/social-icons/linkedin.png -------------------------------------------------------------------------------- /site/src/assets/images/social-icons/slack.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site/src/assets/images/social-icons/twitter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site/src/assets/images/social-icons/youtube.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site/src/components/Footer/Footer.styles.js: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | const FooterWrapper = styled.section` 4 | padding: 3.1rem 0 3.1rem 0; 5 | background: #222; 6 | 7 | .container { 8 | display: flex; 9 | margin: auto; 10 | width: 60%; 11 | } 12 | 13 | .footer-links { 14 | width: 100%; 15 | margin: 1rem; 16 | padding: 0; 17 | 18 | li { 19 | list-style: none; 20 | margin: 0.75rem 0.75rem 0.75rem 0.125rem; 21 | 22 | a { 23 | color: #999; 24 | &:hover { 25 | text-decoration: none; 26 | color: white; 27 | } 28 | img { 29 | margin-right: 10px; 30 | transition: fill 0.2s ease; 31 | vertical-align: middle; 32 | position: relative; 33 | top: -2px; 34 | width: 22px; 35 | height: 22px; 36 | filter: invert(0.75) grayscale(1); 37 | } 38 | svg { 39 | fill: #999; 40 | margin-right: 10px; 41 | transition: fill 0.2s ease; 42 | vertical-align: middle; 43 | position: relative; 44 | top: -2px; 45 | width: 24px; 46 | height: 24px; 47 | right: 2px; 48 | } 49 | 50 | &:hover { 51 | img { 52 | filter: none; 53 | } 54 | svg { 55 | fill: #fff; 56 | } 57 | } 58 | } 59 | } 60 | } 61 | 62 | .socials { 63 | flex: 0 0 15%; 64 | } 65 | 66 | @media screen and (max-width: 1400px) { 67 | .community, 68 | .getting-started, 69 | .resources, 70 | .socials { 71 | flex: 0 0 22%; 72 | } 73 | } 74 | 75 | @media screen and (max-width: 992px) { 76 | .container { 77 | flex-wrap: wrap; 78 | width: 75%; 79 | } 80 | .community, 81 | .getting-started, 82 | .resources, 83 | .socials { 84 | flex: 0 0 30%; 85 | margin: 1rem 1rem 1rem 5rem; 86 | } 87 | } 88 | 89 | @media screen and (max-width: 650px) { 90 | .container { 91 | flex-wrap: wrap; 92 | width: 90%; 93 | } 94 | .community, 95 | .getting-started, 96 | .resources, 97 | .socials { 98 | flex: 0 0 30%; 99 | margin: 1rem 1rem 1rem 4rem; 100 | } 101 | } 102 | 103 | @media screen and (max-width: 450px) { 104 | .container { 105 | flex-wrap: wrap; 106 | width: 90%; 107 | } 108 | .community, 109 | .getting-started, 110 | .resources, 111 | .socials { 112 | flex: 0 0 100%; 113 | margin: 1rem 0; 114 | text-align: center; 115 | } 116 | } 117 | 118 | .copyright { 119 | font-size: 0.9rem; 120 | margin-top: 1.5rem; 121 | padding-top: 1rem; 122 | border-top: 1px solid #3c494f; 123 | display: flex; 124 | justify-content: space-evenly; 125 | text-align: center; 126 | @media (max-width: 1000px) { 127 | flex-direction: column; 128 | text-align: center; 129 | .text { 130 | text-align: center; 131 | padding-top: 10px; 132 | padding-bottom: 10px; 133 | } 134 | } 135 | } 136 | 137 | .meshery-footer { 138 | display: inline-flex; 139 | align-items: center; 140 | justify-content: center; 141 | margin: auto; 142 | 143 | img { 144 | width: 120px; 145 | height: 30px; 146 | } 147 | } 148 | 149 | &, 150 | a { 151 | color: #999; 152 | } 153 | 154 | a { 155 | text-decoration: none; 156 | 157 | &:hover { 158 | color: #fff; 159 | } 160 | } 161 | 162 | .section-title { 163 | font-size: 1.25rem; 164 | margin-bottom: 1rem; 165 | color: rgba(255, 255, 255, 0.8); 166 | 167 | .title-link { 168 | transition: 0.2s all; 169 | color: rgba(255, 255, 255, 0.75); 170 | &:hover { 171 | color: #fff; 172 | } 173 | } 174 | } 175 | 176 | .section-categories { 177 | padding: 0; 178 | list-style: none; 179 | margin: 0; 180 | font-size: 0.9rem; 181 | 182 | .category-link { 183 | color: rgba(255, 255, 255, 0.5); 184 | transition: 0.2s all; 185 | } 186 | } 187 | `; 188 | 189 | export default FooterWrapper; 190 | -------------------------------------------------------------------------------- /site/src/components/Navigation/CloudIcon.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | function CloudIcon() { 4 | return ( 5 | 12 | 16 | 20 | 21 | 25 | 29 | 33 | 37 | 41 | 45 | 49 | 50 | 51 | 55 | 59 | 63 | 67 | 71 | 75 | 79 | 83 | 87 | 91 | 95 | 99 | 100 | ); 101 | } 102 | 103 | export default CloudIcon; 104 | -------------------------------------------------------------------------------- /site/src/components/Navigation/DefaultAvatar.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export default function DefaultAvatar(props) { 4 | return ( 5 | 6 | 10 | 11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /site/src/components/Navigation/KanvasIcon.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | function KanvasIcon() { 4 | return ( 5 | 11 | 12 | 13 | 17 | 21 | 25 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57 | 61 | 65 | 69 | 73 | 77 | 81 | 85 | 89 | 93 | 97 | 101 | 105 | 109 | 113 | 117 | 118 | 119 | 120 | ); 121 | } 122 | 123 | export default KanvasIcon; 124 | -------------------------------------------------------------------------------- /site/src/components/Navigation/LogoutIcon.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | function LogoutIcon() { 4 | return ( 5 | 12 | 16 | 17 | 18 | ); 19 | } 20 | 21 | export default LogoutIcon; 22 | -------------------------------------------------------------------------------- /site/src/components/Toggle.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const toggleStyle = { 4 | transition: "all .5s ease 0s", 5 | cursor: "pointer", 6 | }; 7 | 8 | export const Toggle = ({ theme, toggleTheme, height, width }) => { 9 | return ( 10 |
11 | {theme === "dark" ? ( 12 | 24 | 25 | 26 | ) : ( 27 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | )} 50 |
51 | ); 52 | }; 53 | -------------------------------------------------------------------------------- /site/src/components/useDarkMode.js: -------------------------------------------------------------------------------- 1 | import { useState, useEffect } from "react"; 2 | 3 | export const useDarkMode = () => { 4 | const [theme, setTheme] = useState("dark"); 5 | 6 | const setMode = mode => { 7 | window.localStorage.setItem("theme", mode); 8 | setTheme(mode); 9 | }; 10 | 11 | const toggleTheme = () => { 12 | theme === "dark" ? setMode("light") : setMode("dark"); 13 | }; 14 | 15 | useEffect(() => { 16 | const localTheme = window.localStorage.getItem("theme"); 17 | localTheme ? setTheme(localTheme) : setMode("dark"); 18 | }, []); 19 | 20 | return [theme, toggleTheme]; 21 | }; -------------------------------------------------------------------------------- /site/src/components/utils/instructionsModal.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Modal, ModalBody, Typography, List, ListItem, ListItemText, ModalFooter } from "@layer5/sistent"; 3 | 4 | const instructionPoints = [ 5 | { 6 | primary: "Press ENTER to close the shape", 7 | secondary: "It won’t draw the last position of your cursor, don’t stress!" 8 | }, 9 | { 10 | primary: "Hold CTRL to snap to grid", 11 | secondary: "Snap to Grid is default, CTRL allows you to freely draw with precision" 12 | }, 13 | { 14 | primary: "CTRL + Z to undo", 15 | secondary: "Undo the last point you placed" 16 | }, 17 | { 18 | primary: "Maximize for better visibility", 19 | secondary: "Without maximize, it may appear tiny" 20 | }, 21 | ]; 22 | 23 | const InstructionsModal = ({ open, onClose }) => { 24 | 25 | return ( 26 | 32 | 33 | 34 | {instructionPoints.map(({ primary, secondary }, idx) => ( 35 | 36 | {primary}} 38 | secondary={{secondary}} 39 | /> 40 | 41 | ))} 42 | 43 | 44 | 45 | 46 | 47 | ); 48 | }; 49 | 50 | export default InstructionsModal; 51 | -------------------------------------------------------------------------------- /site/src/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Qanelas Soft"; 3 | src: url('./assets/fonts/qanelas-soft/QanelasSoftBlack.otf') format('opentype'); 4 | font-weight: normal; 5 | } 6 | 7 | @font-face { 8 | font-family: "Qanelas Soft"; 9 | src: url('./assets/fonts/qanelas-soft/QanelasSoftBold.otf') format('opentype'); 10 | font-weight: bold; 11 | } 12 | 13 | @font-face { 14 | font-family: "Qanelas Soft"; 15 | src: url('./assets/fonts/qanelas-soft/QanelasSoftBlackItalic.otf') format('opentype'); 16 | font-style: italic; 17 | } 18 | 19 | @font-face { 20 | font-family: "Qanelas Soft"; 21 | src: url('./assets/fonts/qanelas-soft/QanelasSoftBoldItalic.otf') format('opentype'); 22 | font-weight: bold; 23 | font-style: italic; 24 | } 25 | 26 | @font-face { 27 | font-family: "Qanelas Soft"; 28 | src: url('./assets/fonts/qanelas-soft/QanelasSoftExtraBold.otf') format('opentype'); 29 | font-weight: 800; 30 | } 31 | 32 | @font-face { 33 | font-family: "Qanelas Soft"; 34 | src: url('./assets/fonts/qanelas-soft/QanelasSoftExtraBoldItalic.otf') format('opentype'); 35 | font-weight: 800; 36 | font-style: italic; 37 | } 38 | 39 | @font-face { 40 | font-family: "Qanelas Soft"; 41 | src: url('./assets/fonts/qanelas-soft/QanelasSoftHeavy.otf') format('opentype'); 42 | font-weight: 900; 43 | } 44 | 45 | @font-face { 46 | font-family: "Qanelas Soft"; 47 | src: url('./assets/fonts/qanelas-soft/QanelasSoftHeavyItalic.otf') format('opentype'); 48 | font-weight: 900; 49 | font-style: italic; 50 | } 51 | 52 | @font-face { 53 | font-family: "Qanelas Soft"; 54 | src: url('./assets/fonts/qanelas-soft/QanelasSoftLight.otf') format('opentype'); 55 | font-weight: 300; 56 | } 57 | 58 | @font-face { 59 | font-family: "Qanelas Soft"; 60 | src: url('./assets/fonts/qanelas-soft/QanelasSoftLightItalic.otf') format('opentype'); 61 | font-weight: 300; 62 | font-style: italic; 63 | } 64 | 65 | @font-face { 66 | font-family: "Qanelas Soft"; 67 | src: url('./assets/fonts/qanelas-soft/QanelasSoftMedium.otf') format('opentype'); 68 | font-weight: 500; 69 | } 70 | 71 | @font-face { 72 | font-family: "Qanelas Soft"; 73 | src: url('./assets/fonts/qanelas-soft/QanelasSoftMediumItalic.otf') format('opentype'); 74 | font-weight: 500; 75 | font-style: italic; 76 | } 77 | 78 | @font-face { 79 | font-family: "Qanelas Soft"; 80 | src: url('./assets/fonts/qanelas-soft/QanelasSoftRegular.otf') format('opentype'); 81 | font-weight: 400; 82 | } 83 | 84 | @font-face { 85 | font-family: "Qanelas Soft"; 86 | src: url('./assets/fonts/qanelas-soft/QanelasSoftRegularItalic.otf') format('opentype'); 87 | font-weight: 400; 88 | font-style: italic; 89 | } 90 | 91 | @font-face { 92 | font-family: "Qanelas Soft"; 93 | src: url('./assets/fonts/qanelas-soft/QanelasSoftSemiBold.otf') format('opentype'); 94 | font-weight: 600; 95 | } 96 | 97 | @font-face { 98 | font-family: "Qanelas Soft"; 99 | src: url('./assets/fonts/qanelas-soft/QanelasSoftSemiBoldItalic.otf') format('opentype'); 100 | font-weight: 600; 101 | font-style: italic; 102 | } 103 | 104 | @font-face { 105 | font-family: "Qanelas Soft"; 106 | src: url('./assets/fonts/qanelas-soft/QanelasSoftThin.otf') format('opentype'); 107 | font-weight: 100; 108 | } 109 | 110 | @font-face { 111 | font-family: "Qanelas Soft"; 112 | src: url('./assets/fonts/qanelas-soft/QanelasSoftThinItalic.otf') format('opentype'); 113 | font-weight: 100; 114 | font-style: italic; 115 | } 116 | 117 | @font-face { 118 | font-family: "Qanelas Soft"; 119 | src: url('./assets/fonts/qanelas-soft/QanelasSoftUltraLight.otf') format('opentype'); 120 | font-weight: 200; 121 | } 122 | 123 | @font-face { 124 | font-family: "Qanelas Soft"; 125 | src: url('./assets/fonts/qanelas-soft/QanelasSoftUltraLightItalic.otf') format('opentype'); 126 | font-weight: 200; 127 | font-style: italic; 128 | } 129 | -------------------------------------------------------------------------------- /site/src/pages/index.js: -------------------------------------------------------------------------------- 1 | import React, { useState } from "react"; 2 | import { ThemeProvider } from "styled-components"; 3 | import { GlobalStyle, Main, lightTheme, darkTheme } from "../styles/styles"; 4 | import { useDarkMode } from "../components/useDarkMode"; 5 | import Navigation from "../components/Navigation"; 6 | import Footer from "../components/Footer"; 7 | import ShapeBuilder from "../components/ShapeBuilder"; 8 | import { Button, SistentThemeProviderWithoutBaseLine, Box } from "@layer5/sistent"; 9 | import InstructionsModal from "../components/utils/instructionsModal"; 10 | 11 | const IndexPage = () => { 12 | // const themesistent = useTheme(); 13 | const [theme, toggleTheme] = useDarkMode(); 14 | const themeMode = theme === "light" ? lightTheme : darkTheme; 15 | const [open, setOpen] = useState(false); 16 | 17 | return ( 18 | 19 | 20 | 21 | 22 |
23 |
24 |

Shape Builder

25 |

26 | Click on the grid to start creating a polygon. Each click adds a point. 27 |

28 |
29 | 30 | 37 | 38 | setOpen(false)} /> 39 | 40 |
41 |