-
Notifications
You must be signed in to change notification settings - Fork 13
/
pyproject.toml
93 lines (83 loc) · 3.97 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
[tool.poetry]
name = "caracara"
version = "0.9.2"
description = "The CrowdStrike Falcon Developer Toolkit"
authors = [ "CrowdStrike <[email protected]>" ]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.8.2"
py7zr = "^0.22.0"
crowdstrike-falconpy = "^1.4.0"
caracara-filters = "^1.0.0"
[tool.poetry.group.dev.dependencies]
bandit = "^1.7.9"
coverage = "^7.6"
flake8 = "^7.1.0"
pydocstyle = "^6.3.0"
pylint = "^3.2.7"
pytest = "^8.3.3"
PyYAML = "^6.0.1"
toml = "^0.10.2"
tabulate = "^0.9.0"
click = "^8.1.3"
prompt-toolkit = "^3.0.47"
python-dateutil = "^2.8.2"
black = "^24.8.0"
isort = "^5.13.2"
[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core>=1.0.0", "setuptools"]
[tool.pylint.messages_control]
max-line-length = 100
disable = [
# Disable duplicate-code as our policies modules will have lots of overlap, by design.
# It is not really practical to try to appease this rule when creating an SDK wrapper.
"duplicate-code",
# Disable pointless-string-statement as per this GitHub thread / GVR's Tweet
# https://github.com/PyCQA/pylint/issues/2864#issuecomment-642398573
"pointless-string-statement",
# Disable too-many-instance-attributes as we have some classes that are build
# based on data returned by Falcon. It would be silly for us to refactor classes
# representing these constructs just to pass this pylint rule.
"too-many-instance-attributes",
# Disable R0904 (too-many-public-methods) as we have some modules, like hosts, which
# by design have many functions exposed. As this is an SDK wrapper, we fully expect to
# implement most of the functionality of the underlying SDK (FalconPy) and APIs
# (from Falcon) by definition. Therefore, we have switched this rule off globally.
"too-many-public-methods",
]
max-positional-arguments=10
[tool.poetry.scripts]
# Hosts
agent-versions = "examples.hosts.show_agent_versions:show_agent_versions"
find-devices = "examples.hosts.find_devices:find_devices"
list-all-devices = "examples.hosts.list_all_devices:list_all_devices"
list-all-device-states = "examples.hosts.list_device_states:list_device_states"
list-all-groups = "examples.hosts.list_all_groups:list_all_groups"
list-all-group-members = "examples.hosts.list_all_group_members:list_all_group_members"
list-all-group-member-ids = "examples.hosts.list_all_group_member_ids:list_all_group_member_ids"
list-hidden-devices = "examples.hosts.list_hidden_devices:list_hidden_devices"
list-windows-devices = "examples.hosts.list_windows_devices:list_windows_devices"
list-device-logins = "examples.hosts.list_login_history:list_login_history"
list-device-address-changes = "examples.hosts.list_network_history:list_network_history"
stale-sensors = "examples.hosts.find_stale_sensors:find_stale_sensors"
# Prevention Policies
create-prevention-policy = "examples.prevention_policies.create_prevention_policy:create_prevention_policy"
describe-prevention-policies = "examples.prevention_policies.describe_prevention_policies:describe_prevention_policies"
# Response Policies
create-response-policy = "examples.response_policies.create_response_policy:create_response_policy"
describe-response-policies = "examples.response_policies.describe_response_policies:describe_response_policies"
# RTR
clear-queued-sessions = "examples.rtr.clear_queued_sessions:clear_queued_sessions"
describe-put-files = "examples.rtr.describe_put_files:describe_put_files"
describe-queued-sessions = "examples.rtr.describe_queued_sessions:describe_queued_sessions"
describe-scripts = "examples.rtr.describe_scripts:describe_scripts"
download-event-log = "examples.rtr.download_event_log:download_event_log"
queue-command = "examples.rtr.queue_command:queue_command"
# Sensor Update Policies
get-maintenance-token = "examples.sensor_update_policies.get_maintenance_token:get_maintenance_token"
# Users
describe-roles = "examples.users.describe_roles:describe_roles"
describe-users = "examples.users.describe_users:describe_users"
[tool.isort]
profile = "black"