You are viewing a plain text version of this content. The canonical link for it is here.
Posted to builds@streampark.apache.org by GitBox <gi...@apache.org> on 2026/08/07 07:20:08 UTC

[GH] (streampark/dev): Workflow run "E2E" is working again!

The GitHub Actions job "E2E" on streampark.git/dev has succeeded.
Run started by GitHub user wolfboys (triggered by wolfboys).

Head commit for run:
f89652b674be1e45df7a2de0283bd46fa7ecd35f / Assert <42...@users.noreply.github.com>
[Console] Add request/response DTOs for all REST controllers (#4475)

[Console] Complete REST API DTO and typed response contract refactor

Refactor the console-service REST API layer to establish explicit and
type-safe request/response contracts instead of exposing domain entities
directly through HTTP endpoints.

This change introduces dedicated request and response DTOs across the
Console REST controllers, together with assembler-based mappings between
API DTOs and domain entities. It also completes the migration to typed
RestResponseBody responses while keeping HTTP-specific response wrapping
at the Controller boundary.

Key changes:

* Introduce dedicated request/response DTOs across Flink, Spark, resource,
  setting, system, project, variable, alert, and other REST APIs.

* Replace direct domain entity pass-through at HTTP boundaries with explicit
  DTO contracts and introduce DtoAssembler and domain-specific assemblers
  for request/entity/response conversion.

* Add Bean Validation constraints to request DTOs and apply @Valid across
  controller endpoints, including common ID/team requests, application,
  cluster, environment, project, resource, variable, alert, configuration,
  savepoint, and system APIs.

* Add spring-boot-starter-validation to enable Bean Validation and register
  the related dependencies for backend license verification.

* Introduce typed RestResponseBody responses and replace wildcard/Object
  payloads with concrete response DTOs, primitives, and domain result types
  wherever possible.

* Keep RestResponseBody and other HTTP-specific response semantics at the
  Controller layer. Service methods now return domain result types instead
  of HTTP response envelopes.

* Preserve compatibility with existing clients by introducing @FormOrJson
  request binding for endpoints that need to accept both JSON and legacy
  form-urlencoded requests.

* Preserve legacy response formats where required, including login response
  codes, build log extension fields, token creation responses, alert config
  JSON-string parameters, and SQL endpoints with object-or-array payloads.

* Improve OpenAPI generation by deriving request schemas from DTO fields
  through RequestDtoSchemaBuilder and update OpenAPIAspect and
  PermissionAspect for RestResponseBody compatibility.

* Add shared request models such as SqlVerifyRequest,
  AppScopedIdRequest, and AppTeamQueryRequest to reduce duplicated API
  contracts and validation logic.

* Add null-safety guards around assembler, environment, SQL, resource, and
  cluster paths and fix related Sonar reliability findings.

* Resolve Sonar issues around response generics, null dereferences, duplicated
  literals, collection returns, serialization, and code complexity.

* Expand validation unit tests and WebMvcTest coverage for Flink application,
  system, setting, application-scoped, SQL, and other REST endpoints.

* Fix compatibility regressions discovered by E2E tests, including resource
  assembly, alert name checks, Yarn queue validation, and alert configuration
  serialization.

* Apply Spotless formatting and update known dependency licenses required by
  backend CI verification.

The refactor keeps the existing REST API behavior compatible where required
while establishing a clearer separation between API contracts, domain models,
service results, and HTTP response representations. This provides a stronger
foundation for validation, OpenAPI schema generation, API type export, and
future frontend/backend contract evolution.

Report URL: https://github.com/apache/streampark/actions/runs/31155999324

With regards,
GitHub Actions via GitBox