From 2afd11f81d163b3cd2057dbe3d46f0b1014d8272 Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Mon, 1 Jul 2024 11:37:46 +0530 Subject: [PATCH 1/3] delete uneeded workflows Signed-off-by: MUzairS15 --- .github/codecov.yml | 45 - .github/integration-test-config.yaml | 28 - .github/release-drafter.yml | 21 +- .github/scripts/integration_publisher.sh | 30 - .github/scripts/results.json | 116 - .github/scripts/run.sh | 9 - .github/workflows/build-and-preview-site.yml | 35 - .github/workflows/build-and-release-dde.yml | 106 - .../workflows/build-and-release-stable.yml | 221 - .github/workflows/codeql-analysis.yml | 69 - .github/workflows/error-codes-updater.yaml | 63 - .github/workflows/mesheryctl-ci.yml | 102 - .github/workflows/mesheryctl-e2e.yaml | 140 - .github/workflows/meshmodel-generators.yml | 61 - .github/workflows/multi-platform.yml | 124 - .github/workflows/notify-providers.yaml | 37 - .github/workflows/preview-site.yml | 49 - README.md | 11 + schema.go | 7 + .../constructs/openapi/common/parameters.yml | 2 +- schemas/constructs/openapi/connection.yml | 10 + schemas/constructs/openapi/k8scontext.yml | 23 - schemas/constructs/openapi/patterns.yml | 210 +- schemas/constructs/openapi/roles.yml | 188 +- schemas/constructs/openapi/users.yml | 9 +- schemas/constructs/v1alpha1/catalog_data.json | 150 +- schemas/constructs/v1alpha2/connection.yml | 334 -- schemas/constructs/v1alpha2/design.json | 3 - schemas/openapi.yml | 4150 +++++++++++++++++ scripts/merge-openapi-specs.sh | 6 +- 30 files changed, 4451 insertions(+), 1908 deletions(-) delete mode 100644 .github/codecov.yml delete mode 100644 .github/integration-test-config.yaml delete mode 100755 .github/scripts/integration_publisher.sh delete mode 100644 .github/scripts/results.json delete mode 100755 .github/scripts/run.sh delete mode 100644 .github/workflows/build-and-preview-site.yml delete mode 100644 .github/workflows/build-and-release-dde.yml delete mode 100644 .github/workflows/build-and-release-stable.yml delete mode 100644 .github/workflows/codeql-analysis.yml delete mode 100644 .github/workflows/error-codes-updater.yaml delete mode 100644 .github/workflows/mesheryctl-ci.yml delete mode 100644 .github/workflows/mesheryctl-e2e.yaml delete mode 100644 .github/workflows/meshmodel-generators.yml delete mode 100644 .github/workflows/multi-platform.yml delete mode 100644 .github/workflows/notify-providers.yaml delete mode 100644 .github/workflows/preview-site.yml create mode 100644 schema.go delete mode 100644 schemas/constructs/openapi/k8scontext.yml delete mode 100644 schemas/constructs/v1alpha2/connection.yml create mode 100644 schemas/openapi.yml diff --git a/.github/codecov.yml b/.github/codecov.yml deleted file mode 100644 index 2e5a7b325c..0000000000 --- a/.github/codecov.yml +++ /dev/null @@ -1,45 +0,0 @@ -codecov: - require_ci_to_pass: yes - -github_checks: - annotations: true #Annotations for Pull Request -coverage: - precision: 2 - round: down - range: "0...30" - status: - patch: true #GitHub Checks and annotations for the patch status are enabled by default for all GitHub users. - project: - # These flags should match with those in the Github Action ci.yml - front-end-integration-tests: - flags: - - integrationtests - front-end-e2e-tests: - flags: - - e2etests - backend: - flags: - - unittests - -flags: - # Filter the folders to be measured by each flag - front-end-integration-tests: - paths: - - ui/cypress/integration/integration - carryforward: true - front-end-e2e-tests: - paths: - - ui/cypress/integration/e2e - carryforward: true - backend: - paths: - # Accepts only glob patterns, not regex - - "*/cmd/**" - - "*/handlers/**" - - "*/helpers/**" - - "*/internal/**" - - "*/mesheryctl/**" - - "*/meshes/**" - - "*/models/**" - - "*/router/**" - carryforward: true diff --git a/.github/integration-test-config.yaml b/.github/integration-test-config.yaml deleted file mode 100644 index 5728ac12c8..0000000000 --- a/.github/integration-test-config.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# Test configuration file for running performance benchmarks -# See: https://docs.meshery.io/guides/performance-management#running-performance-benchmarks-through-mesheryctl -test: - smp_version: v0.0.1 - - # The name of the test - name: Performance Profile for Meshery's Nightly Integration Testing - labels: {} - - # Test configuration to be defined here - clients: - - internal: false - load_generator: fortio - protocol: 1 - connections: 2 - rps: 10 - headers: {} - cookies: {} - body: '' - content_type: '' - endpoint_urls: - - 'https://meshery.io' - duration: 2s - -# Service mesh under test in Service Mesh Performance Spec format -# See: https://github.com/service-mesh-performance/service-mesh-performance/blob/master/protos/service_mesh.proto -mesh: - type: 3 diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 5bab64554f..d8ad1a86c8 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -5,16 +5,9 @@ categories: labels: - 'kind/feature' - 'kind/enhancement' - - title: '⌨️ Meshery CLI' - labels: - - 'component/mesheryctl' - - title: '🖥 Meshery UI' - labels: - - 'component/ui' - - title: '🔋 Patterns, Filters, Applications' + - title: '🔋 Patterns, Filters' labels: - 'component/patterns' - - 'component/applications' - 'component/filters' - title: '🐛 Bug Fixes' labels: @@ -46,14 +39,4 @@ autolabeler: - '/docs/' - label: 'area/ci' branch: - - '/.github/' - - label: 'component/ui' - branch: - - '/ui/' - - '/provider-ui/' - - label: 'component/mesheryctl' - branch: - - '/mesheryctl/' - - label: 'area/lifecycle' - branch: - - '/install/' + - '/.github/' \ No newline at end of file diff --git a/.github/scripts/integration_publisher.sh b/.github/scripts/integration_publisher.sh deleted file mode 100755 index fbf87615e8..0000000000 --- a/.github/scripts/integration_publisher.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -# Setup for local testing -# INTEGRATIONS=$(< results.json) -# integration_count=$(jq ' .results[].result.rawData | length' results.json) - -# Setup for repository-based run -#results=$(< results.json) -curl -o integrations.csv https://docs.google.com/spreadsheets/d/e/2PACX-1vSgOXuiqbhUgtC9oNbJlz9PYpOEaFVoGNUFMIk4NZciFfQv1ewZg8ahdrWHKI79GkKK9TbmnZx8CqIe/pub?gid=0&single=true&output=csv -brew install xsv -xsv slice -i 7 integrations.csv | xsv select 28 | xsv flatten > a.txt -echo "$PATH" -echo "{path}" -echo $GITHUB_PATH -echo "{path}" >> $GITHUB_PATH -pwd -ls -echo $GITHUB_WORKSPACE - -#INTEGRATIONS=$(< $GITHUB_WORKSPACE/integrations.json) -integration_count=$(jq ' .results[].result.rawData | length' $GITHUB_WORKSPACE/integrations.json) - -for (( i=0; i ${integration_name}/index.mdx -done \ No newline at end of file diff --git a/.github/scripts/results.json b/.github/scripts/results.json deleted file mode 100644 index f2923e50af..0000000000 --- a/.github/scripts/results.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "results": [ - { - "command": { - "func": "getData", - "kwargs": [ - { - "range": "'Meshery Integrations'!AA4:AB515" - }, - null - ] - }, - "result": { - "rawData": [ - [ - "---\rtitle: aad-pod-identity \rsubtitle: Collaborative and visual infrastructure as code for aad-pod-identity\rintegrationIcon: icon/color/aad-pod-identity-icon-color.svg\rdarkModeIntegrationIcon: icon/white/aad-pod-identity-icon-white.svg\rdocURL: \rcategory: Category\rsubcategory: \rfeatureList: [,\r,\r\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Enables Kubernetes applications to access cloud resources securely with Azure Active Directory(AAD).\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: accurate \rsubtitle: Collaborative and visual infrastructure as code for accurate\rintegrationIcon: icon/color/accurate-icon-color.svg\rdarkModeIntegrationIcon: icon/white/accurate-icon-white.svg\rdocURL: \rcategory: \rsubcategory: MeshModel Components\rfeatureList: [\"Resource propagation between namespaces.\",\r\"Inheriting labels and annotations creation/update from parent namespaces.\",\r\"SubNamespace custom resource for tenant users.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Accurate is a Kubernetes controller to help operations in large soft multi-tenancy environments.\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: ace \rsubtitle: Collaborative and visual infrastructure as code for ace\rintegrationIcon: icon/color/ace-icon-color.svg\rdarkModeIntegrationIcon: icon/white/ace-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [\"Run Production-Grade Databases on Kubernetes.\",\r\"Backup and Recovery Solution for Kubernetes.\",\r\"Run Production-Grade Vault on Kubernetes\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Kubernetes Native Data Platform\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: actions-runner-controller \rsubtitle: Collaborative and visual infrastructure as code for actions-runner-controller\rintegrationIcon: icon/color/actions-runner-controller-icon-color.svg\rdarkModeIntegrationIcon: icon/white/actions-runner-controller-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [\"Deploy self hosted runners on Kubernetes cluster with a simple set of commands.\",\r\"Auto scale runners based on demand.\",\r\"Setup across GitHub editions including GitHub Enterprise editions and GitHub Enterprise Cloud.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r A Kubernetes controller that operates self-hosted runners for GitHub Actions on your Kubernetes cluster.\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: admin-console-operator \rsubtitle: Collaborative and visual infrastructure as code for admin-console-operator\rintegrationIcon: icon/color/admin-console-operator-icon-color.svg\rdarkModeIntegrationIcon: icon/white/admin-console-operator-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [\"Deployed and configured CI/CD toolset (Jenkins, Gerrit, Nexus, SonarQube)\",\r\"Kubernetes native approach (CRD, CR) to declare CI/CD pipelines\",\r\"Gerrit, GitLab or GitHub as a version control system for your code\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r A Helm chart for EDP Admin Console Operator\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: aerospike-kubernetes-operator \rsubtitle: Collaborative and visual infrastructure as code for aerospike-kubernetes-operator\rintegrationIcon: icon/color/aerospike-kubernetes-operator-icon-color.svg\rdarkModeIntegrationIcon: icon/white/aerospike-kubernetes-operator-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [\"Efficiently deploy and operate your Aerospike clusters.\",\r\"Automates the configuration, provisioning, scaling, and recovery of Aerospike clusters\",\r\"Reduces the complexity of manual deployment and lifecycle management.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r A Helm chart for Aerospike Kubernetes Operator.\r\r\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: ai-scale-doer \rsubtitle: Collaborative and visual infrastructure as code for ai-scale-doer\rintegrationIcon: icon/color/ai-scale-doer-icon-color.svg\rdarkModeIntegrationIcon: icon/white/ai-scale-doer-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [,\r,\r\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r \r

\r

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

\r

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

