Skip to content

[Bitsight Connector] - Fixing duplicate records issue - #14800

Open
dhanunjaya1054 wants to merge 1 commit into
Azure:masterfrom
dhanunjaya1054:users/v-dhbedu/bitsight-parser-dedup
Open

[Bitsight Connector] - Fixing duplicate records issue#14800
dhanunjaya1054 wants to merge 1 commit into
Azure:masterfrom
dhanunjaya1054:users/v-dhbedu/bitsight-parser-dedup

Conversation

@dhanunjaya1054

Copy link
Copy Markdown
Contributor

Required items, please complete

Change(s):

  • See guidance below

Reason for Change(s):

  • See guidance below

Version Updated:

  • Required only for Detections/Analytic Rule templates
  • See guidance below

Testing Completed:

  • Yes

@dhanunjaya1054
dhanunjaya1054 requested review from a team as code owners July 31, 2026 05:04
@dhanunjaya1054
dhanunjaya1054 force-pushed the users/v-dhbedu/bitsight-parser-dedup branch from 50c02ee to 1d1c7e0 Compare July 31, 2026 05:23
@v-atulyadav v-atulyadav added the Solution Solution specialty review needed label Jul 31, 2026
@v-atulyadav
v-atulyadav requested a review from Copilot July 31, 2026 05:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR addresses duplicate BitSight statistics records by adding de-duplication logic in several KQL parsers and simplifies CCF connector authentication to use a single API Token field.

Changes:

  • Add summarize arg_max(TimeGenerated, *) de-duplication to multiple BitSight statistics parsers.
  • Update both BitSight CCF connectors to use a single apiToken parameter for Basic authentication.
  • Bump solution version to 3.2.1 and document the changes in release notes.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
Solutions/BitSight/ReleaseNotes.md Documents the new 3.2.1 changes (dedupe + auth simplification).
Solutions/BitSight/Parsers/BitSightObservationStatistics.yaml Adds arg_max-based dedupe and bumps parser version/date.
Solutions/BitSight/Parsers/BitSightIndustrialStatistics.yaml Adds arg_max-based dedupe and bumps parser version/date.
Solutions/BitSight/Parsers/BitSightDiligenceStatistics.yaml Adds arg_max-based dedupe and bumps parser version/date.
Solutions/BitSight/Data/Solution_BitSight.json Bumps solution version to 3.2.1.
Solutions/BitSight/Data Connectors/BitSight_Events_CCF/PollingConfig.json Switches Basic auth parameters to apiToken with empty password.
Solutions/BitSight/Data Connectors/BitSight_Events_CCF/ConnectorDefinition.json Updates UX to accept a single API Token and adjusts auth guidance text.
Solutions/BitSight/Data Connectors/BitSight_CCF/PollingConfig.json Switches Basic auth parameters to apiToken with empty password.
Solutions/BitSight/Data Connectors/BitSight_CCF/ConnectorDefinition.json Updates UX to accept a single API Token and adjusts auth guidance text.

Comment on lines +11 to +12
"UserName": "[[parameters('apiToken')]",
"Password": ""
Comment on lines +11 to +12
"UserName": "[[parameters('apiToken')]",
"Password": ""
),
(
BitSightObservationStatistics_CL
| summarize arg_max(TimeGenerated, *) by CompanyGuid, RiskVector
),
(
BitsightIndustrialStatistics_CL
| summarize arg_max(TimeGenerated, *) by CompanyGuid, RiskVector
),
(
BitSightDiligenceStatistics_CL
| summarize arg_max(TimeGenerated, *) by CompanyGuid, RiskVector
),
(
BitSightObservationStatistics_CL
| summarize arg_max(TimeGenerated, *) by CompanyGuid, RiskVector
"type": "Markdown",
"parameters": {
"content": "## BitSight Connections\n\nManage multiple BitSight data stream connections. Each connection selects a specific data type - **Alerts**, **Breaches**, or **Findings** - and assigns a **Connection Name** that is stored in the `ConnectorName` column of every ingested record.\n\n> **Authentication**: BitSight uses HTTP Basic Authentication where the API token is used as **both** the username and password."
"content": "## BitSight Connections\n\nManage multiple BitSight data stream connections. Each connection selects a specific data type - **Alerts**, **Breaches**, or **Findings** - and assigns a **Connection Name** that is stored in the `ConnectorName` column of every ingested record.\n\n> **Authentication**: BitSight uses HTTP Basic Authentication with your API Token."
@@ -1,4 +1,4 @@
[
[
@@ -1,4 +1,4 @@
[
[
@dhanunjaya1054
dhanunjaya1054 force-pushed the users/v-dhbedu/bitsight-parser-dedup branch 2 times, most recently from b13cc36 to c984ac4 Compare July 31, 2026 06:42
… (v3.2.1)

- Add arg_max(TimeGenerated, *) de-duplication to the BitSight statistics
  parsers so the CCF snapshot tables return only the latest record per entity,
  resolving the duplicate-records issue.
- Replace the separate username and password inputs with a single BitSight API
  Token field in both the Security Statistics and Security Events connectors.
  Authentication uses HTTP Basic with the token as the username and an empty
  password, matching BitSight's documented API token scheme.
- Bump solution to 3.2.1, update release notes, and regenerate the package.
@dhanunjaya1054
dhanunjaya1054 force-pushed the users/v-dhbedu/bitsight-parser-dedup branch from c984ac4 to 5daad1a Compare July 31, 2026 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Solution Solution specialty review needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants