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