├── .claude └── commands │ ├── improve-writing.md │ └── use-stepper.md ├── .devcontainer ├── Dockerfile ├── base.Dockerfile └── devcontainer.json ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ └── policies-doc.md ├── SECURITY.md ├── copilot-instructions.md ├── dependabot.yml └── workflows │ ├── codeql.yml │ ├── dependabot.yaml │ ├── dependency-review.yml │ ├── policies.yaml │ ├── static.yaml │ └── update-zudoku.yaml ├── .gitignore ├── .hyperlint └── config.yaml ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .sidebarignore ├── .styles ├── Zuplo │ ├── Acronyms.yml │ └── Terms.yml └── config │ ├── filters │ └── errors.expr │ └── vocabularies │ └── Base │ └── accept.txt ├── .tool-versions ├── .vale.ini ├── .vercelignore ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── CLAUDE.md ├── CONTRIBUTING.md ├── Makefile ├── README.md ├── STYLEGUIDE.md ├── cspell.json ├── docs ├── articles │ ├── accounts │ │ ├── billing.md │ │ ├── default-api-key.md │ │ ├── delete-account.md │ │ ├── managing-account-members.md │ │ ├── managing-project-members.md │ │ ├── members-and-roles.md │ │ ├── roles-and-permissions.md │ │ └── zuplo-api-keys.md │ ├── add-api-to-backstage.md │ ├── advanced-path-matching.md │ ├── api-key-administration.md │ ├── api-key-api.md │ ├── api-key-authentication.md │ ├── api-key-buckets.md │ ├── api-key-end-users.md │ ├── api-key-leak-detection.md │ ├── api-key-management.md │ ├── api-key-react-component.md │ ├── api-key-service-limits.md │ ├── archiving-requests-to-storage.md │ ├── audit-log.md │ ├── background-dispatcher.md │ ├── background-loader.md │ ├── bonus-dynamic-rate-limiting.md │ ├── bypass-policy-for-testing.md │ ├── cache.md │ ├── check-ip-address.md │ ├── cloudflare-settings.md │ ├── compatibility-dates.md │ ├── context-data.md │ ├── convert-urls-to-openapi.md │ ├── custom-audit-log-policy.md │ ├── custom-ci-cd.md │ ├── custom-cors-policy.md │ ├── custom-domains.md │ ├── custom-logging-example.md │ ├── dev-portal-adding-pages.md │ ├── dev-portal-auth.md │ ├── dev-portal-auth0-auth.md │ ├── dev-portal-clerk-auth.md │ ├── dev-portal-configuration.md │ ├── dev-portal-configuring-sidebar.md │ ├── dev-portal-create-consumer-on-auth.md │ ├── dev-portal-inject-html.md │ ├── dev-portal-json.md │ ├── dev-portal-keycloak-auth.md │ ├── dev-portal-setup.md │ ├── dev-portal-supabase-auth.md │ ├── dev-portal-theme.md │ ├── developer-api.md │ ├── developer-portal.md │ ├── environment-variables.md │ ├── environments.md │ ├── fastly-zuplo-host-setup.md │ ├── gke-with-upstream-auth-policy.md │ ├── going-live.md │ ├── graphql-security.md │ ├── handling-form-data.md │ ├── hooks.md │ ├── hosting-options.md │ ├── http-problems.md │ ├── lazy-load-configuration-into-cache.md │ ├── lets-encrypt-ssl-trust-chain-update.md │ ├── limits.md │ ├── local-development-debugging.md │ ├── local-development-env-variables.md │ ├── local-development-installing-packages.md │ ├── local-development-routes-designer.md │ ├── local-development-services.md │ ├── local-development-troubleshooting.md │ ├── local-development.mdx │ ├── log-export.md │ ├── log-plugin-aws-cloudwatch.md │ ├── log-plugin-datadog.md │ ├── log-plugin-dynatrace.md │ ├── log-plugin-gcp.md │ ├── log-plugin-loki.md │ ├── log-plugin-new-relic.md │ ├── log-plugin-splunk.md │ ├── log-plugin-sumo.md │ ├── log-plugin-vmware-log-insight.md │ ├── logging.md │ ├── metrics-plugins.md │ ├── monetization-dev-portal-setup.md │ ├── monetization-glossary.md │ ├── monetization-limitations.md │ ├── monetization-policy-setup.md │ ├── monetization-programmatic-quotas.md │ ├── monetization-subscription.md │ ├── monetization-webhook-setup.md │ ├── monetization.md │ ├── monitoring-your-gateway.md │ ├── multiple-auth-policies.md │ ├── node-modules.md │ ├── non-standard-ports.md │ ├── not-found-handler.md │ ├── oauth-authentication.md │ ├── open-api.md │ ├── opentelemetry.md │ ├── per-user-rate-limits-using-db.md │ ├── performance-testing.md │ ├── plugin-akamai-api-security.md │ ├── plugin-azure-blob.md │ ├── plugin-azure-event-hubs.md │ ├── plugin-hydrolix-traffic-peak.md │ ├── policies.md │ ├── rename-or-move-project.md │ ├── reusing-code.md │ ├── rick-and-morty-api-developer-portal-example.md │ ├── route-raw.md │ ├── routes-json-deprecation-for-openapi.md │ ├── routing.md │ ├── runtime-behaviors.md │ ├── runtime-extensions.md │ ├── safely-clone-a-request-or-response.md │ ├── secure-tunnel.md │ ├── securing-backend-shared-secret.md │ ├── securing-your-backend.md │ ├── security.md │ ├── source-control-setup-bitbucket.md │ ├── source-control-setup-github.mdx │ ├── source-control-setup-gitlab.md │ ├── source-control.md │ ├── sso-azure-ad.md │ ├── sso-faq.md │ ├── sso-okta.md │ ├── sso.md │ ├── step-1-setup-basic-gateway.md │ ├── step-2-add-rate-limiting.md │ ├── step-3-add-api-key-auth.md │ ├── step-4-deploying-to-the-edge.mdx │ ├── stripe-monetization-plugin.md │ ├── support.md │ ├── testing-api-key-authentication.md │ ├── testing-graphql.md │ ├── testing.md │ ├── tsconfig.md │ ├── tunnel-setup.md │ ├── tunnel-troubleshooting.md │ ├── update-zup-in-github-action.md │ ├── use-openapi-extension-data.md │ ├── users │ │ ├── multifactor-authentication.md │ │ └── profile.md │ ├── versioning-on-zuplo.md │ ├── waf-ddos-aws-waf-shield.md │ ├── waf-ddos-fastly.md │ ├── waf-ddos.md │ ├── web-crypto-apis.md │ ├── web-standard-apis.md │ ├── what-is-zuplo.md │ ├── who-uses-and-why.md │ ├── zone-cache.md │ ├── zp-body-removed.md │ ├── zuplo-context.md │ ├── zuplo-id-token.md │ ├── zuplo-json.md │ └── zuplo-request.md ├── ask.mdx ├── cli │ ├── analytics.md │ ├── authentication.md │ ├── connectivity.md │ ├── convert.md │ ├── deployments.md │ ├── installation.md │ ├── local-development.md │ ├── overview.md │ ├── project.md │ ├── test.md │ ├── tunnels.md │ └── variables.md ├── conferences │ └── conference-prize-terms.md ├── dedicated │ ├── akamai │ │ └── cdn.md │ ├── architecture.md │ ├── custom-domains.md │ ├── getting-started.md │ ├── networking.md │ ├── overview.md │ └── source-control.md ├── dev-portal │ ├── introduction.md │ ├── migration.md │ ├── node-modules.md │ ├── ping-identity.md │ └── updating.md ├── errors.mdx ├── errors │ ├── bad-request.md │ ├── build-error.md │ ├── fatal-project-error.md │ ├── get-head-body-error.md │ ├── invalid-settings-dev-portal-auth-audience.md │ ├── invalid-settings-dev-portal-auth.md │ ├── main-mod-error.md │ ├── no-project-set.md │ ├── not-found.md │ ├── schema-validation-failed.md │ ├── settings-to-dev-portal-migration.md │ ├── system-configuration-error.md │ ├── unauthorized.md │ └── unknown-error.md ├── handlers │ ├── aws-lambda.md │ ├── custom-handler.md │ ├── index.mdx │ ├── mcp-server.md │ ├── openapi.md │ ├── redirect.md │ ├── system-handlers.md │ ├── url-forward.md │ ├── url-rewrite.md │ └── websocket-handler.md └── sample-apis.md ├── images.yaml ├── next-env.d.ts ├── package-lock.json ├── package.json ├── policies ├── ab-test-inbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── ab-test-outbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── acl-policy-inbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── archive-request-aws-s3-inbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── archive-request-azure-storage-inbound │ ├── doc.md │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── archive-request-gcp-storage-inbound │ ├── doc.md │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── archive-response-aws-s3-outbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── archive-response-azure-storage-outbound │ ├── doc.md │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── config.json ├── custom-code-inbound │ ├── doc.md │ ├── icon.svg │ ├── intro.md │ └── schema.json ├── custom-code-outbound │ ├── doc.md │ ├── icon.svg │ ├── intro.md │ └── schema.json ├── hmac-auth-inbound │ ├── doc.md │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── ip-restriction-inbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── rbac-policy-inbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── shared.json ├── transform-body-inbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json └── transform-body-outbound │ ├── icon.svg │ ├── intro.md │ ├── policy.ts │ └── schema.json ├── public ├── media │ ├── add-api-to-backstage │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-5.png │ │ └── image-6.png │ ├── advanced-new-project.png │ ├── api-key-administration │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-5.png │ │ └── image.png │ ├── api-key-consumers.png │ ├── api-key-dev-portal.png │ ├── api-key-end-users │ │ └── 98a3d62f-1b61-4f41-8bac-665e0b02309e.png │ ├── api-key-react-component │ │ └── cedd8ad0-9433-4433-80f6-86545ba0d41a.png │ ├── api-keys │ │ └── zuplo-api-keys.png │ ├── app-user-zuplo-api.png │ ├── aws-lambda │ │ └── aa9dc09d-6636-4a8b-94bc-ee28bb779fc8.png │ ├── bypass-policy-for-testing │ │ └── image.png │ ├── change-environments.png │ ├── custom-domains │ │ ├── a40beef2-9eed-44fd-a41e-3f337afbaee2.png │ │ ├── image-1.png │ │ └── image.png │ ├── dev-portal-auth0-auth │ │ ├── 0aaa56b6-37c4-4c87-ac62-d86bc52047e3.png │ │ ├── 16c9b4a0-db9b-4b8c-a16f-00ce5e08071e.png │ │ ├── 359f4a6c-4dd9-48c9-b8a3-27e70aa459c0.png │ │ ├── d91471bd-5897-463e-805c-35abba294616.png │ │ ├── image-1.png │ │ └── image.png │ ├── dev-portal-clerk-auth │ │ └── image.png │ ├── dev-portal-create-consumer-on-auth │ │ ├── 0daf1916-3fac-4bed-b00d-55694236619c.png │ │ ├── 2cf32602-9716-4b8d-9641-3830500e01c1.png │ │ ├── a46eabb3-4c22-476b-acc3-c5ab330d451e.png │ │ └── a928c966-1636-47ad-af23-9f265e9eb590.png │ ├── dev-portal-keycloak-auth │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-5.png │ │ ├── image-6.png │ │ └── image.png │ ├── developer-api │ │ └── b2cd0a7b-64f0-4e5d-90eb-c9efcf97d34a.png │ ├── developer-portal │ │ ├── 6453cd75-6d0c-4e7f-8a6c-5852a06b8c3b.png │ │ ├── adding-pages │ │ │ ├── docs-folder.png │ │ │ └── style-preview.png │ │ ├── configuration │ │ │ └── faker.png │ │ ├── overview │ │ │ └── developer-portal.png │ │ └── setup │ │ │ ├── dev-portal-auth0.png │ │ │ └── dev-portal-okta.png │ ├── disconnect-project.png │ ├── embed │ │ └── getting-started │ │ │ ├── api-key-consumers.png │ │ │ ├── auth-policy.png │ │ │ ├── open-portal.png │ │ │ ├── route.png │ │ │ ├── settings.png │ │ │ ├── test-api.png │ │ │ └── test-console.png │ ├── environment-variables │ │ └── bec84962-0139-4371-b3fd-a30e70860169.png │ ├── environments.png │ ├── environments │ │ └── image.png │ ├── getting-started-hello-world │ │ ├── default-route.png │ │ ├── project-url.png │ │ ├── request-handler-link.png │ │ └── test-client.png │ ├── getting-started-old │ │ ├── 2021-11-15_15.06.39.gif │ │ ├── 2021-11-15_15.27.35.gif │ │ ├── 2021-11-15_15.44.11.gif │ │ ├── 2021-12-02_20.39.21.gif │ │ ├── Untitled.png │ │ ├── Untitled_1.png │ │ └── Untitled_2.png │ ├── getting-started │ │ ├── add-policy.png │ │ ├── add-route.png │ │ ├── path.png │ │ ├── rate-limit.png │ │ ├── rewrite.png │ │ ├── route-matched.png │ │ ├── route-tester.png │ │ └── test-client.png │ ├── github-app-install-perms.png │ ├── github-deployment-in-progress.png │ ├── github-deployment-succeed.png │ ├── github-project-environments.png │ ├── github-settings-connected.png │ ├── github-settings.png │ ├── gke-with-upstream-auth-policy │ │ ├── 307e9026-d77e-4efd-9fc1-4c45ead963f1.png │ │ ├── 49760fbb-6eb4-46f9-a638-ac078fe85aab.png │ │ ├── 770db332-ad94-41c6-a6f8-1498578fb78c.png │ │ ├── a2ee889a-54c1-4e00-953b-1053c619ce52.png │ │ ├── cd0b20d3-c109-4775-9fa0-1b3e391bcb84.png │ │ ├── diagram.svg │ │ └── ecadec32-753b-4716-afb5-fafa69c91499.png │ ├── guides │ │ ├── archiving-requests-to-storage │ │ │ ├── 2021-11-21_22.51.33.gif │ │ │ ├── Untitled.png │ │ │ ├── Untitled_1.png │ │ │ └── Untitled_2.png │ │ ├── proxy-a-simple-get-request │ │ │ ├── 2021-11-21_20.12.10.gif │ │ │ └── 2021-11-21_20.34.38.gif │ │ ├── safely-cone-a-request-or-response │ │ │ └── Untitled.png │ │ ├── setup-jwt-auth-with-auth0 │ │ │ ├── CleanShot_2021-11-29_at_16.23.562x.png │ │ │ ├── CleanShot_2021-11-29_at_16.30.402x.png │ │ │ ├── CleanShot_2021-11-29_at_16.35.432x.png │ │ │ ├── CleanShot_2021-11-29_at_16.47.242x.png │ │ │ ├── CleanShot_2021-11-29_at_16.51.592x.png │ │ │ ├── CleanShot_2021-11-29_at_16.55.432x.png │ │ │ ├── CleanShot_2021-11-29_at_17.03.342x.png │ │ │ ├── CleanShot_2021-11-29_at_17.06.082x.png │ │ │ ├── CleanShot_2021-11-29_at_17.17.072x.png │ │ │ ├── CleanShot_2021-11-29_at_17.39.352x.png │ │ │ ├── CleanShot_2021-11-29_at_17.41.042x.png │ │ │ ├── CleanShot_2021-11-29_at_17.44.552x.png │ │ │ ├── Untitled.png │ │ │ └── Untitled_1.png │ │ └── testing-graphql │ │ │ └── test-request.png │ ├── handling-form-data │ │ └── 2d372851-af24-429b-8eeb-cb880589f30d.png │ ├── introduction │ │ └── image.png │ ├── local-development-debugging │ │ └── image.png │ ├── local-development-routes-designer │ │ ├── 1a3594c1-18a1-4416-b7c7-05585b253dca.png │ │ └── 8108441d-5d60-4ff6-9b1b-2791f9a971f5.png │ ├── local-development.png │ ├── local-development │ │ └── 3bd6b736-20d7-4ac4-805c-d7fd810dea28.png │ ├── managed-dedicated-akamai │ │ ├── api_gateway_origin_url.png │ │ ├── default_rule_dev_portal_config.png │ │ ├── dev_portal_cdn_caching_behavior.png │ │ ├── dev_portal_cdn_wildcard_hostname.png │ │ ├── geolocation.png │ │ ├── multiple_hostname_domains.png │ │ └── regex-behaviour.png │ ├── managing-account-members │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ └── image.png │ ├── managing-project-members │ │ ├── image-1.png │ │ ├── image-2.png │ │ └── image.png │ ├── mcp │ │ └── portal-handler.png │ ├── monetization-dev-portal-setup │ │ ├── 0b7bc4e5-9e92-4b24-a4d5-16fe389bec8f.png │ │ ├── aa34975a-2906-4869-9dd6-bd13e5b0dcda.png │ │ ├── image-1a.png │ │ ├── image-2a.png │ │ ├── image-3a.png │ │ └── image.png │ ├── monetization-policy-setup │ │ ├── image-1.png │ │ ├── image-2.png │ │ └── image.png │ ├── monetization-webhook-setup │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ └── image.png │ ├── monetization │ │ └── 353fb3d5-f019-443b-92d6-a4127814b1f0.png │ ├── monitoring-your-gateway │ │ └── health-checks.png │ ├── new-api-key-consumer.png │ ├── non-standard-ports │ │ └── image.png │ ├── open-api │ │ ├── 28512107-8c41-4974-8319-c9ec50734331.png │ │ ├── image-1.png │ │ └── image.png │ ├── opentelemetry │ │ └── image-1.png │ ├── path-matching │ │ ├── route-test-result.png │ │ └── route-tester.png │ ├── performance.png │ ├── ping-identity │ │ └── image.png │ ├── pipedream.png │ ├── policies │ │ ├── 103f37f8-9801-4f37-8962-d516b9e12fbd.png │ │ ├── 2021-11-21_21.32.35.gif │ │ ├── 2021-11-21_21.44.35.gif │ │ ├── Untitled.png │ │ └── policy-diagram1.png │ ├── portal │ │ ├── Untitled.png │ │ └── route-path.png │ ├── quickstarts │ │ ├── create-new-empty-module.gif │ │ ├── gateway-over-airtable │ │ │ ├── airtable-curl.png │ │ │ ├── airtable-start-from-template.png │ │ │ ├── environment-variables.png │ │ │ ├── new-request-handler.png │ │ │ ├── route-path.png │ │ │ └── test-route.png │ │ ├── gateway-over-salesforce │ │ │ ├── environment-variables.png │ │ │ ├── function-picker.png │ │ │ ├── route-path.png │ │ │ └── test-route.png │ │ ├── instant-developer-portal │ │ │ ├── dev-portal-example.png │ │ │ └── dev-portal-link.png │ │ └── per-customer-rate-limits │ │ │ ├── add-route.png │ │ │ └── rate-limit-policy.png │ ├── readme │ │ ├── create-job.png │ │ ├── create_review_app.png │ │ ├── deployed.png │ │ ├── job-settings.png │ │ ├── requested_deployment.png │ │ └── structure.png │ ├── rename-or-move-project │ │ └── image.png │ ├── safely-clone-a-request-or-response │ │ └── f70d62c0-8bdd-4476-9fd6-fe2dad7ae3a2.png │ ├── scale.png │ ├── secure-tunnel │ │ └── fefdc7fb-f3b6-4908-8485-3d20cb769cfd.png │ ├── securing-backend-shared-secret │ │ ├── image-1.png │ │ └── image.png │ ├── securing-your-backend │ │ └── b7290dd1-43fa-49f8-8629-6b4899e2e9f3.png │ ├── source-control-setup-github │ │ ├── 0a9932eb-7c16-49cf-9720-0beb450724eb.png │ │ ├── 26fa58b6-7a5a-4627-bd9f-246972639f12.png │ │ ├── d6194a80-b6d6-429e-85a6-ae1cb4a3375e.png │ │ ├── eef76bd7-4d26-4f86-96e8-89ebede03beb.png │ │ └── ff482269-9aa2-44c3-8266-b2682b3d6ea5.png │ ├── source-control │ │ ├── image-1.png │ │ └── image.png │ ├── step-1-setup-basic-gateway │ │ ├── add-route.png │ │ ├── env-var.png │ │ ├── image-1.png │ │ ├── image-10.png │ │ ├── image-12.png │ │ ├── image-13.png │ │ ├── image-14.png │ │ ├── image-15.png │ │ ├── image-16.png │ │ ├── image-17.png │ │ ├── image-18.png │ │ ├── image-19.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-5.png │ │ ├── image-6.png │ │ ├── image-7.png │ │ ├── image-8.png │ │ ├── image-9.png │ │ └── image.png │ ├── step-2-add-api-key-auth │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-5.png │ │ ├── image-6.png │ │ ├── image-7.png │ │ ├── image-8.png │ │ ├── image-9.png │ │ └── image.png │ ├── step-2-add-rate-limiting │ │ ├── choose-rate-limiter.png │ │ ├── create-policy.png │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-5.png │ │ ├── image-6.png │ │ ├── image-7.png │ │ ├── image.png │ │ └── test-api.png │ ├── step-3-add-api-key-auth │ │ ├── choose-policy.png │ │ ├── image-1.gif │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-6.png │ │ ├── image-7.png │ │ ├── image.gif │ │ ├── image.png │ │ └── test-policy.png │ ├── step-3-add-rate-limiting │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ └── image.png │ ├── step-4-deploying-to-the-edge │ │ ├── 0a9932eb-7c16-49cf-9720-0beb450724eb.png │ │ ├── 26fa58b6-7a5a-4627-bd9f-246972639f12.png │ │ ├── 51a25aa0-cdce-4112-ba2e-e56f42a9044d.png │ │ ├── 60cdeb36-ab7d-42f9-a8c2-1f7931f80ca6.png │ │ ├── 875b164d-b7ef-4f46-9cdb-8d59354b5b93.png │ │ ├── d6194a80-b6d6-429e-85a6-ae1cb4a3375e.png │ │ ├── e8c68072-35dc-462a-8161-7a44e40fa1df.png │ │ ├── eef76bd7-4d26-4f86-96e8-89ebede03beb.png │ │ ├── ff482269-9aa2-44c3-8266-b2682b3d6ea5.png │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-5.png │ │ ├── image-6.png │ │ ├── image-7.png │ │ ├── image-8.png │ │ ├── image-9.png │ │ └── image.png │ ├── stripe-monetization-plugin │ │ └── image.png │ ├── supabase-auth │ │ ├── copy-key-updated.png │ │ ├── dev-portal-loaded.png │ │ ├── dev-portal-updated.png │ │ ├── email.png │ │ ├── initial-login.png │ │ ├── supabase-github-login.gif │ │ ├── supabase-login.gif │ │ └── supabase-site-url.png │ ├── testing │ │ ├── 3f3292a3-075c-4568-afb2-00c24e704f03.png │ │ └── a1d7c322-125d-4d80-add0-fbfb65ccfea1.png │ ├── tsconfig │ │ └── image.png │ ├── tunnel-setup │ │ ├── 0c91be91-a591-4cef-ac29-d266e8a3181e.png │ │ └── 16b93099-511d-435b-af85-167fab5814b2.png │ ├── url-rewrite-handler-selection.png │ ├── user-zuplo-api.png │ ├── versioning-on-zuplo │ │ ├── multiple-apis-in-docs.png │ │ └── multiple-openapi-files.png │ ├── what-is-zuplo │ │ ├── 9a9a490a-9bda-46f6-bcc8-c2e67809c0af.png │ │ ├── 9ef54160-c412-4126-a275-4c2ccd3935ff.png │ │ ├── zuplo-connect-light.png │ │ └── zuplo-distributed-light.png │ └── zuplo-api-keys │ │ ├── image-1.png │ │ ├── image-2.png │ │ ├── image-3.png │ │ ├── image-4.png │ │ ├── image-5.png │ │ ├── image-6.png │ │ └── image.png ├── policies │ ├── ab-test-inbound.svg │ ├── ab-test-outbound.svg │ ├── acl-policy-inbound.svg │ ├── amberflo-metering-inbound.svg │ ├── api-key-auth-inbound.svg │ ├── api-key-inbound.svg │ ├── archive-request-aws-s3-inbound.svg │ ├── archive-request-azure-storage-inbound.svg │ ├── archive-request-gcp-storage-inbound.svg │ ├── archive-response-aws-s3-outbound.svg │ ├── archive-response-azure-storage-outbound.svg │ ├── aserto-authz-inbound.svg │ ├── audit-log-inbound.svg │ ├── auth0-jwt-auth-inbound.svg │ ├── authzen-inbound.svg │ ├── axiomatics-authz-inbound.svg │ ├── basic-auth-inbound.svg │ ├── bot-detection-inbound.svg │ ├── brownout-inbound.svg │ ├── caching-inbound.svg │ ├── change-method-inbound.svg │ ├── clear-headers-inbound.svg │ ├── clear-headers-outbound.svg │ ├── clerk-jwt-auth-inbound.svg │ ├── cognito-jwt-auth-inbound.svg │ ├── complex-rate-limit-inbound.svg │ ├── composite-inbound.svg │ ├── composite-outbound.svg │ ├── curity-phantom-token-inbound.svg │ ├── custom-code-inbound.svg │ ├── custom-code-outbound.svg │ ├── firebase-jwt-inbound.svg │ ├── formdata-to-json-inbound.svg │ ├── geo-filter-inbound.svg │ ├── graphql-complexity-limit-inbound.svg │ ├── graphql-disable-introspection-inbound.svg │ ├── hmac-auth-inbound.svg │ ├── ip-restriction-inbound.svg │ ├── jwt-scopes-inbound.svg │ ├── ldap-auth-inbound.svg │ ├── mock-api-inbound.svg │ ├── moesif-inbound.svg │ ├── monetization-inbound.svg │ ├── mtls-auth-inbound.svg │ ├── okta-fga-authz-inbound.svg │ ├── okta-jwt-auth-inbound.svg │ ├── open-id-jwt-auth-inbound.svg │ ├── openfga-authz-inbound.svg │ ├── prompt-injection-outbound.svg │ ├── propel-auth-jwt-inbound.svg │ ├── quota-inbound.svg │ ├── rate-limit-inbound.svg │ ├── rbac-policy-inbound.svg │ ├── readme-metrics-inbound.svg │ ├── remove-headers-inbound.svg │ ├── remove-headers-outbound.svg │ ├── remove-query-params-inbound.svg │ ├── replace-string-outbound.svg │ ├── request-size-limit-inbound.svg │ ├── request-validation-inbound.svg │ ├── require-origin-inbound.svg │ ├── secret-masking-outboud.svg │ ├── semantic-cache-inbound.svg │ ├── set-body-inbound.svg │ ├── set-headers-inbound.svg │ ├── set-headers-outbound.svg │ ├── set-query-params-inbound.svg │ ├── set-status-outbound.svg │ ├── sleep-inbound.svg │ ├── stripe-webhook-verification-inbound.svg │ ├── supabase-jwt-auth-inbound.svg │ ├── transform-body-inbound.svg │ ├── transform-body-outbound.svg │ ├── upstream-azure-ad-service-auth-inbound.svg │ ├── upstream-firebase-admin-auth-inbound.svg │ ├── upstream-firebase-user-auth-inbound.svg │ ├── upstream-gcp-federated-auth-inbound.svg │ ├── upstream-gcp-jwt-inbound.svg │ ├── upstream-gcp-service-auth-inbound.svg │ ├── validate-json-schema-inbound.svg │ ├── web-bot-auth-inbound.svg │ └── xml-to-json-outbound.svg ├── styles │ └── inkeep.css ├── zuplo-dark.svg └── zuplo-light.svg ├── redirects.mjs ├── scripts ├── find-unlinked-docs.mjs ├── fix-markdown.ts ├── generate-errors.ts ├── generate-policies.ts ├── get-calendly-event-uuid.mjs ├── get-policies.sh ├── get-zudoku.sh ├── screenshots.sh ├── update-api.mjs ├── update-zudoku-docs.mts ├── update-zudoku-sidebar.mts ├── update_images.py └── verify-redirects.mjs ├── sidebar.ts ├── sidebar.zudoku.json ├── src ├── BundlesTable.tsx ├── DocusaurusDocsLicense.tsx ├── EmbeddedChat.tsx ├── EnterpriseFeature.tsx ├── GithubButton.tsx ├── HeadNavigation.tsx ├── PolicyOverview.tsx ├── ZupIt.tsx ├── bundles.issues.tsx ├── components.tsx ├── diagrams.css ├── diagrams │ ├── CustomerIngressWithManagedDedicated.tsx │ ├── ManagedDedicatedArchitecture.tsx │ ├── ManagedDedicatedDeploymentArchitecture.tsx │ ├── ManagedDedicatedEnvironmentsArchitecture.tsx │ ├── ManagedDedicatedMultiRegionArchitecture.tsx │ ├── ZuploIngressWithManagedDedicated.tsx │ └── common │ │ ├── AnimatedSVGEdge.tsx │ │ ├── BaseNode.tsx │ │ ├── CustomNode.tsx │ │ ├── Diagram.tsx │ │ ├── DiagramBuilder.ts │ │ ├── Icon.tsx │ │ ├── LabeledGroup.tsx │ │ └── index.ts ├── utils.ts └── zudoku-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── vercel.json ├── vite.config.ts └── zudoku.config.tsx /.claude/commands/improve-writing.md: -------------------------------------------------------------------------------- 1 | Rewrite the documents in the `/docs` folder to enhance their quality and 2 | readability. Follow the guidelines outlined in the `CLAUDE.md` file. 3 | 4 | The target audience is software developers who build and manage APIs. 5 | 6 | Adopt a tone that is friendly, professional, and informative. Ensure the writing 7 | is concise, clear, and free of unnecessary jargon or complexity. Focus on 8 | delivering practical, actionable information that developers can easily apply in 9 | their work. 10 | 11 | Structure the documents with clear headings and subheadings to guide readers 12 | effectively. Aim for an engaging and encouraging style that motivates developers 13 | to explore and leverage the features of the Zuplo platform. 14 | 15 | When using :::tip, :::info, or :::warning, etc, ensure that the content is 16 | formatted such that the start and end blocks (i.e. `:::tip` and `:::`) have a 17 | line break before and after. 18 | -------------------------------------------------------------------------------- /.claude/commands/use-stepper.md: -------------------------------------------------------------------------------- 1 | Change the tutorial to use the Stepper react component. This is done by 2 | reformatting the headings that start with a number and wrapping them in the 3 | stepper. 4 | 5 | For any markdown admonitions, ensure that the start and end blocks (i.e. 6 | `:::tip` and `:::`) have a line break before and after so that code formatting 7 | works. 8 | 9 | Change the headings to use `1. **Heading**` format instead of ## 10 | 11 | Make sure to indent four spaces the content inside the bullet points so that the 12 | markdown is formatted correctly. 13 | 14 | 15 | 16 | 1. **Identify the Problem** 17 | 1. **Plan Your Project** 18 | 1. **Build Your Solution** 19 | 1. **Test and Deploy** 20 | 21 | 22 | -------------------------------------------------------------------------------- /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- 1 | # [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 18, 16, 14, 18-bullseye, 16-bullseye, 14-bullseye, 18-buster, 16-buster, 14-buster 2 | ARG VARIANT=18-bullseye 3 | FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT} 4 | 5 | # [Optional] Uncomment this section to install additional OS packages. 6 | # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ 7 | # && apt-get -y install --no-install-recommends 8 | 9 | # [Optional] Uncomment if you want to install an additional version of node using nvm 10 | # ARG EXTRA_NODE_VERSION=10 11 | # RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}" 12 | 13 | # [Optional] Uncomment if you want to install more global node modules 14 | # RUN su node -c "npm install -g " 15 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.png filter=lfs diff=lfs merge=lfs -text 2 | *.jpg filter=lfs diff=lfs merge=lfs -text 3 | *.jpeg filter=lfs diff=lfs merge=lfs -text 4 | *.gif filter=lfs diff=lfs merge=lfs -text 5 | *.pdf filter=lfs diff=lfs merge=lfs -text 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/policies-doc.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Policies Doc 3 | about: File a bug or suggestion for a policy 4 | title: "" 5 | labels: "" 6 | assignees: "" 7 | --- 8 | 9 | 10 | -------------------------------------------------------------------------------- /.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | If you have a security concern or believe you have found a vulnerability in any 2 | part of Zuplo please contact us immediately by emailing us at 3 | security@zuplo.com. 4 | -------------------------------------------------------------------------------- /.github/copilot-instructions.md: -------------------------------------------------------------------------------- 1 | ## Articles 2 | 3 | For all markdown files in the `/docs` folder use the following guidelines: 4 | 5 | The target audience is software developers who build and manage APIs. 6 | 7 | Adopt a tone that is friendly, professional, and informative. Ensure the writing 8 | is concise, clear, and free of unnecessary jargon or complexity. Focus on 9 | delivering practical, actionable information that developers can easily apply in 10 | their work. 11 | 12 | Structure the documents with clear headings and subheadings to guide readers 13 | effectively. Aim for an engaging and encouraging style that motivates developers 14 | to explore and leverage the features of the Zuplo platform. 15 | 16 | When using :::tip, :::info, or :::warning, etc, ensure that the content is 17 | formatted such that the start and end blocks (i.e. `:::tip` and `:::`) have a 18 | line break before and after. 19 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | registries: 3 | npm-github: 4 | type: npm-registry 5 | url: https://npm.pkg.github.com 6 | token: ${{secrets.GH_NPM_PACKAGE_READ_TOKEN}} 7 | updates: 8 | - package-ecosystem: github-actions 9 | directory: / 10 | schedule: 11 | interval: weekly 12 | - package-ecosystem: npm 13 | directory: / 14 | registries: 15 | - npm-github 16 | schedule: 17 | interval: weekly 18 | groups: 19 | eslint: 20 | patterns: 21 | - "*eslint*" 22 | prettier: 23 | patterns: 24 | - "*prettier*" 25 | -------------------------------------------------------------------------------- /.github/workflows/dependabot.yaml: -------------------------------------------------------------------------------- 1 | name: Dependabot auto-approve 2 | on: pull_request 3 | 4 | permissions: 5 | pull-requests: write 6 | 7 | jobs: 8 | dependabot: 9 | runs-on: ubuntu-latest 10 | if: github.actor == 'dependabot[bot]' 11 | steps: 12 | - name: Dependabot metadata 13 | id: metadata 14 | uses: dependabot/fetch-metadata@v2 15 | with: 16 | github-token: "${{ secrets.GITHUB_TOKEN }}" 17 | - name: Approve a PR 18 | run: gh pr review --approve "$PR_URL" 19 | env: 20 | PR_URL: ${{github.event.pull_request.html_url}} 21 | GH_TOKEN: ${{secrets.GITHUB_TOKEN}} 22 | -------------------------------------------------------------------------------- /.github/workflows/dependency-review.yml: -------------------------------------------------------------------------------- 1 | # Dependency Review Action 2 | # 3 | # This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging. 4 | # 5 | # Source repository: https://github.com/actions/dependency-review-action 6 | # Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement 7 | name: "Dependency Review" 8 | on: [pull_request] 9 | 10 | permissions: 11 | contents: read 12 | 13 | jobs: 14 | dependency-review: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: "Checkout Repository" 18 | uses: actions/checkout@v4 19 | - name: "Dependency Review" 20 | uses: actions/dependency-review-action@v4 21 | -------------------------------------------------------------------------------- /.hyperlint/config.yaml: -------------------------------------------------------------------------------- 1 | content_dir: /docs 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | //npm.pkg.github.com/:_authToken=${GITHUB_NPM_TOKEN} 2 | @zuplo:registry=https://npm.pkg.github.com -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 20 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | _redirects -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "overrides": [ 3 | { 4 | "files": "*.md", 5 | "options": { 6 | "proseWrap": "always" 7 | } 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /.sidebarignore: -------------------------------------------------------------------------------- 1 | policies/validate-json-schema-inbound 2 | policies/api-key-auth-inbound 3 | sample-apis 4 | conferences/conference-prize-terms -------------------------------------------------------------------------------- /.styles/Zuplo/Acronyms.yml: -------------------------------------------------------------------------------- 1 | extends: conditional 2 | message: "'%s' has no definition." 3 | link: https://docs.microsoft.com/en-us/style-guide/acronyms 4 | level: suggestion 5 | ignorecase: false 6 | # Ensures that the existence of 'first' implies the existence of 'second'. 7 | first: '\b([A-Z]{3,5})\b' 8 | second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)' 9 | # ... with the exception of these: 10 | exceptions: 11 | - CDN 12 | - TLS 13 | - WAF 14 | - API 15 | - VPC 16 | - MCP 17 | -------------------------------------------------------------------------------- /.styles/Zuplo/Terms.yml: -------------------------------------------------------------------------------- 1 | extends: substitution 2 | message: "Prefer '%s' over '%s'." 3 | # term preference should be based on microsoft style guide, such as 4 | link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/adapter 5 | level: warning 6 | ignorecase: true 7 | action: 8 | name: replace 9 | swap: 10 | zup: Zuplo Project 11 | zups: Zuplo projects 12 | -------------------------------------------------------------------------------- /.styles/config/filters/errors.expr: -------------------------------------------------------------------------------- 1 | .Level in ["error"] -------------------------------------------------------------------------------- /.styles/config/vocabularies/Base/accept.txt: -------------------------------------------------------------------------------- 1 | [Zz]uplo 2 | [Zz]udoku 3 | backend 4 | failover 5 | onboarding 6 | asdf 7 | VMWare 8 | Datadog 9 | Dynatrace 10 | URLPattern 11 | APIs 12 | WAFs 13 | liveness 14 | @zuplo.com 15 | AWS 16 | (?i)JSON 17 | MDN 18 | Lamdba 19 | routes.oas.json 20 | Dev 21 | Vite 22 | we have 23 | Inkeep 24 | VPCs 25 | GCP 26 | URL 27 | chai 28 | SLA 29 | SLAs 30 | OAuth 31 | Supabase 32 | Okta 33 | Cognito 34 | Fastly 35 | [Hh]ostname 36 | Crypto 37 | Equinix 38 | VMs 39 | serverless 40 | Astra 41 | [Bb]ackend 42 | [Mm]ockbin 43 | Grafana 44 | Xata 45 | monorepo 46 | subfolder 47 | [Tt]odos 48 | [Ss]ubrequests 49 | DataDog 50 | Checkly 51 | Keycloak 52 | [Mm]isconfigured 53 | [Mm]iddleware 54 | enqueued 55 | severities 56 | [Pp]olyfill 57 | Blockdaemon 58 | Docusaurus 59 | frontmatter 60 | Fastify -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 22.13.1 2 | python 3.13.0 -------------------------------------------------------------------------------- /.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = .styles 2 | 3 | MinAlertLevel = suggestion 4 | 5 | Vocab = Base 6 | Packages = Microsoft, MDX 7 | 8 | [*.{md,mdx}] 9 | BasedOnStyles = Vale, Microsoft, Zuplo 10 | Microsoft.Accessibility = NO 11 | Microsoft.Units = NO -------------------------------------------------------------------------------- /.vercelignore: -------------------------------------------------------------------------------- 1 | .github 2 | .vscode 3 | README.md 4 | .eslintrc 5 | .prettierignore 6 | .nvmrc 7 | checkly.config.ts 8 | CONTRIBUTING.md 9 | prettier.config.js 10 | **checks** 11 | 12 | dist/docs/server/\* 13 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Next.js: debug server-side", 6 | "type": "node-terminal", 7 | "request": "launch", 8 | "command": "npm run dev" 9 | }, 10 | { 11 | "name": "Next.js: debug client-side", 12 | "type": "chrome", 13 | "request": "launch", 14 | "url": "http://localhost:3000" 15 | }, 16 | { 17 | "name": "Next.js: debug full stack", 18 | "type": "node-terminal", 19 | "request": "launch", 20 | "command": "npm run dev", 21 | "serverReadyAction": { 22 | "pattern": "- Local:.+(https?://.+)", 23 | "uriFormat": "%s", 24 | "action": "debugWithChrome" 25 | } 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.defaultFormatter": "esbenp.prettier-vscode", 3 | "npm.packageManager": "npm", 4 | "editor.formatOnSave": true, 5 | "search.exclude": { 6 | "**/node_modules": true, 7 | "**/package-lock.json": true, 8 | "**/bower_components": true, 9 | "**/*.code-search": true, 10 | "**/.next": true 11 | }, 12 | "[markdown]": { 13 | "editor.wordWrap": "off", 14 | "editor.wordWrapColumn": 80 15 | }, 16 | "markdown.validate.enabled": true, 17 | "markdown.copyFiles.destination": { 18 | "/docs/*/*": "../../public/media/${documentBaseName}/image.${fileExtName}", 19 | "/docs/*/*/*": "../../../public/media/${documentBaseName}/image.${fileExtName}", 20 | "/docs/*/*/*/*": "../../../../public/media/${documentBaseName}/image.${fileExtName}" 21 | }, 22 | "files.associations": { 23 | "*.mdx": "markdown" 24 | }, 25 | "cSpell.words": [ 26 | "Amberflo", 27 | "asns", 28 | "Hydrolix", 29 | "Moesif", 30 | "overridable", 31 | "Supabase" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "type": "npm", 6 | "script": "build", 7 | "group": "build", 8 | "problemMatcher": [], 9 | "label": "Build", 10 | "detail": "npm run ci:pre && docusaurus build && npm run ci:post" 11 | }, 12 | { 13 | "type": "npm", 14 | "script": "start", 15 | "problemMatcher": [], 16 | "label": "Run", 17 | "detail": "concurrently \"npm run start:policies\" \"npm run start:docusaurus\"" 18 | }, 19 | { 20 | "type": "npm", 21 | "script": "install", 22 | "group": "clean", 23 | "problemMatcher": [], 24 | "label": "Install", 25 | "detail": "install dependencies from package" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- 1 | # CLAUDE.md 2 | 3 | This file provides guidance to Claude Code (claude.ai/code) when working with 4 | code in this repository. 5 | 6 | ## Commands 7 | 8 | - Build: `npm run build` - Generate static content 9 | - Development: `npm run dev` - Start local development server 10 | - Lint (links): `npm run check` - Check assets and external links 11 | - Lint (text): `make lint` - Run Vale for style and errors 12 | - Format: `npm run format` - Run prettier 13 | - Typecheck: `npm run typecheck` - Run TypeScript checks 14 | 15 | ## Style Guidelines 16 | 17 | - Use American English with present tense 18 | - Follow Microsoft's Writing Style Guide 19 | - Avoid passive voice and first-person pronouns 20 | - Use React 19 with modern TypeScript features 21 | - Format with Prettier (prose wrapping for .md files) 22 | - Use strict TypeScript mode with explicit types 23 | - Product documentation is in `./docs/` 24 | - Error pages should be created in `./docs/errors/` 25 | - Write clear, concise documentation 26 | - Use ES modules (type: "module" in package.json) 27 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | General notes on editing docs and blog posts. 4 | 5 | ## Error Pages 6 | 7 | Every error message in Zuplo's runtime has a `help_url` that points to 8 | `https://zup.fail/ERROR_MESSAGE`. These URLs redirect to the docs site to a URL 9 | in the format `https://zuplo.com/docs/errors/error-message/`. When adding a new 10 | error message create a page in `./docs/errors` to document the error. 11 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | lint: 2 | vale --filter=errors.expr docs/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Zuplo Docs 2 | 3 | ### Installation 4 | 5 | ``` 6 | $ npm install 7 | ``` 8 | 9 | ### Local Development 10 | 11 | ``` 12 | $ npm run dev 13 | ``` 14 | 15 | This command starts a local development server and opens up a browser window. 16 | Most changes are reflected live without having to restart the server. 17 | 18 | ### Build 19 | 20 | ``` 21 | $ npm run build 22 | ``` 23 | 24 | This command generates static content into the `build` directory and can be 25 | served using any static contents hosting service. 26 | -------------------------------------------------------------------------------- /STYLEGUIDE.md: -------------------------------------------------------------------------------- 1 | # Style Guide 2 | 3 | - Use American English. 4 | - Follow 5 | [Microsoft's Writing Style Guide](https://learn.microsoft.com/en-us/style-guide/welcome/) 6 | for consistency. 7 | - Avoid passive voice and first-person pronouns. 8 | - Write in the present tense. 9 | - Ensure the content is clear, concise, and easy to understand. 10 | - Use Vale to check for style and grammar issues. The Vale configuration file is 11 | located at `.vale.ini`. 12 | -------------------------------------------------------------------------------- /cspell.json: -------------------------------------------------------------------------------- 1 | { 2 | // Version of the setting file. Always 0.2 3 | "version": "0.2", 4 | // language - current active spelling language 5 | "language": "en", 6 | // words - list of words to be always considered correct 7 | "words": [ 8 | "Kubernetes", 9 | "Linkerd", 10 | "proxying", 11 | "Quickstart", 12 | "quickstarts", 13 | "Zuplo", 14 | "vercel", 15 | "zudoku" 16 | ], 17 | // flagWords - list of words to be always considered incorrect 18 | // This is useful for offensive words and common spelling errors. 19 | // For example "hte" should be "the" 20 | "flagWords": ["hte"] 21 | } 22 | -------------------------------------------------------------------------------- /docs/articles/accounts/billing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Zuplo Billing 3 | sidebar_label: Billing 4 | --- 5 | 6 | The "Upgrade & Billing" page in the Zuplo dashboard allows you to subscribe to a 7 | Zuplo plan, update your payment method, and view your billing history. 8 | 9 | Zuplo uses Stripe to process payments. When you subscribe to a Zuplo plan, you 10 | will be redirected to the Stripe checkout page to enter your payment 11 | information. Once your payment is processed, you will be redirected back to the 12 | Zuplo dashboard. 13 | 14 | ## Update Payment Method 15 | 16 | When you navigate to the "Upgrade & Billing" page, you will see a link to manage 17 | your existing subscription. Clicking this link will take you to the Stripe 18 | checkout page where you can update your payment method. 19 | 20 | :::note{title="Enterprise Plans"} 21 | 22 | Enterprise plans are setup with custom billing and can't be managed through the 23 | portal. Contact your account representative for questions or assistance. 24 | 25 | ::: 26 | -------------------------------------------------------------------------------- /docs/articles/accounts/members-and-roles.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Members & Roles 3 | sidebar_label: Overview 4 | --- 5 | 6 | Accounts in Zuplo can have multiple members with different roles. The role of 7 | each member defines the permissions they have in the account. 8 | 9 | Projects in Zuplo can also have multiple members with different roles. Some 10 | account level roles allow access to project resources as well. Users can also be 11 | assigned project level roles in order to grant them access to specific project 12 | resources. 13 | 14 | **Additional Resources** 15 | 16 | - [Role Permissions](./roles-and-permissions.md) - Details on the roles 17 | available at the account and project levels. 18 | - [Managing Account Members](./managing-account-members.md) - How to add, 19 | remove, and set roles for account members. 20 | - [Managing Project Members](./managing-project-members.md) - How to add, 21 | remove, and set roles for project members. 22 | -------------------------------------------------------------------------------- /docs/articles/api-key-service-limits.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Service Limits 3 | --- 4 | 5 | Zuplo's API Key Service can handle billions of requests and tokens. The service 6 | can accommodate even virtually any scale required. However, by default the 7 | service is set with limits to ensure that each Zuplo customer has a performant 8 | and reliable experience. 9 | 10 | For customers who need limits beyond what's set in this document, react out to 11 | our sales team and we'll be happy to design a plan that fits your needs. Email 12 | [sales@zuplo.com](mailto:sales@zuplo.com). 13 | 14 | For more details see [Zuplo Platform Limits](./limits.md). 15 | -------------------------------------------------------------------------------- /docs/articles/check-ip-address.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How to check an incoming IP address 3 | --- 4 | 5 | Sometimes you want to access the true IP address of the gateway's client making 6 | the current request. To do this you can read the `true-client-ip` header: 7 | 8 | ```ts 9 | const ip = request.headers.get("true-client-ip"); 10 | ``` 11 | -------------------------------------------------------------------------------- /docs/articles/dev-portal-auth.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Dev Portal Authentication 3 | sidebar_label: Overview 4 | --- 5 | 6 | The Zuplo Developer Portal supports authenticating with any standard-compliant 7 | OpenID Connect identity provider such as [Auth0](https://auth0.com), 8 | [Okta](https://okta.com), [AWS Cognito](https://aws.amazon.com/cognito/), 9 | [Clerk](https://clerk.com), etc. The developer portal also supports external 10 | auth sources like [Supabase](https://supabase.com). 11 | 12 | Below are instructions on how to configure some of the common providers. 13 | 14 | :::caution{title="Production Authentication"} 15 | 16 | Production Developer Portals must setup custom authentication. 17 | 18 | Out of the box, authentication to your developer portal uses Zuplo's test Auth0 19 | account. The test Auth0 account can't be used in production (it will fail on 20 | custom domains) and is limited to a small number of users per month per project. 21 | 22 | ::: 23 | 24 | - [Auth0](./dev-portal-auth0-auth.md) 25 | - [Clerk](./dev-portal-clerk-auth.md) 26 | - [Supabase](./dev-portal-supabase-auth.md) 27 | -------------------------------------------------------------------------------- /docs/articles/local-development-env-variables.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Configuring Environment Variables" 3 | sidebar_label: Environment variables 4 | --- 5 | 6 | For security reasons, your local development doesn't have access to the 7 | environment variables that you have configured on the Zuplo Portal. Instead, 8 | your local Zuplo API Gateway will load environment variables from a .env file. 9 | 10 | 1. Create a .env file in the root of your project. 11 | 2. Follow the following format 12 | 13 | :::warning 14 | 15 | As the `.env` file could contain sensitive information, it shouldn't be 16 | committed to your version system. Consider adding .env to your .gitignore file. 17 | 18 | ::: 19 | 20 | ```txt 21 | KEY1=VALUE1 22 | KEY2=VALUE2 23 | ``` 24 | -------------------------------------------------------------------------------- /docs/articles/local-development-troubleshooting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Troubleshooting" 3 | --- 4 | 5 | ## Changing the port numbers 6 | 7 | By default the Zuplo local server runs on port 9000 and route designer runs on 8 | port 9100. To change the port number, you can call 9 | 10 | ```sh 11 | npx zuplo dev --port --editor-port 12 | ``` 13 | 14 | ## Updating the Zuplo CLI 15 | 16 | During the preview release, we will be updating the Zuplo CLI frequently. To 17 | update, please run in your project directory. 18 | 19 | ```bash 20 | npm install zuplo@latest 21 | ``` 22 | 23 | You must include the @latest to ensure you are getting the latest. Otherwise, 24 | you could have an older version cached locally on your machine. 25 | 26 | You can compare if you have the latest version by looking at the version number 27 | on [NPM](https://www.npmjs.com/package/zuplo?activeTab=versions) 28 | 29 | ## Getting help 30 | 31 | Please reach out to support@zuplo.com or join our 32 | [Discord server](https://discord.gg/8QbEjr2MgZ). 33 | -------------------------------------------------------------------------------- /docs/articles/non-standard-ports.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Non-Standard Ports 3 | --- 4 | 5 | Zuplo supports making requests to non-standard ports when your runtime is 6 | configured with a 7 | [compatibility date](https://zuplo.com/docs/articles/zuplo-json#compatibility-date) 8 | of [2024-09-02](/docs/articles/zuplo-json#2024-09-02) or later. 9 | 10 | ## Making a Request to a Non-Supported Port 11 | 12 | Making requests to non-standard ports can be done using the built in handlers or 13 | `fetch` API. Simply set the URL to use the port, for example 14 | `http://example.com:8080`. 15 | 16 | ```ts 17 | const response = await fetch("http://example.com:8080"); 18 | ``` 19 | 20 | ## Older Compatibility Dates 21 | 22 | Before [2024-09-02](/docs/articles/zuplo-json#2024-09-02), Zuplo didn't support 23 | making requests to non-standard ports. If you make a request to a non-standard 24 | port on an older runtime, the port will be ignored. 25 | -------------------------------------------------------------------------------- /docs/articles/reusing-code.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Share code across request handlers and policies with modules 3 | sidebar_label: Code Reuse 4 | --- 5 | 6 | Sharing code across your request handlers and policies is easy with modules. 7 | Simply create a new module with exports and import them to your other files. 8 | Here's a module called `util.ts`: 9 | 10 | ```ts 11 | //util.ts 12 | export function increment(n: number) { 13 | return n + 1; 14 | } 15 | ``` 16 | 17 | Now in our request handler, we can import this and reuse this code 18 | 19 | ```ts 20 | import { ZuploRequest, ZuploContext } from "@zuplo/runtime"; 21 | import { increment } from "./util"; 22 | 23 | export default async function (request: ZuploRequest, context: ZuploContext) { 24 | return increment(1); 25 | } 26 | ``` 27 | -------------------------------------------------------------------------------- /docs/articles/rick-and-morty-api-developer-portal-example.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rick and Morty Developer Portal and Documentation 3 | --- 4 | 5 | This is an example API proxied via Zuplo - these docs are generated based on the 6 | gateway configuration. for the Rick and Morty API. 7 | [Example Documentation](https://rickandmorty.zuplo.io/) 8 | 9 | The Rick and Morty API is a REST(ish) API based on the television show Rick and 10 | Morty. It provides access to hundreds of characters, images, locations and 11 | episodes. The Rick and Morty API is filled with canonical information as seen on 12 | the TV show. Full credit to the original and upstream API, which is available at 13 | rickandmortyapi.com. 14 | 15 | > "I'm A Scientist; Because I Invent, Transform, Create, And Destroy For A 16 | > Living, And When I Don't Like Something About The World, I Change It." 17 | -------------------------------------------------------------------------------- /docs/articles/source-control-setup-gitlab.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Source Control: Setup Gitlab" 3 | sidebar_label: Gitlab Integration 4 | --- 5 | 6 | If you would like to use GitLab as your source control provider, please contact 7 | [support@zuplo.com](mailto:support@zuplo.com) and we can help get your account 8 | setup. 9 | -------------------------------------------------------------------------------- /docs/articles/sso.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Zuplo Single Sign On 3 | --- 4 | 5 | Zuplo Single Sign On (SSO) is a feature that allows you to authenticate users 6 | using a third-party identity provider. 7 | 8 | 9 | 10 | Zuplo uses Auth0 to manage enterprise SSO, so we can support essentially any 11 | Identity Provider. If you have a specific provider you would like to use, please 12 | contact us and we will work with you to enable it. 13 | 14 | **Additional Resources** 15 | 16 | - [Okta](./sso-okta.md) - Instructions on how to setup Okta for Zuplo SSO. 17 | - [Azure Active Directory](./sso-azure-ad.md) - Instructions on how to setup 18 | Azure Active Directory for Zuplo SSO. 19 | - [Frequently Asked Questions](./sso-faq.md) - Common questions and answers 20 | about Zuplo SSO. 21 | -------------------------------------------------------------------------------- /docs/articles/users/profile.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: User Profile 3 | sidebar_label: Profile 4 | --- 5 | 6 | Your user profile is set automatically by your identity provider when you sign 7 | in to your Zuplo account. To set your profile picture, name, and email address, 8 | you must update your profile in your identity provider. Zuplo does not control 9 | this information, and it is not stored in Zuplo. 10 | 11 | If you are authenticating with a username and password, you will not have a 12 | profile picture or name. Currently, Zuplo does not support setting a profile 13 | picture or name for accounts that authenticate with a username and password. 14 | -------------------------------------------------------------------------------- /docs/ask.mdx: -------------------------------------------------------------------------------- 1 | # Ask AI Chatbot 2 | 3 | 4 | -------------------------------------------------------------------------------- /docs/cli/analytics.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Analytics 3 | --- 4 | 5 | To help improve the CLI, Zuplo collects usage and error analytics from the CLI. 6 | 7 | If you don't wish to send analytics to Zuplo, you can set the 8 | `ZUPLO_DO_NOT_TRACK` environment variable on your machine before invoking the 9 | Zuplo CLI. 10 | -------------------------------------------------------------------------------- /docs/cli/convert.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Conversion Commands 3 | --- 4 | 5 | ```bash 6 | zuplo convert --help 7 | zuplo convert 8 | 9 | Converts routes.json to routes.oas.json 10 | ``` 11 | 12 | If you have an older Zuplo project, use this command to convert your old 13 | `routes.json` to the new routes.oas.json, which is based on OpenAPI 3.x. Run 14 | this command from the root of your Zuplo project. It will search for a 15 | `config/routes.json` and generate a `config/routes.oas.json` from it. 16 | -------------------------------------------------------------------------------- /docs/cli/installation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installing the Zuplo CLI 3 | --- 4 | 5 | The Zuplo CLI is built using Node.js. It requires a minimum version of Node.js 6 | 20.0.0 (Node.js 22 is recommended). 7 | 8 | :::warning{title="Windows Users"} 9 | 10 | The Zuplo CLI is not currently supported on Windows. Instead, run the CLI on 11 | [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/). 12 | 13 | ::: 14 | 15 | 1. Install Node.js 20.0.0 or later. You can download it from 16 | [nodejs.org](https://nodejs.org/en/download/). 17 | 1. Install the Zuplo CLI globally by running the following command: 18 | 19 | ```bash 20 | npm install -g zuplo 21 | ``` 22 | 23 | 1. After installing the CLI, you can use the `zuplo` command to interact with 24 | Zuplo. 25 | -------------------------------------------------------------------------------- /docs/cli/local-development.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Local Development Commands 3 | --- 4 | 5 | ```bash 6 | zuplo --help 7 | zuplo 8 | 9 | Commands: 10 | zuplo dev Runs the API locally 11 | zuplo editor Starts a local Open API Designer 12 | zuplo link Links information from your Zuplo account to your local machine 13 | ``` 14 | 15 | See more examples at [Local Development](../articles/local-development.md). 16 | -------------------------------------------------------------------------------- /docs/cli/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Zuplo CLI 3 | --- 4 | 5 | The Zuplo CLI provides convenient tooling for common tasks that you might want 6 | to automate. You can use it to deploy Zuplo projects through CI/CD, create and 7 | update environment variables, manage your tunnels, and more! It's powered by the 8 | [Zuplo Developer API](https://dev.zuplo.com/docs), which you can also call 9 | directly, if you want to create your own tooling. 10 | -------------------------------------------------------------------------------- /docs/cli/variables.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Environment Variables Commands 3 | --- 4 | 5 | ```bash 6 | zuplo variable --help 7 | zuplo variable 8 | 9 | Variable commands 10 | 11 | Commands: 12 | zuplo variable create Creates a new variable for a branch 13 | zuplo variable update Updates an existing variable for a branch 14 | ``` 15 | 16 | Use these commands to help manage your 17 | [environment variables](../articles/environment-variables.md) programmatically. 18 | -------------------------------------------------------------------------------- /docs/dev-portal/ping-identity.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Setup PingOne Login" 3 | --- 4 | 5 | This document will walk you through setting up PingOne as an identity provider 6 | for your Zuplo Developer Portal. 7 | 8 | First, create a new application in PingOne. Select "Single-Page" as the 9 | application type. You can set the title and description to whatever you like. 10 | 11 | ![alt text](../../public/media/ping-identity/image.png) 12 | -------------------------------------------------------------------------------- /docs/dev-portal/updating.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Updating Versions 3 | --- 4 | 5 | When developing your Dev Portal locally, you likely want to keep your version of 6 | the Dev Portal up-to-date with the latest changes. This guide will walk you 7 | through the process of installing the latest version of the Dev Portal. 8 | 9 | Inside of your project's `/docs` directory, run the following command to update 10 | the Dev Portal's dependencies: 11 | 12 | ```bash 13 | npm install zudoku@latest 14 | ``` 15 | 16 | Occasionally, there may be peer dependencies such as `react` that need updated. 17 | If you encounter any messages that indicate that peer dependencies need updated, 18 | run the following command: 19 | 20 | ```bash 21 | npm install react@latest react-dom@latest 22 | ``` 23 | 24 | Updates that require more than just updating the dependencies will be noted in 25 | the changelog. 26 | -------------------------------------------------------------------------------- /docs/errors.mdx: -------------------------------------------------------------------------------- 1 | # Zuplo Errors 2 | 3 | import { errors } from "../generated/errors.ts"; 4 | 5 | We hope you don't run into any errors, but if you do, Zuplo provides detailed error messages to help you diagnose and fix the problem. 6 | 7 |
    8 | {errors.map(({ title, id }) => ( 9 |
  • 10 | {title} 11 |
  • 12 | ))} 13 |
