All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Standardised case management return types to return
dictinstead of typed objects, consistent with the rest of the SDKget_case()now returnsdict[str, Any]instead ofCaseget_cases()(batch) now returnsdict[str, Any]instead ofCaseListpatch_case()now returnsdict[str, Any]instead ofCase
Case,CaseList, andSoarPlatformInfomodel classes.
fetch_parser_candidates()method to retrieve parser candidates for a given log type- CLI command
secops parser fetch-candidatesfor fetching parser candidates for given type
- Comprehensive SOAR integration management capabilities
- Integration management (
create_integration(),update_integration(),list_integrations(),export_integration_items(), etc.) - Integration instances management (
get_default_integration_instance(),list_integration_instances(), etc.) - Marketplace integration management (
install_marketplace_integration(),uninstall_marketplace_integration(), etc.)
- Integration management (
- CLI support for SOAR integration management commands
secops integration integrationsfor managing custom integrationssecops integration instancesfor managing integration instancessecops integration marketplacefor managing marketplace integrations
- Comprehensive utility helpers and data models for SOAR integration parameters, action types, scheduling, and connector configurations
- Parser validation methods
trigger_github_checks()- Trigger GitHub checks for a parser against an associated pull requestget_analysis_report()- Retrieve a completed parser analysis report
- CLI support for parser validation commands
secops log-type trigger-checks- Trigger parser validation checks for a PRsecops log-type get-analysis-report- Get details of a specific analysis report
- Refactored Chronicle modules to use centralized
chronicle_requestandchronicle_paginated_requesthelper functions for improved code consistency and maintainability - Standardized
as_listparameter support across paginated API methods
- CLI local configuration support with
--localflag for config set and view commands SECOPS_LOCAL_CONFIG_DIRenvironment variable support for managing multiple local configurations
- CLI argument parsing to properly handle global flags placed after subcommands
- Comprehensive case management functionality for Chronicle
get_case()- Retrieve single case details with optional field expansionlist_cases()- List cases with filtering, pagination, and sorting capabilitiespatch_case()- Update case properties using partial updatesmerge_cases()- Merge multiple cases into a single caseget_cases()- Legacy batch case retrieval for multiple case IDs
- Bulk case operations for efficient case management
execute_bulk_add_tag()- Add tags to multiple casesexecute_bulk_assign()- Assign multiple cases to usersexecute_bulk_change_priority()- Change priority for multiple casesexecute_bulk_change_stage()- Change stage for multiple casesexecute_bulk_close()- Close multiple cases with reasonsexecute_bulk_reopen()- Reopen multiple cases
- Complete CLI support for case management through
secops casecommandssecops case get- Get single case detailssecops case list- List cases with filtering and paginationsecops case update- Update case propertiessecops case merge- Merge multiple casessecops case bulk-*commands for bulk operations
- Raw log search functionality with
search_raw_logs()method - CLI command
secops search raw-logsfor searching raw logs
- Dashboard methods to use centralized
chronicle_requesthelper function for improved code consistency and maintainability
- Helper functions for formatting dashboard resources
- Pagination helper for
list_dashboardsmethod
parse_statedumpparameter torun_parser()method for converting statedump strings into structured JSON format- CLI
--parse-statedumpflag forsecops parser runcommand
as_listparameter tosearch_udm()for returning events as a list instead of dictionary- CLI
--as-listflag forsecops searchcommand
- Migrated
search_udm()to usechronicle_requesthelper for improved error handling and consistency
- CLI commands for rule retrohunt management
secops rule-retrohunt create- Create new retrohuntsecops rule-retrohunt get- Get retrohunt statussecops rule-retrohunt list- List retrohunts for a rule
list_retrohunts()method with pagination support- Mutually exclusive time range argument groups in CLI
- Either
--start-timeand--end-timeor--time-windowrequired
- Either
- Migrated
rule_retrohuntto usechronicle_requesthelper - Migrated
rule_validationto usechronicle_requesthelper
get_stats()to usechronicle_requesthelper for improved error handling and consistencychronicle_requesthelper function to supporttimeoutparameter
ingest_log()method to correctly skip log type validation whenforce_log_type=True, preventing unnecessary API callstimestampValtype handling in stats queries for timebucket results
- Following methods for streamlined URL formation/construction
ingest_udmtranslate_nl_to_udmcreate_conversationopt_in_to_geminiquery_geminitranslate_nl_to_udmrun_rule_test
as_listparameter for paginated list methods to streamline API requests and automatically fetch all pages- Supported methods:
list_watchlists,list_curated_rules,list_curated_rule_sets,list_curated_rule_set_categories,list_curated_rule_set_deployments,list_featured_content_rules
- Supported methods:
- CLI
--as-listflag for corresponding list commands
- Refactored modules to use centralized
chronicle_requesthelper function for improved code consistency and maintainability- Watchlist (
watchlist.py) - Curated rule set (
rule_set.py) - Investigation (
investigations.py) - UDM mapping (
udm_mapping.py) - UDM search (
udm_search.py) - Validation (
validate.py)
- Watchlist (
- Support for following investigation methods:
- List investigations
- Get investigation details
- Fetch associated investigation
- Trigger investigation
- Support for classify log method
- Support for list featured content rules method
- Support for following watchlist management methods:
- List watchlists
- Create watchlist
- Get watchlist details
- Update watchlist
- Delete watchlist
- Support for following log/data processing pipeline methods:
- List pipelines
- Create pipeline
- Get pipeline details
- Update pipeline
- Delete pipeline
- Associate stream to pipeline
- Dissociate stream from pipeline
- Fetch associated pipeline using stream
- Fetch sample logs by stream
- Test pipeline
- CLI to show help when required sub-command/argument not provided.
- Minimum python version support to 3.10 from 3.9 as python 3.9 has reached its end of life.
- Parser list method to handle pagination properly
- Method auto paginates and returns all when no page size is provided.
- When page size is provided, method returns response with next page token.
- Updated Chronicle client to expose API version param for following:
- Feed management (list, get, create, delete, disable, enable, generate secret)
- Reference list management(create, get, list, update)
- Rule management (create, get, list, update, delete, search)
- Rule deployment (get, update)
- Rule retrohunt (create, get)
- Chronicle configuration for default API endpoint version to use for all methods
- Following module's methods to add support for configuring API endpoint version:
- Feed management (list, get, create, delete, disable, enable, generate secret)
- Reference list management(create, get, list, update)
- Rule management (create, get, list, update, delete, search)
- Rule deployment (get, update)
- Rule retrohunt (create, get)
- Search curated rule detection method support
- Curated rules/rule category/rule deployment related list methods to return page token for paginated requests.
- CLI with better modularity for improved development and maintenance support.
- Request retry logging for no response
- Log type methods to use API instead of static list
- Support for bulk update data table rows
- Support for following methods:
- List Curated Rules
- Get Curated Rule
- Get Curated Rule By Name
- List Curated Rule Sets
- Get Curated Rule Set
- List Curated Rule Set Categories
- Get Curated Rule Set Category
- List Curated Rule Set Deployments
- Get Curated Rule Set Deployment
- Get Curated Rule Set Deployment By Name
- Updated Curated Rule Set Deployment
- Support for entity import method
- Support for filter in list rule deployments method
- List rules and rule deployments for empty response
- Support for list and update method in data export
- Data export methods to utilize enhanced endpoint and parameters
- Data table rows bulk replace larger rows handling.
- Data table rows bulk replace for larger row count.
- Support for fetch UDM search view method
- Create data export for all log types flag
- Support for export native dashboard method
- CLI for better help message on unauthenticated commands
- CLI to show help for
secops logcommand without sub-command
- Support for entity mapping and column options in Data table creation
- Added support for following Rule Deployment methods
- Get rule deployment details
- List rule deployments
- Update rule deployment
- Set rule alerting
- Default retry mechanism for all SecOps requests
- Clients (SecOpsClient, ChronicleClient) to accept user define retry configuration
- Support for import native dashboard method
- Data Table create method scopes parameter
- Support for following forwarder methods:
- Patch forwarder
- Delete forwarder
- CLI command for following forwarder:
- Create forwarder
- Get forwarder
- List Forwarder
- Get Or Create forwarder
- Chronicle client methods for forwarder:
- Create forwarder
- Get forwarder
- List forwarder
- Support for list basis and time window params in list detections method.
- Log ingestion to support multi logs string.
- Update Data table properties method
- Data table rows bulk replace method
- Find UDM Field Values functionality
- Dev Base URL with HTTPS
- Reverted Base url to
https://{region}-chronicle.googleapis.comfor all requests - Dev Base URL to
http://autopush-chronicle.sandbox.googleapis.com
- Parser extension flakey integration tests
- Base url to
https://chronicle.{region}.rep.googleapis.comfor all requests - Endpoints to v1 from v1alpha for following:
- Rule CRUD
- Reference List CRUD
- Retro hunt Create & Get
- Native Dashboard Management functionality
- Create new native dashboard
- Get dashboard details
- List dashboards
- Update existing dashboard
- Delete a dashboard
- Duplicate a existing native dashboard
- Dashboard Chart Management functionality
- Adding new chart to dashboard
- Getting chart details
- Editing dashboard chart
- Removing dashboard chart
- Dashboard query methods
- Get dashboard query details
- Execute dashboard query
- Generate UDM key/value mapping from row log
- Parser Extension management functionalities
- Adding new parser extension
- Getting parser exetension details
- Listing parser extensions
- Activating parser extension
- Deleting parser extension
- Sub command required for config command in CLI
DataTableColumnTypeenum to have valid types
- Curated Rule Exclusion (Findings refinement) functionalities
- Adding new rule exclusion
- Updating rule exclusion
- Getting details of specific rule exclusion
- List rule exclusions
- Get rule exclusion deployment details
- Update rule exclusion deployment details
- Compute rule exclusion (findings refinement) activity
- List rules methods to accepts pagination and view scope parameters.
- Pagination in list rules to handle nextPageToken correctly.
- Ingestion feed management functionality
- Adding new ingestion feed
- Listing existing feeds
- Getting specific feed details
- Updating specific feed
- Deleting specific feed
- Enabele/Disable ingestion feed
- Generating secret for http feeds
- Parser ID is optional when running parser against logs, improving usability
- Timeout parameter for query stats
- Syntax fixes for f-string
- Linter fixes
- Support for impersonated credentials
- Optimized
get_or_create_forwarderfunction to reducelist_forwardersAPI calls.- Implemented caching for the default forwarder ID within the
ChronicleClientinstance. - Added a direct
get_forwardercheck for the cached ID before attempting to list all forwarders. - This significantly reduces API quota usage when ingesting logs with the default forwarder.
- Implemented caching for the default forwarder ID within the
- Environment Namespace.
- Added run test rule method and CLI command to execute a test rule.
- Added run parser method and CLI Command
- Fixed get_cases bug
- Comprehensive Parser Management functionality for Chronicle log processing
- Support for creating, retrieving, listing, copying, and deleting parsers
- Parser activation and deactivation capabilities for managing live parsers
- Release candidate parser activation for testing new parser versions
- Force deletion option for removing active parsers when necessary
- Full integration with Chronicle's Unified Data Model (UDM) transformation pipeline
- Complete CLI support for parser management operations
- All parser commands available through
secops parsersubcommands - Support for parser lifecycle management from command line
- Integration with existing CLI configuration and authentication
- All parser commands available through
- Enhanced documentation with parser management examples and workflows
- Updated README.md with comprehensive parser usage examples
- Added parser management section to CLI.md with practical workflows
- Clear explanation of parser role in log processing and UDM transformation
- Connection between parser management and log ingestion processes
- New Data Table functionality for managing structured data in Secops
- Support for creating, retrieving, listing, and deleting data tables
- Multiple column types (STRING, REGEX, CIDR) with proper validation
- Efficient batch processing for row operations with automatic chunking
- Data scope management for access control
- Enhanced Reference List capabilities for simple value lookups in Secops
- Create, update, list, and delete reference lists with proper validation
- Support for three syntax types: STRING, REGEX, and CIDR patterns
- View control options (BASIC/FULL) for efficient list management
- Proper validation of CIDR entries to prevent invalid data
- Comprehensive integration with SecOps's detection rule system
- Example script
data_tables_and_reference_lists.pydemonstrating all functionality - Extensive documentation in README.md with usage examples and best practices
- Support for "dev" and "staging" regions with special URL formats
- Updated documentation with new region options and usage examples
- Fixed timestamp format in
get_alertsto handle timezone conversion, include 'Z' suffix, and remove microseconds, resolving API compatibility issues
- CLI support for log labels with
--labelsflag in thelog ingestcommand - Support for both JSON format and key=value pair format for labels
- Updated documentation in CLI.md for label usage
- Integration tests for verifying CLI label functionality
- New
search_rulesfunctionality to find rules using regex patterns - Enhanced rule management with ability to search rule content
- CLI command for rule searching with regex pattern matching
- Added retry mechanism for 429 (rate limit) errors in natural language search
- Implemented 5-second backoff with up to 5 retry attempts for both translation and search
- Enhanced error detection to handle both HTTP 429 codes and "RESOURCE_EXHAUSTED" error messages
- Improved resilience against intermittent rate limiting in Chronicle API calls
- Support for ingest labels
- Bugs in type handling for strict builder
- Enhanced CLI configuration functionality with support for time-related parameters
- Added ability to store default
--start-time,--end-time, and--time-windowin CLI configuration - Improved CLI flag flexibility with support for both kebab-case and snake_case formats
- CLI now accepts both
--flag-nameand--flag_nameformats for all command line arguments - Support for both space-separated (
--flag value) and equals syntax (--flag=value) for all CLI arguments - Comprehensive CLI documentation covering all available commands and options
- Added examples for all CLI commands in documentation
- Resolved error in entity command when handling AlertCount objects
- Improved error handling for unsupported entity types
- Enhanced handling of prevalence data in entity summaries
- Fixed serialization issues in CLI output formatting
- Improved data export log type handling with better validation
- Enhanced error messages for data export commands with troubleshooting guidance
- Added more robust log type formatting in Chronicle API client
- Updated CSV export examples to use correct snake_case UDM field names
- New Gemini AI integration providing access to Chronicle's conversational AI interface
gemini()method for querying the Gemini API with natural language questions- Automatic user opt-in to Gemini functionality when first used
- Manual opt-in method
opt_in_to_gemini()for explicit user control - Structured response parsing with TEXT, CODE, and HTML block handling
- Smart extraction of text content from both TEXT and HTML blocks with HTML tag stripping
- Helper methods for accessing specific content types:
get_text_content(),get_code_blocks(),get_html_blocks() - Access to raw API responses via
get_raw_response()for advanced use cases - Comprehensive documentation and examples for Gemini functionality
- Enhanced log ingestion with batch processing capability for improved performance
- Support for ingesting multiple logs in a single API call through the existing
ingest_logmethod - Backward compatibility maintained for single log ingestion
- New Data Export API integration for exporting Chronicle logs to Google Cloud Storage
- Methods for creating, monitoring, and canceling data exports
- Support for exporting specific log types or all logs within a time range
- Comprehensive documentation and examples for Data Export functionality
- Resolved issues with entity summary functionality for improved entity lookups and correlation
- Fixed incorrect handling of entity relationships in entity summaries
- Corrected statistics query processing bug that affected aggregation results
- Improved error handling for statistics queries with complex aggregations
-
New UDM ingestion functionality with
ingest_udmmethod for sending structured events directly to Chronicle -
Support for ingesting both single UDM events and multiple events in batch
-
Automatic generation of event IDs and timestamps for UDM events when missing
-
Input validation to ensure correct UDM event structure and required fields
-
Deep-copying of events to prevent modification of original objects
-
Comprehensive unit tests and integration tests for UDM ingestion
-
Detailed examples in README.md showing UDM event creation and ingestion
-
New example in
example.pydemonstrating the creation and ingestion of various UDM event types -
New log ingestion functionality with
ingest_logmethod for sending raw logs to Chronicle -
Support for multiple log formats including JSON, XML, and other string raw log types
-
Forwarder management with
get_or_create_forwarder,create_forwarder, andlist_forwardersmethods -
Log type utilities for discovering and validating available Chronicle log types
-
Custom timestamp support for log entry time and collection time
-
Comprehensive examples in README.md showing various log ingestion scenarios
-
Example usage in
example.pydemonstrating log ingestion for OKTA and Windows Event logs
- New natural language search functionality with
translate_nl_to_udmandnl_searchmethods - Ability to translate natural language queries to UDM search syntax
- Integration with existing search capabilities for seamless NL-powered searches
- Comprehensive documentation in README.md with examples and query patterns
- Example usage in
example.pydemonstrating both translation and search capabilities - Improved command-line parameters in examples for easier customization
- New
validate_rulemethod in Chronicle client for validating YARA-L2 rules before creation or update - Support for detailed validation feedback including error positions and messages
- Example usage in
example_rule.pydemonstrating rule validation - Comprehensive documentation for rule validation in README.md
- Enhanced rule management functionality with validation capabilities
- Improved error handling for rule-related operations