Skip to content

feat: extract HTTP and Observability engine plugins (#82)#127

Merged
intel352 merged 2 commits intomainfrom
feat/issue-82-engine-decomp-p2
Feb 23, 2026
Merged

feat: extract HTTP and Observability engine plugins (#82)#127
intel352 merged 2 commits intomainfrom
feat/issue-82-engine-decomp-p2

Conversation

@intel352
Copy link
Contributor

Summary

Completes Engine Decomposition Phase 2 (issue #82) by cleaning up the separation of HTTP and Observability concerns into their dedicated plugin packages.

Changes

plugins/http/ — Remove 4 duplicate observability wiring hooks that were duplicated in both the HTTP and observability plugins:

  • http-health-endpoint-registration
  • http-metrics-endpoint-registration
  • http-log-endpoint-registration
  • http-openapi-endpoint-registration

The HTTP plugin now owns only HTTP-specific wiring:

  • http-auth-provider-wiring — connects AuthProviders to AuthMiddleware
  • http-static-fileserver-registration — registers static file servers on routers

plugins/observability/ — Already correctly owns all observability endpoint wiring (health, metrics, log, OpenAPI). No changes needed.

Plugin Architecture

Both plugins implement EnginePlugin and are registered in cmd/server/main.go:

Plugin Module Types Steps Triggers Handlers Wiring Hooks
http 13 (server, router, handler, 6 middlewares, 3 proxies, fileserver) 2 (rate_limit, circuit_breaker) 1 (http) 1 (http) 2
observability 5 (metrics, health, log, otel, openapi) 0 0 0 4

Verification

  • go build -o server ./cmd/server
  • go test ./... -timeout 180s ✅ (all 80+ packages pass)
  • go vet ./...
  • golangci-lint run

Closes #82

Move HTTP and Observability module types from core engine into dedicated
plugin packages:

- plugins/http: http.server, http.router, http.handler, middlewares,
  proxies, static fileserver, HTTP steps and triggers
- plugins/observability: metrics.collector, health.checker,
  log.collector, observability.otel, openapi.generator

Remove duplicate observability wiring hooks from HTTP plugin — health,
metrics, log, and OpenAPI endpoint registration now lives exclusively
in the observability plugin to avoid double-registration.

Both plugins registered in cmd/server/main.go. Module types removed
from engine.go core registration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 23, 2026 10:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR completes Engine Decomposition Phase 2 by removing observability endpoint wiring from the HTTP plugin, leaving observability endpoint registration exclusively in the observability plugin.

Changes:

  • Removed duplicated observability endpoint wiring hooks (health/metrics/log/OpenAPI) from plugins/http.
  • Updated the HTTP plugin manifest and tests to reflect only the remaining HTTP-specific wiring hooks.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
plugins/http/wiring.go Removes observability endpoint wiring hooks/functions from the HTTP plugin wiring list.
plugins/http/plugin.go Updates the HTTP plugin manifest to list only the remaining wiring hooks.
plugins/http/plugin_test.go Adjusts wiring hook expectations in tests after the hook removal.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 23, 2026 14:09
@intel352 intel352 merged commit 6df5098 into main Feb 23, 2026
13 checks passed
@intel352 intel352 deleted the feat/issue-82-engine-decomp-p2 branch February 23, 2026 14:09
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Engine Decomposition: Extract HTTP & Observability plugins (Phase 2)

2 participants