This file documents recent notable changes to this project. The format of this file is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added the
updateTrustedDomain
GraphQL API, allowing users to modify a trusted domain. - Added
IpAddress
GraphQL custom scalar for IP addresses.- Applied it to the GraphQL APIs
ipLocation
,ipLocationList
,insertAccount
,updateAccount
,insertSamplingPolicy
, andupdateSamplingPolicy
. - The API returns the following error message when a value cannot be parsed as
an
IpAddr
(e.g., when "abc" is given):Failed to parse "IpAddress": Invalid IP address: abc (occurred while parsing "[IpAddress!]")
- Applied it to the GraphQL APIs
- Added the
theme
field to theAccount
struct to store the user's selected screen color mode. Accordingly, the functions for inserting and updating accounts have been modified, and new APIs have been added to retrieve and update the user's selected screen color mode.
- The paginated GraphQL queries use different representations for cursors. The cursor values obtained from earlier versions of the API are not compatible with the new cursor values.
- Replaced the term source with sensor, where it refers to a device or software that captures or detects raw events. This update broadly affects GraphQL APIs that previously used source field as a parameter, and GraphQL APIs that return event, outlier, or triage related structs.
- Updated review-database to 0.33.1.
- The
ip2location::DB
argument forserve
no longer needs to be wrapped inArc
andMutex
. This change simplifies the code and improves performance by removing unnecessary locking. - Modified the type of
cluster_id
field of the detection event structures fromusize
toOption<usize>
:HttpThreat
,ExtraThreat
,NetworkThreat
,WindowsThreat
. - The GraphQL API for
WindowsThreat
event structure is changed to returnID
type instead ofusize
type value for thecluster_id
field. - Updated
insertNode
GraphQL API to no longer requireconfig
for theagents
parameter. - Updated account-related GraphQL APIs to reflect the type change of
Account::max_parallel_sessions
fromOption<u32>
toOption<u8>
.- The
account
and related queries such asaccountList
now returnmaxParallelSessions
as anInt
within the range ofu8
. - The
insertAccount
andupdateAccount
GraphQL APIs remain unchanged in their interfaces but now only accept parameters related to max parallel sessions within the range ofu8
.
- The
- Removed
graphql::account::reset_admin_password
function as it was obsoleted by the GraphQL APIresetAdminPassword
.
- Resolved an issue in the
applyNode
GraphQL API, where configuration values set to an empty string were not saved to theconfig
in the database. - Fixed an issue where configuration conversion failures were silently ignored, leading to incorrect None handling.
0.24.0 - 2024-11-19
- Added the
TimeSeriesGenerator
variant to theAgentKind
enum. - Added
signInWithNewPassword
GraphQL API for signing in with a new password.- The
signIn
GraphQL API now returns an error if the account was never signed in before. This change is part of enhancing account security by requiring all users to update their passwords upon their first signing in.
- The
- Modified
applyNode
GraphQL API logic to prevent notifying agents that are operating with local configuration. - Updated
updateNodeDraft
GraphQL API to no longer requireconfig
inNodeDraftInput::agents
. - Updated review-database to 0.32.0.
- Renamed
AgentKind
enum variants to align with review-database.
- Added missing
node
field insamplingPolicy
andsamplingPolicyList
GraphQL API responses in theSamplingPolicy
object.
0.23.0 - 2024-10-23
- Modified the
AgentManager
trait to acceptHostNetworkGroup
directly instead of its serialized form. This change decouples review-web from dictating the serialized form ofHostNetworkGroup
, which should be handled by the review-protocol crate. - The
applyNode
GraphQL API now accepts aNodeInput
argument, in order to validate that the provided node data matches the current state in the database before applying changes. - The default connection size is no longer used. Instead, the maximum connection size is applied if users don't specify a size.
- Changed the distance search conditions for
rankedOutliers
GraphQL API.- start only: Search for outliers whose distance value is greater than or equal to the start value.
- Fixed
savedOutliers
andrankedOutliers
to properly validate pagination parameters. - Fixed to return results from the
rankedOutliers
GraphQL API in ascending order. This change ensures a consistent pattern forrankedOutliers
cursors, helping users avoid confusion with various start and end cursor patterns when using query. - Fixed the
rankedOutliers
GraphQL API- when
rankedOutliers
called with a cursor, theRankedOutlier
value corresponding to that cursor is excluded from the returned results. - Removed the code associated with the
to
variable becauseafter
andbefore
are not used together in the query. - Removed unnecessary
continue
that is performed after checking the number of outliers. This change will return results faster because not all outliers are checked.
- when
0.22.0 - 2024-10-04
- Added the
ipLocationList
GraphQL API for multiple addresses.
- Updated review-database to 0.31.0.
- Updated
nodeStatusList
GraphQL API response to includenameDraft
,profile
,profileDraft
, andgigantoDraft
, offering a more comprehensive view of the node’s status.
- Fixed an issue in the
applyNode
GraphQL API where agents could not be properly identified.
- The
AgentManager::get_config
method has been removed as part of the new configuration management approach. This aligns with the update toreview-protocol
version 0.7.0.
0.21.0 - 2024-09-05
- Added
Config
to the public API under thebackend
module to ensure all types used by the public traitsAgentManager
andCertManager
are accessible. - Added session limitation based on the
max_parallel_sessions
field ofAccount
during sign-in. - Added ip access control based on the
allow_access_from
field ofAccount
during sign-in. - Added
AgentManager::update_config
method to notify agents to update their configurations. - Added new detected events:
BlockListBootp
,BlockListDhcp
,SuspiciousTlsTraffic
- Added the
language
GraphQL API to get the user's UI language selection, and theupdateLanguage
GraphQL API to modify it.
- Changed to retrieve the admin account's name and password from the
REVIEW_ADMIN
environment variable, which is inusername:password
format, instead of using hardcoded credentials. - Moved
AgentManager
andCertManager
traits from thegraphql
module to a newly createdbackend
module. This change better organizes the code structure by separating concerns, as these traits are not directly related to the GraphQL API but are instead utilized within it. - Updated depedencies, including:
- Updated review-database to 0.30.0. As part of this update, the fields of
detected events, including
BlockListConn
,HttpThreat
,BlockListNtlm
,BlockListSmtp
,BlockListSsh
, andBlockListTls
, andTorConnection
to align with the updated version of review-database. - Updated review-protocol to 0.4.2.
- Updated rustls to version 0.23 and reqwest to version 0.12. These updates were made together to ensure the rustls version used by the reqwest library matches the version directly depended on by this module.
- Updated async-graphql to 7. As part of this update, the
Mutation
andQuery
structures were split into substructures to avoid the "Requirement evaluation overflow" error when implementing theMergedObject
trait. This is a bug in async-graphql 7.0.2 and later, and these structures will be merged back into one structure when async-graphql is patched for that bug in the future.
- Updated review-database to 0.30.0. As part of this update, the fields of
detected events, including
- Modified the
Node
andNodeProfile
fields, along with updatingNode
-related CRUD APIs to align with the updated schema. The changes reflect the introduction of the newAgent
table, which stores configuration data in TOML format strings. - Added
category
field to TI db and rules. - Added
category
fields to all the the detected events. - Changed GraphQL API
preserveOutliers
to usePreserveOutliersOutput
in its response.- Instead of returning the count of successfully marked outliers, this endpoint now returns a list of outliers that were not marked as saved.
- Changed GraphQL APIs to return
StringNumber
orID
instead of integers beyondi32
in all applicable APIs. - Refactored
AgentManager::ping
to returnDuration
instead ofi64
. This refactor improves the flexibility and accuracy of theping
method, making it more robust and aligned with Rust's time handling conventions. - In the GraphQL API, modified the
ping
field inNodeStatus
to return aFloat
(seconds) instead of aInt
(microseconds). This change improves precision when converting the internal representation of theping
field to a GraphQL-compatible type. - Added a
language
field to theAccount
. Consequently, theaccount
andaccountList
API responses now include this field. TheinsertAccount
andupdateAccount
GraphQL API endpoints are also updated to support the field. - Updated the
applyNode
GraphQL API to align with the new node and agent management approach.- The API updates the database with draft values, notifies agents to update their configurations, and logs the changes, as long as each step is needed.
- The
successModules
field has been removed from the API response. Instead, the response now includesgigantoDraft
, representing the draft configuration of the Giganto module. IfgigantoDraft
isNone
, it means either the node does not have the Giganto module or the draft for the Giganto is unavailable. In the latter case, this indicates that the Giganto should be disabled, resulting in the node no longer having the Giganto module.
- Updated the
nodeStatusList
GraphQL API to align with the new node and agent management approach. Key changes include:- For nodes with the Manager module, the
ping
field now consistently returns 0.0 instead ofNone
. This change reflects the negligible round-trip time when the node has the Manager module, clarifying that the node is reachable and avoiding the potential misinterpretation thatNone
might suggest the node is unreachable. - The API response now includes an
agents
field that provides detailed information about the agents on the node. This field is inAgentSnapshot
, which containskind
,storedStatus
,config
, anddraft
attributes for each agent.- The
storedStatus
field now replaces the previouspiglet
,reconverge
, andlearner
fields.storedStatus
represents the agent's status as stored in the database. With the removal of agent-specific status fields, GraphQL clients now need to use thekind
field to identify the agent type. - The
config
anddraft
fields replace the oldpigletConfig
andhogConfig
fields. Providing bothconfig
anddraft
allows GraphQL clients to clearly differentiate between an agent's active configuration and its draft configuration, offering the flexibility to utilize both sets of information as needed.
- The
- For nodes with the Manager module, the
- Removed
get_node_settings
function as it is no longer used. - The
AgentManager::set_config
method has been removed, due to the new configuration management approach. The central management server no longer sends updates directly to agents. Instead, it notifies them through theupdate_config
method, prompting agents to request the updated configuration from the management server.
- Corrected the release date of
0.20.0
to2024-04-25
.
0.20.0 - 2024-04-25
AgentManager::halt
method to shut down a host.- Add unit test for
nodeStatusList
to check ordering of nodes and edges. - Add
validate_and_process_pagination_params
to check input valid combinations of first, last, before, and after and apply it to GraphQL queries with pagination. - Added
LockyRansomware
detection event. - Added GraphQL query
resetAdminPassword
to allow resetting the password for an existing user categorized asSystemAdministrator
for administrators utilizing the local network. This feature enhances the security and accessibility of user accounts, providing administrators with a streamlined method for password management.
- GraphQL queries
accountList
,allowNetworkList
,blockNetworkList
,categories
,networkList
,qualifiers
,samplingPolicyList
,loadRoundsByModel
,statuses
,templateList
,torExitNodeList
,triageResponseList
,nodeStatusList
,clusters
,customerList
,dataSourceList
,eventList
,roundsByCluster
,trustedUserAgentList
,trustedDomainList
,rankedOutliers
,savedOutliers
,outliers
,models
,triagePolicyList
,nodeList
now explicitly reject user input with combinations of (before, after), (first, before), and (last, after) parameters, following the GraphQL pagination documentation guidelines. This enhancement ensures better consistency and adherence to best practices in handling pagination requests. - GraphQL queries
insertTidb
requiresdbfile
to be encoded string ofTidb
instance that is serialized withbincode::DefaultOptions::new().serialize
instead ofbincode::serialize
. - GraphQL queries
updateTidb
requiresnew
to be encoded string ofTidb
instance that is serialized withbincode::DefaultOptions::new().serialize
instead ofbincode::serialize
. - Add the result of
get_config
of each module tonodeStatusList
GraphQL API. - Use
set_config
ofAgentManager
, instead ofsend_and_recv
inapplyNode
GraphQL API. - Use
halt
ofAgentManager
, instead ofsend_and_recv
innodeShutdown
GraphQL API. - Updated review-database to 0.27.0.
- Fix the
nodeStatusList
GraphQL API to return appropriate results for each field. - Remove
giganto
fromNodeStatus
struct andnodeStatusList
. - Converted fields in the
nodeStatusList
GraphQL API response from returningOption<i64>
andOption<u64>
to usingStringNumber
, likeOption<StringNumber<i64>>
andOption<StringNumber<u64>>
. This adjustment safeguards against potential data loss resulting from GraphQL's handling ofInt
types. Affected fields aretotal_memory
,used_memory
,total_disk_space
,used_disk_space
, andping
.
- The implementor of
AgentManager
is now responsible for providing the appropriate behavior, becauseAgentManager
no longer provides shared behavior for the following methods:broadcast_crusher_sampling_policy
get_process_list
get_resource_usage
ping
reboot
AgentManager::send_and_recv
andbroadcast_to_crusher
has been removed because they exposed the underlying communication mechanism to the caller. The caller should now use the specific methods provided byAgentManager
to interact with the agent.AgentManager::default
has been removed that returns error.
- Corrected documentation for
NodeStatus::{total_memory, used_memory}
to specify that the numbers are in bytes, not in KB.
0.19.0 - 2024-03-18
- Updated the
ModelIndicator
GraphQL type. Addedname
field as the name of the model indicator. - Changed the return type of
indicatorList
GraphQL query to[ModelIndicator!]!
. - GraphQL query
updateExpirationTime
returns an error if the expiration time is less than one second. init_expiration_time
andupdate_jwt_expires_in
takeu32
instead ofi64
for the expiration time argument.Node
struct now hassettings
andsettings_draft
of typeNodeSettings
, andname
andname_draft
. Upon initial insertion ofNode
,name
must be provided, as it is used as the key ofNode
in the database.name_draft
andsettings_draft
are introduced to support 2-step node-setting process, which is save & apply.name_draft
andsettings_draft
fields mean that the data are only saved to the database. Once those are applied, the draft values are moved toname
, andsettings
.- Renamed
updateNode
GraphQL API toupdateNodeDraft
, and modified parameter types.old
toNodeInput
, andnew
toNodeDraftInput
. graphql::event::convert_sensors
usesNode
'ssettings
value, to retrieve the hostnames of the sensors. This function is called by GraphQL APIs ofEventQuery
andEventGroupQuery
.nodeStatusList
GraphQL API useshostname
fromNode
'ssettings
field.graphql::node::crud::get_node_settings
usesNode
'ssettings
value.
- Renamed
- Removed the obsoleted
ModelIndicatorOutput
GraphQL type. This type was previously used as return type ofindicatorList
GraphQL query. With advancements and improvements in our system, this type is no longer necessary and has been removed to streamline the codebase and enhance overall maintainability.
- Add unit tests to
customer_list
to check ordering of nodes and edges. AgentManager::broadcast_crusher_sampling_policy
method to broadcast the sampling policy to the Crusher agents.AgentManager::get_process_list
method to retrieve the list of processes usage running on host. It returns aVec
ofgraphql::Process
.AgentManager::get_resource_usage
method to retrieve the resource usage of a host. It returnsgraphql::ResourceUsage
.AgentManager::ping
method to measure the latency between the agent manager and a host.AgentManager::reboot
method to reboot a host.AgentManager::get_config
andAgentManager::set_config
methods to get and set the configuration of an agent.- Add
nodeShutdown
GraphQL API. - Introduced
applyNode
GraphQL API, that applies draft values to modules and updates values in database. This API handles partial success of setting application settings, which may happen when a node carries multiple modules. The API returns the list of succeeded modules' names inApplyResult::success_modules
.
- Resolved an issue in the
processList
query function where applications were incorrectly identified by their agent ID instead of their application name. Previously, the function assumed the agent ID in the format "agent_id@hostname" directly corresponded to the application name, which was not always the case. This assumption did not support scenarios where multiple instances of the same application ran on the same host with unique agent IDs. The updated implementation now correctly identifies applications by their name, ensuring accurate application prioritization.
0.18.0 - 2024-02-26
- Add
apply_target_id
field toNode
struct for reverting node status. - Add
apply_in_progress
field toNode
struct for reverting node status. - Added the following GraphQL API to access workflow tags:
- 'workflowTagList'
- 'insertWorkflowTag'
- 'removeWorkflowTag'
- 'updateWorkflowTag'
- We've resolved an issue in the GraphQL API where the ordering of edges was
inconsistent when using
last
/before
pagination arguments. According to the GraphQL Cursor Connections Specification, the order of edges should remain the same whether usingfirst
/after
orlast
/before
, provided all other arguments are equal. Previously, our API returned edges in reverse order whenlast
/before
was used, which was contrary to the specification. - Resolved a critical bug in the GraphQL API endpoint
updateCluster
where the user-specifiedstatus_id
was being overwritten whenqualifier_id
change is requested at the same time.- The issue has been addressed to ensure that the user-provided
status_id
is now properly respected and retained. - User expecting
status_id
change whenqualifier_id
is changed will need to specify desiredqualifier_id
while updating cluster.
- The issue has been addressed to ensure that the user-provided
- When inserting a new filter using
filters.insert(new.name.clone(), new)
, the function now checks for conflicts in the filter collection.- If the
new.name
already exists, the function returns an error, preventing unintentional or malicious deletion of any filter. - This fix adds an extra layer of security, ensuring the integrity of the filter collection.
- If the
0.17.0 - 2024-01-19
- Add new
WindowsThreat
event message for Windows sysmon events. - Add new
NetworkThreat
event message for network events. - Add new
ExtraThreat
event message for misc log events.
- Updated review-database to 0.23.0.
0.16.0 - 2024-01-15
- Added
ranked_outlier_stream
Graphql API to fetchRankedOutlier
periodically.- Gets the id of the currently stored
Model
. - Generate a
RankedOutlier
iterator corresponding to the prefix of theModel
's id. If not first fetch, generate iterator since the last fetched key. - Stream through the
RankedOutlier
iterator, and repeat the behavior after a period of time.
- Gets the id of the currently stored
- Changed
Node
fields. - Updated review-database to 0.22.1.
- Updated
column_statistics
according to review-database 0.21.0- Removed
event_range
argument. - Changed the
time
argument toVec<NaiveDateTime>
. - After adjustment,
column_statistics
now returns all column statistics of the specifiedcluster
and created at the batch timestamp listed in thetime
argument. - The timestamp is now added to the return value field
batch_ts
, representing the batch timestamp for the specifiedStatistics
. - The returned
Statistics
are now sorted according tobatch_ts
andcolumn_index
.
- Removed
0.15.0 - 2023-11-15
- Change the type of
id
inranked_outlier
/saved_outlier
queries toStringNumber
. - Modified Ranked Outliers graphql query to take in a SearchFilter with
tag
andremark
- Change the distance search conditions for
ranked outliers
.- Start only: Search for outliers with the same distance value
- Start/End: Search for outliers with distance values in the range.
- Change the data type of the
id
in theRankedOutlier
structure fromStringNumber
toID
. - Change the part about
RankedOutlierTotalCount
to count the total count differently depending on whether it issaved_outliers
orranked_outliers
.
0.14.5 - 2023-11-02
- Modified Ranked Outliers graphql query to take in a SearchFilter with distance range and time range
- Added new method for Ranked Outliers
load_ranked_outliers_with_filter
,load_nodes_with_search_filter
, anditer_through_search_filter_nodes
to load Ranked Outliers depending on new Search Filter.
0.14.4 - 2023-10-19
- Added
processList
graphql query to get the host's list of processes. - Add block list event.
- DceRpc:
BlockListDceRpc
- Ftp:
BlockListFtp
- Http:
BlockListHttp
- Kerberos:
BlockListKerberos
- Ldap:
BlockListLdap
- Mqtt:
BlockListMqtt
- Nfs:
BlockListNfs
- Ntlm:
BlockListNtlm
- Rdp:
BlockListRdp
- Smb:
BlockListSmb
- Smtp:
BlockListSmtp
- Ssh:
BlockListSsh
- tls:
BlockListTls
- DceRpc:
- Updated review-database to 0.20.0.
- Fix to provide multiple
country codes
/Customers
for events with multipleaddresses
. (RdpBruteForce
,MultiHostPortScan
,ExternalDdos
)
0.14.3 - 2023-09-04
- Refactor the event processing code by separating it into protocol files.
- Modify outlier query to read outlier events from Rocks db.
0.14.2 - 2023-08-22
- Add block list event.
- Conn:
BlockListConn
- Dns:
BlockListDns
- Conn:
- Modified
FtpBruteForce
,LdapBruteForce
,RdpBruteForce
events to align with the event fields provided. - Updated review-database to 0.17.1.
0.14.1 - 2023-07-06
- Supports more events.
- Dns:
CryptocurrencyMiningPool
- Ftp:
FtpBruteForce
,FtpPlainText
- Ldap:
LdapBruteForce
,LdapPlainText
- Http:
NonBrowser
- Session:
PortScan
,MultiHostPortScan
,ExternalDdos
- Dns:
- Updated review-database to 0.15.2.
0.14.0 - 2023-06-20
- Added five new GraphQL API methods:
trusted_user_agent_list
: This new method allows users to retrieve the trusted user agent list.insert_trusted_user_agents
: This new feature enables users to insert trusted user agents into the list.remove_trusted_user_agents
: Users can now delete trusted user agents from the list using this method.update_trusted_user_agent
: This feature has been added to enable users to update the details of a trusted user agent.apply_trusted_user_agent
: This new method allows a list of trusted user agents to be applied to allhog
associated withREview
.
- The
srcPort
anddstPort
types in bothTorConnection
andRepeatedHttpSessions
have been changed. These types were previously!String
but have now been changed to!Int
. This change will enhance data consistency and reduce errors related to data type mismatches.
0.13.1 - 2023-06-16
- Reverted an accidantal change made to the serialization of allow/block networks in 0.13.0.
0.13.0 - 2023-06-15
- Updated review-database to 0.15.0.
0.12.0 - 2023-06-10
- Updated review-database to 0.14.1.
0.11.0 - 2023-06-08
- Added new fields to the
Event
enum internal struct provided via GraphQL for enhanceddetect event filtering
. This will allow more detailed filtering capabilities in the GraphQL API. - Introduced a
ping
field toNodeStatus
struct, accessible via theNodeStatusList
query. As part of this change, we updated thestatus::load
function to include theping
field in the response of theNodeStatusList
query. This enhancement allows users to retrieve theping
status of nodes using the GraphQL API. - Updated the
status::load
function to include theping
field in the response of theNodeStatusList
query. This change enables users to retrieve theping
status of nodes via the GraphQL API.
- Modified serialization method in broadcasting of
internal networks,allow/block list
. The new implementation now usesbincode::DefaultOptions::new().serialize()
instead ofbincode::serialize()
. This change is aimed at maintaining consistency with other serialized data across our system.
0.10.0 - 2023-05-31
- To enhance security and traceability, we have implemented a new logging
feature which now writes a log message during specific user authentication
activities.
- User Sign-in Logging: A log message will be automatically generated each time a user signs in successfully.
- User Sign-out Logging: In addition to sign-ins, we now log user sign-out events.
- Sign-in Failure Logging: In an effort to help detect and mitigate potential security issues, we are now logging failed sign-in attempts. This includes the user identification (if applicable) and the reason for failure (e.g., incorrect password, non-existent user ID, etc.).
- Added
eventstream
Graphql API to fetch events periodically.- Based on the
start
time, look for events inEventDb
that meet the criteria and stream them. - After a period of time, look up the
EventDb
again, find the newly added events, stream them, and keep repeating.
- Based on the
- Updated review-database to 0.13.2.
0.9.1 - 2023-05-25
- The
DomainGenerationAlgorithm
event in ourGraphQL
API query now includes a confidence field. This field will allow users to access and gauge the predictive certainty of the output. AgentManager
trait has been extended with three new methods.broadcast_internal_networks
: This method is responsible for broadcasting the customer's network details, including intranet, extranet, and gateway IP addresses to clients.broadcast_allow_networks
: This method sends the IP addresses that are always accepted as benign to the clients.broadcast_block_networks
: This method broadcasts the IP addresses that are always considered suspicious.
- Four new functions have been added to the
graphql
module to assist with the implementation of theAgentManager
trait:graphql::get_allow_networks
: Fetches the list of IP addresses that are always accepted as benign.graphql::get_block_networks
: Fetches the list of IP addresses that are always considered suspicious.graphql::get_customer_networks
: Gets the customer's network details, including intranet, extranet, and gateway IP addresses.get_customer_id_of_review_host
: Returns the customer ID associated with the review host.
- Two new GraphQL API methods have been added:
applyAllowNetworks
: Applies the list of IP addresses that are always accepted as benign.applyBlockNetworks
: Applies the list of IP addresses that are always considered suspicious.
- The behavior when a new node is added or the customer of a node is changed, has been updated to broadcast the customer networks of the node.
- If the customer networks of a node are updated, the changes are now broadcast. This provides an additional layer of communication to keep the system up-to-date with changes.
0.9.0 - 2023-05-22
- Updated review-database to 0.12.0.
- Starting from this version, the policy field for TimeSeries data will be set to the same value as the source field. For other data types, the policy field will be set to null.
0.8.1 - 2023-05-18
- The
update_traffic_filter_rules
function has been updated to explicitly take ahost_id
as an argument, replacing the previousagent_id@host_id
argument format. - Allows the clearing of filtering rules at an agent level by sending an empty rule set to the agent.
0.8.0 - 2023-05-18
- Extended
HttpThreat
object in the GraphQL API:- The
HttpThreat
object now exposes additional fields which encompass all the fields present in an HTTP request. Details of these additional fields can be found in the updated schema. - Introduced a new field, matched_to, within the
HttpThreat
object. This field presents all the patterns that correspond with the HTTP request.
- The
- Updated review-database to 0.11.0.
0.7.0 - 2023-05-16
- Updated review-database to 0.10.1.
0.6.0 - 2023-05-15
- Added
kind
field to the return values ofdataSourceList
API.
- From the GraphQL APIs
signIn
andrefreshToken
, the username field has been removed from theAuthPayload
return object. This is due to redundancy as the caller ofsignIn
orrefreshToken
already possesses knowledge of the username. - Updated review-database to 0.9.0.
0.5.0 - 2023-05-08
- Updated review-database to 0.8.0.
- Resolved an issue with the GraphQL query
clusters
that was introduced in version 0.4.0 due to a database schema change. Theclusters
query is now functional again, allowing users to retrieve cluster data as expected.
0.4.1 - 2023-05-05
- Added a GraphQL query,
rankedOutliers
, to retrieve outliers.
0.4.0 - 2023-05-04
- Updated
review-database
to 0.7.1.
0.3.0 - 2023-05-02
- Updated
ip2location
to 0.4.2. - Updated
review-database
to 0.7.0. - GraphQL API
columnStatistics
: This query's parameters have been modified to support event source.- Replaced separate firstEventId: Int and lastEventId: Int parameters with a single eventRange: EventRangeInput parameter.
- EventRangeInput is a new input type that includes the following required
fields:
- firstEventId: !Int (equivalent to the previous firstEventId parameter).
- lastEventId: !Int (equivalent to the previous lastEventId parameter).
- eventSource: !String (a new required field indicating the source of the events).
0.2.0 - 2023-04-27
- Added
port/procotol
to traffic filter rule to filter traffic in Piglet.
0.1.0 - 2023-04-24
- An initial version.