M Marlow Security & Trust

Security & Trust

Built so your ServiceNow data never has to leave your control.

Marlow is a Chrome side-panel assistant for ServiceNow. This page is written for the security team that has to approve it. Every statement below describes how the shipped product behaves today; where something is planned rather than shipped, it is marked roadmap.

Last updated: 2026-10-14 · Extension 2.24.1 · Questions: security@instancegenie.ai

Summary for reviewers

Architecture & data flow

There are three parties: the extension in the user's Chrome, your ServiceNow instance(s), and the InstanceGenie backend (Cloudflare Workers, D1, KV, Vectorize, Workers AI). The model provider is a fourth, chosen by you.

FlowFrom → ToWhat travelsNotes
Reading / writing recordsExtension → your ServiceNowTable/Attachment API callsUses the signed-in browser session (X-UserToken). Never leaves the browser–instance path. ACLs apply.
Asking the modelExtension → InstanceGenie → model providerPrompt, tool results the user's session returned, tool schemasRelayed in transit; not persisted by InstanceGenie. Provider is your choice; see sub-processors.
Usage accountingInstanceGenie (internal)Tenant, user, model, token counts, tool names, costDrives budgets and the admin dashboard. No prompt text.
Outcome telemetryExtension → InstanceGenieOutcome class, duration, tool names, record identifiers touchedNo field values. Lets admins see what Marlow achieved.
Episodic memory (opt-in)Extension → InstanceGenieA validated summary of a conversationSummarised on Workers AI, embedded in Vectorize, private to the user, instance-scoped, 30/60/90-day retention. Org can disable; users can view and delete their own.
Gap / bug reportsExtension → InstanceGenie → GitHub (private)User-written report, redactedsys_ids, record numbers, emails and hostnames are stripped before storage.
ConversationsStays in the browser—chrome.storage.local + IndexedDB in the user's profile. Deleted by the user; never uploaded.
Shared filesBrowser → your ServiceNow (upload); Browser → model (if shown)Original file; a downscaled/partial copy to the model only when the user shares it in chatKept in the browser for the conversation (7-day cap). InstanceGenie never stores the file.

What we store — and what we don't

Stored on InstanceGenie

  • Account: email, display name, Google OAuth subject, role, tenant
  • Org policy: model locks, memory/judge/persona/sub-agent policy, Production guard, budgets, allowed hosts, branding
  • Encrypted AI-provider keys (org and, if allowed, per-user)
  • Usage events (tokens, model, tool names, cost) and outcome events (class, identifiers, durations)
  • Episodic-memory summaries (only if enabled)
  • Audit log of admin actions
  • Redacted gap reports and their resolution status
  • Org skills / quick actions your admins publish

Never stored on InstanceGenie

  • Conversation transcripts or prompts
  • ServiceNow record contents returned by tools
  • ServiceNow credentials or session tokens
  • Files the user shares or attaches
  • Screenshots
  • Provider keys in plaintext (they are never returned to any client after save)

Chrome permissions, one by one

Install-time permissions are the minimum Marlow needs to exist as a side panel on ServiceNow tabs. Host access is limited to *.service-now.com, *.servicenow.com, instancegenie.ai, and GitHub (read-only: your organization's published skills, ServiceNow's public product-documentation mirror, and ServiceNow's SDK documentation site servicenow.github.io; no instance data is sent to any of them). Three powerful permissions are optional: not granted at install, requested in a user gesture when the feature is used, explained in plain language first, and revocable in Marlow Settings → Permissions or chrome://extensions. debugger cannot be optional in Chrome, so it is excluded from the standard build entirely and offered only in a Developer Edition (same code, one extra install-time permission, distinct extension name).

PermissionTypeUsed forWhat it cannot do
sidePanelinstallRender Marlow as a Chrome side panel—
storage, unlimitedStorageinstallKeep settings and conversations in the local browser profileNo sync to Google; no access to other extensions' data
activeTab, tabs, scriptinginstallDetect the ServiceNow tab, read page context (table/sys_id/form), run the content script on ServiceNow hosts onlyContent scripts are declared for ServiceNow hosts only; no injection into other sites
identityinstallGoogle sign-in to InstanceGenie via launchWebAuthFlowNo access to the user's Google data beyond email/profile
alarms, contextMenusinstallUser-created scheduled jobs; right-click "Ask Marlow"Jobs run only while Chrome is open; nothing server-side
debuggerDeveloper Edition onlyBrowser Test Mode: drive the active ServiceNow tab (click/type/inspect) during a user-started test. Absent from the standard build.Only the tab the user starts the test on; Chrome shows a persistent banner while attached; detaches at session end. Standard-build users who invoke it get a clear "install Developer Edition" message.
desktopCaptureoptionalChrome's native screen-share picker for a single screenshotNo recording; nothing captured until the user picks; one frame
downloadsoptionalSave exports via Chrome's download managerFalls back to an in-page download link if not granted
notificationsoptionalOS notification when a scheduled job completesSilently skipped if not granted

Enterprise Chrome policy: Marlow can be force-installed or allowlisted by extension ID with the base permission set; the optional set can be left to users or blocked by policy without breaking core functionality. Organizations that do not want debugger anywhere simply do not distribute the Developer Edition. No remote code: all JavaScript ships inside the extension package (pdf.js is vendored, pinned, and loaded from the extension's own origin).

ServiceNow access

Keys & encryption

Tenant isolation & roles

AI safety controls

Marlow is an agent: the model chooses tools. The controls below bound what that can do.

RiskControl
Model makes a wrong or unintended changeHuman confirmation on every write; before→after diff; Production guard; undo. Optional second-model reviewer ("judge") compares the request, current record and proposed write and returns approve / revise / reject — can be required org-wide.
Prompt injection via record data, scripts, web pages or skillsInstance data and web content are presented to the model as data, labelled untrusted; skills containing exfiltration or "ignore instructions" patterns are refused; the reviewer and worker prompts carry explicit injection guards; the reviewer's output is a fixed enum and cannot instruct Marlow.
Autonomous sub-agents over-reachWorkers are read-only unless the org enables writes and the parent grants specific tools; the server intersects every worker tool list with policy; workers cannot delegate, cannot ask the user, and have step/time budgets.
Reviewer or worker widens its own powersTool allowlists are enforced server-side per hop; the client refuses out-of-list tools too.
Data exfiltration to the webWeb research is off until an admin enables it; outbound queries are scrubbed of sys_ids, record numbers, emails and hostnames; Marlow refuses to fetch your own instance over the public web and refuses internal/loopback addresses.
Runaway costOrg/user budgets, rate limits, context compaction, worker step caps.
Hallucinated capabilityThe tool loader reports unknown tools as unknown rather than "loaded"; tool schemas and executors are audited for parity in CI.

Model providers

Prompts go to the provider you configure. InstanceGenie does not train on your data and does not retain prompts. Each provider's own retention terms apply to the data they receive; many offer zero-data-retention for API traffic, and Marlow honours ZDR flags where a gateway exposes them. Two platform-side functions — conversation-memory summarisation and context compaction — run first on Cloudflare Workers AI (Llama, in Cloudflare's network) and fall back to your provider only if that is unavailable. Full list with regions and ZDR status: sub-processors.

Operations & supply chain

Compliance roadmap

ItemStatus
Public security, privacy and sub-processor pages; security.txtshipped
Optional Chrome permissions requested at point of useshipped
Dependency audit + SBOM in CIshipped
Retire Basic-auth cross-instance relay (session-only)in progress
Audit-log export (CSV / SIEM webhook)roadmap
SAML / OIDC SSO, SCIMroadmap — Enterprise
Third-party penetration testroadmap
SOC 2 Type Iroadmap
Completed SIG-Lite / CAIQ questionnaire on requestavailable — email security@

Vulnerability disclosure

If you believe you have found a security issue, email security@instancegenie.ai. We acknowledge reports within 2 business days and aim to resolve confirmed critical issues within 7 days. Please do not test against other customers' tenants. Our machine-readable policy is at /.well-known/security.txt.