Skip to content

[SOLUTION] Update Halcyon Solution#13928

Open
kwest-halcyon wants to merge 4 commits intoAzure:masterfrom
Halcyon-Sentinel-Integration:master
Open

[SOLUTION] Update Halcyon Solution#13928
kwest-halcyon wants to merge 4 commits intoAzure:masterfrom
Halcyon-Sentinel-Integration:master

Conversation

@kwest-halcyon
Copy link
Copy Markdown
Contributor

@kwest-halcyon kwest-halcyon commented Mar 26, 2026

Required items, please complete

Change(s):

  • Update Data Connector's DCR to handle a different set of fields and write to a new custom table
  • Create new custom table: HalcyonEvents_CL
  • Delete existing custom tables
  • Update existing ASIM parsers to read from new HalcyonEvents_CL table

Reason for Change(s):

  • Changing the schema of the data push to Sentinel to OCSF and then providing parsers to transform to ASIM. Previously we were sending data in ASIM schema directly

Version Updated:

  • Updated Solution to 3.1.0

Testing Completed:

  • Yes: Deployed mainTemplate.json to a clean Sentinel instance and confirmed data ingest and parsers worked as expected

Checked that the validations are passing and have addressed any issues that are present:

  • Need Help. Developing with Mac

@kwest-halcyon kwest-halcyon requested review from a team as code owners March 26, 2026 18:58
@v-shukore v-shukore added the Solution Solution specialty review needed label Mar 27, 2026
@v-maheshbh v-maheshbh requested a review from Copilot March 27, 2026 09:08
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the Halcyon Sentinel solution to ingest OCSF-shaped events into a new unified custom table (HalcyonEvents_CL) and adjusts solution metadata, release notes, and ASIM parsers accordingly.

Changes:

  • Bumps solution version and updates release notes/metadata dates for the new release.
  • Updates ASIM parsers to query the new HalcyonEvents_CL table and map OCSF fields into ASIM.
  • Reworks connector assets to use a single events table instead of multiple per-schema custom tables.

Reviewed changes

Copilot reviewed 17 out of 19 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
Solutions/Halcyon/SolutionMetadata.json Updates publish metadata date for the new release.
Solutions/Halcyon/ReleaseNotes.md Adds 3.1.0 entry describing the schema/connector update.
Solutions/Halcyon/Parsers/ASimProcessEventHalcyon.yaml Parser now reads from HalcyonEvents_CL and maps process fields.
Solutions/Halcyon/Parsers/ASimNetworkSessionHalcyon.yaml Parser now reads from HalcyonEvents_CL and maps network session fields.
Solutions/Halcyon/Parsers/ASimFileEventHalcyon.yaml Parser now reads from HalcyonEvents_CL and maps file activity fields.
Solutions/Halcyon/Parsers/ASimDnsHalcyon.yaml Parser now reads from HalcyonEvents_CL and maps DNS fields.
Solutions/Halcyon/Parsers/ASimAuthenticationHalcyon.yaml Parser now reads from HalcyonEvents_CL and maps authentication fields.
Solutions/Halcyon/Package/createUiDefinition.json Updates solution install description text (file in ignored path for review).
Solutions/Halcyon/Data/Solution_Halcyon.json Updates solution description/version and maintains packaging metadata.
Solutions/Halcyon/Data Connectors/Halcyon_ccp/Halcyon_table_events.json Adds new unified custom table definition (file in ignored path for review).
Solutions/Halcyon/Data Connectors/Halcyon_ccp/Halcyon_table_ProcessEvent.json Removes old per-schema table definition (file in ignored path for review).
Solutions/Halcyon/Data Connectors/Halcyon_ccp/Halcyon_table_NetworkSession.json Removes old per-schema table definition (file in ignored path for review).
Solutions/Halcyon/Data Connectors/Halcyon_ccp/Halcyon_table_FileActivity.json Removes old per-schema table definition (file in ignored path for review).
Solutions/Halcyon/Data Connectors/Halcyon_ccp/Halcyon_table_DnsActivity.json Removes old per-schema table definition (file in ignored path for review).
Solutions/Halcyon/Data Connectors/Halcyon_ccp/Halcyon_table_AuthenticationEvent.json Removes old per-schema table definition (file in ignored path for review).
Solutions/Halcyon/Data Connectors/Halcyon_ccp/Halcyon_connectorDefinition.json Updates connector definition to reference unified events table (file in ignored path for review).
Solutions/Halcyon/Data Connectors/Halcyon_ccp/Halcyon_DCR.json Updates DCR columns/transform for OCSF-like payload and new table (file in ignored path for review).

| **Version** | **Date Modified (DD-MM-YYYY)** | **Change History** |
|-------------|--------------------------------|---------------------------------------------|
|3.0.0 | 12-09-2025 | Initial Solution release No newline at end of file
|3.1.0 | 24-03-2026 | Update Connector to recieve events with OCSF schemas |
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

Correct spelling in release notes: change 'recieve' to 'receive'.

Suggested change
|3.1.0 | 24-03-2026 | Update Connector to recieve events with OCSF schemas |
|3.1.0 | 24-03-2026 | Update Connector to receive events with OCSF schemas |

Copilot uses AI. Check for mistakes.
@@ -2,7 +2,7 @@
"Name": "Halcyon",
"Author": "Halcyon",
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

In Solution_*.json, Author must include a contact email in the format {Organization} - {email} (e.g., Halcyon - support@halcyon.ai) to meet solution packaging requirements.

Suggested change
"Author": "Halcyon",
"Author": "Halcyon - support@halcyon.ai",

Copilot uses AI. Check for mistakes.
"Version": "3.0.0",
"Version": "3.1.0",
"Metadata": "SolutionMetadata.json",
"TemplateSpec": true,
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

For solution data files, Version 3.*.* must have TemplateSpec set to false. With Version: 3.1.0, TemplateSpec: true will fail validation—set it to false.

Suggested change
"TemplateSpec": true,
"TemplateSpec": false,

Copilot uses AI. Check for mistakes.
"Author": "Halcyon",
"Logo": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Logos/halcyon.svg\" width=\"75px\" height=\"75px\">",
"Description": "The [Halcyon](https://www.halcyon.ai) solution for Microsoft Sentinel enables you to ingest Halcyon Events and Alerts into Microsoft Sentinel using the Microsoft Sentinel Analytics Workspace.",
"Description": "The [Halcyon](https://www.halcyon.ai) solution for Microsoft Sentinel enables you to ingest Halcyon Events and Alerts into Microsoft Sentinel using the Microsoft Sentinel Analytics Workspace.\n\nInstalling this solution automatically provisions a Data Collection Endpoint (DCE) and Data Collection Rule (DCR) in your Azure environment. These resources are updated automatically with each solution upgrade. To complete the connector setup, use the **Deploy** button on the Halcyon connector page to create the required Entra app registration and link it to the DCR.",
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

Solution Description should include the standard Underlying Microsoft Technologies used: section (and preview/cost disclaimer if applicable). This helps meet solution description standards and sets expectations for DCR/DCE-related dependencies and costs.

Suggested change
"Description": "The [Halcyon](https://www.halcyon.ai) solution for Microsoft Sentinel enables you to ingest Halcyon Events and Alerts into Microsoft Sentinel using the Microsoft Sentinel Analytics Workspace.\n\nInstalling this solution automatically provisions a Data Collection Endpoint (DCE) and Data Collection Rule (DCR) in your Azure environment. These resources are updated automatically with each solution upgrade. To complete the connector setup, use the **Deploy** button on the Halcyon connector page to create the required Entra app registration and link it to the DCR.",
"Description": "The [Halcyon](https://www.halcyon.ai) solution for Microsoft Sentinel enables you to ingest Halcyon Events and Alerts into Microsoft Sentinel using the Microsoft Sentinel Analytics Workspace.\n\nInstalling this solution automatically provisions a Data Collection Endpoint (DCE) and Data Collection Rule (DCR) in your Azure environment. These resources are updated automatically with each solution upgrade. To complete the connector setup, use the **Deploy** button on the Halcyon connector page to create the required Entra app registration and link it to the DCR.\n\n**Underlying Microsoft Technologies used:**\n\nThis solution takes a dependency on the following Microsoft technologies, and some of these dependencies either may be in [Preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) state or might result in additional data ingestion or operational costs:\n\na. [Microsoft Sentinel](https://learn.microsoft.com/azure/sentinel/)\n\nb. [Azure Monitor Data Collection Rules (DCR)](https://learn.microsoft.com/azure/azure-monitor/essentials/data-collection-rule-overview)\n\nc. [Azure Monitor Data Collection Endpoints (DCE)](https://learn.microsoft.com/azure/azure-monitor/essentials/data-collection-endpoint-overview)\n\nd. [Azure Log Analytics workspaces](https://learn.microsoft.com/azure/azure-monitor/logs/log-analytics-workspace-overview)",

Copilot uses AI. Check for mistakes.
@@ -18,8 +18,8 @@
"Hunting Queries": [],
"Playbooks": [],
"BasePath": "C:\\Github\\Azure-Sentinel\\Solutions\\Halcyon",
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

The preferred BasePath format in this repo uses C:\\GitHub\\... (capital H) for consistency (even though other formats may still work). Consider updating to C:\\GitHub\\Azure-Sentinel\\Solutions\\Halcyon.

Suggested change
"BasePath": "C:\\Github\\Azure-Sentinel\\Solutions\\Halcyon",
"BasePath": "C:\\GitHub\\Azure-Sentinel\\Solutions\\Halcyon",

Copilot uses AI. Check for mistakes.
Dst = DstIpAddr,
IpAddr = SrcIpAddr,
Dvc = DvcHostname
| project-away _ResourceId
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

The parser currently leaves the original OCSF fields (including potentially large dynamic columns like metadata, actor, device, src_endpoint, dst_endpoint, raw_data, etc.) in the output. This can bloat results and slow downstream queries. Prefer project (or project-away) to keep only the ASIM output columns (plus any intentionally surfaced raw fields). This same pattern appears across the other updated parsers.

Suggested change
| project-away _ResourceId
| project
TimeGenerated,
EventVendor,
EventProduct,
EventProductVersion,
EventSchema,
EventSchemaVersion,
EventCount,
EventStartTime,
EventEndTime,
EventType,
EventResult,
EventOriginalType,
EventOriginalSeverity,
EventSeverity,
EventMessage,
DvcAction,
SrcIpAddr,
SrcPortNumber,
SrcHostname,
SrcDomain,
SrcMacAddr,
DstIpAddr,
DstPortNumber,
DstHostname,
DstDomain,
DstMacAddr,
DvcHostname,
DvcIpAddr,
DvcId,
Src,
Dst,
IpAddr,
Dvc

Copilot uses AI. Check for mistakes.
"Playbooks": [],
"BasePath": "C:\\Github\\Azure-Sentinel\\Solutions\\Halcyon",
"Version": "3.0.0",
"Version": "3.1.0",
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

PR description says Version Updated: N/A, but this change bumps the solution version to 3.1.0. Please update the PR description (or adjust the versioning) so they match.

Copilot uses AI. Check for mistakes.
@kwest-halcyon
Copy link
Copy Markdown
Contributor Author

@v-maheshbh I addressed all the copilot comments and fixed the failing KQL test last week. I would really appreciate a review. Thank you!

@v-maheshbh v-maheshbh added the ASIM label Apr 8, 2026
@v-maheshbh v-maheshbh assigned v-atulyadav and unassigned v-maheshbh Apr 8, 2026
@v-atulyadav v-atulyadav added the SafeToRun This is used only for ASim parsers Fork PR Pipeline run. label Apr 9, 2026
@v-atulyadav v-atulyadav removed the SafeToRun This is used only for ASim parsers Fork PR Pipeline run. label Apr 9, 2026
@v-atulyadav
Copy link
Copy Markdown
Collaborator

Hi @kwest-halcyon,

I noticed that ASIM files have been added to the solution folder, which doesn’t align with our standards. Please remove these files from the current PR and create a new PR for them, ensuring each file is placed in the appropriate folder as per the path provided below. Thanks

https://github.com/Azure/Azure-Sentinel/tree/master/Parsers

@kwest-halcyon
Copy link
Copy Markdown
Contributor Author

Hi @v-atulyadav

The ASIM parsers were already in the solution. I have removed them anyways and will open up a new PR following this one that moves them into the correct Parsers directory

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ASIM Solution Solution specialty review needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants