Skip to content

feat(devtools): add Swagger and gRPC developer tools plugin - #34

Merged
rian-be merged 9 commits into
developmentfrom
plugin/DevTools
Sep 11, 2026
Merged

rian-be merged 9 commits into
developmentfrom
plugin/DevTools

Conversation

@rian-be

@rian-be rian-be commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This PR adds the DevTools plugin for serving Swagger UI and providing web interface for browsing and invoking gRPC services dynamically from protobuf descriptors.

DevTools Plugin

  • adds the DevTools plugin project and runtime registration
  • exposes Swagger UI and the generated OpenAPI document
  • adds a browser UI for inspecting gRPC services and methods
  • supports dynamic unary gRPC invocation without generated client stubs

Runtime Service Catalog

  • discovers gRPC services from registered server descriptors
  • exposes service, method, request, and response metadata
  • supports dynamic invocation of unary methods
  • returns structured invocation results and errors

Configuration

  • adds DevTools options and Swagger UI options
  • supports configurable route prefix and document name
  • integrates DevTools into the solution and Docker image
  • publishes DevTools as a dynamically loaded plugin

Documentation

  • adds ADR-020 for the DevTools plugin
  • adds ADR-021 for Swagger serving through reflection

Validation

  • editor diagnostics are clean for the affected Host and DevTools files
  • git diff --check passes
  • full restore and test execution require the .NET 10 SDK

Result

AuthKit can now expose developer tooling as a separate dynamically loaded plugin while keeping Swagger generation in the Host and gRPC inspection/invocation in DevTools.

Closes #33

@rian-be rian-be self-assigned this Sep 11, 2026
Comment thread src/Plugins/Solutions/DevTools/Catalog/GrpcServiceCatalog.cs Dismissed
Comment on lines +89 to +92
catch (Exception ex)
{
logger.LogWarning(ex, "Failed to describe gRPC service {Service}.", descriptor.FullName);
}
Comment on lines +85 to +88
catch
{
return Task.FromResult(false);
}
@rian-be rian-be added documentation Improvements or additions to documentation enhancement New feature or request area/devtools DevTools plugin labels Sep 11, 2026
@rian-be
rian-be merged commit 5002686 into development Sep 11, 2026
7 of 9 checks passed
@rian-be
rian-be deleted the plugin/DevTools branch September 11, 2026 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/devtools DevTools plugin documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Implement the DevTools Plugin

2 participants