microsoftgraph / microsoftgraph/microsoft-graph-comms-samples

Help Clarifying API for ngrok deploys (and Rick Astley)

Open
#516 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
253
Forks
275
Avg merge
1d 5h
Merged PRs (30d)
1

Description

Describe the issue
So I've got various examples working and honestly, I find these bots fascinating, so I'm keen to help educate others on how to stand-up their own similar bots. What better way of ramping up others than by showing people they can Rickroll Teams meetings?

But seriously; it's an opportunity to show people how to build their own bots and to get a dev environment setup too. Building great bots is hard without a great dev experience. My own attempt at helping people ramp-up is here

Where I'm having issues understanding what's going on is around ngrok especially. Having looked various guides that use ngrok I don't really see how it works at all (but it mostly does)...

I understand we need the streaming ports + the control HTTP API for Graph calls that need to arrive to the same IP. But in a typical ngrok setup both of these are on separate domains (1.tcp.ngrok.io and rickrollbot.ngrok.io for example), and it works, even without a CNAME.

What's weirder is that, as @JasonTheDeveloper has pointed out, only domains 0.tcp.ngrok.io and 1.tcp.ngrok.io work for TCP tunnels.

I can't make any sense of it - if the streaming & Graph endpoint have different DNS's, how does it work? What's with the 3rd ngrok domain not working?

I'm asking for help because these bots I'm planning on helping others build their own, and I need to understand it myself first. Any help is appreciated.

For full steps in my tests, please see my very own RickRoll bot - https://github.com/sambetts/poc-bots/tree/main/RickrollBot

Expected behavior
Given there's no CNAMEs with a typical ngrok setup, I don't expect ngrok to work at all. In a cloud service with proper DNS I do.

Graph SDK (please complete the following information):

  • Version 1.21.0.241-alpha

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by reviewing the linked RickRollBot example and its ngrok setup, then trace how the streaming and Graph endpoints are configured; done would be clear documentation explaining the tunnel and DNS behavior, including the TCP-domain limitation.

Written by the indexing model from the issue text.

Assessment

Domain
developer-experience, documentation, networking
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.