Version 0.4.10
FalconPy v.0.4.10
This release adds timeout handling functionality and fixes for proxy support within Service Classes.
Special thanks to @matcha-shake for suggesting this enhancement. 🙇
- Enhancement
- Bug fixes
- Updated unit tests
Using timeouts
The timeout value you pass to the Service or Uber class is utilized for all calls to the requests library. For scenarios where you are creating multiple objects to represent different API's, you will be able to set specific timeouts for each API service collection.
Specifying timeouts
The timeout value is passed directly to the requests library, allowing you to specify a float for a "generic" timeout and a tuple to specify read/connect timeouts. Values should be specified in seconds.
Generic timeouts
Passing a float for the timeout value will allow you to specify a timeout for the entire operation.
# Times out after thirty second for connect and read
from falconpy.cloud_connect_aws import Cloud_Connect_AWS as FalconAWS
falcon = FalconAWS(creds={
'client_id': falcon_client_id,
'client_secret': falcon_client_secret
}, timeout=30
)
result = falcon.QueryAWSAccounts()
print(result)
Connect / Read timeouts
Using a tuple for the timeout value will allow you to specify individual timeouts for connect and read.
# Times out after one second for connect and read
from falconpy.cloud_connect_aws import Cloud_Connect_AWS as FalconAWS
falcon = FalconAWS(creds={
'client_id': falcon_client_id,
'client_secret': falcon_client_secret
}, timeout=(3.05,26.95)
)
result = falcon.QueryAWSAccounts()
print(result)
Unit test coverage
Name Stmts Miss Cover
------------------------------------------------------------------------------------
src/falconpy/__init__.py 10 0 100%
src/falconpy/_endpoint/__init__.py 83 0 100%
src/falconpy/_endpoint/_cloud_connect_aws.py 1 0 100%
src/falconpy/_endpoint/_cspm_registration.py 1 0 100%
src/falconpy/_endpoint/_custom_ioa.py 1 0 100%
src/falconpy/_endpoint/_d4c_registration.py 1 0 100%
src/falconpy/_endpoint/_detects.py 1 0 100%
src/falconpy/_endpoint/_device_control_policies.py 1 0 100%
src/falconpy/_endpoint/_event_streams.py 1 0 100%
src/falconpy/_endpoint/_falcon_complete_dashboard.py 1 0 100%
src/falconpy/_endpoint/_falconx_sandbox.py 1 0 100%
src/falconpy/_endpoint/_firewall_management.py 1 0 100%
src/falconpy/_endpoint/_firewall_policies.py 1 0 100%
src/falconpy/_endpoint/_host_group.py 1 0 100%
src/falconpy/_endpoint/_hosts.py 1 0 100%
src/falconpy/_endpoint/_incidents.py 1 0 100%
src/falconpy/_endpoint/_installation_tokens.py 1 0 100%
src/falconpy/_endpoint/_intel.py 1 0 100%
src/falconpy/_endpoint/_ioa_exclusions.py 1 0 100%
src/falconpy/_endpoint/_iocs.py 1 0 100%
src/falconpy/_endpoint/_malquery.py 1 0 100%
src/falconpy/_endpoint/_ml_exclusions.py 1 0 100%
src/falconpy/_endpoint/_mssp.py 1 0 100%
src/falconpy/_endpoint/_oauth2.py 1 0 100%
src/falconpy/_endpoint/_overwatch_dashboard.py 1 0 100%
src/falconpy/_endpoint/_prevention_policies.py 1 0 100%
src/falconpy/_endpoint/_quick_scan.py 1 0 100%
src/falconpy/_endpoint/_real_time_response.py 1 0 100%
src/falconpy/_endpoint/_real_time_response_admin.py 1 0 100%
src/falconpy/_endpoint/_sample_uploads.py 1 0 100%
src/falconpy/_endpoint/_sensor_download.py 1 0 100%
src/falconpy/_endpoint/_sensor_update_policies.py 1 0 100%
src/falconpy/_endpoint/_sensor_visibility_exclusions.py 1 0 100%
src/falconpy/_endpoint/_spotlight_vulnerabilities.py 1 0 100%
src/falconpy/_endpoint/_user_management.py 1 0 100%
src/falconpy/_endpoint/_zero_trust_assessment.py 1 0 100%
src/falconpy/_endpoint/deprecated/__init__.py 12 0 100%
src/falconpy/_endpoint/deprecated/_custom_ioa.py 1 0 100%
src/falconpy/_endpoint/deprecated/_firewall_management.py 1 0 100%
src/falconpy/_endpoint/deprecated/_installation_tokens.py 1 0 100%
src/falconpy/_endpoint/deprecated/_iocs.py 1 0 100%
src/falconpy/_endpoint/deprecated/_real_time_response.py 1 0 100%
src/falconpy/_endpoint/deprecated/_real_time_response_admin.py 1 0 100%
src/falconpy/_result.py 8 0 100%
src/falconpy/_service_class.py 45 0 100%
src/falconpy/_util.py 142 0 100%
src/falconpy/_version.py 8 0 100%
src/falconpy/api_complete.py 89 0 100%
src/falconpy/cloud_connect_aws.py 74 0 100%
src/falconpy/cspm_registration.py 128 0 100%
src/falconpy/custom_ioa.py 142 0 100%
src/falconpy/d4c_registration.py 71 0 100%
src/falconpy/detects.py 34 0 100%
src/falconpy/device_control_policies.py 77 0 100%
src/falconpy/event_streams.py 15 0 100%
src/falconpy/falcon_complete_dashboard.py 110 0 100%
src/falconpy/falconx_sandbox.py 82 0 100%
src/falconpy/firewall_management.py 148 0 100%
src/falconpy/firewall_policies.py 80 0 100%
src/falconpy/host_group.py 71 0 100%
src/falconpy/hosts.py 64 0 100%
src/falconpy/incidents.py 45 0 100%
src/falconpy/installation_tokens.py 67 0 100%
src/falconpy/intel.py 105 0 100%
src/falconpy/ioa_exclusions.py 43 0 100%
src/falconpy/iocs.py 60 0 100%
src/falconpy/malquery.py 71 0 100%
src/falconpy/ml_exclusions.py 43 0 100%
src/falconpy/mssp.py 190 0 100%
src/falconpy/oauth2.py 34 0 100%
src/falconpy/overwatch_dashboard.py 43 0 100%
src/falconpy/prevention_policy.py 77 0 100%
src/falconpy/quick_scan.py 29 0 100%
src/falconpy/real_time_response.py 147 0 100%
src/falconpy/real_time_response_admin.py 88 0 100%
src/falconpy/sample_uploads.py 31 0 100%
src/falconpy/sensor_download.py 42 0 100%
src/falconpy/sensor_update_policy.py 117 0 100%
src/falconpy/sensor_visibility_exclusions.py 43 0 100%
src/falconpy/spotlight_vulnerabilities.py 21 0 100%
src/falconpy/user_management.py 75 0 100%
src/falconpy/zero_trust_assessment.py 9 0 100%
------------------------------------------------------------------------------------
TOTAL 2913 0 100%
Bandit analysis
[main] INFO running on Python 3.9.2
Run started:2021-06-21 19:14:31.312037
Test results:
No issues identified.
Code scanned:
Total lines of code: 18548
Total lines skipped (#nosec): 0
Run metrics:
Total issues (by severity):
Undefined: 0.0
Low: 0.0
Medium: 0.0
High: 0.0
Total issues (by confidence):
Undefined: 0.0
Low: 0.0
Medium: 0.0
High: 0.0
Files skipped (0):
Added features and functionality
- Added: Timeout functionality for calls to the requests library
Issues resolved
- Fixed: Service Class proxy functionality support
Other
- Timeout functionality unit tests (
tests/test_timeout.py
)