{ "info": { "author": "Jerod Gawne", "author_email": "jerod@jerodg.dev", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: System Administrators", "License :: Other/Proprietary License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Internet", "Topic :: Internet :: WWW/HTTP", "Topic :: Utilities" ], "description": "```\n ___ _ _ _ ___ ___ ___ _ _ _ \n| _ )_ _(_)__ __ _| |_ __ _ /_\\ | _ \\_ _| / __| (_)___ _ _| |_ \n| _ \\ '_| / _/ _` | _/ _` | / _ \\| _/| | | (__| | / -_) ' \\ _|\n|___/_| |_\\__\\__,_|\\__\\__,_| /_/ \\_\\_| |___| \\___|_|_\\___|_||_\\__|\n```\n![platform](https://img.shields.io/badge/Platform-Mac/*nix/Windows-blue.svg)\n![python](https://img.shields.io/badge/Python-8%2B-blue.svg)\n![bricata](https://img.shields.io/badge/Bricata-4.4.1+-blue.svg)\n\n![0%](https://img.shields.io/badge/Coverage-0%25-red.svg)\n\n\n\nBricata API Client\n\n*Note:* I am currently working on 14+ client api's, features will be implemented as needed. \nSubmit an issue if you have a feature-request.\n\n## Installation\n```bash\npip install bricata-api-client\n```\n\n## Basic Usage\nWorks with Bricata API v4.1.1\n\n*See examples folder for more*\n\n### Class Inheritence\n```python\nfrom bricata_api_client import BricataApiClient\n\nclass MyClass(BricataApiClient):\n def __init__(self):\n BricataApiClient.__init__(self, cfg='/path/to/config.toml')\n\n def __enter__(self):\n return self\n\n def __exit__(self, exc_type, exc_val, exc_tb):\n BricataApiClient.__aexit__(self, exc_type, exc_val, exc_tb)\n```\n\n### Context Manager\n```python\nfrom bricata_api_client import BricataApiClient\n\nasync with BricataApiClient(cfg='/path/to/config.toml') as bac:\n alerts = bac.get_alerts()\n```\n\n## Documentation\n[GitHub Pages](https://jerodg.github.io/bricata-api-client/)\n- Work in Process\n\n## API Implementation (9/170) ~5.3%\n- [ ] suricata_rules : policy\n - [ ] post /rules/file/suricata/-import/ Import from URL\n - [ ] post /rules/file/suricata/-upload/ Import suricata rules\n - [ ] get /rules/file/suricata/url-file/ List Suricata sync URL(s)\n - [ ] post /rules/file/suricata/url-file/ Import from file\n - [ ] get /rules/gc/ Preview Garbage Collection\n - [ ] delete /rules/gc/ Run Garbage Collection\n - [ ] get /rules/gc/count/ Fast preview Garbage Collection\n - [ ] delete /rules/group/suricata/{name}/ Delete group\n - [ ] get /rules/group/suricata/{name}/policies/ Get policies with group enabled\n - [ ] put /rules/policy/refresh/ Refresh policy cache\n - [ ] get /rules/policy/suricata/summary/ List policy stats\n - [ ] put /rules/policy/suricata/{policy}/{type} Update policy\n - [ ] get /rules/policy/suricata/{policy}/{type}/btinfo/ Get policy backtesting\n - [ ] get /rules/policy/suricata/{policy}/{type}/group/ List policy groups\n - [ ] get /rules/policy/suricata/{policy}/{type}/rule/ List policy rules\n - [ ] get /rules/policy/suricata/{policy}/{type}/rule/{id}/ Get policy rule\n - [ ] post /rules/rule/suricata/ Create custom rule\n - [ ] get /rules/rule/suricata/{id}/ Get Rule Details\n - [ ] put /rules/rule/suricata/{id}/ Update custom rule\n - [ ] delete /rules/rule/suricata/{id}/ Delete Rule\n - [ ] get /rules/rule/suricata/{id}/history/ Get rule version history\n - [ ] get /rules/rule/suricata/{id}/policies/ Get policies with rule changes\n - [ ] get /rules/rule/suricata/{id}/rules/ Get rule from all policies\n- [ ] bro_scripts : policy\n - [ ] delete /rules/file/bro/imports/ Clear imports directory\n - [ ] get /rules/file/bro/url-conf/ Get scripts URL\n - [ ] post /rules/file/bro/url-conf/ Update scripts URL\n - [ ] get /rules/policy/bro/btinfo/{group}/{type} Get Backtesting\n - [ ] post /rules/policy/bro/btinfo/{group}/{type} Update backtesting\n - [ ] get /rules/policy/bro/conf/{group}/{type} Get policy configuration\n - [ ] put /rules/policy/bro/conf/{group}/{type} Update policy configuration\n - [ ] get /rules/policy/bro/lib/{name}/{type} Download Bro scripts library\n - [ ] get /rules/policy/bro/list/{group}/{type} Get scripts list\n - [ ] put /rules/policy/bro/list/{group}/{type} Update scripts list\n - [ ] get /rules/policy/bro/script/{type}/{folder}/{name} Get script\n - [ ] put /rules/policy/bro/script/{type}/{folder}/{name} Update script\n - [ ] delete /rules/policy/bro/script/{type}/{folder}/{name} Delete script\n - [ ] post /rules/policy/bro/script/{type}/{name} Create script\n - [ ] post /rules/policy/bro/upload/{type} Upload Bro scripts file\n- [ ] alerts\n - [x] get /alert/{uuid} Get Alert\n - [ ] put /alert/{uuid}/_savenote Label Alert\n - [x] get /alerts/ List alerts\n - [ ] get /alerts/geo/history/ Alerts geomap history\n - [ ] get /alerts/geo/stream/ Geo Stream\n - [ ] post /alerts/malware Download Maleware file\n - [ ] get /alerts/meta/{uuid}/{timestamp} Get Alert Metadata\n - [ ] put /alerts/tags/{tag}/ Tag Alerts\n - [ ] delete /alerts/tags/{tag}/ Untag Alerts\n - [ ] get /alerts/timeline/ Alerts timeline\n - [x] put /alerts/{uuid}/tag/{tag}/ Tag Alert\n - [x] delete /alerts/{uuid}/tag/{tag}/ Untag Alert\n- [ ] audit\n - [ ] get /audittrails/ Get audit records\n- [ ] datanodes\n - [ ] post /datanodes/ Add node\n - [ ] get /datanodes/_cmc_data Get enabled\n - [ ] put /datanodes/_cmc_data Enable\n - [ ] delete /datanodes/{host} Delete node\n- [ ] metadata\n - [ ] get /es/all-fields/ Add fields\n - [ ] put /es/delete-index/{name} Delete index\n - [ ] get /es/indexed-fields/ Get indexed fields\n - [ ] post /metadata/_uuids/{uuids}/{tag}/ Tag Metadata records\n - [ ] delete /metadata/_uuids/{uuids}/{tag}/ Untag metadata records\n - [ ] get /metadata/activity/ List activity\n - [ ] get /metadata/agents/ Get user-agent counts\n - [ ] get /metadata/alerts/ Lookup alerts\n - [ ] post /metadata/connections/{tag}/ Tag by filter\n - [ ] delete /metadata/connections/{tag}/ Untag by filter\n - [ ] get /metadata/connections/{uid}/ Get Metadata details\n - [ ] get /metadata/group-timeline/ Group aggregation timeline\n - [ ] get /metadata/groups/ Group aggregation\n - [ ] get /metadata/sources/ List data sources\n - [ ] get /metadata/start/ Get earliest Metadata date\n - [ ] get /metadata/timeline/ Activity timeline\n - [ ] post /metadata/{index}/{doc}/{tag}/ Tag Metadata\n - [ ] delete /metadata/{index}/{doc}/{tag}/ Untag metadata\n- [ ] auth\n - [x] post /login/ Login\n - [x] post /logout/ Logout\n - [ ] put /users/{username}/password-token Create password reset token\n - [ ] put /users/{username}/reset-password Start password reset\n - [ ] put /users/{username}/set-password Finish password reset\n- [ ] named_storage\n - [ ] get /named_storage/{type}/ List named storage\n - [ ] put /named_storage/{type}/ Upsert named storage\n - [ ] delete /named_storage/{type}/{uuid}/ Delete named storage\n- [ ] roles\n - [ ] get /roles/ List roles\n - [ ] post /roles/ Create a role\n - [ ] get /roles/{rolename} Read a role\n - [ ] put /roles/{rolename} Update a role\n - [ ] delete /roles/{rolename} Delete a role\n- [ ] sensors\n - [ ] get /sensornames/ Lightweight Sensors list\n - [ ] get /sensors/ Sensors list with health and delivery stats\n - [ ] post /sensors/ Register a new Sensor\n - [ ] get /sensors/apps/{uuid} Get Sensor running apps\n - [ ] post /sensors/gators/togator Get GATOR from JSON\n - [ ] get /sensors/health/count Get critical Sensors count\n - [ ] get /sensors/{host}/capture/ Get packet capture\n - [ ] get /sensors/{host}/logdump/ Get Sensor logs\n - [ ] put /sensors/{uuid} Update a Sensor\n - [ ] delete /sensors/{uuid} Delete a Sensor\n - [ ] get /sensors/{uuid}/ Get a Sensor\n - [ ] get /sensors/{uuid}/feature/{name} Get Sensor Feature status\n - [ ] put /sensors/{uuid}/feature/{name} Enable/Disable Sensor Feature\n - [ ] delete /sensors/{uuid}/health/ Clear Sensor health issue\n - [ ] get /sensors/{uuid}/health/btstatus Get backtesting status\n - [ ] get /sensors/{uuid}/health/history Get Sensor health history\n - [ ] get /sensors/{uuid}/pcap_stats Get Sensor PCAP availability\n- [ ] policy\n - [ ] put /sensors/groups/assign/{type}/{name}/ Assign policy\n - [ ] put /sensors/groups/assignall/{type}/{name} Assign policy to all\n - [ ] get /sensors/groups/sensor/{type}/{host} Get Sensor policy\n - [ ] get /sensors/groups/types List policy types\n - [ ] get /sensors/groups/{type} List policies\n - [ ] get /sensors/groups/{type}/{name} Get policy\n - [ ] put /sensors/groups/{type}/{name} Update policy\n - [ ] delete /sensors/groups/{type}/{name} Delete policy\n - [ ] post /sensors/groups/{type}/{name}/ Create policy\n- [ ] shoeboxes\n - [ ] get /shoeboxes/ Get shoebox\n - [ ] put /shoeboxes/{name}/ Upsert shoebox\n - [ ] post /shoeboxes/{name}/-add/ Add to shoebox\n- [ ] system\n - [ ] get /system/ Get system settings\n - [ ] put /system/ Update system settings\n - [ ] post /system/-check-ldap-conn Check LDAP connection\n - [ ] post /system/-check-mail-host Check email host connection\n - [ ] post /system/-check-proxy-url Check proxy URL\n - [ ] get /system/-constants Read system constants\n - [ ] get /system/-ldap-logs Read ldap logs\n - [ ] get /system/-ui Read system UI settings\n - [ ] get /system/awsconfigstatus Get AWS enabled status\n - [ ] put /system/awsconfigverify Check AWS credentials\n - [ ] put /system/cert/attribs Parse pem certificate\n - [ ] get /system/health Get CMC system health\n - [ ] get /system/logdump Get CMC logs\n - [ ] get /system/mail-logs Read email logs\n- [ ] reports\n - [ ] post /system/-export Download report\n - [ ] get /system/reports List user reoprts\n - [ ] post /system/reports Create report template\n - [ ] get /system/reports/-constants Get reort constants\n - [ ] get /system/reports/alerts/ Download report from Alerts page\n - [ ] delete /system/reports/history/-all Delete all report history\n - [ ] get /system/reports/settings/ Get report max rows\n - [ ] put /system/reports/{uuid} Update report template\n - [ ] delete /system/reports/{uuid} Delete report template\n - [ ] delete /system/reports/{uuid}/history/{seq} Delete report history\n - [ ] post /system/reports/{uuid}/history/{seq}/{key}/-download Download report from history\n- [ ] assets\n - [ ] get /system/assets List Assets\n - [ ] post /system/assets Create Asset\n - [ ] get /system/assets/{ip} Get Asset\n - [ ] put /system/assets/{ip} Update Asset\n - [ ] delete /system/assets/{ip} Delete Asset\n - [ ] get /system/dns/{ip}/_lookup_addr Lookup address\n - [ ] get /system/dns/{uuid}/{ip}/_lookup_addr Lookup address from sensor\n - [ ] get /system/passive_dns/{ip}/_lookup_addr Passive lookup\n- [ ] upgrade\n - [ ] get /system/upgrades/files/{app} List upgrade files\n - [ ] post /system/upgrades/files/{app} Upload upgrade file\n - [ ] get /system/upgrades/files/{app}/{name} Validate upgrade file\n - [ ] put /system/upgrades/files/{app}/{name} Deploy upgrade file\n - [ ] delete /system/upgrades/files/{app}/{type}/{name} Delete upgrade file\n - [ ] get /system/upgrades/status Get upgrade status\n- [ ] tags\n - [x] get /tags/ List tags\n - [x] put /tags/{tag}/ Upsert tag\n - [x] delete /tags/{tag}/ Delete a tag\n- [ ] users\n - [ ] get /users/ List users\n - [ ] post /users/ Create a user\n - [ ] post /users/email-req Email Support\n - [ ] put /users/profile/{component}/ Update user GUI state\n - [ ] get /users/{username} Read a user\n - [ ] put /users/{username} Update user\n - [ ] delete /users/{username} Delete a user\n - [ ] get /users/{username}/-self Read own profile\n - [ ] put /users/{username}/grace/ Temporarily enable a user\n - [ ] delete /users/{username}/grace/ Delete a temporary user activation\n- [ ] validators\n - [ ] get /validatorz/custom_geoip_expr/{val} Validate IP expression\n - [ ] post /validatorz/gator_expr/ Validate GATOR\n\n## License\nCopyright \u00a9 2019 Jerod Gawne \n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the Server Side Public License (SSPL) as\npublished by MongoDB, Inc., either version 1 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nSSPL for more details.\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nYou should have received a copy of the SSPL along with this program.\nIf not, see .\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.org/project/bricata-api-client/", "keywords": "Bricata API Client rest", "license": "Server Side Public License (SSPL)", "maintainer": "", "maintainer_email": "", "name": "bricata-api-client", "package_url": "https://pypi.org/project/bricata-api-client/", "platform": "", "project_url": "https://pypi.org/project/bricata-api-client/", "project_urls": { "Bugs": "https://github.com/jerodg/bricata-api-client/issues", "Documentation": "https://jerodg.github.io/bricata-api-client", "Funding": "https://www.paypal.me/jerodgawne", "Homepage": "https://pypi.org/project/bricata-api-client/", "Say Thanks!": "https://saythanks.io/to/jerodg", "Source": "https://github.com/jerodg/bricata-api-client" }, "release_url": "https://pypi.org/project/bricata-api-client/0.5.0/", "requires_dist": [ "aiodns", "aiohttp", "base-api-client", "cchardet", "delorean", "tenacity", "ujson" ], "requires_python": ">=3.7, <3.9", "summary": "Bricata API Client Library", "version": "0.5.0" }, "last_serial": 5679374, "releases": { "0.5.0": [ { "comment_text": "", "digests": { "md5": "b8df5dd0fd0bda4b96721b804a09d1d4", "sha256": "fd74c6db6db96fcd502717a8ff4762625fbdce6e285598f3270926af2ee3a77c" }, "downloads": -1, "filename": "bricata_api_client-0.5.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b8df5dd0fd0bda4b96721b804a09d1d4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7, <3.9", "size": 34149, "upload_time": "2019-08-14T21:30:37", "url": "https://files.pythonhosted.org/packages/8d/1a/d6fec75620cd64d48c937ddcfb035c1a19e6f2589d286af9f8e9c6b36a56/bricata_api_client-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78be6e8b6272e03bcec3c25232810892", "sha256": "63e9fe0c268b167af5f5be27b8cc3046a59af862c030cb5dd033ccdaea0e8f84" }, "downloads": -1, "filename": "bricata-api-client-0.5.0.tar.gz", "has_sig": true, "md5_digest": "78be6e8b6272e03bcec3c25232810892", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7, <3.9", "size": 17494, "upload_time": "2019-08-14T21:30:40", "url": "https://files.pythonhosted.org/packages/b2/05/08dcc2bef4aded83b9b5bf478ee5ca51adf22b1bbf537145f543b15219d4/bricata-api-client-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b8df5dd0fd0bda4b96721b804a09d1d4", "sha256": "fd74c6db6db96fcd502717a8ff4762625fbdce6e285598f3270926af2ee3a77c" }, "downloads": -1, "filename": "bricata_api_client-0.5.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b8df5dd0fd0bda4b96721b804a09d1d4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7, <3.9", "size": 34149, "upload_time": "2019-08-14T21:30:37", "url": "https://files.pythonhosted.org/packages/8d/1a/d6fec75620cd64d48c937ddcfb035c1a19e6f2589d286af9f8e9c6b36a56/bricata_api_client-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78be6e8b6272e03bcec3c25232810892", "sha256": "63e9fe0c268b167af5f5be27b8cc3046a59af862c030cb5dd033ccdaea0e8f84" }, "downloads": -1, "filename": "bricata-api-client-0.5.0.tar.gz", "has_sig": true, "md5_digest": "78be6e8b6272e03bcec3c25232810892", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7, <3.9", "size": 17494, "upload_time": "2019-08-14T21:30:40", "url": "https://files.pythonhosted.org/packages/b2/05/08dcc2bef4aded83b9b5bf478ee5ca51adf22b1bbf537145f543b15219d4/bricata-api-client-0.5.0.tar.gz" } ] }