Microsoft Graph Developer Proxy v0.8 with minimal permissions detection and improved simulating throttling

Waldek Mastykarz

Garry Trinder

Build resilient and performant apps with the latest preview version of the Microsoft Graph Developer Proxy. In this new version, we’re excited to introduce the preview ability to detect minimal permissions for calling Microsoft Graph APIs, improved simulation of throttling, and caching guidance.

Download Microsoft Graph Developer Proxy v0.8 and check if your apps properly handle API errors.

Detect minimal permissions for calling Microsoft Graph APIs

Microsoft Graph exposes hundreds of endpoints that allow you to tap into data and insights in Microsoft 365. To use these API endpoints, you need to request a correct set of permissions. If you work on a large solution that uses many endpoints, it can be difficult to build the exact list of minimal permissions for your application.

In this version, we’re excited to introduce a preview of a new feature that shows the list of minimal Microsoft Graph API permissions for your app. Just start the proxy, put it in recording mode and let your app run and call Microsoft Graph APIs. After you stop recording, Developer Proxy will determine the list of minimal permissions based on the requests that it intercepted.

A screenshot of a computer Description automatically generated

Use this feature to get the list of both application- and delegated permissions. For more information about how it works, and the available configuration options, see the documentation.

We’re releasing this feature in preview and will continue to improve its accuracy. We’d love to hear feedback on how it’s working and how we can make it better.

Improved simulating throttling

When we released Developer Proxy, we’d simulate forced throttling based on the exact URL match. If the chaos plugin returned a 429 error, we recorded the URL that was throttled and checked if your app was backing off for the designated amount of time. If your app called the exact URL too early, Developer Proxy would forcefully fail the request with a 429 error. Throttling on Microsoft Graph actually happens per workload, rather than by specific URL. So, if your app has been throttled while retrieving information about one user, it will likely be throttled when retrieving information about another user too.

In this version, we improved simulating throttling and let different plugins choose how they want to implement throttling. Plugins can choose throttling simulation from the following:

  • Specific URLs. This happens for metered APIs on Microsoft Graph
  • Workloads. This is typical behavior for most endpoints on Microsoft Graph. You’ll see it when using the GraphRandomErrorPlugin.
  • Whole host name. This is typical behavior for other APIs outside of Microsoft 365. You’ll see it when using the GenericRandomErrorPlugin.

Our goal is to have this improvement give a more accurate idea of how your app will respond to throttling.

Caching guidance

One way to improve your application’s performance is to ensure that it caches data where possible and doesn’t retrieve the same information too frequently. Implementing caching properly isn’t trivial and requires considering information such as “What data to cache” and “For how long”.

In this version of the Developer Proxy, we’re introducing a new plugin that warns you when it detects the same request within the specified time window (5 seconds by default, but you can change it in Developer Proxy’s configuration).

A screen shot of a computer Description automatically generated with medium confidence

We hope this plugin makes you more aware of how your app is retrieving its data and where it could be improved to work faster.

What’s next

Publishing demo from the European Collaboration Summit

In May 2023 at the European Collaboration Summit, Waldek Mastykarz and Gavin Barron showed how to use Microsoft Graph Developer Proxy to build resilient production apps connected to Microsoft Graph. If you didn’t attend the presentation in person, they’re going to show the demo on the Microsoft 365 and Power Platform calls in the coming weeks. Stay tuned for more updates.

Renaming Microsoft Graph Developer Proxy to Microsoft 365 Developer Proxy

When we released Microsoft Graph Developer Proxy, one of the first pieces of feedback we heard from you is that you’d like to use it beyond Microsoft Graph, with other APIs. Even with added support for other APIs, the perception that Developer Proxy is just for Microsoft Graph remained.

To clear any lingering confusion, we’re renaming this tool to Microsoft 365 Developer Proxy. We’ll remain focused on delivering the best experience for Microsoft Graph, and ensure Developer Proxy’s configuration with other APIs, outside of Microsoft 365 as well. As part of this rename, we’ll move the proxy’s repository to the Microsoft GitHub organization, rename the repository to reflect the new name and change the name of the executable. You won’t need to take any action to continue using Developer Proxy. We expect to complete this by the end of June.

Try it now

Download Microsoft Graph Developer Proxy v0.8 and check if your apps properly handle API errors.

We’re excited about this new version and can’t wait for you to try it out. We’re looking forward to hearing from you about these improvements and how we can continue to make the Microsoft Graph Developer Proxy even better.

Visit our Microsoft Graph Dev Center for more resources. Follow us on @Microsoft365Dev on Twitter to stay up to date on the latest developer news and announcements.

Happy coding!

5 comments

Discussion is closed. Login to edit/delete existing comments.

  • Georgi Hadzhigeorgiev 2

    That is very helpful indeed!
    Thanks guys!

  • بيبي الصالح 0

    هذه مواضيع قيمة شكرا لكم

  • حسان سيد محمد عبد الغني 2

    Every day we find a new development for the best in Microsoft
    Thanks for this great effort

  • Eman Jumaan 1

    Great topics , Microsoft group , you are really amazing, great thanks.

  • صابرين محمد نوح عبد الرحيم 0

    موضوع جيد

Feedback usabilla icon