refactor: fix OpenAPI contract generation schemas (#37387)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
Stephen Zhou
2026-06-12 14:25:53 +00:00
committed by GitHub
co-authored by autofix-ci[bot]
parent 7cf75c3cc5
commit 5d77c0af08
222 changed files with 15425 additions and 10146 deletions
+21 -9
View File
@@ -8,7 +8,7 @@ from werkzeug.exceptions import Unauthorized
from constants import HEADER_NAME_APP_CODE
from controllers.common import fields
from controllers.common.schema import register_response_schema_models, register_schema_models
from controllers.common.schema import query_params_from_model, register_response_schema_models, register_schema_models
from core.app.app_config.common.parameters_mapping import get_parameters_from_feature_dict
from libs.passport import PassportService
from libs.token import extract_webapp_passport
@@ -32,9 +32,24 @@ class AppAccessModeQuery(BaseModel):
app_code: str | None = Field(default=None, alias="appCode", description="Application code")
register_schema_models(web_ns, AppAccessModeQuery)
class AppPermissionQuery(BaseModel):
model_config = ConfigDict(populate_by_name=True)
app_id: str = Field(..., alias="appId", description="Application ID")
class AppMetaResponse(BaseModel):
tool_icons: dict[str, Any] = Field(
default_factory=dict,
description="Tool icon metadata keyed by tool name",
)
register_schema_models(web_ns, AppAccessModeQuery, AppPermissionQuery)
register_response_schema_models(
web_ns,
fields.Parameters,
AppMetaResponse,
fields.AccessModeResponse,
fields.BooleanResultResponse,
)
@@ -56,6 +71,7 @@ class AppParameterApi(WebApiResource):
500: "Internal Server Error",
}
)
@web_ns.response(200, "Success", web_ns.models[fields.Parameters.__name__])
def get(self, app_model: App, end_user: EndUser):
"""Retrieve app parameters."""
if app_model.mode in {AppMode.ADVANCED_CHAT, AppMode.WORKFLOW}:
@@ -92,6 +108,7 @@ class AppMeta(WebApiResource):
500: "Internal Server Error",
}
)
@web_ns.response(200, "Success", web_ns.models[AppMetaResponse.__name__])
def get(self, app_model: App, end_user: EndUser):
"""Get app meta"""
return AppService().get_app_meta(app_model)
@@ -101,12 +118,7 @@ class AppMeta(WebApiResource):
class AppAccessMode(Resource):
@web_ns.doc("Get App Access Mode")
@web_ns.doc(description="Retrieve the access mode for a web application (public or restricted).")
@web_ns.doc(
params={
"appId": {"description": "Application ID", "type": "string", "required": False},
"appCode": {"description": "Application code", "type": "string", "required": False},
}
)
@web_ns.doc(params=query_params_from_model(AppAccessModeQuery))
@web_ns.doc(
responses={
200: "Success",
@@ -139,7 +151,7 @@ class AppAccessMode(Resource):
class AppWebAuthPermission(Resource):
@web_ns.doc("Check App Permission")
@web_ns.doc(description="Check if user has permission to access a web application.")
@web_ns.doc(params={"appId": {"description": "Application ID", "type": "string", "required": True}})
@web_ns.doc(params=query_params_from_model(AppPermissionQuery))
@web_ns.doc(
responses={
200: "Success",