", - "yes" - ], - [ - "---\rtitle: Akri \rsubtitle: Collaborative and visual infrastructure as code for Akri\rintegrationIcon: icon/color/akri-icon-color.svg\rdarkModeIntegrationIcon: icon/white/akri-icon-white.svg\rdocURL: \rcategory: \rsubcategory: Automation & Configuration\rfeatureList: [\"Expose heterogeneous leaf devices as resources in a Kubernetes cluster\",\r\"It is made for the edge and handles the dynamic appearance and disappearance of leaf devices.\",\r\"It provides an abstraction layer similar to CNI.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r A Kubernetes Resource Interface for the Edge\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: aks-appgw-fe \rsubtitle: Collaborative and visual infrastructure as code for aks-appgw-fe\rintegrationIcon: icon/color/aks-appgw-fe-icon-color.svg\rdarkModeIntegrationIcon: icon/white/aks-appgw-fe-icon-white.svg\rdocURL: \rcategory: Provisioning\rsubcategory: \rfeatureList: [,\r,\r\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r \r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: altinity-clickhouse-operator \rsubtitle: Collaborative and visual infrastructure as code for altinity-clickhouse-operator\rintegrationIcon: icon/color/altinity-clickhouse-operator-icon-color.svg\rdarkModeIntegrationIcon: icon/white/altinity-clickhouse-operator-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [\"Create ClickHouse clusters defined as custom resources.\",\r\"Customize storage provisioning (VolumeClaim templates)\",\r\"Customize pod templates\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r \r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: Antrea \rsubtitle: Collaborative and visual infrastructure as code for Antrea\rintegrationIcon: icon/color/antrea-icon-color.svg\rdarkModeIntegrationIcon: icon/white/antrea-icon-white.svg\rdocURL: \rcategory: \rsubcategory: Cloud Native Network\rfeatureList: [\"Simplifies Kubernetes networking across differing clouds and operating systems.\",\r\"Designed to ease deployment, operations and troubleshooting.\",\r\"Supports advanced network use cases like kernel bypass and network service mesh.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Kubernetes networking based on Open vSwitch\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: aperture-agent \rsubtitle: Collaborative and visual infrastructure as code for aperture-agent\rintegrationIcon: icon/color/aperture-agent-icon-color.svg\rdarkModeIntegrationIcon: icon/white/aperture-agent-icon-white.svg\rdocURL: \rcategory: Runtime\rsubcategory: \rfeatureList: [\"Monitor golden signals to rapidly detect service deterioration and load build-up.\",\r\"Adjusts the concurrency limit of the service.\",\r\"Regulate and prioritize flows based on rules via a scheduler.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r \r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: aperture-controller \rsubtitle: Collaborative and visual infrastructure as code for aperture-controller\rintegrationIcon: icon/color/aperture-controller-icon-color.svg\rdarkModeIntegrationIcon: icon/white/aperture-controller-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [\"Monitor golden signals to rapidly detect service deterioration and load build-up.\",\r\"Adjusts the concurrency limit of the service.\",\r\"Regulate and prioritize flows based on rules via a scheduler.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r \r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: apisix \rsubtitle: Collaborative and visual infrastructure as code for apisix\rintegrationIcon: icon/color/apisix-icon-color.svg\rdarkModeIntegrationIcon: icon/white/apisix-icon-white.svg\rdocURL: \rcategory: \rsubcategory: API Gateway\rfeatureList: [\"The Apache APISIX Dashboard is designed to make it as easy as possible for users to operate through a frontend interface.\",\r\"The Apache APISIX dashboard is flexible to User demands.\",\r\"Built-in and customizable plugins available.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r The Cloud-Native API Gateway\r

\r

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

\r

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

", - "---\ntitle: apisix \nsubtitle: Collaborative and visual infrastructure as code for apisix\nintegrationIcon: icon/color/apisix-icon-color.svg\ndarkModeIntegrationIcon: icon/white/apisix-icon-white.svg\ndocURL: \ncategory: \nsubcategory: API Gateway\nfeatureList: [,\n,\n\n]\nworkingSlides: [\n ../_images/meshmap-visualizer.png,\n ../_images/meshmap-designer.png]\nhowItWorks: Collaborative Infrastructure as Code\nhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\npublished: true\n---\n

\n The Cloud-Native API Gateway\n

\n

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

\n

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

" - ], - [ - "---\rtitle: apisix-ingress-controller \rsubtitle: Collaborative and visual infrastructure as code for apisix-ingress-controller\rintegrationIcon: icon/color/apisix-ingress-controller-icon-color.svg\rdarkModeIntegrationIcon: icon/white/apisix-ingress-controller-icon-white.svg\rdocURL: \rcategory: Orchestration & Management\rsubcategory: \rfeatureList: [\"Declarative configuration.\",\r\"Full dynamic capabilities to delivery configurations.\",\r\"Service Discovery based on Kubernetes Service.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r \r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: application-crds \rsubtitle: Collaborative and visual infrastructure as code for application-crds\rintegrationIcon: icon/color/application-crds-icon-color.svg\rdarkModeIntegrationIcon: icon/white/application-crds-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [\"The ability to describe an applications metadata.\",\r\"A point to connect the infrastructure, such as Deployments, to as a root object.\",\r\"Information for supporting applications to help them query and understand the objects supporting an application.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r \r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: aranya \rsubtitle: Collaborative and visual infrastructure as code for aranya\rintegrationIcon: icon/color/aranya-icon-color.svg\rdarkModeIntegrationIcon: icon/white/aranya-icon-white.svg\rdocURL: \rcategory: \rsubcategory: \rfeatureList: [\"Integrate all kinds of devices with any operating system into existing Kubernetes clusters.\",\r\"Deploy and manage large scale devices with kubectl (Kubernetes API) and ansible.\",\r\"Single custom resource to rule all kinds of devices and workloads.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r \r

\r

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

\r

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

", - "yes" - ], - [ - "---\rtitle: Argo \rsubtitle: Collaborative and visual infrastructure as code for argo\rintegrationIcon: icon/color/argo-icon-color.svg\rdarkModeIntegrationIcon: icon/white/argo-icon-white.svg\rdocURL: \rcategory: \rsubcategory: Continuous Integration & Delivery\rfeatureList: [,\r,\r\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Workflow engine for Kubernetes\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: Argo \rsubtitle: Collaborative and visual infrastructure as code for argo-cd\rintegrationIcon: icon/color/argo-cd-icon-color.svg\rdarkModeIntegrationIcon: icon/white/argo-cd-icon-white.svg\rdocURL: \rcategory: App Definition and Development\rsubcategory: Continuous Integration & Delivery\rfeatureList: ['Gain mastery over Argo as a workflow engine for Kubernetes',\r'Design application definitions using the intuitive, context-aware visual designer, MeshMap.',\r'Visualize your declarative, GitOps continuous delivery tool for Kubernetes.'\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Workflow engine for Kubernetes\r

\r

\r MeshMap makes managing Argo as a workflow engine for Kubernetes easy. Collaboratively and visually diagram your cloud native infrastructure with GitOps-style pipeline integration. Design, test, and manage configuration your Kubernetes-based, containerized applications as a visual topology.\r

\r

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

", - "yes" - ], - [ - "---\rtitle: Argo \rsubtitle: Collaborative and visual infrastructure as code for argo-workflow\rintegrationIcon: icon/color/argo-workflow-icon-color.svg\rdarkModeIntegrationIcon: icon/white/argo-workflow-icon-white.svg\rdocURL: \rcategory: App Definition and Development\rsubcategory: Continuous Integration & Delivery\rfeatureList: [\"UI to visualize and manage Workflows.\",\r\"Workflow templating to store commonly used Workflows in the cluster.\",\r\"Archiving Workflows after executing for later access.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Workflow engine for Kubernetes\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: Argo \rsubtitle: Collaborative and visual infrastructure as code for argo-workflows\rintegrationIcon: icon/color/argo-workflows-icon-color.svg\rdarkModeIntegrationIcon: icon/white/argo-workflows-icon-white.svg\rdocURL: \rcategory: App Definition and Development\rsubcategory: Continuous Integration & Delivery\rfeatureList: [\"UI to visualize and manage Workflows.\",\r\"Workflow templating to store commonly used Workflows in the cluster.\",\r\"Archiving Workflows after executing for later access.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Workflow engine for Kubernetes\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: Argo \rsubtitle: Collaborative and visual infrastructure as code for argocd\rintegrationIcon: icon/color/argocd-icon-color.svg\rdarkModeIntegrationIcon: icon/white/argocd-icon-white.svg\rdocURL: \rcategory: App Definition and Development\rsubcategory: Continuous Integration & Delivery\rfeatureList: [\"Declarative continuous delivery with a fully-loaded UI.\",\r\"Application definitions, configurations, and environments can be declarative and version controlled.\",\r\"Application deployment and lifecycle management can be automated, auditable, and easy to understand.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Workflow engine for Kubernetes\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: Argo \rsubtitle: Collaborative and visual infrastructure as code for argocd-operator\rintegrationIcon: icon/color/argocd-operator-icon-color.svg\rdarkModeIntegrationIcon: icon/white/argocd-operator-icon-white.svg\rdocURL: \rcategory: App Definition and Development\rsubcategory: Continuous Integration & Delivery\rfeatureList: [\"Declarative continuous delivery with a fully-loaded UI.\",\r\"Application definitions, configurations, and environments can be declarative and version controlled.\",\r\"Application deployment and lifecycle management can be automated, auditable, and easy to understand.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Workflow engine for Kubernetes\r

\r

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

\r

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

", - "FALSE" - ], - [ - "---\rtitle: Spinnaker \rsubtitle: Collaborative and visual infrastructure as code for armory-spinnaker-operator\rintegrationIcon: icon/color/armory-spinnaker-operator-icon-color.svg\rdarkModeIntegrationIcon: icon/white/armory-spinnaker-operator-icon-white.svg\rdocURL: \rcategory: App Definition and Development\rsubcategory: Continuous Integration & Delivery\rfeatureList: [\"Stop using Halyard commands: just kubectl apply your Spinnaker configuration.\",\r\"Expose Spinnaker to the outside world (via LoadBalancer).\",\r\"Keep secrets separate from your config.\"\r]\rworkingSlides: [\r ../_images/meshmap-visualizer.png,\r ../_images/meshmap-designer.png]\rhowItWorks: Collaborative Infrastructure as Code\rhowItWorksDetails: Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs.\rpublished: true\r---\r

\r Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.\r

\r

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

\r

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

", - "FALSE" - ] - ] - } - } - ] -} - diff --git a/.github/scripts/run.sh b/.github/scripts/run.sh deleted file mode 100755 index d210fefef4..0000000000 --- a/.github/scripts/run.sh +++ /dev/null @@ -1,9 +0,0 @@ -#! /bin/bash - -while IFS="," read line -do - echo "$line" - - -done < <(cut -d "," -f26,3 ~/test.csv | tail -n +4) - diff --git a/.github/workflows/build-and-preview-site.yml b/.github/workflows/build-and-preview-site.yml deleted file mode 100644 index 160a82ef03..0000000000 --- a/.github/workflows/build-and-preview-site.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Build and Preview Site -on: - pull_request: - branches: [ master ] - types: [opened, synchronize, reopened] - paths: - - '!**' - - 'docs/**' -jobs: - trigger-site-preview: - runs-on: ubuntu-22.04 - steps: - - name: Checkout 🛎️ - uses: actions/checkout@master - with: - persist-credentials: false - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.2.2 # Not needed with a .ruby-version file - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - - name: Install and Build 🔧 - run: | - cd docs - make build - - name: Zip Site - run: bash docs/script.sh - - name: Upload files - uses: actions/upload-artifact@v3 - with: - name: site-dir - path: ./site-dir.zip - retention-days: 1 - - name: Trigger Inner workflow - run: echo "triggering workflow" diff --git a/.github/workflows/build-and-release-dde.yml b/.github/workflows/build-and-release-dde.yml deleted file mode 100644 index 1960cdaf79..0000000000 --- a/.github/workflows/build-and-release-dde.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: Docker Extension for Meshery -on: - workflow_call: - # push: - # tags: - # - "v*" - workflow_dispatch: - inputs: - release-ver: - description: "Stable Release Version" - required: true - default: "v" - stripped-release-ver: - description: "Stripped Stable Release Version" - required: true - default: "" - release-channel: - description: "Release Channel" - required: true - default: "edge" - -env: - GIT_VERSION: ${{github.event.inputs.release-ver}} - GIT_STRIPPED_VERSION: ${{github.event.inputs.stripped-release-ver}} - RELEASE_CHANNEL: ${{github.event.inputs.release-channel}} - GIT_TAG: ${{ github.event.release.tag_name }} - -jobs: - print-inputs: - runs-on: ubuntu-22.04 - steps: - - run: | - echo "Dispatched GIT_VERSION: ${{github.event.inputs.release-ver}}" - echo " Dispatched GIT_STRIPPED_VERSION: ${{github.event.inputs.stripped-release-ver}}" - echo "Env RELEASE_CHANNEL: ${{env.RELEASE_CHANNEL}}" - echo "Env GIT_VERSION: ${{env.GIT_VERSION}}" - echo "Env GIT_STRIPPED_VERSION: ${{env.GIT_STRIPPED_VERSION}}" - echo "Env GIT_TAG: ${{ github.event.release.tag_name }}" - - docker-extension: - runs-on: ubuntu-22.04 - steps: - - name: Checkout 🛎️ repo - uses: actions/checkout@master - - name: Identify Release Values - if: "${{ github.event.inputs.release-ver}} != 'v' }}" - run: | - # GIT_TAG=`git symbolic-ref HEAD` - if [[ ${GITHUB_REF} = refs/tags* ]] - then - echo RELEASE_CHANNEL=stable >> $GITHUB_ENV - else - echo RELEASE_CHANNEL=edge >> $GITHUB_ENV - fi - LATEST_VERSION=$(git ls-remote --sort='v:refname' --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g') >> $GITHUB_ENV - GIT_VERSION=$(git ls-remote --sort='v:refname' --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g') >> $GITHUB_ENV - GIT_STRIPPED_VERSION=$(git ls-remote --sort='v:refname' --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g' | cut -c2-) - echo "Release channel determined to be $RELEASE_CHANNEL" - echo "GIT_LATEST=$LATEST_VERSION" >> $GITHUB_ENV - echo "GIT_VERSION=$GIT_VERSION" >> $GITHUB_ENV - echo "GIT_STRIPPED_VERSION=$GIT_STRIPPED_VERSION" >> $GITHUB_ENV - shell: bash - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Docker Meta - id: meta - uses: docker/metadata-action@v3 - with: - images: meshery/docker-extension-meshery - flavor: | - latest=true - tags: | - type=raw,value=${{env.RELEASE_CHANNEL}}-{{sha}} - type=semver,pattern={{version}},value=${{env.GIT_STRIPPED_VERSION}} - type=raw,value=${{env.RELEASE_CHANNEL}}-{{tag}},enable=${{ startsWith(github.ref, 'refs/tags/v') }} - type=raw,value=${{env.RELEASE_CHANNEL}}-latest - type=raw,value=${{env.RELEASE_CHANNEL}}-${{env.GIT_VERSION}},enable=${{ startsWith(github.ref, 'refs/tags/v') }} - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - name: Build and Push - uses: docker/build-push-action@v2 - with: - context: "{{defaultContext}}:install/docker-extension" - push: true - build-args: | - GIT_STRIPPED_VERSION=${{env.GIT_STRIPPED_VERSION}} - GIT_VERSION=${{env.GIT_VERSION}} - RELEASE_CHANNEL=${{env.RELEASE_CHANNEL}} - tags: ${{ steps.meta.outputs.tags }} - platforms: linux/amd64,linux/arm64 - - # - - # name: Docker Hub Description - # uses: peter-evans/dockerhub-description@v3 - # with: - # username: ${{ secrets.DOCKER_USERNAME }} - # password: ${{ secrets.DOCKER_PASSWORD }} - # repository: meshery/meshery-docker-extension - # readme-filepath: /install/docker-extension/README.md - diff --git a/.github/workflows/build-and-release-stable.yml b/.github/workflows/build-and-release-stable.yml deleted file mode 100644 index f15e1619b6..0000000000 --- a/.github/workflows/build-and-release-stable.yml +++ /dev/null @@ -1,221 +0,0 @@ -name: Meshery Build and Releaser (stable) -on: - push: - tags: - - "v*" - -jobs: - - update-rest-api-docs: - name: Update REST API Documentation - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - name: Check if handlers were modified - uses: dorny/paths-filter@v2 - id: changes - with: - filters: | - modified: - - added|modified: "server/handlers/**" - - name: Setup go-swagger - if: steps.changes.outputs.modified == 'true' - uses: minchao/setup-go-swagger@v1 - with: - version: v0.30.5 - - name: swagger-spec - if: steps.changes.outputs.modified == 'true' - run: | - make swagger-build - - name: swagger-docs - if: steps.changes.outputs.modified == 'true' - run: | - make swagger-docs-build - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 - with: - file_pattern: docs - commit_user_name: l5io - commit_user_email: ci@layer5.io - commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - commit_options: "--signoff" - commit_message: "[Docs] Updated Swagger Docs for REST API" - - update-graphql-docs: - name: Update GraphQL API Documentation - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - name: Check out code - uses: actions/checkout@v3 - with: - fetch-depth: 1 - - name: Check if schema was modified - uses: dorny/paths-filter@v2 - id: filter - with: - filters: | - modified: - - added|modified: 'server/internal/graphql/schema/schema.graphql' - - name: Set up Ruby - if: steps.filter.outputs.modified == 'true' - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.2.2 - bundler-cache: true - - name: graphql-docs - if: steps.filter.outputs.modified == 'true' - run: | - cd docs; bundle install; cd ..; \ - make graphql-docs-build - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 - with: - file_pattern: docs - commit_user_name: l5io - commit_user_email: ci@layer5.io - commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - commit_options: "--signoff" - commit_message: "[Docs] Updated GraphQL API Documentation" - - build: - name: Docker build and push - if: github.repository == 'meshery/meshery' - env: - RELEASE_CHANNEL: "stable" - runs-on: ubuntu-22.04 - steps: - - name: Check out code - uses: actions/checkout@master - with: - fetch-depth: 1 - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - name: Docker stable and playground build & tag - run: | - DOCKER_BUILDKIT=1 docker build -f install/docker/Dockerfile --no-cache -t ${{ secrets.IMAGE_NAME }}:stable-latest --build-arg TOKEN=${{ secrets.GLOBAL_TOKEN }} --build-arg GIT_COMMITSHA=${GITHUB_SHA::8} --build-arg GIT_VERSION=${GITHUB_REF/refs\/tags\//} --build-arg RELEASE_CHANNEL=${RELEASE_CHANNEL} . - docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_REF/refs\/tags\//} - docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_SHA::8} - docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:playground-latest - docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:playground-${GITHUB_REF/refs\/tags\//} - docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:playground-${GITHUB_SHA::8} - - name: Docker stable and playground push - run: | - docker push ${{ secrets.IMAGE_NAME }}:stable-latest - docker push ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_REF/refs\/tags\//} - docker push ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_SHA::8} - docker push ${{ secrets.IMAGE_NAME }}:playground-latest - docker push ${{ secrets.IMAGE_NAME }}:playground-${GITHUB_REF/refs\/tags\//} - docker push ${{ secrets.IMAGE_NAME }}:playground-${GITHUB_SHA::8} - # SKIP STEP: FAILS BECAUSE README FILE SIZE IS TOO LARGE FOR DOCKER HUB - # - name: Docker Hub Description - # uses: peter-evans/dockerhub-description@v3 - # env: - # DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} - # DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - # DOCKERHUB_REPOSITORY: ${{ secrets.IMAGE_NAME }} - ctlrelease: - name: Mesheryctl build & release - if: github.repository == 'meshery/meshery' - runs-on: macos-latest - steps: - - name: Check out code - uses: actions/checkout@master - with: - fetch-depth: 0 - - name: Set up Go - uses: actions/setup-go@master - with: - go-version: "1.21" - - name: goreleaser with tag - uses: goreleaser/goreleaser-action@v4 - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_NOTES_PAT }} - RELEASE_CHANNEL: "stable" - with: - version: latest - args: release --clean --skip-validate - - name: bump homebrew-core formula - uses: mislav/bump-homebrew-formula-action@v2 - with: - formula-name: mesheryctl - download-url: https://github.com/meshery/meshery.git - formula-path: Formula/m/mesheryctl.rb - env: - COMMITTER_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} - call-dde-release-workflow: - needs: - - build - - ctlrelease - name: Build and Release Docker Extension - uses: meshery/meshery/.github/workflows/build-and-release-dde.yml@master - secrets: inherit - call-helm-chart-releaser: - needs: - - build - - ctlrelease - name: Release Helm Charts - uses: meshery/meshery/.github/workflows/helm-chart-releaser.yml@master - secrets: inherit - # call-aks-playground-deploy-workflow: - # needs: build - # name: Deploy Meshery Playground - # uses: meshery/meshery/.github/workflows/deploy-meshery-playground.yml@master - # secrets: inherit - email-meshery-release-notes-workflow: - needs: - - build - - ctlrelease - - call-helm-chart-releaser - - call-dde-release-workflow - name: Email Meshery Release Notes - uses: layer5labs/meshery-extensions-packages/.github/workflows/notify-email.yml@master - secrets: - token: ${{ secrets.GH_ACCESS_TOKEN }} - MAIL_USERNAME: ${{ secrets.MAIL_USERNAME }} - MAIL_PASSWORD: ${{ secrets.MAIL_PASSWORD }} - with: - release-tag: ${{github.ref_name}} - to: developers@meshery.io - call-cncf-playground-rollout: - needs: - - build - - ctlrelease - name: Deploy CNCF Playground - uses: meshery/meshery/.github/workflows/cncf-playground-deploy-meshery.yaml@master - secrets: inherit - - email-on-failure: - needs: [update-rest-api-docs, update-graphql-docs, build, ctlrelease, call-dde-release-workflow, call-helm-chart-releaser, email-meshery-release-notes-workflow, call-cncf-playground-rollout] - if: ${{ failure() }} - runs-on: ubuntu-latest - steps: - - name: Find failed jobs. - run: | - curl "https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs" | jq -r '.jobs[] | select(.conclusion == "failure") | "\(.name): \(.steps[] | select(.conclusion == "failure") | .name)\n\(.html_url)\n"' >> output.txt - # Save multi-line environment variables by using the delimiters syntex. - echo "EMAIL_BODY<> $GITHUB_ENV - echo "$(cat ./output.txt)" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - - name: Failed jobs summary - run: | - echo "${{ env.EMAIL_BODY }}" - - name: Send Email Notification - if: env.EMAIL_BODY != '' - uses: dawidd6/action-send-mail@v3 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{ secrets.MAIL_USERNAME }} - password: ${{ secrets.MAIL_PASSWORD }} - subject: Job(s) failure in the build-and-release-stable workflow - to: support@layer5.io - from: Build and Release Stable workflow - body: | - The workflow failed. Here are the details: - ${{ env.EMAIL_BODY }} - Workflow run log URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 8da5f7249e..0000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,69 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: -# push: -# tags: -# - 'v*' -# pull_request: -# # The branches below must be a subset of the branches above -# branches: [ master ] - schedule: - - cron: '26 22 * * 6' - -jobs: - analyze: - name: Analyze - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - - strategy: - fail-fast: false - matrix: - language: [ 'go', 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout repository - uses: actions/checkout@master - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/error-codes-updater.yaml b/.github/workflows/error-codes-updater.yaml deleted file mode 100644 index f9ff4cbdab..0000000000 --- a/.github/workflows/error-codes-updater.yaml +++ /dev/null @@ -1,63 +0,0 @@ -name: MeshKit Error Codes Utility Runner -on: - push: - branches: - - "master" - paths: - - "**.go" - pull_request: - branches: - - "master" - paths: - - "**.go" - -jobs: - Update-error-codes: - name: Error codes utility - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@master - with: - ref: "master" - - - name: Setup Go - uses: actions/setup-go@master - with: - go-version: ${{ secrets.GO_VERSION }} - - - name: Build Error Utility - run: | - go get github.com/layer5io/meshkit/cmd/errorutil@master - go build -o ~/errorutil github.com/layer5io/meshkit/cmd/errorutil - - - name: Run Utility For Meshery Server - run: | - ~/errorutil update -d . -i ./server/helpers -o ./server/helpers --skip-dirs mesheryctl - output=$(~/errorutil -d . analyze -i ./server/helpers -o ./server/helpers --skip-dirs mesheryctl | wc -c) - if [ "$output" -ne 0 ]; then - exit 1 - fi - echo '{ "errors_export": "" }' | jq --slurpfile export ./server/helpers/errorutil_errors_export.json '.errors_export = $export[0]' > ./docs/_data/errorref/meshery-server_errors_export.json - - - name: Run Utility For Mesheryctl - run: | - cd ./mesheryctl - ~/errorutil update -d . -i ./helpers -o ./helpers - output=$(~/errorutil -d . analyze -i ./helpers -o ./helpers | wc -c) - if [ "$output" -ne 0 ]; then - exit 1 - fi - echo '{ "errors_export": "" }' | jq --slurpfile export ../server/helpers/errorutil_errors_export.json '.errors_export = $export[0]' > ../docs/_data/errorref/mesheryctl_errors_export.json - - - name: Commit changes - if: ${{ github.event_name != 'pull_request' }} # Skip for pull requests - uses: stefanzweifel/git-auto-commit-action@v4 - with: - file_pattern: mesheryctl/helpers server/helpers/ **.go docs/ - commit_user_name: l5io - commit_user_email: ci@layer5.io - commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - commit_options: "--signoff" - commit_message: "[Error Codes]: Update Meshery server and mehseryctl error codes and reference" - diff --git a/.github/workflows/mesheryctl-ci.yml b/.github/workflows/mesheryctl-ci.yml deleted file mode 100644 index e656331dee..0000000000 --- a/.github/workflows/mesheryctl-ci.yml +++ /dev/null @@ -1,102 +0,0 @@ -name: Mesheryctl -on: - push: - branches: - - "master" - paths: - - "mesheryctl/**" - pull_request: - branches: - - "master" - paths: - - "mesheryctl/**" - workflow_dispatch: - inputs: - logLevel: - description: "Log level" - required: true - default: "warning" - -jobs: - golangci: - name: golangci-lint - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@master - - uses: actions/setup-go@master - with: - go-version: "1.21" - - name: golangci-lint - uses: golangci/golangci-lint-action@v3 - with: - version: v1.52.0 - working-directory: mesheryctl - args: --timeout 10m --verbose - skip-cache: true - skip-pkg-cache: true - skip-build-cache: true - mesheryctl_build: - name: Mesheryctl build & release - if: github.repository == 'meshery/meshery' - runs-on: macos-latest - needs: [golangci] - steps: - - name: Check out code - uses: actions/checkout@master - - name: Unshallow - run: git fetch --prune --unshallow - - name: Set up Go - uses: actions/setup-go@master - with: - go-version: "1.21" - - name: Setup Cache - uses: actions/cache@v3 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- - - name: goreleaser WITHOUT tag - uses: goreleaser/goreleaser-action@v4 - if: success() && startsWith(github.ref, 'refs/tags/') == false - env: - RELEASE_CHANNEL: "edge" - with: - version: latest - args: release --snapshot --skip-publish --clean - mesheryctl_docs: - if: "always() && github.event_name != 'pull_request' && github.repository == 'meshery/meshery' " - runs-on: ubuntu-22.04 - steps: - - name: Skip if needed - run: | - echo "this is it ${{ needs.SkipIfNeeded.outputs.skipdocupdate }} " - if [ "${{github.event_name }}" == "push" ];then - echo "version=edge" >> $GITHUB_ENV - fi - if [ "${{github.event_name }}" == "release" ];then - echo "version=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - fi - - uses: actions/checkout@master - with: - repository: meshery/meshery - token: ${{ secrets.GH_ACCESS_TOKEN }} - - name: Setup go - uses: actions/setup-go@master - with: - go-version: "1.21" - check-latest: "true" - - name: Run script 📜 - run: | - cd mesheryctl - make docs - - name: Commit ✅ - uses: stefanzweifel/git-auto-commit-action@v4 - with: - file_pattern: docs - commit_user_name: l5io - commit_user_email: ci@layer5.io - commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - commit_options: "--signoff" - commit_message: "[Docs] Update mesheryctl docs" diff --git a/.github/workflows/mesheryctl-e2e.yaml b/.github/workflows/mesheryctl-e2e.yaml deleted file mode 100644 index 5f18344023..0000000000 --- a/.github/workflows/mesheryctl-e2e.yaml +++ /dev/null @@ -1,140 +0,0 @@ -name: Meshery End-to-End Tests with mesheryctl -on: - workflow_dispatch: - inputs: - profile_name: - description: "performance profile to use" - required: true - profile_filename: - description: "test configuration file" - required: false - patternfile_url: - description: "URL of the pattern file" - required: false - patternfile_name: - description: "name of the pattern file" - required: false - # scheduled to run at the 43rd minute of every 12th hour - schedule: - - cron: '43 */24 * * *' - -jobs: - manual-test: - name: Manual e2e Test - runs-on: ubuntu-22.04 - if: ${{ github.event_name == 'workflow_dispatch' }} - strategy: - fail-fast: false - matrix: - k8s_version: ['v1.27.3', 'v1.26.6', 'v1.25.11'] - platform: ['docker', 'kubernetes'] - steps: - - name: Setup Kubernetes - uses: manusa/actions-setup-minikube@v2.7.2 - with: - minikube version: 'v1.30.1' - kubernetes version: ${{ matrix.k8s_version }} - driver: docker - - - name: Run minikube tunnel - run: | - echo 'Running minikube tunnel' - minikube tunnel &> /dev/null & - shell: bash - - - name: Get Date - id: date - run: echo "date=date +'%Y-%m-%d-%H.%M.%S'" >> $GITHUB_OUTPUT - - - name: Checkout Code - uses: actions/checkout@master - - - name: Run Performance Tests - uses: layer5io/meshery-smp-action@master - with: - provider_token: ${{ secrets.PROVIDER_TOKEN }} - platform: ${{ matrix.platform }} - profile_name: ${{ github.event.inputs.profile_name }} - profile_filename: ${{ github.event.inputs.profile_filename }} - test_name: '${{ steps.date.outputs.date }}' - - - name: Deploy Service Mesh - run: | - cat ~/auth.json - echo | mesheryctl mesh deploy istio --namespace istio-system -t ~/auth.json ISTIO - sleep 50 - shell: '/bin/bash {0}' - - - name: Apply Pattern - uses: layer5io/meshery-service-mesh-patterns-action@master - with: - provider_token: ${{ secrets.PROVIDER_TOKEN }} - platform: ${{ matrix.platform }} - pattern_url: ${{ github.event.inputs.pattern_url }} - pattern_file: ${{ github.event.inputs.pattern_file }} - - scheduled-test: - name: Scheduled e2e Test - runs-on: ubuntu-22.04 - if: ${{ github.event_name == 'schedule' && github.repository == 'meshery/meshery' }} - strategy: - fail-fast: false - matrix: - k8s_version: ['v1.27.3', 'v1.26.6', 'v1.25.11'] - platform: ['docker', 'kubernetes'] - steps: - - name: Setup Kubernetes - uses: manusa/actions-setup-minikube@v2.7.2 - with: - minikube version: 'v1.30.1' - kubernetes version: ${{ matrix.k8s_version }} - driver: docker - - - name: Run minikube tunnel - run: | - echo 'Running minikube tunnel' - minikube tunnel &> /dev/null & - shell: bash - - - name: Get Date - id: date - run: echo "date=(date +'%Y-%m-%d-%H.%M.%S')" >> $GITHUB_OUTPUT - - - name: Checkout Code - uses: actions/checkout@master - - - name: Run Performance Tests - uses: layer5io/meshery-smp-action@master - with: - provider_token: ${{ secrets.PROVIDER_TOKEN }} - platform: ${{ matrix.platform }} - profile_name: integration-e2e-workflow - profile_filename: integration-test-config.yaml - test_name: '${{ steps.date.outputs.date }}' - - - name: Deploy Service Mesh - run: | - echo | mesheryctl mesh deploy istio --namespace istio-system -t ~/auth.json ISTIO - sleep 50 - shell: '/bin/bash {0}' - - - name: Apply BookInfo Pattern - uses: layer5io/mesheryctl-service-mesh-patterns-action@master - with: - provider_token: ${{ secrets.PROVIDER_TOKEN }} - platform: ${{ matrix.platform }} - pattern_url: https://raw.githubusercontent.com/service-mesh-patterns/service-mesh-patterns/master/samples/bookInfoPattern.yaml - - - name: Apply Circuit Breaker Pattern - uses: layer5io/mesheryctl-service-mesh-patterns-action@master - with: - provider_token: ${{ secrets.PROVIDER_TOKEN }} - platform: ${{ matrix.platform }} - pattern_url: https://raw.githubusercontent.com/service-mesh-patterns/service-mesh-patterns/master/samples/servicemeshcon-na-2021/circuitbreaker.yaml - - - name: Apply Retries Pattern - uses: layer5io/mesheryctl-service-mesh-patterns-action@master - with: - provider_token: ${{ secrets.PROVIDER_TOKEN }} - platform: ${{ matrix.platform }} - pattern_url: https://raw.githubusercontent.com/service-mesh-patterns/service-mesh-patterns/master/samples/servicemeshcon-na-2021/retries.yaml diff --git a/.github/workflows/meshmodel-generators.yml b/.github/workflows/meshmodel-generators.yml deleted file mode 100644 index 89b2fd714c..0000000000 --- a/.github/workflows/meshmodel-generators.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: MeshModel Component Generator and Updater -on: - workflow_dispatch: - schedule: - - cron: "0 0 * * *" -jobs: - run-script: - name: Run Script - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - name: Check out code - uses: actions/checkout@master - with: - token: ${{ secrets.GH_ACCESS_TOKEN }} - fetch-depth: 1 - - - name: Setup Go - uses: actions/setup-go@master - with: - go-version: "1.21" -# - name: Setup Cache -# uses: actions/cache@v3 -# with: -# path: ~/go/pkg/mod -# key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} -# restore-keys: | -# ${{ runner.os }}-go- - - - name: Run component generation (Along with spreadsheet updation) - env: - CRED: ${{ secrets.INTEGRATION_SPREADSHEET_CRED }} - run: | - cd scripts/component_generation; GOPROXY=https://proxy.golang.org,direct GOSUMDB=off go run main.go 1DZHnzxYWOlJ69Oguz4LkRVTFM79kC2tuvdwizOJmeMw - - run: | - cd scripts/component_updater; go build main.go; ./main https://docs.google.com/spreadsheets/d/e/2PACX-1vSgOXuiqbhUgtC9oNbJlz9PYpOEaFVoGNUFMIk4NZciFfQv1ewZg8ahdrWHKI79GkKK9TbmnZx8CqIe/pub\?gid\=0\&single\=true\&output\=csv --system meshery ../../server/meshmodel - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_user_name: l5io - commit_user_email: ci@layer5.io - commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - commit_options: "--signoff" - commit_message: "New Meshmodel components generated" - branch: master - - - name: Send Email on Meshmodel Generators Failure - if: failure() - uses: dawidd6/action-send-mail@v3.7.1 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{ secrets.MAIL_USERNAME }} - password: ${{ secrets.MAIL_PASSWORD }} - subject: GitHub Actions - Workflow Failure - from: | - "Meshmodel Generator" - to: developers@meshery.io - body: | - The GitHub Actions workflow in ${{ github.repository }} has failed. - You can find more details in the GitHub Actions log ${{ github.workflow }}. \ No newline at end of file diff --git a/.github/workflows/multi-platform.yml b/.github/workflows/multi-platform.yml deleted file mode 100644 index f071e6e41d..0000000000 --- a/.github/workflows/multi-platform.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: Multi-Platform Build and Release -on: - release: - types: [published] - pull_request: - branches: - - 'master' - push: - tags: - - 'v*' - branches: - - 'master' - paths-ignore: - - 'docs/**' - - '.github/**' - workflow_dispatch: - inputs: - release-ver: - description: 'Stable Release Version' - required: true - default: 'v' - stripped-release-ver: - description: 'Stripped Stable Release Version' - required: true - default: '' - release-channel: - description: 'Release Channel' - required: true - default: 'edge' - -env: - GIT_VERSION: ${{github.event.inputs.release-ver}} - GIT_STRIPPED_VERSION: ${{github.event.inputs.stripped-release-ver}} - RELEASE_CHANNEL: ${{github.event.inputs.release-channel}} - GIT_TAG: ${{ github.event.release.tag_name }} - -jobs: - print-inputs: - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - - run: | - echo "Dispatched GIT_VERSION: ${{github.event.inputs.release-ver}}" - echo "Dispatched GIT_STRIPPED_VERSION: ${{github.event.inputs.stripped-release-ver}}" - echo "Env RELEASE_CHANNEL: ${{env.RELEASE_CHANNEL}}" - echo "Env GIT_VERSION: ${{env.GIT_VERSION}}" - echo "Env GIT_STRIPPED_VERSION: ${{env.GIT_STRIPPED_VERSION}}" - echo "Env GIT_TAG: ${{ github.event.release.tag_name }}" - echo "Env GITHUB_REF: $GITHUB_REF" - echo "Env GITHUB_REF:" ${GITHUB_REF} - - docker-build: - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - - name: Checkout repo - uses: actions/checkout@master - - - name: Identify Release Values - if: "${{ github.event.inputs.release-ver}} != 'v' }}" - run: | - if [[ ${GITHUB_REF} = refs/tags* ]] - then - echo RELEASE_CHANNEL=stable >> $GITHUB_ENV - else - echo RELEASE_CHANNEL=edge >> $GITHUB_ENV - fi - LATEST_VERSION=$(git ls-remote --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g') >> $GITHUB_ENV - GIT_VERSION=$(git ls-remote --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g') >> $GITHUB_ENV - # GIT_VERSION=$(git describe --tags `git rev-list --tags --max-count=1` --always) - GIT_STRIPPED_VERSION=$(git ls-remote --tags | tail -1 | cut -f2 | sed 's/refs\/tags\///g' | cut -c2-) - echo "Release channel determined to be $RELEASE_CHANNEL" - echo "GIT_LATEST=$LATEST_VERSION" >> $GITHUB_ENV - echo "GIT_VERSION=$GIT_VERSION" >> $GITHUB_ENV - echo "GIT_STRIPPED_VERSION=$GIT_STRIPPED_VERSION" >> $GITHUB_ENV - shell: bash - - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Docker Meta - id: meta - uses: docker/metadata-action@v3 - with: - images: ${{ secrets.IMAGE_NAME }} - flavor: | - latest=false - tags: | - type=raw,value=${{env.RELEASE_CHANNEL}}-{{sha}} - type=semver,pattern={{version}},value=${{env.GIT_STRIPPED_VERSION}} - type=raw,value=${{env.RELEASE_CHANNEL}}-{{tag}},enable=${{ startsWith(github.ref, 'refs/tags/v') }} - type=raw,value=${{env.RELEASE_CHANNEL}}-latest - - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and Push - uses: docker/build-push-action@v2 - with: - context: install/docker/. - push: true - build-args: | - GIT_STRIPPED_VERSION=${{env.GIT_STRIPPED_VERSION}} - GIT_VERSION=${{env.GIT_VERSION}} - RELEASE_CHANNEL=${{env.RELEASE_CHANNEL}} - tags: ${{ steps.meta.outputs.tags }} - platforms: linux/amd64,linux/arm64 -# - -# name: Docker Hub Description -# uses: peter-evans/dockerhub-description@v3 -# with: -# username: ${{ secrets.DOCKER_USERNAME }} -# password: ${{ secrets.DOCKER_PASSWORD }} -# repository: ${{ secrets.IMAGE_NAME }} -# readme-filepath: README.md diff --git a/.github/workflows/notify-providers.yaml b/.github/workflows/notify-providers.yaml deleted file mode 100644 index 1f4c10cda1..0000000000 --- a/.github/workflows/notify-providers.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: Notify Remote Providers -on: - push: -# branches: -# - 'master' - tags: - - 'v*' - paths-ignore: - - 'docs/**' - - 'mesheryctl/**' - -jobs: - notify-meshmap-build: - name: Notify Meshmap Build - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - name: trigger plugins for edge - if: startsWith(github.ref, 'refs/tags/') != true && success() - uses: layer5io/trigger-remote-provider-action@master - with: - name: "Build and Publish" - repo: layer5labs/meshery-extensions - token: ${{ secrets.GH_ACCESS_TOKEN }} - version: master - - name: set env - if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success() - id: vars - run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT - - name: trigger plugins for release - if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success() - uses: layer5io/trigger-remote-provider-action@master - with: - name: "Build and Publish" - repo: layer5labs/meshery-extensions - token: ${{ secrets.GH_ACCESS_TOKEN }} - version: ${{ steps.vars.outputs.tag }} diff --git a/.github/workflows/preview-site.yml b/.github/workflows/preview-site.yml deleted file mode 100644 index e76cc96125..0000000000 --- a/.github/workflows/preview-site.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Deploy Preview -on: - workflow_run: - workflows: - - Build and Preview Site - types: - - completed - -jobs: - deploy-preview: - if: github.repository == 'meshery/meshery' - runs-on: ubuntu-22.04 - steps: - - name: Checkout code - uses: actions/checkout@master - - - name: Download Site dir - uses: dawidd6/action-download-artifact@v2 - with: - github_token: ${{ secrets.GH_ACCESS_TOKEN }} - workflow: build-and-preview-site.yml - run_id: ${{ github.event.workflow_run.id }} - name: site-dir - - - name: Unzip Site - run: | - rm -rf ./docs/_site - unzip site-dir.zip - rm -f site-dir.zip - - - name: Deploy to Netlify - id: netlify - uses: nwtgck/actions-netlify@v1.1 - with: - publish-dir: 'docs/_site' - production-deploy: false - github-token: ${{ secrets.GH_ACCESS_TOKEN }} - enable-commit-comment: false - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - - - name: Comment Deploy URL - uses: ./.github/actions/comment-preview-on-pr - with: - token: ${{ secrets.GH_ACCESS_TOKEN }} - deploy_url: "${{ steps.netlify.outputs.deploy-url }}" - - diff --git a/README.md b/README.md index 302953e2e6..440be21e77 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,17 @@ alt="Meshery Logo" width="70%" />

Meshery follows schema-driven development. As a project, Meshery has different types of schemas. Some schemas are external facing, and some internal to Meshery itself. This repository serves as a central location for storing schemas from which all Meshery components can take reference. + + + + ### External Meshery schemas file structure is defined based on definitions and schemas, checkout [docs.meshery.io](https://docs.meshery.io/concepts/logical) to learn more about definitions and schemas. diff --git a/schema.go b/schema.go new file mode 100644 index 0000000000..4c5b5a6d3e --- /dev/null +++ b/schema.go @@ -0,0 +1,7 @@ +package schemas + +import "embed" + +// go:embed schemas/openapi.yml + +var Schemas embed.FS diff --git a/schemas/constructs/openapi/common/parameters.yml b/schemas/constructs/openapi/common/parameters.yml index 7578041817..c8438ee028 100644 --- a/schemas/constructs/openapi/common/parameters.yml +++ b/schemas/constructs/openapi/common/parameters.yml @@ -232,7 +232,7 @@ components: status: name: status - in: path + in: query description: Get models based on status, e.g 'ignored', 'registered' schema: type: string \ No newline at end of file diff --git a/schemas/constructs/openapi/connection.yml b/schemas/constructs/openapi/connection.yml index c54996e664..3252cc2e8b 100644 --- a/schemas/constructs/openapi/connection.yml +++ b/schemas/constructs/openapi/connection.yml @@ -241,6 +241,8 @@ paths: application/json: schema: $ref: '#/components/schemas/connectionPage' + '401': + $ref: ./common/responses.yml#/401 '500': $ref: ./common/responses.yml#/500 /api/integrations/connections/{connectionId}: @@ -261,6 +263,8 @@ paths: application/json: schema: $ref: '#/components/schemas/connection' + '401': + $ref: ./common/responses.yml#/401 '500': $ref: ./common/responses.yml#/500 /api/integrations/connections/status: @@ -277,6 +281,8 @@ paths: application/json: schema: $ref: '#/components/schemas/connectionsStatusPage' + '401': + $ref: ./common/responses.yml#/401 '500': $ref: ./common/responses.yml#/500 /api/integrations/connections/{connectionKind}: @@ -299,6 +305,8 @@ paths: application/json: schema: type: object + '401': + $ref: ./common/responses.yml#/401 '500': $ref: ./common/responses.yml#/500 security: [] @@ -344,6 +352,8 @@ paths: type: object oneOf: - $ref: '#/components/schemas/k8sContextPersistResponse' + '401': + $ref: ./common/responses.yml#/401 '500': $ref: ./common/responses.yml#/500 /api/integrations/connections/meshery/{mesheryServerID}: diff --git a/schemas/constructs/openapi/k8scontext.yml b/schemas/constructs/openapi/k8scontext.yml deleted file mode 100644 index 800c779cc5..0000000000 --- a/schemas/constructs/openapi/k8scontext.yml +++ /dev/null @@ -1,23 +0,0 @@ -k8sContext: - type: object - properties: - id: - $ref: ./common/core.yml#/components/schemas/id - name: - $ref: ./common/core.yml#/components/schemas/text - auth: - $ref: ./common/core.yml#/components/schemas/map_object - cluster: - $ref: ./common/core.yml#/components/schemas/map_object - server: - type: string - meshery_instance_id: - $ref: ./common/core.yml#/components/schemas/meshery_instance_uuid - kubernetes_server_id: - $ref: ./common/core.yml#/components/schemas/kubernetes_server_uuid - deployment_type: - type: string - updated_at: - $ref: ./common/core.yml#/components/schemas/time - created_at: - $ref: ./common/core.yml#/components/schemas/time \ No newline at end of file diff --git a/schemas/constructs/openapi/patterns.yml b/schemas/constructs/openapi/patterns.yml index c9acc119af..6e834ffe8a 100644 --- a/schemas/constructs/openapi/patterns.yml +++ b/schemas/constructs/openapi/patterns.yml @@ -12,8 +12,8 @@ servers: description: Meshery Cloud staging server URL - url: http://localhost:9876 description: Meshery Cloud development server URL (controlled via PORT environment variable) -security: - - jwt: [] +security: + - jwt: [] tags: - name: patterns description: APIs for patterns @@ -45,18 +45,18 @@ components: deleted: type: boolean created_at: - $ref: ./common/core.yml#/components/schemas/time + $ref: ./common/core.yml#/components/schemas/time updated_at: $ref: ./common/core.yml#/components/schemas/time mesheryPatternResourcePage: allOf: - - $ref: ./common/core.yml#/components/schemas/resultsPage - - type: object - properties: - resources: - type: array - items: - $ref: '#/components/schemas/mesheryPatternResource' + - $ref: ./common/core.yml#/components/schemas/resultsPage + - type: object + properties: + resources: + type: array + items: + $ref: "#/components/schemas/mesheryPatternResource" mesheryPattern: properties: id: @@ -81,20 +81,20 @@ components: $ref: ./common/core.yml#/components/schemas/time mesheryPatternPage: allOf: - - $ref: ./common/core.yml#/components/schemas/resultsPage - - type: object - properties: - patterns: - type: array - items: - $ref: '#/components/schemas/mesheryPattern' + - $ref: ./common/core.yml#/components/schemas/resultsPage + - type: object + properties: + patterns: + type: array + items: + $ref: "#/components/schemas/mesheryPattern" deletePatternModel: properties: id: $ref: ./common/core.yml#/components/schemas/id name: - description: Pattern name - $ref: ./common/core.yml#/components/schemas/text + description: Pattern name + $ref: ./common/core.yml#/components/schemas/text requestBodies: mesheryPatternResource: @@ -119,7 +119,7 @@ components: save: type: boolean pattern_data: - $ref: '#/components/schemas/mesheryPattern' + $ref: "#/components/schemas/mesheryPattern" mesheryPatternDeleteRequestBody: description: Body for deleting meshery pattern required: true @@ -131,8 +131,8 @@ components: patterns: type: array items: - $ref: '#/components/schemas/deletePatternModel' - + $ref: "#/components/schemas/deletePatternModel" + designShare: description: Body for sharing design required: true @@ -148,15 +148,10 @@ components: type: string share: type: boolean - required: [ - emails, - id, - content_type, - share - ] + required: [emails, id, content_type, share] paths: - #designs + #designs /api/content/patterns/resource: post: tags: @@ -165,18 +160,17 @@ paths: summary: Upsert Pattern resource description: It will insert the pattern resource if not present else it will update the matching entry requestBody: - - $ref: '#/components/requestBodies/mesheryPatternResource' + $ref: "#/components/requestBodies/mesheryPatternResource" responses: - '200': + "200": description: Meshery pattern resource content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResource' - '401': + $ref: "#/components/schemas/mesheryPatternResource" + "401": $ref: ./common/responses.yml#/401 - '500': + "500": $ref: ./common/responses.yml#/500 get: tags: @@ -185,25 +179,25 @@ paths: summary: Get Pattern resources description: Get paginated pattern resources parameters: - - $ref: ./common/parameters.yml#/page - - $ref: ./common/parameters.yml#/page_size - - $ref: ./common/parameters.yml#/search - - $ref: ./common/parameters.yml#/order - - $ref: ./common/parameters.yml#/namespace - - $ref: ./common/parameters.yml#/type - - $ref: ./common/parameters.yml#/oamType - - $ref: ./common/parameters.yml#/name + - $ref: ./common/parameters.yml#/components/schemas/page + - $ref: ./common/parameters.yml#/components/schemas/page_size + - $ref: ./common/parameters.yml#/components/schemas/search + - $ref: ./common/parameters.yml#/components/schemas/order + - $ref: ./common/parameters.yml#/components/schemas/namespace + - $ref: ./common/parameters.yml#/components/schemas/type + - $ref: ./common/parameters.yml#/components/schemas/oamType + - $ref: ./common/parameters.yml#/components/schemas/name description: Name responses: - '200': + "200": description: Meshery pattern resources content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResourcePage' - '401': + $ref: "#/components/schemas/mesheryPatternResourcePage" + "401": $ref: ./common/responses.yml#/401 - '500': + "500": $ref: ./common/responses.yml#/500 /api/content/patterns/resource/{id}: get: @@ -213,21 +207,21 @@ paths: summary: Pattern Resource by ID description: Get Pattern Resource By ID parameters: - - $ref: ./common/parameters.yml#/id + - $ref: ./common/parameters.yml#/components/schemas/id responses: - '200': + "200": description: Meshery pattern resource associated with id content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResource' - '400': + $ref: "#/components/schemas/mesheryPatternResource" + "400": $ref: ./common/responses.yml#/400 - '401': + "401": $ref: ./common/responses.yml#/401 - '404': + "404": $ref: ./common/responses.yml#/404 - '500': + "500": $ref: ./common/responses.yml#/500 delete: tags: @@ -236,21 +230,21 @@ paths: summary: Delete pattern resource description: Delete pattern resource associated with id parameters: - - $ref: ./common/parameters.yml#/id + - $ref: ./common/parameters.yml#/components/schemas/id responses: - '200': + "200": description: Deleted meshery pattern resource associated with id content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResource' - '400': + $ref: "#/components/schemas/mesheryPatternResource" + "400": $ref: ./common/responses.yml#/400 - '401': + "401": $ref: ./common/responses.yml#/401 - '404': + "404": $ref: ./common/responses.yml#/404 - '500': + "500": $ref: ./common/responses.yml#/500 /api/content/patterns: post: @@ -260,22 +254,22 @@ paths: summary: Upsert Pattern description: It will insert the pattern if not present else it will update the matching entry requestBody: - $ref: '#/components/requestBodies/mesheryPatternRequestBody' + $ref: "#/components/requestBodies/mesheryPatternRequestBody" responses: - '200': + "200": description: Upserted pattern content: application/json: schema: type: array items: - $ref: '#/components/schemas/mesheryPattern' - '400': - $ref: ./common/responses.yml#/400 - '401': + $ref: "#/components/schemas/mesheryPattern" + "400": + $ref: ./common/responses.yml#/400 + "401": $ref: ./common/responses.yml#/401 - '500': - $ref: ./common/responses.yml#/500 + "500": + $ref: ./common/responses.yml#/500 get: tags: - patterns @@ -283,20 +277,20 @@ paths: summary: Get Patterns description: Get paginated patterns parameters: - - $ref: ./common/parameters.yml#/page - - $ref: ./common/parameters.yml#/page_size - - $ref: ./common/parameters.yml#/search - - $ref: ./common/parameters.yml#/order + - $ref: ./common/parameters.yml#/components/schemas/page + - $ref: ./common/parameters.yml#/components/schemas/page_size + - $ref: ./common/parameters.yml#/components/schemas/search + - $ref: ./common/parameters.yml#/components/schemas/order responses: - '200': + "200": description: Patterns content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternPage' - '401': + $ref: "#/components/schemas/mesheryPatternPage" + "401": $ref: ./common/responses.yml#/401 - '500': + "500": $ref: ./common/responses.yml#/500 delete: tags: @@ -305,19 +299,19 @@ paths: summary: Delete patterns description: Delete patterns with the provided ids requestBody: - $ref: '#/components/requestBodies/mesheryPatternDeleteRequestBody' + $ref: "#/components/requestBodies/mesheryPatternDeleteRequestBody" responses: - '200': + "200": description: Deleted pattern content: application/json: schema: - $ref: '#/components/schemas/mesheryPattern' - '400': + $ref: "#/components/schemas/mesheryPattern" + "400": $ref: ./common/responses.yml#/400 - '401': + "401": $ref: ./common/responses.yml#/401 - '500': + "500": $ref: ./common/responses.yml#/500 /api/content/patterns/{id}: get: @@ -327,21 +321,21 @@ paths: summary: Get pattern by ID description: Get pattern by ID parameters: - - $ref: ./common/parameters.yml#/id + - $ref: ./common/parameters.yml#/components/schemas/id responses: - '200': + "200": description: Pattern associated with ID content: application/json: schema: - $ref: '#/components/schemas/mesheryPattern' - '400': + $ref: "#/components/schemas/mesheryPattern" + "400": $ref: ./common/responses.yml#/400 - '401': + "401": $ref: ./common/responses.yml#/401 - '404': + "404": $ref: ./common/responses.yml#/404 - '500': + "500": $ref: ./common/responses.yml#/500 delete: tags: @@ -350,21 +344,21 @@ paths: summary: Delete pattern by ID description: Delete pattern associated with ID parameters: - - $ref: ./common/parameters.yml#/id + - $ref: ./common/parameters.yml#/components/schemas/id responses: - '200': + "200": description: Deleted pattern content: application/json: schema: - $ref: '#/components/schemas/mesheryPattern' - '400': + $ref: "#/components/schemas/mesheryPattern" + "400": $ref: ./common/responses.yml#/400 - '401': + "401": $ref: ./common/responses.yml#/401 - '404': + "404": $ref: ./common/responses.yml#/404 - '500': + "500": $ref: ./common/responses.yml#/500 /api/content/patterns/clone/{id}: post: @@ -374,7 +368,7 @@ paths: summary: Clone pattern description: Clone pattern associated with ID parameters: - - $ref: ./common/parameters.yml#/id + - $ref: ./common/parameters.yml#/components/schemas/id requestBody: description: Body for cloning design required: true @@ -387,13 +381,13 @@ paths: required: - name responses: - '200': + "200": $ref: ./common/responses.yml#/200 - '400': + "400": $ref: ./common/responses.yml#/400 - '401': + "401": $ref: ./common/responses.yml#/401 - '500': + "500": $ref: ./common/responses.yml#/500 /api/content/design/share: post: @@ -403,17 +397,17 @@ paths: summary: Design Share description: Share design with others requestBody: - $ref: '#/components/requestBodies/designShare' + $ref: "#/components/requestBodies/designShare" responses: - '200': + "200": $ref: ./common/responses.yml#/200 - '401': + "401": $ref: ./common/responses.yml#/401 - '403': + "403": description: Only owner have access to changing sharing mode content: text/plain: schema: type: string - '500': - $ref: ./common/responses.yml#/500 \ No newline at end of file + "500": + $ref: ./common/responses.yml#/500 diff --git a/schemas/constructs/openapi/roles.yml b/schemas/constructs/openapi/roles.yml index 83016a5d2c..e821abd120 100644 --- a/schemas/constructs/openapi/roles.yml +++ b/schemas/constructs/openapi/roles.yml @@ -1,4 +1,4 @@ -openapi: 3.1.0 +openapi: 3.0.0 info: title: Meshery Cloud description: Documentation for meshery Cloud REST APIs @@ -15,72 +15,70 @@ servers: tags: - name: roles description: APIs for roles -security: - - jwt: [] +security: + - jwt: [] components: securitySchemes: jwt: type: http scheme: Bearer bearerFormat: JWT -schemas: - roleHolderRequest: + schemas: + roleHolderRequest: type: object properties: role_names: - $ref: '#/components/roleNames' + $ref: ./common/core.yml#/components/schemas/roleNames email: - $ref: '#/components/email' - required: [ - role_names, - email - ] + $ref: ./common/core.yml#/components/schemas/email + required: [role_names, email] - role: - type: object - properties: - id: - $ref: ../common.yml#/id - user_id: - $ref: ../common.yml#/user_id - username: - $ref: ../common.yml#/username - email: - $ref: ../common.yml#/email - first_name: - $ref: ../common.yml#/text - description: First Name - last_name: - $ref: ../common.yml#/text - description: Last Name - status: - $ref: ../common.yml#/status - role_names: - $ref: ../common.yml#/roleNames - created_at: - $ref: ../common.yml#/time - updated_at: - $ref: ../common.yml#/time - last_login_time: - $ref: ../common.yml#/time - deleted_at: - $ref: ../common.yml#/time - prefs: - $ref: '#/email_preference' - required: [ - id, - user_id, - username, - email, - first_name, - last_name, - status, - role_names, - created_at, - updated_at, - last_login_time, - deleted_at, - ] + role: + type: object + properties: + id: + $ref: ./common/core.yml#/components/schemas/id + user_id: + $ref: ./common/core.yml#/components/schemas/user_id + username: + $ref: ./common/core.yml#/components/schemas/username + email: + $ref: ./common/core.yml#/components/schemas/email + first_name: + $ref: ./common/core.yml#/components/schemas/text + description: First Name + last_name: + $ref: ./common/core.yml#/components/schemas/text + description: Last Name + status: + $ref: ./common/core.yml#/components/schemas/status + role_names: + $ref: ./common/core.yml#/components/schemas/roleNames + created_at: + $ref: ./common/core.yml#/components/schemas/time + updated_at: + $ref: ./common/core.yml#/components/schemas/time + last_login_time: + $ref: ./common/core.yml#/components/schemas/time + deleted_at: + $ref: ./common/core.yml#/components/schemas/time + prefs: + $ref: ./common/core.yml#/components/schemas/email_preference + required: + [ + id, + user_id, + username, + email, + first_name, + last_name, + status, + role_names, + created_at, + updated_at, + last_login_time, + deleted_at, + ] paths: /system/roles: get: @@ -90,7 +88,7 @@ paths: summary: Get All Roles description: Get All supported roles responses: - '200': + "200": description: Get all roles content: application/json: @@ -98,11 +96,11 @@ paths: type: array items: type: string - '401': - $ref: ../responses.yml#/401 - '500': - $ref: ../responses.yml#/500 - + "401": + $ref: ./common/responses.yml#/401 + "500": + $ref: ./common/responses.yml#/500 + post: tags: - roles @@ -115,15 +113,15 @@ paths: content: application/json: schema: - $ref: '#/roleHolderRequest' + $ref: "#/components/schemas/roleHolderRequest" responses: - '200': - $ref: ../responses.yml#/200 - '401': - $ref: ../responses.yml#/401 - '500': - $ref: ../responses.yml#/500 - + "200": + $ref: ./common/responses.yml#/200 + "401": + $ref: ./common/responses.yml#/401 + "500": + $ref: ./common/responses.yml#/500 + /system/roles/edit: post: tags: @@ -137,16 +135,16 @@ paths: content: application/json: schema: - $ref: '#/role' + $ref: "#/components/schemas/role" responses: - '200': - $ref: ../responses.yml#/200 - '400': - $ref: ../responses.yml#/400 - '401': - $ref: ../responses.yml#/401 - '500': - $ref: ../responses.yml#/500 + "200": + $ref: ./common/responses.yml#/200 + "400": + $ref: ./common/responses.yml#/400 + "401": + $ref: ./common/responses.yml#/401 + "500": + $ref: ./common/responses.yml#/500 /system/roles/edit/bulk: post: @@ -163,16 +161,16 @@ paths: schema: type: array items: - $ref: '#/role' + $ref: "#/components/schemas/role" responses: - '201': - $ref: ../responses.yml#/201 - '400': - $ref: ../responses.yml#/400 - '401': - $ref: ../responses.yml#/401 - '500': - $ref: ../responses.yml#/500 + "201": + $ref: ./common/responses.yml#/201 + "400": + $ref: ./common/responses.yml#/400 + "401": + $ref: ./common/responses.yml#/401 + "500": + $ref: ./common/responses.yml#/500 /system/roles/{id}: delete: @@ -182,18 +180,18 @@ paths: summary: Delete Role description: Edit roles of user in bulk parameters: - - $ref: ../parameters.yml#/id + - $ref: ./common/parameters.yml#/components/schemas/id required: true responses: - '201': + "201": description: Deleted roles content: application/json: schema: type: array items: - $ref: '#/role' - '401': - $ref: ../responses.yml#/401 - '500': - $ref: ../responses.yml#/500 \ No newline at end of file + $ref: "#/components/schemas/role" + "401": + $ref: ./common/responses.yml#/401 + "500": + $ref: ./common/responses.yml#/500 diff --git a/schemas/constructs/openapi/users.yml b/schemas/constructs/openapi/users.yml index b7e59c663a..97949a112d 100644 --- a/schemas/constructs/openapi/users.yml +++ b/schemas/constructs/openapi/users.yml @@ -1,4 +1,4 @@ -openapi: 3.1.0 +openapi: 3.0.0 info: title: Meshery Cloud description: Documentation for meshery Cloud REST APIs @@ -51,13 +51,6 @@ components: user_ids, user_emails ] - email_preference: - type: object - properties: - welcome_email: - type: boolean - notify_role_change: - type: boolean user: type: object properties: diff --git a/schemas/constructs/v1alpha1/catalog_data.json b/schemas/constructs/v1alpha1/catalog_data.json index aacfbaa24f..8f2007383f 100644 --- a/schemas/constructs/v1alpha1/catalog_data.json +++ b/schemas/constructs/v1alpha1/catalog_data.json @@ -1,81 +1,73 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "publishedVersion": { - "description": "Tracks the specific content version that has been made available in the Catalog.", - "type": "string" - }, - "class": { - "description": "Published content is classifed by its support level. Content classes help you understand the origin and expected support level for each piece of content. It is important to note that the level of support may vary within each class, and you should exercise discretion when using community-contributed content.", - "type": "string", - "enum": [ - "official", - "verified", - "project", - "community" - ], - "enumDescriptions": [ - "Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable.", - "Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility.", - "Content produced and supported by the respective project or organization responsible for the specific technology. This class offers a level of support from the project maintainers themselves.", - "Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Community content may have varying levels of support and reliability." - ] - }, - "compatibility": { - "type": "array", - "title": "Model", - "items": { - "enum": [ - "kubernetes" - ], - "type": "string" - }, - "uniqueItems": true, - "$comment": "Content published into the catalog must reference at least one model, and by implication, contain at least one component.", - "minItems": 1, - "description": "One or more models associated with this catalog item. For designs, a list of one or more models implicated by components within the design. For models, this is self-referential." - }, - "pattern_caveats": { - "type": "string", - "title": "Caveats and Considerations", - "description": "Specific stipulations to consider and known behaviors to be aware of when using this design." - }, - "pattern_info": { - "type": "string", - "title": "Description", - "description": "Purpose of the design along with its intended and unintended uses." - }, - "type": { - "type": "string", - "title": "Type", - "enum": [ - "Deployment", - "Observability", - "Resiliency", - "Scaling", - "Security", - "Traffic-management", - "Troubleshooting", - "Workloads" - ], - "default": "Deployment", - "description": "Categorization of the type of design or operational flow depicted in this design." - }, - "snapshotURL": { - "type": "array", - "items": { - "type": "string", - "format": "uri", - "pattern": "^(https?|http?|oci)://" - }, - "description": "Contains reference to the dark and light mode snapshots of the design." - } + "type": "object", + "properties": { + "publishedVersion": { + "description": "Tracks the specific content version that has been made available in the Catalog.", + "type": "string" }, - "required": [ - "compatibility", - "pattern_caveats", - "pattern_info", - "type" - ] -} + "class": { + "description": "Published content is classifed by its support level. Content classes help you understand the origin and expected support level for each piece of content. It is important to note that the level of support may vary within each class, and you should exercise discretion when using community-contributed content. Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable. Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility. Content produced and supported by the respective project or organization responsible for the specific technology. This class offers a level of support from the project maintainers themselves. Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Community content may have varying levels of support and reliability.", + "type": "string", + "enum": [ + "official", + "verified", + "project", + "community" + ] + }, + "compatibility": { + "type": "array", + "title": "Model", + "items": { + "enum": [ + "kubernetes" + ], + "type": "string" + }, + "uniqueItems": true, + "minItems": 1, + "description": "One or more models associated with this catalog item. For designs, a list of one or more models implicated by components within the design. For models, this is self-referential." + }, + "pattern_caveats": { + "type": "string", + "title": "Caveats and Considerations", + "description": "Specific stipulations to consider and known behaviors to be aware of when using this design." + }, + "pattern_info": { + "type": "string", + "title": "Description", + "description": "Purpose of the design along with its intended and unintended uses." + }, + "type": { + "type": "string", + "title": "Type", + "enum": [ + "Deployment", + "Observability", + "Resiliency", + "Scaling", + "Security", + "Traffic-management", + "Troubleshooting", + "Workloads" + ], + "default": "Deployment", + "description": "Categorization of the type of design or operational flow depicted in this design." + }, + "snapshotURL": { + "type": "array", + "items": { + "type": "string", + "format": "uri", + "pattern": "^(https?|http?|oci)://" + }, + "description": "Contains reference to the dark and light mode snapshots of the design." + } + }, + "required": [ + "compatibility", + "pattern_caveats", + "pattern_info", + "type" + ] +} \ No newline at end of file diff --git a/schemas/constructs/v1alpha2/connection.yml b/schemas/constructs/v1alpha2/connection.yml deleted file mode 100644 index b1d489f7ac..0000000000 --- a/schemas/constructs/v1alpha2/connection.yml +++ /dev/null @@ -1,334 +0,0 @@ -openapi: 3.1.0 -info: - title: Meshery Cloud - description: Documentation for Meshery Cloud REST APIs - contact: - email: support@layer5.io - version: v0.6.394 -servers: - - url: https://meshery.layer5.io - description: Meshery Cloud production server URL - - url: https://staging-meshery.layer5.io - description: Meshery Cloud staging server URL - - url: http://localhost:9876 - description: Meshery Cloud development server URL (controlled via PORT environment variable) -security: - - jwt: [] -tags: -- name: integrations - description: APIs for integrations - -components: - schemas: - mesheryInstance: - properties: - id: - $ref: ./common/core.yml#/components/schemas/id - description: Connection id - name: - $ref: ./common/core.yml#/components/schemas/text - description: Connection name - server_id: - $ref: ./common/core.yml#/components/schemas/text - description: Connected server id - server_version: - $ref: ./common/core.yml#/components/schemas/text - description: Running server version - server_location: - $ref: ./common/core.yml#/components/schemas/endpoint - server_build_sha: - $ref: ./common/core.yml#/components/schemas/text - description: Server build SHA - created_at: - $ref: ./common/core.yml#/components/schemas/time - updated_at: - $ref: ./common/core.yml#/components/schemas/time - deleted_at: - $ref: ./common/core.yml#/components/schemas/time - status: - $ref: ./common/core.yml#/components/schemas/text - description: Status - connection: - properties: - id: - $ref: ./common/core.yml#/components/schemas/id - description: ID - name: - $ref: ./common/core.yml#/components/schemas/text - description: Connection Name - credential_id: - $ref: ./common/core.yml#/components/schemas/credential_uuid - description: Credential ID - type: - $ref: ./common/core.yml#/components/schemas/text - description: Connection Type - sub_type: - $ref: ./common/core.yml#/components/schemas/text - description: Connection Subtype - kind: - $ref: ./common/core.yml#/components/schemas/text - description: Connection Kind - metadata: - $ref: ./common/core.yml#/components/schemas/map_object - status: - description: Connection Status - type: string - enum: [ - "discovered", - "registered", - "connected", - "ignored", - "maintenance", - "disconnected", - "deleted", - "not found" - ] - user_id: - $ref: ./common/core.yml#/components/schemas/user_uuid - x-go-name: UserID - created_at: - $ref: ./common/core.yml#/components/schemas/time - updated_at: - $ref: ./common/core.yml#/components/schemas/time - deleted_at: - $ref: ./common/core.yml#/components/schemas/time - connectionPage: - allOf: - - $ref: ./common/core.yml#/components/schemas/resultsPage - - type: object - properties: - connections: - type: array - items: - $ref: '#/components/schemas/connection' - connectionStatusInfo: - properties: - status: - $ref: ./common/core.yml#/components/schemas/text - description: Connection status - count: - type: integer - description: Number of connections having the status - connectionsStatusPage: - properties: - connections_status: - type: array - items: - $ref: '#/components/schemas/connectionStatusInfo' - - k8sContextPersistResponse: - properties: - k8sContext: - $ref: './k8sContext.yml#/k8sContext' - inserted: - type: boolean - - requestBodies: - connectionPayload: - content: - application/json: - schema: - type: object - properties: - kind: - $ref: ./common/core.yml#/components/schemas/text - description: Kind - type: - $ref: ./common/core.yml#/components/schemas/text - description: Connection type - sub_type: - $ref: ./common/core.yml#/components/schemas/text - description: Connection subtype - credential_secret: - $ref: ./common/core.yml#/components/schemas/map_object - metadata: - $ref: ./common/core.yml#/components/schemas/map_object - securitySchemes: - jwt: - type: http - scheme: Bearer - bearerFormat: JWT -# any special parameters for this tag - parameters: - connectionKind: - name: connectionKind - in: path - description: 'Connection kind (eg: Meshery)' - required: true - schema: - $ref: ./common/core.yml#/components/schemas/text - connectionId: - name: connectionId - in: path - description: Connection ID - schema: - $ref: ./common/core.yml#/components/schemas/id - required: true - serverId: - name: mesheryServerID - in: path - description: Meshery server ID - schema: - $ref: ./common/core.yml#/components/schemas/id - required: true -# any special response for this tag -paths: - /api/integrations/connections: - post: - tags: - - integrations - operationId: RegisterConnection - summary: Register Connection - description: Register with Meshery Cloud - requestBody: - $ref: '#/components/requestBodies/connectionPayload' - responses: - '200': - description: Inserted connection - content: - application/json: - schema: - $ref: '#/components/schemas/connection' - '401': - $ref: ./common/responses.yml#/401 - '500': - $ref: ./common/responses.yml#/500 - get: - tags: - - integrations - operationId: GetConnections - summary: Get connections - description: Get connections - parameters: - - $ref: ./common/parameters.yml#/components/schemas/page - - $ref: ./common/parameters.yml#/components/schemas/page_size - - $ref: ./common/parameters.yml#/components/schemas/search - - $ref: ./common/parameters.yml#/components/schemas/order - responses: - '200': - description: Paginated list of connections - content: - application/json: - schema: - $ref: '#/components/schemas/connectionPage' - '500': - $ref: ./common/responses.yml#/500 - /api/integrations/connections/{connectionId}: - put: - tags: - - integrations - operationId: EditConnectionByID - summary: Edit Connection by ID - description: Edit registered connection using the connection ID - parameters: - - $ref: '#/components/parameters/connectionId' - requestBody: - $ref: '#/components/requestBodies/connectionPayload' - responses: - '200': - description: Edited connection - content: - application/json: - schema: - $ref: '#/components/schemas/connection' - '500': - $ref: ./common/responses.yml#/500 - /api/integrations/connections/status: - get: - tags: - - integrations - operationId: GetConnectionStatus - summary: Get status of all connections - description: Get summary about the status of all connections - responses: - '200': - description: Status of connections - content: - application/json: - schema: - $ref: '#/components/schemas/connectionsStatusPage' - '500': - $ref: ./common/responses.yml#/500 - /api/integrations/connections/{connectionKind}: - get: - tags: - - integrations - operationId: GetConnectionsByKind - summary: Get connections by kind - description: Get connections by kind - parameters: - - $ref: '#/components/parameters/connectionKind' - - $ref: ./common/parameters.yml#/components/schemas/page - - $ref: ./common/parameters.yml#/components/schemas/page_size - - $ref: ./common/parameters.yml#/components/schemas/search - - $ref: ./common/parameters.yml#/components/schemas/order - responses: - '200': - description: Connections by kind - content: - application/json: - schema: - type: object - '500': - $ref: ./common/responses.yml#/500 - security: [] - delete: - tags: - - integrations - operationId: DeleteConnection - summary: Delete connection - description: Delete registered connection - parameters: - - $ref: '#/components/parameters/connectionKind' - responses: - '200': - description: Deleted connection - content: - application/json: - schema: - $ref: '#/components/schemas/connection' - '401': - $ref: ./common/responses.yml#/401 - '500': - $ref: ./common/responses.yml#/500 - /api/integrations/connections/{connectionKind}/{connectionId}: - get: - tags: - - integrations - operationId: GetConnectionsByKindAndConnectionID - summary: Get connections by kind and connectionID. - description: Get connections by kind (kind is required because this API returns the results in non std format of a connection) - parameters: - - $ref: '#/components/parameters/connectionKind' - - $ref: '#/components/parameters/connectionId' - - $ref: './common/parameters.yml#/components/schemas/page' - - $ref: ./common/parameters.yml#/components/schemas/page_size - - $ref: './common/parameters.yml#/components/schemas/search' - - $ref: './common/parameters.yml#/components/schemas/order' - responses: - '200': - description: Connections by kind - content: - application/json: - schema: - type: object - oneOf: - - $ref: '#/components/schemas/k8sContextPersistResponse' - '500': - $ref: ./common/responses.yml#/500 - /api/integrations/connections/meshery/{mesheryServerID}: - delete: - tags: - - integrations - operationId: DeleteMesheryConnection - summary: Delete Meshery connection - description: Deletes a given meshery connection. This is generally used for deleting connections from Meshery Server UI where UI is not aware of connection IDs. - parameters: - - $ref: '#/components/parameters/serverId' - responses: - '200': - $ref: ./common/responses.yml#/200 - '401': - $ref: ./common/responses.yml#/401 - '500': - $ref: ./common/responses.yml#/500 diff --git a/schemas/constructs/v1alpha2/design.json b/schemas/constructs/v1alpha2/design.json index 32b776b3b2..33753c613f 100644 --- a/schemas/constructs/v1alpha2/design.json +++ b/schemas/constructs/v1alpha2/design.json @@ -1,5 +1,4 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", "title": "Design Schema", "description": "Schema for design in v1Beta1", "type": "object", @@ -9,12 +8,10 @@ "description": "Name of the design" }, "schemaVersion": { - "$comment": "Not mandating the schemaVersion in v1alpha2 of design schema as it will lead to exisitng designs be incompatible. We will be migrating to v1beta1 and ensuring the compatibility with exisiting design in v1beta1", "type": "string", "description": "Specifies the version of the schema to which the design conforms." }, "version": { - "$comment": "Not mandating the version in v1alpha2 of design schema as it will lead to exisitng designs be incompatible. We will be migrating to v1beta1 and ensuring the compatibility with exisiting design in v1beta1", "type": "string", "description": "Version of the design", "minLength": 1, diff --git a/schemas/openapi.yml b/schemas/openapi.yml new file mode 100644 index 0000000000..98f8c8319d --- /dev/null +++ b/schemas/openapi.yml @@ -0,0 +1,4150 @@ +openapi: 3.0.0 +info: + title: Meshery Cloud + description: Documentation for meshery Cloud REST APIs + contact: + email: support@layer5.io + version: v0.6.394 +servers: + - url: https://meshery.layer5.io + description: Meshery Cloud production server URL + - url: https://staging-meshery.layer5.io + description: Meshery Cloud staging server URL + - url: http://localhost:9876 + description: >- + Meshery Cloud development server URL (controlled via PORT environment + variable) +tags: + - name: applications + description: APIs for applications + x-displayName: applications + - name: capabilities + description: APIs for remote provider capablities + x-displayName: capabilities + - name: catalog + description: APIs for catalog + x-displayName: catalog + - name: collaboration + description: APIs for collaboration + x-displayName: collaboration + - name: integrations + description: APIs for integrations + x-displayName: integrations + - name: credentials + description: APIs for Credentials + x-displayName: credentials + - name: events + description: APIs for events + x-displayName: events + - name: filters + description: APIs for filters + x-displayName: filters + - name: meshery_models + description: APIs for Meshery models + x-displayName: meshery_models + - name: patterns + description: APIs for patterns + x-displayName: patterns + - name: roles + description: APIs for roles + x-displayName: roles + - name: smp_profile + description: APIs for Service Mesh Performace profile + x-displayName: smp_profile + - name: service mesh performance + x-displayName: service mesh performance + - name: tokens + description: APIs for tokens + x-displayName: tokens + - name: user tokens + x-displayName: user tokens + - name: users + description: APIs for users + x-displayName: users +paths: + /api/content/applications: + post: + tags: + - applications + operationId: UpsertApplication + summary: Upsert Application + description: >- + It will insert the application if not present else it will update the + matching entry + requestBody: + $ref: '#/components/requestBodies/mesheryApplicationRequestBody' + responses: + '200': + description: Upserted application + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/mesheryApplication' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + get: + tags: + - applications + operationId: GetApplications + summary: Get Applications + description: Get paginated applications + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Applications + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryApplicationPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/applications/upload/{id}: + post: + tags: + - applications + operationId: UpsertApplicationSourceContent + summary: Upsert application source content + description: Upserts only application source content + parameters: + - $ref: '#/components/parameters/id' + requestBody: + description: Body for upserting meshery application source content + required: true + content: + text/plain: + schema: + $ref: >- + #/components/schemas/mesheryApplication/properties/source_content + responses: + '200': + $ref: '#/components/responses/200' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/applications/download/{id}: + get: + tags: + - applications + operationId: GetApplicationSourceContent + summary: Get application source content + description: Get application source content + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: application source content associated with ID + content: + text/plain: + schema: + $ref: >- + #/components/schemas/mesheryApplication/properties/source_content + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/applications/{id}: + get: + tags: + - applications + operationId: GetApplication + summary: Get application by ID + description: Get application by ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: application associated with ID + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryApplication' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - applications + operationId: DeleteApplication + summary: Delete application by ID + description: Delete application associated with ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Deleted application + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryApplication' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /capabilities: + get: + deprecated: true + tags: + - capabilities + operationId: GetCapabilitie + summary: Capabilities + description: Get available capabilities for logged in user + parameters: + - $ref: '#/components/parameters/os' + - $ref: '#/components/parameters/playground' + responses: + '200': + description: capabilities + content: + application/json: + schema: + $ref: '#/components/schemas/capability' + '500': + $ref: '#/components/responses/500' + security: [] + /{meshery-version}/capabilities: + get: + tags: + - capabilities + operationId: GetCapabilities + summary: Capabilities By server version + description: Get available capabilities for logged in user + parameters: + - $ref: '#/components/parameters/mesheryVersion' + - $ref: '#/components/parameters/os' + - $ref: '#/components/parameters/playground' + responses: + '200': + description: capabilities + content: + application/json: + schema: + $ref: '#/components/schemas/capability' + '500': + $ref: '#/components/responses/500' + security: [] + /api/catalog/requests/approve: + post: + tags: + - catalog + operationId: ApproveCatalogRequest + summary: Approve Catalog Request + description: Approve Catalog Request + requestBody: + $ref: '#/components/requestBodies/mesheryCatalogRequest' + responses: + '201': + $ref: '#/components/responses/201' + '401': + $ref: '#/components/responses/401' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/catalog/requests/deny: + post: + tags: + - catalog + operationId: DenyCatalogRequest + summary: Deny Catalog Request + description: Deny Catalog Request + requestBody: + $ref: '#/components/requestBodies/mesheryCatalogRequest' + responses: + '201': + $ref: '#/components/responses/201' + '401': + $ref: '#/components/responses/401' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/catalog/requests: + get: + tags: + - catalog + operationId: GetCatalogRequest + summary: Catalog Request + description: >- + Get all catalog requests (approved, denied or pending) in a paginated + manner + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + - $ref: '#/components/parameters/requestFilter' + responses: + '200': + description: Catalog requests + content: + application/json: + schema: + $ref: '#/components/schemas/catalogRequestsPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/catalog/content/{type}: + get: + tags: + - catalog + operationId: GetCatalogContent + summary: Get Catalog Content + description: Get catalog content by type + parameters: + - $ref: '#/components/parameters/catalogContentType' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: catalog content + content: + application/json: + schema: + oneOf: + - type: object + properties: + page: + type: integer + page_size: + type: integer + total_count: + type: integer + patterns: + type: array + items: + $ref: '#/components/schemas/mesheryPattern' + - type: object + properties: + page: + type: integer + page_size: + type: integer + total_count: + type: integer + filters: + type: array + items: + $ref: '#/components/schemas/mesheryFilter' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + post: + tags: + - catalog + operationId: PublishCatalogContent + summary: Publish Catalog Content + description: >- + Sets the visibility of catalog content to published and sets CatalogData + (if called by ADMIN or CURATOR), otherwise it pushes the request to + CatalogRequests Table + parameters: + - $ref: '#/components/parameters/catalogContentType' + requestBody: + $ref: '#/components/requestBodies/mesheryCatalogRequest' + responses: + '200': + $ref: '#/components/responses/200' + '401': + $ref: '#/components/responses/401' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - catalog + operationId: UnPublishCatalogContent + summary: Unpublish Catalog Content + description: >- + Sets the visibility of catalog content to private and removes the + content from website (if called by ADMIN or CURATOR), otherwise rejects + the request + parameters: + - $ref: '#/components/parameters/catalogContentType' + requestBody: + $ref: '#/components/requestBodies/mesheryCatalogRequest' + responses: + '200': + $ref: '#/components/responses/200' + '401': + $ref: '#/components/responses/401' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /collaboration: + get: + tags: + - collaboration + operationId: CollaborationHandler + summary: Collaboration + description: Collaboration + security: [] + responses: + '101': + description: initate cross server collaboration + /api/integrations/connections: + post: + tags: + - integrations + operationId: RegisterConnection + summary: Register Connection + description: Register with Meshery Cloud + requestBody: + $ref: '#/components/requestBodies/connectionPayload' + responses: + '200': + description: Inserted connection + content: + application/json: + schema: + $ref: '#/components/schemas/connection' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + get: + tags: + - integrations + operationId: GetConnections + summary: Get connections + description: Get connections + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Paginated list of connections + content: + application/json: + schema: + $ref: '#/components/schemas/connectionPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/integrations/connections/{connectionId}: + put: + tags: + - integrations + operationId: EditConnectionByID + summary: Edit Connection by ID + description: Edit registered connection using the connection ID + parameters: + - $ref: '#/components/parameters/connectionId' + requestBody: + $ref: '#/components/requestBodies/connectionPayload' + responses: + '200': + description: Edited connection + content: + application/json: + schema: + $ref: '#/components/schemas/connection' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/integrations/connections/status: + get: + tags: + - integrations + operationId: GetConnectionStatus + summary: Get status of all connections + description: Get summary about the status of all connections + responses: + '200': + description: Status of connections + content: + application/json: + schema: + $ref: '#/components/schemas/connectionsStatusPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/integrations/connections/{connectionKind}: + get: + tags: + - integrations + operationId: GetConnectionsByKind + summary: Get connections by kind + description: Get connections by kind + parameters: + - $ref: '#/components/parameters/connectionKind' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Connections by kind + content: + application/json: + schema: + type: object + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: [] + delete: + tags: + - integrations + operationId: DeleteConnection + summary: Delete connection + description: Delete registered connection + parameters: + - $ref: '#/components/parameters/connectionKind' + responses: + '200': + description: Deleted connection + content: + application/json: + schema: + $ref: '#/components/schemas/connection' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/integrations/connections/{connectionKind}/{connectionId}: + get: + tags: + - integrations + operationId: GetConnectionsByKindAndConnectionID + summary: Get connections by kind and connectionID. + description: >- + Get connections by kind (kind is required because this API returns the + results in non std format of a connection) + parameters: + - $ref: '#/components/parameters/connectionKind' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Connections by kind + content: + application/json: + schema: + type: object + oneOf: + - $ref: '#/components/schemas/k8sContextPersistResponse' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/integrations/connections/meshery/{mesheryServerID}: + delete: + tags: + - integrations + operationId: DeleteMesheryConnection + summary: Delete Meshery connection + description: >- + Deletes a given meshery connection. This is generally used for deleting + connections from Meshery Server UI where UI is not aware of connection + IDs. + parameters: + - $ref: '#/components/parameters/serverId' + responses: + '200': + $ref: '#/components/responses/200' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/system/user/credentials: + get: + tags: + - credentials + operationId: GetUserCredentials + summary: Get user's credentials + description: Get all user's credentials for logged in user + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: credentials + content: + application/json: + schema: + $ref: '#/components/schemas/credentialsPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - credentials + operationId: DeleteUserCredential + summary: Delete user's credentials + description: Delete user's credentials (tombstoned records) for logged in user + parameters: + - $ref: '#/components/parameters/credentialId' + responses: + '200': + $ref: '#/components/responses/200' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + post: + tags: + - credentials + operationId: SaveUserCredential + summary: Create Credential + description: Create new credentials for logged in user + requestBody: + $ref: '#/components/requestBodies/credentialBody' + responses: + '201': + $ref: '#/components/responses/201' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + put: + tags: + - credentials + operationId: UpdateUserCredential + summary: Update credential + description: Update credentials for logged in user + requestBody: + $ref: '#/components/requestBodies/credentialBody' + responses: + '200': + $ref: '#/components/responses/200' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/events: + get: + tags: + - events + operationId: GetEventsAggregate + summary: Get Events Aggregate + description: Get Events Aggreate Count + parameters: + - $ref: '#/components/parameters/cumulative' + responses: + '200': + description: Events Aggregate Count + content: + application/json: + schema: + $ref: '#/components/schemas/eventsAggregate' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/events/date: + get: + tags: + - events + operationId: RetrieveResultsByDate + summary: Events by Date + description: Get Events by date + parameters: + - $ref: '#/components/parameters/cumulative' + responses: + '200': + description: Events by date + content: + application/json: + schema: + $ref: '#/components/schemas/eventTrackerGroupedArray' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/events/week: + get: + tags: + - events + operationId: RetrieveResultsByWeek + summary: Events by Week + description: Get Events by week + parameters: + - $ref: '#/components/parameters/cumulative' + responses: + '200': + description: Events by week + content: + application/json: + schema: + $ref: '#/components/schemas/eventTrackerGroupedArray' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/events/month: + get: + tags: + - events + operationId: RetrieveResultsByMonth + summary: Events by Month + description: Get Events by month + parameters: + - $ref: '#/components/parameters/cumulative' + responses: + '200': + description: Events by month + content: + application/json: + schema: + $ref: '#/components/schemas/eventTrackerGroupedArray' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/events/list: + get: + tags: + - events + operationId: GetEvents + summary: All Events + description: Get All events + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + - $ref: '#/components/parameters/eventsFilter' + responses: + '200': + description: Events list + content: + application/json: + schema: + $ref: '#/components/schemas/eventsPage' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/events/summary: + get: + tags: + - events + operationId: GetEventSummaryByUser + summary: Events Summary + description: Get Events summary for a user + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Events Summary + content: + application/json: + schema: + $ref: '#/components/schemas/eventSummaryPage' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/filters: + post: + tags: + - filters + operationId: UpsertFilter + summary: Upsert Filter + description: >- + It will insert the filter if not present else it will update the + matching entry + requestBody: + $ref: '#/components/requestBodies/mesheryFilterRequestBody' + responses: + '200': + description: Upserted filter + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/mesheryFilter' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + get: + tags: + - filters + operationId: GetFilters + summary: Get Filters + description: Get paginated filters + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Filters + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryFilterPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/filters/file/{id}: + get: + tags: + - filters + operationId: GetFilterFile + summary: Filter file + description: Get the filter associated with the given filter id without any metadata + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Filter file + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryFilter/properties/filter_file' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/filters/{id}: + get: + tags: + - filters + operationId: GetFilter + summary: Get filter by ID + description: Get filter by ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Filter associated with ID + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryFilter' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - filters + operationId: DeleteFilter + summary: Delete filter by ID + description: Delete filter associated with ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Deleted filter + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryFilter' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/filters/clone/{id}: + post: + tags: + - filters + operationId: CloneFilter + summary: Clone filter + description: Clone filter associated with ID + parameters: + - $ref: '#/components/parameters/id' + requestBody: + description: Body for cloning design + required: true + content: + application/json: + schema: + properties: + name: + type: string + required: + - name + responses: + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/integrations/meshmodels/models: + get: + tags: + - meshery_models + operationId: GetMeshModelModels + summary: Get all models + description: Get models by name + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + - $ref: '#/components/parameters/status' + responses: + '200': + description: Models + content: + application/json: + schema: + $ref: '#/components/schemas/meshmodelModelsPage' + '500': + $ref: '#/components/responses/500' + security: [] + /api/integrations/meshmodels/categories: + get: + tags: + - meshery_models + operationId: GetMeshModelCategories + summary: Get all categories + description: Get models by technology category + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Categories + content: + application/json: + schema: + $ref: '#/components/schemas/meshmodelCategoriesPage' + '500': + $ref: '#/components/responses/500' + security: [] + /api/content/patterns/resource: + post: + tags: + - patterns + operationId: UpsertPatternResource + summary: Upsert Pattern resource + description: >- + It will insert the pattern resource if not present else it will update + the matching entry + requestBody: + $ref: '#/components/requestBodies/mesheryPatternResource' + responses: + '200': + description: Meshery pattern resource + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPatternResource' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + get: + tags: + - patterns + operationId: GetPatternResources + summary: Get Pattern resources + description: Get paginated pattern resources + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + - $ref: '#/components/parameters/namespace' + - $ref: '#/components/parameters/type' + - $ref: '#/components/parameters/oamType' + - $ref: '#/components/parameters/name' + description: Name + responses: + '200': + description: Meshery pattern resources + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPatternResourcePage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/patterns/resource/{id}: + get: + tags: + - patterns + operationId: GetPatternResource + summary: Pattern Resource by ID + description: Get Pattern Resource By ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Meshery pattern resource associated with id + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPatternResource' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - patterns + operationId: DeletePatternResource + summary: Delete pattern resource + description: Delete pattern resource associated with id + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Deleted meshery pattern resource associated with id + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPatternResource' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/patterns: + post: + tags: + - patterns + operationId: UpsertPattern + summary: Upsert Pattern + description: >- + It will insert the pattern if not present else it will update the + matching entry + requestBody: + $ref: '#/components/requestBodies/mesheryPatternRequestBody' + responses: + '200': + description: Upserted pattern + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/mesheryPattern' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + get: + tags: + - patterns + operationId: GetPatterns + summary: Get Patterns + description: Get paginated patterns + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Patterns + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPatternPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - patterns + operationId: DeletePatterns + summary: Delete patterns + description: Delete patterns with the provided ids + requestBody: + $ref: '#/components/requestBodies/mesheryPatternDeleteRequestBody' + responses: + '200': + description: Deleted pattern + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPattern' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/patterns/{id}: + get: + tags: + - patterns + operationId: GetPattern + summary: Get pattern by ID + description: Get pattern by ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Pattern associated with ID + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPattern' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - patterns + operationId: DeletePattern + summary: Delete pattern by ID + description: Delete pattern associated with ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Deleted pattern + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPattern' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/patterns/clone/{id}: + post: + tags: + - patterns + operationId: ClonePattern + summary: Clone pattern + description: Clone pattern associated with ID + parameters: + - $ref: '#/components/parameters/id' + requestBody: + description: Body for cloning design + required: true + content: + application/json: + schema: + properties: + name: + type: string + required: + - name + responses: + '200': + $ref: '#/components/responses/200' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/content/design/share: + post: + tags: + - patterns + operationId: HandleShare + summary: Design Share + description: Share design with others + requestBody: + $ref: '#/components/requestBodies/designShare' + responses: + '200': + $ref: '#/components/responses/200' + '401': + $ref: '#/components/responses/401' + '403': + description: Only owner have access to changing sharing mode + content: + text/plain: + schema: + type: string + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /system/roles: + get: + tags: + - roles + operationId: GetAllRoles + summary: Get All Roles + description: Get All supported roles + responses: + '200': + description: Get all roles + content: + application/json: + schema: + type: array + items: + type: string + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + post: + tags: + - roles + operationId: AddRoleHolder + summary: Assign role + description: Assign role to user + requestBody: + description: Body for assigning role to the user + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/roleHolderRequest' + responses: + '200': + $ref: '#/components/responses/200' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /system/roles/edit: + post: + tags: + - roles + operationId: EditRoleHolder + summary: Edit Role + description: Edit role of user + requestBody: + description: Body for editing role of the user + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/role' + responses: + '200': + $ref: '#/components/responses/200' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /system/roles/edit/bulk: + post: + tags: + - roles + operationId: BulkEditRoleHolder + summary: Bulk Edit Role + description: Edit roles of user in bulk + requestBody: + description: Body for editing role of the users in bulk + required: true + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/role' + responses: + '201': + $ref: '#/components/responses/201' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /system/roles/{id}: + delete: + tags: + - roles + operationId: DeleteRole + summary: Delete Role + description: Edit roles of user in bulk + parameters: + - $ref: '#/components/parameters/id' + required: true + responses: + '201': + description: Deleted roles + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/role' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/performance/smp/profiles: + get: + tags: + - service mesh performance + operationId: SMPDashboardPerfProfiles + summary: Performance Profiles + description: Get Performance Profiles for SMP Dashboard + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Get Performance Profiles with pagination + content: + application/json: + schema: + $ref: '#/components/schemas/performanceProfilePage' + '500': + $ref: '#/components/responses/500' + security: [] + /api/performance/smp/profiles/{id}/results: + get: + tags: + - service mesh performance + operationId: SMPDashboardTestResults + summary: Performance Profiles Results by ID + description: Get Performance Profiles results by ID for SMP Dashboard + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Get Performance Profiles Results with pagination + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryResultPage' + '500': + $ref: '#/components/responses/500' + '502': + description: Invalid path parameter "id" + content: + text/plain: + schema: + type: string + security: [] + /api/performance/profiles: + post: + tags: + - service mesh performance + operationId: UpsertPerformanceProfile + summary: Upsert Performance Profiles + description: >- + Update performance profiles or create a new performance profile if no id + is provided + requestBody: + description: Body for upserting performance profile + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/performanceProfile' + responses: + '201': + description: updated performance profile + content: + application/json: + schema: + $ref: '#/components/schemas/performanceProfile' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + get: + tags: + - service mesh performance + operationId: GetPerformanceProfiles + summary: Get Performance Profiles + description: Get performance profiles + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Performance Profiles + content: + application/json: + schema: + $ref: '#/components/schemas/performanceProfilePage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/performance/profiles/{id}: + get: + tags: + - service mesh performance + operationId: GetPerformanceProfile + summary: Performance Profile by Id + description: Get Performance Profile by ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Performance Profile for provided performance profile id + content: + application/json: + schema: + $ref: '#/components/schemas/performanceProfile' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - service mesh performance + operationId: DeletePerformanceProfile + summary: Delete Performance Profiles + description: Delete performance profiles by ID + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Deleted Performance Profile + content: + application/json: + schema: + $ref: '#/components/schemas/performanceProfile' + '401': + $ref: '#/components/responses/401' + '404': + $ref: '#/components/responses/404' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/performance/profiles/{id}/results: + get: + tags: + - service mesh performance + operationId: GetPerformanceProfileResults + summary: Performance Profiles result + description: Get paginated Performance Profiles result + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: Performance Profile results + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryResultPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + post: + tags: + - service mesh performance + operationId: AddPerformanceProfileResult + summary: Add performance profiles result + description: Add performance profile result in given performance profile id + parameters: + - $ref: '#/components/parameters/id' + requestBody: + description: Body for adding perfor mance profile result + content: + application/json: + schema: + $ref: '#/components/schemas/performanceResult' + responses: + '201': + description: Performance Profile results + content: + application/json: + schema: + properties: + id: + type: string + format: uuid + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/performance/profiles/{id}/results/{resultID}: + get: + tags: + - service mesh performance + operationId: GetPerformanceProfileResult + summary: Performance Profiles result + description: >- + Get the performance test result associated with the given profile id and + with the given test id + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/resultID' + responses: + '200': + description: Performance Profile results + content: + application/json: + schema: + $ref: '#/components/schemas/performanceResult' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /system/user/tokens: + get: + tags: + - user tokens + operationId: GetUserTokens + summary: Get Tokens + description: Get tokens associated with logged in user + parameters: + - $ref: '#/components/parameters/isOAuth' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + responses: + '200': + description: user tokens + content: + application/json: + schema: + $ref: '#/components/schemas/tokenPage' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + post: + tags: + - user tokens + operationId: GenerateToken + summary: Generate token for logged in user + description: >- + Generates infinite token (i.e. tokens that do not expire) for the logged + in user. + parameters: + - $ref: '#/components/parameters/name' + - $ref: '#/components/parameters/purpose' + responses: + '200': + description: generated token + content: + text/plain: + schema: + type: string + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + delete: + tags: + - user tokens + operationId: DeleteUserTokens + summary: Delete token + description: Delete token for logged in user + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/map_object' + responses: + '200': + $ref: '#/components/responses/200' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /system/token: + get: + tags: + - user tokens + operationId: IssueIndefiniteLifetimeToken + summary: Infinite token + description: Get Infinite Token + parameters: + - $ref: '#/components/parameters/userId' + - $ref: '#/components/parameters/provider' + responses: + '200': + description: generated token + content: + text/plain: + schema: + type: string + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users/invite: + post: + tags: + - users + operationId: HandleUserInvite + summary: User Invite + description: Send invitation request to users + requestBody: + $ref: '#/components/requestBodies/userInvite' + responses: + '200': + $ref: '#/components/responses/200' + description: Invitation sent + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users/preferences: + put: + tags: + - users + operationId: UpdateUserPreference + summary: User Preference + description: Upsert user preferences + requestBody: + description: Body for upserting user preferences + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/map_object' + responses: + '201': + $ref: '#/components/responses/201' + description: Preferences updated + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users/keys: + get: + tags: + - users + operationId: GetUserKeys + summary: Get User Keys + description: Get all keys based on roles assigned to user + responses: + '200': + description: Returns user keys based on roles assigned to user + content: + application/json: + schema: + $ref: '#/components/schemas/userKeys' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/user/{user_id}: + get: + tags: + - users + operationId: GetUserById + summary: Get User by ID + description: Get specific user by user id + parameters: + - $ref: '#/components/parameters/userId' + responses: + '200': + description: Returns user with given user_id + content: + application/json: + schema: + $ref: '#/components/schemas/user' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users/{delete_on}: + post: + tags: + - users + operationId: DeleteUsers + summary: Delete users + description: Delete users based on delete_for parameter + parameters: + - $ref: '#/components/parameters/deleteOn' + requestBody: + $ref: '#/components/requestBodies/deleteUsers' + responses: + '201': + $ref: '#/components/responses/201' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/system/delete/user/{user_id}: + get: + tags: + - users + operationId: DeleteUserAccountById + summary: Delete account by ID + description: Delete account by ID + parameters: + - $ref: '#/components/parameters/userId' + responses: + '201': + $ref: '#/components/responses/201' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users: + get: + tags: + - users + operationId: GetRoleHolders + summary: Get All users + description: Get All users + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + - $ref: '#/components/parameters/filter' + responses: + '200': + description: Get all user with pagination + content: + application/json: + schema: + anyOf: + - $ref: '#/components/schemas/usersPageForAdmin' + - $ref: '#/components/schemas/teamMembersPage' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/users: + get: + tags: + - users + operationId: GetUsers + summary: Get All users + description: Get All users + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/page_size' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/order' + - $ref: '#/components/parameters/filter' + responses: + '200': + description: Get all user with pagination + content: + application/json: + schema: + $ref: '#/components/schemas/usersPageForNonAdmin' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users/profile/{id}: + get: + tags: + - users + operationId: GetUserProfileById + summary: Get user profile by Id + description: Get user profile of given user Id + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Returns user with given id + content: + application/json: + schema: + $ref: '#/components/schemas/user' + '400': + $ref: '#/components/responses/400' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users/profile: + get: + tags: + - users + operationId: GetUser + summary: Get User details + description: Get user details for logged in user + responses: + '200': + description: user details + content: + application/json: + schema: + $ref: '#/components/schemas/user' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + put: + tags: + - users + operationId: UpdateProfile + summary: Update Profile + description: Update user profile data (also updates kratos identity) + requestBody: + $ref: '#/components/requestBodies/user' + responses: + '201': + $ref: '#/components/responses/201' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users/profile/details: + get: + tags: + - users + operationId: GetProfileOverview + summary: Profile Overview + description: Get Profile overview for logged in user + responses: + '200': + description: user account overview + content: + application/json: + schema: + $ref: '#/components/schemas/accountOverview' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/users/{user_id}/profile/activity: + get: + tags: + - users + operationId: GetUserActivity + summary: User Activity + description: Get last 10 user activities + parameters: + - name: user_id + in: path + description: UUID of User + schema: + type: string + required: true + responses: + '200': + description: user activity + content: + application/json: + schema: + $ref: '#/components/schemas/recentActivityPage' + '500': + $ref: '#/components/responses/500' + security: [] + /api/identity/users/online: + get: + tags: + - users + operationId: GetRecentlyOnlineUsers + summary: Online users + description: Get info of active / online users in last 24 hours + responses: + '200': + description: active users + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/recentUsers' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] + /api/identity/badges: + get: + tags: + - users + operationId: GetAvailableBadges + summary: Gets available badges + description: Gets available badges + responses: + '200': + description: Badges + content: + application/json: + schema: + $ref: '#/components/schemas/badges' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '500': + $ref: '#/components/responses/500' + security: + - jwt: [] +components: + securitySchemes: + jwt: + type: http + scheme: Bearer + bearerFormat: JWT + schemas: + mesheryApplication: + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/id' + application_file: + $ref: '#/components/schemas/text' + description: Application file + name: + $ref: '#/components/schemas/text' + description: Pattern Name + location: + $ref: '#/components/schemas/map_object' + visibility: + $ref: '#/components/schemas/text' + source_type: + enum: + - k8s_manifest + - docker_compose + - helm_chart + description: Source type (K8s manifest, Helm chart, Docker compose) + source_content: + type: string + format: byte + description: Source content + catalog_data: + $ref: '#/components/schemas/map_object' + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + mesheryApplicationPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + applications: + type: array + items: + $ref: '#/components/schemas/mesheryApplication' + resultsPage: + discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + text: + type: string + x-go-type-skip-optional-pointer: true + map_object: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + capability: + properties: + provider_type: + $ref: '#/components/schemas/provider' + description: Provider type + package_version: + $ref: '#/components/schemas/text' + description: Package version + package_url: + $ref: '#/components/schemas/text' + description: Package url + provider_name: + $ref: '#/components/schemas/text' + description: Provider name + provider_description: + type: array + items: + $ref: '#/components/schemas/text' + extensions: + $ref: '#/components/schemas/capabilityExtension' + capabilities: + $ref: '#/components/schemas/capabilityGeneralCapability' + restrictedAccess: + $ref: '#/components/schemas/restrictedAccess' + capabilityNavigatorExtension: + properties: + title: + $ref: '#/components/schemas/text' + description: Title + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + $ref: '#/components/schemas/text' + description: Component + icon: + $ref: '#/components/schemas/text' + description: Icon link + link: + $ref: '#/components/schemas/text' + description: link + format: uri + show: + type: boolean + description: Controls whether to show the extension or not + type: + $ref: '#/components/schemas/text' + description: Extension type + allowedTo: + type: object + capabilityUserPrefExtension: + properties: + component: + $ref: '#/components/schemas/text' + description: Component + type: + $ref: '#/components/schemas/text' + description: Extension type + capabilityGraphQLExtension: + properties: + component: + $ref: '#/components/schemas/text' + description: Component + path: + $ref: '#/components/schemas/text' + description: Path + type: + $ref: '#/components/schemas/text' + description: Extension type + capabilitiesAccountExtension: + properties: + title: + $ref: '#/components/schemas/text' + description: Title + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + $ref: '#/components/schemas/text' + description: Component + link: + $ref: '#/components/schemas/text' + description: link + format: uri + show: + type: boolean + description: Controls whether to show the extension or not + type: + $ref: '#/components/schemas/text' + description: Extension type + restrictedAccess: + properties: + isMesheryUIRestricted: + type: boolean + allowedComponents: + properties: + navigator: + type: object + header: + type: object + capabilityGeneralCapability: + properties: + feature: + $ref: '#/components/schemas/text' + description: Feature name + endpoint: + $ref: '#/components/schemas/text' + capabilityExtension: + properties: + navigator: + type: array + items: + $ref: '#/components/schemas/capabilityNavigatorExtension' + user_prefs: + type: array + items: + $ref: '#/components/schemas/capabilityUserPrefExtension' + graphql: + type: array + items: + $ref: '#/components/schemas/capabilityGraphQLExtension' + account: + type: array + items: + $ref: '#/components/schemas/capabilitiesAccountExtension' + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + catalogRequest: + properties: + id: + $ref: '#/components/schemas/id' + content_id: + $ref: '#/components/schemas/id' + content_name: + $ref: '#/components/schemas/text' + content_type: + enum: + - pattern + - filter + description: Catalog type (pattern / filter) + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + email: + $ref: '#/components/schemas/email' + status: + enum: + - pending + - approved + - denied + description: Catalog request status (pending / approved / denied) + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + catalog_data: + $ref: '#/components/schemas/catalog_data' + catalogRequestsPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + signup_data: + type: array + items: + $ref: '#/components/schemas/catalogRequest' + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made available in + the Catalog. + type: string + class: + description: >- + Published content is classifed by its support level. Content classes + help you understand the origin and expected support level for each + piece of content. It is important to note that the level of support + may vary within each class, and you should exercise discretion when + using community-contributed content. Content produced and fully + supported by Meshery maintainers. This represents the highest level + of support and is considered the most reliable. Content produced by + partners and verified by Meshery maintainers. While not directly + maintained by Meshery, it has undergone a verification process to + ensure quality and compatibility. Content produced and supported by + the respective project or organization responsible for the specific + technology. This class offers a level of support from the project + maintainers themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as performance + profiles, test results, filters, patterns, and applications. + Community content may have varying levels of support and + reliability. + type: string + enum: + - official + - verified + - project + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. For designs, a + list of one or more models implicated by components within the + design. For models, this is self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors to be aware of + when using this design. + pattern_info: + type: string + title: Description + description: Purpose of the design along with its intended and unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational flow depicted in + this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode snapshots of the + design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + design: + title: Design Schema + description: Schema for design in v1Beta1 + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: Specifies the version of the schema to which the design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding component + declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + mesheryPattern: + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/id' + pattern_file: + $ref: '#/components/schemas/design' + description: Pattern file + name: + $ref: '#/components/schemas/text' + description: Pattern Name + location: + $ref: '#/components/schemas/map_object' + visibility: + $ref: '#/components/schemas/text' + catalog_data: + $ref: '#/components/schemas/catalog_data' + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + mesheryFilter: + properties: + id: + $ref: '#/components/schemas/id' + description: Connection id + user_id: + $ref: '#/components/schemas/id' + filter_file: + type: string + format: byte + description: Filter file + name: + $ref: '#/components/schemas/text' + description: Filter Name + location: + $ref: '#/components/schemas/map_object' + visibility: + $ref: '#/components/schemas/text' + catalog_data: + $ref: '#/components/schemas/map_object' + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + mesheryInstance: + properties: + id: + $ref: '#/components/schemas/id' + description: Connection id + name: + $ref: '#/components/schemas/text' + description: Connection name + server_id: + $ref: '#/components/schemas/text' + description: Connected server id + server_version: + $ref: '#/components/schemas/text' + description: Running server version + server_location: + $ref: '#/components/schemas/text' + server_build_sha: + $ref: '#/components/schemas/text' + description: Server build SHA + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + deleted_at: + $ref: '#/components/schemas/time' + status: + $ref: '#/components/schemas/text' + description: Status + connection: + properties: + id: + $ref: '#/components/schemas/id' + description: ID + name: + $ref: '#/components/schemas/text' + description: Connection Name + credential_id: + $ref: '#/components/schemas/id' + description: Credential ID + type: + $ref: '#/components/schemas/text' + description: Connection Type + sub_type: + $ref: '#/components/schemas/text' + description: Connection Subtype + kind: + $ref: '#/components/schemas/text' + description: Connection Kind + metadata: + $ref: '#/components/schemas/map_object' + status: + $ref: '#/components/schemas/text' + description: Connection Status + type: string + enum: + - discovered + - registered + - connected + - ignored + - maintenance + - disconnected + - deleted + - not found + user_id: + $ref: '#/components/schemas/id' + x-go-name: UserID + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + deleted_at: + $ref: '#/components/schemas/time' + connectionPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + connections: + type: array + items: + $ref: '#/components/schemas/connection' + connectionStatusInfo: + properties: + status: + $ref: '#/components/schemas/text' + description: Connection status + count: + type: integer + description: Number of connections having the status + connectionsStatusPage: + properties: + connections_status: + type: array + items: + $ref: '#/components/schemas/connectionStatusInfo' + k8sContext: + properties: + id: + $ref: '#/components/schemas/id' + name: + $ref: '#/components/schemas/text' + auth: + $ref: '#/components/schemas/map_object' + cluster: + $ref: '#/components/schemas/map_object' + server: + type: string + owner: + $ref: '#/components/schemas/id' + created_by: + $ref: '#/components/schemas/id' + meshery_instance_id: + $ref: '#/components/schemas/id' + kubernetes_server_id: + $ref: '#/components/schemas/id' + deployment_type: + type: string + updated_at: + $ref: '#/components/schemas/time' + created_at: + $ref: '#/components/schemas/time' + k8sContextPersistResponse: + properties: + k8sContext: + $ref: '#/components/schemas/k8sContext' + inserted: + type: boolean + credential: + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/id' + name: + $ref: '#/components/schemas/text' + type: + type: string + secret: + $ref: '#/components/schemas/map_object' + created_at: + $ref: '#/components/schemas/created_at' + updated_at: + $ref: '#/components/schemas/updated_at' + deleted_at: + $ref: '#/components/schemas/deleted_at' + credentialsPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + credential: + type: array + items: + $ref: '#/components/schemas/credential' + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true + eventType: + type: string + x-oapi-codegen-extra-tags: + db: event_type + event: + description: Defines model for event_trackers + properties: + id: + description: | + UUID of the event. + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/user_uuid' + description: > + UUID of the user that initiated the event. In most cases this would + be present, but not always. + system_id: + description: > + The system from which the request is sourced. In the case of Meshery + Server, + + the ID is meshery_instance_id of Meshery Server (which can be found + in the metadata of`Connections` table). + $ref: '#/components/schemas/system_id' + operation_id: + description: > + Each Event will have a OperationID. This field is never NULL, which + is to say an operation can result in series of events, for eg: + Different stages of Pattern Engine / activities of Workflow engine. + Each operation (and sub-operation) will have a different operation + ID. + $ref: '#/components/schemas/operation_id' + category: + description: | + Resource name on which the operation is invoked. + type: string + example: pattern + x-oapi-codegen-extra-tags: + db: category + action: + description: | + Action taken on the resource. + type: string + example: deployed + x-oapi-codegen-extra-tags: + db: action + status: + description: | + Status for the event. + type: string + enum: + - read + - unread + x-oapi-codegen-extra-tags: + db: status + acted_upon: + type: string + format: uuid + description: | + UUID of the entity on which the event was performed. + example: 110020-123230-434231-000213 + x-go-type: uuid.UUID + x-oapi-codegen-extra-tags: + db: acted_upon + description: + description: | + A summary/receipt of event that occured. + type: string + example: “Prometheus” pattern deployed in K8s ctx “Meshery Cloud”. + x-oapi-codegen-extra-tags: + db: description + severity: + description: | + A set of seven standard event levels. + type: string + enum: + - emergency + - critical + - alert + - error + - warning + - debug + - informational + - success + example: info + x-oapi-codegen-extra-tags: + db: severity + metadata: + description: | + Contains meaningful information, specific to the type of event. + Structure of metadata can be different for different events. + type: object + x-go-type: '[]byte' + x-oapi-codegen-extra-tags: + db: metadata + created_at: + $ref: '#/components/schemas/created_at' + updated_at: + $ref: '#/components/schemas/updated_at' + deleted_at: + $ref: '#/components/schemas/deleted_at' + required: + - id + - system_id + - operation_id + - category + - action + - status + - acted_upon + - description + - severity + - metadata + - created_at + - updated_at + events_filter: + type: object + properties: + provider: + type: array + items: + type: string + category: + type: array + items: + type: string + action: + type: array + items: + type: string + severity: + type: array + items: + type: string + limit: + type: integer + offset: + type: integer + sort_on: + type: string + description: Field on which records are sorted + order: + type: string + description: order of sort asc/desc, default is asc + required: + - provider + - category + - action + - severity + - limit + - offset + - sort_on + - order + eventTrackerGrouped: + properties: + count: + type: integer + event_type: + $ref: '#/components/schemas/text' + dt: + $ref: '#/components/schemas/time' + week: + $ref: '#/components/schemas/text' + month: + $ref: '#/components/schemas/text' + year: + $ref: '#/components/schemas/text' + eventTrackerGroupedArray: + type: array + items: + $ref: '#/components/schemas/eventTrackerGrouped' + eventResult: + properties: + event: + $ref: '#/components/schemas/event' + events_count: + type: integer + x-oapi-codegen-extra-tags: + db: events_count + required: + - event + - events_count + eventsPage: + allOf: + - $ref: '#/components/schemas/recordsPage' + - type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/eventResult' + eventSummary: + properties: + user_id: + type: string + description: user's email or username + provider: + type: string + email: + type: string + first_name: + type: string + description: First Name + last_name: + type: string + description: Last Name + activity_count: + type: integer + login_count: + type: integer + signup_count: + type: integer + perf_results_count: + type: integer + smi_results_count: + type: integer + meshery_apps_count: + type: integer + meshery_patterns_count: + type: integer + meshery_filters_count: + type: integer + last_login_time: + type: string + format: data-time + x-go-type: time.Time + required: + - user_id + - provider + - email + - first_name + - last_name + - activity_count + - login_count + - signup_count + - perf_results_count + - smi_results_count + - meshery_apps_count + - meshery_patterns_count + - meshery_filters_count + - last_login_time + eventSummaryPage: + allOf: + - $ref: '#/components/schemas/recordsPage' + - type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/eventSummary' + eventsAggregate: + properties: + audit: + type: integer + description: Number of audit events + summary: + type: integer + description: Number of summary events + recordsPage: + discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + user_uuid: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: user_id + json: user_id + x-go-name: UserID + x-go-type-skip-optional-pointer: true + system_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: system_id + x-go-name: SystemID + x-go-type-skip-optional-pointer: true + operation_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: operation_id + x-go-name: OperationID + x-go-type-skip-optional-pointer: true + mesheryFilterPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + filters: + type: array + items: + $ref: '#/components/schemas/mesheryFilter' + meshmodelModel: + properties: + id: + $ref: '#/components/schemas/id' + name: + $ref: '#/components/schemas/text' + version: + $ref: '#/components/schemas/text' + display_name: + $ref: '#/components/schemas/text' + status: + $ref: '#/components/schemas/text' + category_id: + $ref: '#/components/schemas/id' + metadata: + $ref: '#/components/schemas/map_object' + created_at: + $ref: '#/components/schemas/created_at' + updated_at: + $ref: '#/components/schemas/updated_at' + deleted_at: + $ref: '#/components/schemas/deleted_at' + meshmodelCategory: + properties: + id: + $ref: '#/components/schemas/id' + name: + $ref: '#/components/schemas/text' + metadata: + $ref: '#/components/schemas/map_object' + created_at: + $ref: '#/components/schemas/created_at' + updated_at: + $ref: '#/components/schemas/updated_at' + deleted_at: + $ref: '#/components/schemas/deleted_at' + meshmodelCategoriesPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + categories: + type: array + items: + $ref: '#/components/schemas/meshmodelCategory' + meshmodelModelsPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + models: + type: array + items: + $ref: '#/components/schemas/meshmodelModel' + mesheryPatternResource: + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/id' + name: + $ref: '#/components/schemas/text' + description: Name + namepace: + $ref: '#/components/schemas/text' + description: Namespace + type: + $ref: '#/components/schemas/text' + description: Type + oam_type: + $ref: '#/components/schemas/text' + description: OAM type + deleted: + type: boolean + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + mesheryPatternResourcePage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + resources: + type: array + items: + $ref: '#/components/schemas/mesheryPatternResource' + mesheryPatternPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + patterns: + type: array + items: + $ref: '#/components/schemas/mesheryPattern' + deletePatternModel: + properties: + id: + $ref: '#/components/schemas/id' + name: + description: Pattern name + $ref: '#/components/schemas/text' + emails: + type: array + items: + $ref: '#/components/schemas/email' + x-go-type-skip-optional-pointer: true + roleHolderRequest: + type: object + properties: + role_names: + $ref: '#/components/schemas/roleNames' + email: + $ref: '#/components/schemas/email' + required: + - role_names + - email + role: + type: object + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/user_id' + username: + $ref: '#/components/schemas/username' + email: + $ref: '#/components/schemas/email' + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + status: + $ref: '#/components/schemas/status' + role_names: + $ref: '#/components/schemas/roleNames' + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + last_login_time: + $ref: '#/components/schemas/time' + deleted_at: + $ref: '#/components/schemas/time' + prefs: + $ref: '#/components/schemas/email_preference' + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - created_at + - updated_at + - last_login_time + - deleted_at + roleNames: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + email_preference: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + performanceProfile: + properties: + id: + $ref: '#/components/schemas/id' + name: + $ref: '#/components/schemas/text' + user_id: + $ref: '#/components/schemas/id' + schedule: + $ref: '#/components/schemas/id' + load_generators: + type: string + endpoints: + type: string + service_mesh: + type: string + concurrent_request: + type: integer + qps: + type: integer + duration: + type: string + last_run: + $ref: '#/components/schemas/time' + total_results: + type: integer + request_headers: + type: string + request_cookies: + type: string + request_body: + type: string + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + performanceProfilePage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + profiles: + type: array + items: + $ref: '#/components/schemas/performanceProfile' + performanceResult: + properties: + id: + $ref: '#/components/schemas/id' + name: + $ref: '#/components/schemas/text' + test_start_time: + $ref: '#/components/schemas/time' + mesh: + type: string + runner_results: + $ref: '#/components/schemas/map_object' + deleted: + type: boolean + server_metrics: + $ref: '#/components/schemas/map_object' + server_board_config: + $ref: '#/components/schemas/map_object' + performance_profile: + $ref: '#/components/schemas/id' + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + mesheryResultPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + results: + type: array + items: + $ref: '#/components/schemas/performanceResult' + tokenPage: + allOf: + - $ref: '#/components/schemas/resultsPage' + - type: object + properties: + tokens: + type: array + items: + $ref: '#/components/schemas/userToken' + userToken: + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/id' + provider: + $ref: '#/components/schemas/provider' + access_token: + $ref: '#/components/schemas/text' + refresh_token: + $ref: '#/components/schemas/text' + name: + $ref: '#/components/schemas/text' + purpose: + $ref: '#/components/schemas/text' + is_oauth: + type: boolean + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + userInvite: + type: object + properties: + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + email: + $ref: '#/components/schemas/email' + required: + - first_name + - last_name + - email + bulkDelete: + type: object + properties: + user_ids: + $ref: '#/components/schemas/id' + user_emails: + $ref: '#/components/schemas/emails' + required: + - user_ids + - user_emails + user: + type: object + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/user_id' + provider: + $ref: '#/components/schemas/provider' + email: + $ref: '#/components/schemas/email' + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + avatar_url: + $ref: '#/components/schemas/avatar_url' + status: + $ref: '#/components/schemas/status' + bio: + $ref: '#/components/schemas/bio' + preferences: + $ref: '#/components/schemas/map_object' + accepted_terms_at: + $ref: '#/components/schemas/accepted_terms_at' + first_login_time: + $ref: '#/components/schemas/time' + last_login_time: + $ref: '#/components/schemas/time' + required: + - id + - user_id + - provider + - email + - first_name + - last_name + - status + - created_at + - updated_at + - last_login_time + - deleted_at + recentUsers: + type: object + properties: + id: + $ref: '#/components/schemas/id' + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + avatar_url: + $ref: '#/components/schemas/avatar_url' + rolesPage: + allOf: + - $ref: '#/components/schemas/recordsPage' + - type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/role' + key: + properties: + ID: + $ref: '#/components/schemas/id' + subcategory: + $ref: '#/components/schemas/text' + function: + $ref: '#/components/schemas/text' + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + deleted_at: + $ref: '#/components/schemas/nullTime' + category: + $ref: '#/components/schemas/text' + description: + $ref: '#/components/schemas/text' + owner: + $ref: '#/components/schemas/id' + userKeys: + properties: + keys: + type: array + items: + $ref: '#/components/schemas/key' + total_count: + type: integer + deleteOn: + type: string + enum: + - self + - bulk + usersPageForAdmin: + allOf: + - $ref: '#/components/schemas/recordsPage' + - type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/usersWithRolesForAdmin' + usersWithRolesForAdmin: + type: object + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/user_id' + username: + $ref: '#/components/schemas/username' + email: + $ref: '#/components/schemas/email' + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + status: + $ref: '#/components/schemas/status' + role_names: + $ref: '#/components/schemas/roleNames' + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + last_login_time: + $ref: '#/components/schemas/time' + deleted_at: + $ref: '#/components/schemas/time' + prefs: + $ref: '#/components/schemas/email_preference' + avatar_url: + $ref: '#/components/schemas/avatar_url' + preferences: + $ref: '#/components/schemas/map_object' + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - created_at + - updated_at + - last_login_time + - deleted_at + teamMembers: + type: object + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/user_id' + username: + $ref: '#/components/schemas/username' + email: + $ref: '#/components/schemas/email' + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + status: + $ref: '#/components/schemas/status' + role_names: + $ref: '#/components/schemas/roleNames' + joined_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + last_login_time: + $ref: '#/components/schemas/time' + deleted_at: + $ref: '#/components/schemas/time' + prefs: + $ref: '#/components/schemas/email_preference' + avatar_url: + $ref: '#/components/schemas/avatar_url' + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - joined_at + - updated_at + - last_login_time + - deleted_at + teamMembersPage: + allOf: + - $ref: '#/components/schemas/recordsPage' + - type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/teamMembers' + usersForNonAdmin: + type: object + properties: + id: + $ref: '#/components/schemas/id' + user_id: + $ref: '#/components/schemas/user_id' + username: + $ref: '#/components/schemas/username' + email: + $ref: '#/components/schemas/email' + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + prefs: + $ref: '#/components/schemas/email_preference' + avatar_url: + $ref: '#/components/schemas/avatar_url' + preferences: + $ref: '#/components/schemas/map_object' + required: + - id + - user_id + - username + - email + - first_name + - last_name + usersPageForNonAdmin: + allOf: + - $ref: '#/components/schemas/recordsPage' + - type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/usersForNonAdmin' + recentActivityPage: + properties: + recent_activity: + type: array + items: + $ref: '#/components/schemas/event' + accountOverview: + properties: + k8s_count: + type: integer + app_count: + type: integer + pattern_count: + type: integer + badge: + type: object + properties: + id: + $ref: '#/components/schemas/id' + name: + $ref: '#/components/schemas/text' + description: + $ref: '#/components/schemas/text' + label: + $ref: '#/components/schemas/text' + svg_location: + $ref: '#/components/schemas/text' + created_at: + $ref: '#/components/schemas/time' + updated_at: + $ref: '#/components/schemas/time' + deleted_at: + $ref: '#/components/schemas/nullTime' + badges: + properties: + badges: + type: object + additionalProperties: + $ref: '#/components/schemas/badge' + total_count: + type: integer + nullTime: + description: SQL null Timestamp to handle null values of time. + x-go-type: sql.NullTime + type: string + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + bio: + type: string + x-go-type-skip-optional-pointer: true + accepted_terms_at: + type: string + x-go-type-skip-optional-pointer: true + empty: + description: Body for empty request + type: object + properties: {} + x-go-type-skip-optional-pointer: true + requestBodies: + mesheryApplicationRequestBody: + required: true + content: + application/json: + schema: + type: object + properties: + url: + $ref: '#/components/schemas/text' + path: + $ref: '#/components/schemas/text' + save: + type: boolean + application_data: + $ref: '#/components/schemas/mesheryApplication' + source_type: + $ref: '#/components/schemas/text' + mesheryCatalogRequest: + description: Body for publishing catalog + required: true + content: + application/json: + schema: + properties: + id: + $ref: '#/components/schemas/id' + catalog_type: + enum: + - pattern + - filter + description: Catalog type (pattern / filter) + catalog_data: + $ref: '#/components/schemas/catalog_data' + connectionPayload: + content: + application/json: + schema: + type: object + properties: + kind: + $ref: '#/components/schemas/text' + description: Kind + type: + $ref: '#/components/schemas/text' + description: Connection type + sub_type: + $ref: '#/components/schemas/text' + description: Connection subtype + credential_secret: + $ref: '#/components/schemas/map_object' + metadata: + $ref: '#/components/schemas/map_object' + credentialBody: + description: Body for user credential + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/credential' + mesheryFilterRequestBody: + required: true + content: + application/json: + schema: + type: object + properties: + url: + $ref: '#/components/schemas/text' + path: + $ref: '#/components/schemas/text' + save: + type: boolean + filter_data: + $ref: '#/components/schemas/mesheryFilter' + mesheryPatternResource: + description: Body for upserting meshery pattern resource + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/mesheryPatternResource' + mesheryPatternRequestBody: + description: Body for upserting meshery pattern + required: true + content: + application/json: + schema: + type: object + properties: + url: + $ref: '#/components/schemas/text' + path: + $ref: '#/components/schemas/text' + save: + type: boolean + pattern_data: + $ref: '#/components/schemas/mesheryPattern' + mesheryPatternDeleteRequestBody: + description: Body for deleting meshery pattern + required: true + content: + application/json: + schema: + type: object + properties: + patterns: + type: array + items: + $ref: '#/components/schemas/deletePatternModel' + designShare: + description: Body for sharing design + required: true + content: + application/json: + schema: + properties: + emails: + $ref: '#/components/schemas/emails' + id: + $ref: '#/components/schemas/id' + content_type: + type: string + share: + type: boolean + required: + - emails + - id + - content_type + - share + userInvite: + description: Body for user invite request + required: true + content: + application/json: + schema: + properties: + first_name: + $ref: '#/components/schemas/text' + description: First Name + last_name: + $ref: '#/components/schemas/text' + description: Last Name + email: + $ref: '#/components/schemas/email' + required: + - first_name + - last_name + - email + deleteUsers: + description: Body for delete of user accounts + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/bulkDelete' + - $ref: '#/components/schemas/empty' + user: + description: Body for upserting user + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/user' + parameters: + page: + name: page + in: query + description: Get reponses by page + schema: + type: string + page_size: + name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + search: + name: search + in: query + description: Get responses that match search param value + schema: + type: string + order: + name: order + in: query + description: Get ordered responses + schema: + type: string + id: + name: id + in: path + description: Unique identifier + schema: + type: string + required: true + os: + name: os + in: query + description: user's os + schema: + type: string + playground: + name: playground + in: query + description: Is playground mode + schema: + type: string + mesheryVersion: + name: meshery-version + in: path + description: meshery version + schema: + type: string + required: true + catalogContentType: + in: path + required: true + name: type + description: Catalog content type + schema: + type: string + enum: + - pattern + - filter + requestFilter: + name: filter + in: query + description: Filter for catalog requests + schema: + properties: + id: + $ref: '#/components/schemas/id' + status: + type: array + items: + type: string + connectionKind: + name: connectionKind + in: path + description: 'Connection kind (eg: Meshery)' + required: true + schema: + $ref: '#/components/schemas/text' + connectionId: + name: connectionId + in: path + description: Connection ID + schema: + $ref: '#/components/schemas/id' + required: true + serverId: + name: mesheryServerID + in: path + description: Meshery server ID + schema: + $ref: '#/components/schemas/id' + required: true + credentialId: + name: credential_id + in: query + description: credential Id + schema: + type: string + required: true + cumulative: + name: cumulative + in: query + description: Cumulative events + schema: + type: string + eventsFilter: + name: filter + in: query + description: Filter for retrieving events + schema: + type: object + properties: + provider: + type: array + items: + type: string + event_type: + type: array + items: + type: string + status: + name: status + in: query + description: Get models based on status, e.g 'ignored', 'registered' + schema: + type: string + namespace: + name: namespace + in: query + description: Namespace + schema: + type: string + type: + name: type + in: query + description: Type + schema: + type: string + oamType: + name: oamType + in: query + description: OAM type + schema: + type: string + name: + name: name + in: query + description: Name of the resource + schema: + type: string + resultId: + name: result_id + in: path + description: Result id + schema: + $ref: '#/components/schemas/id' + required: true + resultID: + name: resultID + in: path + description: Performance Result Id + schema: + type: string + required: true + isOAuth: + name: isOAuth + in: query + description: To get OAuth tokens as well + schema: + type: string + purpose: + name: purpose + in: query + description: Purpose for which token is generated + schema: + type: string + userId: + name: user_id + in: path + description: User's user_id + schema: + type: string + required: true + provider: + name: provider + in: query + description: Remote provider + schema: + type: string + required: true + deleteOn: + in: path + required: true + name: delete_on + description: Defines on whom the delete operation is to be performed + schema: + $ref: '#/components/schemas/deleteOn' + filter: + name: filter + in: query + description: Get filtered reponses + schema: + type: string + responses: + '200': + description: ok + content: + text/plain: + schema: + type: string + '201': + description: created + content: + text/plain: + schema: + type: string + '400': + description: Invalid request body or request param + content: + text/plain: + schema: + type: string + '401': + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string + '404': + description: Result not found + content: + text/plain: + schema: + type: string + '409': + description: Publish request already exists + content: + text/plain: + schema: + type: string + '500': + description: Internal server error + content: + text/plain: + schema: + type: string +x-tagGroups: + - name: Meshery Cloud + tags: + - applications + - capabilities + - catalog + - collaboration + - integrations + - credentials + - events + - filters + - meshery_models + - patterns + - roles + - smp_profile + - service mesh performance + - tokens + - user tokens + - users diff --git a/scripts/merge-openapi-specs.sh b/scripts/merge-openapi-specs.sh index 40551d234f..4ab8170642 100755 --- a/scripts/merge-openapi-specs.sh +++ b/scripts/merge-openapi-specs.sh @@ -1,7 +1,7 @@ #!/bin/sh temp_bundle_dir="./openapi/schemas/temp_schema_bundle" mkdir $temp_dir_name - +rm "./schemas/openapi.yml" process_spec() { echo "processing $1 ..." name=$(basename $1) @@ -10,7 +10,7 @@ process_spec() { } -schemas_dir="./schemas/constructs/v1alpha1" +schemas_dir="./schemas/constructs/openapi" for s in $schemas_dir/*; do if [[ -f $s ]]; then process_spec $s @@ -28,7 +28,7 @@ done echo "\njoining following schemas $schemas_to_join\n" -redocly join $schemas_to_join -o openapi/openapi.yml +redocly join $schemas_to_join -o ./schemas/openapi.yml echo "Successfully joined openapi specs. Removing temp dir." From 988bc8e3c470f7d7a801dfe9f891cac5f62d0a6d Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Mon, 1 Jul 2024 11:38:26 +0530 Subject: [PATCH 2/3] add workflow to resolve refs Signed-off-by: MUzairS15 --- .github/workflows/publish-schemas.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/publish-schemas.yml diff --git a/.github/workflows/publish-schemas.yml b/.github/workflows/publish-schemas.yml new file mode 100644 index 0000000000..9383b990ac --- /dev/null +++ b/.github/workflows/publish-schemas.yml @@ -0,0 +1,27 @@ +name: Schemas Publisher +on: + push: + branches: + - master + paths-ignore: + - '.github/**' + - README.md +jobs: + resolve-and-update-schema: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@master + with: + ref: 'master' + - name: Debug statements + run: | + pwd; + ls; + + - name: Run Script + working-directory: scripts + shell: bash + run: | + chmod +x ./merge-openapi-specs.sh + ./merge-openapi-specs.sh From 4baff23ac8a2512acab75a042565ce9f66d0750a Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Mon, 1 Jul 2024 11:41:56 +0530 Subject: [PATCH 3/3] delete generated file Signed-off-by: MUzairS15 --- schemas/openapi.yml | 4150 ------------------------------------------- 1 file changed, 4150 deletions(-) delete mode 100644 schemas/openapi.yml diff --git a/schemas/openapi.yml b/schemas/openapi.yml deleted file mode 100644 index 98f8c8319d..0000000000 --- a/schemas/openapi.yml +++ /dev/null @@ -1,4150 +0,0 @@ -openapi: 3.0.0 -info: - title: Meshery Cloud - description: Documentation for meshery Cloud REST APIs - contact: - email: support@layer5.io - version: v0.6.394 -servers: - - url: https://meshery.layer5.io - description: Meshery Cloud production server URL - - url: https://staging-meshery.layer5.io - description: Meshery Cloud staging server URL - - url: http://localhost:9876 - description: >- - Meshery Cloud development server URL (controlled via PORT environment - variable) -tags: - - name: applications - description: APIs for applications - x-displayName: applications - - name: capabilities - description: APIs for remote provider capablities - x-displayName: capabilities - - name: catalog - description: APIs for catalog - x-displayName: catalog - - name: collaboration - description: APIs for collaboration - x-displayName: collaboration - - name: integrations - description: APIs for integrations - x-displayName: integrations - - name: credentials - description: APIs for Credentials - x-displayName: credentials - - name: events - description: APIs for events - x-displayName: events - - name: filters - description: APIs for filters - x-displayName: filters - - name: meshery_models - description: APIs for Meshery models - x-displayName: meshery_models - - name: patterns - description: APIs for patterns - x-displayName: patterns - - name: roles - description: APIs for roles - x-displayName: roles - - name: smp_profile - description: APIs for Service Mesh Performace profile - x-displayName: smp_profile - - name: service mesh performance - x-displayName: service mesh performance - - name: tokens - description: APIs for tokens - x-displayName: tokens - - name: user tokens - x-displayName: user tokens - - name: users - description: APIs for users - x-displayName: users -paths: - /api/content/applications: - post: - tags: - - applications - operationId: UpsertApplication - summary: Upsert Application - description: >- - It will insert the application if not present else it will update the - matching entry - requestBody: - $ref: '#/components/requestBodies/mesheryApplicationRequestBody' - responses: - '200': - description: Upserted application - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/mesheryApplication' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - get: - tags: - - applications - operationId: GetApplications - summary: Get Applications - description: Get paginated applications - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Applications - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryApplicationPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/applications/upload/{id}: - post: - tags: - - applications - operationId: UpsertApplicationSourceContent - summary: Upsert application source content - description: Upserts only application source content - parameters: - - $ref: '#/components/parameters/id' - requestBody: - description: Body for upserting meshery application source content - required: true - content: - text/plain: - schema: - $ref: >- - #/components/schemas/mesheryApplication/properties/source_content - responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/applications/download/{id}: - get: - tags: - - applications - operationId: GetApplicationSourceContent - summary: Get application source content - description: Get application source content - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: application source content associated with ID - content: - text/plain: - schema: - $ref: >- - #/components/schemas/mesheryApplication/properties/source_content - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/applications/{id}: - get: - tags: - - applications - operationId: GetApplication - summary: Get application by ID - description: Get application by ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: application associated with ID - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryApplication' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - applications - operationId: DeleteApplication - summary: Delete application by ID - description: Delete application associated with ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Deleted application - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryApplication' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /capabilities: - get: - deprecated: true - tags: - - capabilities - operationId: GetCapabilitie - summary: Capabilities - description: Get available capabilities for logged in user - parameters: - - $ref: '#/components/parameters/os' - - $ref: '#/components/parameters/playground' - responses: - '200': - description: capabilities - content: - application/json: - schema: - $ref: '#/components/schemas/capability' - '500': - $ref: '#/components/responses/500' - security: [] - /{meshery-version}/capabilities: - get: - tags: - - capabilities - operationId: GetCapabilities - summary: Capabilities By server version - description: Get available capabilities for logged in user - parameters: - - $ref: '#/components/parameters/mesheryVersion' - - $ref: '#/components/parameters/os' - - $ref: '#/components/parameters/playground' - responses: - '200': - description: capabilities - content: - application/json: - schema: - $ref: '#/components/schemas/capability' - '500': - $ref: '#/components/responses/500' - security: [] - /api/catalog/requests/approve: - post: - tags: - - catalog - operationId: ApproveCatalogRequest - summary: Approve Catalog Request - description: Approve Catalog Request - requestBody: - $ref: '#/components/requestBodies/mesheryCatalogRequest' - responses: - '201': - $ref: '#/components/responses/201' - '401': - $ref: '#/components/responses/401' - '409': - $ref: '#/components/responses/409' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/catalog/requests/deny: - post: - tags: - - catalog - operationId: DenyCatalogRequest - summary: Deny Catalog Request - description: Deny Catalog Request - requestBody: - $ref: '#/components/requestBodies/mesheryCatalogRequest' - responses: - '201': - $ref: '#/components/responses/201' - '401': - $ref: '#/components/responses/401' - '409': - $ref: '#/components/responses/409' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/catalog/requests: - get: - tags: - - catalog - operationId: GetCatalogRequest - summary: Catalog Request - description: >- - Get all catalog requests (approved, denied or pending) in a paginated - manner - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/requestFilter' - responses: - '200': - description: Catalog requests - content: - application/json: - schema: - $ref: '#/components/schemas/catalogRequestsPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/catalog/content/{type}: - get: - tags: - - catalog - operationId: GetCatalogContent - summary: Get Catalog Content - description: Get catalog content by type - parameters: - - $ref: '#/components/parameters/catalogContentType' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: catalog content - content: - application/json: - schema: - oneOf: - - type: object - properties: - page: - type: integer - page_size: - type: integer - total_count: - type: integer - patterns: - type: array - items: - $ref: '#/components/schemas/mesheryPattern' - - type: object - properties: - page: - type: integer - page_size: - type: integer - total_count: - type: integer - filters: - type: array - items: - $ref: '#/components/schemas/mesheryFilter' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - post: - tags: - - catalog - operationId: PublishCatalogContent - summary: Publish Catalog Content - description: >- - Sets the visibility of catalog content to published and sets CatalogData - (if called by ADMIN or CURATOR), otherwise it pushes the request to - CatalogRequests Table - parameters: - - $ref: '#/components/parameters/catalogContentType' - requestBody: - $ref: '#/components/requestBodies/mesheryCatalogRequest' - responses: - '200': - $ref: '#/components/responses/200' - '401': - $ref: '#/components/responses/401' - '409': - $ref: '#/components/responses/409' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - catalog - operationId: UnPublishCatalogContent - summary: Unpublish Catalog Content - description: >- - Sets the visibility of catalog content to private and removes the - content from website (if called by ADMIN or CURATOR), otherwise rejects - the request - parameters: - - $ref: '#/components/parameters/catalogContentType' - requestBody: - $ref: '#/components/requestBodies/mesheryCatalogRequest' - responses: - '200': - $ref: '#/components/responses/200' - '401': - $ref: '#/components/responses/401' - '409': - $ref: '#/components/responses/409' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /collaboration: - get: - tags: - - collaboration - operationId: CollaborationHandler - summary: Collaboration - description: Collaboration - security: [] - responses: - '101': - description: initate cross server collaboration - /api/integrations/connections: - post: - tags: - - integrations - operationId: RegisterConnection - summary: Register Connection - description: Register with Meshery Cloud - requestBody: - $ref: '#/components/requestBodies/connectionPayload' - responses: - '200': - description: Inserted connection - content: - application/json: - schema: - $ref: '#/components/schemas/connection' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - get: - tags: - - integrations - operationId: GetConnections - summary: Get connections - description: Get connections - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Paginated list of connections - content: - application/json: - schema: - $ref: '#/components/schemas/connectionPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/integrations/connections/{connectionId}: - put: - tags: - - integrations - operationId: EditConnectionByID - summary: Edit Connection by ID - description: Edit registered connection using the connection ID - parameters: - - $ref: '#/components/parameters/connectionId' - requestBody: - $ref: '#/components/requestBodies/connectionPayload' - responses: - '200': - description: Edited connection - content: - application/json: - schema: - $ref: '#/components/schemas/connection' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/integrations/connections/status: - get: - tags: - - integrations - operationId: GetConnectionStatus - summary: Get status of all connections - description: Get summary about the status of all connections - responses: - '200': - description: Status of connections - content: - application/json: - schema: - $ref: '#/components/schemas/connectionsStatusPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/integrations/connections/{connectionKind}: - get: - tags: - - integrations - operationId: GetConnectionsByKind - summary: Get connections by kind - description: Get connections by kind - parameters: - - $ref: '#/components/parameters/connectionKind' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Connections by kind - content: - application/json: - schema: - type: object - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: [] - delete: - tags: - - integrations - operationId: DeleteConnection - summary: Delete connection - description: Delete registered connection - parameters: - - $ref: '#/components/parameters/connectionKind' - responses: - '200': - description: Deleted connection - content: - application/json: - schema: - $ref: '#/components/schemas/connection' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/integrations/connections/{connectionKind}/{connectionId}: - get: - tags: - - integrations - operationId: GetConnectionsByKindAndConnectionID - summary: Get connections by kind and connectionID. - description: >- - Get connections by kind (kind is required because this API returns the - results in non std format of a connection) - parameters: - - $ref: '#/components/parameters/connectionKind' - - $ref: '#/components/parameters/connectionId' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Connections by kind - content: - application/json: - schema: - type: object - oneOf: - - $ref: '#/components/schemas/k8sContextPersistResponse' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/integrations/connections/meshery/{mesheryServerID}: - delete: - tags: - - integrations - operationId: DeleteMesheryConnection - summary: Delete Meshery connection - description: >- - Deletes a given meshery connection. This is generally used for deleting - connections from Meshery Server UI where UI is not aware of connection - IDs. - parameters: - - $ref: '#/components/parameters/serverId' - responses: - '200': - $ref: '#/components/responses/200' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/system/user/credentials: - get: - tags: - - credentials - operationId: GetUserCredentials - summary: Get user's credentials - description: Get all user's credentials for logged in user - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: credentials - content: - application/json: - schema: - $ref: '#/components/schemas/credentialsPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - credentials - operationId: DeleteUserCredential - summary: Delete user's credentials - description: Delete user's credentials (tombstoned records) for logged in user - parameters: - - $ref: '#/components/parameters/credentialId' - responses: - '200': - $ref: '#/components/responses/200' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - post: - tags: - - credentials - operationId: SaveUserCredential - summary: Create Credential - description: Create new credentials for logged in user - requestBody: - $ref: '#/components/requestBodies/credentialBody' - responses: - '201': - $ref: '#/components/responses/201' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - put: - tags: - - credentials - operationId: UpdateUserCredential - summary: Update credential - description: Update credentials for logged in user - requestBody: - $ref: '#/components/requestBodies/credentialBody' - responses: - '200': - $ref: '#/components/responses/200' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/events: - get: - tags: - - events - operationId: GetEventsAggregate - summary: Get Events Aggregate - description: Get Events Aggreate Count - parameters: - - $ref: '#/components/parameters/cumulative' - responses: - '200': - description: Events Aggregate Count - content: - application/json: - schema: - $ref: '#/components/schemas/eventsAggregate' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/events/date: - get: - tags: - - events - operationId: RetrieveResultsByDate - summary: Events by Date - description: Get Events by date - parameters: - - $ref: '#/components/parameters/cumulative' - responses: - '200': - description: Events by date - content: - application/json: - schema: - $ref: '#/components/schemas/eventTrackerGroupedArray' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/events/week: - get: - tags: - - events - operationId: RetrieveResultsByWeek - summary: Events by Week - description: Get Events by week - parameters: - - $ref: '#/components/parameters/cumulative' - responses: - '200': - description: Events by week - content: - application/json: - schema: - $ref: '#/components/schemas/eventTrackerGroupedArray' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/events/month: - get: - tags: - - events - operationId: RetrieveResultsByMonth - summary: Events by Month - description: Get Events by month - parameters: - - $ref: '#/components/parameters/cumulative' - responses: - '200': - description: Events by month - content: - application/json: - schema: - $ref: '#/components/schemas/eventTrackerGroupedArray' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/events/list: - get: - tags: - - events - operationId: GetEvents - summary: All Events - description: Get All events - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/eventsFilter' - responses: - '200': - description: Events list - content: - application/json: - schema: - $ref: '#/components/schemas/eventsPage' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/events/summary: - get: - tags: - - events - operationId: GetEventSummaryByUser - summary: Events Summary - description: Get Events summary for a user - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Events Summary - content: - application/json: - schema: - $ref: '#/components/schemas/eventSummaryPage' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/filters: - post: - tags: - - filters - operationId: UpsertFilter - summary: Upsert Filter - description: >- - It will insert the filter if not present else it will update the - matching entry - requestBody: - $ref: '#/components/requestBodies/mesheryFilterRequestBody' - responses: - '200': - description: Upserted filter - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/mesheryFilter' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - get: - tags: - - filters - operationId: GetFilters - summary: Get Filters - description: Get paginated filters - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Filters - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryFilterPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/filters/file/{id}: - get: - tags: - - filters - operationId: GetFilterFile - summary: Filter file - description: Get the filter associated with the given filter id without any metadata - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Filter file - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryFilter/properties/filter_file' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/filters/{id}: - get: - tags: - - filters - operationId: GetFilter - summary: Get filter by ID - description: Get filter by ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Filter associated with ID - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryFilter' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - filters - operationId: DeleteFilter - summary: Delete filter by ID - description: Delete filter associated with ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Deleted filter - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryFilter' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/filters/clone/{id}: - post: - tags: - - filters - operationId: CloneFilter - summary: Clone filter - description: Clone filter associated with ID - parameters: - - $ref: '#/components/parameters/id' - requestBody: - description: Body for cloning design - required: true - content: - application/json: - schema: - properties: - name: - type: string - required: - - name - responses: - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/integrations/meshmodels/models: - get: - tags: - - meshery_models - operationId: GetMeshModelModels - summary: Get all models - description: Get models by name - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/status' - responses: - '200': - description: Models - content: - application/json: - schema: - $ref: '#/components/schemas/meshmodelModelsPage' - '500': - $ref: '#/components/responses/500' - security: [] - /api/integrations/meshmodels/categories: - get: - tags: - - meshery_models - operationId: GetMeshModelCategories - summary: Get all categories - description: Get models by technology category - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Categories - content: - application/json: - schema: - $ref: '#/components/schemas/meshmodelCategoriesPage' - '500': - $ref: '#/components/responses/500' - security: [] - /api/content/patterns/resource: - post: - tags: - - patterns - operationId: UpsertPatternResource - summary: Upsert Pattern resource - description: >- - It will insert the pattern resource if not present else it will update - the matching entry - requestBody: - $ref: '#/components/requestBodies/mesheryPatternResource' - responses: - '200': - description: Meshery pattern resource - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPatternResource' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - get: - tags: - - patterns - operationId: GetPatternResources - summary: Get Pattern resources - description: Get paginated pattern resources - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/namespace' - - $ref: '#/components/parameters/type' - - $ref: '#/components/parameters/oamType' - - $ref: '#/components/parameters/name' - description: Name - responses: - '200': - description: Meshery pattern resources - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPatternResourcePage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/patterns/resource/{id}: - get: - tags: - - patterns - operationId: GetPatternResource - summary: Pattern Resource by ID - description: Get Pattern Resource By ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Meshery pattern resource associated with id - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPatternResource' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - patterns - operationId: DeletePatternResource - summary: Delete pattern resource - description: Delete pattern resource associated with id - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Deleted meshery pattern resource associated with id - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPatternResource' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/patterns: - post: - tags: - - patterns - operationId: UpsertPattern - summary: Upsert Pattern - description: >- - It will insert the pattern if not present else it will update the - matching entry - requestBody: - $ref: '#/components/requestBodies/mesheryPatternRequestBody' - responses: - '200': - description: Upserted pattern - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/mesheryPattern' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - get: - tags: - - patterns - operationId: GetPatterns - summary: Get Patterns - description: Get paginated patterns - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Patterns - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPatternPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - patterns - operationId: DeletePatterns - summary: Delete patterns - description: Delete patterns with the provided ids - requestBody: - $ref: '#/components/requestBodies/mesheryPatternDeleteRequestBody' - responses: - '200': - description: Deleted pattern - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPattern' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/patterns/{id}: - get: - tags: - - patterns - operationId: GetPattern - summary: Get pattern by ID - description: Get pattern by ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Pattern associated with ID - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPattern' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - patterns - operationId: DeletePattern - summary: Delete pattern by ID - description: Delete pattern associated with ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Deleted pattern - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPattern' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/patterns/clone/{id}: - post: - tags: - - patterns - operationId: ClonePattern - summary: Clone pattern - description: Clone pattern associated with ID - parameters: - - $ref: '#/components/parameters/id' - requestBody: - description: Body for cloning design - required: true - content: - application/json: - schema: - properties: - name: - type: string - required: - - name - responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/content/design/share: - post: - tags: - - patterns - operationId: HandleShare - summary: Design Share - description: Share design with others - requestBody: - $ref: '#/components/requestBodies/designShare' - responses: - '200': - $ref: '#/components/responses/200' - '401': - $ref: '#/components/responses/401' - '403': - description: Only owner have access to changing sharing mode - content: - text/plain: - schema: - type: string - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /system/roles: - get: - tags: - - roles - operationId: GetAllRoles - summary: Get All Roles - description: Get All supported roles - responses: - '200': - description: Get all roles - content: - application/json: - schema: - type: array - items: - type: string - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - post: - tags: - - roles - operationId: AddRoleHolder - summary: Assign role - description: Assign role to user - requestBody: - description: Body for assigning role to the user - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/roleHolderRequest' - responses: - '200': - $ref: '#/components/responses/200' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /system/roles/edit: - post: - tags: - - roles - operationId: EditRoleHolder - summary: Edit Role - description: Edit role of user - requestBody: - description: Body for editing role of the user - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/role' - responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /system/roles/edit/bulk: - post: - tags: - - roles - operationId: BulkEditRoleHolder - summary: Bulk Edit Role - description: Edit roles of user in bulk - requestBody: - description: Body for editing role of the users in bulk - required: true - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/role' - responses: - '201': - $ref: '#/components/responses/201' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /system/roles/{id}: - delete: - tags: - - roles - operationId: DeleteRole - summary: Delete Role - description: Edit roles of user in bulk - parameters: - - $ref: '#/components/parameters/id' - required: true - responses: - '201': - description: Deleted roles - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/role' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/performance/smp/profiles: - get: - tags: - - service mesh performance - operationId: SMPDashboardPerfProfiles - summary: Performance Profiles - description: Get Performance Profiles for SMP Dashboard - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Get Performance Profiles with pagination - content: - application/json: - schema: - $ref: '#/components/schemas/performanceProfilePage' - '500': - $ref: '#/components/responses/500' - security: [] - /api/performance/smp/profiles/{id}/results: - get: - tags: - - service mesh performance - operationId: SMPDashboardTestResults - summary: Performance Profiles Results by ID - description: Get Performance Profiles results by ID for SMP Dashboard - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Get Performance Profiles Results with pagination - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryResultPage' - '500': - $ref: '#/components/responses/500' - '502': - description: Invalid path parameter "id" - content: - text/plain: - schema: - type: string - security: [] - /api/performance/profiles: - post: - tags: - - service mesh performance - operationId: UpsertPerformanceProfile - summary: Upsert Performance Profiles - description: >- - Update performance profiles or create a new performance profile if no id - is provided - requestBody: - description: Body for upserting performance profile - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/performanceProfile' - responses: - '201': - description: updated performance profile - content: - application/json: - schema: - $ref: '#/components/schemas/performanceProfile' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - get: - tags: - - service mesh performance - operationId: GetPerformanceProfiles - summary: Get Performance Profiles - description: Get performance profiles - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Performance Profiles - content: - application/json: - schema: - $ref: '#/components/schemas/performanceProfilePage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/performance/profiles/{id}: - get: - tags: - - service mesh performance - operationId: GetPerformanceProfile - summary: Performance Profile by Id - description: Get Performance Profile by ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Performance Profile for provided performance profile id - content: - application/json: - schema: - $ref: '#/components/schemas/performanceProfile' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - service mesh performance - operationId: DeletePerformanceProfile - summary: Delete Performance Profiles - description: Delete performance profiles by ID - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Deleted Performance Profile - content: - application/json: - schema: - $ref: '#/components/schemas/performanceProfile' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/performance/profiles/{id}/results: - get: - tags: - - service mesh performance - operationId: GetPerformanceProfileResults - summary: Performance Profiles result - description: Get paginated Performance Profiles result - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: Performance Profile results - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryResultPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - post: - tags: - - service mesh performance - operationId: AddPerformanceProfileResult - summary: Add performance profiles result - description: Add performance profile result in given performance profile id - parameters: - - $ref: '#/components/parameters/id' - requestBody: - description: Body for adding perfor mance profile result - content: - application/json: - schema: - $ref: '#/components/schemas/performanceResult' - responses: - '201': - description: Performance Profile results - content: - application/json: - schema: - properties: - id: - type: string - format: uuid - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/performance/profiles/{id}/results/{resultID}: - get: - tags: - - service mesh performance - operationId: GetPerformanceProfileResult - summary: Performance Profiles result - description: >- - Get the performance test result associated with the given profile id and - with the given test id - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/resultID' - responses: - '200': - description: Performance Profile results - content: - application/json: - schema: - $ref: '#/components/schemas/performanceResult' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /system/user/tokens: - get: - tags: - - user tokens - operationId: GetUserTokens - summary: Get Tokens - description: Get tokens associated with logged in user - parameters: - - $ref: '#/components/parameters/isOAuth' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - responses: - '200': - description: user tokens - content: - application/json: - schema: - $ref: '#/components/schemas/tokenPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - post: - tags: - - user tokens - operationId: GenerateToken - summary: Generate token for logged in user - description: >- - Generates infinite token (i.e. tokens that do not expire) for the logged - in user. - parameters: - - $ref: '#/components/parameters/name' - - $ref: '#/components/parameters/purpose' - responses: - '200': - description: generated token - content: - text/plain: - schema: - type: string - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: - tags: - - user tokens - operationId: DeleteUserTokens - summary: Delete token - description: Delete token for logged in user - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/map_object' - responses: - '200': - $ref: '#/components/responses/200' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /system/token: - get: - tags: - - user tokens - operationId: IssueIndefiniteLifetimeToken - summary: Infinite token - description: Get Infinite Token - parameters: - - $ref: '#/components/parameters/userId' - - $ref: '#/components/parameters/provider' - responses: - '200': - description: generated token - content: - text/plain: - schema: - type: string - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users/invite: - post: - tags: - - users - operationId: HandleUserInvite - summary: User Invite - description: Send invitation request to users - requestBody: - $ref: '#/components/requestBodies/userInvite' - responses: - '200': - $ref: '#/components/responses/200' - description: Invitation sent - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users/preferences: - put: - tags: - - users - operationId: UpdateUserPreference - summary: User Preference - description: Upsert user preferences - requestBody: - description: Body for upserting user preferences - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/map_object' - responses: - '201': - $ref: '#/components/responses/201' - description: Preferences updated - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users/keys: - get: - tags: - - users - operationId: GetUserKeys - summary: Get User Keys - description: Get all keys based on roles assigned to user - responses: - '200': - description: Returns user keys based on roles assigned to user - content: - application/json: - schema: - $ref: '#/components/schemas/userKeys' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/user/{user_id}: - get: - tags: - - users - operationId: GetUserById - summary: Get User by ID - description: Get specific user by user id - parameters: - - $ref: '#/components/parameters/userId' - responses: - '200': - description: Returns user with given user_id - content: - application/json: - schema: - $ref: '#/components/schemas/user' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users/{delete_on}: - post: - tags: - - users - operationId: DeleteUsers - summary: Delete users - description: Delete users based on delete_for parameter - parameters: - - $ref: '#/components/parameters/deleteOn' - requestBody: - $ref: '#/components/requestBodies/deleteUsers' - responses: - '201': - $ref: '#/components/responses/201' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/system/delete/user/{user_id}: - get: - tags: - - users - operationId: DeleteUserAccountById - summary: Delete account by ID - description: Delete account by ID - parameters: - - $ref: '#/components/parameters/userId' - responses: - '201': - $ref: '#/components/responses/201' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users: - get: - tags: - - users - operationId: GetRoleHolders - summary: Get All users - description: Get All users - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/filter' - responses: - '200': - description: Get all user with pagination - content: - application/json: - schema: - anyOf: - - $ref: '#/components/schemas/usersPageForAdmin' - - $ref: '#/components/schemas/teamMembersPage' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/users: - get: - tags: - - users - operationId: GetUsers - summary: Get All users - description: Get All users - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/filter' - responses: - '200': - description: Get all user with pagination - content: - application/json: - schema: - $ref: '#/components/schemas/usersPageForNonAdmin' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users/profile/{id}: - get: - tags: - - users - operationId: GetUserProfileById - summary: Get user profile by Id - description: Get user profile of given user Id - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Returns user with given id - content: - application/json: - schema: - $ref: '#/components/schemas/user' - '400': - $ref: '#/components/responses/400' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users/profile: - get: - tags: - - users - operationId: GetUser - summary: Get User details - description: Get user details for logged in user - responses: - '200': - description: user details - content: - application/json: - schema: - $ref: '#/components/schemas/user' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - put: - tags: - - users - operationId: UpdateProfile - summary: Update Profile - description: Update user profile data (also updates kratos identity) - requestBody: - $ref: '#/components/requestBodies/user' - responses: - '201': - $ref: '#/components/responses/201' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users/profile/details: - get: - tags: - - users - operationId: GetProfileOverview - summary: Profile Overview - description: Get Profile overview for logged in user - responses: - '200': - description: user account overview - content: - application/json: - schema: - $ref: '#/components/schemas/accountOverview' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/users/{user_id}/profile/activity: - get: - tags: - - users - operationId: GetUserActivity - summary: User Activity - description: Get last 10 user activities - parameters: - - name: user_id - in: path - description: UUID of User - schema: - type: string - required: true - responses: - '200': - description: user activity - content: - application/json: - schema: - $ref: '#/components/schemas/recentActivityPage' - '500': - $ref: '#/components/responses/500' - security: [] - /api/identity/users/online: - get: - tags: - - users - operationId: GetRecentlyOnlineUsers - summary: Online users - description: Get info of active / online users in last 24 hours - responses: - '200': - description: active users - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/recentUsers' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/identity/badges: - get: - tags: - - users - operationId: GetAvailableBadges - summary: Gets available badges - description: Gets available badges - responses: - '200': - description: Badges - content: - application/json: - schema: - $ref: '#/components/schemas/badges' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] -components: - securitySchemes: - jwt: - type: http - scheme: Bearer - bearerFormat: JWT - schemas: - mesheryApplication: - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/id' - application_file: - $ref: '#/components/schemas/text' - description: Application file - name: - $ref: '#/components/schemas/text' - description: Pattern Name - location: - $ref: '#/components/schemas/map_object' - visibility: - $ref: '#/components/schemas/text' - source_type: - enum: - - k8s_manifest - - docker_compose - - helm_chart - description: Source type (K8s manifest, Helm chart, Docker compose) - source_content: - type: string - format: byte - description: Source content - catalog_data: - $ref: '#/components/schemas/map_object' - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - mesheryApplicationPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - applications: - type: array - items: - $ref: '#/components/schemas/mesheryApplication' - resultsPage: - discriminator: - propertyName: resultType - properties: - page: - type: integer - x-go-type-skip-optional-pointer: true - page_size: - type: integer - x-go-type-skip-optional-pointer: true - total_count: - type: integer - x-go-type-skip-optional-pointer: true - resultType: - type: string - x-go-type-skip-optional-pointer: true - x-go-type-skip-optional-pointer: true - id: - type: string - format: uuid - x-go-type: uuid.UUID - x-go-type-import: - path: github.com/gofrs/uuid - x-oapi-codegen-extra-tags: - db: id - json: id - x-go-name: ID - x-go-type-skip-optional-pointer: true - text: - type: string - x-go-type-skip-optional-pointer: true - map_object: - type: object - additionalProperties: - type: string - x-go-type-skip-optional-pointer: true - time: - type: string - format: date-time - x-go-type-skip-optional-pointer: true - capability: - properties: - provider_type: - $ref: '#/components/schemas/provider' - description: Provider type - package_version: - $ref: '#/components/schemas/text' - description: Package version - package_url: - $ref: '#/components/schemas/text' - description: Package url - provider_name: - $ref: '#/components/schemas/text' - description: Provider name - provider_description: - type: array - items: - $ref: '#/components/schemas/text' - extensions: - $ref: '#/components/schemas/capabilityExtension' - capabilities: - $ref: '#/components/schemas/capabilityGeneralCapability' - restrictedAccess: - $ref: '#/components/schemas/restrictedAccess' - capabilityNavigatorExtension: - properties: - title: - $ref: '#/components/schemas/text' - description: Title - on_click_callback: - type: integer - href: - properties: - uri: - type: string - format: uri - external: - type: boolean - component: - $ref: '#/components/schemas/text' - description: Component - icon: - $ref: '#/components/schemas/text' - description: Icon link - link: - $ref: '#/components/schemas/text' - description: link - format: uri - show: - type: boolean - description: Controls whether to show the extension or not - type: - $ref: '#/components/schemas/text' - description: Extension type - allowedTo: - type: object - capabilityUserPrefExtension: - properties: - component: - $ref: '#/components/schemas/text' - description: Component - type: - $ref: '#/components/schemas/text' - description: Extension type - capabilityGraphQLExtension: - properties: - component: - $ref: '#/components/schemas/text' - description: Component - path: - $ref: '#/components/schemas/text' - description: Path - type: - $ref: '#/components/schemas/text' - description: Extension type - capabilitiesAccountExtension: - properties: - title: - $ref: '#/components/schemas/text' - description: Title - on_click_callback: - type: integer - href: - properties: - uri: - type: string - format: uri - external: - type: boolean - component: - $ref: '#/components/schemas/text' - description: Component - link: - $ref: '#/components/schemas/text' - description: link - format: uri - show: - type: boolean - description: Controls whether to show the extension or not - type: - $ref: '#/components/schemas/text' - description: Extension type - restrictedAccess: - properties: - isMesheryUIRestricted: - type: boolean - allowedComponents: - properties: - navigator: - type: object - header: - type: object - capabilityGeneralCapability: - properties: - feature: - $ref: '#/components/schemas/text' - description: Feature name - endpoint: - $ref: '#/components/schemas/text' - capabilityExtension: - properties: - navigator: - type: array - items: - $ref: '#/components/schemas/capabilityNavigatorExtension' - user_prefs: - type: array - items: - $ref: '#/components/schemas/capabilityUserPrefExtension' - graphql: - type: array - items: - $ref: '#/components/schemas/capabilityGraphQLExtension' - account: - type: array - items: - $ref: '#/components/schemas/capabilitiesAccountExtension' - provider: - type: string - description: One of (meshery-cloud, github, google) - x-go-type-skip-optional-pointer: true - catalogRequest: - properties: - id: - $ref: '#/components/schemas/id' - content_id: - $ref: '#/components/schemas/id' - content_name: - $ref: '#/components/schemas/text' - content_type: - enum: - - pattern - - filter - description: Catalog type (pattern / filter) - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - email: - $ref: '#/components/schemas/email' - status: - enum: - - pending - - approved - - denied - description: Catalog request status (pending / approved / denied) - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - catalog_data: - $ref: '#/components/schemas/catalog_data' - catalogRequestsPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - signup_data: - type: array - items: - $ref: '#/components/schemas/catalogRequest' - catalog_data: - type: object - properties: - publishedVersion: - description: >- - Tracks the specific content version that has been made available in - the Catalog. - type: string - class: - description: >- - Published content is classifed by its support level. Content classes - help you understand the origin and expected support level for each - piece of content. It is important to note that the level of support - may vary within each class, and you should exercise discretion when - using community-contributed content. Content produced and fully - supported by Meshery maintainers. This represents the highest level - of support and is considered the most reliable. Content produced by - partners and verified by Meshery maintainers. While not directly - maintained by Meshery, it has undergone a verification process to - ensure quality and compatibility. Content produced and supported by - the respective project or organization responsible for the specific - technology. This class offers a level of support from the project - maintainers themselves. Content produced and shared by Meshery - users. This includes a wide range of content, such as performance - profiles, test results, filters, patterns, and applications. - Community content may have varying levels of support and - reliability. - type: string - enum: - - official - - verified - - project - - community - compatibility: - type: array - title: Model - items: - enum: - - kubernetes - type: string - uniqueItems: true - minItems: 1 - description: >- - One or more models associated with this catalog item. For designs, a - list of one or more models implicated by components within the - design. For models, this is self-referential. - pattern_caveats: - type: string - title: Caveats and Considerations - description: >- - Specific stipulations to consider and known behaviors to be aware of - when using this design. - pattern_info: - type: string - title: Description - description: Purpose of the design along with its intended and unintended uses. - type: - type: string - title: Type - enum: - - Deployment - - Observability - - Resiliency - - Scaling - - Security - - Traffic-management - - Troubleshooting - - Workloads - default: Deployment - description: >- - Categorization of the type of design or operational flow depicted in - this design. - snapshotURL: - type: array - items: - type: string - format: uri - pattern: ^(https?|http?|oci):// - description: >- - Contains reference to the dark and light mode snapshots of the - design. - required: - - compatibility - - pattern_caveats - - pattern_info - - type - email: - type: string - format: email - description: email - x-go-type-skip-optional-pointer: true - design: - title: Design Schema - description: Schema for design in v1Beta1 - type: object - properties: - name: - type: string - description: Name of the design - schemaVersion: - type: string - description: Specifies the version of the schema to which the design conforms. - version: - type: string - description: Version of the design - minLength: 1 - maxLength: 50 - services: - description: >- - Map of component IDs/names to their corresponding component - declarations - type: object - additionalProperties: - type: object - properties: - id: - type: string - name: - type: string - type: - type: string - apiVersion: - type: string - namespace: - type: string - version: - type: string - model: - type: string - isAnnotation: - type: boolean - labels: - additionalProperties: - type: string - type: object - annotations: - additionalProperties: - type: string - type: object - dependsOn: - items: - type: string - type: array - settings: - type: object - traits: - type: object - required: - - name - - services - mesheryPattern: - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/id' - pattern_file: - $ref: '#/components/schemas/design' - description: Pattern file - name: - $ref: '#/components/schemas/text' - description: Pattern Name - location: - $ref: '#/components/schemas/map_object' - visibility: - $ref: '#/components/schemas/text' - catalog_data: - $ref: '#/components/schemas/catalog_data' - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - mesheryFilter: - properties: - id: - $ref: '#/components/schemas/id' - description: Connection id - user_id: - $ref: '#/components/schemas/id' - filter_file: - type: string - format: byte - description: Filter file - name: - $ref: '#/components/schemas/text' - description: Filter Name - location: - $ref: '#/components/schemas/map_object' - visibility: - $ref: '#/components/schemas/text' - catalog_data: - $ref: '#/components/schemas/map_object' - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - mesheryInstance: - properties: - id: - $ref: '#/components/schemas/id' - description: Connection id - name: - $ref: '#/components/schemas/text' - description: Connection name - server_id: - $ref: '#/components/schemas/text' - description: Connected server id - server_version: - $ref: '#/components/schemas/text' - description: Running server version - server_location: - $ref: '#/components/schemas/text' - server_build_sha: - $ref: '#/components/schemas/text' - description: Server build SHA - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - deleted_at: - $ref: '#/components/schemas/time' - status: - $ref: '#/components/schemas/text' - description: Status - connection: - properties: - id: - $ref: '#/components/schemas/id' - description: ID - name: - $ref: '#/components/schemas/text' - description: Connection Name - credential_id: - $ref: '#/components/schemas/id' - description: Credential ID - type: - $ref: '#/components/schemas/text' - description: Connection Type - sub_type: - $ref: '#/components/schemas/text' - description: Connection Subtype - kind: - $ref: '#/components/schemas/text' - description: Connection Kind - metadata: - $ref: '#/components/schemas/map_object' - status: - $ref: '#/components/schemas/text' - description: Connection Status - type: string - enum: - - discovered - - registered - - connected - - ignored - - maintenance - - disconnected - - deleted - - not found - user_id: - $ref: '#/components/schemas/id' - x-go-name: UserID - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - deleted_at: - $ref: '#/components/schemas/time' - connectionPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - connections: - type: array - items: - $ref: '#/components/schemas/connection' - connectionStatusInfo: - properties: - status: - $ref: '#/components/schemas/text' - description: Connection status - count: - type: integer - description: Number of connections having the status - connectionsStatusPage: - properties: - connections_status: - type: array - items: - $ref: '#/components/schemas/connectionStatusInfo' - k8sContext: - properties: - id: - $ref: '#/components/schemas/id' - name: - $ref: '#/components/schemas/text' - auth: - $ref: '#/components/schemas/map_object' - cluster: - $ref: '#/components/schemas/map_object' - server: - type: string - owner: - $ref: '#/components/schemas/id' - created_by: - $ref: '#/components/schemas/id' - meshery_instance_id: - $ref: '#/components/schemas/id' - kubernetes_server_id: - $ref: '#/components/schemas/id' - deployment_type: - type: string - updated_at: - $ref: '#/components/schemas/time' - created_at: - $ref: '#/components/schemas/time' - k8sContextPersistResponse: - properties: - k8sContext: - $ref: '#/components/schemas/k8sContext' - inserted: - type: boolean - credential: - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/id' - name: - $ref: '#/components/schemas/text' - type: - type: string - secret: - $ref: '#/components/schemas/map_object' - created_at: - $ref: '#/components/schemas/created_at' - updated_at: - $ref: '#/components/schemas/updated_at' - deleted_at: - $ref: '#/components/schemas/deleted_at' - credentialsPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - credential: - type: array - items: - $ref: '#/components/schemas/credential' - created_at: - description: Timestamp when the resource was created. - x-go-type: time.Time - type: string - format: date-time - x-oapi-codegen-extra-tags: - db: created_at - x-go-type-skip-optional-pointer: true - updated_at: - description: Timestamp when the resource was updated. - x-go-type: time.Time - type: string - format: date-time - x-oapi-codegen-extra-tags: - db: updated_at - x-go-type-skip-optional-pointer: true - deleted_at: - description: Timestamp when the resource was deleted. - x-go-type: time.Time - type: string - format: date-time - x-oapi-codegen-extra-tags: - db: deleted_at - x-go-type-skip-optional-pointer: true - eventType: - type: string - x-oapi-codegen-extra-tags: - db: event_type - event: - description: Defines model for event_trackers - properties: - id: - description: | - UUID of the event. - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/user_uuid' - description: > - UUID of the user that initiated the event. In most cases this would - be present, but not always. - system_id: - description: > - The system from which the request is sourced. In the case of Meshery - Server, - - the ID is meshery_instance_id of Meshery Server (which can be found - in the metadata of`Connections` table). - $ref: '#/components/schemas/system_id' - operation_id: - description: > - Each Event will have a OperationID. This field is never NULL, which - is to say an operation can result in series of events, for eg: - Different stages of Pattern Engine / activities of Workflow engine. - Each operation (and sub-operation) will have a different operation - ID. - $ref: '#/components/schemas/operation_id' - category: - description: | - Resource name on which the operation is invoked. - type: string - example: pattern - x-oapi-codegen-extra-tags: - db: category - action: - description: | - Action taken on the resource. - type: string - example: deployed - x-oapi-codegen-extra-tags: - db: action - status: - description: | - Status for the event. - type: string - enum: - - read - - unread - x-oapi-codegen-extra-tags: - db: status - acted_upon: - type: string - format: uuid - description: | - UUID of the entity on which the event was performed. - example: 110020-123230-434231-000213 - x-go-type: uuid.UUID - x-oapi-codegen-extra-tags: - db: acted_upon - description: - description: | - A summary/receipt of event that occured. - type: string - example: “Prometheus” pattern deployed in K8s ctx “Meshery Cloud”. - x-oapi-codegen-extra-tags: - db: description - severity: - description: | - A set of seven standard event levels. - type: string - enum: - - emergency - - critical - - alert - - error - - warning - - debug - - informational - - success - example: info - x-oapi-codegen-extra-tags: - db: severity - metadata: - description: | - Contains meaningful information, specific to the type of event. - Structure of metadata can be different for different events. - type: object - x-go-type: '[]byte' - x-oapi-codegen-extra-tags: - db: metadata - created_at: - $ref: '#/components/schemas/created_at' - updated_at: - $ref: '#/components/schemas/updated_at' - deleted_at: - $ref: '#/components/schemas/deleted_at' - required: - - id - - system_id - - operation_id - - category - - action - - status - - acted_upon - - description - - severity - - metadata - - created_at - - updated_at - events_filter: - type: object - properties: - provider: - type: array - items: - type: string - category: - type: array - items: - type: string - action: - type: array - items: - type: string - severity: - type: array - items: - type: string - limit: - type: integer - offset: - type: integer - sort_on: - type: string - description: Field on which records are sorted - order: - type: string - description: order of sort asc/desc, default is asc - required: - - provider - - category - - action - - severity - - limit - - offset - - sort_on - - order - eventTrackerGrouped: - properties: - count: - type: integer - event_type: - $ref: '#/components/schemas/text' - dt: - $ref: '#/components/schemas/time' - week: - $ref: '#/components/schemas/text' - month: - $ref: '#/components/schemas/text' - year: - $ref: '#/components/schemas/text' - eventTrackerGroupedArray: - type: array - items: - $ref: '#/components/schemas/eventTrackerGrouped' - eventResult: - properties: - event: - $ref: '#/components/schemas/event' - events_count: - type: integer - x-oapi-codegen-extra-tags: - db: events_count - required: - - event - - events_count - eventsPage: - allOf: - - $ref: '#/components/schemas/recordsPage' - - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/eventResult' - eventSummary: - properties: - user_id: - type: string - description: user's email or username - provider: - type: string - email: - type: string - first_name: - type: string - description: First Name - last_name: - type: string - description: Last Name - activity_count: - type: integer - login_count: - type: integer - signup_count: - type: integer - perf_results_count: - type: integer - smi_results_count: - type: integer - meshery_apps_count: - type: integer - meshery_patterns_count: - type: integer - meshery_filters_count: - type: integer - last_login_time: - type: string - format: data-time - x-go-type: time.Time - required: - - user_id - - provider - - email - - first_name - - last_name - - activity_count - - login_count - - signup_count - - perf_results_count - - smi_results_count - - meshery_apps_count - - meshery_patterns_count - - meshery_filters_count - - last_login_time - eventSummaryPage: - allOf: - - $ref: '#/components/schemas/recordsPage' - - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/eventSummary' - eventsAggregate: - properties: - audit: - type: integer - description: Number of audit events - summary: - type: integer - description: Number of summary events - recordsPage: - discriminator: - propertyName: recordType - properties: - page: - type: integer - x-go-type-skip-optional-pointer: true - page_size: - type: integer - x-go-type-skip-optional-pointer: true - records_total: - type: integer - x-go-type-skip-optional-pointer: true - recordType: - type: string - x-go-type-skip-optional-pointer: true - x-go-type-skip-optional-pointer: true - user_uuid: - type: string - format: uuid - x-go-type: uuid.UUID - x-go-type-import: - path: github.com/gofrs/uuid - x-oapi-codegen-extra-tags: - db: user_id - json: user_id - x-go-name: UserID - x-go-type-skip-optional-pointer: true - system_id: - type: string - format: uuid - x-go-type: uuid.UUID - x-go-type-import: - path: github.com/gofrs/uuid - x-oapi-codegen-extra-tags: - db: system_id - x-go-name: SystemID - x-go-type-skip-optional-pointer: true - operation_id: - type: string - format: uuid - x-go-type: uuid.UUID - x-go-type-import: - path: github.com/gofrs/uuid - x-oapi-codegen-extra-tags: - db: operation_id - x-go-name: OperationID - x-go-type-skip-optional-pointer: true - mesheryFilterPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - filters: - type: array - items: - $ref: '#/components/schemas/mesheryFilter' - meshmodelModel: - properties: - id: - $ref: '#/components/schemas/id' - name: - $ref: '#/components/schemas/text' - version: - $ref: '#/components/schemas/text' - display_name: - $ref: '#/components/schemas/text' - status: - $ref: '#/components/schemas/text' - category_id: - $ref: '#/components/schemas/id' - metadata: - $ref: '#/components/schemas/map_object' - created_at: - $ref: '#/components/schemas/created_at' - updated_at: - $ref: '#/components/schemas/updated_at' - deleted_at: - $ref: '#/components/schemas/deleted_at' - meshmodelCategory: - properties: - id: - $ref: '#/components/schemas/id' - name: - $ref: '#/components/schemas/text' - metadata: - $ref: '#/components/schemas/map_object' - created_at: - $ref: '#/components/schemas/created_at' - updated_at: - $ref: '#/components/schemas/updated_at' - deleted_at: - $ref: '#/components/schemas/deleted_at' - meshmodelCategoriesPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - categories: - type: array - items: - $ref: '#/components/schemas/meshmodelCategory' - meshmodelModelsPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - models: - type: array - items: - $ref: '#/components/schemas/meshmodelModel' - mesheryPatternResource: - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/id' - name: - $ref: '#/components/schemas/text' - description: Name - namepace: - $ref: '#/components/schemas/text' - description: Namespace - type: - $ref: '#/components/schemas/text' - description: Type - oam_type: - $ref: '#/components/schemas/text' - description: OAM type - deleted: - type: boolean - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - mesheryPatternResourcePage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - resources: - type: array - items: - $ref: '#/components/schemas/mesheryPatternResource' - mesheryPatternPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - patterns: - type: array - items: - $ref: '#/components/schemas/mesheryPattern' - deletePatternModel: - properties: - id: - $ref: '#/components/schemas/id' - name: - description: Pattern name - $ref: '#/components/schemas/text' - emails: - type: array - items: - $ref: '#/components/schemas/email' - x-go-type-skip-optional-pointer: true - roleHolderRequest: - type: object - properties: - role_names: - $ref: '#/components/schemas/roleNames' - email: - $ref: '#/components/schemas/email' - required: - - role_names - - email - role: - type: object - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/user_id' - username: - $ref: '#/components/schemas/username' - email: - $ref: '#/components/schemas/email' - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - status: - $ref: '#/components/schemas/status' - role_names: - $ref: '#/components/schemas/roleNames' - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - last_login_time: - $ref: '#/components/schemas/time' - deleted_at: - $ref: '#/components/schemas/time' - prefs: - $ref: '#/components/schemas/email_preference' - required: - - id - - user_id - - username - - email - - first_name - - last_name - - status - - role_names - - created_at - - updated_at - - last_login_time - - deleted_at - roleNames: - type: array - items: - type: string - x-go-type-skip-optional-pointer: true - x-go-type-skip-optional-pointer: true - user_id: - type: string - description: user's email or username - x-go-type-skip-optional-pointer: true - username: - type: string - x-go-type-skip-optional-pointer: true - status: - type: string - x-go-type-skip-optional-pointer: true - email_preference: - type: object - properties: - welcome_email: - type: boolean - x-go-type-skip-optional-pointer: true - notify_role_change: - type: boolean - x-go-type-skip-optional-pointer: true - x-go-type-skip-optional-pointer: true - performanceProfile: - properties: - id: - $ref: '#/components/schemas/id' - name: - $ref: '#/components/schemas/text' - user_id: - $ref: '#/components/schemas/id' - schedule: - $ref: '#/components/schemas/id' - load_generators: - type: string - endpoints: - type: string - service_mesh: - type: string - concurrent_request: - type: integer - qps: - type: integer - duration: - type: string - last_run: - $ref: '#/components/schemas/time' - total_results: - type: integer - request_headers: - type: string - request_cookies: - type: string - request_body: - type: string - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - performanceProfilePage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - profiles: - type: array - items: - $ref: '#/components/schemas/performanceProfile' - performanceResult: - properties: - id: - $ref: '#/components/schemas/id' - name: - $ref: '#/components/schemas/text' - test_start_time: - $ref: '#/components/schemas/time' - mesh: - type: string - runner_results: - $ref: '#/components/schemas/map_object' - deleted: - type: boolean - server_metrics: - $ref: '#/components/schemas/map_object' - server_board_config: - $ref: '#/components/schemas/map_object' - performance_profile: - $ref: '#/components/schemas/id' - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - mesheryResultPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/performanceResult' - tokenPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object - properties: - tokens: - type: array - items: - $ref: '#/components/schemas/userToken' - userToken: - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/id' - provider: - $ref: '#/components/schemas/provider' - access_token: - $ref: '#/components/schemas/text' - refresh_token: - $ref: '#/components/schemas/text' - name: - $ref: '#/components/schemas/text' - purpose: - $ref: '#/components/schemas/text' - is_oauth: - type: boolean - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - userInvite: - type: object - properties: - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - email: - $ref: '#/components/schemas/email' - required: - - first_name - - last_name - - email - bulkDelete: - type: object - properties: - user_ids: - $ref: '#/components/schemas/id' - user_emails: - $ref: '#/components/schemas/emails' - required: - - user_ids - - user_emails - user: - type: object - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/user_id' - provider: - $ref: '#/components/schemas/provider' - email: - $ref: '#/components/schemas/email' - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - avatar_url: - $ref: '#/components/schemas/avatar_url' - status: - $ref: '#/components/schemas/status' - bio: - $ref: '#/components/schemas/bio' - preferences: - $ref: '#/components/schemas/map_object' - accepted_terms_at: - $ref: '#/components/schemas/accepted_terms_at' - first_login_time: - $ref: '#/components/schemas/time' - last_login_time: - $ref: '#/components/schemas/time' - required: - - id - - user_id - - provider - - email - - first_name - - last_name - - status - - created_at - - updated_at - - last_login_time - - deleted_at - recentUsers: - type: object - properties: - id: - $ref: '#/components/schemas/id' - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - avatar_url: - $ref: '#/components/schemas/avatar_url' - rolesPage: - allOf: - - $ref: '#/components/schemas/recordsPage' - - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/role' - key: - properties: - ID: - $ref: '#/components/schemas/id' - subcategory: - $ref: '#/components/schemas/text' - function: - $ref: '#/components/schemas/text' - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - deleted_at: - $ref: '#/components/schemas/nullTime' - category: - $ref: '#/components/schemas/text' - description: - $ref: '#/components/schemas/text' - owner: - $ref: '#/components/schemas/id' - userKeys: - properties: - keys: - type: array - items: - $ref: '#/components/schemas/key' - total_count: - type: integer - deleteOn: - type: string - enum: - - self - - bulk - usersPageForAdmin: - allOf: - - $ref: '#/components/schemas/recordsPage' - - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/usersWithRolesForAdmin' - usersWithRolesForAdmin: - type: object - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/user_id' - username: - $ref: '#/components/schemas/username' - email: - $ref: '#/components/schemas/email' - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - status: - $ref: '#/components/schemas/status' - role_names: - $ref: '#/components/schemas/roleNames' - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - last_login_time: - $ref: '#/components/schemas/time' - deleted_at: - $ref: '#/components/schemas/time' - prefs: - $ref: '#/components/schemas/email_preference' - avatar_url: - $ref: '#/components/schemas/avatar_url' - preferences: - $ref: '#/components/schemas/map_object' - required: - - id - - user_id - - username - - email - - first_name - - last_name - - status - - role_names - - created_at - - updated_at - - last_login_time - - deleted_at - teamMembers: - type: object - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/user_id' - username: - $ref: '#/components/schemas/username' - email: - $ref: '#/components/schemas/email' - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - status: - $ref: '#/components/schemas/status' - role_names: - $ref: '#/components/schemas/roleNames' - joined_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - last_login_time: - $ref: '#/components/schemas/time' - deleted_at: - $ref: '#/components/schemas/time' - prefs: - $ref: '#/components/schemas/email_preference' - avatar_url: - $ref: '#/components/schemas/avatar_url' - required: - - id - - user_id - - username - - email - - first_name - - last_name - - status - - role_names - - joined_at - - updated_at - - last_login_time - - deleted_at - teamMembersPage: - allOf: - - $ref: '#/components/schemas/recordsPage' - - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/teamMembers' - usersForNonAdmin: - type: object - properties: - id: - $ref: '#/components/schemas/id' - user_id: - $ref: '#/components/schemas/user_id' - username: - $ref: '#/components/schemas/username' - email: - $ref: '#/components/schemas/email' - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - prefs: - $ref: '#/components/schemas/email_preference' - avatar_url: - $ref: '#/components/schemas/avatar_url' - preferences: - $ref: '#/components/schemas/map_object' - required: - - id - - user_id - - username - - email - - first_name - - last_name - usersPageForNonAdmin: - allOf: - - $ref: '#/components/schemas/recordsPage' - - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/usersForNonAdmin' - recentActivityPage: - properties: - recent_activity: - type: array - items: - $ref: '#/components/schemas/event' - accountOverview: - properties: - k8s_count: - type: integer - app_count: - type: integer - pattern_count: - type: integer - badge: - type: object - properties: - id: - $ref: '#/components/schemas/id' - name: - $ref: '#/components/schemas/text' - description: - $ref: '#/components/schemas/text' - label: - $ref: '#/components/schemas/text' - svg_location: - $ref: '#/components/schemas/text' - created_at: - $ref: '#/components/schemas/time' - updated_at: - $ref: '#/components/schemas/time' - deleted_at: - $ref: '#/components/schemas/nullTime' - badges: - properties: - badges: - type: object - additionalProperties: - $ref: '#/components/schemas/badge' - total_count: - type: integer - nullTime: - description: SQL null Timestamp to handle null values of time. - x-go-type: sql.NullTime - type: string - x-go-type-skip-optional-pointer: true - avatar_url: - type: string - description: Link for profile picture - x-go-type-skip-optional-pointer: true - bio: - type: string - x-go-type-skip-optional-pointer: true - accepted_terms_at: - type: string - x-go-type-skip-optional-pointer: true - empty: - description: Body for empty request - type: object - properties: {} - x-go-type-skip-optional-pointer: true - requestBodies: - mesheryApplicationRequestBody: - required: true - content: - application/json: - schema: - type: object - properties: - url: - $ref: '#/components/schemas/text' - path: - $ref: '#/components/schemas/text' - save: - type: boolean - application_data: - $ref: '#/components/schemas/mesheryApplication' - source_type: - $ref: '#/components/schemas/text' - mesheryCatalogRequest: - description: Body for publishing catalog - required: true - content: - application/json: - schema: - properties: - id: - $ref: '#/components/schemas/id' - catalog_type: - enum: - - pattern - - filter - description: Catalog type (pattern / filter) - catalog_data: - $ref: '#/components/schemas/catalog_data' - connectionPayload: - content: - application/json: - schema: - type: object - properties: - kind: - $ref: '#/components/schemas/text' - description: Kind - type: - $ref: '#/components/schemas/text' - description: Connection type - sub_type: - $ref: '#/components/schemas/text' - description: Connection subtype - credential_secret: - $ref: '#/components/schemas/map_object' - metadata: - $ref: '#/components/schemas/map_object' - credentialBody: - description: Body for user credential - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/credential' - mesheryFilterRequestBody: - required: true - content: - application/json: - schema: - type: object - properties: - url: - $ref: '#/components/schemas/text' - path: - $ref: '#/components/schemas/text' - save: - type: boolean - filter_data: - $ref: '#/components/schemas/mesheryFilter' - mesheryPatternResource: - description: Body for upserting meshery pattern resource - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/mesheryPatternResource' - mesheryPatternRequestBody: - description: Body for upserting meshery pattern - required: true - content: - application/json: - schema: - type: object - properties: - url: - $ref: '#/components/schemas/text' - path: - $ref: '#/components/schemas/text' - save: - type: boolean - pattern_data: - $ref: '#/components/schemas/mesheryPattern' - mesheryPatternDeleteRequestBody: - description: Body for deleting meshery pattern - required: true - content: - application/json: - schema: - type: object - properties: - patterns: - type: array - items: - $ref: '#/components/schemas/deletePatternModel' - designShare: - description: Body for sharing design - required: true - content: - application/json: - schema: - properties: - emails: - $ref: '#/components/schemas/emails' - id: - $ref: '#/components/schemas/id' - content_type: - type: string - share: - type: boolean - required: - - emails - - id - - content_type - - share - userInvite: - description: Body for user invite request - required: true - content: - application/json: - schema: - properties: - first_name: - $ref: '#/components/schemas/text' - description: First Name - last_name: - $ref: '#/components/schemas/text' - description: Last Name - email: - $ref: '#/components/schemas/email' - required: - - first_name - - last_name - - email - deleteUsers: - description: Body for delete of user accounts - required: true - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/bulkDelete' - - $ref: '#/components/schemas/empty' - user: - description: Body for upserting user - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/user' - parameters: - page: - name: page - in: query - description: Get reponses by page - schema: - type: string - page_size: - name: page_size - in: query - description: Get reponses by pageSize - schema: - type: string - search: - name: search - in: query - description: Get responses that match search param value - schema: - type: string - order: - name: order - in: query - description: Get ordered responses - schema: - type: string - id: - name: id - in: path - description: Unique identifier - schema: - type: string - required: true - os: - name: os - in: query - description: user's os - schema: - type: string - playground: - name: playground - in: query - description: Is playground mode - schema: - type: string - mesheryVersion: - name: meshery-version - in: path - description: meshery version - schema: - type: string - required: true - catalogContentType: - in: path - required: true - name: type - description: Catalog content type - schema: - type: string - enum: - - pattern - - filter - requestFilter: - name: filter - in: query - description: Filter for catalog requests - schema: - properties: - id: - $ref: '#/components/schemas/id' - status: - type: array - items: - type: string - connectionKind: - name: connectionKind - in: path - description: 'Connection kind (eg: Meshery)' - required: true - schema: - $ref: '#/components/schemas/text' - connectionId: - name: connectionId - in: path - description: Connection ID - schema: - $ref: '#/components/schemas/id' - required: true - serverId: - name: mesheryServerID - in: path - description: Meshery server ID - schema: - $ref: '#/components/schemas/id' - required: true - credentialId: - name: credential_id - in: query - description: credential Id - schema: - type: string - required: true - cumulative: - name: cumulative - in: query - description: Cumulative events - schema: - type: string - eventsFilter: - name: filter - in: query - description: Filter for retrieving events - schema: - type: object - properties: - provider: - type: array - items: - type: string - event_type: - type: array - items: - type: string - status: - name: status - in: query - description: Get models based on status, e.g 'ignored', 'registered' - schema: - type: string - namespace: - name: namespace - in: query - description: Namespace - schema: - type: string - type: - name: type - in: query - description: Type - schema: - type: string - oamType: - name: oamType - in: query - description: OAM type - schema: - type: string - name: - name: name - in: query - description: Name of the resource - schema: - type: string - resultId: - name: result_id - in: path - description: Result id - schema: - $ref: '#/components/schemas/id' - required: true - resultID: - name: resultID - in: path - description: Performance Result Id - schema: - type: string - required: true - isOAuth: - name: isOAuth - in: query - description: To get OAuth tokens as well - schema: - type: string - purpose: - name: purpose - in: query - description: Purpose for which token is generated - schema: - type: string - userId: - name: user_id - in: path - description: User's user_id - schema: - type: string - required: true - provider: - name: provider - in: query - description: Remote provider - schema: - type: string - required: true - deleteOn: - in: path - required: true - name: delete_on - description: Defines on whom the delete operation is to be performed - schema: - $ref: '#/components/schemas/deleteOn' - filter: - name: filter - in: query - description: Get filtered reponses - schema: - type: string - responses: - '200': - description: ok - content: - text/plain: - schema: - type: string - '201': - description: created - content: - text/plain: - schema: - type: string - '400': - description: Invalid request body or request param - content: - text/plain: - schema: - type: string - '401': - description: Expired JWT token used or insufficient privilege - content: - text/plain: - schema: - type: string - '404': - description: Result not found - content: - text/plain: - schema: - type: string - '409': - description: Publish request already exists - content: - text/plain: - schema: - type: string - '500': - description: Internal server error - content: - text/plain: - schema: - type: string -x-tagGroups: - - name: Meshery Cloud - tags: - - applications - - capabilities - - catalog - - collaboration - - integrations - - credentials - - events - - filters - - meshery_models - - patterns - - roles - - smp_profile - - service mesh performance - - tokens - - user tokens - - users