diff --git a/AUTHENTICATION-CONFIGURATION.md b/AUTHENTICATION-CONFIGURATION.md new file mode 100644 index 0000000..55baf1e --- /dev/null +++ b/AUTHENTICATION-CONFIGURATION.md @@ -0,0 +1,208 @@ +AUTHENTICATION-CONFIGURATION.md +# Auth0 and KrakenD Configuration Guide + +## Prerequisites +Complete these configurations **before** running `./01cloud install`. + +## 1. Auth0 Setup + +### 1.1 Create Auth0 Account +1. Go to [auth0.com](https://auth0.com) and create an account +2. Create a new tenant + +### 1.2 Create Single Page Application +1. Navigate to **Applications** → **Create Application** +2. Select **Single Page Web Applications** +3. Configure URLs: + - **Allowed Callback URLs**: `http://localhost:3000/callback`, `https://your-domain.com/callback` + - **Allowed Logout URLs**: `http://localhost:3000`, `https://your-domain.com` + - **Allowed Web Origins**: `http://localhost:3000`, `https://your-domain.com` + +### 1.3 Create Admin User +Create a user with these credentials (required for database seeder): +- **Email**: `admin@admin` +- **Password**: `01cloud@2020` +- **Connection**: `Username-Password-Authentication` + +### 1.4 Create Post-Login Action +1. Navigate to **Actions** → **Triggers** +2. Select **Post Login** → **Create Custom Action** +3. Name the action (e.g., "Set Custom Claims") +4. Copy and paste the following code: + +```javascript +exports.onExecutePostLogin = async (event, api) => { + const namespace = 'https://myapp.com/'; // Must be a valid URI + + // Helper function to safely get string values + const getString = (value) => { + if (typeof value === 'string' && value.trim()) { + return value.trim(); + } + return null; + }; + + // Get name components with better fallback logic + let firstName = getString(event.user.given_name); + let lastName = getString(event.user.family_name); + + // Apply fallback only if both are missing + if (!firstName && !lastName) { + const fullName = getString(event.user.name); + const nickname = getString(event.user.nickname); + const emailUsername = event.user.email ? event.user.email.split('@')[0].trim() : null; + + if (fullName) { + const parts = fullName.split(/\s+/); + firstName = parts[0] || null; + lastName = parts.length > 1 ? parts.slice(1).join(' ') : null; + } else if (nickname) { + firstName = nickname; + lastName = null; + } else if (emailUsername) { + firstName = emailUsername; + lastName = null; + } + } + + // Ensure we have strings (not null) for names to avoid issues + firstName = firstName || '-'; + lastName = lastName || '-'; + + // Build profile object with proper null handling + const profile = { + email: getString(event.user.email), + email_verified: Boolean(event.user.email_verified), + first_name: firstName, + last_name: lastName, + image: getString(event.user.picture), + name: getString(event.user.name), + created_at: event.user.created_at || null, + updated_at: event.user.updated_at || null, + company: null, + designation: null, + active: true, + is_admin: false, + address_updated: false, + quotas: null, + used_demo: false, + reference: null + }; + + try { + // Set each profile key as an individual custom claim + Object.entries(profile).forEach(([key, value]) => { + api.accessToken.setCustomClaim(`${namespace}${key}`, value); + }); + + // Set roles if available + const roles = event.authorization?.roles || []; + api.accessToken.setCustomClaim(`${namespace}roles`, roles); + + } catch (error) { + console.error('Error setting custom claims:', error); + // You might want to handle this error based on your requirements + // For now, we'll let the login continue even if claims fail + } +}; +``` + +5. Click **Deploy** to save the action + +### 1.5 Save Auth0 Configuration Values +Save these values for later use: + +| Parameter | Location | Example | +|-----------|----------|---------| +| **Domain** | Application → Settings → Domain | `dev-xxx.us.auth0.comcom` | +| **Client ID** | Application → Settings | `eyxxxxxME` | +| **Audience** | Applications → API → API Identifier | `https://dev-xxx.us.auth0.com/api/v2/` | + +## 2. KrakenD Configuration + +### 2.1 Prepare Gateway Templates +1. Navigate to the gateway directory: + ```bash + cd gateway + ``` +2. Extract the template files: + ```bash + tar -xzf krakend-templates.tgz + ``` + +### 2.2 Update Auth0 Template Files +Update the following template files with your Auth0 values: + +**File:** `gateway/config/dev/partials/auth0_audience.tmpl` +```json +"https://{{ domain-name }}.us.auth0.com/api/v2/" +``` + +**File:** `gateway/config/dev/partials/auth0_jwk_url.tmpl` +```json +"https://{{ domain-name }}/.well-known/jwks.json" +``` +Replace `{{ domain-name }}` with your Auth0 tenant domain + +**File:** `gateway/config/dev/partials/auth0_validator.tmpl` +```json +{ + "audience": "https://{{ domain-name }}.us.auth0.com/api/v2/", + "jwk_url": "https://{{ domain-name }}/.well-known/jwks.json", +} +``` +Update both `audience` and `jwk_url` with your actual values. + +### 2.3 Generate KrakenD Configuration +From the project root directory (`01cloud-platform/`), run: + +```bash +docker run \ + --rm -it \ + --user "$(id -u):$(id -g)" \ + -p "8080:8080" \ + -v "$PWD:/etc/krakend" \ + -e FC_ENABLE=1 \ + -e FC_SETTINGS=gateway/config/dev/settings/prod \ + -e FC_PARTIALS=gateway/config/dev/partials \ + -e FC_TEMPLATES=gateway/config/common/templates \ + -e FC_OUT=/etc/krakend/gateway/krakend/files/krakend.json \ + -e SERVICE_NAME="KrakenD API Gateway" \ + krakend:2.10.0 check -tdc "krakend.tmpl" +``` + +**Note:** This command will automatically update the `krakend.json` file in the KrakenD Helm chart. + +## 3. Update UI Configuration + +### 3.1 Console UI ConfigMap +Update the following environment variables: + +```yaml +REACT_APP_AUTH0_DOMAIN: "your-tenant.auth0.com" +REACT_APP_AUTH0_CLIENT_ID: "your_client_id" +REACT_APP_AUTH0_AUDIENCE: "https://your-tenant.auth0.com/api/v2/" +``` + +### 3.2 Admin UI ConfigMap +Update the following environment variables: + +```yaml +REACT_APP_AUTH0_DOMAIN: "your-tenant.auth0.com" +REACT_APP_AUTH0_CLIENT_ID: "your_client_id" +REACT_APP_AUTH0_AUDIENCE: "https://your-tenant.auth0.com/api/v2/" +``` + +## 4. Installation + +After completing all configurations, run the installation script: + +```bash +./01cloud install +``` + +## Troubleshooting + +- **Missing templates**: Ensure you've extracted `krakend-templates.tgz` in the gateway directory +- **Invalid JSON**: Verify your Auth0 values are correctly formatted in the template files +- **Authentication failures**: Double-check that all URLs and domains match exactly between Auth0 and your configuration diff --git a/README.md b/README.md index 44e7eed..2154528 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ A local, reproducible Kubernetes development environment for the 01Cloud platfor - [Stopping and cleanup](#stopping-and-cleanup) - [Configuration](#configuration) - [Helm values](#helm-values) - - [Ingress and hostnames](#ingress-and-hostnames) + - [Httproutes and hostnames](#httproute-and-hostnames) - [Images and building locally](#images-and-building-locally) - [Alerting and Monitoring](#alerting-and-monitoring) - [Contributing](#contributing) @@ -47,11 +47,11 @@ A local, reproducible Kubernetes development environment for the 01Cloud platfor ## Overview -01Cloud Development Environment is a batteries-included local stack to run the full 01Cloud platform on Kubernetes. It automates cluster setup, installs core controllers (Ingress, Tekton, MetalLB), provisions databases and messaging, deploys all 01Cloud services via a Helm chart, and optionally seeds the system with sample configuration and data for an instant test drive. +01Cloud Development Environment is a batteries-included local stack to run the full 01Cloud platform on Kubernetes. It automates cluster setup, installs core controllers (Gateway API, Tekton, MetalLB), provisions databases and messaging, deploys all 01Cloud services via a Helm chart, and optionally seeds the system with sample configuration and data for an instant test drive. What it does: - Creates or prepares a local Kubernetes cluster (Kind) -- Installs ingress and load balancer controllers +- Installs Gateway API and load balancer controllers - Deploys databases and queues (PostgreSQL, MongoDB, RabbitMQ) - Deploys all 01Cloud microservices via Helm and Skaffold - Sets up local hostnames and TLS for easy browsing @@ -77,26 +77,28 @@ Why it was created: ## Features - One-command bootstrap of the full stack via a friendly CLI -- Local Kubernetes with Kind and MetalLB, plus NGINX Ingress +- Local Kubernetes with Kind and MetalLB, plus Gateway API Controller - Tekton installation for CI/CD workflows inside the cluster - Helm chart to deploy 01Cloud microservices with configurable values - Skaffold integration for dev/run/build workflows -- Predefined services and ingresses for UI, Admin, API, Terminal, etc. +- Predefined services and httproute for UI, Admin, API, Terminal, etc. - Data layer ready out-of-the-box: PostgreSQL, MongoDB, RabbitMQ - Seeder utility to populate default configuration and sample data - Hostname automation to route staging.* domains to your local cluster - Clean teardown of services and data +- Integrated Auth0 authentication with KrakenD API Gateway --- ## Architecture and Components Core components deployed by this environment: -- Controllers: NGINX Ingress Controller, MetalLB, Tekton +- Controllers: Gateway API Controller, MetalLB, Tekton - Data services: PostgreSQL, MongoDB, RabbitMQ - 01Cloud services: UI, Admin, API, Core, Notifications, Payments, Support, Monitoring, Backup, Helm CD, Terminal +- Authentication: Auth0 + KrakenD API Gateway for JWT validation - Observability hooks: optional logging and monitoring configuration -- TLS integration and ingress with hostnames like console.staging.01cloud.dev +- TLS integration and httproute with hostnames like console.staging.01cloud.dev All services are orchestrated via: - Helm chart at charts/ @@ -116,6 +118,9 @@ All services are orchestrated via: - Helm 3.x - Skaffold 2.x - git, curl, jq + - Configure Auth0 and KrankenD, see [Authentication Configuration Guide](AUTHENTICATION-CONFIGURATION.md) for detailed steps + + Install snippets (Linux/Ubuntu): @@ -133,6 +138,7 @@ Verify: kubectl cluster-info kubectl get nodes ``` + ### 2)Template preparation: Fill the values [`Values.yaml`](charts/template/values.yaml) and [`ConfigMap.yaml`](charts/template/configmap.yaml) inside the charts/template folder. These Template are necessary during provision for one to get features like 0Auth, mail service etc. @@ -154,7 +160,7 @@ chmod +x ./01cloud Option B: Step-by-step ```bash -# Install MetalLB, Tekton, and NGINX Ingress Controller +# Install MetalLB, Tekton, and Gateway API Controller ./01cloud setup # Add hostnames (requires sudo) @@ -175,7 +181,7 @@ Option B: Step-by-step ```bash kubectl get pods -n 01cloud-staging -kubectl get ing -A +kubectl get httproutes -A ``` Then open in your browser: - https://console.staging.01cloud.dev @@ -197,7 +203,7 @@ Common commands: ```bash ./01cloud install [env [mode]] # setup + host + dbrun + run (+ seed in install.sh) -./01cloud setup [env [mode]] # install required controllers (Tekton, Ingress, MetalLB) +./01cloud setup [env [mode]] # install required controllers (Tekton, Gateway API, MetalLB) ./01cloud host [add|remove] # map local LB IP to staging.* hostnames in /etc/hosts ./01cloud dbrun [rwo|rwx] # install PostgreSQL, MongoDB, RabbitMQ with PVCs ./01cloud dbseed # seed sample data and defaults @@ -242,7 +248,7 @@ Tip: Review seeder/seeder.sh to understand exactly what is being created and adj # Remove app + DB resources ./01cloud dbstop -# Remove all setup (ingress, controllers) and resources +# Remove all setup (Gateway API, controllers) and resources ./01cloud clean # Optionally delete the Kind cluster when finished @@ -291,7 +297,7 @@ This project is licensed under the MIT License. See the LICENSE file for details ## Credits - 01Cloud team at [BerryBytes](https://01cloud.io/) -- Open-source projects that make this possible: Kubernetes, Kind, Helm, Skaffold, Tekton, MetalLB, NGINX Ingress Controller, PostgreSQL, MongoDB, RabbitMQ, Loki, and others. +- Open-source projects that make this possible: Kubernetes, Kind, Helm, Skaffold, Tekton, MetalLB, Gateway API Controller, PostgreSQL, MongoDB, RabbitMQ, Loki, and others. If your organization uses this environment or contributes improvements, consider adding yourself to CONTRIBUTORS.md in a future PR. @@ -307,7 +313,7 @@ If your organization uses this environment or contributes improvements, consider ## Troubleshooting -- No external IP for ingress: +- No external IP for gatewway: - Ensure MetalLB installed and ready: kubectl get pods -n metallb-system - Re-run: ./01cloud setup - Hostnames not resolving: diff --git a/alerting/README.md b/alerting/README.md index 4b07e97..bebef86 100644 --- a/alerting/README.md +++ b/alerting/README.md @@ -1,4 +1,4 @@ -For implementing alert manager in the skaffold environemnt, follow the steps below: +For implementing alert manager in the skaffold environment, follow the steps below: ## Step 1: Add Prometheus repo in a separate namespace for monitoring diff --git a/charts/templates/configmap.yaml b/charts/templates/configmap.yaml index e7e0ef5..ce92c94 100644 --- a/charts/templates/configmap.yaml +++ b/charts/templates/configmap.yaml @@ -5,8 +5,8 @@ items: config.js: | window.config = { REACT_APP_01CLOUD_DOCS: "https://docs.01cloud.io", - REACT_APP_RESTAPI_ENDPOINT: "https://api.staging.01cloud.dev", - REACT_APP_SOCKET_IO_ENDPOINT: "wss://api.staging.01cloud.dev/ws", + REACT_APP_RESTAPI_ENDPOINT: "https://api-gateway.staging.01cloud.dev", + REACT_APP_SOCKET_IO_ENDPOINT: "wss://ws-gateway.staging.01cloud.dev/ws", REACT_APP_RECAPTCHA_SITEKEY: "--- YOUR-RECAPTCHA-SITEKEY ---", REACT_APP_MESSAGE_ORIGIN_URL: "https://console.staging.01cloud.dev", REACT_APP_GITHUB_AUTHORIZE_ENDPOINT: "https://github.com/login/oauth/authorize", @@ -20,10 +20,10 @@ items: REACT_APP_CLUSTER_MANAGER_OAUTH: " ", REACT_APP_CLUSTER_OAUTH_REDIRECT_URL: "https://console.staging.01cloud.dev/loginsso/clustermanager", REACT_APP_01CLOUD_APPID: "01cloud", - REACT_APP_AUTH0_MODE: "legacy", - REACT_APP_AUTH0_DOMAIN: "--- YOUR-AUTH0-DOMAIN ---", - REACT_APP_AUTH0_CLIENT_ID: "--- YOUR-AUTH0-CLIENT-ID ---", - REACT_APP_AUTH0_AUDIENCE: "--- YOUR-AUTH0-AUDIENCE ---" + REACT_APP_AUTH0_MODE: "", + REACT_APP_AUTH0_DOMAIN: "dev-xxxxx.us.auth0.com", + REACT_APP_AUTH0_CLIENT_ID: "xxxxxxx", + REACT_APP_AUTH0_AUDIENCE: "https://dev-xxxxx.us.auth0.com/api/v2/", } kind: ConfigMap metadata: @@ -32,8 +32,13 @@ items: data: config.js: | window.config = { - REACT_APP_RESTAPI_ENDPOINT: "https://api.staging.01cloud.dev", - REACT_APP_SOCKET_IO_ENDPOINT: "wss://api.staging.01cloud.dev/ws" + REACT_APP_RESTAPI_ENDPOINT: "https://api-gateway.staging.01cloud.dev", + REACT_APP_SOCKET_IO_ENDPOINT: "wss://ws-gateway.staging.01cloud.dev/ws", + REACT_APP_01CLOUD_CONSOLE_URL: "https://console.staging.01cloud.dev", + REACT_APP_AUTH0_MODE: "", + REACT_APP_AUTH0_DOMAIN: "dev-xxxxx.us.auth0.com", + REACT_APP_AUTH0_CLIENT_ID: "xxxxxxx", + REACT_APP_AUTH0_AUDIENCE: "https://dev-xxxxx.us.auth0.com/api/v2/", } kind: ConfigMap metadata: diff --git a/charts/templates/deployment_backup.yaml b/charts/templates/deployment_backup.yaml index 5527518..5494023 100644 --- a/charts/templates/deployment_backup.yaml +++ b/charts/templates/deployment_backup.yaml @@ -86,8 +86,6 @@ spec: - mountPath: /data name: 01cloud-data dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always schedulerName: default-scheduler volumes: diff --git a/charts/templates/deployment_enduser.yaml b/charts/templates/deployment_enduser.yaml index 818ef6f..d0dab11 100644 --- a/charts/templates/deployment_enduser.yaml +++ b/charts/templates/deployment_enduser.yaml @@ -42,8 +42,6 @@ spec: name: config subPath: config.js dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - configMap: @@ -69,6 +67,8 @@ spec: spec: containers: - env: + - name: ALLOWED_ORIGINS + value: "{{.Values.env.ALLOWED_ORIGINS}}" - name: STORE_TYPE value: {{.Values.env.STORE_TYPE}} - name: MESSAGE_TYPE @@ -129,11 +129,6 @@ spec: value: {{.Values.env.adminEmail}} - name: DOCKER_PLUGIN_ID value: {{.Values.env.dockerPluginId | quote}} - - name: MODE - valueFrom: - secretKeyRef: - name: env-secrets - key: MODE - name: HELM_PLUGIN_ID value: {{.Values.env.dockerPluginId | quote}} - name: OPERATOR_PLUGIN_ID @@ -186,8 +181,6 @@ spec: - mountPath: /data name: 01cloud-data dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - name: 01cloud-data @@ -239,8 +232,6 @@ spec: name: config subPath: config.js dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - configMap: diff --git a/charts/templates/deployment_exsecret.yaml b/charts/templates/deployment_exsecret.yaml index aced63b..fde6e5a 100644 --- a/charts/templates/deployment_exsecret.yaml +++ b/charts/templates/deployment_exsecret.yaml @@ -54,8 +54,6 @@ spec: volumeMounts: - mountPath: /data name: 01cloud-data - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - name: 01cloud-data diff --git a/charts/templates/deployment_helper.yaml b/charts/templates/deployment_helper.yaml index ab83cc9..860c12a 100644 --- a/charts/templates/deployment_helper.yaml +++ b/charts/templates/deployment_helper.yaml @@ -77,8 +77,6 @@ spec: persistentVolumeClaim: claimName: pvc-01cloud-data dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always schedulerName: default-scheduler --- @@ -197,8 +195,6 @@ spec: port: 01cloud-http timeoutSeconds: 1 dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always schedulerName: default-scheduler terminationGracePeriodSeconds: 30 @@ -269,8 +265,6 @@ spec: - mountPath: /data name: 01cloud-data dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always schedulerName: default-scheduler volumes: @@ -381,8 +375,6 @@ spec: volumeMounts: - mountPath: /data name: 01cloud-data - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - name: 01cloud-data @@ -447,8 +439,6 @@ spec: port: 01cloud timeoutSeconds: 1 dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always --- @@ -499,8 +489,6 @@ spec: terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst - imagePullSecrets: - - name: ovh-registry restartPolicy: Always schedulerName: default-scheduler --- @@ -538,8 +526,6 @@ spec: volumeMounts: - mountPath: /data name: 01cloud-data - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - name: 01cloud-data diff --git a/charts/templates/deployment_jobs.yaml b/charts/templates/deployment_jobs.yaml index 735bed0..dd20e73 100644 --- a/charts/templates/deployment_jobs.yaml +++ b/charts/templates/deployment_jobs.yaml @@ -69,8 +69,6 @@ spec: volumeMounts: - mountPath: /data name: 01cloud-data - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - name: 01cloud-data @@ -135,8 +133,6 @@ spec: volumeMounts: - mountPath: /data name: 01cloud-data - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - name: 01cloud-data @@ -209,8 +205,6 @@ spec: volumeMounts: - mountPath: /data name: 01cloud-data - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - name: 01cloud-data diff --git a/charts/templates/deployment_logging.yaml b/charts/templates/deployment_logging.yaml index bdfa057..2f10765 100644 --- a/charts/templates/deployment_logging.yaml +++ b/charts/templates/deployment_logging.yaml @@ -54,8 +54,6 @@ spec: volumeMounts: - mountPath: /data name: 01cloud-data - imagePullSecrets: - - name: ovh-registry restartPolicy: Always volumes: - name: 01cloud-data diff --git a/charts/templates/httproute.yaml b/charts/templates/httproute.yaml new file mode 100644 index 0000000..1825844 --- /dev/null +++ b/charts/templates/httproute.yaml @@ -0,0 +1,129 @@ +apiVersion: v1 +kind: List +items: +- apiVersion: gateway.networking.k8s.io/v1 + kind: HTTPRoute + metadata: + annotations: + gateway.networking.k8s.io/generator: ingress2gateway-v0.5.0-rc1-1-ge79e5af + name: 01cloud-api-test-01cloud-dev + namespace: 01cloud-staging + spec: + hostnames: + - api.staging.01cloud.dev + parentRefs: + - name: staging-gateway + namespace: envoy-gateway-system + rules: + - backendRefs: + - name: cloud-api + port: 8081 + matches: + - path: + type: PathPrefix + value: / +- apiVersion: gateway.networking.k8s.io/v1 + kind: HTTPRoute + metadata: + annotations: + gateway.networking.k8s.io/generator: ingress2gateway-v0.5.0-rc1-1-ge79e5af + name: 01cloud-terminal-test-01cloud-dev + namespace: 01cloud-staging + spec: + hostnames: + - terminal.staging.01cloud.dev + parentRefs: + - name: staging-gateway + namespace: envoy-gateway-system + rules: + - backendRefs: + - name: cloud-terminal + port: 8080 + matches: + - path: + type: PathPrefix + value: / +- apiVersion: gateway.networking.k8s.io/v1 + kind: HTTPRoute + metadata: + annotations: + gateway.networking.k8s.io/generator: ingress2gateway-v0.5.0-rc1-1-ge79e5af + name: tyk-gateway-ingress-ws-gateway-test-01cloud-dev + namespace: 01cloud-staging + spec: + hostnames: + - ws-gateway.staging.01cloud.dev + parentRefs: + - name: staging-gateway + namespace: envoy-gateway-system + rules: + - backendRefs: + - name: tyk-gateway + port: 8080 + matches: + - path: + type: PathPrefix + value: / +- apiVersion: gateway.networking.k8s.io/v1 + kind: HTTPRoute + metadata: + annotations: + gateway.networking.k8s.io/generator: ingress2gateway-v0.5.0-rc1-1-ge79e5af + name: 01cloud-admin-test-01cloud-dev + namespace: 01cloud-staging + spec: + hostnames: + - admin.staging.01cloud.dev + parentRefs: + - name: staging-gateway + namespace: envoy-gateway-system + rules: + - backendRefs: + - name: cloud-admin + port: 80 + matches: + - path: + type: PathPrefix + value: / +- apiVersion: gateway.networking.k8s.io/v1 + kind: HTTPRoute + metadata: + annotations: + gateway.networking.k8s.io/generator: ingress2gateway-v0.5.0-rc1-1-ge79e5af + name: krakend-ingress-api-gateway-test-01cloud-dev + namespace: krakend + spec: + hostnames: + - api-gateway.staging.01cloud.dev + parentRefs: + - name: staging-gateway + namespace: envoy-gateway-system + rules: + - backendRefs: + - name: krakend + port: 8080 + matches: + - path: + type: PathPrefix + value: / +- apiVersion: gateway.networking.k8s.io/v1 + kind: HTTPRoute + metadata: + annotations: + gateway.networking.k8s.io/generator: ingress2gateway-v0.5.0-rc1-1-ge79e5af + name: 01cloud-ui-console-test-01cloud-dev + namespace: 01cloud-staging + spec: + hostnames: + - console.staging.01cloud.dev + parentRefs: + - name: staging-gateway + namespace: envoy-gateway-system + rules: + - backendRefs: + - name: cloud-ui + port: 80 + matches: + - path: + type: PathPrefix + value: / diff --git a/charts/templates/ingress.yaml b/charts/templates/ingress.yaml deleted file mode 100644 index 65029c1..0000000 --- a/charts/templates/ingress.yaml +++ /dev/null @@ -1,94 +0,0 @@ -apiVersion: v1 -items: -- apiVersion: networking.k8s.io/v1 - kind: Ingress - metadata: - annotations: - kubernetes.io/ingress.class: nginx - name: 01cloud-admin - spec: - rules: - - host: {{.Values.env.hostAdmin}} - http: - paths: - - backend: - service: - name: cloud-admin - port: - number: 80 - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - {{.Values.env.hostAdmin}} - secretName: zerone-tls-cert -- apiVersion: networking.k8s.io/v1 - kind: Ingress - metadata: - annotations: - kubernetes.io/ingress.class: nginx - nginx.org/websocket-services: cloud-api - name: 01cloud-api - spec: - rules: - - host: {{.Values.env.hostApi}} - http: - paths: - - backend: - service: - name: cloud-api - port: - number: 8081 - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - {{.Values.env.hostApi}} - secretName: zerone-tls-cert -- apiVersion: networking.k8s.io/v1 - kind: Ingress - metadata: - annotations: - kubernetes.io/ingress.class: nginx - name: 01cloud-ui - spec: - rules: - - host: {{.Values.env.hostUI}} - http: - paths: - - backend: - service: - name: cloud-ui - port: - number: 80 - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - {{.Values.env.hostUI}} - secretName: zerone-tls-cert -- apiVersion: networking.k8s.io/v1 - kind: Ingress - metadata: - annotations: - ingressClassName: nginx - name: 01cloud-terminal - spec: - rules: - - host: {{.Values.env.hostTerminal}} - http: - paths: - - backend: - service: - name: cloud-terminal - port: - number: 8080 - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - {{.Values.env.hostTerminal}} - secretName: zerone-tls-cert -kind: List -metadata: - resourceVersion: "" diff --git a/charts/templates/secret.yaml b/charts/templates/secret.yaml index 2114b0e..460f165 100644 --- a/charts/templates/secret.yaml +++ b/charts/templates/secret.yaml @@ -2,26 +2,40 @@ apiVersion: v1 items: - apiVersion: v1 data: - API_SECRET: {{ .Values.secret.API_SECRET }} - DB_PASSWORD: {{ .Values.secret.DB_PASSWORD }} - DB_URL: {{ .Values.secret.DB_URL }} - MONGO_URL: {{ .Values.secret.MONGO_URL }} - RABBITMQ_URL: {{ .Values.secret.RABBITMQ_URL }} - RABBITMQ_PASSWORD: {{ .Values.secret.RABBITMQ_PASSWORD }} - SMTP_PASSWORD: {{ .Values.secret.SMTP_PASSWORD }} - MODE: {{ .Values.secret.MODE }} + API_SECRET: {{ .Values.secret.API_SECRET | quote }} + DB_PASSWORD: {{ .Values.secret.DB_PASSWORD | quote }} + DB_URL: {{ .Values.secret.DB_URL | quote }} + MONGO_URL: {{ .Values.secret.MONGO_URL | quote }} + RABBITMQ_URL: {{ .Values.secret.RABBITMQ_URL | quote }} + RABBITMQ_PASSWORD: {{ .Values.secret.RABBITMQ_PASSWORD | quote }} + SMTP_PASSWORD: {{ .Values.secret.SMTP_PASSWORD | quote }} + MODE: {{ .Values.secret.MODE | quote }} kind: Secret metadata: name: env-secrets type: Opaque - apiVersion: v1 data: - tls.crt: {{ .Values.secret.TLS_CRT }} - tls.key: {{ .Values.secret.TLS_KEY }} + tls.crt: {{ .Values.secret.TLS_CRT | quote }} + tls.key: {{ .Values.secret.TLS_KEY | quote }} kind: Secret metadata: name: zerone-tls-cert type: kubernetes.io/tls +- apiVersion: gateway.networking.k8s.io/v1beta1 + kind: ReferenceGrant + metadata: + name: staging-cert-reference + namespace: 01cloud-staging + spec: + from: + - group: gateway.networking.k8s.io + kind: Gateway + namespace: envoy-gateway-system + to: + - group: "" + kind: Secret + name: zerone-tls-cert kind: List metadata: resourceVersion: "" diff --git a/charts/templates/tyk-gateway.yaml b/charts/templates/tyk-gateway.yaml new file mode 100644 index 0000000..5af6477 --- /dev/null +++ b/charts/templates/tyk-gateway.yaml @@ -0,0 +1,226 @@ +apiVersion: v1 +items: +- apiVersion: v1 + kind: ConfigMap + metadata: + name: tyk-conf + namespace: 01cloud-staging + data: + tyk.conf: | + { + "log_level": "info" , + "listen_port": 8080, + "secret": "352d20ee67be67f6340b4c0605b044b7", + "template_path": "/opt/tyk-gateway/templates", + "tyk_js_path": "/opt/tyk-gateway/js/tyk.js", + "middleware_path": "/opt/tyk-gateway/middleware", + "use_db_app_configs": false, + "app_path": "/opt/tyk-gateway/apps/", + "storage": { + "type": "redis", + "host": "tyk-redis", + "port": 6379, + "username": "", + "password": "", + "database": 0, + "optimisation_max_idle": 2000, + "optimisation_max_active": 4000, + "enable_cluster": false + }, + "enable_analytics": false, + "analytics_config": { + "type": "", + "ignored_ips": [] + }, + "health_check": { + "enable_health_checks": false, + "health_check_value_timeouts": 60 + }, + "enable_non_transactional_rate_limiter": true, + "enable_sentinel_rate_limiter": false, + "enable_redis_rolling_limiter": false, + "allow_master_keys": false, + "policies": { + "policy_source": "file", + "policy_path": "/opt/tyk-gateway/policies" + }, + "hash_keys": true, + "close_connections": false, + "http_server_options": { + "enable_websockets": true + }, + "allow_insecure_configs": true, + "security": { + "force_ssl": false, + "skip_ssl_verify": true + }, + "coprocess_options": { + "enable_coprocess": true, + "coprocess_grpc_server": "" + }, + "enable_bundle_downloader": true, + "bundle_base_url": "", + "global_session_lifetime": 100, + "force_global_session_lifetime": false, + "max_idle_connections_per_host": 500, + "enable_jsvm": true + } + test-ws-api.json: | + { + "name": "Test WebSocket API", + "slug": "test-ws-api", + "api_id": "2", + "org_id": "1", + "use_keyless": true, + "version_data": { + "not_versioned": true, + "versions": { + "Default": { + "name": "Default", + "use_extended_paths": true + } + } + }, + "proxy": { + "listen_path": "/ws", + "strip_listen_path": true, + "target_url": "wss://api.staging.01cloud.dev/ws", + "connection_type": "websocket", + "transport": { + "ssl_insecure_skip_verify": true + } + }, + "active": true + } +- apiVersion: apps/v1 + kind: Deployment + metadata: + name: tyk-gateway + namespace: 01cloud-staging + labels: + app: tyk-gateway + spec: + replicas: 1 + selector: + matchLabels: + app: tyk-gateway + template: + metadata: + labels: + app: tyk-gateway + spec: + containers: + - name: tyk-gateway + image: docker.tyk.io/tyk-gateway/tyk-gateway:latest + ports: + - containerPort: 8080 + volumeMounts: + - name: tyk-conf + mountPath: /opt/tyk-gateway/tyk.conf + subPath: tyk.conf + - name: tyk-conf + mountPath: /opt/tyk-gateway/apps/test-ws-api.json + subPath: test-ws-api.json + env: + - name: TYK_GW_STORAGE_HOST + value: "tyk-redis" + - name: TYK_GW_STORAGE_PORT + value: "6379" + resources: + requests: + memory: "512Mi" + cpu: "500m" + limits: + memory: "1Gi" + cpu: "1000m" + readinessProbe: + httpGet: + path: /hello + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + livenessProbe: + httpGet: + path: /hello + port: 8080 + initialDelaySeconds: 30 + periodSeconds: 10 + volumes: + - name: tyk-conf + configMap: + name: tyk-conf +- apiVersion: v1 + kind: Service + metadata: + name: tyk-gateway + namespace: 01cloud-staging + labels: + app: tyk-gateway + spec: + ports: + - port: 8080 + targetPort: 8080 + protocol: TCP + name: http + selector: + app: tyk-gateway + type: ClusterIP +- apiVersion: apps/v1 + kind: StatefulSet + metadata: + name: tyk-redis + namespace: 01cloud-staging + labels: + app: tyk-redis + spec: + replicas: 1 + serviceName: tyk-redis + selector: + matchLabels: + app: tyk-redis + template: + metadata: + labels: + app: tyk-redis + spec: + containers: + - name: redis + image: redis:4.0-alpine + ports: + - containerPort: 6379 + volumeMounts: + - name: redis-data + mountPath: /data + resources: + requests: + memory: "25Mi" + cpu: "25m" + limits: + memory: "51Mi" + cpu: "50m" + volumeClaimTemplates: + - metadata: + name: redis-data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi +- apiVersion: v1 + kind: Service + metadata: + name: tyk-redis + namespace: 01cloud-staging + labels: + app: tyk-redis + spec: + ports: + - port: 6379 + targetPort: 6379 + protocol: TCP + selector: + app: tyk-redis + type: ClusterIP +kind: List +metadata: + resourceVersion: "" diff --git a/charts/values.yaml b/charts/values.yaml index acf21df..7293cd1 100644 --- a/charts/values.yaml +++ b/charts/values.yaml @@ -4,9 +4,9 @@ image: - ui: 01community/01cloud:v0.0.1 - admin: 01community/01cloud-admin:v0.0.1 - api: 01community/01cloud-api:v0.0.1 + ui: 01community/01cloud-ui:v0.0.2 + admin: 01community/01cloud-admin:v0.0.2 + api: 01community/01cloud-api:v0.0.2 core: 01community/01cloud-core:v0.0.1 ci: 01community/01cloud-tekton-ci:v0.0.1 provision: 01community/01cloud-tekton-provision:v0.0.1 @@ -16,6 +16,7 @@ image: monitoring: 01community/01cloud-monitoring:v0.0.1 backup: 01community/01cloud-backup:v0.0.1 exsecret: 01community/01cloud-exsecret:v0.0.1 + logging: 01community/01cloud-exlogger:v0.0.1 secret: API_SECRET: --- YOUR-API-SECRET --- @@ -30,6 +31,7 @@ secret: TLS_KEY: --- YOUR-KEY --- MODE: bGVnYWN5 + env: API_SERVER_URL: https://api.staging.01cloud.dev UI_SERVER_URL: https://console.staging.01cloud.dev diff --git a/commitlint.config.cjs b/commitlint.config.cjs new file mode 100644 index 0000000..a0e89b0 --- /dev/null +++ b/commitlint.config.cjs @@ -0,0 +1,24 @@ +module.exports = { + extends: ['@commitlint/config-conventional'], + rules: { + 'type-enum': [2, 'always', [ + 'feat', // A new feature + 'fix', // A bug fix + 'docs', // Documentation only changes + 'style', // Changes that do not affect code meaning + 'refactor', // A code change that neither fixes a bug nor adds a feature + 'perf', // A code change that improves performance + 'test', // Adding missing tests or correcting existing tests + 'build', // Build system or external dependencies + 'ci', // CI configuration changes + 'chore', // Other changes that don't modify src or test files + 'revert', // Reverts a previous commit + ]], + 'type-case': [2, 'always', 'lowerCase'], + 'type-empty': [2, 'never'], + 'scope-case': [2, 'always', 'lowerCase'], + 'subject-empty': [2, 'never'], + 'subject-full-stop': [2, 'never', '.'], + 'header-max-length': [2, 'always', 72], + }, +}; diff --git a/gateway/gateway.yaml b/gateway/gateway.yaml new file mode 100644 index 0000000..7b19114 --- /dev/null +++ b/gateway/gateway.yaml @@ -0,0 +1,36 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: GatewayClass +metadata: + finalizers: + - gateway-exists-finalizer.gateway.networking.k8s.io + name: eg +spec: + controllerName: gateway.envoyproxy.io/gatewayclass-controller +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: Gateway +metadata: + name: staging-gateway + namespace: envoy-gateway-system +spec: + gatewayClassName: eg + listeners: + - name: http + port: 80 + protocol: HTTP + allowedRoutes: + namespaces: + from: All + - name: https + port: 443 + protocol: HTTPS + allowedRoutes: + namespaces: + from: All + tls: + certificateRefs: + - group: "" + kind: Secret + name: zerone-tls-cert + namespace: 01cloud-staging + mode: Terminate diff --git a/gateway/krakend-templates.tgz b/gateway/krakend-templates.tgz new file mode 100644 index 0000000..fd03944 Binary files /dev/null and b/gateway/krakend-templates.tgz differ diff --git a/gateway/krakend/.DS_Store b/gateway/krakend/.DS_Store new file mode 100644 index 0000000..0d819ea Binary files /dev/null and b/gateway/krakend/.DS_Store differ diff --git a/gateway/krakend/Chart.yaml b/gateway/krakend/Chart.yaml new file mode 100644 index 0000000..1b13b9c --- /dev/null +++ b/gateway/krakend/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +appVersion: 1.16.0 +description: A Helm chart for Kubernetes +name: krakend +type: application +version: 0.1.0 diff --git a/gateway/krakend/files/krakend.json b/gateway/krakend/files/krakend.json new file mode 100644 index 0000000..388671e --- /dev/null +++ b/gateway/krakend/files/krakend.json @@ -0,0 +1,21963 @@ +{ + "$schema": "https://www.krakend.io/schema/v3.json", + "version": 3, + "name": "test-api-gateway", + "timeout": "60s", + "extra_config": { + "github_com/devopsfaith/krakend-cors": { + "allow_origins": [ "http://localhost:3000","https://console.staging.01cloud.dev","https://console.test.01cloud.dev","https://admin.test.01cloud.dev","https://admin.staging.01cloud.dev"], + "allow_methods": [ "GET", + "HEAD", + "POST", + "OPTIONS", + "PUT", + "DELETE"], + "max_age": "12h", + "allow_headers": [ + "Accept-Language", + "Content-Type", + "X-Api-Version", + "X-Custom-Auth", + "Authorization", + "X-Email", + "X-Circuit-Break" , + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID" + ], + "expose_headers": [ + "Content-Length", + "Content-Type", + "Content-Disposition", + "Cache-Control" + ], + "allow_credentials": false + + } + , + "telemetry/metrics": { + "collection_time": "60s", + "proxy_disabled": false, + "router_disabled": false, + "backend_disabled": false, + "endpoint_disabled": false, + "listen_address": ":8090" + }, + "telemetry/opentelemetry": { + "service_name": "krakend_prometheus_service", + "metric_reporting_period": 1, + "exporters": { + "prometheus": [ + { + "name": "local_prometheus", + "port": 9091, + "process_metrics": true, + "go_metrics": true + } + ] + } + } + +, + "telemetry/logging": { + "level": "DEBUG", + "prefix": "[KRAKEND]", + "syslog": false, + "stdout": true, + "access_enable": "true", + "access_log_format": "json", + "format": "json" + } +, + "router": { + "return_error_msg": true + } + }, + "endpoints": [ + { + "endpoint": "/v1/echo/{path}", + "method": "GET", + "input_headers": ["Authorization"], + "output_encoding": "json-collection", + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "is_collection": false, + "encoding": "json", + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "url_pattern": "/api/{path}", + "extra_config": { + "qos/ratelimit/router": { + "max_rate": 10, + "every": "5m", + "client_max_rate": 5, + "strategy": "ip", + "capacity": 10, + "client_capacity": 5 + } + } + } + ] + } + , + { + "endpoint": "/login", + "method": "POST", + "input_headers":["*"], + "extra_config": { +"auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"], + ["https://myapp.com/email_verified", "x-email-verified"], + ["https://myapp.com/first_name", "x-first-name"], + ["https://myapp.com/last_name", "x-last-name"], + ["https://myapp.com/image", "x-image"], + ["https://myapp.com/name", "x-name"], + ["https://myapp.com/created_at", "x-created-at"], + ["https://myapp.com/updated_at", "x-updated-at"], + ["https://myapp.com/company", "x-company"], + ["https://myapp.com/designation", "x-designation"], + ["https://myapp.com/active", "x-active"], + ["https://myapp.com/is_admin", "x-is-admin"], + ["https://myapp.com/address_updated", "x-address-updated"], + ["https://myapp.com/quotas", "x-quotas"], + ["https://myapp.com/used_demo", "x-used-demo"], + ["https://myapp.com/reference", "x-reference"], + ["https://myapp.com/roles", "x-roles"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json" +, + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "method": "POST", + "url_pattern": "/user/login" + } + ] +}, +{ + "endpoint": "/register", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user/register", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/logout", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user/logout", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/user/new", + "method": "GET", + "input_headers":["*"], + "extra_config": { + "proxy": { + "static": { + "strategy": "errored", + "data": { + "status_code": 503, + "headers": { + "Content-Type": "application/json" + }, + "body": "user is already registered.If login doesnt work please contact admin" + } + } + }, +"auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"], + ["https://myapp.com/email_verified", "x-email-verified"], + ["https://myapp.com/first_name", "x-first-name"], + ["https://myapp.com/last_name", "x-last-name"], + ["https://myapp.com/image", "x-image"], + ["https://myapp.com/name", "x-name"], + ["https://myapp.com/created_at", "x-created-at"], + ["https://myapp.com/updated_at", "x-updated-at"], + ["https://myapp.com/company", "x-company"], + ["https://myapp.com/designation", "x-designation"], + ["https://myapp.com/active", "x-active"], + ["https://myapp.com/is_admin", "x-is-admin"], + ["https://myapp.com/address_updated", "x-address-updated"], + ["https://myapp.com/quotas", "x-quotas"], + ["https://myapp.com/used_demo", "x-used-demo"], + ["https://myapp.com/reference", "x-reference"], + ["https://myapp.com/roles", "x-roles"] + ], + "alg": "RS256", + "audience": [ + "https://dev-oknhd5hivohn3jyg.us.auth0.com/api/v2/" + ], + "jwk_url": "https://dev-oknhd5hivohn3jyg.us.auth0.com/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "method": "GET", + "url_pattern": "/user/new" + } + ] +}, +{ + "endpoint": "/user/forgot-password", + "method": "POST", + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user/forgot-password", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/reset-password", + "method": "POST", + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user/reset-password", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/change-password", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user/change-password", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "qos/ratelimit/router": { + "max_rate": 10, + "every": "5m", + "client_max_rate": 5, + "strategy": "ip", + "capacity": 10, + "client_capacity": 5 + } + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/user/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "modifier/martian": { + "header.Modifier": { + "scope": ["response"], + "name": "Cache-Control", + "value": "max-age=30, public", + "@comment": "We will change the max-age policy before KrakenD checks the content for caching. Now content is cached 60 seconds." + } + }, + "qos/http-cache": { + "@comment": "Allow up to 100 cache entries or ~128MB (bytes not set exactly)", + "shared": false, + "max_items": 100, + "max_size": 128000000 + } + } + } + ] +} +, +{ + "endpoint": "/users", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "role", "status", "sort-column", "sort-direction", "search"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/users", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/user/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/user/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/profile", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], +"input_headers":["*"], + "extra_config": { + "qos/ratelimit/router": { + "max_rate": 10, + "every": "5m", + "client_max_rate": 5, + "strategy": "ip", + "capacity": 10, + "client_capacity": 5 + }, + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/profile", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/profile", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, +"output_encoding": "no-op", +"input_headers":["*"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "encoding": "no-op", + "method": "PUT", + "url_pattern": "/profile", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/tokens", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/user/tokens", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/user/tokens", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user/tokens", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/token/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/user/token/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user-invite", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user-invite", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user-invite/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/user-invite/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user-invites", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/user-invites", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user-invite/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/user-invite/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user-invite/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/user-invite/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user-invite-request", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user-invite-request", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/roles", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/roles", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/role/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/role/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/permissions", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/permissions", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/role/environment/{environment_id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/role/environment/{environment_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/role/application/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/role/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/role/project/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/role/project/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/project", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/projects", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/projects", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/projects", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "status"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/projects", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/project/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/project/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/project/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/activation", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/project/{id}/activation", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/activities", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/activities", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} + +, +{ + "endpoint": "/project/{id}/resource", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/resource", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/users", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/users", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/user", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/project/{id}/user", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/user/{user_id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/project/{id}/user/{user_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/user/{user_id}", + "method": "GET", + "output_encoding": "json", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/user/{user_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/application", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/application", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/applications", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "status"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/applications", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/available-resource", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}/available-resource", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/applications", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "status"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/applications", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/users", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}/users", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/deploy", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/application/{id}/deploy", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/restart", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/application/{id}/restart", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/stop", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/application/{id}/stop", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/logs", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "start_date", "end_date", "level"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}/logs", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/metrics", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["period", "metric_type"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}/metrics", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/deployments", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}/deployments", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/application/{id}/environments", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}/environments", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/ws", + "input_query_strings": ["*"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "url_pattern": "/ws", + "disable_host_sanitization": true, + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "github.com/devopsfaith/krakend/proxy": { + "is_websocket": true + }, + "github.com/devopsfaith/krakend/router/proxy": { + "is_websocket": true + } + } + } + ] +} +, +{ + "endpoint": "/environment", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/overview", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/overview", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/addons", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/addons", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/fetch-state", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/fetch-state", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/rename/environment/{environment_id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/rename/environment/{environment_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/overview", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/overview", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/activity-log", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/activity-log", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "/environment/{environment_id}/state", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/state", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} + +, +{ + "endpoint": "/environment/{environment_id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/environment/{environment_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/groups", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "status"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/groups", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/groups", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/groups", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/groups/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/groups/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/groups/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/groups/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/groups/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/groups/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/groups/{id}/members", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/groups/{id}/members", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/groups/{id}/members", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/groups/{id}/members", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/search/user", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["query"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/search/user", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/search", + "method": "GET", + "input_query_strings": ["query"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/search", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cluster/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/cluster/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cluster/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/cluster/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cluster/{id}/environments", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/cluster/{id}/environments", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cluster/{id}/operators", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/cluster/{id}/operators", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cluster/{id}/operator/status", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/cluster/{id}/operator/status", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/create-cluster/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/create-cluster/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}/workflows", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster/{id}/workflows", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}/insights", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster/{id}/insights", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}/insights", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/create-cluster/{id}/insights", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}/package-status", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster/{id}/package-status", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}/install-package", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/create-cluster/{id}/install-package", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}/uninstall-package", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/create-cluster/{id}/uninstall-package", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster/{id}/workflow-log", + "method": "GET", + "input_query_strings": ["workflow_name"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster/{id}/workflow-log", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "/scanner/{id}/cluster-scan", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/scanner/{id}/cluster-scan", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/package-config", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/package-config", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/subscriptions", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/subscriptions", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/helm/repos", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/helm/repos", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "modifier/martian": { + "header.Modifier": { + "scope": ["response"], + "name": "Cache-Control", + "value": "max-age=30, public", + "@comment": "We will change the max-age policy before KrakenD checks the content for caching. Now content is cached 60 seconds." + } + }, + "qos/http-cache": { + "@comment": "Allow up to 100 cache entries or ~128MB (bytes not set exactly)", + "shared": false, + "max_items": 100, + "max_size": 128000000 + } + } + } + ] +} +, +{ + "endpoint": "/helm/repos", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/helm/repos", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/helm/repos/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/helm/repos/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/helm/repos/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/helm/repos/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/helm/repos/{id}/sync", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/helm/repos/{id}/sync", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/helm/charts", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "query", "category", "repo_id"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/helm/charts", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/helm/chart/categories", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/helm/chart/categories", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organizations", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organizations", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organization", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/organization", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/organization", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organizationPlans", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organizationPlans", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/organization/{id}/activities", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "action", "userid", "datestart", "dateend", "module"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organization/{id}/activities", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization/{id}/switch", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organization/{id}/switch", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization/add-plugins", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/organization/add-plugins", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization/plugin/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/organization/plugin/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization/members", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/organization/members", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registries", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/registries", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "modifier/martian": { + "header.Modifier": { + "scope": ["response"], + "name": "Cache-Control", + "value": "max-age=30, public", + "@comment": "We will change the max-age policy before KrakenD checks the content for caching. Now content is cached 60 seconds." + } + }, + "qos/http-cache": { + "@comment": "Allow up to 100 cache entries or ~128MB (bytes not set exactly)", + "shared": false, + "max_items": 100, + "max_size": 128000000 + } + } + } + ] +} +, +{ + "endpoint": "/dns", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/dns", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/resource", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/resource", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/resource/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/resource/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/resource/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/resource/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/resource/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/resource/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/subscriptions", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "qos/ratelimit/router": { + "max_rate": 10, + "every": "5m", + "client_max_rate": 5, + "strategy": "ip", + "capacity": 10, + "client_capacity": 5 + } + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/subscriptions" + } + ] +}, +{ + "endpoint": "/subscription/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/subscription/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/rename/application/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/rename/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugin", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/plugin", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugins", + "method": "GET", + "input_query_strings": [ + "support_ci", + "size", + "page", + "is_managed_service", + "search" + ], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugins", + "input_query_strings": [ + "support_ci", + "size", + "page", + "is_managed_service", + "search" + ], + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "modifier/martian": { + "header.Modifier": { + "scope": ["response"], + "name": "Cache-Control", + "value": "max-age=30, public", + "@comment": "We will change the max-age policy before KrakenD checks the content for caching. Now content is cached 60 seconds." + } + }, + "qos/http-cache": { + "@comment": "Allow up to 100 cache entries or ~128MB (bytes not set exactly)", + "shared": false, + "max_items": 100, + "max_size": 128000000 + } + } + } + ] +} +, +{ + "endpoint": "/plugins/active", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugins/active", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/plugin/{id}/latest-version", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugin/{id}/latest-version", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugin-version/{plugin_version}/config", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugin-version/{plugin_version}/config", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugin-version/{plugin_version}/settings", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugin-version/{plugin_version}/settings", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugin/{id}", + "method": "GET", + "input_query_strings": [ + "support_ci", + "size", + "page", + "is_managed_service", + "search" + ], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugin/{id}", + "input_query_strings": [ + "support_ci", + "size", + "page", + "is_managed_service", + "search" + ], + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/activity", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/activity", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/activities", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "type", "start_date", "end_date"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/activities", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/activity/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/activity/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/activity/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/activity/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/notification", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/notification", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/notification/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/notification/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/notifications", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "read", "start_date", "end_date"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/notifications", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/notification/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/notification/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/notification/mark-all-as-read", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/notification/mark-all-as-read", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/notification/mark-all-as-read", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/notification/mark-all-as-read", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/paymenthistory", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "input_query_strings": [ + "*" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "input_query_strings": [ + "*" + ], + "url_pattern": "/payment/paymenthistory", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "input_query_strings":["*"] + } + ] +} +, + +{ + "endpoint": "/payment/threshold", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/threshold", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "input_query_strings":["*"] + } + ] +} +, +{ + "endpoint": "/payment/threshold", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/payment/threshold", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/gateway", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/gateway", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/init/stripe", + "method": "GET", + "input_query_strings": ["amount"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/init/stripe", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/init/paypal", + "method": "GET", + "input_query_strings": ["amount"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/init/paypal", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "/payment/invoice", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/invoice", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "input_query_strings":["*"] + } + ] +} +, +{ + "endpoint": "/payment/invoice/{id}/download", + "method": "GET", + "input_query_strings": ["token"], + "output_encoding": "no-op", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "encoding": "no-op", + "url_pattern": "/payment/invoice/{id}/download", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "github.com/devopsfaith/krakend-martian": { + "header.Blacklist": { + "scope": ["response"], + "names": ["Access-Control-Allow-Origin"] + } + } + } + } + ] +} +, + +{ + "endpoint": "/payment/paymentsetting", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "proxy": { + "sequential": true + } + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/paymentsetting", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "input_query_strings":["*"] + } + ] +} +, +{ + "endpoint": "/payment/paymentsetting", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/payment/paymentsetting", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "input_query_strings": [ + "*" + ] + } + ] +}, + +{ + "endpoint": "/sidebar", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/sidebar", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "input_query_strings":["*"] + } + ] +} +, +{ + "endpoint": "/get-regions", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/get-regions", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "/regions", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/regions", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "modifier/martian": { + "header.Modifier": { + "scope": ["response"], + "name": "Cache-Control", + "value": "max-age=30, public", + "@comment": "We will change the max-age policy before KrakenD checks the content for caching. Now content is cached 60 seconds." + } + }, + "qos/http-cache": { + "@comment": "Allow up to 100 cache entries or ~128MB (bytes not set exactly)", + "shared": false, + "max_items": 100, + "max_size": 128000000 + } + }, + "input_query_strings":["*"] + } + ] +} +, +{ + "endpoint": "/public/file/external-logger.json", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/public/file/external-logger.json", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/external/connections", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/external/connections", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/import-cluster", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/import-cluster", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "/monitoring/templates/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/templates/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/backup", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/backup", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/variables", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/variables", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "monitoring/podlist/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "monitoring/podlist/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/plugin/{id}/add-ons", + "method": "GET", + "input_query_strings": [ + "*" + ], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugin/{id}/add-ons", + "input_query_strings": [ + "*" + ], + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/plugin-category", + "method": "GET", + "input_query_strings": [ + "*" + ], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugin-category", + "input_query_strings": [ + "*" + ], + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/scanner/{id}/plugins", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "output_encoding": "json", + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/scanner/{id}/plugins", + "is_collection": false, + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/scanner/cluster-plugins", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/scanner/cluster-plugins", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/scanner/{id}/cluster-reports", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/scanner/{id}/cluster-reports", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/scanner/{id}/scan", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "output_encoding": "json", + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/scanner/{id}/scan", + "is_collection": false, + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/scanner/{id}/reports", + "method": "GET", + "output_encoding": "json", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/scanner/{id}/reports", + "is_collection": true, + "mapping": { + "collection": "reports" + }, + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, + { + "endpoint": "/environment/{environment_id}/restores", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/restores", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] + } +, + { + "endpoint": "/environment/{environment_id}/storage-fetch", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/storage-fetch", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] + } +, + { + "endpoint": "/environment/{environment_id}/users", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/users", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] + } +, +{ + "endpoint": "/environment/{environment_id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/storage", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/storage", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "monitoring/events/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/events/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, + +{ + "endpoint": "/monitoring/insights/{id}", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/monitoring/insights/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/backup/{backup_id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/environment/{environment_id}/backup/{backup_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/backup/setting", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/backup/setting", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/backup", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/backup", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/backup/{backup_id}/preserve", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/backup/{backup_id}/preserve", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/backup/setting", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/backup/setting", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/backup/{backup_id}/restore", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/backup/{backup_id}/restore", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/upload-gcs", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "output_encoding": "json", + "input_query_strings": ["*"], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "telemetry/logging": { + "level": "DEBUG", + "prefix": "[KRAKEND]", + "stdout": true, + "syslog": false + } + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "url_pattern": "/upload-gcs", + "method": "POST", + "is_collection": false, + "headers_to_pass": [ + "Authorization", + "Content-Type", + "X-Custom-Auth", + "X-API-Version" + ], + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "github.com/devopsfaith/krakend-http": { + "timeout": "60s", + "retries": 3, + "read_timeout": "60s", + "write_timeout": "60s" + }, + "backend/http": { + "return_error_code": true + } + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/addons", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/addons", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/start", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/start", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/stop", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/stop", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/schedule", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/schedule", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/re-deploy", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/re-deploy", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/clone", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/clone", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/addons/{addons_id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/addons/{addons_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/addons/{addons_id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/environment/{environment_id}/addons/{addons_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/addons/{addons_id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/addons/{addons_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/schedule/logs", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/schedule/logs", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/clone", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/clone", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/upload", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/upload", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/check-dns-permissions", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/check-dns-permissions", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/ticket/group", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/ticket/group", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/ticket", + "method": "GET", + "input_query_strings": ["page", "limit", "query", "status", "priority", "category"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/ticket", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/ticket/details/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/ticket/details/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/ticket", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/ticket", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/dashboard", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/dashboard", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/cluster/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/cluster/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/clusters", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/clusters", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/email-templates", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/email-templates", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/email-templates/{template}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/email-templates/{template}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/file/setting.json", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/file/setting.json", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/operators", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/operators", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/org/cluster/{oid}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/org/cluster/{oid}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/organizationPlans", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/organizationPlans", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/organization/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/organization/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/organizations", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/organizations", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/plugins", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/plugins", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/project/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/project/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/resources", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/admin/resources", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/subscription", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/admin/subscription", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/operator/enable-disable", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/admin/operator/enable-disable", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/operator/:packageName", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/admin/operator/:packageName", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/operator/sync", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/admin/operator/sync", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/admin/user/id/quotas", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/admin/user/id/quotas", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/ticket/admin", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/ticket/admin", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/ticket/user", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/ticket/user", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/ticket/dashboard", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "qos/ratelimit/router": { + "max_rate": 10, + "every": "5m", + "client_max_rate": 5, + "strategy": "ip", + "capacity": 10, + "client_capacity": 5 + } + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/ticket/dashboard" + } + ] +}, +{ + "endpoint": "/loadbalancers", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "qos/ratelimit/router": { + "max_rate": 10, + "every": "5m", + "client_max_rate": 5, + "strategy": "ip", + "capacity": 10, + "client_capacity": 5 + } + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/loadbalancers" + } + ] +}, +{ + "endpoint": "/payment/promocode", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/promocode" + } + ] +}, +{ + "endpoint": "/payment/deduction", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/deduction" + } + ] +}, +{ + "endpoint": "/payment/gateway-all", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/gateway-all" + } + ] +}, +{ + "endpoint": "/payment/invoices", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/invoices" + } + ] +}, +{ + "endpoint": "/payment/transaction", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/transaction" + } + ] +}, +{ + "endpoint": "/user/{id}/projects", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/user/{id}/projects", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "user/{id}/block", + "method": "GET", + "input_query_strings":["type"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "user/{id}/block", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "user/{id}/change-admin-status", + "method": "GET", + "input_query_strings":["is_admin"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "user/{id}/change-admin-status", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/subscription/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/subscription/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organizationPlan", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/organizationPlan", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organizationPlan/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/organizationPlan/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organizationPlan/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "qos/ratelimit/router": { + "max_rate": 10, + "every": "5m", + "client_max_rate": 5, + "strategy": "ip", + "capacity": 10, + "client_capacity": 5 + } + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organizationPlan/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organizationPlan/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/organizationPlan/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/promocode", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/payment/promocode" + } + ] +}, +{ + "endpoint": "/payment/promocode/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/promocode/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/promocode/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/payment/promocode/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/promocode/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/payment/promocode/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugin/{id}/versions", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "plugin/{id}/versions", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/create-cluster-config", + "input_query_strings":["provider"], + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster-config", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/operator", + "input_query_strings":["packageName"], + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/operator", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/admin/setting/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/admin/setting/{id}" + } + ] +}, +{ + "endpoint": "/admin/user/{id}/quotas", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/admin/user/{id}/quotas" + } + ] +}, +{ + "endpoint": "/subscription/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/subscription/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/public/file/subscriptions.json", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/public/file/subscriptions.json", + "extra_config": { + "modifier/martian": { + "header.Modifier": { + "scope": ["response"], + "name": "Cache-Control", + "value": "max-age=30, public", + "@comment": "We will change the max-age policy before KrakenD checks the content for caching. Now content is cached 60 seconds." + } + }, + "qos/http-cache": { + "@comment": "Allow up to 100 cache entries or ~128MB (bytes not set exactly)", + "shared": false, + "max_items": 100, + "max_size": 128000000 + } , + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "/create-cluster/vcluster/validate", + "method": "GET", + "input_query_strings":["vtoken"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster/vcluster/validate", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/organization", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/subscription", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} +, + "qos/http-cache": { + "@comment": "Allow up to 100 cache entries or ~128MB (bytes not set exactly)", + "shared": false, + "max_items": 100, + "max_size": 128000000 + } + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/subscription", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "modifier/martian": { + "header.Modifier": { + "scope": ["response"], + "name": "Cache-Control", + "value": "max-age=30, public", + "@comment": "We will change the max-age policy before KrakenD checks the content for caching. Now content is cached 60 seconds." + } + }, + "qos/http-cache": { + "@comment": "Allow up to 100 cache entries or ~128MB (bytes not set exactly)", + "shared": false, + "max_items": 100, + "max_size": 128000000 + } + } + } + ] +} +, +{ + "endpoint": "/organization/members", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/organization/members", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/organization/members", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/organization/members", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/git/org/{github}", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/git/org/{github}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/git/connect", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/git/connect", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/external/revoke/{rid}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/external/revoke/{rid}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/token", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user/token", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/package-status", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/package-status", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/resources", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit", "type"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/resources", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registry/org", + "method": "POST", + "input_query_strings": ["namespace"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/registry/org", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/loadbalancer", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/loadbalancer", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/loadbalancers", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/loadbalancers", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/loadbalancers", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/project/{id}/loadbalancers", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registry/connect", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/registry/connect", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/revision-fetch", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/revision-fetch", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/revision-list", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/revision-list", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/workflow", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/workflow", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/ci-metrics", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/ci-metrics", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/ci-trigger", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/ci-trigger", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/ci-trigger", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/ci-trigger", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/git/branch/github", + "method": "POST", + "input_query_strings": ["repo", "uid"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/git/branch/github", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cd-config", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/cd-config", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/payment/invoice/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/payment/invoice/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/dns", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/dns", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registry-config", + "method": "GET", + "output_encoding": "json-collection", + "is_collection": true, + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/registry-config", + "is_collection": true, + "output_encoding": "json-collection", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} + , +{ + "endpoint": "/dns/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/dns/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/dns/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/dns/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/cronjob-fetch", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/cronjob-fetch", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/git/repo/github", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/git/repo/github", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/cronjob", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/cronjob", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/templates/{id}/general", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/monitoring/templates/{id}/general", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/cronjob-status", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/cronjob-status", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cron-images", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/cron-images", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/rerun-ci", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/rerun-ci", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/cronjob", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/cronjob", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/templates/{id}/general", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/monitoring/templates/{id}/general", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/templates/{id}/general", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/templates/{id}/general", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/alerts/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit","type"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/alerts/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/dns", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/dns", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/user", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/user", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/enable-disable-filemanager", + "method": "POST", + "input_query_strings":["status"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/enable-disable-filemanager", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/variables", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/variables", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/ip-whitelist", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/ip-whitelist", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registry/org/dockerhub", + "method": "POST", + "input_query_strings":["namespace"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/registry/org/dockerhub", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registry/repos/dockerhub", + "method": "POST", + "input_query_strings":["namespace"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/registry/repos/dockerhub", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registry/repo/tags/dockerhub", + "method": "POST", + "input_query_strings":["namespace","repo"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/registry/repo/tags/dockerhub", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/login/sso", + "method": "GET", + "input_headers":["*"], + "output_encoding": "no-op", + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "encoding": "no-op", + "url_pattern": "/user/login/sso", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/user/login/sso", + "method": "POST", + "input_headers":["*"], + "output_encoding": "no-op", + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "encoding": "no-op", + "url_pattern": "/user/login/sso", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + { + "endpoint": "/user/login/sso", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/user/login/sso", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/get-clusters", + "method": "GET", + "input_query_strings": ["region"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/get-clusters", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registry/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/registry/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + +{ + "endpoint": "/environment/{environment_id}/build-images", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/build-images", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/hpa-insight", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/hpa-insight", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/alert-status/{alert_id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings":["state_type","type"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/alert-status/{alert_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/restart/{alert_id}", + "method": "POST", + "input_query_strings":["namespace"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/monitoring/restart/{alert_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/loadbalancer", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "output_encoding": "json", + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/loadbalancer", + "is_collection": false, + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/cli/organization/members", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/organization/members", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}/user", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/project/{id}/user", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/user/{id}/projects", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/user/{id}/projects", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/create-cluster/{id}/uninstall-package", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/create-cluster/{id}/uninstall-package", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/project", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/application/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/organization/members", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/organization/members", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/cli/organization", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/organization", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/project/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/application/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/application/{id}/environments", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/application/{id}/environments", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/create-cluster/{id}/package-status", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster/{id}/package-status", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/create-cluster", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/create-cluster", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/environment/{environment_id}/overview", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/overview", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/loadbalancer", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/loadbalancer", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/organization/{id}/switch", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organization/{id}/switch", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/organizations", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organizations", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/organization", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/organization", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/cli/package-config", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/package-config", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} + , +{ + "endpoint": "/cli/project/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + + + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}/user/{user_id}", + "method": "GET", + "output_encoding": "json", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/user/{user_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/cli/project/{id}/resource", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/resource", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/projects", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "input_query_strings": ["page", "limit", "status"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/projects", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}/users", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/users", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/rename/environment/{environment_id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/rename/environment/{environment_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/roles", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/roles", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/import-cluster", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/import-cluster", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/create-cluster/{id}/install-package", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/create-cluster/{id}/install-package", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/loadbalancer", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "output_encoding": "json", + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/loadbalancer", + "is_collection": false, + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/cli/environment/{environment_id}/overview", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/overview", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/environment/{environment_id}/start", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/start", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/environment/{environment_id}/stop", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/stop", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/organization", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/organization", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}/loadbalancers", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/project/{id}/loadbalancers", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/projects", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/projects", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}/loadbalancers", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/loadbalancers", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}/user/{user_id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/project/{id}/user/{user_id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/rename/application/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/rename/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}/activation", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/project/{id}/activation", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/cli/application/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/application/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/organization/members", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/organization/members", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/cli/organization", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/organization", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/project/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/project/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/profile", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, +"output_encoding": "no-op", +"input_headers":["*"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "encoding": "no-op", + "method": "PUT", + "url_pattern": "/profile", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/user/logout", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/user/logout", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/cli/profile", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], +"input_headers":["*"], + "extra_config": { + "qos/ratelimit/router": { + "max_rate": 10, + "every": "5m", + "client_max_rate": 5, + "strategy": "ip", + "capacity": 10, + "client_capacity": 5 + }, + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/profile", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/webhook/{environment_id}/{github}", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/webhook/{environment_id}/{github}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/user/login/sso", + "method": "GET", + "input_headers":["*"], + "output_encoding": "no-op", + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "encoding": "no-op", + "url_pattern": "/user/login/sso", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/cli/user/login/sso", + "method": "POST", + "input_headers":["*"], + "output_encoding": "no-op", + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "encoding": "no-op", + "url_pattern": "/user/login/sso", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + { + "endpoint": "/cli/user/login/sso", + "method": "PUT", +"input_headers":["*"], + "output_encoding": "no-op", + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "encoding": "no-op", + "url_pattern": "/user/login/sso", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/storage/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/storage/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/plugin-version/{plugin_version}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/plugin-version/{plugin_version}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugin-version/{plugin_version}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/plugin-version/{plugin_version}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugin-version", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/plugin-version", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/plugin-version/{plugin_version}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config":{ + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/plugin-version/{plugin_version}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/terminal", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/monitoring/terminal", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/external-url", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/external-url", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/monitoring/alert-history/{id}", + "method": "GET", + "input_query_strings": ["page", "limit","type"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/alert-history/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/notifications/seen-unseen", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/notifications/seen-unseen", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/monitoring/templates/{id}/mysql", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/monitoring/templates/{id}/mysql", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/monitoring/templates/{id}/mongodb", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/monitoring/templates/{id}/mongodb", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/monitoring/templates/{id}/postgresql", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/monitoring/templates/{id}/postgresql", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/monitoring/templates/{id}/mysql", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/monitoring/templates/{id}/mysql", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/templates/{id}/mongodb", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/monitoring/templates/{id}/mongodb", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/templates/{id}/postgresql", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/monitoring/templates/{id}/postgresql", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/templates/{id}/mysql", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/templates/{id}/mysql", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/templates/{id}/mongodb", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/templates/{id}/mongodb", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/templates/{id}/postgresql", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/monitoring/templates/{id}/postgresql", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/project/{id}/available-storage", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/project/{id}/available-storage", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/monitoring/alerts/{id}", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit","type"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/monitoring/alerts/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/storage", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/storage", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/uploads/image/jpeg/{imageId}", + "method": "GET", + "input_query_strings": ["token"], + "output_encoding": "no-op", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "encoding": "no-op", + "url_pattern": "/uploads/image/jpeg/{imageId}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } +, + "github.com/devopsfaith/krakend-martian": { + "header.Blacklist": { + "scope": ["response"], + "names": ["Access-Control-Allow-Origin"] + } + } + } + } + ] +} , +{ + "endpoint": "/create-cluster/{id}/change-active-status", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/create-cluster/{id}/change-active-status", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/cronjob/{id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/cronjob/{id}", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/cronjob/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/cronjob/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/cronjob/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/environment/{environment_id}/cronjob/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/registry/aws-region", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "input_query_strings": ["page", "limit"], + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/registry/aws-region", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/registry/org/aws_ecr", + "method": "POST", + "input_query_strings":["namespace"], + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/registry/org/aws_ecr", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/user/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/user/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/user/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/environment/{environment_id}/user/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/external-logging", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/external-logging", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/environment/{environment_id}/addons/{addons_id}/external-url", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/addons/{addons_id}/external-url", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, + { + "endpoint": "/environment/{environment_id}/init-container", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/environment/{environment_id}/init-container", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] + } +, +{ + "endpoint": "/environment/{environment_id}/init-container", + "method": "POST", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "POST", + "url_pattern": "/environment/{environment_id}/init-container", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/init-container/{id}", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/environment/{environment_id}/init-container/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/environment/{environment_id}/init-container/{id}", + "method": "DELETE", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "DELETE", + "url_pattern": "/environment/{environment_id}/init-container/{id}", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/monitoring/templates/{id}/postgresql", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/monitoring/templates/{id}/postgresql", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/scanner/{id}/reports/{report_id}", + "method": "GET", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "GET", + "url_pattern": "/scanner/{id}/reports/{report_id}", + "encoding": "safejson", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/monitoring/templates/{id}/general", + "method": "PUT", + "input_headers": [ "X-Custom-Auth", + "Authorization", + "Accept", + "X-Api-Version", + "Origin", + "Referer", + "User-Agent", + "X-Email", + "X-Circuit-Break" , + "X-Request-Id", + "Content-Type", + "X-PERSONAL-TOKEN", + "X-ORG-ID", + "X-SESSION-ID", + "X-CUSTOM-AUTH" + ], + "extra_config": { + "auth/validator": { + "auth_header_name": "X-Custom-Auth", + "propagate_claims": [ + ["https://myapp.com/email", "x-email"] + ], + "alg": "RS256", + "audience": [ + "https://dev-xxx.us.auth0.com/api/v2/" + ], + "jwk_url": "https://"domain-name"/.well-known/jwks.json", + "operation_debug": true +} + + }, + "backend": [ + { + "host": [ + "http://cloud-api.01cloud-staging.svc.cluster.local:8081" + ], + "method": "PUT", + "url_pattern": "/monitoring/templates/{id}/general", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +}, +{ + "endpoint": "/docs/swagger.yaml", + "method": "GET", + "output_encoding": "no-op", + "backend": [ + { + "host": ["http://cloud-api.01cloud-staging.svc.cluster.local:8081"], + "method": "GET", + "url_pattern": "/docs/swagger.yaml", + "encoding": "no-op", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/swagger/index.html", + "method": "GET", + "output_encoding": "no-op", + "backend": [ + { + "host": ["http://cloud-api.01cloud-staging.svc.cluster.local:8081"], + "method": "GET", + "url_pattern": "/swagger/index.html", + "encoding": "no-op" + } + ] +} +, +{ + "endpoint": "/docs/swagger.json", + "method": "GET", + "output_encoding": "no-op", + "backend": [ + { + "host": ["http://cloud-api.01cloud-staging.svc.cluster.local:8081"], + "method": "GET", + "url_pattern": "/docs/swagger.json", + "encoding": "no-op", + "extra_config": { + "backend/http": { + "return_error_code": true + }, +"github.com/devopsfaith/krakend-circuitbreaker/gobreaker": { + "interval": 60, + "timeout": 10, + "max_errors": 5, + "log_status_change": true + } + + } + } + ] +} +, +{ + "endpoint": "/swagger/swagger-ui-bundle.js", + "method": "GET", + "output_encoding": "no-op", + "backend": [ + { + "host": ["http://cloud-api.01cloud-staging.svc.cluster.local:8081"], + "method": "GET", + "url_pattern": "/swagger/swagger-ui-bundle.js", + "encoding": "no-op" + } + ] +} +, +{ + "endpoint": "/swagger/swagger-ui-standalone-preset.js", + "method": "GET", + "output_encoding": "no-op", + "backend": [ + { + "host": ["http://cloud-api.01cloud-staging.svc.cluster.local:8081"], + "method": "GET", + "url_pattern": "/swagger/swagger-ui-standalone-preset.js", + "encoding": "no-op" + } + ] +}, +{ + "endpoint": "/swagger/swagger-ui.css", + "method": "GET", + "output_encoding": "no-op", + "backend": [ + { + "host": ["http://cloud-api.01cloud-staging.svc.cluster.local:8081"], + "method": "GET", + "url_pattern": "/swagger/swagger-ui.css", + "encoding": "no-op" + } + ] +} + + + ] +} diff --git a/gateway/krakend/templates/NOTES.txt b/gateway/krakend/templates/NOTES.txt new file mode 100644 index 0000000..3b6739c --- /dev/null +++ b/gateway/krakend/templates/NOTES.txt @@ -0,0 +1,22 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "krakend.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "krakend.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "krakend.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "krakend.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} diff --git a/gateway/krakend/templates/_helpers.tpl b/gateway/krakend/templates/_helpers.tpl new file mode 100644 index 0000000..e736614 --- /dev/null +++ b/gateway/krakend/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "krakend.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "krakend.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "krakend.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "krakend.labels" -}} +helm.sh/chart: {{ include "krakend.chart" . }} +{{ include "krakend.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "krakend.selectorLabels" -}} +app.kubernetes.io/name: {{ include "krakend.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "krakend.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "krakend.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/gateway/krakend/templates/configMap.yaml b/gateway/krakend/templates/configMap.yaml new file mode 100644 index 0000000..668f195 --- /dev/null +++ b/gateway/krakend/templates/configMap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Values.configMap.name }} + namespace: {{ .Values.namespace }} +data: + krakend.json: |- + {{ .Files.Get "files/krakend.json" | nindent 4 }} diff --git a/gateway/krakend/templates/deployment.yaml b/gateway/krakend/templates/deployment.yaml new file mode 100644 index 0000000..0a88c57 --- /dev/null +++ b/gateway/krakend/templates/deployment.yaml @@ -0,0 +1,31 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "krakend.fullname" . }} + namespace: {{ .Values.namespace }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ .Values.selector.app }} + template: + metadata: + labels: + app: {{ .Values.selector.app }} + spec: + containers: + - name: krakend + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - containerPort: {{ .Values.service.port }} + - containerPort: 9091 + volumeMounts: + - name: krakend-config + mountPath: /etc/krakend/krakend.json + subPath: krakend.json + args: ["run", "--config", "/etc/krakend/krakend.json"] + volumes: + - name: krakend-config + configMap: + name: {{ .Values.configMap.name }} diff --git a/gateway/krakend/templates/designer-deployment.yaml b/gateway/krakend/templates/designer-deployment.yaml new file mode 100644 index 0000000..639fe13 --- /dev/null +++ b/gateway/krakend/templates/designer-deployment.yaml @@ -0,0 +1,21 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "krakend.fullname" . }}-designer + namespace: {{ .Values.namespace }} +spec: + replicas: {{ .Values.designer.replicaCount }} + selector: + matchLabels: + app: {{ .Values.designer.selector.app }} + template: + metadata: + labels: + app: {{ .Values.designer.selector.app }} + spec: + containers: + - name: {{ .Values.designer.containers.name }} + image: "{{ .Values.designer.image.repository }}:{{ .Values.designer.image.tag }}" + imagePullPolicy: {{ .Values.designer.image.pullPolicy }} + ports: + - containerPort: {{ .Values.designer.service.targetPort }} diff --git a/gateway/krakend/templates/designer-ingress.yaml b/gateway/krakend/templates/designer-ingress.yaml new file mode 100644 index 0000000..88881df --- /dev/null +++ b/gateway/krakend/templates/designer-ingress.yaml @@ -0,0 +1,21 @@ +{{- if .Values.designer.ingress.enabled | default false }} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "krakend.fullname" . }}-designer-ingress + namespace: {{ .Values.namespace }} + annotations: + kubernetes.io/ingress.class: {{ .Values.designer.ingress.class }} +spec: + rules: + - host: {{ .Values.designer.ingress.host }} + http: + paths: + - path: {{ .Values.designer.ingress.path }} + pathType: {{ .Values.designer.ingress.pathType }} + backend: + service: + name: {{ include "krakend.fullname" . }}-designer + port: + number: {{ .Values.designer.service.port }} +{{- end }} diff --git a/gateway/krakend/templates/designer-service.yaml b/gateway/krakend/templates/designer-service.yaml new file mode 100644 index 0000000..7a83352 --- /dev/null +++ b/gateway/krakend/templates/designer-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "krakend.fullname" . }}-designer + namespace: {{ .Values.namespace }} +spec: + type: {{ .Values.designer.service.type }} + ports: + - port: {{ .Values.designer.service.port }} + targetPort: {{ .Values.designer.service.targetPort }} + selector: + app: {{ .Values.designer.selector.app }} diff --git a/gateway/krakend/templates/ingress.yaml b/gateway/krakend/templates/ingress.yaml new file mode 100644 index 0000000..50011e9 --- /dev/null +++ b/gateway/krakend/templates/ingress.yaml @@ -0,0 +1,21 @@ +{{- if .Values.ingress.enabled | default false }} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "krakend.fullname" . }}-ingress + namespace: {{ .Values.namespace }} + annotations: + kubernetes.io/ingress.class: {{ .Values.ingress.class }} +spec: + rules: + - host: {{ .Values.ingress.host }} + http: + paths: + - path: {{ .Values.ingress.path }} + pathType: {{ .Values.ingress.pathType }} + backend: + service: + name: krakend + port: + number: {{ .Values.service.port }} +{{- end }} diff --git a/gateway/krakend/templates/service.yaml b/gateway/krakend/templates/service.yaml new file mode 100644 index 0000000..3ca4302 --- /dev/null +++ b/gateway/krakend/templates/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "krakend.fullname" . }} + namespace: {{ .Values.namespace }} +spec: + type: {{ .Values.service.type | default "ClusterIP" }} + ports: + - port: {{ .Values.service.port | default 8080 }} + targetPort: {{ .Values.service.targetPort | default 8080 }} + name: http + - port: 9091 + targetPort: 9091 + name: metric + selector: + app: {{ .Values.selector.app | default "krakend" }} diff --git a/gateway/krakend/values.yaml b/gateway/krakend/values.yaml new file mode 100644 index 0000000..679da5d --- /dev/null +++ b/gateway/krakend/values.yaml @@ -0,0 +1,46 @@ +replicaCount: 1 + +image: + repository: devopsfaith/krakend + tag: latest + pullPolicy: IfNotPresent + +service: + type: ClusterIP + port: 8080 + targetPort: 8080 + +ingress: + enabled: false + class: nginx + host: devopstest-krakend.checkmysite.live + path: / + pathType: Prefix + +namespace: krakend +selector: + app: krakend + +configMap: + name: krakend-config + +designer: + replicaCount: 0 + selector: + app: designer-krakend + containers: + name: designer-krakend + image: + repository: krakend/designer + tag: latest + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8080 + targetPort: 80 + ingress: + enabled: false + class: nginx-internal + host: devopstest-krakend-designer.checkmysite.live + path: / + pathType: Prefix diff --git a/helper/host.sh b/helper/host.sh index 9a1f7cb..dc31025 100644 --- a/helper/host.sh +++ b/helper/host.sh @@ -1,35 +1,37 @@ -network=`kubectl --kubeconfig $KUBECONFIG get svc ingress-nginx-controller -n ingress-nginx -o=jsonpath='{.status.loadBalancer.ingress[0].ip}'` -if [ -z "$network" ] -then - echo "External ip not found" - exit -fi -echo "External IP is :: $network" -host=`cat /etc/hosts | grep "console.staging.01cloud.dev"` -if [ "$1" == "remove" ] -then - if [ -z "$host" ] - then - echo "Hostname not found" - echo "Enter ./01cloud --help for more options" - else - sed "/$host/d" /etc/hosts -i - echo "Hostname removed successfully" - fi +# Get the External IP of the LoadBalancer service +ENVOY_IP=$(kubectl get svc "$LB_SVC_NAME" -n envoy-gateway-system -o=jsonpath='{.status.loadBalancer.ingress[0].ip}') + +if [ -z "$ENVOY_IP" ]; then + echo "Envoy external IP not found yet. Waiting for Envoy to be ready." else - if [ -z "$host" ] - then - if [ $(whoami) == "root" ] - then - echo "Setting up host name" - printf "$network console.staging.01cloud.dev api.staging.01cloud.dev admin.staging.01cloud.dev terminal.staging.01cloud.dev" >> /etc/hosts - sleep 2 - echo "Hostname added successfully" - else - echo "Need sudo permission for running host command" - fi + echo "Envoy External IP is :: $ENVOY_IP" + # Define hostnames to append/remove from /etc/hosts + HTTPROUTE_HOSTS=( + "api.staging.01cloud.dev" + "terminal.staging.01cloud.dev" + "ws-gateway.staging.01cloud.dev" + "admin.staging.01cloud.dev" + "api-gateway.staging.01cloud.dev" + "console.staging.01cloud.dev" + ) + + if [ "${1:-}" == "remove" ]; then + # Remove all hosts from /etc/hosts + for host in "${HTTPROUTE_HOSTS[@]}"; do + if grep -q "[[:space:]]$host[[:space:]]" /etc/hosts; then + sudo sed -i "/[[:space:]]$host[[:space:]]/d" /etc/hosts + echo "Removed $host from /etc/hosts" + fi + done else - echo "Hostname already exist" - echo "$host" + # Construct single line entry with ENVOY_IP + HOSTS_LINE="$ENVOY_IP" + for host in "${HTTPROUTE_HOSTS[@]}"; do + HOSTS_LINE+=" $host" + done + + # Append the new line without removing existing entries + printf "\n%s\n" "$HOSTS_LINE" | sudo tee -a /etc/hosts > /dev/null + echo "Added hosts -> $HOSTS_LINE" fi fi diff --git a/helper/install.sh b/helper/install.sh index 8b632c3..42fcd2c 100644 --- a/helper/install.sh +++ b/helper/install.sh @@ -40,6 +40,7 @@ then echo "Payment Pod status :: $ready, sleeping for 10 seconds..." sleep 10 done + sleep 10 bash seeder/seeder.sh else echo "Need sudo permission to run this command" diff --git a/helper/setup.sh b/helper/setup.sh index c7b4f16..81b0d3e 100644 --- a/helper/setup.sh +++ b/helper/setup.sh @@ -1,3 +1,6 @@ +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +GATEWAY_DIR="$SCRIPT_DIR/../gateway" + if [ "$1" != "remote" ] then bash helper/setup_metallb.sh @@ -13,24 +16,37 @@ fi echo "Installing tekton" kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/previous/v1.4.0/release.yaml sleep 5 -echo "Installing nginx ingress controller" -kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.14.0/deploy/static/provider/cloud/deploy.yaml -while true -do - loadbalancerIP=`kubectl get svc ingress-nginx-controller -n ingress-nginx -o=jsonpath='{.status.loadBalancer.ingress[0].ip}'` - if [ ! -z "$loadbalancerIP" ] - then - break - fi - echo "Loadbalancer IP :: $loadbalancerIP, sleeping for 10 seconds..." - sleep 10 + +echo "Installing Gateway API CRDs..." +kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.1/standard-install.yaml || echo " Warning: Failed to install Gateway API CRDs" + +echo "Installing KrakenD Helm chart..." +{ + helm upgrade --install krakend "$GATEWAY_DIR/krakend" -n krakend --create-namespace --wait --timeout 10m +} || echo " Warning: KrakenD Helm install timed out, continuing..." + +echo "Installing Envoy Helm chart..." +{ + helm upgrade --install eg oci://docker.io/envoyproxy/gateway-helm --version v1.4.6 -n envoy-gateway-system --create-namespace --wait --timeout 10m --skip-crds +} || echo " Warning: Envoy Helm install timed out, continuing..." + +echo "Applying Gateway resources..." +for f in "$GATEWAY_DIR/gateway.yaml"; do + kubectl apply -f "$f" || echo " Warning: Failed to apply $f" done -while true - do - ready=`kubectl get pod -n ingress-nginx -l app.kubernetes.io/component=controller | grep controller | awk '{print $2}'` - if [ "$ready" == "1/1" ] - then - sleep 10 +# --- Wait for Envoy LoadBalancer service and get External IP (MetalLB) --- +echo "Waiting for Envoy LoadBalancer service to get an external IP..." + +while true; do + LB_SVC_NAME=$(kubectl get svc -n envoy-gateway-system \ + --field-selector spec.type=LoadBalancer \ + -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "") + + if [ -n "$LB_SVC_NAME" ]; then + ENVOY_IP=$(kubectl get svc "$LB_SVC_NAME" -n envoy-gateway-system \ + -o jsonpath='{.status.loadBalancer.ingress[0].ip}' 2>/dev/null || echo "") + if [ -n "$ENVOY_IP" ]; then + echo "Envoy LoadBalancer is ready: $LB_SVC_NAME -> $ENVOY_IP" break fi echo "Nginx status :: $ready, sleeping for 10 seconds..." diff --git a/krakend.tmpl b/krakend.tmpl new file mode 100644 index 0000000..af96765 --- /dev/null +++ b/krakend.tmpl @@ -0,0 +1,40 @@ +{ + "$schema": "https://www.krakend.io/schema/v3.json", + "version": 3, + "name": "test-api-gateway", + "timeout": "60s", + "extra_config": { + {{ include "cors_config_global.tmpl" }}, + {{ include "extra_config_monitoring.tmpl" }}, + {{ include "extra_config_logging.tmpl" }}, + "router": { + "return_error_msg": true + } + }, + "endpoints": [{{ range $idx, $endpoint := .endpoints.endpoints }}{{if $idx}},{{end}} + { + "endpoint": "{{ $endpoint.endpoint }}", + "method": "{{ $endpoint.method }}", + "input_headers": {{ marshal $endpoint.input_headers }}, + "output_encoding": "{{ $endpoint.output_encoding }}", + "extra_config": { + {{ include "auth0_validator.tmpl" }} + }, + "backend": [ + { + "is_collection": {{ if eq $endpoint.is_collection "true" }}true{{ else }}false{{ end }}, + "encoding": "json", + "host": [ + "{{ $endpoint.backend_host }}" + ], + "url_pattern": "{{ $endpoint.backend_url_pattern }}", + "extra_config": { + {{ include "rate_limit_backend.tmpl" }} + } + } + ] + } + {{ end }}, + {{ template "endpoints.tmpl" . }} + ] +}