okta-sdk-python icon indicating copy to clipboard operation
okta-sdk-python copied to clipboard

fix: ensure requestTimeout and maxRetries are integers

Open tgarciaalv opened this issue 10 months ago • 1 comments

This is failing when environment variables are used for configuration. Env vars are strings but are never converted to int before using them in arithmetic operations.

My configuration:

              "OKTA_CLIENT_CONNECTIONTIMEOUT": "30",
               "OKTA_CLIENT_ORGURL": "https://dev-89428916.okta.com",
               "OKTA_CLIENT_AUTHORIZATIONMODE": "PrivateKey",
               "OKTA_CLIENT_CLIENTID": "${env:OKTA_CLIENT_CLIENTID}",
               "OKTA_CLIENT_SCOPES": "okta.users.read,okta.groups.read",
               "OKTA_CLIENT_PRIVATEKEY": "${env:OKTA_CLIENT_PRIVATEKEY}",
               "OKTA_CLIENT_REQUESTTIMEOUT": "0",
               "OKTA_CLIENT_RATELIMIT_MAXRETRIES": "4",
               "OKTA_CLIENT_LOGGING_ENABLED": "true",
               "OKTA_CLIENT_LOGGING_LEVEL": "INFO",

My error:

        # Raise Value Error if numerical inputs are invalid (< 0)
        self._request_timeout = config["client"].get('requestTimeout', 0)
>       if self._request_timeout < 0:
E       TypeError: '<' not supported between instances of 'str' and 'int'

/opt/homebrew/lib/python3.11/site-packages/okta/request_executor.py:35: TypeError

The os.environ dictionary in Python expects its values to be strings.

tgarciaalv avatar Apr 01 '24 15:04 tgarciaalv

@tgarciaalv I apologize for the delayed response and thank you for your submission. To ensure integrity, please provide a unit test that fails prior to your proposed change and passes with your change in place.

We appreciate your engagement and thanks for using Okta!

bryanapellanes-okta avatar Jul 11 '24 15:07 bryanapellanes-okta