@@ -17,6 +17,7 @@ public sealed class MinimalPermissionsGuidancePluginConfiguration
1717{
1818 public string ? ApiSpecsFolderPath { get ; set ; }
1919 public IEnumerable < string > ? PermissionsToExclude { get ; set ; }
20+ public string ? SchemeName { get ; set ; }
2021}
2122
2223public sealed class MinimalPermissionsGuidancePlugin (
@@ -83,7 +84,7 @@ public override async Task AfterRecordingStopAsync(RecordingArgs e, Cancellation
8384
8485 foreach ( var ( apiSpec , requests ) in requestsByApiSpec )
8586 {
86- var minimalPermissions = apiSpec . CheckMinimalPermissions ( requests , Logger ) ;
87+ var minimalPermissions = apiSpec . CheckMinimalPermissions ( requests , Logger , Configuration . SchemeName ) ;
8788
8889 IEnumerable < string > excessivePermissions = [ .. minimalPermissions . TokenPermissions
8990 . Except ( Configuration . PermissionsToExclude ?? [ ] )
@@ -100,7 +101,8 @@ public override async Task AfterRecordingStopAsync(RecordingArgs e, Cancellation
100101 TokenPermissions = [ .. minimalPermissions . TokenPermissions . Distinct ( ) ] ,
101102 MinimalPermissions = minimalPermissions . MinimalScopes ,
102103 ExcessivePermissions = excessivePermissions ,
103- UsesMinimalPermissions = ! excessivePermissions . Any ( )
104+ UsesMinimalPermissions = ! excessivePermissions . Any ( ) ,
105+ SchemeName = Configuration . SchemeName
104106 } ;
105107 results . Add ( result ) ;
106108
@@ -112,20 +114,45 @@ public override async Task AfterRecordingStopAsync(RecordingArgs e, Cancellation
112114
113115 if ( result . UsesMinimalPermissions )
114116 {
115- Logger . LogInformation (
116- "API {ApiName} is called with minimal permissions: {MinimalPermissions}" ,
117- result . ApiName ,
118- string . Join ( ", " , result . MinimalPermissions )
119- ) ;
117+ if ( string . IsNullOrWhiteSpace ( Configuration . SchemeName ) )
118+ {
119+ Logger . LogInformation (
120+ "API {ApiName} is called with minimal permissions: {MinimalPermissions}" ,
121+ result . ApiName ,
122+ string . Join ( ", " , result . MinimalPermissions )
123+ ) ;
124+ }
125+ else
126+ {
127+ Logger . LogInformation (
128+ "API {ApiName} is called with minimal permissions of '{SchemeName}' scheme: {MinimalPermissions}" ,
129+ result . ApiName ,
130+ Configuration . SchemeName ,
131+ string . Join ( ", " , result . MinimalPermissions )
132+ ) ;
133+ }
120134 }
121135 else
122136 {
123- Logger . LogWarning (
124- "Calling API {ApiName} with excessive permissions: {ExcessivePermissions}. Minimal permissions are: {MinimalPermissions}" ,
125- result . ApiName ,
126- string . Join ( ", " , result . ExcessivePermissions ) ,
127- string . Join ( ", " , result . MinimalPermissions )
128- ) ;
137+ if ( string . IsNullOrWhiteSpace ( Configuration . SchemeName ) )
138+ {
139+ Logger . LogWarning (
140+ "Calling API {ApiName} with excessive permissions: {ExcessivePermissions}. Minimal permissions are: {MinimalPermissions}" ,
141+ result . ApiName ,
142+ string . Join ( ", " , result . ExcessivePermissions ) ,
143+ string . Join ( ", " , result . MinimalPermissions )
144+ ) ;
145+ }
146+ else
147+ {
148+ Logger . LogWarning (
149+ "Calling API {ApiName} with excessive permissions of '{SchemeName}' scheme: {ExcessivePermissions}. Minimal permissions are: {MinimalPermissions}" ,
150+ result . ApiName ,
151+ Configuration . SchemeName ,
152+ string . Join ( ", " , result . ExcessivePermissions ) ,
153+ string . Join ( ", " , result . MinimalPermissions )
154+ ) ;
155+ }
129156 }
130157
131158 if ( unmatchedApiRequests . Any ( ) )
0 commit comments