diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d1630d8b3..71ec5e9d00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm +## 0.14.7 (2024-12-09) + + +### Bug Fixes + +- Remove specific timeout for search request in favor of global timeout. +- Update `handle_request` to use method for indentifying retryable requests. +- Set upsert entenies as retryable. +- Update the condition upon which the JWT token is refreshed so it will refresh on expiration instead of only after. + + ## 0.14.6 (2024-12-04) diff --git a/port_ocean/clients/port/authentication.py b/port_ocean/clients/port/authentication.py index b05fbdd59c..4855651816 100644 --- a/port_ocean/clients/port/authentication.py +++ b/port_ocean/clients/port/authentication.py @@ -18,7 +18,7 @@ class TokenResponse(BaseModel): @property def expired(self) -> bool: - return self._retrieved_time + self.expires_in < get_time() + return self._retrieved_time + self.expires_in <= get_time() @property def full_token(self) -> str: diff --git a/port_ocean/clients/port/mixins/entities.py b/port_ocean/clients/port/mixins/entities.py index f8d5f63fa3..80f8178849 100644 --- a/port_ocean/clients/port/mixins/entities.py +++ b/port_ocean/clients/port/mixins/entities.py @@ -48,6 +48,7 @@ async def upsert_entity( ).lower(), "validation_only": str(validation_only).lower(), }, + extensions={"retryable": True}, ) if response.is_error: @@ -205,7 +206,6 @@ async def search_entities( "include": ["blueprint", "identifier"], }, extensions={"retryable": True}, - timeout=30, ) handle_status_code(response) return [Entity.parse_obj(result) for result in response.json()["entities"]] diff --git a/port_ocean/helpers/retry.py b/port_ocean/helpers/retry.py index 0893235c4a..5b2058c86c 100644 --- a/port_ocean/helpers/retry.py +++ b/port_ocean/helpers/retry.py @@ -134,7 +134,7 @@ def handle_request(self, request: httpx.Request) -> httpx.Response: """ try: transport: httpx.BaseTransport = self._wrapped_transport # type: ignore - if request.method in self._retryable_methods: + if self._is_retryable_method(request): send_method = partial(transport.handle_request) response = self._retry_operation(request, send_method) else: diff --git a/pyproject.toml b/pyproject.toml index 2762c2a607..bb799d82da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "port-ocean" -version = "0.14.6" +version = "0.14.7" description = "Port Ocean is a CLI tool for managing your Port projects." readme = "README.md" homepage = "https://app.getport.io"