Download and Install Datatoc
Install Datatoc
- Close any open Datatoc window.
- Open
Datatoc-Setup-<version>.exe. - If Windows asks whether the application can make changes, verify that the publisher and source match the package supplied by your organization, then continue.
- Choose the installation option allowed by your organization.
- Choose the installation directory if the installer permits it.
- Select Install.
- Start Datatoc from the Start menu or desktop shortcut.
Installation Options
Only for me
Installs Datatoc for the current Windows account. Normally does not require administrator access. The simplest option for a personal computer or self-service installation.
Anyone who uses this computer
Makes Datatoc available to all Windows accounts. Usually requires administrator approval and installs under C:\Program Files. Appropriate for shared or centrally managed computers.
First Start
When Datatoc opens, it should show:
- The Datatoc name and logo.
- The tagline Ask, Analyze, Reuse.
- A Sign in with Microsoft button.
Users should not be asked to paste Azure endpoints, Foundry settings, or configuration JSON. If a configuration upload screen appears, contact your administrator — the installer may be outdated.
Update Datatoc
- Close Datatoc.
- Run the newer installer from the same trusted source.
- Complete the installation using the same user scope as the existing installation.
- Open Datatoc and sign in.
Uninstall Datatoc
- Close Datatoc.
- Open Windows Settings › Apps › Installed apps.
- Find Datatoc and select Uninstall.
Enterprise Distribution
IT teams can distribute the installer through Microsoft Intune, Configuration Manager, a company software portal, or another Windows software-management system. Before broad rollout, validate:
- Installer signature and checksum.
- Current Datatoc Cloud URL embedded in the package.
- Microsoft sign-in from a standard user account.
- Both current-user and all-users installation modes.
- Upgrade and uninstall behavior.
- Endpoint protection and application-control policy compatibility.
Sign-in and First Use
Sign In
- Open Datatoc.
- Select Sign in with Microsoft.
- Choose the work, school, or invited guest account that has Datatoc access.
- Complete any multifactor authentication required by your organization.
- Allow the sign-in window to return control to Datatoc.
Create or Open a Workspace
After sign-in, create a workspace in a folder where your Windows account has read and write access. A workspace can contain datasets, metadata, saved scripts, cleaning outputs, visualizations, and conversation records.
Recommended locations: a user Documents folder or an organization-approved synchronized folder. Do not place a workspace under the Datatoc installation directory or another read-only system location.
What Stays Local
- Imported source files retained by the workspace.
- Workspace and project metadata.
- Saved scripts and reusable analysis assets.
- Cleaning outputs, generated plots, and exported results.
What Uses Datatoc Cloud
When you request an AI or code-execution operation, Datatoc sends the data and context required to the organization-configured Datatoc Cloud service. The service authenticates the request and uses Microsoft Foundry and Azure Container Apps Dynamic Sessions.
Account Not Accepted
Your administrator must assign your Microsoft account to an allowed Datatoc app role. External Microsoft accounts must be invited to the organization's tenant first.
Connection Problems
- Check the computer's internet connection.
- Select Try again in Datatoc.
- Close and reopen Datatoc if the message continues.
- Ask your administrator whether other users are affected.
- Send the approximate time and a screenshot to support, without including confidential dataset content.
Architecture and Deployment Model
Overview
Datatoc is a desktop application that connects to a cloud API that you or your IT team deploys and controls on your Azure subscription. No Datatoc infrastructure handles your data — everything runs within your Azure tenant.
Components
🖥️ Datatoc Desktop
Electron-based Windows application. Signs in using Microsoft identity. Sends data to your Datatoc Cloud API for analysis. Stores workspace files locally.
☁️ Datatoc Cloud API
Python FastAPI service running in Azure Container Apps. Validates tokens, orchestrates Foundry conversations, and manages Dynamic Sessions.
🤖 Microsoft Foundry
Azure AI Foundry hosts the language model used for analysis generation. The Cloud API accesses it using a managed identity — no keys in the desktop app.
Key Principles
- The desktop installer contains one public Datatoc Cloud API URL.
- Microsoft Entra ID authenticates users and supplies Datatoc app roles in access tokens.
- The Cloud API uses a managed identity to reach Foundry and Dynamic Sessions.
- No Azure service key is placed in the desktop application.
- Each authenticated operation receives a separate request context and Dynamic Sessions sandbox.
- Workspace files, saved scripts, and outputs remain in the local folder selected by the user.
Deployment Flow
- Create Azure prerequisites (subscription, resource group, naming)
- Configure Microsoft Entra ID (app registrations, roles)
- Create Microsoft Foundry project and model deployment
- Configure Azure Container Apps Dynamic Sessions pool
- Build and push Datatoc Cloud image to Azure Container Registry
- Deploy Datatoc Cloud API to Container Apps
- Package desktop with the Cloud API URL and distribute to users
Security, Privacy, and User Isolation
What Is Local (Never Leaves the Device)
- All workspace files and folders selected by the user.
- Saved scripts and Standard Analysis templates.
- Generated charts, cleaning outputs, and exported reports.
- Workspace and project metadata (dataset names, column lists, settings).
What Is Sent to Datatoc Cloud
- The specific data sample or dataset submitted for an AI or code-execution operation.
- The user's natural-language prompt for that operation.
- A Microsoft Entra access token — used only to authenticate the request.
Authentication & Authorisation
- Sign-in is handled by Microsoft identity (Entra ID) — Datatoc never sees your password.
- Role-based access control (RBAC) is enforced at the Cloud API using app roles.
- Each request is independently authenticated — there are no long-lived sessions in the Cloud API.
Isolation
- Each code-execution request runs in a dedicated Azure Container Apps Dynamic Sessions sandbox.
- Sandboxes are destroyed after the request completes.
- No sandbox can access another user's data or sandbox.
Customer Responsibilities
- Configuring the Azure region, network controls, and retention settings.
- Managing user access via Entra app roles.
- Data residency decisions — where your Azure Container Apps and Foundry are deployed.
- Backups and data-protection policy for local workspace folders.
Azure Prerequisites and Naming
Before You Begin
- An Azure subscription with sufficient quota in the selected region.
- Permissions to create resource groups, register apps in Entra, and create Container Apps, Foundry projects, and Container Registries.
- A supported region for Azure AI Foundry and Azure Container Apps Dynamic Sessions.
Resource Group
Create a dedicated resource group for all Datatoc resources. Using a single resource group makes it easy to manage costs, apply policy, and clean up resources.
$RESOURCE_GROUP = "rg-datatoc-prod"
$LOCATION = "eastus"
az group create `
--name $RESOURCE_GROUP `
--location $LOCATION
Naming Conventions
| Resource | Suggested Name Pattern | Notes |
|---|---|---|
| Resource Group | rg-datatoc-<env> | prod, staging, dev |
| Container App Environment | cae-datatoc-<env> | Required for Container Apps |
| Container App | ca-datatoc-<env> | Hosts the Cloud API |
| Container Registry | acrdatatoc<env> | No hyphens; lowercase |
| Foundry Project | datatoc-foundry-<env> | Must be in supported region |
| Dynamic Sessions Pool | datatoc-sessions-<env> | PythonLTS interpreter |
Microsoft Entra ID Configuration
App Registrations Required
Datatoc Cloud API
Exposes app roles (Datatoc.User, Datatoc.Admin). Used by the backend to validate tokens. Backed by a managed identity in production.
Datatoc Desktop
A public client registration. Uses device code or system browser flow. Requests access to the Cloud API scope. No client secret.
Configure the Cloud API Registration
- Open Microsoft Entra admin center › App registrations › New registration.
- Name it
Datatoc Cloud API. - Set supported account types to Accounts in this organizational directory only.
- Under Expose an API, set an Application ID URI (e.g.
api://<client-id>). - Add a scope named
access_as_user(admin and user consent). - Under App roles, add
Datatoc.UserandDatatoc.Admin.
Configure the Desktop Registration
- Create a second app registration named
Datatoc Desktop. - Under Authentication › Mobile and desktop applications, add
http://localhostas a redirect URI. - Set Allow public client flows to Yes.
- Under API permissions, add the
access_as_userscope from the Cloud API registration.
Assign Users
Go to Enterprise applications › Datatoc Cloud API › Users and groups and assign users or groups to the Datatoc.User or Datatoc.Admin role.
Foundry Project and Model
Create a Foundry Project
- Open Azure AI Foundry in the Azure Portal.
- Create a new Hub in a supported region (e.g. East US, Sweden Central).
- Under the hub, create a new Project for Datatoc.
Deploy a Model
- In your Foundry project, go to Models + endpoints › Deploy model.
- Select a model (e.g.
gpt-4oorgpt-4o-mini). - Note the deployment name — this is the value you set in the Cloud API environment variable
DATATOC_MODEL_DEPLOYMENT_NAME. - Review token quota and adjust as needed for your team size.
Grant Managed Identity Access
The Datatoc Cloud API uses a managed identity to call Foundry. Assign the Foundry User role on the Foundry project to the Container App's managed identity.
Owner or Contributor alone may not grant Foundry data-plane agent access. You must explicitly assign the Foundry User role at the project scope.
Azure Container Apps Dynamic Sessions
What Dynamic Sessions Does
Dynamic Sessions provides isolated, ephemeral Python execution sandboxes for each Datatoc analysis request. Each sandbox is destroyed after the request completes, ensuring complete isolation between users and requests.
Create a Session Pool
- In the Azure Portal, go to your Container Apps Environment.
- Select Dynamic sessions › Session pools.
- Create a new pool with PythonLTS code interpreter.
- Configure maximum concurrent sessions based on your team size.
- Note the management endpoint — this is the value for
DATATOC_ACA_SESSION_POOL_ENDPOINT.
Grant Managed Identity Access
Assign the Azure ContainerApps Session Executor role on the session pool to the Datatoc Cloud API's managed identity.
Container Registry and Cloud Image
Create Azure Container Registry
$ACR_NAME = "acrdatatocdprod"
$RESOURCE_GROUP = "rg-datatoc-prod"
az acr create `
--name $ACR_NAME `
--resource-group $RESOURCE_GROUP `
--sku Basic `
--admin-enabled false
Build and Push the Cloud Image
# Log in to ACR
az acr login --name $ACR_NAME
# Build and push image using ACR Tasks (no local Docker required)
az acr build `
--registry $ACR_NAME `
--image datatoc-cloud:latest `
--file Dockerfile.cloud .
Grant Container App Pull Access
Assign the AcrPull role on the registry to the Datatoc Cloud API's managed identity. This allows the Container App to pull images without storing credentials.
Datatoc Cloud API Deployment
Required Environment Variables
| Variable | Description |
|---|---|
DATATOC_ENTERPRISE_TENANT_ID | Your Azure tenant ID |
DATATOC_ENTERPRISE_CLIENT_ID | Cloud API app registration client ID |
DATATOC_ENTERPRISE_REQUIRED_ROLES | Comma-separated roles e.g. Datatoc.User,Datatoc.Admin |
DATATOC_MODEL_DEPLOYMENT_NAME | Your Foundry model deployment name |
DATATOC_FOUNDRY_PROJECT_ENDPOINT | Foundry project endpoint URL |
DATATOC_ACA_SESSION_POOL_ENDPOINT | Dynamic Sessions pool management endpoint |
Deploy the Container App
az containerapp create `
--name ca-datatoc-prod `
--resource-group $RESOURCE_GROUP `
--environment $CONTAINER_APP_ENV `
--image "$ACR_NAME.azurecr.io/datatoc-cloud:latest" `
--target-port 8000 `
--ingress external `
--min-replicas 1 `
--max-replicas 10 `
--system-assigned
Verify Deployment
$APP_URL = "https://<your-container-app-fqdn>"
# Health check
Invoke-RestMethod "$APP_URL/api/v1/health"
# Bootstrap (returns sign-in config)
Invoke-RestMethod "$APP_URL/api/v1/bootstrap" | Format-List
Desktop Connection and Installer Packaging
Embed the Cloud API URL
The Datatoc desktop installer contains one public Datatoc Cloud API URL. Update the build configuration to point to your Container App FQDN before building the installer:
DATATOC_CLOUD_URL=https://<your-container-app-fqdn>
Build the Installer
- Run the backend build to bundle Python dependencies.
- Run the Electron builder to produce the
.exeinstaller. - Validate the installer signature and checksum before distribution.
- Test installation in both current-user and all-users modes.
- Verify Microsoft sign-in from a standard user account.
Validate Before Rollout
- Sign in from a standard user account (not administrator).
- Create a workspace and run a simple analysis.
- Confirm workspace files are written to the expected user-writable location.
- Confirm the Cloud API returns correct health and bootstrap responses.
User Access and Day-Two Operations
Adding a New User
- Go to Entra admin center › Enterprise applications › Datatoc Cloud API.
- Select Users and groups › Add user/group.
- Select the user or group and assign the
Datatoc.UserorDatatoc.Adminrole. - The user must sign out and sign in again to receive the updated token.
Removing a User
- Remove the user from the enterprise application role assignment in Entra.
- Optionally revoke active sessions via Entra's session management.
External Users (Guests)
- Invite the external user to your Entra tenant.
- Have them accept the invitation.
- Assign them to the appropriate Datatoc app role.
Monitoring
- Use Container Apps Log Analytics for API request logs and errors.
- Monitor Foundry usage and quotas in the Azure AI Foundry portal.
- Set up Azure Monitor alerts for Container App replica scaling and error rates.
Troubleshooting
Welcome Screen Shows a Connection Message
For Users
- Confirm internet access.
- Select Try again.
- Close and reopen Datatoc.
- Contact your administrator if other users are affected.
For Administrators
$APP_URL = "https://<datatoc-cloud-api-hostname>"
Invoke-RestMethod "$APP_URL/api/v1/health"
Invoke-RestMethod "$APP_URL/api/v1/bootstrap" | Format-List
Microsoft Sign-in Does Not Open
- Confirm the installer was created from the current desktop source.
- Confirm
dist/preload/preload.cjsis packaged. - Confirm the BrowserWindow loads
preload.cjs. - Rebuild and reinstall the corrected package.
Account Does Not Exist in Tenant (AADSTS)
- Confirm the user selected the correct work or school account.
- Invite external accounts as a guest if required.
- Confirm the invitation was accepted.
- Assign the user or group to the Datatoc Cloud API enterprise application role.
- Sign out and sign in again.
Redirect URI Mismatch (AADSTS50011)
- Open Entra admin center › App registrations › Datatoc Desktop › Authentication.
- Under Mobile and desktop applications, add the redirect URI:
http://localhost. - Set Allow public client flows to Yes.
- Save, wait a few minutes, and try again.
User Signs In but Receives 403
- Confirm the user has
Datatoc.UserorDatatoc.Adminassigned on the Cloud API enterprise application. - Confirm
DATATOC_ENTERPRISE_REQUIRED_ROLESuses the same exact values. - Sign out and sign in after role assignment to get a new token.
Cloud API Returns 404
- Use the stable Container App application FQDN, not a revision URL.
- Confirm external ingress is enabled and target port is
8000. - Confirm the active revision uses the Datatoc cloud image.
Foundry Permission Error
An error mentioning Microsoft.CognitiveServices/accounts/AIServices/agents/write means the Cloud API managed identity lacks the required Foundry data-plane permission. Assign Foundry User to that identity on the Foundry project.
ConnectionResetError During AI Operation
Usually means a remote service, proxy, or firewall closed the connection. It can succeed on retry when the cause is temporary. Check Container App, Foundry, and session-pool logs. Review proxy idle timeouts.
Information to Collect for Support
- Datatoc version and installer filename.
- Windows version and installation mode (current-user or all-users).
- Approximate time and timezone of the failure.
- Friendly UI message and screenshot.
- Cloud API health and bootstrap result (with tenant values redacted).
- Container App revision and image tag.
- Relevant service-log exception and request correlation ID.
Local Development and Release Validation
Local Development Setup
- Clone the Datatoc repository.
- Set up the isolated backend build environment with the pinned
requirements-backend.txt. - Configure environment variables (tenant ID, client ID, Foundry endpoint, session pool endpoint).
- Run the Cloud API locally:
uvicorn app.main:app --reload --port 8000. - Point the desktop app to
http://localhost:8000for local testing.
Release Validation Checklist
- Run all unit and integration tests.
- Build and test the installer in current-user mode.
- Build and test the installer in all-users mode.
- Verify Microsoft sign-in from a standard account.
- Create a workspace and run a basic analysis end-to-end.
- Verify workspace files are written to the correct user-writable path.
- Run the upgrade flow from the previous release.
- Run the uninstall flow and verify workspace folders are not deleted.
Common Development Issues
"type": "module". The CommonJS preload must retain the .cjs extension. A CommonJS preload emitted as .js can be interpreted as ESM and fail before exposing the desktop bridge.