{
    "version": "https://jsonfeed.org/version/1",
    "title": "Fluency Ingext User Manual Blog",
    "home_page_url": "https://manual.ingext.io/splash",
    "description": "Fluency Ingext User Manual Blog",
    "items": [
        {
            "id": "https://manual.ingext.io/splash/2026-10-23-password-spray",
            "content_html": "<p>Attackers are spraying passwords from old breaches at Microsoft 365 accounts through the Azure command-line client (Azure CLI), whose password-only sign-in never shows an MFA prompt. <a href=\"https://www.huntress.com/blog/lshiy-password-spray-attack\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Huntress reported</a> one campaign that made more than 81 million sign-in attempts in two weeks of June 2026 and compromised 78 accounts at 64 organizations.</p>\n<p>Any organization whose MFA policy leaves gaps (some users, some apps, trusted locations, report-only mode) is exposed. MSSPs should check every tenant they manage. On October 23, 2026, Fluency released to every instance a detection for the takeover that follows a blocked attempt. No action is needed to turn it on.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"the-playbook\">The playbook<a href=\"https://manual.ingext.io/splash/2026-10-23-password-spray#the-playbook\" class=\"hash-link\" aria-label=\"Direct link to The playbook\" title=\"Direct link to The playbook\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Breached passwords.</strong> The attacker tries username and password pairs from old breaches that were never rotated, across many accounts.</li>\n<li class=\"\"><strong>Azure CLI's password-only sign-in.</strong> The attempts go through Azure CLI's OAuth ROPC flow, which sends the password straight to Microsoft's token endpoint with no MFA prompt. If no Conditional Access policy covers Azure CLI, the right password is enough.</li>\n<li class=\"\"><strong>Low and slow, from rotating infrastructure.</strong> The campaign sprayed from a hosting provider's IPv6 range and from Tor exit nodes, and moved to other providers when the first one shut it down. In July it made about 900 attempts per address across some 12,800 addresses.</li>\n<li class=\"\"><strong>Blocked, then back.</strong> When a risk policy blocks an attempt, the attacker tries the same password again from somewhere else. In a customer tenant in October 2026, the successful sign-in came four minutes after the blocks, from a residential address in the user's own country, and Microsoft rated it risk-free.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-mfa-did-not-stop-it\">Why MFA did not stop it<a href=\"https://manual.ingext.io/splash/2026-10-23-password-spray#why-mfa-did-not-stop-it\" class=\"hash-link\" aria-label=\"Direct link to Why MFA did not stop it\" title=\"Direct link to Why MFA did not stop it\" translate=\"no\">​</a></h3>\n<p>Among the organizations Huntress saw compromised that had MFA, it did not apply because it was:</p>\n<ul>\n<li class=\"\">enforced for specific apps instead of all cloud apps, so Azure CLI was not covered;</li>\n<li class=\"\">required only for some groups, such as admins;</li>\n<li class=\"\">required only from untrusted locations, and geolocation placed the attacker's addresses in a trusted country;</li>\n<li class=\"\">left in report-only mode.</li>\n</ul>\n<p>Eight of the 23 businesses Huntress analyzed had no MFA policy at all. And each record looks normal on its own: the block is the policy working, and the success is a routine sign-in.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"fluencys-new-detection\">Fluency's new detection<a href=\"https://manual.ingext.io/splash/2026-10-23-password-spray#fluencys-new-detection\" class=\"hash-link\" aria-label=\"Direct link to Fluency's new detection\" title=\"Direct link to Fluency's new detection\" translate=\"no\">​</a></h3>\n<table><thead><tr><th>Detection</th><th>Fires when</th><th>Needs</th></tr></thead><tbody><tr><td><code>EntraID_SignIn_After_Block</code></td><td>A user signs in successfully within two hours after Conditional Access blocked a high-risk sign-in that presented their correct password, and the success comes from an address none of the blocked attempts came from.</td><td>Entra ID sign-in logs (<a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/entraid-audit-eventhubs\">Azure Event Hubs</a> or <a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/azuread-audit\">Microsoft Graph</a>), and Entra ID P2 for Microsoft's sign-in risk rating</td></tr></tbody></table>\n<p>It raises a high-severity alert on the user. The release also sharpens <code>EntraID_Valid_Password_Blocked</code>, which alerts whenever Conditional Access blocks a sign-in that had the correct password: it no longer reports blocked attempts with a wrong password. Neither rule can catch an attacker whose very first attempt succeeds with nothing blocked before it. MFA is the control for that.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-we-recommend\">What we recommend<a href=\"https://manual.ingext.io/splash/2026-10-23-password-spray#what-we-recommend\" class=\"hash-link\" aria-label=\"Direct link to What we recommend\" title=\"Direct link to What we recommend\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"for-every-organization\">For every organization<a href=\"https://manual.ingext.io/splash/2026-10-23-password-spray#for-every-organization\" class=\"hash-link\" aria-label=\"Direct link to For every organization\" title=\"Direct link to For every organization\" translate=\"no\">​</a></h4>\n<ol>\n<li class=\"\"><strong>Require MFA for all users, all cloud apps and all client app types,</strong> with no group, app, location or report-only exceptions. Accounts outside an \"admins\" group are the ones being taken over.</li>\n<li class=\"\"><strong>Restrict Azure CLI and Azure PowerShell to the people who need them.</strong> Require assignment on the Microsoft Azure CLI enterprise app and assign it to an IT group, or block Azure management for everyone else.</li>\n<li class=\"\"><strong>Turn off password-only (ROPC) sign-in where nothing depends on it.</strong> Conditional Access has no separate setting for it: requiring MFA for all client app types makes ROPC sign-ins fail.</li>\n<li class=\"\"><strong>Don't rely on location alone.</strong> IP geolocation is often wrong, and an attacker can come from an address in your own country.</li>\n<li class=\"\"><strong>Treat a blocked sign-in with the correct password as a stolen password.</strong> Reset it and require MFA for that user, even though the attempt was stopped.</li>\n<li class=\"\"><strong>Disable dormant accounts.</strong> An account nobody signs in to has no owner to notice a takeover.</li>\n</ol>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"for-mssp-partners\">For MSSP partners<a href=\"https://manual.ingext.io/splash/2026-10-23-password-spray#for-mssp-partners\" class=\"hash-link\" aria-label=\"Direct link to For MSSP partners\" title=\"Direct link to For MSSP partners\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>Audit MFA in every client tenant.</strong> Look for the gaps Huntress found: policies scoped to some groups or apps, trusted-location exceptions and report-only mode.</li>\n<li class=\"\"><strong>Hunt for Azure CLI sign-ins by users who are not administrators,</strong> and for successful single-factor sign-ins shortly after blocked ones.</li>\n<li class=\"\"><strong>Check coverage.</strong> Confirm which clients send Entra ID sign-in logs and which have Entra ID P2. Clients without P2 get <code>EntraID_Valid_Password_Blocked</code> but not the new detection.</li>\n<li class=\"\"><strong>Act fast when it fires.</strong> Revoke the user's sessions and reset the password, confirm the sign-in with the user, and review what the session changed: MFA methods, devices, app consents and mailbox rules.</li>\n</ul>\n<p>If you find a match, <a href=\"https://fluency-support.atlassian.net/servicedesk/customer/portal/1\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">raise a support ticket</a> and Fluency will help with the investigation. The rule's full match conditions, what it does not cover, and triage steps are in the <a class=\"\" href=\"https://manual.ingext.io/release/2026-10-23-password-spray-takeover\">Password-Spray Account Takeover Detection</a> release notes.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"references\">References<a href=\"https://manual.ingext.io/splash/2026-10-23-password-spray#references\" class=\"hash-link\" aria-label=\"Direct link to References\" title=\"Direct link to References\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">Huntress, <a href=\"https://www.huntress.com/blog/lshiy-password-spray-attack\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><em>No (Bad) CAP: Inside an Ongoing LSHIY Password Spray Attack</em></a>, June 30, 2026, updated July 2026.</li>\n<li class=\"\">Huntress, <a href=\"https://www.huntress.com/blog/twist-the-nozzle-on-password-spraying-a-tradecraft-tuesday-recap\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><em>Twist the Nozzle on Password Spraying: A Tradecraft Tuesday Recap</em></a>, July 22, 2026.</li>\n</ul>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Attackers are spraying passwords from old breaches at Microsoft 365 accounts through the Azure command-line client (Azure CLI), whose password-only sign-in never shows an MFA prompt. Huntress reported one campaign that made more than 81 million sign-in attempts in two weeks of June 2026 and compromised 78 accounts at 64 organizations.</p><p>Any organization whose MFA policy leaves gaps is exposed. On October 23, 2026, Fluency released to every instance a detection for the takeover that follows a blocked attempt. No action is needed to turn it on.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-10-23-password-spray",
            "title": "Advisory: Azure CLI Password-Spray Account Takeover",
            "summary": "Attackers are spraying passwords from old breaches at Microsoft 365 accounts through the Azure command-line client (Azure CLI), whose password-only sign-in never shows an MFA prompt. Huntress reported one campaign that made more than 81 million sign-in attempts in two weeks of June 2026 and compromised 78 accounts at 64 organizations.",
            "date_modified": "2026-10-23T21:55:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "advisory",
                "microsoft",
                "detections"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise",
            "content_html": "<p>An attacker stole the credentials of ConnectWise's multi-tenant Cloud Backup (formerly SkyKick) and Cloud Management apps. It then signed in to customers' Microsoft 365 tenants as those apps, with no user and no MFA. <a href=\"https://www.microsoft.com/en-us/security/blog/2026/10/21/storm-0940-uses-artex-agentic-ai-connectwise-supply-chain-compromise/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Microsoft attributed the attack</a> on October 21, 2026 to Storm-0940, a China state-aligned actor that automated it with an AI penetration-testing framework. Microsoft counts attempts against more than 2,250 tenants. In several cases, the actor went from first targeting to privileged access in under three hours.</p>\n<p>Any tenant that consented to one of these apps should be checked for changes the attacker made. MSPs use the apps widely, so MSSPs should check every tenant they manage. Every other tenant runs the same kind of risk through the vendor apps it trusts. On October 23, 2026, Fluency released four detections to every instance for an app that hands out directory roles or keys other apps. No action is needed to turn them on.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"the-playbook\">The playbook<a href=\"https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise#the-playbook\" class=\"hash-link\" aria-label=\"Direct link to The playbook\" title=\"Direct link to The playbook\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Password spraying first.</strong> From October 10 to 14, the actor sprayed 327 accounts at eight organizations, at up to 2,900 failed attempts a minute. Microsoft saw no successful sign-in in this phase.</li>\n<li class=\"\"><strong>Signing in as the vendor's app.</strong> On October 15, the actor signed in as the ConnectWise apps using the apps' own credentials. The apps already held admin consent in each tenant, so no user, MFA prompt or new consent was involved. <a href=\"https://www.huntress.com/blog/vendor-credential-enables-unauthorized-access\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Huntress</a> confirmed unauthorized sign-ins in 162 tenants by the next day.</li>\n<li class=\"\"><strong>Admin roles the app gives itself.</strong> In about 50 tenants that Huntress monitors, the Cloud Management apps assigned themselves directory roles, mostly Exchange Administrator. In one tenant, the Teams management app made itself Global Administrator.</li>\n<li class=\"\"><strong>Secrets planted on other apps.</strong> Within five minutes, that app ran a Python script that added client secrets to two other apps in the tenant, an MSP management app and a security vendor's app, valid until 2028. Disabling the ConnectWise apps does not remove those secrets.</li>\n<li class=\"\"><strong>Reconnaissance and secrets.</strong> Microsoft saw reconnaissance through Microsoft Graph and bulk reads of secrets from Azure Key Vault.</li>\n</ul>\n<p>ConnectWise disabled the apps on October 17.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-it-is-hard-to-catch\">Why it is hard to catch<a href=\"https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise#why-it-is-hard-to-catch\" class=\"hash-link\" aria-label=\"Direct link to Why it is hard to catch\" title=\"Direct link to Why it is hard to catch\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>No user signs in.</strong> There is no MFA prompt, no risky sign-in and no new device for user-based rules to see.</li>\n<li class=\"\"><strong>The app is already trusted.</strong> It was consented to long ago, so rules for new apps and new consents do not fire.</li>\n<li class=\"\"><strong>App sign-ins are rarely collected.</strong> Most tenants do not keep service principal sign-ins, and Graph directory reads leave no audit record. An app that only reads leaves little or no trace.</li>\n<li class=\"\"><strong>What does show is in the audit log:</strong> a service principal assigning roles, often to itself, and adding secrets to other apps.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"fluencys-new-detections\">Fluency's new detections<a href=\"https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise#fluencys-new-detections\" class=\"hash-link\" aria-label=\"Direct link to Fluency's new detections\" title=\"Direct link to Fluency's new detections\" translate=\"no\">​</a></h3>\n<table><thead><tr><th>Detection</th><th>Fires when</th><th>Alerts</th></tr></thead><tbody><tr><td><code>EntraID_App_Self_Role_Assigned</code></td><td>An app assigns any directory role to its own service principal.</td><td>Critical, every time</td></tr><tr><td><code>EntraID_App_Privileged_Role_Assigned</code></td><td>An app assigns a privileged directory role (Global, Exchange, Privileged Role or Application Administrator and the like) to a user or group, or any role to another service principal.</td><td>High confidence, first time per app in 30 days</td></tr><tr><td><code>EntraID_App_Role_Assigned</code></td><td>An app assigns a non-privileged directory role to a user or group.</td><td>Medium, first time per app in 30 days</td></tr><tr><td><code>EntraID_App_Credential_By_App</code></td><td>An app adds a secret or certificate to another app or service principal.</td><td>Medium, first time per app in 30 days</td></tr></tbody></table>\n<p>All four read the Entra ID audit logs, collected by <a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/entraid-audit-eventhubs\">Entra ID Audit via Event Hubs</a> or <a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/azuread-audit\">Microsoft Graph</a>. Access brokers and CI pipelines do some of these things as their job, so the first-time rules raise one alert per app, not one a week. They start alerting about a week after reaching a tenant. Self-assignment is never routine and alerts from the start. For activity before October 23, hunt as described below.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-we-recommend\">What we recommend<a href=\"https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise#what-we-recommend\" class=\"hash-link\" aria-label=\"Direct link to What we recommend\" title=\"Direct link to What we recommend\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"for-every-organization\">For every organization<a href=\"https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise#for-every-organization\" class=\"hash-link\" aria-label=\"Direct link to For every organization\" title=\"Direct link to For every organization\" translate=\"no\">​</a></h4>\n<ol>\n<li class=\"\">\n<p><strong>Find the ConnectWise apps by application ID, not by name.</strong> In older tenants the Cloud Management apps can appear as \"SkyKick Cloud Manager\". Huntress lists these IDs:</p>\n<table><thead><tr><th>Application</th><th>Application ID</th></tr></thead><tbody><tr><td>ConnectWise Cloud Backup</td><td><code>506e08f9-6e9a-4da4-942b-a099a03644ae</code></td></tr><tr><td>ConnectWise Cloud Management</td><td><code>2399d300-6fca-4e6a-a686-399fefe75b83</code></td></tr><tr><td>ConnectWise Cloud Management - MS Teams</td><td><code>24205314-2b89-4e07-a2a4-579e898a5640</code></td></tr><tr><td>ConnectWise Cloud Management - Exchange Online</td><td><code>b78f6a77-d4e5-46fb-87e5-d1648bd02519</code></td></tr><tr><td>ConnectWise Cloud Management - MS Graph</td><td><code>0de14c77-b9b0-4137-9360-34878a929827</code></td></tr><tr><td>ConnectWise Cloud Management - Partner Center</td><td><code>412dcf96-176d-4b3a-a1b0-4981ad66971e</code></td></tr><tr><td>ConnectWise Cloud Management - SharePoint Online</td><td><code>b2b55f5b-7758-4719-8d8f-88ae172e6bdb</code></td></tr></tbody></table>\n</li>\n<li class=\"\">\n<p><strong>Disable the apps, don't delete them,</strong> until ConnectWise confirms they are safe. Deleting an app removes its consent and the evidence of what it held.</p>\n</li>\n<li class=\"\">\n<p><strong>Look for credentials you did not add.</strong> Check the secrets and certificates on every enterprise application and app registration added since October 13, especially on management and security tools. Remove any you did not create.</p>\n</li>\n<li class=\"\">\n<p><strong>Check which directory roles vendor apps hold.</strong> Remove Global Administrator, Exchange Administrator or Privileged Authentication Administrator from any app that does not need it.</p>\n</li>\n<li class=\"\">\n<p><strong>Collect service principal sign-ins.</strong> Select the <code>ServicePrincipalSignInLogs</code> category in the Entra ID diagnostic setting that feeds <a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/entraid-audit-eventhubs#microsoft-entra-id-logs\">Entra ID Audit via Event Hubs</a>. Without it, an app signing in with a stolen credential leaves no record. The Microsoft Graph template collects interactive sign-ins only.</p>\n</li>\n<li class=\"\">\n<p><strong>Give multi-tenant apps the least privilege they need,</strong> and review the consents you have granted to vendors.</p>\n</li>\n</ol>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"for-mssp-partners\">For MSSP partners<a href=\"https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise#for-mssp-partners\" class=\"hash-link\" aria-label=\"Direct link to For MSSP partners\" title=\"Direct link to For MSSP partners\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>Check every client tenant, and your own.</strong> Include tenants where the apps were authorized but are no longer used. Check your MSP management tools too: in the tenant Huntress described in detail, one of the two apps the attacker keyed was an MSP management app.</li>\n<li class=\"\"><strong>Hunt from October 15.</strong> Look for sign-ins as the app IDs above (from October 1 where service principal sign-ins are kept), roles assigned by those apps, and credentials they added to other apps. Microsoft and ConnectWise published source IP addresses in 144.172.64.0/24, but don't limit the search to them.</li>\n<li class=\"\"><strong>Check coverage.</strong> Confirm which clients send Entra ID audit logs, and which also send service principal sign-ins. Clients that send only the Microsoft 365 unified audit log get no coverage from the new detections yet.</li>\n<li class=\"\"><strong>Act fast when it fires.</strong> For a self-assigned role, remove the role, disable the service principal and remove its credentials, unless the vendor confirms the change. Then review what the app did next: other role grants, credentials added to other apps, password resets and mail access.</li>\n</ul>\n<p>If you find a match, <a href=\"https://fluency-support.atlassian.net/servicedesk/customer/portal/1\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">raise a support ticket</a> and Fluency will help with the investigation. Each rule's full match conditions, what it does not cover yet, and triage steps are in the <a class=\"\" href=\"https://manual.ingext.io/release/2026-10-23-entra-app-identity\">Entra ID App Identity Detections</a> release notes.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"references\">References<a href=\"https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise#references\" class=\"hash-link\" aria-label=\"Direct link to References\" title=\"Direct link to References\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">Microsoft Threat Intelligence, <a href=\"https://www.microsoft.com/en-us/security/blog/2026/10/21/storm-0940-uses-artex-agentic-ai-connectwise-supply-chain-compromise/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><em>AI-driven, large-scale nation-state campaign using ARTEX enables supply chain compromise</em></a> (Storm-0940), October 21, 2026.</li>\n<li class=\"\">Huntress, <a href=\"https://www.huntress.com/blog/vendor-credential-enables-unauthorized-access\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><em>ConnectWise (SkyKick) Vendor Credentials Abused in M365 Attacks</em></a>, October 16, 2026, updated October 19, 2026.</li>\n</ul>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>An attacker stole the credentials of ConnectWise's multi-tenant Cloud Backup (formerly SkyKick) and Cloud Management apps. It then signed in to customers' Microsoft 365 tenants as those apps, with no user and no MFA. Microsoft attributed the attack on October 21, 2026 to Storm-0940, a China state-aligned actor, and counts attempts against more than 2,250 tenants.</p><p>Any tenant that consented to one of these apps should be checked for changes the attacker made, and MSSPs should check every tenant they manage. On October 23, 2026, Fluency released four detections to every instance for an app that hands out directory roles or keys other apps. No action is needed to turn them on.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-10-23-connectwise-app-compromise",
            "title": "Advisory: ConnectWise App Compromise (Storm-0940)",
            "summary": "An attacker stole the credentials of ConnectWise's multi-tenant Cloud Backup (formerly SkyKick) and Cloud Management apps. It then signed in to customers' Microsoft 365 tenants as those apps, with no user and no MFA. Microsoft attributed the attack on October 21, 2026 to Storm-0940, a China state-aligned actor that automated it with an AI penetration-testing framework. Microsoft counts attempts against more than 2,250 tenants. In several cases, the actor went from first targeting to privileged access in under three hours.",
            "date_modified": "2026-10-23T18:45:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "advisory",
                "microsoft",
                "detections"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-10-23-announcements",
            "content_html": "<p>Attackers posing as IT support are contacting employees on Microsoft Teams from throwaway Microsoft 365 tenants. They call within seconds of opening a chat and talk the employee into a remote-support session, a fake IT page or an installer. This is the campaign <a href=\"https://www.microsoft.com/en-us/security/blog/2026/09/02/impersonating-it-support-threat-actors-turn-remote-session-into-enterprise-wide-access/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Microsoft Threat Intelligence described on September 2, 2026</a>, which turns one remote session into enterprise-wide access.</p>\n<p>Any organization that allows Teams chats from outside tenants is exposed, and Teams allows them by default. MSSPs should check every tenant they manage. On October 23, 2026, Fluency released two detections for the campaign to every instance. No action is needed to turn them on.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"the-playbook\">The playbook<a href=\"https://manual.ingext.io/splash/2026-10-23-announcements#the-playbook\" class=\"hash-link\" aria-label=\"Direct link to The playbook\" title=\"Direct link to The playbook\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Throwaway tenants.</strong> Each persona sits in a newly created Microsoft 365 tenant on Microsoft's default <code>onmicrosoft.com</code> domain. Some tenants are named to look like the target's own company. A tenant takes minutes to create, so blocking known attacker domains does not keep up.</li>\n<li class=\"\"><strong>A pretext set up beforehand.</strong> Some attacks start by flooding the employee's mailbox with subscription-confirmation emails (mail bombing), so an offer from the help desk to fix it is welcome. Others go straight to the Teams chat.</li>\n<li class=\"\"><strong>Chat, then an immediate call.</strong> The attacker opens a one-to-one chat as IT, the help desk or a named colleague, and calls within seconds. The name shown on the call can differ from the account name.</li>\n<li class=\"\"><strong>Lures on cloud hosting.</strong> On the call, the employee is asked to approve Quick Assist or share their screen, open a link to a fake IT page on cloud storage, or download an installer. The installer can come from a <code>*.cloudapp.azure.com</code> host, the default address of an Azure virtual machine, which anyone can create in minutes.</li>\n<li class=\"\"><strong>A staged loader.</strong> The installer's scripts profile the machine before going further. In the intrusion Microsoft reported, the operator then ran a Node.js implant, mapped the domain and moved over WinRM to servers, domain controllers and certificate authorities. The tooling is rebuilt often, so published file hashes go out of date quickly.</li>\n</ul>\n<p><a href=\"https://www.microsoft.com/en-us/security/blog/2024/05/15/threat-actors-misusing-quick-assist-in-social-engineering-attacks-leading-to-ransomware/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Storm-1811</a>, a Black Basta ransomware actor, has used the same lure since 2024.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-it-is-hard-to-catch\">Why it is hard to catch<a href=\"https://manual.ingext.io/splash/2026-10-23-announcements#why-it-is-hard-to-catch\" class=\"hash-link\" aria-label=\"Direct link to Why it is hard to catch\" title=\"Direct link to Why it is hard to catch\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>It never touches email.</strong> The lure arrives in Teams, outside the email gateway's view.</li>\n<li class=\"\"><strong>Nothing is exploited.</strong> The employee approves the session or runs the installer.</li>\n<li class=\"\"><strong>The sign-ins look normal.</strong> The attacker works through the employee's own computer during the call, so the employee's sign-in history shows nothing unusual.</li>\n<li class=\"\"><strong>The names look ordinary.</strong> Filters based on display names miss attackers who use an ordinary name or a real colleague's name.</li>\n<li class=\"\"><strong>The records arrive late.</strong> Microsoft typically delivers Teams audit records 60 to 90 minutes after the event, and call records hours later.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"fluencys-new-detections\">Fluency's new detections<a href=\"https://manual.ingext.io/splash/2026-10-23-announcements#fluencys-new-detections\" class=\"hash-link\" aria-label=\"Direct link to Fluency's new detections\" title=\"Direct link to Fluency's new detections\" translate=\"no\">​</a></h3>\n<table><thead><tr><th>Detection</th><th>Fires when</th><th>Needs</th></tr></thead><tbody><tr><td><code>O365_Teams_OnMicrosoft_Tenant_Chat</code></td><td>A user of an outside <code>*.onmicrosoft.com</code> tenant opens a Teams chat with one of your users, whatever name they use. Guests of your own tenant, partners on their own domains and personal Teams accounts are not matched.</td><td>The Microsoft 365 audit log, including Teams (<a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/o365-activity-api\">Office365 Audit API</a> or <a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/o365-audit\">Office 365 Audit</a>)</td></tr><tr><td><code>O365_Endpoint_Download_From_Azure_CloudApp</code></td><td>A browser downloads an installer, executable, script or archive from a <code>*.cloudapp.azure.com</code> host.</td><td>Windows devices <a href=\"https://learn.microsoft.com/en-us/purview/device-onboarding-overview\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">onboarded to Microsoft Purview</a>, which record browser downloads in the same audit log</td></tr></tbody></table>\n<p>Both raise a high-confidence alert. What the installer does after it runs is left to your endpoint protection (EDR). Fluency scores and triages EDR alerts from Microsoft Defender XDR, CrowdStrike Falcon and SentinelOne alongside these.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-we-recommend\">What we recommend<a href=\"https://manual.ingext.io/splash/2026-10-23-announcements#what-we-recommend\" class=\"hash-link\" aria-label=\"Direct link to What we recommend\" title=\"Direct link to What we recommend\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"for-every-organization\">For every organization<a href=\"https://manual.ingext.io/splash/2026-10-23-announcements#for-every-organization\" class=\"hash-link\" aria-label=\"Direct link to For every organization\" title=\"Direct link to For every organization\" translate=\"no\">​</a></h4>\n<ol>\n<li class=\"\"><strong>Switch Teams external access to an allowlist.</strong> In the Teams admin center, under <strong>Users</strong> → <strong>External access</strong>, choose <strong>Allow only specific external domains</strong> and list the partners you work with. The attackers' tenants are created for the campaign, so an allowlist blocks them by default. Also turn off <strong>People in my organization can communicate with unmanaged Teams accounts</strong>, so the attackers cannot move to personal accounts. Turning external access off entirely also works, but it breaks legitimate partner chats.</li>\n<li class=\"\"><strong>Tell staff how real IT reaches them.</strong> Internal IT never makes first contact from an outside Teams account, and never asks for an unscheduled screen share or installer. A sudden flood of spam is a common setup for a fake help desk call.</li>\n<li class=\"\"><strong>Turn on the data the detections need.</strong> Send the Microsoft 365 audit log, with Teams, to Fluency. Onboard Windows devices to Microsoft Purview so browser downloads are recorded.</li>\n<li class=\"\"><strong>Treat Defender's Teams-impersonation and mail-bombing alerts as urgent.</strong> A clean sign-in history does not clear them.</li>\n<li class=\"\"><strong>Remove or block Quick Assist</strong> if IT support does not use it.</li>\n</ol>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"for-mssp-partners\">For MSSP partners<a href=\"https://manual.ingext.io/splash/2026-10-23-announcements#for-mssp-partners\" class=\"hash-link\" aria-label=\"Direct link to For MSSP partners\" title=\"Direct link to For MSSP partners\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>Hunt in every client tenant.</strong> Look for Teams chats started by <code>*.onmicrosoft.com</code> users, answered calls from them (Teams <code>CallParticipantDetail</code> records), and open Defender alerts for Teams phishing, mail bombing or hands-on-keyboard activity.</li>\n<li class=\"\"><strong>Check coverage.</strong> Confirm which clients send the Microsoft 365 audit log and Purview device data. Clients without them get no coverage from the new detections.</li>\n<li class=\"\"><strong>Act fast when either detection fires.</strong> Contact the employee right away. Check whether a call was answered and whether anything was downloaded or installed during it. If anything ran, or a link from the chat was opened, isolate the device, reset the employee's password, revoke their sessions, and review what the account touched on the network.</li>\n</ul>\n<p>If you find a match, <a href=\"https://fluency-support.atlassian.net/servicedesk/customer/portal/1\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">raise a support ticket</a> and Fluency will help with the investigation. Each rule's full match conditions, what it does not cover, and a prioritized triage checklist are in the <a class=\"\" href=\"https://manual.ingext.io/release/2026-10-23-teams-helpdesk-impersonation\">Teams Helpdesk Impersonation Detections</a> release notes.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"references\">References<a href=\"https://manual.ingext.io/splash/2026-10-23-announcements#references\" class=\"hash-link\" aria-label=\"Direct link to References\" title=\"Direct link to References\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">Microsoft Threat Intelligence, <a href=\"https://www.microsoft.com/en-us/security/blog/2026/09/02/impersonating-it-support-threat-actors-turn-remote-session-into-enterprise-wide-access/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><em>Impersonating IT support: how threat actors turn a remote session into enterprise-wide access</em></a>, September 2, 2026.</li>\n<li class=\"\">Microsoft Learn, <a href=\"https://learn.microsoft.com/en-us/microsoftteams/trusted-organizations-external-meetings-chat\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><em>Manage external meetings and chat with people and organizations using Microsoft identities</em></a> (Teams external access settings).</li>\n</ul>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Attackers posing as IT support are contacting employees on Microsoft Teams from throwaway Microsoft 365 tenants. They call within seconds of opening a chat and talk the employee into a remote-support session, a fake IT page or an installer. This is the campaign Microsoft Threat Intelligence described on September 2, 2026, which turns one remote session into enterprise-wide access.</p><p>Any organization that allows Teams chats from outside tenants is exposed, and Teams allows them by default. On October 23, 2026, Fluency released two detections for the campaign to every instance. No action is needed to turn them on.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-10-23-announcements",
            "title": "Advisory: Teams IT-Helpdesk Impersonation Campaign",
            "summary": "Attackers posing as IT support are contacting employees on Microsoft Teams from throwaway Microsoft 365 tenants. They call within seconds of opening a chat and talk the employee into a remote-support session, a fake IT page or an installer. This is the campaign Microsoft Threat Intelligence described on September 2, 2026, which turns one remote session into enterprise-wide access.",
            "date_modified": "2026-10-23T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "advisory",
                "microsoft",
                "detections"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-10-20-announcements",
            "content_html": "<p>Fluency has released new behavior rules for Microsoft Entra ID and Microsoft 365 that detect three campaigns reported by Microsoft Threat Intelligence: adversary-in-the-middle session theft, device-code phishing, and takeover of whole tenants through a registered app.</p>\n<p>The rules rolled out October 18–20, 2026 and reach every instance automatically. No configuration is needed.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-is-covered\">What is covered<a href=\"https://manual.ingext.io/splash/2026-10-20-announcements#what-is-covered\" class=\"hash-link\" aria-label=\"Direct link to What is covered\" title=\"Direct link to What is covered\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Session theft (<a href=\"https://www.microsoft.com/en-us/security/blog/2026/04/09/investigating-storm-2755-payroll-pirate-attacks-targeting-canadian-employees/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Storm-2755</a>).</strong> A fake Microsoft 365 sign-in page relays the real sign-in, so the victim completes MFA and the attacker keeps the session. Fluency flags the proxied sign-in, any later reuse of that session from a new network, the mail and file access that follows, and the oddly named inbox rules used to hide replies.</li>\n<li class=\"\"><strong>Device-code phishing (<a href=\"https://www.microsoft.com/en-us/security/blog/2025/02/13/storm-2372-conducts-device-code-phishing-campaign/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Storm-2372</a>).</strong> A fake Teams meeting invitation gets the user to enter a device code that hands the attacker their tokens. Fluency alerts when the approved session turns up from another network or country, including when a device is registered for persistence right after the approval.</li>\n<li class=\"\"><strong>Tenant takeover (<a href=\"https://www.microsoft.com/en-us/security/blog/2026/10/14/the-hidden-network-inside-the-phishing-infrastructure-ecosystem-powering-global-cybercrime/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Storm-3119</a>).</strong> With a compromised Global Administrator, the attacker sets up an app with broad permissions and a client secret of its own, which keeps working after the admin's password is reset. Fluency follows one app across registration, permissions, secrets and actions on users for 72 hours, and raises one alert per app.</li>\n</ul>\n<p>The release also adds detections for federation and federated-credential changes, elevated access, privileged role assignments, high-risk sign-ins, MFA fatigue and MFA fraud reports, per-user brute force, and correct passwords blocked by Conditional Access.</p>\n<p>In all: 19 new alerting rules, 12 context rules that add events to the timeline without raising alerts, and 5 older rules retired or removed.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-to-expect\">What to expect<a href=\"https://manual.ingext.io/splash/2026-10-20-announcements#what-to-expect\" class=\"hash-link\" aria-label=\"Direct link to What to expect\" title=\"Direct link to What to expect\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Data sources.</strong> The Entra ID rules need Entra ID sign-in and audit logs (<a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/entraid-audit-eventhubs\">Entra ID Audit via Event Hubs</a>); the Office 365 rules need the Microsoft 365 unified audit log (<a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/o365-activity-api\">Office365 Audit API</a>). An instance with only the Microsoft 365 audit log still gets the AiTM capture, mail and file activity, broker-phishing and inbox-rule detections.</li>\n<li class=\"\"><strong>Alert volume.</strong> The campaign detections are designed to be rare. The medium-severity rules may fire on planned admin work, and on users blocked by your own Conditional Access policies.</li>\n<li class=\"\"><strong>Fewer MFA-method alerts.</strong> Registering or changing an authentication method is now recorded on the user's timeline instead of raising a high alert, so a passkey rollout no longer raises one alert per user.</li>\n</ul>\n<p>The full rule list, triage guidance for each alert, and the retired rules are in the <a class=\"\" href=\"https://manual.ingext.io/release/2026-10-20-entra-id-detections\">Entra ID Detection Update</a> release notes.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Fluency has released new behavior rules for Microsoft Entra ID and Microsoft 365 that detect three campaigns reported by Microsoft Threat Intelligence: adversary-in-the-middle session theft, device-code phishing, and takeover of whole tenants through a registered app.</p><p>The rules rolled out October 18–20, 2026 and reach every instance automatically. No configuration is needed.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-10-20-announcements",
            "title": "Detections: AiTM, Device-Code Phishing and App Takeover",
            "summary": "Fluency has released new behavior rules for Microsoft Entra ID and Microsoft 365 that detect three campaigns reported by Microsoft Threat Intelligence: adversary-in-the-middle session theft, device-code phishing, and takeover of whole tenants through a registered app.",
            "date_modified": "2026-10-20T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "detections"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-10-13-announcements",
            "content_html": "<p>The v2 interface is available on every Fluency instance. To open it, add <code>/v2</code> after your instance's address. Every escalated case now comes with an AI investigation report attached.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"opening-the-v2-interface\">Opening the v2 interface<a href=\"https://manual.ingext.io/splash/2026-10-13-announcements#opening-the-v2-interface\" class=\"hash-link\" aria-label=\"Direct link to Opening the v2 interface\" title=\"Direct link to Opening the v2 interface\" translate=\"no\">​</a></h3>\n<p>Add <code>/v2</code> to the address you already use, for example <code>https://&lt;companyname&gt;.app.ingext.io/v2</code>. Sign in as usual. The current interface stays at its address, so you can switch between the two.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"ai-investigation-reports\">AI investigation reports<a href=\"https://manual.ingext.io/splash/2026-10-13-announcements#ai-investigation-reports\" class=\"hash-link\" aria-label=\"Direct link to AI investigation reports\" title=\"Direct link to AI investigation reports\" translate=\"no\">​</a></h3>\n<p>When AI triage escalates a case instead of closing it, the case now carries an AI investigation report, built from the raw events stored for the case. See <a class=\"\" href=\"https://manual.ingext.io/ai-features/workflows\">Investigation Workflows</a>.</p>\n<p>The rest of this month's changes are in the <a class=\"\" href=\"https://manual.ingext.io/release/2026-10-13-platform-update\">October 2026 Platform Update</a> release notes.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>The v2 interface is available on every Fluency instance. To open it, add <code>/v2</code> after your instance's address. Every escalated case now comes with an AI investigation report attached.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-10-13-announcements",
            "title": "The v2 Interface Is Here",
            "summary": "The v2 interface is available on every Fluency instance. To open it, add /v2 after your instance's address. Every escalated case now comes with an AI investigation report attached.",
            "date_modified": "2026-10-13T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "interface",
                "ai"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-09-16-announcements",
            "content_html": "<p>The Fluency platform now has a public status page. <a href=\"https://saasmgr.ingext.io/status\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">saasmgr.ingext.io/status</a> shows the current operational status of the platform, so you can check it directly before opening a support request.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"when-to-check-it\">When to check it<a href=\"https://manual.ingext.io/splash/2026-09-16-announcements#when-to-check-it\" class=\"hash-link\" aria-label=\"Direct link to When to check it\" title=\"Direct link to When to check it\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">Your instance is slow or not responding.</li>\n<li class=\"\">Events have stopped arriving and nothing has changed on your side.</li>\n<li class=\"\">Searches or reports are failing across the board rather than for one query.</li>\n</ul>\n<p>If the status page shows no problem and only one source has gone quiet, the delay may be on the vendor's side: Microsoft, for example, occasionally holds back its Office 365 audit feed for hours. See <a class=\"\" href=\"https://manual.ingext.io/troubleshooting/no-data-arriving\">No Data Arriving</a>.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>The Fluency platform now has a public status page. <a href=\"https://saasmgr.ingext.io/status\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">saasmgr.ingext.io/status</a> shows the current operational status of the platform, so you can check it directly before opening a support request.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-09-16-announcements",
            "title": "Platform Status Page",
            "summary": "The Fluency platform now has a public status page. saasmgr.ingext.io/status shows the current operational status of the platform, so you can check it directly before opening a support request.",
            "date_modified": "2026-09-16T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "platform"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-08-21-announcements",
            "content_html": "<p>Free trials now run on the new Fluency platform, and they are fully self-service. Sign up at <a href=\"https://trial.ingext.io/signup\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">trial.ingext.io/signup</a>, confirm your email, and your trial instance launches on its own, ready for your first data sources.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"how-it-works\">How it works<a href=\"https://manual.ingext.io/splash/2026-08-21-announcements#how-it-works\" class=\"hash-link\" aria-label=\"Direct link to How it works\" title=\"Direct link to How it works\" translate=\"no\">​</a></h3>\n<ol>\n<li class=\"\">Fill out the form at <a href=\"https://trial.ingext.io/signup\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">trial.ingext.io/signup</a>. The older address, trial.fluencyplatform.com, leads to the same signup.</li>\n<li class=\"\">Open the verification link in the email you receive.</li>\n<li class=\"\">Your instance launches automatically. Connect a source and follow the <a class=\"\" href=\"https://manual.ingext.io/getting-started/quickstart/\">Quickstart</a>.</li>\n</ol>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"trial-terms\">Trial terms<a href=\"https://manual.ingext.io/splash/2026-08-21-announcements#trial-terms\" class=\"hash-link\" aria-label=\"Direct link to Trial terms\" title=\"Direct link to Trial terms\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">A trial runs for <strong>30 days</strong>.</li>\n<li class=\"\">A trial with no activity for <strong>two consecutive days</strong> is closed automatically. If you need more time, contact Fluency before it closes.</li>\n</ul>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Free trials now run on the new Fluency platform, and they are fully self-service. Sign up at <a href=\"https://trial.ingext.io/signup\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">trial.ingext.io/signup</a>, confirm your email, and your trial instance launches on its own, ready for your first data sources.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-08-21-announcements",
            "title": "Self-Service Trials on the New Platform",
            "summary": "Free trials now run on the new Fluency platform, and they are fully self-service. Sign up at trial.ingext.io/signup, confirm your email, and your trial instance launches on its own, ready for your first data sources.",
            "date_modified": "2026-08-21T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "trial"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-06-28-announcements",
            "content_html": "<p>Fluency instances are moving to the new Fluency SaaS platform. Each instance is migrated application by application, most data sources move over without any change on your side, and your current instance stays available while you try the new one.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-move\">Why move<a href=\"https://manual.ingext.io/splash/2026-06-28-announcements#why-move\" class=\"hash-link\" aria-label=\"Direct link to Why move\" title=\"Direct link to Why move\" translate=\"no\">​</a></h3>\n<p>The new platform is the base for everything released this year: real-time search, the data lake with KQL, the new applications, MCP and AI clients, and processing that scales with your data volume. See the release notes from <a class=\"\" href=\"https://manual.ingext.io/release/v1.6.6\">v1.6.6</a> on.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"how-the-move-works\">How the move works<a href=\"https://manual.ingext.io/splash/2026-06-28-announcements#how-the-move-works\" class=\"hash-link\" aria-label=\"Direct link to How the move works\" title=\"Direct link to How the move works\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Side by side.</strong> Your new instance runs alongside the current one, at a new address of the form <code>https://&lt;companyname&gt;.app.ingext.io</code>. You can try it before switching over, and the current instance keeps working until you do.</li>\n<li class=\"\"><strong>Application by application.</strong> Integrations move one application at a time, and most move one to one, with the same settings.</li>\n<li class=\"\"><strong>Syslog keeps flowing.</strong> Devices sending syslog do not need to be reconfigured. The existing syslog endpoint keeps receiving, and the data is relayed to the new instance.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-changes-for-you\">What changes for you<a href=\"https://manual.ingext.io/splash/2026-06-28-announcements#what-changes-for-you\" class=\"hash-link\" aria-label=\"Direct link to What changes for you\" title=\"Direct link to What changes for you\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Data is filed by source.</strong> The current platform stores everything in a single <code>default</code> index. The new platform keeps most data sources in an index of their own, such as <code>Office365</code>. Saved searches, facets and reports that point at <code>default</code> may need to be updated.</li>\n<li class=\"\"><strong>Microsoft Defender needs a reinstall.</strong> The new Microsoft Defender application uses an app registration in your Azure tenant, with its own tenant ID, client ID and client secret. See <a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/ms-defender\">Microsoft Defender</a>.</li>\n<li class=\"\"><strong>Microsoft 365 setup without consent, if you prefer.</strong> The Office365, Office365 Resource Watch and Azure Directory Audit applications can use your own app registration instead of admin consent. See <a class=\"\" href=\"https://manual.ingext.io/release/v2.6.28\">Platform Update v2.6.28</a>.</li>\n<li class=\"\"><strong>History stays where it is.</strong> After you switch, the current instance stays available read-only, with the data it collected.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"next-steps\">Next steps<a href=\"https://manual.ingext.io/splash/2026-06-28-announcements#next-steps\" class=\"hash-link\" aria-label=\"Direct link to Next steps\" title=\"Direct link to Next steps\" translate=\"no\">​</a></h3>\n<p>Your Fluency representative will contact you to schedule your instance's move. Questions about timing can go to them or to Fluency support.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Fluency instances are moving to the new Fluency SaaS platform. Each instance is migrated application by application, most data sources move over without any change on your side, and your current instance stays available while you try the new one.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-06-28-announcements",
            "title": "Moving to the New Fluency Platform",
            "summary": "Fluency instances are moving to the new Fluency SaaS platform. Each instance is migrated application by application, most data sources move over without any change on your side, and your current instance stays available while you try the new one.",
            "date_modified": "2026-06-28T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "platform"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-06-09-announcements",
            "content_html": "<p>Fluency is introducing the <strong>Fluency Logic Layer™</strong>, an architecture built for AI-assisted operations. It turns security expertise (investigation procedures, behavioral analytics, reporting methods and operational workflows) into governed capabilities that AI assistants such as Claude, Codex and ChatGPT, as well as analysts, MSSPs and automation, can call directly.</p>\n<p>The Logic Layer is available now as part of the Fluency platform.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-headless\">Why headless<a href=\"https://manual.ingext.io/splash/2026-06-09-announcements#why-headless\" class=\"hash-link\" aria-label=\"Direct link to Why headless\" title=\"Direct link to Why headless\" translate=\"no\">​</a></h3>\n<p>A SIEM has always exposed its data through dashboards, searches and reports, and relied on trained analysts to turn that data into answers. AI assistants change how people work with software: more and more, security staff ask an assistant a question instead of navigating an interface. But an assistant needs more than access to data. It needs the expertise and procedures that govern how the work should be done.</p>\n<p>The Logic Layer separates that expertise from the user interface and builds it into the platform. Instead of knowing where data lives and which queries to run, you ask for an outcome:</p>\n<ul>\n<li class=\"\">What attack techniques became more prevalent this month compared with last month, and how do they map to MITRE ATT&amp;CK?</li>\n<li class=\"\">Which security controls generate the most analyst effort for the fewest meaningful outcomes?</li>\n<li class=\"\">What changes in user behavior contributed most to risk-score increases this month?</li>\n<li class=\"\">Which detection gaps are most likely to affect our ability to identify ransomware activity?</li>\n<li class=\"\">Summarize the most significant changes in our security posture over the last 90 days and explain their business impact.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"governed-not-open-ended\">Governed, not open-ended<a href=\"https://manual.ingext.io/splash/2026-06-09-announcements#governed-not-open-ended\" class=\"hash-link\" aria-label=\"Direct link to Governed, not open-ended\" title=\"Direct link to Governed, not open-ended\" translate=\"no\">​</a></h3>\n<p>The AI decides which capability to call. The Logic Layer governs how data is accessed, how the analysis is performed, and how the result is delivered, so answers stay consistent, auditable and within each user's permissions.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"built-on-your-expertise-as-well-as-ours\">Built on your expertise as well as ours<a href=\"https://manual.ingext.io/splash/2026-06-09-announcements#built-on-your-expertise-as-well-as-ours\" class=\"hash-link\" aria-label=\"Direct link to Built on your expertise as well as ours\" title=\"Direct link to Built on your expertise as well as ours\" translate=\"no\">​</a></h3>\n<p>The Logic Layer carries Fluency's own security-operations methods, and MSSPs and enterprises can add theirs: service methodologies, investigation procedures, reporting standards and customer-specific practices become reusable capabilities available to their analysts, customers and AI clients.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"getting-connected\">Getting connected<a href=\"https://manual.ingext.io/splash/2026-06-09-announcements#getting-connected\" class=\"hash-link\" aria-label=\"Direct link to Getting connected\" title=\"Direct link to Getting connected\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>MCP server.</strong> Each instance serves an MCP endpoint that Claude, Codex and other MCP clients connect to. See <a class=\"\" href=\"https://manual.ingext.io/reference/api/mcp\">MCP Server</a> for the connection steps.</li>\n<li class=\"\"><strong>Skills.</strong> Ready-made skills for common tasks are open source in the <a href=\"https://github.com/SecurityDo/ingext_skills\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">ingext_skills</a> repository.</li>\n<li class=\"\"><strong>Clients.</strong> Claude Co-Work, Claude Code and Codex are supported.</li>\n</ul>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Fluency is introducing the <strong>Fluency Logic Layer™</strong>, an architecture built for AI-assisted operations. It turns security expertise (investigation procedures, behavioral analytics, reporting methods and operational workflows) into governed capabilities that AI assistants such as Claude, Codex and ChatGPT, as well as analysts, MSSPs and automation, can call directly.</p><p>The Logic Layer is available now as part of the Fluency platform.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-06-09-announcements",
            "title": "The Fluency Logic Layer: A Headless SIEM",
            "summary": "Fluency is introducing the Fluency Logic Layer™, an architecture built for AI-assisted operations. It turns security expertise (investigation procedures, behavioral analytics, reporting methods and operational workflows) into governed capabilities that AI assistants such as Claude, Codex and ChatGPT, as well as analysts, MSSPs and automation, can call directly.",
            "date_modified": "2026-06-09T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "ai"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-05-16-announcements",
            "content_html": "<p>The FPLv2 engine now follows JavaScript strict-mode rules. An assignment to a variable that was never declared, such as <code>a = 1</code>, now fails validation. Processors from the Fluency repository are already updated. Processors written or edited on your own instance should be checked.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-to-check\">What to check<a href=\"https://manual.ingext.io/splash/2026-05-16-announcements#what-to-check\" class=\"hash-link\" aria-label=\"Direct link to What to check\" title=\"Direct link to What to check\" translate=\"no\">​</a></h3>\n<p>Open each processor you created or edited yourself on the <a class=\"\" href=\"https://manual.ingext.io/page-functionality/platform/processors\">Processors</a> page and choose <strong>Validate</strong>. If validation fails on an undeclared variable, declare it where it is first assigned:</p>\n<div class=\"language-javascript codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color:#f5f5f5;--prism-background-color:#111111\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-javascript codeBlock_bY9V thin-scrollbar\" style=\"color:#f5f5f5;background-color:#111111\"><code class=\"codeBlockLines_e6Vv\"><div class=\"token-line\" style=\"color:#f5f5f5\"><span class=\"token keyword\" style=\"color:rgb(86, 156, 214)\">let</span><span class=\"token plain\"> a </span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">=</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:rgb(181, 206, 168)\">1</span><br></div></code></pre></div></div>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-else-changed\">What else changed<a href=\"https://manual.ingext.io/splash/2026-05-16-announcements#what-else-changed\" class=\"hash-link\" aria-label=\"Direct link to What else changed\" title=\"Direct link to What else changed\" translate=\"no\">​</a></h3>\n<p>Boolean expressions now short-circuit: <code>if a &amp;&amp; a.b { ... }</code> returns false when <code>a</code> is null or undefined, where the old engine raised an error. Guards like this, common in JavaScript, now work as written.</p>\n<p>Details are in the <a class=\"\" href=\"https://manual.ingext.io/release/2026-05-16-fpl-strict-mode\">FPL Engine Update: Strict Mode</a> release notes.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>The FPLv2 engine now follows JavaScript strict-mode rules. An assignment to a variable that was never declared, such as <code>a = 1</code>, now fails validation. Processors from the Fluency repository are already updated. Processors written or edited on your own instance should be checked.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-05-16-announcements",
            "title": "FPL Strict Mode: Check Your Custom Processors",
            "summary": "The FPLv2 engine now follows JavaScript strict-mode rules. An assignment to a variable that was never declared, such as a = 1, now fails validation. Processors from the Fluency repository are already updated. Processors written or edited on your own instance should be checked.",
            "date_modified": "2026-05-16T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "fpl"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2026-02-02-announcements",
            "content_html": "<p><strong>Ingext Community Edition</strong>, free on AWS Marketplace since 2024, now also installs into your own Kubernetes cluster on AWS, Microsoft Azure or Google Cloud, from Helm charts. It collects, labels, enriches, transforms and routes telemetry before it reaches a SIEM, and stores it in a searchable data lake in your own cloud account.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"whats-new\">What's new<a href=\"https://manual.ingext.io/splash/2026-02-02-announcements#whats-new\" class=\"hash-link\" aria-label=\"Direct link to What's new\" title=\"Direct link to What's new\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Kubernetes, in three clouds.</strong> Community Edition is delivered as Helm charts and runs in Kubernetes on AWS, Azure or Google Cloud, so it deploys into the infrastructure you already run.</li>\n<li class=\"\"><strong>A data lake you own.</strong> Data lands in Parquet storage in your own cloud account, alongside routing to your SIEM.</li>\n<li class=\"\"><strong>Configured from the command line.</strong> The <code>ingext</code> CLI does most setup (sources, sinks, routers and data-lake indexes) in one command each.</li>\n</ul>\n<p>The AWS Marketplace edition remains available; see <a class=\"\" href=\"https://manual.ingext.io/splash/2024-09-04-announcements\">Ingext Community Edition on AWS Marketplace</a>.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-it-does\">What it does<a href=\"https://manual.ingext.io/splash/2026-02-02-announcements#what-it-does\" class=\"hash-link\" aria-label=\"Direct link to What it does\" title=\"Direct link to What it does\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Collect and transform in motion.</strong> Events are labeled, enriched and normalized as they arrive, not after they land.</li>\n<li class=\"\"><strong>Route by value.</strong> High-volume telemetry goes to low-cost Parquet storage in your data lake; the events that matter go on to your SIEM, through Splunk HEC or the Elasticsearch bulk API.</li>\n<li class=\"\"><strong>Search everything in one place.</strong> Recent and archived data are searched from the same interface, with no rehydration or re-indexing.</li>\n<li class=\"\"><strong>Keep your data.</strong> The platform, the data lake and the data stay in your cloud account.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"sources-and-sinks\">Sources and sinks<a href=\"https://manual.ingext.io/splash/2026-02-02-announcements#sources-and-sinks\" class=\"hash-link\" aria-label=\"Direct link to Sources and sinks\" title=\"Direct link to Sources and sinks\" translate=\"no\">​</a></h3>\n<p>Out of the box, Community Edition reads AWS CloudTrail, AWS CloudWatch log groups, Amazon EKS logs, Azure Event Hubs, Office 365 and Google Workspace audit events, and HEC input, with sources and sinks on Amazon Kinesis, Amazon S3, Azure Blob Storage and Google Cloud Storage.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"small-to-start\">Small to start<a href=\"https://manual.ingext.io/splash/2026-02-02-announcements#small-to-start\" class=\"hash-link\" aria-label=\"Direct link to Small to start\" title=\"Direct link to Small to start\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">The whole stack runs on a single small node.</li>\n<li class=\"\">Installation and configuration are done from the Ingext cloud shell, a Docker container with the <code>ingext</code> CLI and the AWS, Azure and Google Cloud tools already installed.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"getting-started\">Getting started<a href=\"https://manual.ingext.io/splash/2026-02-02-announcements#getting-started\" class=\"hash-link\" aria-label=\"Direct link to Getting started\" title=\"Direct link to Getting started\" translate=\"no\">​</a></h3>\n<ol>\n<li class=\"\">Clone the <a href=\"https://github.com/SecurityDo/ingext-helm-charts\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">ingext-helm-charts</a> repository.</li>\n<li class=\"\">From the repository's root folder, start the cloud shell with <code>./ingext-shell.sh</code>.</li>\n<li class=\"\">In the shell, change to the lakehouse folder for your cloud, then run the preflight check and the installer.</li>\n<li class=\"\">Follow the repository's configuration guide to connect your first sources.</li>\n</ol>\n<p>The latest changes are in the <a class=\"\" href=\"https://manual.ingext.io/release/ingext-v1.1.0\">Ingext Community Edition v1.1.0</a> release notes.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p><strong>Ingext Community Edition</strong>, free on AWS Marketplace since 2024, now also installs into your own Kubernetes cluster on AWS, Microsoft Azure or Google Cloud, from Helm charts. It collects, labels, enriches, transforms and routes telemetry before it reaches a SIEM, and stores it in a searchable data lake in your own cloud account.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2026-02-02-announcements",
            "title": "Ingext Community Edition Now Runs on Kubernetes, in Any Cloud",
            "summary": "Ingext Community Edition, free on AWS Marketplace since 2024, now also installs into your own Kubernetes cluster on AWS, Microsoft Azure or Google Cloud, from Helm charts. It collects, labels, enriches, transforms and routes telemetry before it reaches a SIEM, and stores it in a searchable data lake in your own cloud account.",
            "date_modified": "2026-02-02T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "ingext"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2025-11-14-announcements",
            "content_html": "<p>On November 13, 2025, Microsoft briefly changed the user ID in the Office 365 audit feed to all lowercase. For users whose usernames contain capital letters, Fluency saw the lowercase name as a new user, so <code>O365_AzureAD_UserLoggedIn</code> and other rules that key on the field raised false positives.</p>\n<p>No action is needed. Alerts raised during that window for this reason can be closed as false positives.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-happened\">What happened<a href=\"https://manual.ingext.io/splash/2025-11-14-announcements#what-happened\" class=\"hash-link\" aria-label=\"Direct link to What happened\" title=\"Direct link to What happened\" translate=\"no\">​</a></h3>\n<p>The Office 365 Management Activity API, which feeds the <a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/o365-activity-api\">Office 365 audit</a> integration, carries the user's UPN in <code>UserId</code>, stored in Fluency as <code>@fields.UserId</code>. For a period on November 13, Microsoft sent that field in lowercase. Fluency builds each user's behavior baseline on this value, so <code>Jane.Doe@example.com</code> and <code>jane.doe@example.com</code> were treated as two different users, and the lowercase one was flagged as first seen.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"how-to-recognise-it\">How to recognise it<a href=\"https://manual.ingext.io/splash/2025-11-14-announcements#how-to-recognise-it\" class=\"hash-link\" aria-label=\"Direct link to How to recognise it\" title=\"Direct link to How to recognise it\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">The alert is a new-user or first-seen alert, such as <code>O365_AzureAD_UserLoggedIn</code>, for a user who has worked in the tenant for a long time.</li>\n<li class=\"\">The username in the alert is all lowercase, while the user's earlier events show capital letters.</li>\n<li class=\"\">The sign-in itself (IP address, ISP, location and device) matches the user's normal pattern.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"update-january-15-2026\">Update: January 15, 2026<a href=\"https://manual.ingext.io/splash/2025-11-14-announcements#update-january-15-2026\" class=\"hash-link\" aria-label=\"Direct link to Update: January 15, 2026\" title=\"Direct link to Update: January 15, 2026\" translate=\"no\">​</a></h3>\n<p>Microsoft made the same change again on January 15, 2026, and normalized <code>UserId</code> to lowercase. Besides first-seen user alerts, the change set off impossible-travel alerts in some tenants. The guidance is the same: alerts that match the pattern above can be closed as false positives.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>On November 13, 2025, Microsoft briefly changed the user ID in the Office 365 audit feed to all lowercase. For users whose usernames contain capital letters, Fluency saw the lowercase name as a new user, so <code>O365_AzureAD_UserLoggedIn</code> and other rules that key on the field raised false positives.</p><p>No action is needed. Alerts raised during that window for this reason can be closed as false positives.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2025-11-14-announcements",
            "title": "Advisory: Microsoft 365 User ID Case Change",
            "summary": "On November 13, 2025, Microsoft briefly changed the user ID in the Office 365 audit feed to all lowercase. For users whose usernames contain capital letters, Fluency saw the lowercase name as a new user, so O365AzureADUserLoggedIn and other rules that key on the field raised false positives.",
            "date_modified": "2025-11-14T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "advisory",
                "microsoft"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2025-07-10-announcements",
            "content_html": "<p><strong>AI Assist</strong> reviews each behavior alert before an analyst has to. It gathers the evidence around the alert, decides whether it needs action, explains its reasoning, and closes the alerts that do not, so analysts spend their time on the ones that do.</p>\n<p>After a beta with early customers, AI Assist is rolling out to all instances in stages.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"how-it-works\">How it works<a href=\"https://manual.ingext.io/splash/2025-07-10-announcements#how-it-works\" class=\"hash-link\" aria-label=\"Direct link to How it works\" title=\"Direct link to How it works\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>An investigation per alert.</strong> A lead agent receives the alert and hands focused questions to specialist agents (about the user's sign-in history, the account's age and role, the devices and networks involved), then reaches a verdict from everything they return.</li>\n<li class=\"\"><strong>Workflows for the common cases.</strong> Dedicated workflows handle the alerts that make up most of the volume: new-user sign-ins, authentication-method changes, and sign-ins from a new ISP or location, including impossible travel.</li>\n<li class=\"\"><strong>A decision you can read.</strong> The verdict and the reasoning behind it appear with the alert and in the alert email.</li>\n<li class=\"\"><strong>Closed by AI.</strong> An alert AI Assist judges not actionable is closed and marked as closed by AI. Actionable alerts are escalated as before.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-you-need\">What you need<a href=\"https://manual.ingext.io/splash/2025-07-10-announcements#what-you-need\" class=\"hash-link\" aria-label=\"Direct link to What you need\" title=\"Direct link to What you need\" translate=\"no\">​</a></h3>\n<p>AI Assist works on the data your instance already collects. Instances with the <a class=\"\" href=\"https://manual.ingext.io/integrations/microsoft/o365-resourcewatch\">Office 365 Resource Watch</a> application installed give it user records (roles, account creation dates) that make its decisions on Microsoft 365 alerts more precise.</p>\n<p>See <a class=\"\" href=\"https://manual.ingext.io/ai-features/workflows\">Investigation Workflows</a>.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p><strong>AI Assist</strong> reviews each behavior alert before an analyst has to. It gathers the evidence around the alert, decides whether it needs action, explains its reasoning, and closes the alerts that do not, so analysts spend their time on the ones that do.</p><p>After a beta with early customers, AI Assist is rolling out to all instances in stages.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2025-07-10-announcements",
            "title": "AI Assist: AI Triage on Every Alert",
            "summary": "AI Assist reviews each behavior alert before an analyst has to. It gathers the evidence around the alert, decides whether it needs action, explains its reasoning, and closes the alerts that do not, so analysts spend their time on the ones that do.",
            "date_modified": "2025-07-10T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "ai"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2025-06-03-announcements",
            "content_html": "<p>A redesigned Fluency interface is rolling out, site by site. Each site moves to a new address in its own region, and your existing login carries over. Partners can show their own logo and background.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-to-expect\">What to expect<a href=\"https://manual.ingext.io/splash/2025-06-03-announcements#what-to-expect\" class=\"hash-link\" aria-label=\"Direct link to What to expect\" title=\"Direct link to What to expect\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>A new address.</strong> A site on the new interface is reached at <code>https://&lt;company&gt;.&lt;region&gt;.fluencyplatform.com</code>, and an MSSP's manager site at <code>https://&lt;provider&gt;.mssp.fluencyplatform.com</code>. Each site's new address is provided when the site moves.</li>\n<li class=\"\"><strong>The same login.</strong> Sign in with your existing account and sign-in method.</li>\n<li class=\"\"><strong>Redesigned SIEM pages.</strong> Overview Summary, Behavior Summary and Event Search are rebuilt.</li>\n<li class=\"\"><strong>Your brand.</strong> An MSSP can white-label its sites with its own logo and login background.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"timing\">Timing<a href=\"https://manual.ingext.io/splash/2025-06-03-announcements#timing\" class=\"hash-link\" aria-label=\"Direct link to Timing\" title=\"Direct link to Timing\" translate=\"no\">​</a></h3>\n<p>Sites move in stages over the coming months. The current interface keeps working until your site has moved. If you would like your site moved sooner, contact your Fluency representative.</p>\n<p>See <a class=\"\" href=\"https://manual.ingext.io/getting-started/web-portal/navigation\">Navigation</a> for a tour of the interface.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>A redesigned Fluency interface is rolling out, site by site. Each site moves to a new address in its own region, and your existing login carries over. Partners can show their own logo and background.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2025-06-03-announcements",
            "title": "A New Fluency Interface",
            "summary": "A redesigned Fluency interface is rolling out, site by site. Each site moves to a new address in its own region, and your existing login carries over. Partners can show their own logo and background.",
            "date_modified": "2025-06-03T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "interface"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2025-05-15-announcements",
            "content_html": "<p>The Fluency Programming Language (FPL) now accepts JavaScript (ES6). Parsers and reports written in JavaScript, including the code AI assistants generate, run in Fluency without being translated by hand.</p>\n<p>The update rolls out to all instances the weekend of May 17–18, 2025. Existing FPL code runs unchanged.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-it-matters\">Why it matters<a href=\"https://manual.ingext.io/splash/2025-05-15-announcements#why-it-matters\" class=\"hash-link\" aria-label=\"Direct link to Why it matters\" title=\"Direct link to Why it matters\" translate=\"no\">​</a></h3>\n<p>Writing a parser used to mean learning FPL's own syntax. AI assistants already write good JavaScript: given a sample log line and the fields you want, they produce a working parser in minutes. With ES6 support, that code can be pasted into a processor, validated and deployed as it is.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-is-supported\">What is supported<a href=\"https://manual.ingext.io/splash/2025-05-15-announcements#what-is-supported\" class=\"hash-link\" aria-label=\"Direct link to What is supported\" title=\"Direct link to What is supported\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">JavaScript control flow: <code>else if</code>, <code>switch</code>, <code>while</code>, <code>do…while</code>, <code>for…in</code> and <code>for…of</code>.</li>\n<li class=\"\">Template strings, the spread operator, destructuring, <code>===</code> and optional semicolons.</li>\n<li class=\"\">JavaScript regular-expression literals, and the common <code>String</code>, <code>Array</code>, <code>Math</code>, <code>JSON</code> and <code>Object</code> methods.</li>\n</ul>\n<p>A few features are not available yet, such as the regular-expression global flag (<code>/g</code>). The full list, with the limitations, is in the <a class=\"\" href=\"https://manual.ingext.io/release/v8.250515\">FPL JavaScript (ES6) Support</a> release notes. See also the <a class=\"\" href=\"https://manual.ingext.io/reference/fpl/\">FPL reference</a>.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>The Fluency Programming Language (FPL) now accepts JavaScript (ES6). Parsers and reports written in JavaScript, including the code AI assistants generate, run in Fluency without being translated by hand.</p><p>The update rolls out to all instances the weekend of May 17–18, 2025. Existing FPL code runs unchanged.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2025-05-15-announcements",
            "title": "FPL Now Runs JavaScript",
            "summary": "The Fluency Programming Language (FPL) now accepts JavaScript (ES6). Parsers and reports written in JavaScript, including the code AI assistants generate, run in Fluency without being translated by hand.",
            "date_modified": "2025-05-15T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "fpl"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2025-04-02-announcements",
            "content_html": "<p>Fluency is launching <strong>Replay</strong>, a scenario-based training and testing platform. Replay plays real, sanitized security telemetry into a Fluency instance, so analysts, and AI, can work a realistic incident from first alert to response in a controlled, repeatable environment.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"how-it-works\">How it works<a href=\"https://manual.ingext.io/splash/2025-04-02-announcements#how-it-works\" class=\"hash-link\" aria-label=\"Direct link to How it works\" title=\"Direct link to How it works\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Scenarios from real telemetry.</strong> Each scenario replays recorded events as raw telemetry, with real log formats and their inconsistencies, through the same pipeline a live instance uses.</li>\n<li class=\"\"><strong>A guided workbook.</strong> A scenario is worked through in stages that mirror a SOC: <strong>Replay</strong>, <strong>Tier 1: Validation</strong>, <strong>Tier 2: Scoping</strong>, <strong>Tier 3: Response</strong> and a closing <strong>Hotwash</strong>. Each stage shows the workbook's guidance for that step.</li>\n<li class=\"\"><strong>A one-step receiving setup.</strong> The <strong>Fluency Replay</strong> application sets up the HEC endpoint, router and pipes that receive a scenario on your instance, and gives you the HEC URL and token to enter in Replay.</li>\n<li class=\"\"><strong>Sign in with Microsoft.</strong> Replay uses your Microsoft account.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-it-is-for\">What it is for<a href=\"https://manual.ingext.io/splash/2025-04-02-announcements#what-it-is-for\" class=\"hash-link\" aria-label=\"Direct link to What it is for\" title=\"Direct link to What it is for\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Training</strong> analysts on realistic events, tier by tier.</li>\n<li class=\"\"><strong>Testing</strong> detection rules, enrichment and response logic against a known scenario.</li>\n<li class=\"\"><strong>Evaluating AI</strong> triage against consistent, labeled cases.</li>\n<li class=\"\"><strong>Cyber range exercises</strong> built on real telemetry.</li>\n</ul>\n<p>See <a class=\"\" href=\"https://manual.ingext.io/replay/\">Replay</a> to get started.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Fluency is launching <strong>Replay</strong>, a scenario-based training and testing platform. Replay plays real, sanitized security telemetry into a Fluency instance, so analysts, and AI, can work a realistic incident from first alert to response in a controlled, repeatable environment.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2025-04-02-announcements",
            "title": "Introducing Replay",
            "summary": "Fluency is launching Replay, a scenario-based training and testing platform. Replay plays real, sanitized security telemetry into a Fluency instance, so analysts, and AI, can work a realistic incident from first alert to response in a controlled, repeatable environment.",
            "date_modified": "2025-04-02T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "replay"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2025-03-18-announcements",
            "content_html": "<p>Anyone can now start a Fluency trial on their own. Sign up at <a href=\"https://trial.fluencyplatform.com/trial\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">trial.fluencyplatform.com/trial</a> to get your own Fluency instance, connect your data sources, and see your first behavior alerts.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"how-it-works\">How it works<a href=\"https://manual.ingext.io/splash/2025-03-18-announcements#how-it-works\" class=\"hash-link\" aria-label=\"Direct link to How it works\" title=\"Direct link to How it works\" translate=\"no\">​</a></h3>\n<ol>\n<li class=\"\">Sign up at <a href=\"https://trial.fluencyplatform.com/trial\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">trial.fluencyplatform.com/trial</a>.</li>\n<li class=\"\">Complete your profile, and your trial instance is created.</li>\n<li class=\"\">Connect your first data sources.</li>\n</ol>\n<p>The <a class=\"\" href=\"https://manual.ingext.io/getting-started/quickstart/\">Quickstart</a> walks through the first steps.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"for-mssp-partners\">For MSSP partners<a href=\"https://manual.ingext.io/splash/2025-03-18-announcements#for-mssp-partners\" class=\"hash-link\" aria-label=\"Direct link to For MSSP partners\" title=\"Direct link to For MSSP partners\" translate=\"no\">​</a></h3>\n<p>Partners can offer trials to their own customers through a signup page of their own. Contact your Fluency representative to set one up.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Anyone can now start a Fluency trial on their own. Sign up at <a href=\"https://trial.fluencyplatform.com/trial\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">trial.fluencyplatform.com/trial</a> to get your own Fluency instance, connect your data sources, and see your first behavior alerts.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2025-03-18-announcements",
            "title": "Start a Free Fluency Trial",
            "summary": "Anyone can now start a Fluency trial on their own. Sign up at trial.fluencyplatform.com/trial to get your own Fluency instance, connect your data sources, and see your first behavior alerts.",
            "date_modified": "2025-03-18T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "trial"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2025-01-15-announcements",
            "content_html": "<p>Fluency is introducing <strong>Applications</strong>: a new way to add data sources. Instead of assembling an integration, a router, pipes and processors by hand, you pick an application template and Fluency installs every component the source needs.</p>\n<p>Applications roll out to all instances the weekend of January 18–19, 2025. Existing integrations keep working as they are.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-changes\">What changes<a href=\"https://manual.ingext.io/splash/2025-01-15-announcements#what-changes\" class=\"hash-link\" aria-label=\"Direct link to What changes\" title=\"Direct link to What changes\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>Install a source in one step.</strong> An application template lists every component a data source needs and sets them up together.</li>\n<li class=\"\"><strong>Each source runs on its own.</strong> Every installed application has its own processing pipeline and its own metrics, and applications share nothing, so a problem with one source does not affect another.</li>\n<li class=\"\"><strong>A new Applications page</strong> shows the templates available to install and the application instances already installed on your site.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"available-at-launch\">Available at launch<a href=\"https://manual.ingext.io/splash/2025-01-15-announcements#available-at-launch\" class=\"hash-link\" aria-label=\"Direct link to Available at launch\" title=\"Direct link to Available at launch\" translate=\"no\">​</a></h3>\n<p>Templates for 26 sources, including Office 365, Google Workspace, Okta, Duo, Salesforce, AWS CloudTrail, AWS Security Lake, Azure Event Hubs, SentinelOne, CrowdStrike Falcon, Microsoft Defender ATP, Mimecast, Proofpoint, Fortinet FortiGate and Palo Alto Networks, plus the Fluency Collector and Cloud Syslog.</p>\n<p>The full list is in the <a class=\"\" href=\"https://manual.ingext.io/release/v8.250115\">Fluency Applications</a> release notes, and the page itself is described in <a class=\"\" href=\"https://manual.ingext.io/page-functionality/platform/applications/\">Applications</a>.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>Fluency is introducing <strong>Applications</strong>: a new way to add data sources. Instead of assembling an integration, a router, pipes and processors by hand, you pick an application template and Fluency installs every component the source needs.</p><p>Applications roll out to all instances the weekend of January 18–19, 2025. Existing integrations keep working as they are.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2025-01-15-announcements",
            "title": "Introducing Fluency Applications",
            "summary": "Fluency is introducing Applications: a new way to add data sources. Instead of assembling an integration, a router, pipes and processors by hand, you pick an application template and Fluency installs every component the source needs.",
            "date_modified": "2025-01-15T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "applications"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2024-10-31-announcements",
            "content_html": "<p>If your Google Workspace integration shows administrator events but no user activity (no sign-ins, no Drive or Gmail events), the cause is an access setting in your Google Admin console, not in Fluency. Google sends only administrator events to a third-party app whose access is left at <strong>Limited</strong>.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-it-happens\">Why it happens<a href=\"https://manual.ingext.io/splash/2024-10-31-announcements#why-it-happens\" class=\"hash-link\" aria-label=\"Direct link to Why it happens\" title=\"Direct link to Why it happens\" translate=\"no\">​</a></h3>\n<p>Approving the Fluency app's OAuth request is not, on its own, enough for Google to release user activity. Google Workspace also applies the app-access setting the administrator chooses for the app, and while that setting is <strong>Limited</strong>, the Reports API returns administrator events only. Google enforces this whether or not anything changed on the Fluency side.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-to-do\">What to do<a href=\"https://manual.ingext.io/splash/2024-10-31-announcements#what-to-do\" class=\"hash-link\" aria-label=\"Direct link to What to do\" title=\"Direct link to What to do\" translate=\"no\">​</a></h3>\n<ol>\n<li class=\"\">In the Google Admin console, go to <strong>Security → Access and data control → API controls → Manage Third-Party App Access</strong>.</li>\n<li class=\"\">Find the Fluency app.</li>\n<li class=\"\">Change its access from <strong>Limited</strong> to <strong>Trusted</strong>, so it receives the two scopes it requested:<!-- -->\n<ul>\n<li class=\"\"><code>https://www.googleapis.com/auth/admin.reports.audit.readonly</code></li>\n<li class=\"\"><code>https://www.googleapis.com/auth/admin.reports.usage.readonly</code></li>\n</ul>\n</li>\n</ol>\n<p>User activity, including successful and failed sign-ins, then flows on the next poll. See <a class=\"\" href=\"https://manual.ingext.io/integrations/business-software/google-workspace\">Google Workspace</a>.</p>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p>If your Google Workspace integration shows administrator events but no user activity (no sign-ins, no Drive or Gmail events), the cause is an access setting in your Google Admin console, not in Fluency. Google sends only administrator events to a third-party app whose access is left at <strong>Limited</strong>.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2024-10-31-announcements",
            "title": "Advisory: Google Workspace User Activity",
            "summary": "If your Google Workspace integration shows administrator events but no user activity (no sign-ins, no Drive or Gmail events), the cause is an access setting in your Google Admin console, not in Fluency. Google sends only administrator events to a third-party app whose access is left at Limited.",
            "date_modified": "2024-10-31T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "advisory",
                "google"
            ]
        },
        {
            "id": "https://manual.ingext.io/splash/2024-09-04-announcements",
            "content_html": "<p><strong>Ingext Community Edition</strong> is now available free on <a href=\"https://aws.amazon.com/marketplace/pp/prodview-s5vfmat6j67u4\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">AWS Marketplace</a>. It runs Ingext in your own AWS account, so you can collect, transform and route your data without it leaving your control. Deployment takes about five minutes.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"deploy-in-three-steps\">Deploy in three steps<a href=\"https://manual.ingext.io/splash/2024-09-04-announcements#deploy-in-three-steps\" class=\"hash-link\" aria-label=\"Direct link to Deploy in three steps\" title=\"Direct link to Deploy in three steps\" translate=\"no\">​</a></h3>\n<ol>\n<li class=\"\">Subscribe to <strong>Ingext Community Edition</strong> on AWS Marketplace.</li>\n<li class=\"\">Run the CloudFormation stack, which creates the instance and the S3 bucket access Ingext needs.</li>\n<li class=\"\">Sign in to the Ingext interface.</li>\n</ol>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-it-includes\">What it includes<a href=\"https://manual.ingext.io/splash/2024-09-04-announcements#what-it-includes\" class=\"hash-link\" aria-label=\"Direct link to What it includes\" title=\"Direct link to What it includes\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">HEC and syslog input, and every AWS data source the platform supports.</li>\n<li class=\"\">The full Ingext pipeline: parsing, filtering and transforming, aggregation from logs to metrics, and persistent queuing.</li>\n<li class=\"\">A single-node deployment. Enterprise adds high availability, autoscaling and 24×7 support.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"community-and-enterprise\">Community and Enterprise<a href=\"https://manual.ingext.io/splash/2024-09-04-announcements#community-and-enterprise\" class=\"hash-link\" aria-label=\"Direct link to Community and Enterprise\" title=\"Direct link to Community and Enterprise\" translate=\"no\">​</a></h3>\n<table><thead><tr><th></th><th>Community</th><th>Enterprise</th></tr></thead><tbody><tr><td>Deployment</td><td>Single node</td><td>No limit</td></tr><tr><td>Parsing, filtering and transforming</td><td>Yes</td><td>Yes</td></tr><tr><td>Aggregation (logs to metrics)</td><td>Yes</td><td>Yes</td></tr><tr><td>Persistent queuing</td><td>Yes</td><td>Yes</td></tr><tr><td>High availability</td><td>No</td><td>Yes</td></tr><tr><td>Autoscaling</td><td>No</td><td>Yes</td></tr><tr><td>Support</td><td>Community</td><td>24×7</td></tr></tbody></table>\n<details class=\"details_lb9f alert alert--info details_b_Ee\" data-collapsed=\"true\"><summary>Splash Summary</summary><div><div class=\"collapsibleContent_i85q\"><p><img decoding=\"async\" loading=\"lazy\" src=\"https://manual.ingext.io/assets/images/RedLogo-f2abbc2d9208a0dd99451318867d4e1e.jpg\" width=\"1625\" height=\"1538\" class=\"img_ev3q\"></p><p><strong>Ingext Community Edition</strong> is now available free on <a href=\"https://aws.amazon.com/marketplace/pp/prodview-s5vfmat6j67u4\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">AWS Marketplace</a>. It runs Ingext in your own AWS account, so you can collect, transform and route your data without it leaving your control. Deployment takes about five minutes.</p></div></div></details>",
            "url": "https://manual.ingext.io/splash/2024-09-04-announcements",
            "title": "Ingext Community Edition on AWS Marketplace",
            "summary": "Ingext Community Edition is now available free on AWS Marketplace. It runs Ingext in your own AWS account, so you can collect, transform and route your data without it leaving your control. Deployment takes about five minutes.",
            "date_modified": "2024-09-04T00:00:00.000Z",
            "author": {
                "name": "Support",
                "url": "https://github.com/SecurityDo"
            },
            "tags": [
                "ingext",
                "aws"
            ]
        }
    ]
}