Skip to content

Commit 470a546

Browse files
committed
version 0.2.7
1 parent 2df66b3 commit 470a546

4 files changed

Lines changed: 15 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
## [Unreleased]
22

3+
## [0.2.7] - 2026-02-27
4+
35
### Added
46
- **Azure Functions discovery** — detects `[FunctionName]` / `[Function]` methods with `[HttpTrigger]` parameters, extracts route, HTTP method, and `AuthorizationLevel`
57
- `AzureFunction` surface type with `FunctionName`, `Route`, `HttpMethod`, `AuthorizationLevel` properties

CONTRIBUTING.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@ DllSpy loads .NET assemblies via `System.Reflection` and scans for types that re
6767

6868
**Blazor Routable Components** — Classes inheriting from `ComponentBase` that have one or more `[Route]` attributes. Each route template produces a separate surface. Properties with `[Parameter]` are included as parameters. Non-routable components (no `[Route]`) are excluded.
6969

70+
**WCF Operations** — Interfaces with `[ServiceContract]` and their `[OperationContract]` methods. Implementing classes are resolved via `IsAssignableFrom`. Supports `[PrincipalPermission]` as an authorization attribute.
71+
72+
**gRPC Operations** — Classes inheriting from generated gRPC base classes (detected via `BindService` method). Identifies all four streaming modes (Unary, ServerStreaming, ClientStreaming, BidiStreaming).
73+
74+
**Azure Functions** — Methods with `[FunctionName]` or `[Function]` attributes that have an `[HttpTrigger]` parameter. Extracts the route, HTTP method(s), and `AuthorizationLevel` from the trigger attribute.
75+
76+
**OData Endpoints** — Classes inheriting from `ODataController`. Routes are resolved from `[ODataRoutePrefix]`, falling back to `[Route]`, then `odata/{entitySet}` convention. Method routes check `[ODataRoute]`, then HTTP attribute templates. The `[EnableQuery]` attribute is tracked per method.
77+
7078
## Adding a New Discovery Type
7179

7280
To add a new surface type (e.g. minimal APIs):

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22

33
<PropertyGroup>
4-
<Version>0.2.6</Version>
4+
<Version>0.2.7</Version>
55
</PropertyGroup>
66

77
</Project>

src/DllSpy.PowerShell/DllSpy.psd1

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
RootModule = 'DllSpy.PowerShell.dll'
55

66
# Version number of this module.
7-
ModuleVersion = '0.2.6'
7+
ModuleVersion = '0.2.7'
88

99
# ID used to uniquely identify this module
1010
GUID = 'f7e8a9b0-1c2d-3e4f-5a6b-7c8d9e0f1a2b'
@@ -19,7 +19,7 @@
1919
Copyright = '(c) Anton Lindström. All rights reserved.'
2020

2121
# Description of the functionality provided by this module
22-
Description = 'Discovers and analyzes input surfaces (HTTP endpoints, SignalR hubs, WCF services, gRPC services, Razor Pages, Blazor components) in compiled .NET assemblies using reflection. Identifies security vulnerabilities, maps routes, and generates reports — all without running the application.'
22+
Description = 'Discovers and analyzes input surfaces (HTTP endpoints, SignalR hubs, WCF services, gRPC services, Razor Pages, Blazor components, Azure Functions, OData endpoints) in compiled .NET assemblies using reflection. Identifies security vulnerabilities, maps routes, and generates reports — all without running the application.'
2323

2424
# Minimum version of the PowerShell engine required by this module
2525
PowerShellVersion = '5.1'
@@ -55,7 +55,7 @@
5555
PrivateData = @{
5656
PSData = @{
5757
# Tags applied to this module for discoverability in online galleries
58-
Tags = @('security', 'aspnet', 'webapi', 'signalr', 'wcf', 'grpc', 'razor', 'blazor', 'reflection', 'endpoints', 'vulnerability', 'audit')
58+
Tags = @('security', 'aspnet', 'webapi', 'signalr', 'wcf', 'grpc', 'razor', 'blazor', 'azure-functions', 'odata', 'reflection', 'endpoints', 'vulnerability', 'audit')
5959

6060
# A URL to the license for this module.
6161
LicenseUri = 'https://github.com/n7on/dllspy/blob/main/LICENSE'
@@ -64,7 +64,7 @@
6464
ProjectUri = 'https://github.com/n7on/dllspy'
6565

6666
# Release notes for this module
67-
ReleaseNotes = 'Fixed assembly resolution on macOS PowerShell 7 (single-file host). Added Pester tests.'
67+
ReleaseNotes = 'Added Azure Functions and OData endpoint discovery. PowerShell HttpMethod filter now matches all surface types with HTTP methods.'
6868
}
6969
}
7070

0 commit comments

Comments
 (0)