fix: keep portal consumer contract object based - #32
Conversation
|
Warning Review limit reached
More reviews will be available in 55 minutes and 56 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (98)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR updates the generated OpenAPI artifacts to 0.3.8, specifically reverting Portal Management consumer endpoints back to object-based schemas (matching Portal UI/internal contracts) while keeping the User Management / ManageUsers consumer-token contract behavior from 0.3.7.
Changes:
- Bump published artifact versions to
0.3.8across TypeScript, Python, Rust, Java client, and Spring Boot 2 server outputs. - Revert Portal consumer-management request/response schemas to
type: objectand remove the generatedOpenConsumer*DTOmodels across languages. - Update generated clients/docs/tests to reflect the object-based consumer contracts and regenerated API signatures.
Reviewed changes
Copilot reviewed 98 out of 98 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| typescript/src/models/OpenConsumerTokenDTO.ts | Remove generated Portal consumer token model (Portal endpoints return object). |
| typescript/src/models/OpenConsumerInfoDTO.ts | Remove generated Portal consumer info model (Portal endpoints return object). |
| typescript/src/models/OpenConsumerCreateRequestDTO.ts | Remove generated Portal consumer create request model (Portal endpoints accept object). |
| typescript/src/models/index.ts | Stop exporting removed OpenConsumer*DTO TypeScript models. |
| typescript/src/apis/PortalManagementApi.ts | Switch consumer endpoints to object request/response shapes and remove typed serializers. |
| typescript/README.md | Update TypeScript package version references to 0.3.8. |
| typescript/package.json | Bump TypeScript package version to 0.3.8. |
| typescript/.openapi-generator/FILES | Remove deleted TypeScript consumer model files from generator manifest. |
| tests/test_user_management_contract.py | Assert Portal consumer endpoints use object schemas; ensure removed consumer DTO schemas are absent. |
| spring-boot2/src/main/resources/openapi.yaml | Bump version and change Portal consumer endpoint schemas to type: object; remove consumer DTO schemas. |
| spring-boot2/src/main/java/com/apollo/openapi/server/model/OpenConsumerTokenDTO.java | Remove generated Spring server consumer token model. |
| spring-boot2/src/main/java/com/apollo/openapi/server/model/OpenConsumerInfoDTO.java | Remove generated Spring server consumer info model. |
| spring-boot2/src/main/java/com/apollo/openapi/server/model/OpenConsumerCreateRequestDTO.java | Remove generated Spring server consumer create request model. |
| spring-boot2/src/main/java/com/apollo/openapi/server/config/SpringDocConfiguration.java | Bump SpringDoc OpenAPI version to 0.3.8. |
| spring-boot2/src/main/java/com/apollo/openapi/server/api/UserManagementApiDelegate.java | Update generated output; contains a small Javadoc brace typo. |
| spring-boot2/src/main/java/com/apollo/openapi/server/api/ReleaseManagementApiDelegate.java | Regenerated delegate; compatibility overloads removed (flagged in review). |
| spring-boot2/src/main/java/com/apollo/openapi/server/api/PortalManagementApiDelegate.java | Update consumer endpoint return types to Object / List<Object> and examples. |
| spring-boot2/src/main/java/com/apollo/openapi/server/api/PortalManagementApiController.java | Remove imports for deleted consumer DTO models. |
| spring-boot2/src/main/java/com/apollo/openapi/server/api/PortalManagementApi.java | Change consumer endpoints to Object types in the generated server API interface. |
| spring-boot2/src/main/java/com/apollo/openapi/server/api/NamespaceBranchManagementApiDelegate.java | Regenerated delegate; legacy overload removed (flagged in review). |
| spring-boot2/src/main/java/com/apollo/openapi/server/api/AccessKeyManagementApiDelegate.java | Regenerated delegate; legacy overloads removed (flagged in review). |
| spring-boot2/pom.xml | Bump Spring Boot 2 server artifact version to 0.3.8. |
| spring-boot2/.openapi-generator/FILES | Remove deleted Spring consumer model files from generator manifest. |
| rust/src/models/open_consumer_token_dto.rs | Remove generated Rust consumer token model. |
| rust/src/models/open_consumer_info_dto.rs | Remove generated Rust consumer info model. |
| rust/src/models/open_consumer_create_request_dto.rs | Remove generated Rust consumer create request model. |
| rust/src/models/mod.rs | Stop re-exporting removed Rust consumer models. |
| rust/src/apis/configuration.rs | Bump Rust user-agent version string to 0.3.8. |
| rust/README.md | Bump Rust README API/package versions and remove consumer model references. |
| rust/docs/OpenConsumerTokenDto.md | Remove generated Rust consumer token model docs. |
| rust/docs/OpenConsumerInfoDto.md | Remove generated Rust consumer info model docs. |
| rust/docs/OpenConsumerCreateRequestDto.md | Remove generated Rust consumer create request model docs. |
| rust/Cargo.toml | Bump Rust crate version to 0.3.8 and adjust dependencies. |
| rust/.openapi-generator/FILES | Remove deleted Rust consumer model/docs entries from generator manifest. |
| python/test/test_paths/test_openapi_v1_apps_app_id_envs_env_clusters_cluster_name_export/test_head.py | Adjust generated test to match regenerated ApiForhead class name. |
| python/test/test_models/test_open_consumer_token_dto.py | Remove generated Python unit test stub for deleted consumer token model. |
| python/test/test_models/test_open_consumer_info_dto.py | Remove generated Python unit test stub for deleted consumer info model. |
| python/test/test_models/test_open_consumer_create_request_dto.py | Remove generated Python unit test stub for deleted consumer create request model. |
| python/setup.py | Bump Python package version to 0.3.8. |
| python/README.md | Bump Python README API/package versions and remove consumer model references. |
| python/docs/models/OpenConsumerTokenDTO.md | Remove generated Python consumer token model docs. |
| python/docs/models/OpenConsumerInfoDTO.md | Remove generated Python consumer info model docs. |
| python/docs/models/OpenConsumerCreateRequestDTO.md | Remove generated Python consumer create request model docs. |
| python/docs/apis/tags/PortalManagementApi.md | Update Python docs: consumer endpoints now accept/return dict objects instead of typed models. |
| python/apollo_openapi/paths/openapi_v1_consumers/post.pyi | Switch consumer create request/response typing to dict schema. |
| python/apollo_openapi/paths/openapi_v1_consumers/post.py | Switch consumer create request/response schema to dict and rename request body helper. |
| python/apollo_openapi/paths/openapi_v1_consumers/get.pyi | Switch consumer list response items to dict schema. |
| python/apollo_openapi/paths/openapi_v1_consumers/get.py | Switch consumer list response items to dict schema. |
| python/apollo_openapi/paths/openapi_v1_consumer_tokens_by_app_id/get.pyi | Switch consumer token response schema to dict. |
| python/apollo_openapi/paths/openapi_v1_consumer_tokens_by_app_id/get.py | Switch consumer token response schema to dict. |
| python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_export/head.pyi | Rename generated HEAD API class to ApiForhead. |
| python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_export/head.py | Rename generated HEAD API class to ApiForhead. |
| python/apollo_openapi/models/init.py | Remove imports for deleted consumer models. |
| python/apollo_openapi/model/open_consumer_token_dto.pyi | Remove deleted Python consumer token model type stub. |
| python/apollo_openapi/model/open_consumer_token_dto.py | Remove deleted Python consumer token model implementation. |
| python/apollo_openapi/model/open_consumer_info_dto.pyi | Remove deleted Python consumer info model type stub. |
| python/apollo_openapi/model/open_consumer_info_dto.py | Remove deleted Python consumer info model implementation. |
| python/apollo_openapi/model/open_consumer_create_request_dto.pyi | Remove deleted Python consumer create request model type stub. |
| python/apollo_openapi/model/open_consumer_create_request_dto.py | Remove deleted Python consumer create request model implementation. |
| python/apollo_openapi/configuration.py | Bump Python debug report versions to 0.3.8. |
| python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_export.py | Update path API mixin to use ApiForhead. |
| python/apollo_openapi/api_client.py | Bump Python SDK user-agent version string to 0.3.8. |
| python/apollo_openapi/init.py | Bump Python SDK __version__ to 0.3.8. |
| python/.openapi-generator/FILES | Remove deleted Python consumer model/docs/test entries from generator manifest. |
| java-client/src/test/java/org/openapitools/client/model/OpenConsumerTokenDTOTest.java | Remove generated Java model test stub for deleted consumer token model. |
| java-client/src/test/java/org/openapitools/client/model/OpenConsumerInfoDTOTest.java | Remove generated Java model test stub for deleted consumer info model. |
| java-client/src/test/java/org/openapitools/client/model/OpenConsumerCreateRequestDTOTest.java | Remove generated Java model test stub for deleted consumer create request model. |
| java-client/src/test/java/org/openapitools/client/api/UserManagementApiTest.java | Update test calls to match regenerated signatures (operator query param). |
| java-client/src/test/java/org/openapitools/client/api/ReleaseManagementApiTest.java | Update test types/signatures to regenerated API (Long releaseId, rollback toReleaseId). |
| java-client/src/test/java/org/openapitools/client/api/PortalManagementApiTest.java | Update consumer tests to use Object request/response instead of typed consumer DTOs. |
| java-client/src/test/java/org/openapitools/client/api/NamespaceBranchManagementApiTest.java | Update test call argument order to regenerated signature. |
| java-client/src/test/java/org/openapitools/client/api/AccessKeyManagementApiTest.java | Update tests to include operator parameter in regenerated signatures. |
| java-client/src/main/java/org/openapitools/client/model/OpenConsumerTokenDTO.java | Remove generated Java client consumer token model. |
| java-client/src/main/java/org/openapitools/client/JSON.java | Remove Gson adapter registrations for deleted consumer models. |
| java-client/src/main/java/org/openapitools/client/Configuration.java | Bump Java client version constant to 0.3.8. |
| java-client/src/main/java/org/openapitools/client/ApiClient.java | Bump Java client user-agent version string to 0.3.8. |
| java-client/src/main/java/org/openapitools/client/api/ReleaseManagementApi.java | Regenerated: removed compatibility overloads and adjusted signatures/docs. |
| java-client/src/main/java/org/openapitools/client/api/PortalManagementApi.java | Use Object for Portal consumer request/response types. |
| java-client/src/main/java/org/openapitools/client/api/NamespaceBranchManagementApi.java | Regenerated: removed legacy overload and updated argument order. |
| java-client/src/main/java/org/openapitools/client/api/AccessKeyManagementApi.java | Regenerated: removed legacy overloads and updated signatures. |
| java-client/README.md | Bump Java client README version and remove consumer model references. |
| java-client/pom.xml | Bump Java client artifact version to 0.3.8. |
| java-client/docs/ReleaseManagementApi.md | Remove compatibility notes for removed overloads; update versioned docs. |
| java-client/docs/PortalManagementApi.md | Update docs to Object request/response for consumer endpoints. |
| java-client/docs/OpenConsumerTokenDTO.md | Remove deleted Java consumer token model docs. |
| java-client/docs/OpenConsumerInfoDTO.md | Remove deleted Java consumer info model docs. |
| java-client/docs/OpenConsumerCreateRequestDTO.md | Remove deleted Java consumer create request model docs. |
| java-client/docs/NamespaceBranchManagementApi.md | Remove compatibility notes for removed overloads. |
| java-client/build.sbt | Bump Java client build version to 0.3.8. |
| java-client/build.gradle | Bump Java client Gradle version to 0.3.8. |
| java-client/api/openapi.yaml | Bump version and revert Portal consumer endpoint schemas to type: object; remove consumer schemas. |
| java-client/.openapi-generator/FILES | Remove deleted Java consumer model/docs/test entries from generator manifest. |
| generate.sh | Bump generation versions to 0.3.8 and add patch script to preserve Java client operator overloads. |
| CHANGELOG.md | Update changelog entry to reflect Portal consumer schema revert and remove prior typed-consumer-schema note. |
| apollo-openapi.yaml | Bump spec version to 0.3.8 and revert Portal consumer endpoint schemas to type: object; remove consumer schemas. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { | ||
| if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { | ||
| String exampleString = "[ { \"orgName\" : \"orgName\", \"rateLimit\" : 0, \"ownerName\" : \"ownerName\", \"consumerId\" : 0, \"appId\" : \"appId\", \"name\" : \"name\", \"allowCreateApplication\" : false, \"allowManageUsers\" : false, \"rateLimitEnabled\" : false, \"orgId\" : \"orgId\", \"ownerEmail\" : \"ownerEmail\", \"token\" : \"token\" }, { \"orgName\" : \"orgName\", \"rateLimit\" : 0, \"ownerName\" : \"ownerName\", \"consumerId\" : 0, \"appId\" : \"appId\", \"name\" : \"name\", \"allowCreateApplication\" : false, \"allowManageUsers\" : false, \"rateLimitEnabled\" : false, \"orgId\" : \"orgId\", \"ownerEmail\" : \"ownerEmail\", \"token\" : \"token\" } ]"; | ||
| String exampleString = "[ \"{}\", \"{}\" ]"; |
| default ResponseEntity<Void> disableAccessKey(String appId, | ||
| String env, | ||
| Long accessKeyId, | ||
| String operator) { | ||
| return disableAccessKey(appId, env, accessKeyId); | ||
|
|
||
| } | ||
|
|
||
| /** | ||
| * PUT /openapi/v1/apps/{appId}/envs/{env}/accesskeys/{accessKeyId}/activation : 启用AccessKey | ||
| * | ||
| * | ||
| * @param appId (required) | ||
| * @param env (required) | ||
| * @param accessKeyId (required) | ||
| * @param mode (optional, default to 0) | ||
| * @param operator 操作人用户名 (optional) | ||
| * @return (status code 200) | ||
| * @see AccessKeyManagementApi#enableAccessKey | ||
| */ | ||
| default ResponseEntity<Void> enableAccessKey(String appId, | ||
| String env, | ||
| Long accessKeyId, | ||
| Integer mode) { | ||
| return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); |
| default ResponseEntity<Void> enableAccessKey(String appId, | ||
| String env, | ||
| Long accessKeyId, | ||
| Integer mode, | ||
| String operator) { | ||
| return enableAccessKey(appId, env, accessKeyId, mode); | ||
| return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); |
| default ResponseEntity<Void> rollback(String env, | ||
| Long releaseId, | ||
| String operator, | ||
| Long toReleaseId) { | ||
| return rollback(env, releaseId, operator); | ||
| return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); |
| default ResponseEntity<Void> updateBranchRules(String appId, | ||
| String env, | ||
| String clusterName, | ||
| String namespaceName, | ||
| String branchName, | ||
| OpenGrayReleaseRuleDTO openGrayReleaseRuleDTO, | ||
| String operator) { | ||
| return updateBranchRules(appId, env, clusterName, namespaceName, branchName, operator, | ||
| openGrayReleaseRuleDTO); | ||
| return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); |
| default ResponseEntity<OpenReleaseDTO> getReleaseById(String env, | ||
| Long releaseId) { |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 47dfb46273
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| default ResponseEntity<Void> rollback(String env, | ||
| Long releaseId, | ||
| String operator, | ||
| Long toReleaseId) { | ||
| return rollback(env, releaseId, operator); | ||
| return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); |
There was a problem hiding this comment.
Preserve delegate overloads for existing servers
When a Spring server implementation was generated from an older version and overrides the previous rollback(String, Long, String) delegate, the controller still dispatches to this four-argument method (ReleaseManagementApi calls getDelegate().rollback(env, releaseId, operator, toReleaseId)), so this default now returns 501 instead of reaching the user's implementation; implementations with @Override also stop compiling. The removed compatibility shim delegated to the old overload when toReleaseId was absent, so please keep that overload/delegation here and for the analogous delegate shims removed in this commit.
Useful? React with 👍 / 👎.
| @@ -1377,14 +1337,6 @@ public void rollback(String env, Long releaseId, String operator, Long toRelease | |||
| rollbackWithHttpInfo(env, releaseId, operator, toReleaseId); | |||
There was a problem hiding this comment.
Restore Java client compatibility overloads
For Java clients compiled against the previous generated API, calls such as rollback(env, releaseId, operator) no longer compile because this commit deleted the overload that forwarded to the new four-argument method with toReleaseId = null. The new post-generation step only restores User Management overloads, so please keep the rollback/access-key/branch-rule/release-id client shims as well when regenerating 0.3.8.
Useful? React with 👍 / 👎.
Summary
0.3.8OpenConsumer*DTOmodels from Java, Python, TypeScript, Rust, and Spring Boot 2 outputsManageUsersconsumer-token contract from0.3.7Validation
./generate.shpython -m unittest discover testsgit diff --check