Skip to content

Commit 4dc90bf

Browse files
authored
Merge pull request #144 from britive/fix/errors-and-types
v4.1.1
2 parents be72a7f + a5555c8 commit 4dc90bf

8 files changed

Lines changed: 45 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Change Log (v2.8.1+)
22

3+
## v4.1.1 [2025-03-05]
4+
5+
__What's New:__
6+
7+
* None
8+
9+
__Enhancements:__
10+
11+
* None
12+
13+
__Bug Fixes:__
14+
15+
* Added missing `409 Conflict` to `exceptions.allowed_exceptions`
16+
* Added missing zero in the `PP-` errors in `exceptions.badrequest`
17+
* Raise specific `InvalidTenantError` when DNS resolution fails in `helpers.utils.parse_tenant`.
18+
* Updated type hint typo, from `list` to `dict`, in `[my_access|my_resources].list`.
19+
20+
__Dependencies:__
21+
22+
* `jmespath >= 1.0.1`
23+
24+
__Other:__
25+
26+
* None
27+
328
## v4.1.0 [2025-02-28]
429

530
__What's New:__

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ classifiers = [
2525
license = {file = "LICENSE"}
2626
requires-python = ">=3.9"
2727
dependencies = [
28-
"requests>=2.32.0"
28+
"requests>=2.32.0",
29+
"jmespath>=1.0.1"
2930
]
3031
dynamic = ["version"]
3132
keywords = ["britive", "cpam", "identity", "jit"]

src/britive/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '4.1.0'
1+
__version__ = '4.1.1'

src/britive/exceptions/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ class ApprovalWorkflowTimedOut(BritiveException):
2222
pass
2323

2424

25+
class Conflict(BritiveException):
26+
pass
27+
28+
2529
class ForbiddenRequest(BritiveException):
2630
pass
2731

@@ -165,6 +169,7 @@ class UserNotAssociatedWithDefaultIdentityProvider(BritiveException):
165169
403: ForbiddenRequest,
166170
404: NotFound,
167171
405: MethodNotAllowed,
172+
409: Conflict,
168173
500: InternalServerError,
169174
503: ServiceUnavailable,
170175
}

src/britive/exceptions/badrequest.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -473,12 +473,12 @@ class GenericError(BritiveBadRequestException):
473473
'PF-0002': ProfileFavoriteDeleteError,
474474
'PF-0003': ProfileFavoriteReadError,
475475
# Profile Policy related
476-
'PP-001': ProfilePolicyPermissionsError,
477-
'PP-002': ProfilePolicyInvalidTokenError,
478-
'PP-003': ProfilePolicyCreationError,
479-
'PP-004': ProfilePolicyUpdateError,
480-
'PP-005': ProfilePolicyGenericError,
481-
'PP-006': ProfilePolicyCreationUpdateError,
476+
'PP-0001': ProfilePolicyPermissionsError,
477+
'PP-0002': ProfilePolicyInvalidTokenError,
478+
'PP-0003': ProfilePolicyCreationError,
479+
'PP-0004': ProfilePolicyUpdateError,
480+
'PP-0005': ProfilePolicyGenericError,
481+
'PP-0006': ProfilePolicyCreationUpdateError,
482482
# Profile request related
483483
'PR-0001': ProfileRequestError,
484484
# Access Broker related

src/britive/helpers/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from britive.exceptions import BritiveException, InvalidFederationProvider, allowed_exceptions
77
from britive.exceptions.badrequest import bad_request_code_map
88
from britive.exceptions.generic import generic_code_map
9-
from britive.exceptions.unauthorized import unauthorized_code_map
9+
from britive.exceptions.unauthorized import InvalidTenantError, unauthorized_code_map
1010
from britive.federation_providers import (
1111
AwsFederationProvider,
1212
AzureSystemAssignedManagedIdentityFederationProvider,
@@ -69,7 +69,7 @@ def parse_tenant(tenant: str) -> str:
6969
socket.getaddrinfo(host=resolved_domain, port=443) # validate the hostname is real
7070
return resolved_domain # and if so set the tenant accordingly
7171
except socket.gaierror as e:
72-
raise Exception(f'Invalid tenant provided: {tenant}. DNS resolution failed.') from e
72+
raise InvalidTenantError(f'Invalid tenant provided: {tenant}. DNS resolution failed.') from e
7373

7474

7575
def response_has_no_content(response) -> bool:

src/britive/my_access.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ def __init__(self, britive) -> None:
5353
self.withdraw_approval_request = __my_requests.withdraw_approval_request
5454
self.withdraw_approval_request_by_name = __my_requests.withdraw_approval_request_by_name
5555

56-
def list(self, filter_text: str = None, search_text: str = None, size: int = None) -> list:
56+
def list(self, filter_text: str = None, search_text: str = None, size: int = None) -> dict:
5757
"""
5858
List the access details for the current user.
5959
6060
:param filter_text: filter details by key, using eq|co|sw operators, e.g. `filter_text='key co text'`
6161
:param search_text: filter details by search text.
6262
:param size: reduce the size of the response to the specified limit.
63-
:return: List of profiles.
63+
:return: Dict of access details.
6464
"""
6565

6666
params = {'type': 'sdk'}

src/britive/my_resources.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ def __init__(self, britive) -> None:
5151
self.withdraw_approval_request_by_name = __my_requests.withdraw_approval_request_by_name
5252

5353
# Let's just mimic my_access.list functionality for now.
54-
def list(self, filter_text: str = None, list_type: str = None, search_text: str = None, size: int = None) -> list:
54+
def list(self, filter_text: str = None, list_type: str = None, search_text: str = None, size: int = None) -> dict:
5555
"""
5656
List the resource details for the current user.
5757
5858
:param filter_text: filter resource by key, e.g. `filter_text='key eq env'`
5959
:param list_type: filter resources by type, e.g. `list_type='frequently-used'`
6060
:param search_text: filter resources by search text.
6161
:param size: reduce the size of the response to the specified limit.
62-
:return: List of profiles.
62+
:return: Dict of resource details.
6363
"""
6464

6565
params = {}

0 commit comments

Comments
 (0)