When awesome developer tips are discovered, I find that I cant blog about them fast enough. So to try and break that tradition, I'd like to introduce to you an amazing tool/service that was recently shared with me called ngrok.
What is ngrok
- Creates a tunnel from the public internet (http://subdomain.ngrok.com) to a port on your local machine. You can give this URL to anyone to allow them to try out a web site you're developing without doing any deployment.
- ngrok captures all traffic through the tunnel. It displays information about the HTTP traffic for your inspection. Raw request/response bytes, parsed headers and form data, JSON/XML syntax checking and more are included.
- Developing services which consume webhooks can be challenging if the hooks are labor-intensive to generate. Use ngrok's replay request feature to iterate quickly on a new feature without switching contexts to generate new requests.
How to Leverage with Jive Add-On Development
For people who choose not to, or cannot use, cloud services like Nitrous.IO (see: Rapid Jive Development in the Cloud with Nitrous.IO), and would prefer to use their local machine for all of their development needs, then ngrok is the tool for you.
- ngrok - secure introspectable tunnels to localhost ... it's FREE (you can use your GitHub account for identity if you'd like)
- Note: While FREE, the project does take donations ... so if you find this tool valuable, please donate what you can. We at Jive will be taking note of its popularity through JiveWorld and make a donation accordingly.
- Install the client executable to your local environment. Support for Windows, Linux/(ARM) and Mac.
- Follow the instructions on your dashboard for first-time setup and use.
- Use the xxxxxxxx.ngrok.com url and port provided at runtime and use it as the the meta.json & definition.json file(s) in your Jive add-on.
- Did we mention it supports HTTPS as well?
- Bundle your Jive add-on, upload to your Jive cloud environment and watch the network traffic flow to your local development environment!
- When you are done needing your tunnel....simply Ctrl+C/kill the ngrok process to close your tunnel
Bonus: ngrok is a client utility that runs on your local machine. Simply launch the tool when needed, and turn it off when it is not in use. You are in control of the tunnel, and it should work through most corporate firewalls without the need for additional configuration.
2xBonus: Since ngrok is a network-level tool, it is application agnostic, which means that its use is agnostic to any Jive add-on tooling, including (but not limited to) the Jive SDK for node.js, Java or .NET. Any add-on service running on any port of your local machine can be retro-fitted into the cloud environment for testing.
There are a ton of great features in the ngrok tool, including its web replay and general logging of network traffic. When doing cloud development, this tool is definitely going to make a difference!
What do you think of ngrok? Do you think it will help? If so, share your thoughts and intentions to let us know how it is making a difference in your Jive development projects.