Skip to content

[Quality] Bind gateway bootstrap API and public documentation #223

Description

@seonghobae

Quality / acquisition gap

Protected develop@622e5e6c3d534f230c390f10e3832efadfc01825 contains an independently runnable ZuulGatewayApplication bootstrap class with @SpringBootApplication and @EnableDiscoveryClient, but the public class and main(String[]) entry point have no beginner-readable Javadoc. The gateway module has behavioral security tests in active PR #142, but protected source has no focused bootstrap contract analogous to the existing bounded Eureka/Config Server bootstrap work.

This issue is intentionally path-disjoint from #142. It must not alter gateway authentication, routing, application.yml, pom.xml, identity-provider configuration, or security dependencies.

RCA

  • Immediate cause: the public bootstrap class and method are undocumented.
  • Technical cause: module startup/annotation identity has no focused contract test, so refactors can remove discovery/bootstrap annotations without a local structural failure and public API documentation requirements are not enforced for this entry point.
  • Control gap: repository-wide coverage/docstring completeness issue [Quality evidence] Extend non-vacuous 100% coverage to every owned production module #205 is broader and still pending; this slice establishes a real gateway bootstrap boundary without claiming full gateway-module coverage.

TDD / acceptance

  1. Add a focused test first that preserves @SpringBootApplication, @EnableDiscoveryClient, and a public-static main(String[]) entry point.
  2. The same fail-first test requires beginner-readable class/method Javadoc explaining that the class starts the standalone mightyETL gateway, that discovery-client startup is part of bootstrap, and what args represents.
  3. Observe hosted RED only at the missing documentation assertion; setup/import/fixture/dependency failure does not qualify.
  4. Apply the smallest GREEN by adding Javadocs only; do not change annotations or SpringApplication.run(...) behavior.
  5. Run full applicable CI/dependency/SBOM/SAST/security evidence on the exact candidate.
  6. Keep active PR status separate from shipped truth and keep repository-wide coverage [Quality evidence] Extend non-vacuous 100% coverage to every owned production module #205, gateway JWT fix(gateway): replace placeholder token handling with JWT resource server #142, exact-source controls, scanner completeness and protected merge governance as independent acceptance dimensions.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: authAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainarea: dependenciesDependency or lockfile maintenancearea: securitySecurity boundary, hardening, or vulnerability preventiondocumentationImprovements or additions to documentationpriority: mediumNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmenttype: docsDocumentation, ADR, PRD, or technical writing

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions