Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Microsoft.Graph.Authentication is very large. How can we slim it down?

オープン
#3,347 コメント 3 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@ramsessanchez がすでに取り組んでいます。

2025年11月10日 から。

評価

この issue はまだ評価されていません。

説明

type:feature
Is your feature request related to a problem? Please describe the problem.

Follow-up of #3345.

All of Microsoft.Graph.* depends on Microsoft.Graph.Authentication, weighing in at a whopping 42.1 MB on-disk with version 2.28.

Serverless environments frequently limit customers' space to deploy dependencies in. The PowerShell runtime+MS.Graph.Authentication is over 200MB of dependencies without having written any code, which poses several challenges for hosting/deployment.

There's been a lot of good discourse about the size of this SDK over the years (#692 #2475 #2516) - these have focused on either:

  • The total size of the SDK, across all modules
    • (MSGraph isn't that much bigger than AWS.Tools or Az)
  • Individual modules hitting landmark size limits
    • (Not everyone uses those specific modules)

Even outside those two scenarios, module size is still a problem.

Comparing 3 separate auto-generated families of PowerShell modules:

Metric Az AWS.Tools Microsoft.Graph
Total Module Count 93 410 47
Total Installed Size1 514 737 1060
Median Module Size 3.1 1.2 9.5
Core2 Module Size 28.6 16.7 42.1
Core : Total Module Size 5.6% 2.3% 3.9%
"Average" Install3 Size 31.7 17.9 51.6

1: All sizes in MB
2: Az.Accounts, AWS.Tools.Common, Microsoft.Graph.Authentication
3: Core module, plus single non-core (represented by median)

One "average" MSGraph module (with dependencies) is ~30% the size of the entire PowerShell Runtime on Linux. (~172MB)

Currently, Microsoft.Graph.Authentication has ~25MB of JSON used for Find-MgGraphCommand and Find-MgGraphPermission. These cmdlets appear to be for human-focused discovery/investigation and not required for authentication/API calls. Moving these off the critical dependency-path could save a ton of space for non-interactive scenarios.

Describe the solution you'd like.

TL;DR: Reduce .Authentication footprint to strict requirements for Invoke-MgGraphRequest or the other Microsoft.Graph.* modules. Move Find-MgGraph* to a separate module for interactive discovery.

Some options (neither exhaustive nor mutually exclusive) for making this work could look like:

  • Move Find-MgGraphCommand and Find-MgGraphPermission to a separate module and add the module as a dependency of Microsoft.Graph.
  • Replace Find-MgGraphCommand and Find-MgGraphPermission in Microsoft.Graph.Authentication with stubs to call corresponding commands in Microsoft.Graph.CommandDiscovery, without setting explicit dependency relationships.
  • De-couple Find-MgGraph* entirely from the rest of .Authentication.
    • Split Microsoft.Graph.Authentication into two modules (.Common and .CommandDiscovery, perhaps)
    • Update .Authentication depend on .Common and .CommandDiscovery
    • Update other child modules to depend on .Common
Additional context?

No response

主要言語
C#
スター
901
フォーク
232
平均マージ
1日 5時間
マージ済み PR(30日)
20

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoftgraph/msgraph-sdk-powershell のほかの issue

microsoftgraph/msgraph-sdk-powershell の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。