FalconPy v0.4.0
- Major Feature update
- Bug fixes
-
Breaking Change - Updated unit tests
Added features and functionality
- Added additional HTTP status codes
- Added parameter input validation handling
- Additional validations are planned for all service classes. Currently only enabled in
cloud_connect_aws.py
.
- Additional validations are planned for all service classes. Currently only enabled in
- Added body payload input validation handling
- Additional validations are planned for all service classes. Currently only enabled in
cloud_connect_aws.py
.
- Additional validations are planned for all service classes. Currently only enabled in
- Added allowed HTTP method restrictions
- Added ID list handling to API operations that require ID lists
-
Developers may now pass in a list of IDs or a comma-delimited string.
import json from falconpy import oauth2 as FalconAuth from falconpy import cloud_connect_aws as FalconAWS falcon = FalconAWS.Cloud_Connect_AWS(creds={'client_id': client_id, 'client_secret': client_secret}) id_list = ['ID1', 'ID2', 'ID3'] print(json.dumps(falcon.GetAWSAccounts(ids=id_list), indent=4))
or
import json from falconpy import oauth2 as FalconAuth from falconpy import cloud_connect_aws as FalconAWS falcon = FalconAWS.Cloud_Connect_AWS(creds={'client_id': client_id, 'client_secret': client_secret}) id_list_string = "ID1,ID2,ID3" print(json.dumps(falcon.GetAWSAccounts(ids=id_list_string), indent=4))
-
- Added status code response checks to authentication events
- Instantiate Service classes without having to manage tokens
- Pass in credentials (Now referred to as "credential authentication")
import json from falconpy import oauth2 as FalconAuth from falconpy import cloud_connect_aws as FalconAWS falcon = FalconAWS.Cloud_Connect_AWS(creds={'client_id': client_id, 'client_secret': client_secret}) print(json.dumps(falcon.QueryAWSAccounts(), indent=4))
- Pass in the entire auth object (Now referred to as "object authentication")
import json from falconpy import oauth2 as FalconAuth from falconpy import cloud_connect_aws as FalconAWS auth = FalconAuth.OAuth2(creds={'client_id': client_id, 'client_secret': client_secret}) falcon = FalconAWS.Cloud_Connect_AWS(auth_object=auth) print(json.dumps(falcon.QueryAWSAccounts(), indent=4))
Please note: Passing a token into Service classes is still fully supported. This is now referred to as "legacy authentication".
- Pass in credentials (Now referred to as "credential authentication")
- Added automatic token refresh functionality to Service Class calls
- Developers must make use of either credential or object authentication in order to leverage this functionality.
Issues resolved
- Added dynamic package metadata updates (Issue #14)
- Generalized version control
- New constant file:
_version.py
- New constant file:
- Generalized version control
- Added user-agent string to HTTP headers. (Issue #57)
- Resolved a bug with token deauthentication (Uber and Service classes)
- Resolved a bug in Firewall_Management.update_rule_group
Other
- Abstracted calls to the requests library from all classes, reducing code segment size
- New library:
_util.py
- New class:
_service_class.py
- New class:
_result.py
- All Service Classes refactored
- New library:
- Abstracted endpoint list from the Uber class to a standalone source file
- New constant file:
_endpoint.py
- New constant file:
- Linting / code cleanup
- Added function input parameter datatype specifications (where possible)
- Added function output datatype decorators
- In order to reduce confusion, references to the
json
requests attribute are now always referred to as "body". References to thedata
requests attribute are still referred to as "data".
- 100% unit test coverage
- Internal documentation updates