diff --git a/bk-plugin-framework/bk_plugin_framework/__version__.py b/bk-plugin-framework/bk_plugin_framework/__version__.py index 5c945a8..48dc3e1 100644 --- a/bk-plugin-framework/bk_plugin_framework/__version__.py +++ b/bk-plugin-framework/bk_plugin_framework/__version__.py @@ -9,4 +9,4 @@ specific language governing permissions and limitations under the License. """ -__version__ = "2.3.5" +__version__ = "2.3.6" diff --git a/bk-plugin-framework/bk_plugin_framework/services/bpf_service/management/commands/sync_apigateway_if_changed.py b/bk-plugin-framework/bk_plugin_framework/services/bpf_service/management/commands/sync_apigateway_if_changed.py index 60da989..7b26126 100644 --- a/bk-plugin-framework/bk_plugin_framework/services/bpf_service/management/commands/sync_apigateway_if_changed.py +++ b/bk-plugin-framework/bk_plugin_framework/services/bpf_service/management/commands/sync_apigateway_if_changed.py @@ -41,7 +41,7 @@ def handle(self, *args, **options): step_start = time.time() self.stdout.write("[Sync] generate definition.yaml") try: - call_command("generate_definition_yaml") + call_command("generate_definition_yaml", "--render") except Exception as e: self.stderr.write( self.style.ERROR( @@ -66,10 +66,15 @@ def handle(self, *args, **options): self.stdout.write(f"[Sync] resources.yaml path: {resources_yaml_path}") step_timings["1.1 复制 support-files/resources.yaml"] = (time.time() - step_start) * 1000 - # 2. 计算当前哈希值(仅计算 resources.yaml) + # 2. 计算当前哈希值(计算 resources.yaml 和 definition.yaml) step_start = time.time() - current_hash = self._calculate_resources_hash() - self.stdout.write(f"[Sync] Current resources.yaml hash: {current_hash[:16]}...") + resources_hash = self._calculate_yaml_hash(resources_yaml_path) + definition_hash = self._calculate_yaml_hash(definition_yaml_path) + self.stdout.write(f"[Sync] resources.yaml hash: {resources_hash[:16] if resources_hash else 'N/A'}...") + self.stdout.write(f"[Sync] definition.yaml hash: {definition_hash[:16] if definition_hash else 'N/A'}...") + # 组合两个哈希值生成最终哈希 + current_hash = hashlib.sha256(f"{resources_hash}:{definition_hash}".encode()).hexdigest() + self.stdout.write(f"[Sync] Current combined hash: {current_hash[:16]}...") step_timings["2. 计算当前哈希值"] = (time.time() - step_start) * 1000 # 3. 获取上次同步的哈希值 @@ -165,15 +170,14 @@ def _copy_support_files_resources(self): self.stderr.write(self.style.ERROR(f"[Sync] Failed to copy support-files/resources.yaml: {e}")) raise SystemExit(1) - def _calculate_resources_hash(self): + def _calculate_yaml_hash(self, filepath): """ - 计算 resources.yaml 的哈希值 + 计算单个 YAML 文件的哈希值 注意:为了避免 YAML 内容顺序变化导致的 hash 不一致问题, 这里先将 YAML 解析为字典,然后用 sort_keys=True 重新序列化, 确保相同内容的 YAML 文件总是产生相同的 hash 值。 """ - filepath = os.path.join(settings.BASE_DIR, "resources.yaml") if os.path.exists(filepath): try: with open(filepath, encoding="utf-8") as f: @@ -190,7 +194,7 @@ def _calculate_resources_hash(self): except Exception as e: self.stdout.write( self.style.WARNING( - f"[Sync] Failed to normalize resources.yaml for hash: {e}, fallback to raw content hash" + f"[Sync] Failed to normalize {filepath} for hash: {e}, fallback to raw content hash" ) ) # 回退到原始方式 diff --git a/bk-plugin-framework/poetry.lock b/bk-plugin-framework/poetry.lock index cf072f0..05959b4 100644 --- a/bk-plugin-framework/poetry.lock +++ b/bk-plugin-framework/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] name = "amqp" @@ -32,29 +32,30 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} [[package]] name = "apigw-manager" -version = "3.1.2" +version = "4.2.3" description = "The SDK for managing blueking gateway resource." optional = false -python-versions = "<4.0.0,>=3.6.1" +python-versions = "<3.13,>=3.8" groups = ["main"] +markers = "python_version < \"3.13\"" files = [ - {file = "apigw_manager-3.1.2-py3-none-any.whl", hash = "sha256:0bff95951ebd7623d34e905a33f621937deb6bf126026c7f36269269d2751b9f"}, + {file = "apigw_manager-4.2.3-py3-none-any.whl", hash = "sha256:ecc531a17fbd1c52e903583ca4abb2fc1c3c7d37954e56df691c3e93577754da"}, ] [package.dependencies] -bkapi-bk-apigateway = ">=1.0.11,<2.0.0" +bkapi-bk-apigateway = ">=1.0.12,<2.0.0" bkapi-client-core = ">=1.2.0" -future = ">=0.18.2" +docutils = "0.20.1" packaging = ">=20.4" -pyyaml = ">=5.4.1" +pyyaml = ">=5.4.2" setuptools = ">=21.0.0" urllib3 = ">=1.25.3" [package.extras] -cryptography = ["cryptography (>=3.1.1)", "pyjwt (>=1.6.4)"] -demo = ["Django (>=1.11.1)", "PyMySQL (>=1.0.2,<2.0.0)", "django-environ (>=0.8.1)", "pyjwt (>=1.6.4)"] -django = ["Django (>=1.11.1)", "pyjwt (>=1.6.4)"] -drf = ["Django (>=1.11.1)", "cryptography (>=3.1.1)", "djangorestframework (<=3.15.1)", "drf-spectacular (<=0.27.1)", "pyjwt (>=1.6.4)"] +cryptography = ["cryptography (>=3.1.1)", "pyjwt (>=2.0.0)"] +demo = ["Django (>=3.0.14)", "PyMySQL (>=1.0.2,<2.0.0)", "django-environ (>=0.8.1)", "pyjwt (>=2.0.0)"] +django = ["Django (>=3.0.14)", "pyjwt (>=2.0.0)"] +drf = ["Django (>=3.0.14)", "cryptography (>=3.1.1)", "djangorestframework (>=3.10.3)", "drf-spectacular (<=0.27.2)", "pyjwt (>=2.0.0)"] kubernetes = ["kubernetes"] [[package]] @@ -200,17 +201,18 @@ files = [ [[package]] name = "bk-plugin-runtime" -version = "2.1.3" +version = "2.1.5" description = "bk plugin python django runtime" optional = false python-versions = "<4.0.0,>=3.8.0" groups = ["main"] files = [ - {file = "bk_plugin_runtime-2.1.3-py3-none-any.whl", hash = "sha256:c9490940595235f661a7f828b89bb1bf70137832fc7f6097f0ea3b4076d5e333"}, - {file = "bk_plugin_runtime-2.1.3.tar.gz", hash = "sha256:12a40292da251fdca33f2723dd5ee51908deb3e19140246b49d35441884af347"}, + {file = "bk_plugin_runtime-2.1.5-py3-none-any.whl", hash = "sha256:6b00204413299b626a658103ebc25c9a07dc988d09e344b7cf583c545df38e04"}, + {file = "bk_plugin_runtime-2.1.5.tar.gz", hash = "sha256:170c9fe52938dd6866655a26e3160f3d21ac7190552e033899564e5e12bc999b"}, ] [package.dependencies] +apigw-manager = {version = ">=4.2.3,<5.0.0", markers = "python_version >= \"3.8\" and python_version < \"3.13\""} blueapps = {version = ">=4.15.1,<5.0", extras = ["opentelemetry"]} celery = ">=5.4.0,<6.0.0" ddtrace = ">=0.14.1,<0.15.0" @@ -234,6 +236,7 @@ description = "蓝鲸API网关" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,<4.0,>=2.7" groups = ["main"] +markers = "python_version < \"3.13\"" files = [ {file = "bkapi-bk-apigateway-1.0.12.tar.gz", hash = "sha256:4e32b3b3c5f45f8a264aab84a73a827edcb29698357d3c90e689d0271ce97902"}, ] @@ -251,6 +254,7 @@ description = "A toolkit for buiding blueking API clients." optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" groups = ["main"] +markers = "python_version < \"3.13\"" files = [ {file = "bkapi_client_core-1.2.0-py2.py3-none-any.whl", hash = "sha256:f18b29e0fc0ee8d5eca33ea1f823f26dc7d7adc2f39670cc45cc2f8452f39630"}, ] @@ -1085,6 +1089,7 @@ description = "Convert Requests request objects to curl commands." optional = false python-versions = ">=3.7" groups = ["main"] +markers = "python_version < \"3.13\"" files = [ {file = "curlify-3.0.0-py3-none-any.whl", hash = "sha256:52060c0eb7a656b7bde6b668c32f337bed4d736ce230755767e3ada56a09c338"}, {file = "curlify-3.0.0.tar.gz", hash = "sha256:7b488ff3c924dba3433a1cc74044c0942da21f0a97fa26c3138319ba640ca412"}, @@ -1280,6 +1285,19 @@ files = [ "backports.zoneinfo" = {version = "*", markers = "python_version < \"3.9\""} django = ">=3.0" +[[package]] +name = "docutils" +version = "0.20.1" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.13\"" +files = [ + {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, + {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, +] + [[package]] name = "drf-spectacular" version = "0.29.0" @@ -1349,18 +1367,6 @@ typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} [package.extras] test = ["pytest (>=6)"] -[[package]] -name = "future" -version = "1.0.0" -description = "Clean single-source support for Python 3 and 2" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -groups = ["main"] -files = [ - {file = "future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216"}, - {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, -] - [[package]] name = "googleapis-common-protos" version = "1.56.1" @@ -3996,7 +4002,7 @@ description = "Easily download, build, install, upgrade, and uninstall Python pa optional = false python-versions = ">=3.9" groups = ["main"] -markers = "python_version >= \"3.9\" and platform_python_implementation != \"PyPy\" or python_version >= \"3.13\"" +markers = "python_version >= \"3.9\" and platform_python_implementation != \"PyPy\" and python_version < \"3.13\"" files = [ {file = "setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"}, {file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"}, @@ -4528,4 +4534,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = "^3.8.0,<4.0" -content-hash = "1227dbb3ead287fe7f550287428b68fafe59e1115efebf64da7dd9a2e58ebcbd" +content-hash = "d386ca91c926fb454c8342cef6d432fccc350810c61ebd530ae83970be3a12e7" diff --git a/bk-plugin-framework/pyproject.toml b/bk-plugin-framework/pyproject.toml index 639f434..74ce7fa 100644 --- a/bk-plugin-framework/pyproject.toml +++ b/bk-plugin-framework/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bk-plugin-framework" -version = "2.3.5" +version = "2.3.6" description = "bk plugin python framework" authors = ["Your Name "] license = "MIT" @@ -9,8 +9,8 @@ license = "MIT" python = "^3.8.0,<4.0" pydantic = ">=1.0,<3" werkzeug = ">=2.0.0, <4.0" -apigw-manager = {version = ">=1.0.6, <4", extras = ["extra"]} -bk-plugin-runtime = "2.1.3" +apigw-manager = {version = ">=4.2.3, <5", python = ">=3.8,<3.13"} +bk-plugin-runtime = "2.1.5" jsonschema = ">=2.5.0,<5.0.0" drf-spectacular = "^0.29.0" @@ -40,3 +40,8 @@ exclude = ''' | dist )/ ''' + +[[tool.poetry.source]] +name = "tencent" +url = "https://mirrors.tencent.com/repository/pypi/tencent_pypi/simple" +priority = "supplemental" diff --git a/runtime/bk-plugin-runtime/bk_plugin_runtime/__version__.py b/runtime/bk-plugin-runtime/bk_plugin_runtime/__version__.py index 206881d..fbb0b06 100644 --- a/runtime/bk-plugin-runtime/bk_plugin_runtime/__version__.py +++ b/runtime/bk-plugin-runtime/bk_plugin_runtime/__version__.py @@ -9,4 +9,4 @@ specific language governing permissions and limitations under the License. """ -__version__ = "2.1.3" +__version__ = "2.1.5" diff --git a/runtime/bk-plugin-runtime/bk_plugin_runtime/config/default.py b/runtime/bk-plugin-runtime/bk_plugin_runtime/config/default.py index 505c0c4..64dc68a 100644 --- a/runtime/bk-plugin-runtime/bk_plugin_runtime/config/default.py +++ b/runtime/bk-plugin-runtime/bk_plugin_runtime/config/default.py @@ -14,6 +14,7 @@ import urllib from urllib.parse import urlparse +from apigw_manager.plugin.config import build_bk_cors, build_stage_plugin_config_for_definition_yaml from blueapps.conf.default_settings import * # noqa from blueapps.conf.log import get_logging_config_dict @@ -221,6 +222,15 @@ def logging_addition_settings(logging_dict): break +# plugin configs +apigw_plugin_configs = build_stage_plugin_config_for_definition_yaml( + [ + build_bk_cors( + allow_headers="**", allow_methods="**", allow_origins="**", allow_credential=True, expose_headers="--" + ), + ] +) +BK_APIGW_STAGE_PLUGIN_CONFIGS = apigw_plugin_configs # drf settings REST_FRAMEWORK = { "DEFAULT_AUTHENTICATION_CLASSES": [ @@ -292,6 +302,6 @@ def logging_addition_settings(logging_dict): BK_APIGW_CORS_ALLOW_METHODS = os.getenv("BK_APIGW_CORS_ALLOW_METHODS", "") BK_APIGW_CORS_ALLOW_HEADERS = os.getenv("BK_APIGW_CORS_ALLOW_HEADERS", "") BK_APIGW_DEFAULT_TIMEOUT = int(os.getenv("BK_APIGW_DEFAULT_TIMEOUT", "60")) -BK_APIGW_GRANTED_APPS = [BK_APP_CODE] + [ +BK_APIGW_GRANT_PERMISSION_DIMENSION_GATEWAY_APP_CODES = [BK_APP_CODE] + [ each.strip() for each in os.getenv("BK_APIGW_GRANTED_APPS", "").split(",") if each.strip() ] diff --git a/runtime/bk-plugin-runtime/poetry.lock b/runtime/bk-plugin-runtime/poetry.lock index 913196a..431415b 100644 --- a/runtime/bk-plugin-runtime/poetry.lock +++ b/runtime/bk-plugin-runtime/poetry.lock @@ -15,6 +15,34 @@ files = [ [package.dependencies] vine = ">=5.0.0,<6.0.0" +[[package]] +name = "apigw-manager" +version = "4.2.3" +description = "The SDK for managing blueking gateway resource." +optional = false +python-versions = "<3.13,>=3.8" +groups = ["main"] +markers = "python_version < \"3.13\"" +files = [ + {file = "apigw_manager-4.2.3-py3-none-any.whl", hash = "sha256:ecc531a17fbd1c52e903583ca4abb2fc1c3c7d37954e56df691c3e93577754da"}, +] + +[package.dependencies] +bkapi-bk-apigateway = ">=1.0.12,<2.0.0" +bkapi-client-core = ">=1.2.0" +docutils = "0.20.1" +packaging = ">=20.4" +pyyaml = ">=5.4.2" +setuptools = ">=21.0.0" +urllib3 = ">=1.25.3" + +[package.extras] +cryptography = ["cryptography (>=3.1.1)", "pyjwt (>=2.0.0)"] +demo = ["Django (>=3.0.14)", "PyMySQL (>=1.0.2,<2.0.0)", "django-environ (>=0.8.1)", "pyjwt (>=2.0.0)"] +django = ["Django (>=3.0.14)", "pyjwt (>=2.0.0)"] +drf = ["Django (>=3.0.14)", "cryptography (>=3.1.1)", "djangorestframework (>=3.10.3)", "drf-spectacular (<=0.27.2)", "pyjwt (>=2.0.0)"] +kubernetes = ["kubernetes"] + [[package]] name = "asgiref" version = "3.8.1" @@ -91,6 +119,46 @@ files = [ {file = "billiard-4.2.4.tar.gz", hash = "sha256:55f542c371209e03cd5862299b74e52e4fbcba8250ba611ad94276b369b6a85f"}, ] +[[package]] +name = "bkapi-bk-apigateway" +version = "1.0.12" +description = "蓝鲸API网关" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,<4.0,>=2.7" +groups = ["main"] +markers = "python_version < \"3.13\"" +files = [ + {file = "bkapi-bk-apigateway-1.0.12.tar.gz", hash = "sha256:4e32b3b3c5f45f8a264aab84a73a827edcb29698357d3c90e689d0271ce97902"}, +] + +[package.dependencies] +bkapi-client-core = ">=1.0.2,<2.0.0" + +[package.extras] +django = ["bkapi-client-core[django] (>=1.0.2,<2.0.0)"] + +[[package]] +name = "bkapi-client-core" +version = "1.2.0" +description = "A toolkit for buiding blueking API clients." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +groups = ["main"] +markers = "python_version < \"3.13\"" +files = [ + {file = "bkapi_client_core-1.2.0-py2.py3-none-any.whl", hash = "sha256:f18b29e0fc0ee8d5eca33ea1f823f26dc7d7adc2f39670cc45cc2f8452f39630"}, +] + +[package.dependencies] +curlify = ">=2.0" +requests = ">=2.20" +six = "*" +typing-extensions = ">=3.7.4" + +[package.extras] +django = ["bkoauth (>=0.0.10)", "prometheus-client (>=0.9.0)"] +monitor = ["prometheus-client (>=0.9.0)"] + [[package]] name = "bkoauth" version = "0.1.0" @@ -634,6 +702,22 @@ ssh = ["bcrypt (>=3.1.5)"] test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] +[[package]] +name = "curlify" +version = "3.0.0" +description = "Convert Requests request objects to curl commands." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.13\"" +files = [ + {file = "curlify-3.0.0-py3-none-any.whl", hash = "sha256:52060c0eb7a656b7bde6b668c32f337bed4d736ce230755767e3ada56a09c338"}, + {file = "curlify-3.0.0.tar.gz", hash = "sha256:7b488ff3c924dba3433a1cc74044c0942da21f0a97fa26c3138319ba640ca412"}, +] + +[package.dependencies] +requests = "*" + [[package]] name = "ddtrace" version = "0.14.1" @@ -820,6 +904,19 @@ files = [ "backports.zoneinfo" = {version = "*", markers = "python_version < \"3.9\""} django = ">=3.0" +[[package]] +name = "docutils" +version = "0.20.1" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.13\"" +files = [ + {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, + {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, +] + [[package]] name = "drf-yasg" version = "1.21.10" @@ -1947,6 +2044,28 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "setuptools" +version = "75.3.3" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.13\"" +files = [ + {file = "setuptools-75.3.3-py3-none-any.whl", hash = "sha256:4f198f37d40550b86ebc2a678e2246ef76fbec316619a5ac61ecbb3cabf8e9bf"}, + {file = "setuptools-75.3.3.tar.gz", hash = "sha256:22e8a8ef763eb571d8e414e29b1b9fa9fd0ae3cdcb973ad51c12d8d3ee38ff5c"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.5.2) ; sys_platform != \"cygwin\""] +core = ["importlib-metadata (>=6) ; python_version < \"3.10\"", "importlib-resources (>=5.10.2) ; python_version < \"3.9\"", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "ruff (<=0.7.1)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.12.*)", "pytest-mypy"] + [[package]] name = "six" version = "1.17.0" @@ -2235,4 +2354,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = "^3.8.0,<4.0" -content-hash = "ac0d1626509d1ed8b924db0e6f917c748714b1038531f493ccfebf3df1153fb1" +content-hash = "a81c9e08689410c433abf28c64536a8612a0e8ae132c8d2c928799ebf1bfc0c2" diff --git a/runtime/bk-plugin-runtime/pyproject.toml b/runtime/bk-plugin-runtime/pyproject.toml index 7dfc3a7..a589cb4 100644 --- a/runtime/bk-plugin-runtime/pyproject.toml +++ b/runtime/bk-plugin-runtime/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bk-plugin-runtime" -version = "2.1.3" +version = "2.1.5" description = "bk plugin python django runtime" authors = ["Your Name "] license = "MIT" @@ -22,6 +22,7 @@ protobuf=">=3.19.4,<6.0" celery = "^5.4.0" django-celery-beat = "^2.7.0" django-celery-results = "^2.5.1" +apigw-manager = {version = "^4.2.3", python = ">=3.8,<3.13"} [tool.poetry.dev-dependencies] diff --git a/template/{{cookiecutter.project_name}}/requirements.txt b/template/{{cookiecutter.project_name}}/requirements.txt index 8adff1e..d7a139c 100644 --- a/template/{{cookiecutter.project_name}}/requirements.txt +++ b/template/{{cookiecutter.project_name}}/requirements.txt @@ -1,6 +1,6 @@ # base # DO NOT DELETE ANY PACKAGE IN base SECTION !!! -bk-plugin-framework==2.3.5 +bk-plugin-framework==2.3.6 # opentelemetry celery-prometheus-exporter==1.7.0 opentelemetry-api==1.25.0