OpenBI Docs Buy

Privacy

An agent connected to OpenBI Studio runs at its own provider. What it reads through the studio’s tools goes to that provider; your credentials never do. For personal data, OpenBI can anonymize it as it loads, so no agent ever sees it.

Where your agent runs

The agent is the app you connect: the Claude app, Claude Code, Cursor, ChatGPT’s desktop app or another. Its AI model runs at its provider, Anthropic, OpenAI or another, under your agreement, or your company’s, with that provider.

OpenBI Studio’s side stays on your computer. Its agent endpoint listens on this computer only and answers only clients with the studio’s key (see The key). The studio hands what the agent asks for to the agent’s app on this computer. Norway Analytics hosts nothing of it.

What goes to the agent’s provider

Whatever the agent reads through the studio’s tools becomes part of its conversation, and so goes to its provider:

  • the model’s structure: tables, columns, relationships, measures and their OAX, queries and their M or SQL, descriptions, roles and their members;
  • data: the rows of the queries it runs, previews of sources and queries, a visual’s data it exports, results of notebooks;
  • pictures of report pages and of the studio, and the pages of PDFs it checks;
  • the project’s activity, when it reads it;
  • and everything you type into the agent’s chat, as you type it.

The studio’s own tools return the model’s data as it is. To keep personal data from an agent, keep it out of the model (below).

What never goes

  • Passwords, keys and tokens of data sources. No tool takes or returns them. When a source needs a sign-in, you type it into the studio’s own window; the agent learns only whether you signed in. The studio keeps sign-ins in your account’s credential store, sealed for your user (on Windows with DPAPI, on a Mac with the keychain), never in the project, its versions or its logs. The agent can see that a source has a sign-in, and as which user, never the secret.
  • The studio’s agent key is not in the settings of apps connected with the buttons: the connector reads it from the studio itself.

Keep personal data out of the agent’s sight

Anonymize as it loads

In Transform data, Anonymize replaces what is personal in a column before it reaches the model (see Transform data). It writes an M step with Privacy.Anonymize, an OpenBI function:

// free text: names, e-mail addresses, numbers replaced
Privacy.Anonymize(Source, {"Comment", "Notes"}, [Detector = "presidio", Operator = "replace"])
// a whole column, hashed: the same value gives the same hash, so joins still work
Privacy.Anonymize(Source, {"Email"}, [Whole = true, Operator = "hash", Salt = "..."])

It finds names, e-mail addresses, phone numbers, Norwegian national identity numbers, account, IBAN and card numbers (checked by their check digits) and IP addresses, by OpenBI’s own detectors or Microsoft Presidio’s, and replaces, redacts, masks or hashes them. It runs as part of the table’s SQL, so a refresh never brings the personal data into the model, and every tool that reads the model, the agent’s included, sees only the anonymized values. When Presidio is asked for and doesn’t answer, the load fails: nothing personal goes through un-anonymized.

Pseudonymized in Customer Service

The Customer Service plug-in hands an agent your customers’ e-mail. With its privacy on, the personal data in each message becomes numbered tokens before the agent sees it, <PERSON_1> or <EMAIL_1>, the same value always the same token. The agent writes with the tokens, and the real values go back into its draft on your computer; the table of tokens lives only in the studio’s memory. This covers what Customer Service hands the agent: the queue, the mail, your instructions and its lookups in the model. See Example: Customer Service. A plug-in of your own can use the same pseudonymizer (see What a plug-in can do).

Customer Service’s setup has three choices: Personal - no anonymization, Company - anonymize personal data (OpenBI’s own detectors), and Company - with Microsoft Presidio, Presidio’s analyzer running on your company’s server, at the address you give.

Your organization’s policy

IT can make privacy the rule: on Windows under HKLM or HKCU\SOFTWARE\Policies\NorwayAnalytics\OpenBI, on a Mac with the same names in a configuration profile for no.norwayanalytics.openbi.studio:

RequirePrivacy
At least OpenBI’s own detectors, always: on Windows a DWORD of 1, on a Mac true (or 1) in the profile.
PresidioUrl
Presidio’s analyzer, always, at this address (PresidioLanguage: its language).

The setting then shows as set by your organization, and can’t be turned off in the studio.

The built-in agent of Customer Service

OpenBI Studio has no AI model of its own: the agent is the one you connect. The one exception is the Customer Service plug-in, which can draft replies with OpenBI’s built-in agent: Claude, through Anthropic’s API, with an Anthropic API key of yours that Anthropic bills. The key is kept on this computer, encrypted for your Windows account. With privacy on, what you write to it and what its tools answer are pseudonymized as for any agent.

What stays on this computer

  • The activity: a file a day for each project, in your account’s local application data (on Windows %LOCALAPPDATA%\OpenBI\Activity), outside the project’s versions.
  • Sign-ins to data sources, in your account’s credential store.
  • Plug-ins’ settings and secrets, beside the studio’s settings, never in a project.

Last updated · OpenBI Studio 0.3.75