14 | -------------------------------------------------------------------------------- /docs/errors/bad-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Bad Request (BAD_REQUEST) 3 | --- 4 | 5 | The request was invalid. See errors for more information. 6 | -------------------------------------------------------------------------------- /docs/errors/build-error.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Build Error (BUILD_ERROR) 3 | --- 4 | 5 | There was an error building your project. See the build logs for more details. 6 | -------------------------------------------------------------------------------- /docs/errors/fatal-project-error.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Zuplo Fatal Project Error (FATAL_PROJECT_ERROR) 3 | --- 4 | 5 | There was a fatal error loading your Zuplo project. See the logs for more 6 | details. 7 | -------------------------------------------------------------------------------- /docs/errors/get-head-body-error.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: GET/HEAD Body Error (GET_HEAD_BODY_ERROR) 3 | --- 4 | 5 | By definition, a GET/HEAD request can't have a body. See: 6 | https://fetch.spec.whatwg.org/ 7 | -------------------------------------------------------------------------------- /docs/errors/invalid-settings-dev-portal-auth-audience.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 3 | Invalid Settings - Dev Portal Auth Audience 4 | (INVALID_SETTINGS_DEV_PORTAL_AUTH_AUDIENCE) 5 | --- 6 | 7 | We were unable to generate documentation because your 'devPortalClient' doesn't 8 | contain a valid auth configuration. 9 | 10 | Ensure that the configuration for `authentication.devPortalClient` is set 11 | correctly in your `dev-portal.json` file. See the example below. 12 | 13 | ```json 14 | { 15 | "enableAuthentication": true, 16 | "authentication": { 17 | "authority": "https://dev-123566.okta.com/oauth2/ausXXXXXXXXXXXX", 18 | "jwksUrl": "https://dev-123566.okta.com/oauth2/ausXXXXXXXXXXXX/v1/keys", 19 | "provider": "Okta", 20 | "devPortalClient": { 21 | "clientId": "XXXXXXXXXXXX", 22 | "audience": "api://my-api" 23 | } 24 | } 25 | } 26 | ``` 27 | -------------------------------------------------------------------------------- /docs/errors/invalid-settings-dev-portal-auth.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Invalid Settings - Dev Portal Auth (INVALID_SETTINGS_DEV_PORTAL_AUTH) 3 | --- 4 | 5 | We were unable to generate documentation because your 'devPortalClient' doesn't 6 | contain a valid auth configuration for 'audience'. 7 | 8 | Ensure that the property `authentication.devPortalClient.audience` is set 9 | correctly in your `dev-portal.json` file. See the example below. 10 | 11 | ```json 12 | { 13 | "enableAuthentication": true, 14 | "authentication": { 15 | "authority": "https://dev-123566.okta.com/oauth2/ausXXXXXXXXXXXX", 16 | "jwksUrl": "https://dev-123566.okta.com/oauth2/ausXXXXXXXXXXXX/v1/keys", 17 | "provider": "Okta", 18 | "devPortalClient": { 19 | "clientId": "XXXXXXXXXXXX", 20 | "audience": "api://my-api" 21 | } 22 | } 23 | } 24 | ``` 25 | -------------------------------------------------------------------------------- /docs/errors/main-mod-error.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Zuplo Main Module Error (MAIN_MOD_ERROR) 3 | --- 4 | 5 | There was an error loading your Zuplo project. See the logs for more details. 6 | -------------------------------------------------------------------------------- /docs/errors/no-project-set.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: No Project Set Error (NO_PROJECT_SET) 3 | --- 4 | 5 | This is a local development error likely caused by trying to run a project that 6 | can't build or an invalid project. 7 | -------------------------------------------------------------------------------- /docs/errors/not-found.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Not Found Error (NOT_FOUND) 3 | --- 4 | 5 | No route matched this request. 6 | -------------------------------------------------------------------------------- /docs/errors/schema-validation-failed.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Schema Validation Failed (SCHEMA_VALIDATION_FAILED) 3 | --- 4 | 5 | Incoming body didn't pass schema validation. 6 | -------------------------------------------------------------------------------- /docs/errors/system-configuration-error.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: System Configuration Error (SYSTEM_CONFIGURATION_ERROR) 3 | --- 4 | 5 | The runtime environment isn't correctly configured. One or more environment 6 | variables are missing. 7 | -------------------------------------------------------------------------------- /docs/errors/unauthorized.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Unauthorized Error (UNAUTHORIZED) 3 | --- 4 | 5 | Possible causes: 6 | 7 | - No `authorization` header was set 8 | - The `authorization` header is invalid 9 | - The user isn't authorized 10 | -------------------------------------------------------------------------------- /docs/errors/unknown-error.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Unknown Error (MAIN_MOD_ERROR) 3 | --- 4 | 5 | This in an unhandled error in the Zuplo runtime. Contact support@zuplo.com for 6 | assistance. 7 | -------------------------------------------------------------------------------- /docs/handlers/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Handlers 3 | --- 4 | 5 | Handlers are the core of the Zuplo API gateway. Handlers are responsible for streaming a response from your downstream API or a place where you can write custom code for any scenario. 6 | 7 | Handlers are in the middle of the request lifecycle of Zuplo between inbound and outbound [policies](/docs/policies). 8 | 9 | Zuplo comes with several built-in handlers as well as the ability to write your own with a custom module. 10 | 11 | TODO: List handlers 12 | -------------------------------------------------------------------------------- /images.yaml: -------------------------------------------------------------------------------- 1 | - output: ./public/media/step-1-setup-basic-gateway/image-11.png 2 | url: https://portal.zuplo.com/acme-corp/my-api/~working-copy/edit?path=%2Fconfig%2Froutes.oas.json 3 | wait: 4000 4 | width: 1920 5 | height: 1080 6 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /policies/ab-test-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/ab-test-inbound/intro.md: -------------------------------------------------------------------------------- 1 | This example shows how to perform an action on incoming requests based on the 2 | result of a randomly generated number. A/B tests could also be performed on 3 | properties such as the `request.user`. 4 | 5 | A/B tests can also be combined with other policies by passing data to downstream 6 | policies. For example, you could save a value in `ContextData` based on the 7 | results of the A/B test and use that value in a later policy to modify the 8 | request. 9 | -------------------------------------------------------------------------------- /policies/ab-test-inbound/policy.ts: -------------------------------------------------------------------------------- 1 | import { ZuploContext, ZuploRequest } from "@zuplo/runtime"; 2 | 3 | export default async function (request: ZuploRequest, context: ZuploContext) { 4 | // Generate a random number to segment the test groups 5 | const score = Math.random(); 6 | 7 | if (score < 0.5) { 8 | // Do something for half the requests 9 | } else { 10 | // Do something else for the other half 11 | } 12 | 13 | return request; 14 | } 15 | -------------------------------------------------------------------------------- /policies/ab-test-inbound/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft-07/schema", 3 | "$id": "http://zuplo.com/schemas/policies/ab-test-inbound.json", 4 | "type": "object", 5 | "title": "A/B Test Inbound", 6 | "isCustom": true, 7 | "description": "An A/B test policy is used to handle requests differently based on parameters such as user, ip, etc.", 8 | "required": ["handler"], 9 | "properties": { 10 | "handler": { 11 | "type": "object", 12 | "default": {}, 13 | "required": ["export", "module"], 14 | "properties": { 15 | "export": { 16 | "const": "default", 17 | "description": "The export from the custom policy" 18 | }, 19 | "module": { 20 | "const": "$import(./modules/YOUR_MODULE)", 21 | "description": "The module containing the policy" 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /policies/ab-test-outbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/ab-test-outbound/intro.md: -------------------------------------------------------------------------------- 1 | This example shows how to perform an action on incoming requests based on the 2 | result of a randomly generated number. A/B tests could also be performed on 3 | properties such as the `request.user`. 4 | 5 | A/B tests can also be combined with other policies by passing data to downstream 6 | policies. For example, you could save a value in `ContextData` based on the 7 | results of the A/B test and use that value in a later policy to modify the 8 | request. 9 | -------------------------------------------------------------------------------- /policies/ab-test-outbound/policy.ts: -------------------------------------------------------------------------------- 1 | import { ZuploContext, ZuploRequest } from "@zuplo/runtime"; 2 | 3 | export default async function ( 4 | response: Response, 5 | request: ZuploRequest, 6 | context: ZuploContext, 7 | ) { 8 | // Generate a random number to segment the test groups 9 | const score = Math.random(); 10 | 11 | // Get the outgoing response body 12 | const data = await response.json(); 13 | 14 | // Modify the body based on the random value 15 | if (score < 0.5) { 16 | data.testEnabled = true; 17 | } else { 18 | data.testEnabled = false; 19 | } 20 | 21 | // Stringify the data object 22 | const body = JSON.stringify(data); 23 | 24 | // Return a new response with the updated body 25 | return new Response(body, response); 26 | } 27 | -------------------------------------------------------------------------------- /policies/ab-test-outbound/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft-07/schema", 3 | "$id": "http://zuplo.com/schemas/policies/ab-test-outbound.json", 4 | "type": "object", 5 | "title": "A/B Test Outbound", 6 | "isCustom": true, 7 | "description": "An A/B test policy is used to handle responses differently based on parameters such as user, ip, etc.", 8 | "required": ["handler"], 9 | "properties": { 10 | "handler": { 11 | "type": "object", 12 | "default": {}, 13 | "required": ["export", "module"], 14 | "properties": { 15 | "export": { 16 | "const": "default", 17 | "description": "The export from the custom policy" 18 | }, 19 | "module": { 20 | "const": "$import(./modules/YOUR_MODULE)", 21 | "description": "The module containing the policy" 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /policies/acl-policy-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/acl-policy-inbound/intro.md: -------------------------------------------------------------------------------- 1 | ACL policies can be built many ways depending on your requirements. This example 2 | shows how to perform an authorization check on a hard-coded list of users. 3 | 4 | This policy could be extended to fetch data from external sources or even use an 5 | authorization service such as [OpenFGA](https://openfga.dev/). 6 | -------------------------------------------------------------------------------- /policies/acl-policy-inbound/policy.ts: -------------------------------------------------------------------------------- 1 | import { HttpProblems, ZuploContext, ZuploRequest } from "@zuplo/runtime"; 2 | 3 | interface PolicyOptions { 4 | users: string[]; 5 | } 6 | 7 | export default async function ( 8 | request: ZuploRequest, 9 | context: ZuploContext, 10 | options: PolicyOptions, 11 | policyName: string, 12 | ) { 13 | // Check that an authenticated user is set 14 | // NOTE: This policy requires an authentication policy to run before 15 | if (!request.user) { 16 | context.log.error( 17 | "User isn't authenticated. A authorization policy must come before the ACL policy.", 18 | ); 19 | return HttpProblems.unauthorized(request, context); 20 | } 21 | 22 | // Check that the user has one of the allowed roles 23 | if (!options.users.includes(request.user.sub)) { 24 | context.log.error( 25 | `The user '${request.user.sub}' isn't authorized to perform this action.`, 26 | ); 27 | return HttpProblems.forbidden(request, context); 28 | } 29 | 30 | // If they made it here, they are authorized 31 | return request; 32 | } 33 | -------------------------------------------------------------------------------- /policies/archive-request-aws-s3-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/archive-request-aws-s3-inbound/intro.md: -------------------------------------------------------------------------------- 1 | In this example shows how you can archive the body of incoming requests to AWS 2 | S3 Storage. This can be useful for auditing, logging, or archival scenarios. 3 | Additionally, you could use this policy to save the body of a request and then 4 | enqueue some asynchronous work that uses this body. 5 | -------------------------------------------------------------------------------- /policies/archive-request-azure-storage-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/archive-request-azure-storage-inbound/intro.md: -------------------------------------------------------------------------------- 1 | In this example shows how you can archive the body of incoming requests to Azure 2 | Blob Storage. This can be useful for auditing, logging, or archival scenarios. 3 | Additionally, you could use this policy to save the body of a request and then 4 | enqueue some asynchronous work that uses this body. 5 | -------------------------------------------------------------------------------- /policies/archive-request-gcp-storage-inbound/intro.md: -------------------------------------------------------------------------------- 1 | In this example shows how you can archive the body of incoming requests to 2 | Google Cloud Storage. This can be useful for auditing, logging, or archival 3 | scenarios. Additionally, you could use this policy to save the body of a request 4 | and then enqueue some asynchronous work that uses this body. 5 | -------------------------------------------------------------------------------- /policies/archive-response-aws-s3-outbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/archive-response-aws-s3-outbound/intro.md: -------------------------------------------------------------------------------- 1 | In this example shows how you can archive the body of outgoing responses to AWS 2 | S3 Storage. This can be useful for auditing, logging, or archival scenarios. 3 | -------------------------------------------------------------------------------- /policies/archive-response-azure-storage-outbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/archive-response-azure-storage-outbound/intro.md: -------------------------------------------------------------------------------- 1 | In this example shows how you can archive the body of outgoing responses to 2 | Azure Blob Storage. This can be useful for auditing, logging, or archival 3 | scenarios. 4 | -------------------------------------------------------------------------------- /policies/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "legacyIdMaps": { 3 | "api-auth-key-inbound-policy": "api-key-auth-inbound", 4 | "auth0-jwt-inbound": "auth0-jwt-auth-inbound", 5 | "basic-auth-inbound-policy": "basic-auth-inbound", 6 | "basic-rate-limit-policy-inbound": "rate-limit-policy-inbound", 7 | "cognito-jwt-inbound": "cognito-jwt-auth-inbound", 8 | "open-id-jwt-inbound": "open-id-jwt-auth-inbound" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /policies/custom-code-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/custom-code-inbound/intro.md: -------------------------------------------------------------------------------- 1 | Add your own custom inbound policy coded in TypeScript. See below for more 2 | details on how to build your own policy. 3 | -------------------------------------------------------------------------------- /policies/custom-code-outbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/custom-code-outbound/intro.md: -------------------------------------------------------------------------------- 1 | Add your own custom outbound policy coded in TypeScript. See below for more 2 | details on how to build your own policy. 3 | -------------------------------------------------------------------------------- /policies/hmac-auth-inbound/doc.md: -------------------------------------------------------------------------------- 1 | The example below demonstrates how you could sign a value in order to create an 2 | HMAC signature for use with this policy. 3 | 4 | ```ts 5 | const token = await sign("my data", environment.MY_SECRET); 6 | 7 | async function sign( 8 | key: string | ArrayBuffer, 9 | val: string, 10 | ): Promise { 11 | const encoder = new TextEncoder(); 12 | const cryptoKey = await crypto.subtle.importKey( 13 | "raw", 14 | typeof key === "string" ? encoder.encode(key) : key, 15 | { name: "HMAC", hash: { name: "SHA-256" } }, 16 | false, 17 | ["sign"], 18 | ); 19 | const token = await crypto.subtle.sign( 20 | "HMAC", 21 | cryptoKey, 22 | encoder.encode(val), 23 | ); 24 | return Array.prototype.map 25 | .call(new Uint8Array(token), function (x) { 26 | return ("0" + x.toString(16)).slice(-2); 27 | }) 28 | .join(""); 29 | } 30 | ``` 31 | -------------------------------------------------------------------------------- /policies/hmac-auth-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/hmac-auth-inbound/intro.md: -------------------------------------------------------------------------------- 1 | This example policy demonstrates how to use a shared secret to create an 2 | [HMAC](https://en.wikipedia.org/wiki/HMAC) signature to sign a payload (in this 3 | case the body). When the request is sent, the signature is sent in the request 4 | header. The policy can then verify that the signature matches the payload - thus 5 | ensuring that the sender had the same shared secret. 6 | 7 | This policy is configured with the value of the `secret`. Normally, you would 8 | store this as an environment variable secret. Additionally, the policy option 9 | `headerName` is used to set the header that will be used by the client to send 10 | the signature. 11 | -------------------------------------------------------------------------------- /policies/ip-restriction-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/ip-restriction-inbound/intro.md: -------------------------------------------------------------------------------- 1 | This custom policy allows you to specify a set of IP addresses that are allowed 2 | or blocked from making requests on your API. This can be useful for adding 3 | light-weight security to your API in non-critical scenarios. For example, if you 4 | want to ensure only employees on your corporate VPN can't access development 5 | environments. 6 | 7 | Generally, this policy shouldn't be relied upon as the only security for 8 | protecting sensitive workloads. 9 | -------------------------------------------------------------------------------- /policies/rbac-policy-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/rbac-policy-inbound/intro.md: -------------------------------------------------------------------------------- 1 | RBAC policies can be built many ways depending on your requirements. This 2 | example shows how to perform a simple check of whether or not the current user 3 | is a member of a set of allowed roles. 4 | -------------------------------------------------------------------------------- /policies/shared.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft-07/schema", 3 | "type": "object", 4 | "additionalProperties": false, 5 | "definitions": { 6 | "optionsFunction": { 7 | "type": "object", 8 | "required": ["export", "module"], 9 | "properties": { 10 | "export": { 11 | "type": "string", 12 | "default": "default", 13 | "description": "Specifies the export to load your function, e.g. `default`, `myFunction`.", 14 | "examples": ["default", "myFunction"] 15 | }, 16 | "module": { 17 | "type": "string", 18 | "default": "$import(./modules/my-module)", 19 | "description": "Specifies the module to load your function, in the format `$import(./modules/my-module)`", 20 | "examples": ["$import(./modules/my-module)"] 21 | } 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /policies/transform-body-inbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/transform-body-inbound/intro.md: -------------------------------------------------------------------------------- 1 | This example policy shows how to use `request.json()` to read the incoming 2 | request as a JSON object. The object can then be modified as appropriate. It's 3 | then converted back to a string and a new `Request` is returned in the policy 4 | with the new body. 5 | 6 | If the incoming request body isn't JSON, you can use `request.text()` or 7 | `request.blob()` to access the contents as raw text or a 8 | [blob](https://developer.mozilla.org/en-US/docs/Web/API/Request/blob). 9 | -------------------------------------------------------------------------------- /policies/transform-body-inbound/policy.ts: -------------------------------------------------------------------------------- 1 | import { ZuploContext, ZuploRequest } from "@zuplo/runtime"; 2 | 3 | export default async function (request: ZuploRequest, context: ZuploContext) { 4 | // Get the incoming body as an Object 5 | const obj = await request.json(); 6 | 7 | // Modify the object as required 8 | obj.myNewProperty = "Hello World"; 9 | 10 | // Stringify the object 11 | const body = JSON.stringify(obj); 12 | 13 | // Return a new request based on the 14 | // original but with the new body 15 | return new ZuploRequest(request, { body }); 16 | } 17 | -------------------------------------------------------------------------------- /policies/transform-body-inbound/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft-07/schema", 3 | "$id": "http://zuplo.com/schemas/policies/transform-body-inbound.json", 4 | "type": "object", 5 | "title": "Transform Request Body", 6 | "isCustom": true, 7 | "description": "Transform the body of an incoming request.", 8 | "required": ["handler"], 9 | "properties": { 10 | "handler": { 11 | "type": "object", 12 | "default": {}, 13 | "required": ["export", "module"], 14 | "properties": { 15 | "export": { 16 | "const": "default", 17 | "description": "The export from the custom policy" 18 | }, 19 | "module": { 20 | "const": "$import(./modules/YOUR_MODULE)", 21 | "description": "The module containing the policy" 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /policies/transform-body-outbound/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /policies/transform-body-outbound/intro.md: -------------------------------------------------------------------------------- 1 | This example policy shows how to use `response.json()` to read the outgoing 2 | response as a JSON object. The object can then be modified as appropriate. It's 3 | then converted back to a string and a new `Response` is returned in the policy 4 | with the new body. 5 | 6 | If the incoming response body isn't JSON, you can use `response.text()` or 7 | `response.blob()` to access the contents as raw text or a 8 | [blob](https://developer.mozilla.org/en-US/docs/Web/API/Response/blob). 9 | -------------------------------------------------------------------------------- /policies/transform-body-outbound/policy.ts: -------------------------------------------------------------------------------- 1 | import { ZuploContext, ZuploRequest } from "@zuplo/runtime"; 2 | 3 | export default async function ( 4 | response: Response, 5 | request: ZuploRequest, 6 | context: ZuploContext, 7 | ) { 8 | // Get the outgoing body as an Object 9 | const obj = await response.json(); 10 | 11 | // Modify the object as required 12 | obj.myNewProperty = "Hello World"; 13 | 14 | // Stringify the object 15 | const body = JSON.stringify(obj); 16 | 17 | // Return a new response with the new body 18 | return new Response(body, request); 19 | } 20 | -------------------------------------------------------------------------------- /policies/transform-body-outbound/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft-07/schema", 3 | "$id": "http://zuplo.com/schemas/policies/transform-body-outbound.json", 4 | "type": "object", 5 | "title": "Transform Response Body", 6 | "isCustom": true, 7 | "description": "Transform the body of an outgoing response.", 8 | "required": ["handler"], 9 | "properties": { 10 | "handler": { 11 | "type": "object", 12 | "default": {}, 13 | "required": ["export", "module"], 14 | "properties": { 15 | "export": { 16 | "const": "default", 17 | "description": "The export from the custom policy" 18 | }, 19 | "module": { 20 | "const": "$import(./modules/YOUR_MODULE)", 21 | "description": "The module containing the policy" 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /public/media/add-api-to-backstage/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bbedb2ea976d5486bb10d45e3fa103cb206942f93e9495301268b2870469b9e3 3 | size 139560 4 | -------------------------------------------------------------------------------- /public/media/add-api-to-backstage/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6595234854d978910f4f23b54b352449ca136d05978cde301fc9ee4ee22955a2 3 | size 81471 4 | -------------------------------------------------------------------------------- /public/media/add-api-to-backstage/image-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:14bb70a179952e1545088a033358862c3cb015e5ca2f2005b5805d1a9a04df11 3 | size 395923 4 | -------------------------------------------------------------------------------- /public/media/add-api-to-backstage/image-6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e77467a134672a61ebe0c898ed65abe0ced0bea2df4a98cf76bcb984208b9931 3 | size 485309 4 | -------------------------------------------------------------------------------- /public/media/advanced-new-project.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fa64f476179256593869f24adf084637ef9c09fc65feccd4ce398b98f63298d5 3 | size 163374 4 | -------------------------------------------------------------------------------- /public/media/api-key-administration/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ac37cc444fd254636a74bf43914291f007589f7b613a658c39cbc71eda90e3b8 3 | size 116015 4 | -------------------------------------------------------------------------------- /public/media/api-key-administration/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:556419c2543723d499c2bbedb6d20b3ab4a15ae3b8802061906973d89d7ad99e 3 | size 65569 4 | -------------------------------------------------------------------------------- /public/media/api-key-administration/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:249e16ab73111cc05d75594d6cf61a55f87b3facf6f05f0ade162bbfc04ea0af 3 | size 113425 4 | -------------------------------------------------------------------------------- /public/media/api-key-administration/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7499d3440986d6fa9b83ced046fafbce9335b6c40e78ac04c5dc02217b6b0411 3 | size 108647 4 | -------------------------------------------------------------------------------- /public/media/api-key-administration/image-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dc6e8dafbf5abe0507987ed855666eae3ea81a904ab8536e2388c62f63ebd10e 3 | size 44266 4 | -------------------------------------------------------------------------------- /public/media/api-key-administration/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f678b47d0900365b99ec86a532366b48e05a61d1c7a343898c15712205a65499 3 | size 171179 4 | -------------------------------------------------------------------------------- /public/media/api-key-consumers.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:303cdaa75071c084b0d80f084f2dc82da5c4a62aa828287d444ee99b9ed8983b 3 | size 1417331 4 | -------------------------------------------------------------------------------- /public/media/api-key-dev-portal.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:302337d3f20d381ad57465199dd786ed7ecf2fdebfd5a94da53cfeb2ff333059 3 | size 739021 4 | -------------------------------------------------------------------------------- /public/media/api-key-end-users/98a3d62f-1b61-4f41-8bac-665e0b02309e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:87869283fc28232cee5de08f25380f6ef7170948686fba146e12f72c9b67a0f7 3 | size 16032 4 | -------------------------------------------------------------------------------- /public/media/api-key-react-component/cedd8ad0-9433-4433-80f6-86545ba0d41a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dd00e892d40615e254e00f2f2f04e04d41e829c6c37e5ddda7b28b11058b7d2b 3 | size 15452 4 | -------------------------------------------------------------------------------- /public/media/api-keys/zuplo-api-keys.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9b47cb5fc726b065f3983ddfae4087131c890a45515697f9486db6d662d4833f 3 | size 168068 4 | -------------------------------------------------------------------------------- /public/media/app-user-zuplo-api.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2ae4126b93989a460d0d710b83fc4a88610a0d84feecd05a5d2766887de65ccc 3 | size 63426 4 | -------------------------------------------------------------------------------- /public/media/aws-lambda/aa9dc09d-6636-4a8b-94bc-ee28bb779fc8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9a388f982cb9eb0646d5afcd675bc4ecb94f7f581a0e76976f7ca24d30b6c60a 3 | size 103225 4 | -------------------------------------------------------------------------------- /public/media/bypass-policy-for-testing/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:359e3c53dc0c045ca488c70f232e57cffdb82794313fe759e754205a1cf0f043 3 | size 109322 4 | -------------------------------------------------------------------------------- /public/media/change-environments.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2b1b11ef30fe65d31cb3e12054a4b1995ccf53b320c14cd9ba2dfdd0f68b380f 3 | size 59665 4 | -------------------------------------------------------------------------------- /public/media/custom-domains/a40beef2-9eed-44fd-a41e-3f337afbaee2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f1095e95d3d5eb206979560c08438213f00f7374c652928abf7f3e7e78b94ecd 3 | size 6375 4 | -------------------------------------------------------------------------------- /public/media/custom-domains/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:74ee43e7084201f5ecf019d7a68bf6302c6e4ddb8f07f709cadf1e5cfc1de9f9 3 | size 81863 4 | -------------------------------------------------------------------------------- /public/media/custom-domains/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e937dbf5760f219583acab7015b6fabf469d7fb73e380014ba119207607d1c1c 3 | size 201498 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-auth0-auth/0aaa56b6-37c4-4c87-ac62-d86bc52047e3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:01061a624caa164af067e2e5bdaa0b43c2dc939042d6ee530329123fc346682e 3 | size 122555 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-auth0-auth/16c9b4a0-db9b-4b8c-a16f-00ce5e08071e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:08cacffedf208232fb84b0347cf981871f50e78b979daca88394d463813414fc 3 | size 124204 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-auth0-auth/359f4a6c-4dd9-48c9-b8a3-27e70aa459c0.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:95c218221ece5584c4eceeed3fcdce545352ba6328e0aee56b340622ef41c8df 3 | size 71326 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-auth0-auth/d91471bd-5897-463e-805c-35abba294616.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e86f862576f2fd04a152cf5cc33d2dae139780d15bf5e4191e10e69ab457c187 3 | size 79979 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-auth0-auth/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2172e8b18e7d30631d3988059951c0a5748a23365d8a1bd994512f7793257826 3 | size 301066 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-auth0-auth/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0c7e8894ff67fc154abfcc3dc301e2505b9148fc6d12ab98f40b7258acf2d93b 3 | size 158091 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-clerk-auth/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:10c5a189de2c992d3bbfa7076ff0a5253b0ffaa1d9199eb5d5d76edca7ccf142 3 | size 56784 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-create-consumer-on-auth/0daf1916-3fac-4bed-b00d-55694236619c.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:992de2c49e22ddb4a7cc09cbc999ebdb3cb4feca5640e7dda0ba816ba12468a5 3 | size 110015 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-create-consumer-on-auth/2cf32602-9716-4b8d-9641-3830500e01c1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c58052540f5a0a29d4a22b70513cc82622e39916cd265ac3ba6affd0bf4a4e51 3 | size 111171 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-create-consumer-on-auth/a46eabb3-4c22-476b-acc3-c5ab330d451e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a9bab0376d8415e64f71698c0e1aac5bba5b2d324be5322a1e40563828a23390 3 | size 52751 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-create-consumer-on-auth/a928c966-1636-47ad-af23-9f265e9eb590.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e161228a972daa1ba5835c1e16f5c5319f9014b70e475925caba0c5d6ef84225 3 | size 34998 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-keycloak-auth/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:675c095313c025417b50560af3ac3f68ba587a3260c82c7ff3250393eb25d188 3 | size 140211 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-keycloak-auth/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:02a2677e539c46ef02302167fff8dbecf166f29e0c6e2871bf768767cbfbc903 3 | size 154639 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-keycloak-auth/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bcffb55d1625b27255ec0847da99950f5f1d9c4db8519f0454f842e4e65f787b 3 | size 141649 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-keycloak-auth/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9a5bf2f02a3e8e7dac1c93e503e4c3835f732031ef9e0450af6b7867005a05fd 3 | size 169189 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-keycloak-auth/image-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cc2bb8d20c52709dd1e865a101d2b37a7cf5884c9d9a4e671a9ca67f7a8b01c7 3 | size 200649 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-keycloak-auth/image-6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d6121a38281063b554ff3c9d259cc437c3b56765c26ecdf287d58c6901b7fff6 3 | size 283055 4 | -------------------------------------------------------------------------------- /public/media/dev-portal-keycloak-auth/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f8dd241e0a12a2139230ad7f50694301013204776a9cc15b49a4179b156fa043 3 | size 93525 4 | -------------------------------------------------------------------------------- /public/media/developer-api/b2cd0a7b-64f0-4e5d-90eb-c9efcf97d34a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:05ef593c7c9625f09c6567499f21633cc08af59166520493e6a3fdbd796d2aea 3 | size 52948 4 | -------------------------------------------------------------------------------- /public/media/developer-portal/6453cd75-6d0c-4e7f-8a6c-5852a06b8c3b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a14628827179c49f153fdcae46081dc9cf81b2e1d6334b5cfa7a3c8f9aeed55b 3 | size 560925 4 | -------------------------------------------------------------------------------- /public/media/developer-portal/adding-pages/docs-folder.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:02d2eda18c0417fd94c52c509bd8531ec1b8eb75dea48247eb89852baaac5729 3 | size 62977 4 | -------------------------------------------------------------------------------- /public/media/developer-portal/adding-pages/style-preview.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4d71e7ae247e2a5667db880f73c2d2ac0485af2a2fa69c968e017f834e58e87a 3 | size 796320 4 | -------------------------------------------------------------------------------- /public/media/developer-portal/configuration/faker.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b0be9812fccdf7ec6b64f5a5c0bb92dc35dab757bfd2eff3822c2f502ad5dbb3 3 | size 105354 4 | -------------------------------------------------------------------------------- /public/media/developer-portal/overview/developer-portal.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e8d326d3db2db5822aa94e07f59a372cf142a31cf993c20b282ea23088e2a9da 3 | size 2357624 4 | -------------------------------------------------------------------------------- /public/media/developer-portal/setup/dev-portal-auth0.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3e0601e85fe0452370cd90b1d41c478c7267ba368f77fae4b3061a350a42e05e 3 | size 99549 4 | -------------------------------------------------------------------------------- /public/media/developer-portal/setup/dev-portal-okta.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0aaa4bc0391a443365c7934afac5217f7e6ba4f838274eab8ebadce5f7d7ef89 3 | size 100759 4 | -------------------------------------------------------------------------------- /public/media/disconnect-project.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:caf3acf02ebde418546a8a191c9c766123b91c74d3f5caf2bac1468ad4bbed38 3 | size 252987 4 | -------------------------------------------------------------------------------- /public/media/embed/getting-started/api-key-consumers.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:577c3d22e777f1df30c07a805f4e38c1e076c94a19703cfde60794dce7f57031 3 | size 1138392 4 | -------------------------------------------------------------------------------- /public/media/embed/getting-started/auth-policy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:65fe8dc8d0fc108f0ef2f8a44c0587d856ed36a44714c7ca2832ea02ff19a41f 3 | size 221958 4 | -------------------------------------------------------------------------------- /public/media/embed/getting-started/open-portal.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e4a383f2f6f9193fd64df59673847fc7a716d162433bfce755e4cd640db70462 3 | size 61439 4 | -------------------------------------------------------------------------------- /public/media/embed/getting-started/route.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0c8615dbb10a83764a1e535b4bcb8c6094afb498350028387f01c46116a1fa9a 3 | size 297386 4 | -------------------------------------------------------------------------------- /public/media/embed/getting-started/settings.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8eab4671e55b688fe7166971aedc5598d371f6af1cbccdf15b3d942e0702ac05 3 | size 7091 4 | -------------------------------------------------------------------------------- /public/media/embed/getting-started/test-api.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:128af90b34e526e5e4c75c016c3693cee0f518ecdc867d64ff2b6f22f554ed17 3 | size 745865 4 | -------------------------------------------------------------------------------- /public/media/embed/getting-started/test-console.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aba3445a6fb4e1e7f593e2857a3a4a76fffed2550e4ef554b6e248f6398e9dc5 3 | size 7009 4 | -------------------------------------------------------------------------------- /public/media/environment-variables/bec84962-0139-4371-b3fd-a30e70860169.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a4304ebc3b21eb954f3da46d69e82e03e2d345ff9567cead1ff8d758b014cb4e 3 | size 125146 4 | -------------------------------------------------------------------------------- /public/media/environments.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cbfedac6371ca40979800c3e863063c65f051af0f0f4bca0002cf825caa2607f 3 | size 147937 4 | -------------------------------------------------------------------------------- /public/media/environments/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8cbcba81ea6c83f2eba5143c0c33d78a8e042344b5fb30bcc6f74889a763b608 3 | size 64934 4 | -------------------------------------------------------------------------------- /public/media/getting-started-hello-world/default-route.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:baf7eddc7cc5ed3195baceb7b1aa8baa2c37285e761392c92f5dc7323ae5a6e7 3 | size 126425 4 | -------------------------------------------------------------------------------- /public/media/getting-started-hello-world/project-url.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:eb09717f967c5cdcde0e68f01694fda06087b3c81cf405dae1ff3f21d531569f 3 | size 38692 4 | -------------------------------------------------------------------------------- /public/media/getting-started-hello-world/request-handler-link.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0fcf287c97dc185e24dfc9595a9315c83ee58be7a62915a0f1e748d224ca31dd 3 | size 31129 4 | -------------------------------------------------------------------------------- /public/media/getting-started-hello-world/test-client.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b4bc0dd61edd0df801c9cdbe493d7669abaa24b37490c6e17d742f96fc05f9c0 3 | size 372744 4 | -------------------------------------------------------------------------------- /public/media/getting-started-old/2021-11-15_15.06.39.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7fe8960fb6cbbf72a800ce1aed312cbfe16fc7f6fd7c8b5be447b7b29ff29fec 3 | size 2712771 4 | -------------------------------------------------------------------------------- /public/media/getting-started-old/2021-11-15_15.27.35.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c0cf93add5c60c2145919b2a3ea2e39e618c974f6b7f01b24c8b879052f6bc48 3 | size 1731156 4 | -------------------------------------------------------------------------------- /public/media/getting-started-old/2021-11-15_15.44.11.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98a305e15c9c8b080f0dcf8492e9f04b85aa4f9da23f0d74ac9a7b5492edf26d 3 | size 1798685 4 | -------------------------------------------------------------------------------- /public/media/getting-started-old/2021-12-02_20.39.21.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9121cd79b86cedf99f31917a5140c6432539c540b4803d71f802ad3567be2b13 3 | size 1279677 4 | -------------------------------------------------------------------------------- /public/media/getting-started-old/Untitled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:726634feddde06c680f56812a149a781fd9c5dcc8b63c9737269fe91fd4e3cf9 3 | size 93490 4 | -------------------------------------------------------------------------------- /public/media/getting-started-old/Untitled_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b4d71116e75a5261cb70d2e0c4eb72c2fa23ccb61d27f32e125f731bfa6c678d 3 | size 240062 4 | -------------------------------------------------------------------------------- /public/media/getting-started-old/Untitled_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:67970cdcb2705836778c77e99304d1fd959fd680a33b387a8aa144a62490a6d5 3 | size 97574 4 | -------------------------------------------------------------------------------- /public/media/getting-started/add-policy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c897bae347bd06aef408896cafae7bcc5178e7c1942b191c48d43c09bd20557c 3 | size 13362 4 | -------------------------------------------------------------------------------- /public/media/getting-started/add-route.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98a99a14bb92db5cd9c3378189e9d4d975b8ab05d51e0b4956155dbf59554f9e 3 | size 15953 4 | -------------------------------------------------------------------------------- /public/media/getting-started/path.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2e3c06342b69f2f466659935534941ed7ef600cde4e37b7341ddc0b8ae321658 3 | size 22929 4 | -------------------------------------------------------------------------------- /public/media/getting-started/rate-limit.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dbd7044a53f338355e46dd1a5f5c0d630b996c0b623623788c5736d5c1764ea5 3 | size 95204 4 | -------------------------------------------------------------------------------- /public/media/getting-started/rewrite.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fd746a8c84d8416c071ca49c55e95415b8ba330b1dc16600af5b77b67f723598 3 | size 37261 4 | -------------------------------------------------------------------------------- /public/media/getting-started/route-matched.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3a5e707395ecaff3f0f327f5b2fad47c394fb791497bf43c292e0acff2c3f9d6 3 | size 75526 4 | -------------------------------------------------------------------------------- /public/media/getting-started/route-tester.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:79c44db2e4a57296905772e96a1c2eaaeaa75729f3a952a0e5b9b3b140526333 3 | size 89448 4 | -------------------------------------------------------------------------------- /public/media/getting-started/test-client.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0cc14b0685d708801632f382d409dede5b7bd0b1688878258e02b03e56f49486 3 | size 105692 4 | -------------------------------------------------------------------------------- /public/media/github-app-install-perms.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:598bd66589ad4e07934a819bfe2a9d6e8e4a6f9615680ba93645f298028a9a27 3 | size 99128 4 | -------------------------------------------------------------------------------- /public/media/github-deployment-in-progress.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:da6a104a2447fc92f852432f57c7c4c92ca5e7a2aeb069cec0485ec2b7d7b2c8 3 | size 87979 4 | -------------------------------------------------------------------------------- /public/media/github-deployment-succeed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6fe02babb513090a098952f628645f7989e13f8ef6108d4f1704cda97e08a8cf 3 | size 73971 4 | -------------------------------------------------------------------------------- /public/media/github-project-environments.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2b1b11ef30fe65d31cb3e12054a4b1995ccf53b320c14cd9ba2dfdd0f68b380f 3 | size 59665 4 | -------------------------------------------------------------------------------- /public/media/github-settings-connected.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c1a3b0a2e3a9bdb1303cd0a77f09d6675c0e7a8778ae53c23aa1fc1897b66801 3 | size 61484 4 | -------------------------------------------------------------------------------- /public/media/github-settings.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e17641fa66db3d4cd03c1d11b1f0fc11cc6fa3916e27be34918ac9236ed75865 3 | size 54516 4 | -------------------------------------------------------------------------------- /public/media/gke-with-upstream-auth-policy/307e9026-d77e-4efd-9fc1-4c45ead963f1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:df72f41d17e0981f1c025bf2043bf7c8725a8a28e059a37732017ee37c2813cb 3 | size 138897 4 | -------------------------------------------------------------------------------- /public/media/gke-with-upstream-auth-policy/49760fbb-6eb4-46f9-a638-ac078fe85aab.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e70f7dd44c200ffce8f1bf5289a3361001956a896213c75df986bbdf5c410f87 3 | size 74339 4 | -------------------------------------------------------------------------------- /public/media/gke-with-upstream-auth-policy/770db332-ad94-41c6-a6f8-1498578fb78c.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cd13cbe3301f5a16494c9c134e920e4883ff4a2cf7afc80de6ff6113d4f008a0 3 | size 32745 4 | -------------------------------------------------------------------------------- /public/media/gke-with-upstream-auth-policy/a2ee889a-54c1-4e00-953b-1053c619ce52.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e0b1ceab98892835069a98e39bbdac1f6c5a4f8f38e10dc13cd43ab1bfa6b4a7 3 | size 60457 4 | -------------------------------------------------------------------------------- /public/media/gke-with-upstream-auth-policy/cd0b20d3-c109-4775-9fa0-1b3e391bcb84.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5473d3698568dc7701f74282740028fc89215cced91236907b60d4e6f5356fee 3 | size 34829 4 | -------------------------------------------------------------------------------- /public/media/gke-with-upstream-auth-policy/ecadec32-753b-4716-afb5-fafa69c91499.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:89a5234cdef62cc571723fdded0e9140fbe313747e3a45b497df42643e33b621 3 | size 83660 4 | -------------------------------------------------------------------------------- /public/media/guides/archiving-requests-to-storage/2021-11-21_22.51.33.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:616dfa828a34324a4f86fbb8c5a14af2286401ab651a2e463d9636fb8837ea47 3 | size 8149418 4 | -------------------------------------------------------------------------------- /public/media/guides/archiving-requests-to-storage/Untitled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2edf2624722d70b18d7af5d25d1c723181ab5cbc67668b2af9e5519d4c0bb0a9 3 | size 105101 4 | -------------------------------------------------------------------------------- /public/media/guides/archiving-requests-to-storage/Untitled_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9dabed497e5be9d50a81bce7e2627f4482dc2dcd8bea1c0e37412b55e7310b30 3 | size 175994 4 | -------------------------------------------------------------------------------- /public/media/guides/archiving-requests-to-storage/Untitled_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bc3a65d490015517378929b6c2781a2f05d3077e68084e3ae8b9a747e7d79275 3 | size 195023 4 | -------------------------------------------------------------------------------- /public/media/guides/proxy-a-simple-get-request/2021-11-21_20.12.10.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5b82d17570a450496523de28d4ed2c4753e21a7a983b21d9ecaaa4551b86138e 3 | size 3607460 4 | -------------------------------------------------------------------------------- /public/media/guides/proxy-a-simple-get-request/2021-11-21_20.34.38.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:052f619dc9f0601b6aea5dba4ef5036caee5ab5af17ed5185b210766047de793 3 | size 1516666 4 | -------------------------------------------------------------------------------- /public/media/guides/safely-cone-a-request-or-response/Untitled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:34cc698689adc4b58eeb13a3983f21a9e2429c68378dc8f40348d456fda28eff 3 | size 27786 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_16.23.562x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:290db087571a264f6c0171ae4e8f76423f4c9cbb46e46f3d32ee80bd68829b10 3 | size 85482 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_16.30.402x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:85f07d421773aa54247685232a1ff061177021315874004b835c6f6b0a676693 3 | size 239745 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_16.35.432x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a8bafc2eedfb1720b354327868f924ccd55f45c7416221276031be1243981bb8 3 | size 225217 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_16.47.242x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:33ba915b5ee8a27804748540a6f5f62acfc6f9f290026bd36b2bc55bc32ad2c8 3 | size 314837 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_16.51.592x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:00fcb11dfb629187bbc5e4d4d9e427dcec201b4bcf0918973ccf7cb8d1a50494 3 | size 159573 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_16.55.432x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f4ee0869ae6269e1d1ff7f3a1045381c4e920c1e49b110e7cce0689963425bc1 3 | size 276061 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_17.03.342x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4996bd836abbf627110931fd2265eebf001bc610900b9f15a5ef5ba998c746b9 3 | size 74350 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_17.06.082x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7a5796523e8513cf91c197808efbeff5c833c0ad4de9a4a3d19a99b83de6cc16 3 | size 191009 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_17.17.072x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6ec1bb965ac2856ccd45a98e49d1b039bc54d809676a87efdde512975855b6d1 3 | size 257824 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_17.39.352x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f0ddda00825a03de9812e0c2f356b91954913edd3101d0e53dbe76e1087a818f 3 | size 253922 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_17.41.042x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:100a3bb7fd86418b06076f5b67f9981d3492c384a59803d3a34163f5b77a50cd 3 | size 75263 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/CleanShot_2021-11-29_at_17.44.552x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9d35dd73f3bc9f5d6ada4e59215dc5d7a98d95cb9ceb2488afda68ea046ebd63 3 | size 211275 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/Untitled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b61cb4a2f614728998c6a69e073d8108da11e264d55fc6c40068e41931de66c2 3 | size 104834 4 | -------------------------------------------------------------------------------- /public/media/guides/setup-jwt-auth-with-auth0/Untitled_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a12de1fb0386e608520c55d8318a7dc1811b088f2d46df76981dc351c9a49e7e 3 | size 150777 4 | -------------------------------------------------------------------------------- /public/media/guides/testing-graphql/test-request.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6e443151b0e2e7f33c1e66ad378739e68780361e6f8fb9cd59d96029f014055f 3 | size 488769 4 | -------------------------------------------------------------------------------- /public/media/handling-form-data/2d372851-af24-429b-8eeb-cb880589f30d.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a2c8071c13c901d5c659b1d886831c5ca7373b9b8906fe826019a1f82fa465c7 3 | size 27853 4 | -------------------------------------------------------------------------------- /public/media/introduction/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a14fcdea038385940edb8b7963cab4a7d837392bbf97289d6a4e5a021d56edc9 3 | size 927932 4 | -------------------------------------------------------------------------------- /public/media/local-development-debugging/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d635bbf6addad541fcfd17d43014345488e874b97bce561920ec6b176a6a7a52 3 | size 1275679 4 | -------------------------------------------------------------------------------- /public/media/local-development-routes-designer/1a3594c1-18a1-4416-b7c7-05585b253dca.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:91f294ab20990ec3bdb0ad9552240149439468919871fb47ef763b65dbc43d55 3 | size 263720 4 | -------------------------------------------------------------------------------- /public/media/local-development-routes-designer/8108441d-5d60-4ff6-9b1b-2791f9a971f5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:640c772378a79f80376593a56972535c02e8ac5c24694f9b982d5ed84f1a96c6 3 | size 156961 4 | -------------------------------------------------------------------------------- /public/media/local-development.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c62130bd69ba3cb6c5ecf5f47a699ddeeb2eb6bf993844d2d8ac11e7a594298b 3 | size 1543921 4 | -------------------------------------------------------------------------------- /public/media/local-development/3bd6b736-20d7-4ac4-805c-d7fd810dea28.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:555b118353f735bd3df15411e3e602750e14f515b1a31fc58712b1a4ecc21841 3 | size 110682 4 | -------------------------------------------------------------------------------- /public/media/managed-dedicated-akamai/api_gateway_origin_url.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5e7defcd2f6b2e12fd88df2f4532bf57ce754c32f75e6cf60e16f23813a7c86d 3 | size 206681 4 | -------------------------------------------------------------------------------- /public/media/managed-dedicated-akamai/default_rule_dev_portal_config.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a97acf659c02afc9fae901cf6d283de6259c4dce9a9e94cbcd6b16ad1e47f59a 3 | size 78305 4 | -------------------------------------------------------------------------------- /public/media/managed-dedicated-akamai/dev_portal_cdn_caching_behavior.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2989a48f8dd8ae1c4278b02f9e46a9a9e09d04b93f662481652a0572e507d184 3 | size 249853 4 | -------------------------------------------------------------------------------- /public/media/managed-dedicated-akamai/dev_portal_cdn_wildcard_hostname.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c40c6021f1317ee2a5b75dab775f875659f2e3d667f1bf58f170ba5b3ce97268 3 | size 26223 4 | -------------------------------------------------------------------------------- /public/media/managed-dedicated-akamai/geolocation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e40f71497644a59f858802ef7f7b15f10ae54a9d8886529826cccb5bc198cad5 3 | size 134338 4 | -------------------------------------------------------------------------------- /public/media/managed-dedicated-akamai/multiple_hostname_domains.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:697111ad35a74a516e6a01c29c5d9c5db0db9de80090afb2814527111b074d04 3 | size 50416 4 | -------------------------------------------------------------------------------- /public/media/managed-dedicated-akamai/regex-behaviour.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1b16a12287bf9edd29a0c45b7c9074a82e6e5a203c4932f6f427a4b3aec4f563 3 | size 128588 4 | -------------------------------------------------------------------------------- /public/media/managing-account-members/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:95ecc16b97fe9841ff63acd7fd9b92c162a83fcd701ee8a511e26d7dab8f157f 3 | size 40085 4 | -------------------------------------------------------------------------------- /public/media/managing-account-members/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7ae8398c36aa729bbeac7e0db9103a1267882547d68e34bc072c59ee72067efa 3 | size 19168 4 | -------------------------------------------------------------------------------- /public/media/managing-account-members/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:28fa42d2cad44e224ba070220eb7bd5b12350da850b288ffc0700c55956540a8 3 | size 27621 4 | -------------------------------------------------------------------------------- /public/media/managing-account-members/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3dcc43b419d5a6589a4e5b005ea76a79fe3783f470028bc0a0f89b47cad983b8 3 | size 28175 4 | -------------------------------------------------------------------------------- /public/media/managing-account-members/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5d8d948656a9a49e4b6fa29134f3230e29f95934c820ee1945d03ddf2ebb1f55 3 | size 191718 4 | -------------------------------------------------------------------------------- /public/media/managing-project-members/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:92e9133c91c1f24418524555688c83366b36f0822ccba2bb8dc549d45c00437c 3 | size 233991 4 | -------------------------------------------------------------------------------- /public/media/managing-project-members/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:64abc8fb671d7d4e152567ce2d52630da4317c2dea227843895412063f0d8f71 3 | size 40286 4 | -------------------------------------------------------------------------------- /public/media/managing-project-members/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e0800761701db414dd804b9b29b6db6d7122d5e5b0281bf7df775616ff0e57b0 3 | size 141073 4 | -------------------------------------------------------------------------------- /public/media/mcp/portal-handler.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:afbdbc8a0f27df6bba995d585ab09d18ab96c8f4046bc9f3d4ce6316e927ee0a 3 | size 135723 4 | -------------------------------------------------------------------------------- /public/media/monetization-dev-portal-setup/0b7bc4e5-9e92-4b24-a4d5-16fe389bec8f.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2296451e1341f824d6d3ae84893dae6cc9409ff404ec82ac688f5eafa26e6605 3 | size 72421 4 | -------------------------------------------------------------------------------- /public/media/monetization-dev-portal-setup/aa34975a-2906-4869-9dd6-bd13e5b0dcda.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ac95d9c49c718ff8b221b26a86b211bca21de6ae644b56d12a8ffc21e75ab19c 3 | size 37184 4 | -------------------------------------------------------------------------------- /public/media/monetization-dev-portal-setup/image-1a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e805f712db779d418f8a7efdcdb6a79f6125057430c0dd90ed3d4d0c7850b844 3 | size 125957 4 | -------------------------------------------------------------------------------- /public/media/monetization-dev-portal-setup/image-2a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4e126548c9d57d0ec455d0dabf9538be6e11aa2fa7ce91baec7d788dddc5cd66 3 | size 133704 4 | -------------------------------------------------------------------------------- /public/media/monetization-dev-portal-setup/image-3a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6d83b97bde0dd618e6abfb08c2cd32babed6aa0e18e3e2a744300074d18c4bae 3 | size 60279 4 | -------------------------------------------------------------------------------- /public/media/monetization-dev-portal-setup/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5ee3a4b0d91635c06bc1a1b3dbd96ea09555f613e18c4ea96625b70a629f96d8 3 | size 229439 4 | -------------------------------------------------------------------------------- /public/media/monetization-policy-setup/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:472587e9425dce7f5b3aba2ce8cde79222bf24e333db36b45ac2c6106cfd0b9c 3 | size 147586 4 | -------------------------------------------------------------------------------- /public/media/monetization-policy-setup/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3a8d514f620018816268d4c83a4416c96afb0747b4b24ad7f7fce3d985c71b13 3 | size 128321 4 | -------------------------------------------------------------------------------- /public/media/monetization-policy-setup/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a23133ea60f8471f1d38cd91aa7152a30761f1c5fe48aa1fc9306e1ebcdc9801 3 | size 68506 4 | -------------------------------------------------------------------------------- /public/media/monetization-webhook-setup/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:811abc9c42efe0001d808e59c268bc0e0af764521893a49f37f2c27c311a5f5a 3 | size 150387 4 | -------------------------------------------------------------------------------- /public/media/monetization-webhook-setup/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:22ee4c6939041164afe2cb3a80a6102d500451a8a7a9e4bde4b832c9e817f2ab 3 | size 81881 4 | -------------------------------------------------------------------------------- /public/media/monetization-webhook-setup/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:81b9c198daf79831e8494b2a1f8112fec972af4611fb84e21347cff3b3f6d1f4 3 | size 210338 4 | -------------------------------------------------------------------------------- /public/media/monetization-webhook-setup/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8bb7453115f5ee31dbf7eb0c95d2ef39b6df4cd14f5900610caaec873008995f 3 | size 96190 4 | -------------------------------------------------------------------------------- /public/media/monetization/353fb3d5-f019-443b-92d6-a4127814b1f0.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f8afb23d0b9a93a408f20e43c979d1b5c2044e49c07c922bb3bdfef891a59efb 3 | size 50277 4 | -------------------------------------------------------------------------------- /public/media/monitoring-your-gateway/health-checks.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8818e201745b06c3ffd233d569be91f5863ed8584dd921b4628bb8ca6bb55e04 3 | size 71188 4 | -------------------------------------------------------------------------------- /public/media/new-api-key-consumer.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6155e89467b6ae99fdcb263428ed4dc32e18cf960850cd6d3c40aa35dcb59122 3 | size 756748 4 | -------------------------------------------------------------------------------- /public/media/non-standard-ports/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e50d74cf428ecfe6ac3d1dd0cd73475ee0c26bce6e8e40f9d71473001b9e9f17 3 | size 198265 4 | -------------------------------------------------------------------------------- /public/media/open-api/28512107-8c41-4974-8319-c9ec50734331.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:029387d799608eb1ba29cf587d3f9b0e18bc34316a600b544be4b796d5e94b2c 3 | size 79715 4 | -------------------------------------------------------------------------------- /public/media/open-api/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c9ad8c98d6b1757ad158c572942e3ca4bf70a0c361e81ee57beac83025992173 3 | size 180602 4 | -------------------------------------------------------------------------------- /public/media/open-api/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:47c704ad79e97a7110f1b6032a48f5e3bab84a88bda853029a5b39523e23cb9c 3 | size 111906 4 | -------------------------------------------------------------------------------- /public/media/opentelemetry/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4d55b4992634358305cd3816ca245116a3b959c300cd08ff307759e7a3376d41 3 | size 211287 4 | -------------------------------------------------------------------------------- /public/media/path-matching/route-test-result.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:72c3951884bf08497b9f6ff1168aa3bf8e831c9e4058f268a1d08faf95530358 3 | size 225501 4 | -------------------------------------------------------------------------------- /public/media/path-matching/route-tester.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e391051eefce61d0305bf9b2bdd4666e363d7eabb067f4bdacb318b90da52b60 3 | size 406530 4 | -------------------------------------------------------------------------------- /public/media/performance.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:45860bf3922bc44175b1095dcf0a81696facdf90dcd70f4be8bcb4530a0253dd 3 | size 36174 4 | -------------------------------------------------------------------------------- /public/media/ping-identity/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5c6ea6b061a2464210d2f3b0718b3cac58630f5e4f84312b31120abea4331bce 3 | size 178065 4 | -------------------------------------------------------------------------------- /public/media/pipedream.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cba971a9f990771bab30f540f96b104ebad11704981d94d08783d6d4fc4b2496 3 | size 484185 4 | -------------------------------------------------------------------------------- /public/media/policies/103f37f8-9801-4f37-8962-d516b9e12fbd.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:502df03a6c83da1e7b7ddf6803ac72c6acc491e808360482b1389076fa8baa12 3 | size 47989 4 | -------------------------------------------------------------------------------- /public/media/policies/2021-11-21_21.32.35.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d67e4b15a70fbe0915612063b1df91f915a911112a249ef7355f9abe6baaf0fe 3 | size 2423919 4 | -------------------------------------------------------------------------------- /public/media/policies/2021-11-21_21.44.35.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7f10ff32d6d80a4d3771dd7e8c69536e00478d5acfcb5207a908188a77453fbf 3 | size 2390779 4 | -------------------------------------------------------------------------------- /public/media/policies/Untitled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1c39ef5cd16b5ff98b4848aebdd6f24ae784f6845ae0b70796b08c1883ffd7c4 3 | size 88010 4 | -------------------------------------------------------------------------------- /public/media/policies/policy-diagram1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1c39ef5cd16b5ff98b4848aebdd6f24ae784f6845ae0b70796b08c1883ffd7c4 3 | size 88010 4 | -------------------------------------------------------------------------------- /public/media/portal/Untitled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e9f4c2a747c0d37cd0cdc269c5b3b41c6eebd6b6020cef1c4f94a8c29975994e 3 | size 161843 4 | -------------------------------------------------------------------------------- /public/media/portal/route-path.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:49f04c94326fce05d2aceecb10d4753ab0b64759bb3e84ebf402916f201528dd 3 | size 135707 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/create-new-empty-module.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5a6de6970868ef3a621adf5049851b679fb166e0017918d78b79f3043268e7fa 3 | size 414261 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-airtable/airtable-curl.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e3201d8683ae4c10798c32fcc0cdea9ecd7a3e897b24196b3f144b759be06696 3 | size 72110 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-airtable/airtable-start-from-template.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fb73e12e00de446073f8349efab3b59895e058fc5f9050772e2724a8cf597d78 3 | size 400207 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-airtable/environment-variables.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:231cb2ec538babd6059a36e177af2646bb8aed515fb89bdbd8ccfe01ca046c15 3 | size 129858 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-airtable/new-request-handler.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9f215eec15a2041f8797d019be8425d3219267e4ba6d37cee91d889adae407ee 3 | size 121624 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-airtable/route-path.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:479cb6066d47192a9e951279a0253395e22556d40b3353e915ccc23cd49b5559 3 | size 122858 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-airtable/test-route.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a8a8cee011c805b51e4753c8ea94cc55cf1ad3e0fc5d04e937df42eb8c8127ef 3 | size 302598 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-salesforce/environment-variables.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b713bd41e806e0deeadb2efbc2c49817f1ea2540b8e1dbb694c1bf307dcd1734 3 | size 244787 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-salesforce/function-picker.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cec0f350106d8e5e30ad9fd43640a718bfba6f4b3149e18bbef311c3472b8e73 3 | size 130778 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-salesforce/route-path.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:49f04c94326fce05d2aceecb10d4753ab0b64759bb3e84ebf402916f201528dd 3 | size 135707 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/gateway-over-salesforce/test-route.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:897ccad05817ceebf232aa47ddcbae8b4c33c85e9faf3d5075d151cfb6d35db4 3 | size 193665 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/instant-developer-portal/dev-portal-example.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26183ae7a352e626eaa4b6d7bb93b5f63766cee59e73baa94a95bf1e7e0ccc92 3 | size 473066 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/instant-developer-portal/dev-portal-link.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:167d5d58c12ed662449c6882a30436e06ce1f6d373e64dd2d5b33ea6c32f670e 3 | size 50258 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/per-customer-rate-limits/add-route.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1eaf6a320043a1f804449ad3a820be2a6e648addfdd3de5b399987ea33ad5c19 3 | size 342115 4 | -------------------------------------------------------------------------------- /public/media/quickstarts/per-customer-rate-limits/rate-limit-policy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fbc01ad92dbcb31183b2f0ad0de47477861eed1839cfaf8fa21e6e82fdf02b9f 3 | size 219402 4 | -------------------------------------------------------------------------------- /public/media/readme/create-job.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9f97017ea8bc064375b7d9a58be9b6abb102a9116250d8a250bf85541e243299 3 | size 25232 4 | -------------------------------------------------------------------------------- /public/media/readme/create_review_app.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:42c299eaae1aeee3615fe6f6d5b31dc80c468c6f898d33235a3cce8478966992 3 | size 95993 4 | -------------------------------------------------------------------------------- /public/media/readme/deployed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1961b441ddb1a7bca4bb81feaee001d814cb9396ce534f502c6e2e009206a282 3 | size 11275 4 | -------------------------------------------------------------------------------- /public/media/readme/job-settings.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7c386bd2f0a948619509b8760ae54d66366262474175f254839881799ffb947c 3 | size 31388 4 | -------------------------------------------------------------------------------- /public/media/readme/requested_deployment.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5ad2598147a9c924aa167fdf276bc073dd2c332ae29099cc39b5cfc0723e891e 3 | size 104814 4 | -------------------------------------------------------------------------------- /public/media/readme/structure.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:52b9dfd1ccf169896b82ea8dbb9631ec8586dd4591b36eeedf8a5a91b0c9be64 3 | size 75514 4 | -------------------------------------------------------------------------------- /public/media/rename-or-move-project/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:40a7236936ebc105076c5e168322ac0f373bb51f7f3dc855393a2f35d4308c0a 3 | size 251720 4 | -------------------------------------------------------------------------------- /public/media/safely-clone-a-request-or-response/f70d62c0-8bdd-4476-9fd6-fe2dad7ae3a2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:33a731ea0dfacb722dae6d8787985e9de7a11ae7d29297bbe3afe238cea8a95f 3 | size 16377 4 | -------------------------------------------------------------------------------- /public/media/scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:384a6880b4f8efb02e0a0f2db30513a75f67fb5e67e7989bbfca7caeeb1f7fd3 3 | size 140968 4 | -------------------------------------------------------------------------------- /public/media/secure-tunnel/fefdc7fb-f3b6-4908-8485-3d20cb769cfd.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:322dbaf92abe368a15a97a7101330a7e2ff1601d63767074a719ec034b79f6e8 3 | size 66644 4 | -------------------------------------------------------------------------------- /public/media/securing-backend-shared-secret/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:80f76f043bdb776edc8f1fbb02812ec4452d3b15e07b7656bd5e7bdaddd4c71b 3 | size 221640 4 | -------------------------------------------------------------------------------- /public/media/securing-backend-shared-secret/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c36eec8d7e7892a346076d6f27dac8d86338d987429b717fde1f9726c3bf3f68 3 | size 122482 4 | -------------------------------------------------------------------------------- /public/media/securing-your-backend/b7290dd1-43fa-49f8-8629-6b4899e2e9f3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0b7d5268d6b947c0cb91f30b7d4234ed739a97f243b4377596b81e1af0dd372a 3 | size 26904 4 | -------------------------------------------------------------------------------- /public/media/source-control-setup-github/0a9932eb-7c16-49cf-9720-0beb450724eb.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee10d90f59f52b624ecb1221cba3a3643f7bc50ed10bacef24ffe0d884f23a38 3 | size 98058 4 | -------------------------------------------------------------------------------- /public/media/source-control-setup-github/26fa58b6-7a5a-4627-bd9f-246972639f12.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:058d1430318334dc1dd08150c43580f7c31f340992ccfb26e011d54b5e10d0bc 3 | size 63856 4 | -------------------------------------------------------------------------------- /public/media/source-control-setup-github/d6194a80-b6d6-429e-85a6-ae1cb4a3375e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fbff7e16b1f5e953a3b169ba9f0a8ad9cc71502dc9ddf4ed33d73d31571c8fe9 3 | size 60583 4 | -------------------------------------------------------------------------------- /public/media/source-control-setup-github/eef76bd7-4d26-4f86-96e8-89ebede03beb.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3e28e2a155df98394fc71511b1d142e8b2951a5ed65078ac49fdd94887e7071b 3 | size 48875 4 | -------------------------------------------------------------------------------- /public/media/source-control-setup-github/ff482269-9aa2-44c3-8266-b2682b3d6ea5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b61d9a1656a72db292a875a55bdfa93f3a0a0eeb0702227f764eb247db2504bb 3 | size 78602 4 | -------------------------------------------------------------------------------- /public/media/source-control/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:571c8ce72a154db7acd1a6a4fc20a9602a6da59cc9456834e72589ec7b023b24 3 | size 127268 4 | -------------------------------------------------------------------------------- /public/media/source-control/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:571c8ce72a154db7acd1a6a4fc20a9602a6da59cc9456834e72589ec7b023b24 3 | size 127268 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/add-route.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:da23dea64b6d7cb3211819a3246763d0e7bf9c7fe10b4550791023c2e3444627 3 | size 107731 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/env-var.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2db27fef86448d2917382b38f455a0dcb66dfa3ee7c5943f592ef541c6c9942b 3 | size 122471 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:075e93ab34f264de4de00a37f68ddba64f33dc4586d2eb60cfbad83b9e1df9b1 3 | size 66948 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-10.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3c4cd75d8e9df07e5b2f3e742a3fc923aca6948312d3d6eab2949339bbb814fe 3 | size 89109 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-12.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ddd7a1c7cbb4b66d958a52328df37f8d4ca2b4cf09f27a9ae8ea8abad8acb57b 3 | size 411148 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-13.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d4ee63f23dd99865e41e6f7ba3201e78937442d610a80c0d3fff542f93425fe7 3 | size 193059 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-14.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7351571cf87d41b6666c2e9995ba07468fdfc3a7eeb0fff6b00be800ae6978f3 3 | size 192091 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-15.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:87b58fae2cb1a1d0c0c1a5250d1d3ef85cb77f28ad52af1bb3a533eb585b7598 3 | size 86561 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-16.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8976f9fb6f900258f49bce6a18cab29bf038153c21f289f17ae5b8cd51918cdf 3 | size 126191 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-17.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d9f3362935221cae11e3b21215f2a14955c0a8bd3208313bd4679d023e707d59 3 | size 31169 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-18.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fabea0aed2f28b9afc7e0c6a22d9fe14e63a964c4bb4476ee1d0d40f530fa690 3 | size 222877 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-19.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7bd411f97b35b8ab1225d443098675f24edfeb7c72234a73498836f80e37d953 3 | size 165425 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5f2dfde987d9e8abc53ac8665ccdb9643fc8c2e1963e3f52ffdfb628c323a35b 3 | size 36243 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1efa1f182f4d6bda40844b75fad20c98a54caf876c6725991ff16a8d75d85358 3 | size 79378 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a0ada4f971070ba0ccb06c9fb79ef133cf6ac9ae21c4e35f750ed11f9a73dff4 3 | size 37348 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:16c67bf878c019b3690f4419036f0442903dec2747c6a9a33e03801d99a26b63 3 | size 113684 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6b0a83a37dffb5169aceb5703851f374a4e0e388cd6d33b9ac32907d8b414df5 3 | size 53532 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2165fb5756b349e20ff504a00c527d8db0574ea50dc808722635e0f745b3246a 3 | size 76896 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:526f9ee052f6c93e3fe9c98983152abb9c6f631f10820c7e0f2a86a7a3eb927a 3 | size 9790 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image-9.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:530d83d433838fe4a3d153ad6ec8947c5aba67b5252bff831b0f266491ac08c1 3 | size 60472 4 | -------------------------------------------------------------------------------- /public/media/step-1-setup-basic-gateway/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6e4279993c440b29022555032b9167ad13e8acd2c6866115f1951b93263c2669 3 | size 114569 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:69570994fef9306a606396ea92887518df3d74a9cbf42afd01c16f941ac0c349 3 | size 89815 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0f7e1963ed6b3b23267dc6885e848c4588fb5afbbab7fc624313b9447ffac8d5 3 | size 98184 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bd67bb367c63fd64b5efb96fb8c61de8d045a1273f493a16083e7cd99b1b6536 3 | size 34608 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:228333b10a2ede25291db6b79f47dfe99da79d5a7ceda6900b380e1dcd82c91c 3 | size 53456 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6a67b121af010b3b3a9dacc89b6894778eb931a392bd420c3f924b6b444e6cb8 3 | size 86765 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7fdf1d9ce013e22ee2b63d8e66346560953893b12409b8106459b5930cef600 3 | size 76589 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:63f4ccd201ba496cdcee621ac28400b5f4596d6356550d4ef6b693f6134e778a 3 | size 168350 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7c1eec681925d04b272113a31ae1a32d12cb7497a290bf2eab3198c358e1bc64 3 | size 114280 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image-9.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8cbf3f4c27600ffd31954cb849d97cd0a3534de9047cdd19c638e84057ef0a59 3 | size 102697 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-api-key-auth/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6a463a07bcafe0d13ec0b9b7ece2e7d75033c6398fb7a05f4af2c6be6b295cfd 3 | size 160554 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/choose-rate-limiter.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2eaa8bd8a2649addcd4185d8482f606bd76c657134b28ffd6883d897fd60a515 3 | size 150370 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/create-policy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f1c55943add2fccc7baa3bdb3b52ec784357dce326627a1d383c5fe45ee54905 3 | size 223355 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:102b8c4bace44cfdf91342363dd8e65a278757b818363d3403369dc93500178e 3 | size 186262 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8b11a048a66e869c49284630627b340fb1cf3abfb85b6cf41dd205a5875e7c9b 3 | size 194365 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a0e69fe75fd13f267d4d237c3c2bb91a560607c0e33c5d283c0ebfaa0618583f 3 | size 252585 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f7db8ad77ac8fd89d81fd69adeeb73f8b9084d4ab4a7d29c11abdbb368679270 3 | size 250406 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/image-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5046e9f9c3594100656121fa8c2d33e2ed496bc03be2c79031ccf1076def6db3 3 | size 83627 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/image-6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:961249cc287aea394fb28b5b2a26aee388f618b44ad97dd3079faad5ab3b80fd 3 | size 153920 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/image-7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:acfb5389854dc3391e1fffd189d874c5c7ade859a0af3463d214875eb72fa66c 3 | size 156208 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d8e125f3b7e363674186043695f635b64dd0ccf195ed25508decd0404c6821a7 3 | size 157127 4 | -------------------------------------------------------------------------------- /public/media/step-2-add-rate-limiting/test-api.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4104a582389f3cd9080aecd4fc0769a89eb5045ab3fbffbdaf88f6aadf177982 3 | size 207028 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/choose-policy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a1277a68fb25b6076248714b5dc54c7e9aeec38360c657991163cba3e84643c9 3 | size 93990 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/image-1.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:31fd8f5970d26e458e9e3cdb4f935214f94d10f171535892d110efd92dd15251 3 | size 260997 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:618047aec69157758057a68b9b5c9fbe537a4d2c887d087f3fef461de4291d23 3 | size 209025 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2fe0e980bb5abdd068baa131a19833c4d5fab6d3e3296343c38c8e002afcefec 3 | size 110890 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:66c039fd53a495803b1ba3192cabdb2fc87b5caaab73cb4f94b9c58509c10cec 3 | size 48413 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/image-6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cbeb990017dac38737bbf609f68eaec073368147bee32668a11c621fd46b8266 3 | size 206661 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/image-7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:715d0d3be631de1d3f0ffb570ad2963bc831bf23e6af7112e56021cf2c01b4ae 3 | size 217579 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/image.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4478dd557b9086afea27025cb27b6ef4fc38363fee4c5409175288935859c86e 3 | size 323636 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:01ee2181b0999529f2426826390f4b52682f1248830442326deb2eeaaa68169e 3 | size 387623 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-api-key-auth/test-policy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5456d8fd87f7716365ddb75b2fdb860863437301616b2e9556b1363aca4651a9 3 | size 206385 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-rate-limiting/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:934a01290228533f7d08f5a1b04e07dba11d1ba4d2bca4d8d1b820ef7ee361dc 3 | size 35640 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-rate-limiting/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a10258716bc07a4e2a098e8ce7bc7b3b5cb9372a8156c86e665ea1a73252ff2d 3 | size 168704 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-rate-limiting/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:63fe4f59d850641107119df466ba87c2bcae44a353bcfbba1d9f8cd3e442356b 3 | size 127847 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-rate-limiting/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:88238974a12d4fa877dd40f0113c1d11b555f058579770872336fc4287620491 3 | size 168882 4 | -------------------------------------------------------------------------------- /public/media/step-3-add-rate-limiting/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:30daf669836f61f903447d7e5031662ce4bd42b182e8bf0000851eed444bf3f8 3 | size 164951 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/0a9932eb-7c16-49cf-9720-0beb450724eb.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee10d90f59f52b624ecb1221cba3a3643f7bc50ed10bacef24ffe0d884f23a38 3 | size 98058 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/26fa58b6-7a5a-4627-bd9f-246972639f12.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:058d1430318334dc1dd08150c43580f7c31f340992ccfb26e011d54b5e10d0bc 3 | size 63856 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/51a25aa0-cdce-4112-ba2e-e56f42a9044d.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:11d1b4bd3243dd5cc8661fc38f62c06dd82e9cc9275c229064399ee79a3fe76d 3 | size 106763 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/60cdeb36-ab7d-42f9-a8c2-1f7931f80ca6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0e3733f9b9e3f391ccf1812aa1be748ebf285bb0d096c8fc4ef835fd66842650 3 | size 114226 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/875b164d-b7ef-4f46-9cdb-8d59354b5b93.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9ba11963372ad2e159272e4e3e61fa79250c2daee2ff43b5e71272e57d368777 3 | size 106302 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/d6194a80-b6d6-429e-85a6-ae1cb4a3375e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fbff7e16b1f5e953a3b169ba9f0a8ad9cc71502dc9ddf4ed33d73d31571c8fe9 3 | size 60583 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/e8c68072-35dc-462a-8161-7a44e40fa1df.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f4f655bd3c0739e5d9c755daa121982958c6d6c65a73fdaead9c5c8c322c50f4 3 | size 155186 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/eef76bd7-4d26-4f86-96e8-89ebede03beb.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3e28e2a155df98394fc71511b1d142e8b2951a5ed65078ac49fdd94887e7071b 3 | size 48875 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/ff482269-9aa2-44c3-8266-b2682b3d6ea5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b61d9a1656a72db292a875a55bdfa93f3a0a0eeb0702227f764eb247db2504bb 3 | size 78602 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0579e1d74fe11302005712412fc6c466a1efc5f92affd734e30f25df31e07d00 3 | size 178306 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c53d7eb5bbd826e3994870a02ec51d448ff3201639a1a346696820a303941b50 3 | size 142995 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0778a47550acc99bee37b95cf5b315cda9011043bdc1bf493b00ec29c2e63726 3 | size 122561 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f7c5bf26ce573761bfa39f15fa331440be76f4820aba515773d12e4f643328d3 3 | size 147031 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bed2d67f77ecc27b4374085ceb89b60a627a05cc7175eb19b4b8c182a809a952 3 | size 135777 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5726390170f535fc0d24f1b1b6f1f2184e2949d382c65b7989924c98876a6025 3 | size 183555 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:953192433f5b9a38e20d45a5e62be5147b3051d3ae8a840fd1efc9e110d60410 3 | size 46388 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e62fdbcd2008d556e86b2f8238a27a8be2c9fe80a8f396c1f5435e878381262f 3 | size 74308 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image-9.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b6d3f96afd5a6e04a8774f234391d8f2101f07509e3a8704cf8322eb3e280b29 3 | size 60838 4 | -------------------------------------------------------------------------------- /public/media/step-4-deploying-to-the-edge/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e055b6043daaf4bab519c847e1e79b945fab41f79aba442d922ac1ece1f4a36d 3 | size 52748 4 | -------------------------------------------------------------------------------- /public/media/stripe-monetization-plugin/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:08605c73895d0573dab5f25aedd0eb7c5e0535f10c4badd45d2f7c924df3a759 3 | size 301097 4 | -------------------------------------------------------------------------------- /public/media/supabase-auth/copy-key-updated.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0702d25e456431abf9b9e96fb986ca12b5628a1bbcc373a6fe9cd44b45ca4f18 3 | size 239553 4 | -------------------------------------------------------------------------------- /public/media/supabase-auth/dev-portal-loaded.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2fbfa1fa1be686b8de13b89c54c980dd138bf5fec448d3256eb1c37fb9173bf6 3 | size 417159 4 | -------------------------------------------------------------------------------- /public/media/supabase-auth/dev-portal-updated.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:89995594d3165812e81881d4575d279e0832c2120c3abb331f7ad7cba9676c03 3 | size 819996 4 | -------------------------------------------------------------------------------- /public/media/supabase-auth/email.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d886a4cc59bae6b0b72801108ece144af1cd4009042a37250c91b7434b580eca 3 | size 55147 4 | -------------------------------------------------------------------------------- /public/media/supabase-auth/initial-login.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2572a83745c4b7a4cdfe0584ffe1f88cac0cff0e9b0fea3a75443e2b3b265600 3 | size 419925 4 | -------------------------------------------------------------------------------- /public/media/supabase-auth/supabase-github-login.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c1d1f18dccabd3c316b2e2d08cd0ee8357235a24aeeac01c4aec0b247edbd0ff 3 | size 5666353 4 | -------------------------------------------------------------------------------- /public/media/supabase-auth/supabase-login.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8e4bd614c775aea9913ea2a7d009fb42af602e27d2e1a60a37b24595a612c5e8 3 | size 7069751 4 | -------------------------------------------------------------------------------- /public/media/supabase-auth/supabase-site-url.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2a76c25fa1d73e20c16a9fa7df653b4c1ed5e604bbaad07c1fb6d17b5ac30233 3 | size 375044 4 | -------------------------------------------------------------------------------- /public/media/testing/3f3292a3-075c-4568-afb2-00c24e704f03.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e6cc5011fd57344dfe01e33d475fe798da04e8242aeecc58675ec013897d3e6c 3 | size 241235 4 | -------------------------------------------------------------------------------- /public/media/testing/a1d7c322-125d-4d80-add0-fbfb65ccfea1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ae20777d5f5010ad73eab9f94f7fe712cb744b032601d177c775155bbe26d44a 3 | size 203447 4 | -------------------------------------------------------------------------------- /public/media/tsconfig/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2eb01307960db91d9aa77c2d6694c919d4110e232a607e0a3d9f698b6feeb64d 3 | size 82822 4 | -------------------------------------------------------------------------------- /public/media/tunnel-setup/0c91be91-a591-4cef-ac29-d266e8a3181e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9a23e201535a8ba30df232933183d5103775539206acbff4bd9b0d98dc0e0221 3 | size 58790 4 | -------------------------------------------------------------------------------- /public/media/tunnel-setup/16b93099-511d-435b-af85-167fab5814b2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:993e7a29ffee5eec5e12c2ad41481c024624a8f9b99103154035d5b96904548d 3 | size 29361 4 | -------------------------------------------------------------------------------- /public/media/url-rewrite-handler-selection.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6dc8f5e8696eeaa5b5db6aa3043f13aa58f96d49f53ed4df85df61228c77a1e4 3 | size 231638 4 | -------------------------------------------------------------------------------- /public/media/user-zuplo-api.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0836512b0580bd519753d6cd888d5e115be2bc27da63a6d2dd01287bb91a92da 3 | size 33508 4 | -------------------------------------------------------------------------------- /public/media/versioning-on-zuplo/multiple-apis-in-docs.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:38591415a75b1db0fdfa2c9dc84b584f9d72937c9031fb19196fa144678ccc9a 3 | size 33168 4 | -------------------------------------------------------------------------------- /public/media/versioning-on-zuplo/multiple-openapi-files.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:507b44ae47d6b042b3879fbce9f9da16d67621a7b4a0102c7ddc80618429c05e 3 | size 40276 4 | -------------------------------------------------------------------------------- /public/media/what-is-zuplo/9a9a490a-9bda-46f6-bcc8-c2e67809c0af.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5a3f003b51a97066369ed467cbb89e4a67ce1d550f01b55f3aa3ac6b235dbe37 3 | size 26935 4 | -------------------------------------------------------------------------------- /public/media/what-is-zuplo/9ef54160-c412-4126-a275-4c2ccd3935ff.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:69e2fefd9ed6f18f4caf1c81e29ebec8e8a5b74f9045f3525ed8fabc3a1105e9 3 | size 41785 4 | -------------------------------------------------------------------------------- /public/media/what-is-zuplo/zuplo-connect-light.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c945c96db81b5221ad105e5ba2a7d824e84d5ed335b2088fc32f2a83acd16f7f 3 | size 562080 4 | -------------------------------------------------------------------------------- /public/media/what-is-zuplo/zuplo-distributed-light.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:940503cac03864f0dd4c546c77d2af4be4d13354523850e9fdbe63c82d7491c3 3 | size 812313 4 | -------------------------------------------------------------------------------- /public/media/zuplo-api-keys/image-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fb3b215983982a5e992eeedf3eb50d97318bb731b25e5d0224ff550984f56045 3 | size 220405 4 | -------------------------------------------------------------------------------- /public/media/zuplo-api-keys/image-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:78f1f11b6beef406c0e32cfae9f96bc564077be3a6a63da3c452d7dac0a91214 3 | size 35278 4 | -------------------------------------------------------------------------------- /public/media/zuplo-api-keys/image-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aa357aa1c8081c631caaf6cfe14981cb17c49029807bcced6add058b789d106b 3 | size 78187 4 | -------------------------------------------------------------------------------- /public/media/zuplo-api-keys/image-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:79f23d514e56f5e341da172f37f88171b0b71dac06ca4db952f802a772e2a693 3 | size 27916 4 | -------------------------------------------------------------------------------- /public/media/zuplo-api-keys/image-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:92fc57c99157c866a489c7a32eb2bc2bf38211c604f635fbd4620e7718e45a39 3 | size 69558 4 | -------------------------------------------------------------------------------- /public/media/zuplo-api-keys/image-6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:72af189d226d5d10e13057faad70f3aebefc3d88aa0ce6936bb04b6ca8965249 3 | size 93774 4 | -------------------------------------------------------------------------------- /public/media/zuplo-api-keys/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:979cb29b6f1e13151db0ffa16066b48d3f621379f391072e38b96f0e1e40f96e 3 | size 156815 4 | -------------------------------------------------------------------------------- /public/policies/ab-test-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/ab-test-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/acl-policy-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/api-key-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/api-key-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/archive-request-aws-s3-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/archive-request-azure-storage-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/archive-response-aws-s3-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/archive-response-azure-storage-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/audit-log-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/auth0-jwt-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/basic-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/brownout-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /public/policies/caching-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/change-method-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/clear-headers-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/clear-headers-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/complex-rate-limit-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/composite-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/policies/composite-outbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/policies/custom-code-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/custom-code-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/firebase-jwt-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | firebase_icon 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/policies/formdata-to-json-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/geo-filter-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/graphql-complexity-limit-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/policies/graphql-disable-introspection-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/policies/hmac-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/ip-restriction-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/jwt-scopes-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/ldap-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/mock-api-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/monetization-inbound.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/policies/mtls-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/open-id-jwt-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/prompt-injection-outbound.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/policies/quota-inbound.svg: -------------------------------------------------------------------------------- 1 | 3 | 5 | -------------------------------------------------------------------------------- /public/policies/rate-limit-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/rbac-policy-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/remove-headers-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/remove-headers-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/remove-query-params-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/replace-string-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/request-size-limit-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/request-validation-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/require-origin-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /public/policies/secret-masking-outboud.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/policies/semantic-cache-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/set-body-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/policies/set-headers-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/set-headers-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/set-query-params-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/set-status-outbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/policies/sleep-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/transform-body-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/transform-body-outbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/upstream-firebase-admin-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | firebase_icon 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/policies/upstream-firebase-user-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | firebase_icon 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/policies/upstream-gcp-federated-auth-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/policies/upstream-gcp-jwt-inbound.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/policies/validate-json-schema-inbound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/policies/xml-to-json-outbound.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/styles/inkeep.css: -------------------------------------------------------------------------------- 1 | #inkeep-widget-root { 2 | --ai-chat-radius: 0.25rem; 3 | --ai-chat-light-background: #f9fafb; 4 | } 5 | 6 | .ikp-ai-chat__header-toolbar { 7 | display: none; 8 | } 9 | 10 | .ikp-ai-chat__scrollable-page-content { 11 | border-top-left-radius: var(--ai-chat-radius); 12 | border-top-right-radius: var(--ai-chat-radius); 13 | } 14 | 15 | .ikp-ai-chat-footer__content-wrapper { 16 | border-bottom-left-radius: var(--ai-chat-radius); 17 | border-bottom-right-radius: var(--ai-chat-radius); 18 | } 19 | 20 | [data-theme="light"] .ikp-ai-chat__scrollable-page-content { 21 | background: var(--ai-chat-light-background); 22 | } 23 | 24 | [data-theme="light"] .ikp-ai-chat-footer__content-wrapper { 25 | background: var(--ai-chat-light-background); 26 | } 27 | 28 | [data-theme="light"] .ikp-ai-chat__message-box { 29 | box-shadow: none; 30 | border: 1px solid #e0e0e0; 31 | background: #fff; 32 | } 33 | 34 | /* Remove weird blur effect on footer */ 35 | .ikp-ai-chat-footer__content-wrapper::before { 36 | display: none; 37 | } 38 | -------------------------------------------------------------------------------- /redirects.mjs: -------------------------------------------------------------------------------- 1 | import { readFileSync, writeFileSync } from "fs"; 2 | import { join } from "path"; 3 | const json = readFileSync(join(process.cwd(), "vercel.json"), "utf8"); 4 | const data = JSON.parse(json); 5 | 6 | let redirects = {}; 7 | data.redirects.forEach((redirect) => { 8 | let source = redirect.source; 9 | if (source.endsWith("/")) { 10 | source = source.slice(0, -1); 11 | } 12 | redirects[source] = redirect.destination; 13 | }); 14 | 15 | let newRedirects = []; 16 | Object.entries(redirects).forEach(([source, destination]) => { 17 | newRedirects.push({ 18 | source: `${source}{/}?`, 19 | destination, 20 | permanent: true, 21 | }); 22 | }); 23 | 24 | const outJson = JSON.stringify({ redirects: newRedirects }, null, 2); 25 | writeFileSync(join(process.cwd(), "vercel.json"), outJson, "utf-8"); 26 | -------------------------------------------------------------------------------- /scripts/fix-markdown.ts: -------------------------------------------------------------------------------- 1 | export const fixMarkdown = (content: string) => 2 | content 3 | .replaceAll(/\.mdx?(#.*?)?\)/gm, "$1)") 4 | // replace outdated directives with correct syntax 5 | .replaceAll(/:::\s([^\n]+)/gm, ":::$1") 6 | // /^(.*?)\s*{#([\w-]+)}$ 7 | // replace custom slug ids: 8 | .replaceAll(/^(#+.*?)\s*{#([\w-]+)}/gm, "$1") 9 | .replaceAll( 10 | /:::(tip|info|note|caution|warning|danger)\s([^\n]+)/gm, 11 | ':::$1{title="$2"}', 12 | ) 13 | .replaceAll(/:::\w+{title="[^"]*"}/g, (m) => m.replaceAll(/\n/g, "")); 14 | -------------------------------------------------------------------------------- /scripts/get-calendly-event-uuid.mjs: -------------------------------------------------------------------------------- 1 | const USER_EMAIL = "josh@zuplo.com"; 2 | const EVENT_URL = "https://calendly.com/d/3px-m7m-7ym/call-with-api-experts"; 3 | 4 | const init = { 5 | headers: { 6 | Authorization: `Bearer ${process.env.CALENDLY_API_KEY}`, 7 | }, 8 | }; 9 | const members = await fetch( 10 | "https://api.calendly.com/organization_memberships?organization=https://api.calendly.com/organizations/EDHBV6XVYEON7GCR", 11 | init, 12 | ).then((response) => response.json()); 13 | 14 | const member = members.collection.find( 15 | (member) => member.user.email === USER_EMAIL, 16 | ); 17 | 18 | const events = await fetch( 19 | `https://api.calendly.com/event_types?user=${member.user.uri}`, 20 | init, 21 | ).then((response) => response.json()); 22 | 23 | const event = events.collection.find( 24 | (event) => event.scheduling_url === EVENT_URL, 25 | ); 26 | console.log(event.uri.replace("https://api.calendly.com/event_types/", "")); 27 | -------------------------------------------------------------------------------- /scripts/get-policies.sh: -------------------------------------------------------------------------------- 1 | rm -rf temp 2 | RANDOM=$(curl https://uuid.new) 3 | curl https://cdn.zuplo.com/policies/runtime/policies.zip -o runtime.zip 4 | curl https://cdn.zuplo.com/policies/graphql/policies.zip -o graphql.zip 5 | unzip -q graphql.zip -d temp 6 | unzip -q runtime.zip -d temp 7 | rm graphql.zip 8 | rm runtime.zip -------------------------------------------------------------------------------- /scripts/screenshots.sh: -------------------------------------------------------------------------------- 1 | shot-scraper auth \ 2 | https://portal.zuplo.com \ 3 | auth.json -------------------------------------------------------------------------------- /scripts/update-api.mjs: -------------------------------------------------------------------------------- 1 | import { writeFileSync } from "fs"; 2 | 3 | const response = await fetch("https://dev.zuplo.com/openapi"); 4 | const data = await response.json(); 5 | 6 | data.servers[0].url = "https://dev.zuplo.com"; 7 | data.servers[0].description = "Zuplo API"; 8 | 9 | writeFileSync("./api.json", JSON.stringify(data, null, 2), "utf-8"); 10 | -------------------------------------------------------------------------------- /scripts/verify-redirects.mjs: -------------------------------------------------------------------------------- 1 | import fs from "fs"; 2 | 3 | const url = "https://zuplo.com"; 4 | 5 | const checkUrl = async (url) => { 6 | try { 7 | const response = await fetch(url); 8 | if (response.status !== 200) { 9 | console.warn(response.status, url); 10 | } 11 | } catch (err) { 12 | console.error(`ERROR ${url} - ${err.message}`); 13 | } 14 | }; 15 | 16 | const checkEntry = async (entry) => { 17 | await checkUrl(`${url}${entry.source}`); 18 | //100ms delay 19 | await new Promise((res) => { 20 | setTimeout(res, 100); 21 | }); 22 | }; 23 | 24 | const main = async () => { 25 | const redirectsContent = fs.readFileSync("_redirects").toString(); 26 | 27 | const lines = redirectsContent.split("\n"); 28 | 29 | const data = lines.map((line) => { 30 | const items = line.split(" "); 31 | return { 32 | source: items[0], 33 | target: items[1], 34 | code: items[2], 35 | }; 36 | }); 37 | 38 | const errors = []; 39 | 40 | data.forEach(checkEntry); 41 | }; 42 | 43 | main(); 44 | -------------------------------------------------------------------------------- /src/DocusaurusDocsLicense.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Zudoku takes inspiration from some of the great features os Docusaurus. 3 | * As such we duplicate some of the Docusaurus documentation to provide 4 | * a consistent experience and make migration easier. 5 | * 6 | * Docusaurus Docs are licensed under Creative Commons Attribution 4.0 7 | * International (CC BY 4.0). This means that any doc we copy content from 8 | * needs to be attributed and linked to the original source. 9 | */ 10 | export function DocusaurusDocsLicense({ sourceUrl }: { sourceUrl: string }) { 11 | return ( 12 |

13 | Portions of this document are adapted from from the{" "} 14 | Docusaurus project, created by Meta 15 | Platforms, Inc., and is licensed under the{" "} 16 | 17 | Creative Commons Attribution 4.0 International 18 | 19 | (CC BY 4.0) license. The original document 20 | has been modified. 21 |

22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /src/EnterpriseFeature.tsx: -------------------------------------------------------------------------------- 1 | import { Callout } from "zudoku/components"; 2 | 3 | export function EnterpriseFeature({ name }: { name?: string }) { 4 | return ( 5 | 6 |

7 | {name ?? "This feature"} is available as an add-on as part of an 8 | enterprise plan. If you would like to purchase this feature, please 9 | contact us at sales@zuplo.com or 10 | reach out to your account manager. 11 |

12 |

13 | Most enterprise features can be used in a trial mode for a limited time. 14 | Feel free to use enterprise features for development and testing 15 | purposes. 16 |

17 |
18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /src/HeadNavigation.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Button } from "zudoku/components"; 3 | 4 | export const HeadNavigation = () => { 5 | return ( 6 |
7 | 10 | 13 |
14 | ); 15 | }; 16 | -------------------------------------------------------------------------------- /src/ZupIt.tsx: -------------------------------------------------------------------------------- 1 | import { Callout } from "zudoku/components"; 2 | 3 | export default function ZupIt({ repoUrl }: { repoUrl: string }) { 4 | return ( 5 | 6 |

7 | This sample is available on{" "} 8 | 9 | GitHub 10 | {" "} 11 | or click the button below to open the code directly in the portal.{" "} 12 |

13 | 17 | ZupIt 18 | 19 |
20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /src/bundles.issues.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import type { JSX } from "react/jsx-runtime"; 3 | 4 | type NodeModuleIssue = { 5 | name: string; 6 | notes: JSX.Element; 7 | }; 8 | 9 | /** 10 | * This file contains the configuration for known issues with bundled modules. 11 | 12 | */ 13 | export const nodeModuleIssues: NodeModuleIssue[] = [ 14 | { 15 | name: "@aws-sdk/client-lambda", 16 | notes: ( 17 | <> 18 | This module does not function correctly. It cannot be used to call 19 | Lambda functions from a Zuplo function. It is here for utility purposes 20 | only. Consider the{" "} 21 | AWS Lambda handler instead. 22 | 23 | ), 24 | }, 25 | ]; 26 | -------------------------------------------------------------------------------- /src/diagrams/common/BaseNode.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { cn } from "../../utils"; 3 | 4 | export const BaseNode = React.forwardRef< 5 | HTMLDivElement, 6 | React.HTMLAttributes & { selected?: boolean } 7 | >(({ className, selected, ...props }, ref) => ( 8 |
19 | )); 20 | BaseNode.displayName = "BaseNode"; 21 | -------------------------------------------------------------------------------- /src/diagrams/common/Icon.tsx: -------------------------------------------------------------------------------- 1 | import { LucideProps } from "lucide-react"; 2 | import dynamicIconImports from "lucide-react/dynamicIconImports"; 3 | import { lazy, Suspense } from "react"; 4 | 5 | const fallback = ( 6 |
7 | ); 8 | 9 | export type IconName = keyof typeof dynamicIconImports; 10 | 11 | interface IconProps extends Omit { 12 | name: IconName; 13 | } 14 | 15 | const Icon = ({ name, ...props }: IconProps) => { 16 | const LucideIcon = lazy(dynamicIconImports[name]); 17 | 18 | return ( 19 | 20 | 21 | 22 | ); 23 | }; 24 | 25 | export default Icon; 26 | -------------------------------------------------------------------------------- /src/diagrams/common/LabeledGroup.tsx: -------------------------------------------------------------------------------- 1 | import { Node, NodeProps } from "@xyflow/react"; 2 | import React from "react"; 3 | import { BaseNode } from "./BaseNode"; 4 | type _react = typeof React; 5 | 6 | type LabeledGroupNode = Node<{ 7 | label: string; 8 | }>; 9 | 10 | export function LabeledGroupNode({ 11 | data, 12 | selected, 13 | }: NodeProps) { 14 | return ( 15 | 19 | {data.label && ( 20 |
21 | {data.label} 22 |
23 | )} 24 |
25 | ); 26 | } 27 | 28 | LabeledGroupNode.displayName = "LabeledGroupNode"; 29 | -------------------------------------------------------------------------------- /src/diagrams/common/index.ts: -------------------------------------------------------------------------------- 1 | import Diagram from "./Diagram.js"; 2 | export { Position } from "@xyflow/react"; 3 | export { DiagramBuilder } from "./DiagramBuilder.js"; 4 | export { Diagram }; 5 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | import { clsx, type ClassValue } from "clsx"; 2 | import { twMerge } from "tailwind-merge"; 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)); 6 | } 7 | -------------------------------------------------------------------------------- /src/zudoku-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | interface ImportMetaEnv { 4 | readonly USE_IMAGE_CDN: string; 5 | // more env variables... 6 | } 7 | 8 | interface ImportMeta { 9 | readonly env: ImportMetaEnv; 10 | } 11 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | // This file is mainly for IDE integration 2 | import tailwind from "zudoku/tailwind"; 3 | 4 | export default tailwind; 5 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "lib": ["ESNext", "DOM", "DOM.Iterable", "WebWorker"], 5 | "useDefineForClassFields": true, 6 | "skipLibCheck": true, 7 | "skipDefaultLibCheck": true, 8 | "useUnknownInCatchVariables": false, 9 | "strict": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "noEmit": true, 12 | "jsx": "react-jsx", 13 | "esModuleInterop": true, 14 | "module": "esnext", 15 | "moduleResolution": "bundler", 16 | "resolveJsonModule": true, 17 | "isolatedModules": true 18 | }, 19 | "include": [ 20 | "src/**/*.{ts,tsx}", 21 | "sidebar.ts", 22 | "zudoku.config.tsx", 23 | "src/zudoku-env.d.ts" 24 | ], 25 | "exclude": ["node_modules", "policies", "temp", "dist"] 26 | } 27 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sentryVitePlugin } from "@sentry/vite-plugin"; 2 | import { defineConfig } from "vite"; 3 | 4 | export default defineConfig({ 5 | build: { 6 | sourcemap: true, // Source map generation must be turned on 7 | }, 8 | plugins: [ 9 | // Put the Sentry vite plugin after all other plugins 10 | process.env.VERCEL && 11 | sentryVitePlugin({ 12 | authToken: process.env.SENTRY_AUTH_TOKEN, 13 | org: "zuplo", 14 | project: "docs", 15 | }), 16 | ], 17 | }); 18 | --------------------------------------------------------------------------------