diff --git a/.vale.ini b/.vale.ini index 42143a4860..f48b9831aa 100644 --- a/.vale.ini +++ b/.vale.ini @@ -1,5 +1,6 @@ StylesPath = .vale/styles MinAlertLevel = suggestion +Vocab = ngrok Packages = Google, MDX [*.mdx] -BasedOnStyles = Google \ No newline at end of file +BasedOnStyles = Google diff --git a/.vale/styles/Google/Headings.yml b/.vale/styles/Google/Headings.yml index cc2525b480..aaa7fe7caf 100644 --- a/.vale/styles/Google/Headings.yml +++ b/.vale/styles/Google/Headings.yml @@ -1,7 +1,7 @@ extends: capitalization message: "'%s' should use sentence-style capitalization." link: "https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings" -level: warning +level: error scope: heading match: $sentence indicators: diff --git a/.vale/styles/Google/WordList.yml b/.vale/styles/Google/WordList.yml index d65bab0d5b..8f18e07db2 100644 --- a/.vale/styles/Google/WordList.yml +++ b/.vale/styles/Google/WordList.yml @@ -1,20 +1,19 @@ extends: substitution message: "Use '%s' instead of '%s'." link: "https://developers.google.com/style/word-list" -level: warning +level: error ignorecase: false action: name: replace swap: "(?:API Console|dev|developer) key": API key "(?:cell ?phone|smart ?phone)": phone|mobile phone - "(?:e-mail|Email|E-mail)": email + "(?:e-mail|E-mail)": email "(?:ok|Okay)": OK|okay "(?:WiFi|wifi)": Wi-Fi '[\.]+apk': APK '3\-D': 3D "tap (?:&|and) hold": touch and hold - "un(?:check|select)": clear action bar: app bar Ajax: AJAX a\.k\.a|aka: or|also known as @@ -30,18 +29,15 @@ swap: in order to: to long press: touch and hold network IP address: internal IP address - Ngrok: ngrok omnibox: address bar - regex: regular expression SHA1: SHA-1|HAS-SHA1 sign into: sign in to - sign-?on: single sign-on static IP address: static external IP address stylesheet: style sheet synch: sync tablename: table name tablet: device touch: tap - url: URL + vs\.: versus World Wide Web: web diff --git a/.vale/styles/config/vocabularies/ngrok/accept.txt b/.vale/styles/config/vocabularies/ngrok/accept.txt new file mode 100644 index 0000000000..af6aca5560 --- /dev/null +++ b/.vale/styles/config/vocabularies/ngrok/accept.txt @@ -0,0 +1,116 @@ +(API|api)(s)? +(SDK|sdk)(s)? +[Dd]ogfood(ing)? +[Dd]oglab(bing)? +[Hh]omefooding +[Hh]omelab(s)? +[Hh]ostname(s)? +[Ii]ngress(ed|ing)? +[Oo]llama +[Pp]roxying +[Rr]insed +[Ss]imple[Ll]ogin +[Ss]mithery +[Vv]ijil +agentic +anonymized +authtoken +automations +Bazel +Buildkite +CloudFront +config +configs +coreruleset +CR[Ss] +CRD(s)? +datacenter(s)? +Datadog +DeepSeek +dev +devs +Docusaurus +doxx(ing)? +exfiltrate +footguns +freshrss +[Gg]eo +gists +GPU(s)? +Groq +HAProxy +hardcoded +immich +internet's +(IP|ip)(s)? +LLM(s)? +Lua +masse +MCP(s)? +middleware +monorepo +multicloud +multicluster +MySQL +nd +(nginx|NGINX) +ngrok +ngrokker(s)? +(OAuth|oauth) +operationalize +Postgre(s|SQL) +protonmail +[Pp]rox(y|ied) +proxmox +reframed +[Rr]epo +rollout +shortener +smidge +subcommand +toolset +Twilio +umami +uncopyable +upstreams +Vercel +Vin +VM(s)? +(VPN|vpn)(s)? +WIP(s)? +Wireguard +workshopping +shortener +[Ss]erverless +onboarded +Webflow +allowlist(s)? +pluggability +[Ff]ailover(s)? +[Dd]ataplane(s)? +[Cc]ontrolplane(s)? +[Ss]hinobi +[Pp]entest(s)? +[Cc]leartext +RPC(s)? +GPTBot +papercut(s)? +[Cc]omposable +architected +[Rr]untime(s)? +unregister +WAF(s)? +Uppal +[Pp]laintext +ASN(s)? +blocklist +namespace +GitHhub +livestream +[Kk]ubernetes +kube +kubectl +CIDR(s)? +discoverability +minikube +healthmed \ No newline at end of file diff --git a/.vale/styles/config/vocabularies/ngrok/reject.txt b/.vale/styles/config/vocabularies/ngrok/reject.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/agent/cli.mdx b/agent/cli.mdx index 064cfeb357..d59ea43ce3 100644 --- a/agent/cli.mdx +++ b/agent/cli.mdx @@ -59,7 +59,7 @@ ngrok http 80 --url https://api.example.com --pooling-enabled ngrok http 80 --url https://svc.internal ngrok tcp 5432 --url tcp://postgres.internal:5432 -# make your endpoint url addressable only from k8s clusters +# make your endpoint URL addressable only from k8s clusters # where you've installed the ngrok k8s operator ngrok http 80 --url https://example.namespace --binding kubernetes diff --git a/agent/config/v3.mdx b/agent/config/v3.mdx index 17886369c7..89ce07b311 100644 --- a/agent/config/v3.mdx +++ b/agent/config/v3.mdx @@ -684,7 +684,7 @@ Below are a collection of different agent configurations to serve as examples fo Here is a basic example configuration file, in this example we are authenticating using our authtoken and defining a single HTTPS endpoint named `basic` with a -endpoint url `basic.ngrok.app` and an upstream url of `localhost:8080`. +endpoint URL `basic.ngrok.app` and an upstream URL of `localhost:8080`. ```yaml # Version of the ngrok Agent Configuration file. Required. @@ -802,7 +802,7 @@ agent: # Endpoint Definitions endpoints: - # Endpoint with no endpoint url defined to get a randomly assigned ngrok address. + # Endpoint with no endpoint URL defined to get a randomly assigned ngrok address. - name: my_endpoint_name #url: http:// # uncomment this line if you want your endpoint to be HTTP, by default it's HTTPS upstream: diff --git a/agent/diagnose.mdx b/agent/diagnose.mdx index ebf41250b5..a7503ecf0e 100644 --- a/agent/diagnose.mdx +++ b/agent/diagnose.mdx @@ -30,7 +30,7 @@ Internet Connectivity TLS [ OK ] Localhost Connectivity Name Resolution [ OK ] -Ngrok Connectivity - Region: Auto (lowest latency) +ngrok Connectivity - Region: Auto (lowest latency) Name Resolution [ OK ] TCP [ OK ] TLS [ OK ] diff --git a/agent/index.mdx b/agent/index.mdx index bb85e0c9c0..74dee3a84c 100644 --- a/agent/index.mdx +++ b/agent/index.mdx @@ -347,7 +347,7 @@ tolerance window, it terminates the connection and begins reconnecting. ngrok's heartbeat mechanism allows it to recover from any type of network outage, even those caused by packet loss, dynamic IP changes, interface changes -(for example, WiFi to LTE) or complete network outages. +(for example, Wi-Fi to LTE) or complete network outages. The ngrok service also sends its own heartbeats to the agent which it uses to detect liveness and terminate dead connections. diff --git a/api-reference/kubernetes-operators.mdx b/api-reference/kubernetes-operators.mdx index 9df9685d34..7e8870c9fa 100644 --- a/api-reference/kubernetes-operators.mdx +++ b/api-reference/kubernetes-operators.mdx @@ -400,7 +400,7 @@ Returns a 200 response on success | `edge` | [Ref](#ref-fields) | the edge serving requests to this endpoint, if this is an edge endpoint | | `upstream_url` | string | the local address the tunnel forwards to | | `upstream_protocol` | string | the protocol the agent uses to forward with | -| `url` | string | the url of the endpoint | +| `url` | string | the URL of the endpoint | | `principal` | [Ref](#ref-fields) | The ID of the owner (bot or user) that owns this endpoint | | `traffic_policy` | string | The traffic policy attached to this endpoint | | `bindings` | List<string> | the bindings associated with this endpoint | diff --git a/errors/err_ngrok_702.mdx b/errors/err_ngrok_702.mdx index 9b24bf5958..15f7fcbb25 100644 --- a/errors/err_ngrok_702.mdx +++ b/errors/err_ngrok_702.mdx @@ -13,7 +13,7 @@ Too many connections! The tunnel session `SESSION` has violated the rate-limit p ### Additional Info - ngrok limits the number of inbound connections to your tunnels. -- Limits are imposed on connections, not requests. If your HTTP clients use persistent connections aka HTTP keep-alive (most modern ones do), you'll likely never hit this limit. +- Limits are imposed on connections, not requests. If your HTTP clients use persistent connections such as HTTP keep-alive (most modern ones do), you'll likely never hit this limit. - ngrok will return a `429` response to HTTP connections that exceed the rate limit. - Connections to TCP and TLS tunnels violating the rate limit will be closed without a response. diff --git a/faq/faq.mdx b/faq/faq.mdx index d49d6779b7..1076b95e6c 100644 --- a/faq/faq.mdx +++ b/faq/faq.mdx @@ -84,7 +84,7 @@ configurable](/universal-gateway/tcp-addresses/#address-assignment). ## Will the ngrok agent work if my network changes? -Yes. The ngrok agent is robust to all network changes. If you switch wifi +Yes. The ngrok agent is robust to all network changes. If you switch Wi-Fi networks or your modem restarts and you have a dynamic IP that changes, the ngrok agent will automatically detect this condition and re-establish connectivity with the ngrok cloud service. You don't need to take any manual diff --git a/getting-started/javascript.mdx b/getting-started/javascript.mdx index e8dcc21aae..73229be166 100644 --- a/getting-started/javascript.mdx +++ b/getting-started/javascript.mdx @@ -120,7 +120,7 @@ const ngrok = require('@ngrok/ngrok'); traffic_policy: '{"on_http_request": [{"actions": [{"type": "oauth","config": {"provider": "google"}}]}]}' }); - // Output ngrok url to console + // Output ngrok URL to console console.log(`Ingress established at ${listener.url()}`); })(); diff --git a/getting-started/kubernetes/endpoints.mdx b/getting-started/kubernetes/endpoints.mdx index 1fa6c33f1f..7b2ea6c580 100644 --- a/getting-started/kubernetes/endpoints.mdx +++ b/getting-started/kubernetes/endpoints.mdx @@ -13,7 +13,7 @@ When you use Kubernetes Endpoints, you can: - View changes to your local services immediately by [projecting your local development environment](https://ngrok.com/blog-post/kubernetes-dev-loop-projection) into a remote development or staging cluster. - Allow services in multiple clusters to communicate over a service mesh that doesn't require firewalls, VPNs, or port forwarding. -- Securely access your customer's APIs or databases (aka [site-to-site connectivity](/guides/site-to-site-connectivity/)). +- Securely access your customer's APIs or databases (via [site-to-site connectivity](/guides/site-to-site-connectivity/)). - Allow your Kubernetes-deployed services to call a webhook URL exposed with ngrok to speed up local development or CI jobs. You also don't need to expose your local services to the public internet or modify the ingress rules to remote clusters. diff --git a/getting-started/python.mdx b/getting-started/python.mdx index a2c570e081..e4a07972a6 100644 --- a/getting-started/python.mdx +++ b/getting-started/python.mdx @@ -129,7 +129,7 @@ listener = ngrok.forward( traffic_policy='{"on_http_request": [{"actions": [{"type": "oauth","config": {"provider": "google"}}]}]}' ) -# Output ngrok url to console +# Output ngrok URL to console print(f"Ingress established at {listener.url()}") # Keep the listener alive diff --git a/getting-started/rust.mdx b/getting-started/rust.mdx index be4aea128a..6e171ff26e 100644 --- a/getting-started/rust.mdx +++ b/getting-started/rust.mdx @@ -165,7 +165,7 @@ async fn main() -> Result<(), Box> { .listen_and_forward(Url::parse("http://localhost:8080").unwrap()) .await?; - println!("Ngrok tunnel established at {}", domain); + println!("ngrok tunnel established at {}", domain); // Wait indefinitely tokio::signal::ctrl_c().await?; diff --git a/guides/api-gateway/monitor-ngrok.mdx b/guides/api-gateway/monitor-ngrok.mdx index 792a244bfc..1844288ee1 100644 --- a/guides/api-gateway/monitor-ngrok.mdx +++ b/guides/api-gateway/monitor-ngrok.mdx @@ -62,7 +62,7 @@ To see more details about a request or to replay it, you need to enable full cap ![Enable full capture settings](./img/monitor-ngrok/enableFullCaptureAccount.png) - Then, return to your published API URL and refresh the browser page a few times to send fresh requests through ngrok. -- In the ngrok Traffic Inspector, click on the event at the top of the list. +- In the ngrok Traffic Inspector, click the event at the top of the list. The event should now show all the request and response details and content. If the full capture details don't appear, you may need to restart your ngrok agent in the terminal. @@ -100,7 +100,7 @@ Now you can observe what happens to rate-limited requests and also use Traffic I - Edit the `policy.yml` file and change `capacity` to `100` or another threshold you deem appropriate and restart your agent based on your form factor. -- In the Traffic Inspector, click on one of the `429` events, then click **Replay**. +- In the Traffic Inspector, click one of the `429` events, then click **Replay**. Note that the request now responds without error because you increased the rate limit for the given IP address of that request. ![Replay after rate limit adjustment](./img/monitor-ngrok/replayLimit.png) @@ -167,7 +167,7 @@ Your new widget will be available in the dashboard, allowing your support staff Since the sample API never returns errors, an easy way to test the `Errors in the last hour` widget is to stop the sample API Docker container and then try to browse to the site on the public ngrok endpoint. -If you want to create widgets for other log information, you can see which fields are available by reading the JSON of any event you click on in the log inspector. +If you want to create widgets for other log information, you can see which fields are available by reading the JSON of any event you click in the log inspector. ### Create a notification diff --git a/guides/device-gateway/agent.mdx b/guides/device-gateway/agent.mdx index f5aad362d0..081ba68171 100644 --- a/guides/device-gateway/agent.mdx +++ b/guides/device-gateway/agent.mdx @@ -183,7 +183,7 @@ wildcard domain for that factory's telemetry API. ## Create cloud endpoints for always-on API and database access Since the telemetry API and database must be always accessible, create permanent cloud endpoints that route traffic to their -internal endpoints. Create an HTTPs cloud endpoint for the API using the ngrok platform API. +internal endpoints. Create an HTTPS cloud endpoint for the API using the ngrok platform API. ```curl curl -X POST https://api.ngrok.com/endpoints \ @@ -234,7 +234,7 @@ curl -X POST \ ``` -Ensure your chosen domain has the proper TLS/SSL certs provisioned in order to create a secure, working connection. +Ensure your chosen domain has the proper TLS/SSL certs provisioned to create a secure, working connection. Now, `app.factory.com` is live—only for this session. diff --git a/guides/identity-aware-proxy/securing-with-oauth.mdx b/guides/identity-aware-proxy/securing-with-oauth.mdx index 5fd5772599..a4302a4715 100644 --- a/guides/identity-aware-proxy/securing-with-oauth.mdx +++ b/guides/identity-aware-proxy/securing-with-oauth.mdx @@ -3,7 +3,7 @@ title: Secure your applications with OAuth 2.0 sidebarTitle: Secure with OAuth 2.0 --- -Ngrok simplifies networking by creating secure ingress to any app, device, or service with a single command or line of code. It's an ingress-as-a-service platform that decouples ingress from infrastructure, removing the hassle of getting code online without provisioning proxies or VPNs. +ngrok simplifies networking by creating secure ingress to any app, device, or service with a single command or line of code. It's an ingress-as-a-service platform that decouples ingress from infrastructure, removing the hassle of getting code online without provisioning proxies or VPNs. If you're exposing endpoints with ngrok, it's important to keep them safe and secure. One way to protect them is by using OAuth, which requires visitors to sign in to view your app or webpage. This guide will walk you through the process of securing your ngrok endpoints with OAuth 2.0. diff --git a/guides/running-behind-firewalls.mdx b/guides/running-behind-firewalls.mdx index 5eb4637ba3..891980f701 100644 --- a/guides/running-behind-firewalls.mdx +++ b/guides/running-behind-firewalls.mdx @@ -6,7 +6,7 @@ description: Learn some troubleshooting and configuration tips for run ngrok beh When you need to deploy ngrok behind a corporate firewall, there may be additional steps that you will need to take to make sure ngrok is working properly. -As background, this is usually not an issue. Firewalls usually allow outbound connections, which is what an ngrok Agent makes in order to establish a session with the ngrok service and subsequently your tunnel. +As background, this is usually not an issue. Firewalls usually allow outbound connections, which is what an ngrok Agent makes to establish a session with the ngrok service and subsequently your tunnel. However, certain corporate firewalls have more restrictions around outbound connections. For example, we've seen that ngrok may be blocked on Fortinet firewalls. @@ -20,7 +20,7 @@ $ ngrok diagnose Name Resolution [ OK ] TCP [ OK ] TLS [ OK ] - Ngrok Connectivity + ngrok Connectivity Name Resolution [ OK ] TCP [ OK ] TLS [ OK ] @@ -86,7 +86,7 @@ kubectl logs -l "job-name=ngrok-diagnose" TLS [ OK ] Localhost Connectivity Name Resolution [ OK ] -Ngrok Connectivity - Region: Auto (lowest latency) +ngrok Connectivity - Region: Auto (lowest latency) Name Resolution [ OK ] TCP [ OK ] TLS [ OK ] diff --git a/guides/security-dev-productivity/hipaa-compliance.mdx b/guides/security-dev-productivity/hipaa-compliance.mdx index a04fa78686..3cf1ac996c 100644 --- a/guides/security-dev-productivity/hipaa-compliance.mdx +++ b/guides/security-dev-productivity/hipaa-compliance.mdx @@ -5,7 +5,7 @@ description: Read ngrok's recommendations for setting up ngrok services in a HIP --- The Health Insurance Portability and Accountability Act (HIPAA) is the US federal law enacted to protect patient health information. -The law sets stringent standards in order to secure electronic protected health information (ePHI/PHI). +The law sets stringent standards to secure electronic protected health information (ePHI/PHI). This page contains ngrok's recommendations for setting up ngrok services in a HIPAA-compliant manner. diff --git a/guides/security-dev-productivity/index.mdx b/guides/security-dev-productivity/index.mdx index d40b9b35e4..c737a897b1 100644 --- a/guides/security-dev-productivity/index.mdx +++ b/guides/security-dev-productivity/index.mdx @@ -38,7 +38,7 @@ Create a tunnel authtoken for each developer. This authtoken will be specific to ## Developer installs ngrok agent and defines an internal endpoint in ngrok.yml -Have the developer [install the ngrok agent](https://dashboard.ngrok.com/get-started/setup/) and then have them run the command below in order to ensure their agent uses the proper authtoken you provisioned for them in the previous step. +Have the developer [install the ngrok agent](https://dashboard.ngrok.com/get-started/setup/) and then have them run the command below to ensure their agent uses the proper authtoken you provisioned for them in the previous step. ```bash ngrok config add-authtoken diff --git a/guides/site-to-site-connectivity/index.mdx b/guides/site-to-site-connectivity/index.mdx index e88bf05980..3e2beaa22c 100644 --- a/guides/site-to-site-connectivity/index.mdx +++ b/guides/site-to-site-connectivity/index.mdx @@ -214,7 +214,7 @@ on_tcp_connect: url: tcp://operations-database.clinic1.internal:443 ``` -Finally, to secure our HTTPs cloud endpoint, let's add a check to make sure a specific header auth token is present in the request along with a JWT validation step before our REST API can be accessed. +Finally, to secure our HTTPS cloud endpoint, let's add a check to make sure a specific header auth token is present in the request along with a JWT validation step before our REST API can be accessed. Our traffic policy file for https://api-clinic1.clinic-network.com should look like this: @@ -283,7 +283,7 @@ curl -X POST https://api.ngrok.com/endpoints \ }' ``` -#### HTTPs Endpoint with JWT Validation +#### HTTPS Endpoint with JWT Validation ```bash curl -X POST https://api.ngrok.com/endpoints \ diff --git a/iam/users.mdx b/iam/users.mdx index 39a87607b3..ea950b7d2b 100644 --- a/iam/users.mdx +++ b/iam/users.mdx @@ -40,7 +40,7 @@ If you've forgotten your password, it can be reset at any time via the [login pa ![Screenshot of the login screen with an arrow pointing to the Forgot password? item](img/password_forgot.png) -From there, enter the email address you used to sign into your ngrok account, and select **recover password**. +From there, enter the email address you used to sign in to your ngrok account, and select **recover password**. ![Screenshot of recover password form](img/password_reset.png) @@ -98,7 +98,7 @@ Scroll down to **Multi Factor Authentication** and select **Enable** or **Disabl #### Lost access or recovery -If you lose access to your authenticator or device and do not have recovery codes downloaded, or have used all available codes, email [support@ngrok.com](mailto:support@ngrok.com) with the email you use to sign into your ngrok account. +If you lose access to your authenticator or device and do not have recovery codes downloaded, or have used all available codes, email [support@ngrok.com](mailto:support@ngrok.com) with the email you use to sign in to your ngrok account. ### Single Sign-On diff --git a/integrations/dashboard-sso/auth0-dashboard-sso-saml.mdx b/integrations/dashboard-sso/auth0-dashboard-sso-saml.mdx index 2c40cfddbd..bd135342bc 100644 --- a/integrations/dashboard-sso/auth0-dashboard-sso-saml.mdx +++ b/integrations/dashboard-sso/auth0-dashboard-sso-saml.mdx @@ -38,7 +38,7 @@ This should not be confused with configuring an ngrok endpoint to allow your app ## 3. Add the ngrok generated URLs to your Auth0 SAML application -1. Back in your Auth0 account, select your Application and click on the Addons tab. Again select the SAML2 Web App. In the popup window select the Settings tab. +1. Back in your Auth0 account, select your Application and click the Addons tab. Again select the SAML2 Web App. In the popup window select the Settings tab. 1. Paste in the Application Callback URL (ACS) obtained from the ngrok IdP settings - SAML Provider/Service Provider - ACS URL as seen above. 2. In the settings code block window paste in the following and Save: ```json diff --git a/integrations/dashboard-sso/okta-dashboard-sso-oidc.mdx b/integrations/dashboard-sso/okta-dashboard-sso-oidc.mdx index 42a893e91b..719e63efd7 100644 --- a/integrations/dashboard-sso/okta-dashboard-sso-oidc.mdx +++ b/integrations/dashboard-sso/okta-dashboard-sso-oidc.mdx @@ -1,7 +1,7 @@ --- title: Configuring Okta Single Sign-On (SSO) sidebarTitle: Okta (OpenID Connect) -description: Configure Okta SSO to sign into the ngrok dashboard +description: Configure Okta SSO to sign in to the ngrok dashboard --- This guide walks you through using Okta as an identity provider when signing into the ngrok dashboard. @@ -27,7 +27,7 @@ This should not be confused with configuring an ngrok endpoint so [application u ## 2. Download your SAML App metadata XML -1. Navigate to the "Sign On" Tab on the new app and click on "Actions" under the Active SHA-2 certificate +1. Navigate to the "Sign On" Tab on the new app and click "Actions" under the Active SHA-2 certificate 1. Click "View IdP metadata". ![](../img/okta/img/okta-view-cert.png) 1. In that new window, Select "Save As" from the File menu to save your metadata.xml file for uploading into ngrok in a later step. @@ -46,7 +46,7 @@ This should not be confused with configuring an ngrok endpoint so [application u ## 4. Add the ngrok generated URLs to your Okta SAML application -1. Back in your Okta account, on the "General" tab of your Okta app, click on "Edit" under "SAML Settings" +1. Back in your Okta account, on the "General" tab of your Okta app, click "Edit" under "SAML Settings" ![](/img/howto/dash-sso/okta-edit-app.png) 1. Click 'Next' on the 'General Settings' tab to get to the 'Configure SAML' tab. 1. Replace the values ngrok provided you. Put the ngrok 'ACS URL' value into Okta's "Single sign on URL" field. Put the ngrok 'SP Entity ID' value into Okta's "Audience URI (SP Entity ID)" field. diff --git a/integrations/endpoint-sso/azure-sso-saml.mdx b/integrations/endpoint-sso/azure-sso-saml.mdx index d8524d2909..a91e22bad8 100644 --- a/integrations/endpoint-sso/azure-sso-saml.mdx +++ b/integrations/endpoint-sso/azure-sso-saml.mdx @@ -123,7 +123,7 @@ For this step, we assume you have an app running locally (that is, on localhost: ![img/5-2.png](../img/azure-ad-b2c/img/5-2.png) -1. Copy the ngrok url on the Endpoints section +1. Copy the ngrok URL on the Endpoints section 1. Access your Edge application 1. In your browser, launch an incognito window diff --git a/integrations/endpoint-sso/curity-sso-oidc.mdx b/integrations/endpoint-sso/curity-sso-oidc.mdx index 8957929e38..b2e8a052c1 100644 --- a/integrations/endpoint-sso/curity-sso-oidc.mdx +++ b/integrations/endpoint-sso/curity-sso-oidc.mdx @@ -131,7 +131,7 @@ To configure an edge with Curity: 1. Click **Begin setup** and enter the following: ![Curity config in ngrok](../img/curity/img/curity-1.png) - - **Issuer URL**: Your Curity issuer url (that is, https://acme.com/oauth/v2/oauth-anonymous). + - **Issuer URL**: Your Curity issuer URL (that is, https://acme.com/oauth/v2/oauth-anonymous). - **Client ID**: The name of the client from Curity - **Client Secret**: The client secret copied from Curity @@ -161,7 +161,7 @@ For this step, we assume you have an app running locally (that is, on localhost: ![tunnel confirmed](../img/curity/img/curity-3.png) -1. In the test edge, copy the **endpoint URL**. (you will use this url to test the Curity Authentication) +1. In the test edge, copy the **endpoint URL**. (you will use this URL to test the Curity Authentication) ![tunnel url](../img/curity/img/curity-4.png) ## 4. Test the integration diff --git a/integrations/endpoint-sso/descope-sso-saml.mdx b/integrations/endpoint-sso/descope-sso-saml.mdx index 5391b51f67..aca1d4545c 100644 --- a/integrations/endpoint-sso/descope-sso-saml.mdx +++ b/integrations/endpoint-sso/descope-sso-saml.mdx @@ -55,7 +55,7 @@ To integrate ngrok with Descope SSO, you will need to: 1. In the popup window, enter `ngrok` in the **Name** field, make sure that `SAML` is selected under **Authentication protocol**, and then click **Create**. -1. On the **ngrok** application page, click on the download button next to **Descope Metadata (XML)** to download the Metadata file that you'll need later on. Make sure to leave this page open. +1. On the **ngrok** application page, click the download button next to **Descope Metadata (XML)** to download the Metadata file that you'll need later on. Make sure to leave this page open. 1. **Optional**: if you wish to change the [Auth Hosting URL](https://docs.descope.com/knowledgebase/general/authhostingapp/#usage), to use a different flow for ngrok SSO you can change that on this page, and click **Save**. diff --git a/integrations/endpoint-sso/fusionauth-sso-oidc.mdx b/integrations/endpoint-sso/fusionauth-sso-oidc.mdx index 6b2910fa21..b210dde11b 100644 --- a/integrations/endpoint-sso/fusionauth-sso-oidc.mdx +++ b/integrations/endpoint-sso/fusionauth-sso-oidc.mdx @@ -97,7 +97,7 @@ To configure an edge with FusionAuth: 1. Click **Begin setup** and enter the following: ![FusionAuth config in ngrok](../img/fusionauth/img/ngrok-edge.png) - - **Issuer URL**: Your FusionAuth tenant url (that is, https://acme.fusionauth.com). + - **Issuer URL**: Your FusionAuth tenant URL (that is, https://acme.fusionauth.com). - **Client ID**: The client id copied from FusionAuth - **Client Secret**: The client secret copied from FusionAuth @@ -127,7 +127,7 @@ For this step, we assume you have an app running locally (that is, on localhost: ![tunnel confirmed](../img/fusionauth/img/fa-3.png) -1. In the **Endpoints** section, copy the **endpoint URL**. (you will use this url to test the FusionAuth Authentication) +1. In the **Endpoints** section, copy the **endpoint URL**. (you will use this URL to test the FusionAuth Authentication) ![tunnel url](../img/fusionauth/img/ngrok-url.png) ## 3. Test the integration diff --git a/integrations/endpoint-sso/microsoft-sso-saml.mdx b/integrations/endpoint-sso/microsoft-sso-saml.mdx index 8752b44b63..38bfb16b60 100644 --- a/integrations/endpoint-sso/microsoft-sso-saml.mdx +++ b/integrations/endpoint-sso/microsoft-sso-saml.mdx @@ -59,7 +59,7 @@ To integrate ngrok with Microsoft Entra ID SSO, you will need to: ### Download the IdP metadata -1. From within the **Single sign-on** section on the ngrok Dashboard app, click on the **Download** option for **Federation Metadata XML**. Download the metadata XML. +1. From within the **Single sign-on** section on the ngrok Dashboard app, click the **Download** option for **Federation Metadata XML**. Download the metadata XML. ### Grant access to users and groups diff --git a/integrations/endpoint-sso/ms-entra-sso-saml_edges.mdx b/integrations/endpoint-sso/ms-entra-sso-saml_edges.mdx index 088d199843..98cf873503 100644 --- a/integrations/endpoint-sso/ms-entra-sso-saml_edges.mdx +++ b/integrations/endpoint-sso/ms-entra-sso-saml_edges.mdx @@ -68,7 +68,7 @@ To configure ngrok tunnels with Microsoft Entra ID, you must have: 1. To assign users/groups for this application, in the Getting Started section, click **1. Assign users and groups** > **Add user/group** 1. Set up single sign on with SAML - 1. In the Getting Started section, click on the box titled **2. Set up single sign on** > **SAML** + 1. In the Getting Started section, click the box titled **2. Set up single sign on** > **SAML** 1. Configure SAML. In the Basic SAML Configuration box click **Edit** ![img/2-4.png](../img/azure-ad/img/2-4.png) @@ -117,7 +117,7 @@ For this step, we assume you have an app running locally (that is, on localhost: ![img/4-2.png](../img/azure-ad/img/4-2.png) -1. Copy the ngrok url on the Endpoints section +1. Copy the ngrok URL on the Endpoints section 1. Access your Edge application 1. In your browser, launch an incognito window diff --git a/integrations/endpoint-sso/okta-sso-oidc.mdx b/integrations/endpoint-sso/okta-sso-oidc.mdx index 05c2f13938..7c09903ddc 100644 --- a/integrations/endpoint-sso/okta-sso-oidc.mdx +++ b/integrations/endpoint-sso/okta-sso-oidc.mdx @@ -93,7 +93,7 @@ ngrok can leverage Okta SSO in two ways: --url ``` -1. Copy the url available next to **Forwarding** (for example, `https://okta-sso-test.ngrok.app`). +1. Copy the URL available next to **Forwarding** (for example, `https://okta-sso-test.ngrok.app`). 1. Skip to **Step 3** @@ -111,7 +111,7 @@ To configure an edge with Okta: 1. Click **Begin setup** and enter the following: ![Okta config in ngrok](../img/okta/img/okta-1.png) - - **Issuer URL**: Your okta tenant url (that is, https://acme.oktapreview.com). + - **Issuer URL**: Your okta tenant URL (that is, https://acme.oktapreview.com). - **Client ID**: The client id copied from Okta - **Client Secret**: The client secret copied from Okta @@ -141,7 +141,7 @@ For this step, we assume you have an app running locally (that is, on localhost: ![tunnel confirmed](../img/okta/img/okta-3.png) -1. In the test edge, copy the **endpoint URL**. (you will use this url to test the Okta Authentication) +1. In the test edge, copy the **endpoint URL**. (you will use this URL to test the Okta Authentication) ![tunnel url](../img/okta/img/okta-4.png) ## 3. Test the integration diff --git a/integrations/endpoint-sso/okta-sso-saml.mdx b/integrations/endpoint-sso/okta-sso-saml.mdx index d2f741e492..fb5d14a1b7 100644 --- a/integrations/endpoint-sso/okta-sso-saml.mdx +++ b/integrations/endpoint-sso/okta-sso-saml.mdx @@ -59,7 +59,7 @@ To integrate ngrok with Okta SSO, you will need to: ### Download the IdP metadata -1. Navigate to the **Sign On** Tab on the new app and click on **Actions** under the Active SHA-2 certificate and select **View IdP metadata**. The metadata will open in a new tab. +1. Navigate to the **Sign On** Tab on the new app and click **Actions** under the Active SHA-2 certificate and select **View IdP metadata**. The metadata will open in a new tab. ![view xml metadata](../img/okta/img/okta-view-cert.png) 1. In the new tab, Select **Save As** from the File menu to save your metadata.xml file for uploading into ngrok in a later step. ![download xml](../img/okta/img/okta-save-as-xml.png) @@ -84,7 +84,7 @@ To configure an edge with Okta: - Click **HTTPS Edge** - Click the **pencil icon** next to "no description". Enter _Edge with Okta SSO_ as the edge name and click **Save**. 1. On the edge settings, click **SAML**. -1. Click **Begin setup** and click on **Upload XML** beside **IdP Metadata** under **Identity Provider** and select your metadata file saved from the steps above: +1. Click **Begin setup** and click **Upload XML** beside **IdP Metadata** under **Identity Provider** and select your metadata file saved from the steps above: ![Okta config in ngrok](../img/okta/img/okta-5.png) @@ -116,7 +116,7 @@ For this step, we assume you have an app running locally (that is, on localhost: ![tunnel confirmed](../img/okta/img/okta-3.png) -1. In the test edge, copy the **endpoint URL**. (you will use this url to test the Okta Authentication) +1. In the test edge, copy the **endpoint URL**. (you will use this URL to test the Okta Authentication) ![tunnel url](../img/okta/img/okta-4.png) ## 3. Test the integration diff --git a/integrations/endpoint-sso/salesforce-sso-oidc.mdx b/integrations/endpoint-sso/salesforce-sso-oidc.mdx index 88916a26e3..a6cf489fa7 100644 --- a/integrations/endpoint-sso/salesforce-sso-oidc.mdx +++ b/integrations/endpoint-sso/salesforce-sso-oidc.mdx @@ -17,7 +17,7 @@ The OIDC traffic policy action allows you to control access to your upstream ser ## Why use Salesforce as an IdP -Using salesforce OAuth enables you to give users of your application, API, Database, SSO without needed separate credentials. Ngrok also handles that authentication transparently. Your organization’s personnel in charge of security and administration can also manage all external application integrations from one place. +Using salesforce OAuth enables you to give users of your application, API, Database, SSO without needed separate credentials. ngrok also handles that authentication transparently. Your organization’s personnel in charge of security and administration can also manage all external application integrations from one place. ## What you'll need @@ -62,7 +62,7 @@ Using salesforce OAuth enables you to give users of your application, API, Datab ## 5. Obtain the Client ID and Client Secret -1. After saving your external client app, go to **Settings** and then under **OAuth Settings** click on the following button to see your Client ID and Client Secret: +1. After saving your external client app, go to **Settings** and then under **OAuth Settings** click the following button to see your Client ID and Client Secret: ![Client ID and Client Secret](../img/salesforce/img/keyandsecret.png) diff --git a/integrations/guides/linode-gslb_edges.mdx b/integrations/guides/linode-gslb_edges.mdx index 7321369a5f..53d630a4d7 100644 --- a/integrations/guides/linode-gslb_edges.mdx +++ b/integrations/guides/linode-gslb_edges.mdx @@ -297,7 +297,7 @@ You now have a globally load-balanced API deployment using three Linode VMs, thr From here, you have many options for extending your use of ngrok's GSLB: - Spread the load from user requests further by creating additional deployments in more regions, adding a new Tunnel Group backend for each, and [patching](/api-reference/weightedbackends/update) your Weighted Backend configuration. -- Add more VMs to a region with existing deployments and add them to the relevant Tunnel Group backend. Ngrok will then load-balance between those specific VMs equally _after_ weighting requests on the Backend level. +- Add more VMs to a region with existing deployments and add them to the relevant Tunnel Group backend. ngrok will then load-balance between those specific VMs equally _after_ weighting requests on the Backend level. - Alternatively, use [NodeBalancers](https://www.linode.com/docs/products/networking/nodebalancers/) for - Provision a Kubernetes cluster with the same workload and the ngrok [Kubernetes Operator](/k8s/) to load-balance between VM- and Kubernetes-based deployments of the same API or application. - Use your Weighted Backend for A/B tests by changing your deployments between different regions and VMs. diff --git a/integrations/kubernetes-ingress/apiops.mdx b/integrations/kubernetes-ingress/apiops.mdx index c17c26ef06..760260a1b5 100644 --- a/integrations/kubernetes-ingress/apiops.mdx +++ b/integrations/kubernetes-ingress/apiops.mdx @@ -117,7 +117,7 @@ Now that your demo API is forked and properly configured on GitHub, you can conn ![Viewing all applications registreed to an Argo CD instance](../img/argocd/img/argo-tile.png) - You can still click on the app to view additional details about the deployment _and_ the Git repository on which it is based. + You can still click the app to view additional details about the deployment _and_ the Git repository on which it is based. 1. Use the Argo CD CLI to perform a manual first sync of your registered app against your Git repository. @@ -129,7 +129,7 @@ Now that your demo API is forked and properly configured on GitHub, you can conn ![alt text](../img/argocd/img/argo-synced.png) - You can also navigate to the **Edges** view of your [ngrok dashboard](https://dashboard.ngrok.com/edges), then click on the Edge associated with the ngrok domain you created earlier, to see that the ngrok Kubernetes Operator pushed its definitions to the ngrok Edge via secure tunnel. + You can also navigate to the **Edges** view of your [ngrok dashboard](https://dashboard.ngrok.com/edges), then click the Edge associated with the ngrok domain you created earlier, to see that the ngrok Kubernetes Operator pushed its definitions to the ngrok Edge via secure tunnel. ![alt text](../img/argocd/img/ngrok-tunnel.png) diff --git a/integrations/kubernetes-ingress/azure-ad-k8s.mdx b/integrations/kubernetes-ingress/azure-ad-k8s.mdx index a82e1b70f5..21d533cd64 100644 --- a/integrations/kubernetes-ingress/azure-ad-k8s.mdx +++ b/integrations/kubernetes-ingress/azure-ad-k8s.mdx @@ -151,7 +151,7 @@ Next, you'll configure and deploy the [ngrok Kubernetes Operator](https://github Your Kubernetes-based app is now publicly accessible through the ngrok cloud service—to restrict access to only authorized users with proper Microsoft Entra ID credentials, you first need to enable SAML on your Edge. -1. Navigate to the [**Edges** section](https://dashboard.ngrok.com/edges) of the ngrok dashboard and click on the Edge created by the ngrok Kubernetes Operator. The domain name should match your `NGROK_DOMAIN`, and you should see **Created by kubernetes-ingress-controller** in the edge's description. +1. Navigate to the [**Edges** section](https://dashboard.ngrok.com/edges) of the ngrok dashboard and click the Edge created by the ngrok Kubernetes Operator. The domain name should match your `NGROK_DOMAIN`, and you should see **Created by kubernetes-ingress-controller** in the edge's description. ![Finding your edge in the ngrok dashboard](../img/azure-ad/img/k8s_edge-dashboard.png) diff --git a/integrations/kubernetes-ingress/azure-aks-k8s.mdx b/integrations/kubernetes-ingress/azure-aks-k8s.mdx index b5da9587e7..36fe1f1125 100644 --- a/integrations/kubernetes-ingress/azure-aks-k8s.mdx +++ b/integrations/kubernetes-ingress/azure-aks-k8s.mdx @@ -303,7 +303,7 @@ To showcase how this integration works, you'll deploy the [AKS Store](https://gi type: LoadBalancer ``` -1. Click **Add** to deploy the demo app. To double-check services deployed successfully, click on **Workloads** in the Azure Portal and look for `store-front`, `rabbitmq`, `product-service`, and `order-service` in the `default` namespace. If you prefer the CLI, you can run `kubectl get pods` for the same information. +1. Click **Add** to deploy the demo app. To double-check services deployed successfully, click **Workloads** in the Azure Portal and look for `store-front`, `rabbitmq`, `product-service`, and `order-service` in the `default` namespace. If you prefer the CLI, you can run `kubectl get pods` for the same information. ## Add ngrok's Kubernetes ingress to your demo app @@ -338,7 +338,7 @@ Next, you'll configure and deploy the [ngrok Kubernetes Operator](https://github 1. Click **Add** to deploy the ingress configuration. - You can check on the status of the ingress deployment in the Azure Portal at **Services and ingresses**→**Ingresses**. You should see the `store-ingress` name and your ngrok subdomain. If you need to edit your ingress configuration in the future, click on the ingress item and then the **YAML** tab. + You can check on the status of the ingress deployment in the Azure Portal at **Services and ingresses**→**Ingresses**. You should see the `store-ingress` name and your ngrok subdomain. If you need to edit your ingress configuration in the future, click the ingress item and then the **YAML** tab. 1. Navigate to your ngrok subdomain, for example, `https://NGROK_DOMAIN.ngrok.app`, in your browser to see the demo app in action. Behind the scenes, ngrok's cloud service routed your request into the ngrok Kubernetes Operator, which then passed it to the `store-front` service. diff --git a/integrations/kubernetes-ingress/consul-k8s.mdx b/integrations/kubernetes-ingress/consul-k8s.mdx index 69143f0207..caf56afedb 100644 --- a/integrations/kubernetes-ingress/consul-k8s.mdx +++ b/integrations/kubernetes-ingress/consul-k8s.mdx @@ -124,7 +124,7 @@ traffic between the ngrok Kubernetes Operator and our services. 1. Install the ngrok Kubernetes Operator - Next, install the ngrok Kubernetes Operator into our cluster. We want the controller pods to be in the Consul service mesh in order to proxy traffic to our other services. We'll use pod annotations to enable the Consul Connect sidecar injector and allow outbound traffic to use the Consul mesh. Consul documents how to set these 2 annotations in the [Configure Operators for Consul on Kubernetes](https://developer.hashicorp.com/consul/docs/k8s/connect/ingress-controllers) doc. + Next, install the ngrok Kubernetes Operator into our cluster. We want the controller pods to be in the Consul service mesh to proxy traffic to our other services. We'll use pod annotations to enable the Consul Connect sidecar injector and allow outbound traffic to use the Consul mesh. Consul documents how to set these 2 annotations in the [Configure Operators for Consul on Kubernetes](https://developer.hashicorp.com/consul/docs/k8s/connect/ingress-controllers) doc. ```yaml # This annotation is required to enable the Consul Connect sidecar injector diff --git a/integrations/kubernetes-ingress/digitalocean-k8s.mdx b/integrations/kubernetes-ingress/digitalocean-k8s.mdx index cca82c256c..6e5deb4344 100644 --- a/integrations/kubernetes-ingress/digitalocean-k8s.mdx +++ b/integrations/kubernetes-ingress/digitalocean-k8s.mdx @@ -134,7 +134,7 @@ Click **Normal user** to see a little more—it's not much to look at, but it's To demonstrate how ingress configuration and [OAuth support](/traffic-policy/actions/oauth/) work, you can quickly launch an open-source observability stack including [Prometheus](https://github.com/prometheus), [Grafana](https://github.com/grafana/grafana), and [Alertmanager](https://github.com/prometheus/alertmanager/) on your cluster. -1. Head over to the [Kubernetes Clusters](https://cloud.digitalocean.com/kubernetes/clusters/) dashboard on the DigitalOcean console and click on the cluster you created previously. +1. Head over to the [Kubernetes Clusters](https://cloud.digitalocean.com/kubernetes/clusters/) dashboard on the DigitalOcean console and click the cluster you created previously. 1. Click the **Marketplace** tab, find or search for **Kubernetes Monitoring Stack**, and click **Install**. Confirm your choice. diff --git a/integrations/kubernetes-ingress/rancher-k8s.mdx b/integrations/kubernetes-ingress/rancher-k8s.mdx index d050c6ca1f..13d6bb00d2 100644 --- a/integrations/kubernetes-ingress/rancher-k8s.mdx +++ b/integrations/kubernetes-ingress/rancher-k8s.mdx @@ -95,7 +95,7 @@ docker logs [DOCKER_NAME] 2>&1 | grep "Bootstrap Password:" ![Configure the Rancher installation URL](../img/rancher/img/rancher_install-url.png) - When the Rancher dashboard loads, Rancher should have already deployed a single K3s-based cluster named `local`—click on the cluster's name to explore. Rancher recommends that its server management and your workloads run on separate clusters, which is what you'll do next. + When the Rancher dashboard loads, Rancher should have already deployed a single K3s-based cluster named `local`—click the cluster's name to explore. Rancher recommends that its server management and your workloads run on separate clusters, which is what you'll do next. 1. Create a new [RKE2](https://docs.rke2.io/) cluster by clicking **Create** in your Rancher dashboard home, then **Custom** to deploy a custom cluster. Give your cluster a name, and under the **System Services** heading, uncheck diff --git a/integrations/kubernetes-ingress/spectro-cloud-k8s.mdx b/integrations/kubernetes-ingress/spectro-cloud-k8s.mdx index 941f4760e5..145c27f6e7 100644 --- a/integrations/kubernetes-ingress/spectro-cloud-k8s.mdx +++ b/integrations/kubernetes-ingress/spectro-cloud-k8s.mdx @@ -54,7 +54,7 @@ If you already have a cluster profile, skip to [Step 4: Create your cluster with ![Choose a Kubernetes provider for your profile](../img/spectro-cloud/img/choose-provider.png) -1. In the **Profile Layers** tab, click on your base OS pack—in most cases, there will be a single option, like `Container-Optimized OS` or `Linux`. This is where you would add customizations or additional manifests, but you can leave the settings at their default and click **Next layer**. +1. In the **Profile Layers** tab, click your base OS pack—in most cases, there will be a single option, like `Container-Optimized OS` or `Linux`. This is where you would add customizations or additional manifests, but you can leave the settings at their default and click **Next layer**. ![Select packs and options](../img/spectro-cloud/img/select-pack.png) @@ -72,7 +72,7 @@ For the former, Palette has a [ready-to-apply pack](https://docs.spectrocloud.co 1. Head back to the **Profiles** section in Palette. Click on **Add Cluster Profile**. Give this profile a name. Under **Type**, click the **Add-on** option, then **Next**. -1. Click **Add New Pack**, then either search `ngrok`, or scroll down to the **Ingress** section, and click on the **ngrok Kubernetes Operator** icon. +1. Click **Add New Pack**, then either search `ngrok`, or scroll down to the **Ingress** section, and click the **ngrok Kubernetes Operator** icon. ![Add the ngrok Kubernetes Operator pack](../img/spectro-cloud/img/add-ngrok-controller.png) diff --git a/integrations/webhooks/airship-webhooks.mdx b/integrations/webhooks/airship-webhooks.mdx index 0243989fc7..ff0594a4fe 100644 --- a/integrations/webhooks/airship-webhooks.mdx +++ b/integrations/webhooks/airship-webhooks.mdx @@ -78,7 +78,7 @@ To register a webhook on your Airship account follow the instructions below: 1. Access [Airship](https://www.airship.com/) and sign in using your Airship account. -1. On the **App Projects** page, click on one of your projects. +1. On the **App Projects** page, click one of your projects. 1. On the top menu, click **Settings**, click **Open Channels** under the **Channels** section, and then click **Configure new Open Channel**. diff --git a/integrations/webhooks/instagram-webhooks.mdx b/integrations/webhooks/instagram-webhooks.mdx index e7ba8e84d9..683a7adf3d 100644 --- a/integrations/webhooks/instagram-webhooks.mdx +++ b/integrations/webhooks/instagram-webhooks.mdx @@ -94,7 +94,7 @@ To register a webhook on your Instagram account follow the instructions below: Connect your Facebook page with your Instagram account by following the instructions below: -1. Access your Facebook account, click on your avatar icon on the top right corner of the page, click **See all profiles**, click **See all Pages**, and then click the name of your page. +1. Access your Facebook account, click your avatar icon on the top right corner of the page, click **See all profiles**, click **See all Pages**, and then click the name of your page. 1. On the **Manage Page** of your page, expand **Meta Business Suite** on the left menu and then click **Inbox**. diff --git a/integrations/webhooks/signalsciences-webhooks.mdx b/integrations/webhooks/signalsciences-webhooks.mdx index fd7263aab0..e1d9249935 100644 --- a/integrations/webhooks/signalsciences-webhooks.mdx +++ b/integrations/webhooks/signalsciences-webhooks.mdx @@ -107,7 +107,7 @@ The ngrok signature webhook verification feature allows ngrok to assert that req This is a quick step to add extra protection to your application. -1. Access the [Signal Sciences Dashboard](https://dashboard.signalsciences.net/), sign in, click **Site Integrations** in the **Manage** menu, and then click on your webhook. +1. Access the [Signal Sciences Dashboard](https://dashboard.signalsciences.net/), sign in, click **Site Integrations** in the **Manage** menu, and then click your webhook. 1. On the **Webhook** page, click the eye icon to reveal the **secret key** value and then copy this value. diff --git a/integrations/webhooks/terraform-webhooks.mdx b/integrations/webhooks/terraform-webhooks.mdx index fdba962ea3..4a9ca9791b 100644 --- a/integrations/webhooks/terraform-webhooks.mdx +++ b/integrations/webhooks/terraform-webhooks.mdx @@ -76,7 +76,7 @@ Once your app is running locally, you're ready to put it online securely using n To register a webhook on your Terraform Cloud account follow the instructions below: -1. Access [Terraform Cloud](https://app.terraform.io/), sign in using your Terraform account, and then click on your workspace. +1. Access [Terraform Cloud](https://app.terraform.io/), sign in using your Terraform account, and then click your workspace. 1. On the workspace page, click **Settings** and then click **Notifications** both on the left menu. @@ -113,7 +113,7 @@ The ngrok signature webhook verification feature allows ngrok to assert that req This is a quick step to add extra protection to your application. -1. Access [Terraform Cloud](https://app.terraform.io/), sign in using your Terraform account, and then click on your workspace. +1. Access [Terraform Cloud](https://app.terraform.io/), sign in using your Terraform account, and then click your workspace. 1. On the workspace page, click **Settings** on the left menu, click **Notifications**, click the **ngrok** notification you created previously, and then click **Edit Notification**. diff --git a/integrations/webhooks/twilio-webhooks.mdx b/integrations/webhooks/twilio-webhooks.mdx index 94a35ed66e..e98d031abd 100644 --- a/integrations/webhooks/twilio-webhooks.mdx +++ b/integrations/webhooks/twilio-webhooks.mdx @@ -13,7 +13,7 @@ To integrate Twilio webhooks with ngrok: 1. [Start your local twillio webhook app.](#start-your-app) `npm start` 1. [Start ngrok.](#start-ngrok) `ngrok http 3000` -1. [Configure Twilio with your ngrok url and start testing.](#setup-twilio) +1. [Configure Twilio with your ngrok URL and start testing.](#setup-twilio) This guide covers how to use ngrok to integrate your localhost app with [Twilio SMS Webhooks](https://www.twilio.com/docs/usage/webhooks/sms-webhooks). By integrating ngrok with Twilio, you can: @@ -61,7 +61,7 @@ Once your app is running locally, you're ready to put it online securely using n ngrok http 3000 ``` -5. ngrok will display a url where your example applicaiton is exposed to the internet (copy this URL for use with Twilio). +5. ngrok will display a URL where your example applicaiton is exposed to the internet (copy this URL for use with Twilio). ![ngrok agent running](../img/twilio/img/launch_ngrok_tunnel.png) ## 3. Integrate Twilio SMS Webhook @@ -70,7 +70,7 @@ Now that you have your local environment on the internet, let's configure Twilio 1. Sign in to your Twilio account. 2. From the Twilio Console, go to **Develop** > **# Phone Numbers** > **Manage** > **Active Numbers** and select a number to add a webhook to. -3. At the bottom of the page, under Messaging, (1) add your ngrok url (don't forget to append /sms) under Webhook and (2) change the type to HTTP Post. +3. At the bottom of the page, under Messaging, (1) add your ngrok URL (don't forget to append /sms) under Webhook and (2) change the type to HTTP Post. ![Twilio SMS Webhook Config Screen](../img/twilio/img/add_ngrok_url_to_Twilio.png) 4. Save the phone number configuration. diff --git a/k8s/crds/agentendpoint.mdx b/k8s/crds/agentendpoint.mdx index 49c88c93b9..ed3f31ee69 100644 --- a/k8s/crds/agentendpoint.mdx +++ b/k8s/crds/agentendpoint.mdx @@ -80,7 +80,7 @@ The unique URL for this agent endpoint. This URL defines how the endpoint is acc **Note:** [Pooling](/universal-gateway/endpoint-pooling) is always enabled for `AgentEndpoint` resources. This means that if two (or more) endpoints share the same `spec.url` then requests will be balanced between them. This is not limited to endpoints within the same cluster, or endpoints of the same type. For example, an `AgentEndpoint` can be pooled with a cloud endpoint created in the ngrok dashboard if they share the same URL and both enable pooling. -It is recommended to include a prefix/suffix in the url to prevent unintended pooling. For example, if you are running a service `foo` in the namespace `bar` in two different +It is recommended to include a prefix/suffix in the URL to prevent unintended pooling. For example, if you are running a service `foo` in the namespace `bar` in two different Kubernetes clusters, you may want to give each one a slightly different `spec.url` that includes something such as a cluster identifier to prevent requests from being balanced between them. Unlike `AgentEndpoint` resources, the `CloudEndpoint` resource gives you the ability to configure whether pooling should be allowed or not. @@ -112,7 +112,7 @@ The following formats are accepted: - **Empty** - When empty your endpoint will default to be https and receive back a randomly assigned ngrok address. - **Internal** - - When ending your url with .internal, an internal endpoint will be created. Internal Endpoints cannot be accessed directly, but rather can only be accessed using the forward-internal traffic policy action. + - When ending your URL with .internal, an internal endpoint will be created. Internal Endpoints cannot be accessed directly, but rather can only be accessed using the forward-internal traffic policy action. - example: `some.domain.internal` ### `spec.upstream` diff --git a/k8s/crds/cloudendpoint.mdx b/k8s/crds/cloudendpoint.mdx index c0eb2b9e8a..14934a27b7 100644 --- a/k8s/crds/cloudendpoint.mdx +++ b/k8s/crds/cloudendpoint.mdx @@ -94,7 +94,7 @@ The following formats are accepted: - **Empty** When empty your endpoint will default to be https and receive back a randomly assigned ngrok address. - **Internal** - - When ending your url with .internal, an internal endpoint will be created. Internal Endpoints cannot be accessed directly, but rather + - When ending your URL with .internal, an internal endpoint will be created. Internal Endpoints cannot be accessed directly, but rather can only be accessed using the forward-internal traffic policy action. - example: `some.domain.internal` @@ -191,7 +191,7 @@ Configures whether [pooling](/universal-gateway/endpoint-pooling) is always enab When pooling is enabled, if two different endpoints share the same `spec.url` then requests will be balanced between them. This is not limited to endpoints within the same cluster, or endpoints of the same type. For example, a `CloudEndpoint` can be pooled with an agent endpoint created using the ngrok CLI if they both enable pooling and share the same URL. -It is recommended to include a prefix/suffix in the url to prevent unintended pooling. For example, if you are running a service `foo` in the namespace `bar` in two different +It is recommended to include a prefix/suffix in the URL to prevent unintended pooling. For example, if you are running a service `foo` in the namespace `bar` in two different Kubernetes clusters, you may want to give each one a slightly different `spec.url` that includes something such as a cluster identifier to prevent requests from being balanced between them. You will receive an error back from the ngrok server if you attempt to create two different endpoints using the same URL if they do not both enable pooling. diff --git a/k8s/guides/bindings.mdx b/k8s/guides/bindings.mdx index 34e7cc6568..b90f2af7ac 100644 --- a/k8s/guides/bindings.mdx +++ b/k8s/guides/bindings.mdx @@ -45,7 +45,7 @@ spec: url: https://my-k8s-service.internal ``` -The public binding and url for the above `CloudEndpoint` make it accessible on the public internet at `https://example-cloud-endpoint.ngrok.io` +The public binding and URL for the above `CloudEndpoint` make it accessible on the public internet at `https://example-cloud-endpoint.ngrok.io` [Learn more about Public Endpoints](/universal-gateway/public-endpoints/). @@ -74,7 +74,7 @@ spec: url: http://my-service.default:80 ``` -The internal binding and url on the above internal `AgentEndpoint` make it not accessible via the public internet. +The internal binding and URL on the above internal `AgentEndpoint` make it not accessible via the public internet. It can be accessed by using the `forward-internal` action from a traffic policy on other endpoints. This is not limited to the Kubernetes cluster that you installed the operator in, and you could, for example, create a public endpoint using the ngrok dashboard/API/CLI that forwards to this endpoint. @@ -109,7 +109,7 @@ spec: url: http://my-service.my-namespace:80 ``` -The kubernetes binding and url for the above `AgentEndpoint` make it a Kubernetes bound endpoint. +The kubernetes binding and URL for the above `AgentEndpoint` make it a Kubernetes bound endpoint. Endpoints with a binding of `kubernetes` can be made available as projected services in any cluster running the ngrok operator. These endpoints are not accessible on the public internet, but can be used to enable services in your Kubernetes cluster to access the endpoint by making requests to a projected `Service` that is created for the endpoint. @@ -187,7 +187,7 @@ spec: When anything in the cluster makes a request to the `my-bound-service.my-namespace` `Service` it will hit the above `AgentEndpoint` and ultimately be routed to the `my-service.my-namespace` `Service`. -This can be used within a single cluster to use ngrok traffic policies on your endpoints for `Service` to `Service` networking in order to perform operations such as rate-limiting, header manipulation, etc. +This can be used within a single cluster to use ngrok traffic policies on your endpoints for `Service` to `Service` networking to perform operations such as rate-limiting, header manipulation, etc. Furthermore, the true power in Kubernetes bindings is allowing you to project a `Service` in one cluster to one or more other clusters running the ngrok Kubernetes operator. When doing this, you can configure networking between different Kubernetes clusters without needing to expose any publicly accessible URLs that would need to require authentication to prevent unwanted access. This is not simply limited to Kubernetes clusters. You could for example, create a Kubernetes bound endpoint using the ngrok CLI/SDK to project workloads running on another system such as a Virtual Machine into your Kubernetes clusters. diff --git a/k8s/guides/customer-networks.mdx b/k8s/guides/customer-networks.mdx index e7b87ecedd..378a272ad4 100644 --- a/k8s/guides/customer-networks.mdx +++ b/k8s/guides/customer-networks.mdx @@ -41,7 +41,7 @@ We create a separate Service User + associated authtoken for each of your custom 3. Agent start/stop audit events are properly attributed to each customer 4. Your ngrok agents don't stop working if the human user who set them up leaves your ngrok account. -Navigate to the [Service Users](https://dashboard.ngrok.com/service-users) section of your dashboard and click on “new Service User”. +Navigate to the [Service Users](https://dashboard.ngrok.com/service-users) section of your dashboard and click “new Service User”. ![Service User interface screenshot](./_img/service-user-ss-1.png) @@ -84,7 +84,7 @@ endpoints: ### 3. Install the ngrok operator within your Kubernetes cluster -Now we're going to enable applications in your cluster to connect to the remote services. To do this, we'll need to install the ngrok Kubernetes operator into your cluster. The operator will create v1.Service objects that your apps can connect to in order to access the remote services in your customer's network. +Now we're going to enable applications in your cluster to connect to the remote services. To do this, we'll need to install the ngrok Kubernetes operator into your cluster. The operator will create v1.Service objects that your apps can connect to for access to the remote services in your customer's network. First, create a separate Service User with an associated authtoken **and** API key specifically for the operator. diff --git a/package.json b/package.json index 7cc15161ac..f2979cc03f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "fmt": "biome check . --write --diagnostic-level=error --organize-imports-enabled=true && prettier --write .", "check-redirect-conflicts": "node custom/scripts/check-redirect-conflicts.js", "test-links": "mint broken-links", - "vale": "vale --glob='!{snippets,errors}/**' ." + "vale": "vale --glob='!{snippets/**,errors/**,agent/cli-api.mdx,agent/cli.mdx}' ." }, "keywords": [], "author": "", diff --git a/snippets/traffic-policy/actions/jwt-validation/examples/integration-auth0/index.mdx b/snippets/traffic-policy/actions/jwt-validation/examples/integration-auth0/index.mdx index 6e2abf72a2..49fa0ffa3d 100644 --- a/snippets/traffic-policy/actions/jwt-validation/examples/integration-auth0/index.mdx +++ b/snippets/traffic-policy/actions/jwt-validation/examples/integration-auth0/index.mdx @@ -36,7 +36,7 @@ JWT. When you create a new API, Auth0 will create an associated application under **Applications > APIs** in the left navigation bar. -Navigate to your application, and click on the **Test** tab. Here, you will +Navigate to your application, and click the **Test** tab. Here, you will find a signed, fully functional JWT, as well as examples of how to programmatically generate others. diff --git a/snippets/traffic-policy/actions/terminate-tls/examples/2-custom-certificate.mdx b/snippets/traffic-policy/actions/terminate-tls/examples/2-custom-certificate.mdx index 57042a0838..dc051cd9b6 100644 --- a/snippets/traffic-policy/actions/terminate-tls/examples/2-custom-certificate.mdx +++ b/snippets/traffic-policy/actions/terminate-tls/examples/2-custom-certificate.mdx @@ -24,7 +24,7 @@ openssl req -new -key server.key -out server.csr -subj "/CN=terminate-tls-exampl openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256 ``` -These commands will result in five new files: `ca.key`, `ca.crt`, `server.key`, `server.csr`, and `server.key`. You will use the contents of `server.key` and `server.crt` in your traffic policy to enable your custom certificate on your endpoint and `ca.crt` in order to trust the certificate when using `curl`. +These commands will result in five new files: `ca.key`, `ca.crt`, `server.key`, `server.csr`, and `server.key`. You will use the contents of `server.key` and `server.crt` in your traffic policy to enable your custom certificate on your endpoint and `ca.crt` to trust the certificate when using `curl`. #### Example Traffic Policy Document diff --git a/snippets/traffic-policy/variables/endpoint.mdx b/snippets/traffic-policy/variables/endpoint.mdx index c07e33fff9..e8c365ff13 100644 --- a/snippets/traffic-policy/variables/endpoint.mdx +++ b/snippets/traffic-policy/variables/endpoint.mdx @@ -11,7 +11,7 @@ The following variables are available under the `endpoint` namespace: | [`endpoint.id`](#endpointid) | `string` | The endpoint that serviced this connection. | | [`endpoint.port`](#endpointport) | `int32` | The port for this endpoint. | | [`endpoint.protocol`](#endpointprotocol) | `string` | The protocol for this endpoint. Current supported values are `http`, `https`, `tcp`, and `tls`. | -| [`endpoint.url`](#endpointurl) | `string` | The url for this endpoint. | +| [`endpoint.url`](#endpointurl) | `string` | The URL for this endpoint. | ### `endpoint.addr` @@ -104,7 +104,7 @@ expressions: ### `endpoint.url` -The url for this endpoint. +The URL for this endpoint. ```yaml policy.yml diff --git a/snippets/traffic-policy/variables/req.mdx b/snippets/traffic-policy/variables/req.mdx index 48e8dc6ddc..7d4d2403e7 100644 --- a/snippets/traffic-policy/variables/req.mdx +++ b/snippets/traffic-policy/variables/req.mdx @@ -43,7 +43,7 @@ The following variables are available under the `req` namespace: | [`req.user_agent.is_tablet`](#requser-agentis-tablet) | `bool` | Whether the `User-Agent` header for this request is a tablet device. | | [`req.user_agent.is_desktop`](#requser-agentis-desktop) | `bool` | Whether the `User-Agent` header for this request is a desktop device. | | [`req.user_agent.is_bot`](#requser-agentis-bot) | `bool` | Whether the `User-Agent` header for this request is a Bot User. | -| [`req.user_agent.url`](#requser-agenturl) | `string` | The url of the user agent in the `User-Agent` header for this request. | +| [`req.user_agent.url`](#requser-agenturl) | `string` | The URL of the user agent in the `User-Agent` header for this request. | | [`req.version`](#reqversion) | `string` | The HTTP version for this request. | ### `req.content_encoding` diff --git a/traffic-policy/examples/a-b-tests.mdx b/traffic-policy/examples/a-b-tests.mdx index 32b9deb7bd..ab53245bf4 100644 --- a/traffic-policy/examples/a-b-tests.mdx +++ b/traffic-policy/examples/a-b-tests.mdx @@ -71,7 +71,7 @@ See [the `forward-internal` Traffic Policy action docs](/traffic-policy/actions/ ## Using rewrites -You can also send the traffic to a different route using url rewrites. +You can also send the traffic to a different route using URL rewrites. diff --git a/universal-gateway/domains.mdx b/universal-gateway/domains.mdx index f71237196b..99993000bc 100644 --- a/universal-gateway/domains.mdx +++ b/universal-gateway/domains.mdx @@ -80,7 +80,7 @@ Reserving subdomains of a wildcard domain within the ngrok dashboard count towar ### Random Domains For some applications, you may not care much about the actual domain for the endpoint. Generating these can be a pain, so we've included an easy way -to create and use these for endpoints. Using the value `https://${randomUrl}` in the `url` field will generate a random url for you to use with your endpoint. +to create and use these for endpoints. Using the value `https://${randomUrl}` in the `url` field will generate a random URL for you to use with your endpoint. ```bash ngrok http 80 --url 'https://${randomUrl}' diff --git a/universal-gateway/examples/route-api-app-traffic-user-agent.mdx b/universal-gateway/examples/route-api-app-traffic-user-agent.mdx index e46a761618..ad5fb7ec19 100644 --- a/universal-gateway/examples/route-api-app-traffic-user-agent.mdx +++ b/universal-gateway/examples/route-api-app-traffic-user-agent.mdx @@ -110,7 +110,7 @@ on_http_request: If the request has the appropriate `Authorization: Bearer …` header, then ngrok forwards it to your API service. In the second section, it then checks whether the user agent is from a human/browser, then asks them to authenticate with Google's OAuth. -If the account they sign into matches `$YOUR_EMAIL_DOMAIN`, then ngrok forwards it to your web app service. +If the account they sign in to matches `$YOUR_EMAIL_DOMAIN`, then ngrok forwards it to your web app service. In all other cases, the policy returns a `403 Forbidden` response because the request was not properly authenticated. diff --git a/universal-gateway/http.mdx b/universal-gateway/http.mdx index cb2b0857e8..8d4fd5c7c8 100644 --- a/universal-gateway/http.mdx +++ b/universal-gateway/http.mdx @@ -796,7 +796,7 @@ For information on headers added automatically by ngrok, see ### Persistent connections When a connection is made to HTTP/S ngrok endpoints with HTTP/1.1, ngrok may -choose to use persistent connections (aka HTTP keep-alive) to improve the +choose to use persistent connections (such as HTTP keep-alive) to improve the performance of future requests from the same client if the client supports it. This behavior is not guaranteed and it is not configurable. diff --git a/universal-gateway/load-balancing-multiple-clouds.mdx b/universal-gateway/load-balancing-multiple-clouds.mdx index c58029a2b0..94da4061de 100644 --- a/universal-gateway/load-balancing-multiple-clouds.mdx +++ b/universal-gateway/load-balancing-multiple-clouds.mdx @@ -116,7 +116,7 @@ const ngrok = require('@ngrok/ngrok'); pooling_enabled: true, }); - // Output ngrok url to console + // Output ngrok URL to console console.log(`Ingress established at ${listener.url()}`); })(); @@ -145,7 +145,7 @@ async fn main() -> Result<(), Box> { .listen_and_forward(Url::parse("http://localhost:8000").unwrap()) .await?; - println!("Ngrok tunnel established at {}", domain); + println!("ngrok tunnel established at {}", domain); // Wait indefinitely tokio::signal::ctrl_c().await?; @@ -169,7 +169,7 @@ listener = ngrok.forward( pooling_enabled=True, ) -# Output ngrok url to console +# Output ngrok URL to console print(f"Ingress established at {listener.url()}") # Keep the listener alive diff --git a/universal-gateway/types.mdx b/universal-gateway/types.mdx index a5c57f1595..f4900f5315 100644 --- a/universal-gateway/types.mdx +++ b/universal-gateway/types.mdx @@ -16,7 +16,7 @@ In general, Cloud Endpoints are the most flexible option, but which endpoint typ | **Connection Handling** | Can be configured with [Traffic Policy](/traffic-policy/). | Can be configured with [Traffic Policy](/traffic-policy/). | | **Configuration** | Can be managed at any time via the [API](/api/) or [dashboard](https://dashboard.ngrok.com/endpoints). | Managed by the agent that initiates them. | | **Dashboard accessibility** | Can be created and configured from the dashboard. | Read-only in the dashboard. | -| **Can use ephemeral domains?** | **No**. Must be provided a fully qualified URL on creation. | **Yes**. Ngrok can generate a URL for you on creation. | +| **Can use ephemeral domains?** | **No**. Must be provided a fully qualified URL on creation. | **Yes**. ngrok can generate a URL for you on creation. | | **Traffic Policy required?** | **Yes**. | **No**, but you can provide one if you'd like. | | **Globally available** | **Yes**. | **Yes**. | | **Can be managed with [the API](/api/)?** | **Yes**. | Yes, with the agent api. | diff --git a/user-management/index.mdx b/user-management/index.mdx index 3f2de70aa7..639869a9a8 100644 --- a/user-management/index.mdx +++ b/user-management/index.mdx @@ -11,7 +11,7 @@ The ngrok dashboard allows many users to be invited to the same account. Each us If you are an Pay-as-you-go customer, you have the option of enabling Single Sign-On (SSO) for your users logging into the ngrok Dashboard and adding the SSO & RBAC add-on. Account admins can find the configuration options under the ["Settings > Account"](https://dashboard.ngrok.com/settings) in the left navigation once they log into the dashboard. -ngrok supports most [SAML v2 compliant identity providers](https://en.wikipedia.org/wiki/SAML-based_products_and_services), including [Okta](https://help.okta.com/oie/en-us/Content/Topics/Apps/apps-about-saml.htm) and [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/architecture/auth-saml). To get started with the configuration, simply click on "+ New Identity Provider" and follow the instructions in the dashboard. ngrok supports multiple identity providers as well. If using multiple identity providers, the user will be prompted to choose one when logging in with SSO from the ngrok login page. +ngrok supports most [SAML v2 compliant identity providers](https://en.wikipedia.org/wiki/SAML-based_products_and_services), including [Okta](https://help.okta.com/oie/en-us/Content/Topics/Apps/apps-about-saml.htm) and [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/architecture/auth-saml). To get started with the configuration, simply click "+ New Identity Provider" and follow the instructions in the dashboard. ngrok supports multiple identity providers as well. If using multiple identity providers, the user will be prompted to choose one when logging in with SSO from the ngrok login page. After configuring the correct information with your identity provider, you have the option to enable or disable logging in directly from your provider. This is helpful if your users want to jump directly to their ngrok account via a centralized location once they have logged into their identity provider. diff --git a/using-ngrok-with/docker/compose.mdx b/using-ngrok-with/docker/compose.mdx index 5da875a9fb..8b4d0387c3 100644 --- a/using-ngrok-with/docker/compose.mdx +++ b/using-ngrok-with/docker/compose.mdx @@ -24,7 +24,7 @@ services: - 4040:4040 ``` -If you're defining your tunnels directly in `docker-compose.yaml` rather than using an `ngrok.yml` file the configuration will look a little different. Your command will be running an `ngrok http` command and you'll be using the special url `host.docker.internal` as mentioned in the note above. The following is an example of using the ngrok along with the `dockersamples/static-site` image. +If you're defining your tunnels directly in `docker-compose.yaml` rather than using an `ngrok.yml` file the configuration will look a little different. Your command will be running an `ngrok http` command and you'll be using the special URL `host.docker.internal` as mentioned in the note above. The following is an example of using the ngrok along with the `dockersamples/static-site` image. ```yaml services: diff --git a/using-ngrok-with/docker/index.mdx b/using-ngrok-with/docker/index.mdx index 4c3be9c0ad..62bea7385d 100644 --- a/using-ngrok-with/docker/index.mdx +++ b/using-ngrok-with/docker/index.mdx @@ -28,7 +28,7 @@ docker run --net=host -it -e NGROK_AUTHTOKEN=xyz ngrok/ngrok:latest http 80 docker run -it -e NGROK_AUTHTOKEN=xyz ngrok/ngrok:latest http host.docker.internal:80 ``` -For MacOS and Windows, you must use the special url `host.docker.internal` as described in the [Docker networking documentation](https://docs.docker.com/desktop/mac/networking/#use-cases-and-workarounds). +For MacOS and Windows, you must use the special URL `host.docker.internal` as described in the [Docker networking documentation](https://docs.docker.com/desktop/mac/networking/#use-cases-and-workarounds). This also applies to the `upstream.url` endpoint property in your ngrok config file. For example: diff --git a/using-ngrok-with/fastAPI.mdx b/using-ngrok-with/fastAPI.mdx index 065e973578..96f69bb118 100644 --- a/using-ngrok-with/fastAPI.mdx +++ b/using-ngrok-with/fastAPI.mdx @@ -36,13 +36,13 @@ APPLICATION_PORT = 5000 @asynccontextmanager async def lifespan(app: FastAPI): - logger.info("Setting up Ngrok Endpoint") + logger.info("Setting up ngrok Endpoint") ngrok.set_auth_token(NGROK_AUTH_TOKEN) ngrok.forward( addr=APPLICATION_PORT, ) yield - logger.info("Tearing Down Ngrok Endpoint") + logger.info("Tearing Down ngrok Endpoint") ngrok.disconnect() diff --git a/using-ngrok-with/godaddy.mdx b/using-ngrok-with/godaddy.mdx index 498ce540a7..bb4fc8c4ff 100644 --- a/using-ngrok-with/godaddy.mdx +++ b/using-ngrok-with/godaddy.mdx @@ -16,7 +16,7 @@ You will need to use a subdomain (for example, `www.example.com`) when using ngr ## 1. Find your reserved domain in ngrok 1. Log into the [ngrok Dashboard](https://dashboard.ngrok.com) and navigate to your domain in the [Domains section](https://dashboard.ngrok.com/domains). -1. Click in your domain to open the details, and click on the "DNS Targets" link in the top table. This will provide you with the relevant CNAME values to use in later steps. +1. Click in your domain to open the details, and click the "DNS Targets" link in the top table. This will provide you with the relevant CNAME values to use in later steps. ## 2. Log in to Your GoDaddy Account & Access DNS Management