pypi crowdstrike-falconpy 0.4.0
Version 0.4.0

latest releases: 1.4.6, 1.4.5, 1.4.4...
3 years ago

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.
  • Added body payload input validation handling
    • Additional validations are planned for all service classes. Currently only enabled in cloud_connect_aws.py.
  • 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".

  • 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
  • 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
  • Abstracted endpoint list from the Uber class to a standalone source file
    • New constant file: _endpoint.py
  • 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 the data requests attribute are still referred to as "data".
  • 100% unit test coverage
  • Internal documentation updates

Don't miss a new crowdstrike-falconpy release

NewReleases is sending notifications on new releases.