Run Collector¶
The AI Assets Collector collects AI assets from your data sources, builds an inventory, and records relationships between them for AI Governance.
Start AI Assets Collector Using Runtime on K8s¶
A Trust3 Runtime is a lightweight deployment plane that runs inside your own EKS/AKS cluster. It lets Trust3 deploy and manage collectors — such as the AI Assets Collector — directly in your environment, without requiring inbound connectivity from the internet into your cluster.
When you create a Runtime, Trust3 installs a small agent in your cluster (the Runtime Plane) that maintains an outbound-only connection to the Trust3 control plane. You then add collectors to that Runtime through the Trust3 dashboard, and Trust3 deploys them as pods in your cluster automatically.
This approach keeps your data local — the AI Assets Collector reads from your Databricks workspace, Microsoft Copilot Studio, or Azure Foundry environment and sends only governance metadata to Trust3, never raw data.
When to use this path: Use the Runtime on K8s path if your Databricks workspace, Microsoft Copilot Studio, or Azure Foundry environment is network-restricted, if your security policy requires all compute to run inside your own cluster, or if you prefer Kubernetes-native deployment and lifecycle management over running Docker locally.
If you are evaluating Trust3 or running a quick local test, use the Docker tab instead — it requires no Kubernetes cluster.
Follow this workflow to run the AI Assets Collector in your EKS or AKS cluster using a Trust3 Runtime.
Note
If your security policy requires runtime images from your own Azure Container Registry instead of the Trust3 image hub, complete Using Custom ACR with Runtime before creating the runtime. That guide uses Advanced Config and image mirroring; the steps below use Basic Config with the default Trust3 registry.
Create a Runtime¶
- In the Trust3 dashboard, navigate to Settings > Runtime.
- Click Create New.
-
On the Create Runtime Plane page, configure the runtime:
Setting Value Deployment Type Partially Managed (D2P) — the Trust3 control plane is cloud-hosted; the data plane runs in your own cluster Configuration Mode Basic Config Cloud Provider AWS or Azure Region Select the region where your cluster is deployed Runtime Name Auto-generated — you can rename it, this will be your namespace in kubernetes Auto Upgrade Set to true — the runtime plane updates automatically when new releases are available -
Select the AWS Prerequisites or Azure Prerequisites checkbox to confirm all prerequisites are met. Click View full details if you need to complete any missing prerequisites before continuing.
- Click Generate.
Deploy the Runtime Plane¶
The next screen shows two commands to run from your terminal:
- curl or wget command — downloads the Trust3 runtime installation script to your machine.
- Helm command — deploys the Trust3 Runtime Plane components into your Kubernetes cluster and connects them to Trust3Cloud. Run this exactly as shown — it includes a pre-populated token for your tenant.
Run the commands in order. When the status on screen changes to Connection Established, click Done.
Tip
If the connection does not establish within 5 minutes, verify that your Kubernetes cluster has outbound internet access and that the namespace Helm targets exists in your cluster.
Add AI Assets Collector¶
- Go to Settings > Runtime and click the running runtime to open its detail view.
- Select the Collectors tab.
- Click Add New.
-
Choose a tile:
Tile Use it for Set it up Databricks, Azure AI Foundry, Azure Copilot Studio, Azure M365 One Databricks workspace, or one service of one Microsoft tenant, as a connection. Add one per workspace or service; Shared connections run together in one pod. Add a connection Custom agents Traces from agents you build yourself Collect Traces (OTLP) AI Assets Collector (Legacy) One standalone collector covering Databricks and all of Azure in one form, as before connections existed The Legacy collector form Runtime plane release
The connection and Custom agents tiles need a runtime plane on release 9.2.45.3 or later. On an older runtime plane, use AI Assets Collector (Legacy), or upgrade the runtime plane first.
Add a connection¶
- On the BASIC INFO tab, enter a Name and an optional Description.
- Choose the Deployment Mode: Shared (the default) runs the connection on a shared host, which runs up to 10 connections in one pod; Dedicated gives it its own pod. The mode cannot change after create.
- For Shared, choose the Shared host: Default, a named host, or + Create new shared host.
- Click Continue, and fill in the connection's own section — Databricks or Azure — with the fields described under Databricks and Azure below. A Microsoft connection reads only its own service, so its Azure section has that service's monitoring switch only — see What each Microsoft connection needs. For a secret, you can pick a saved credential instead of typing it.
- Click Save.
A Shared connection's scanner interval, trace classification and Kubernetes settings are on its shared host, under the runtime plane's System Applications tab. Each workspace and each tenant service can have only one connection on a runtime plane. Read Collector Connections for the rules, pausing and deleting, and limits.
The Legacy collector form¶
The AI Assets Collector (Legacy) tile creates one collector with its own pod and every section in one form. Collectors created before connections existed work the same way.
- In Basic Info, enter:
- Name — a descriptive name for this collector instance
- Description (optional)
- Click Continue.
-
In Datasource Configuration, provide your configuration values.
Collector Configs — each platform has its own discovery switch, and turning it on reveals that platform's credentials and its monitoring switch. Turn on only the platforms you are connecting; everything starts off on a new collector.
See Discovery and monitoring for how the two switches relate. In short: monitoring collects traces from assets that discovery found, so a platform with discovery off collects nothing.
Databricks
Setting Property Default Purpose Enable Databricks discovery collector.databricks.discovery.enabledfalseDiscovers MLflow agents, Genie spaces and serving endpoints. Turn on to reveal the fields below. Databricks host databricks.host— Workspace URL, e.g. https://your-workspace.cloud.databricks.comDatabricks token databricks.token— Personal access token. Only for the personal-access-token method — see the note below. Databricks environment name databricks.environment-name— Optional label stored on ingested assets. Use dev,stage,prodortest.Enable Databricks trace monitoring collector.databricks.monitoring.enabledtrueCollects traces from the discovered Databricks assets Enable model usage collection collector.databricks.model-usage.enabledtrueQueries system.ai_gateway.usageandsystem.serving.endpoint_usageSQL warehouse HTTP path collector.databricks.sql-warehouse-http-path— Required when model usage is on. Only shown while that toggle is on. See Model usage traces. Authentication method
The Databricks section also has an Authentication method dropdown: Personal access token (default), Service principal (OAuth M2M), Entra ID service principal (Azure only), or Entra ID workload identity (Azure AKS only). Selecting one shows only that method's credential fields and hides the others, so the token field above applies to the first option only.
Env equivalent for the Docker path:
DATABRICKS_AUTH_TYPE—pat,service_principal,azure_service_principalorazure_workload_identity.Each method has its own setup page — see Choose an authentication method.
Azure
On a Legacy collector, one section covers all three Azure flavors — Azure AI Foundry, Microsoft Copilot Studio, and M365 Copilot. A single service principal covers all three; the collector attempts each and logs the ones it cannot reach, so there is no per-flavor switch. Scope what is collected by controlling what you grant the service principal. To scan one service only, use a connection tile instead.
Setting Property Default Purpose Enable Azure discovery collector.azure.discovery.enabledfalseDiscovers Foundry, Copilot Studio and M365 Copilot assets. Turn on to reveal the fields below. Azure tenant ID azure.tenant-id— Directory (tenant) ID Azure client ID azure.client-id— Application (client) ID of the service principal Azure client secret azure.client-secret— Client secret Enable Azure trace monitoring collector.azure.monitoring.enabledtrueCollects M365 Copilot / Defender interactions and Foundry agent traces M365 and Defender monitoring needs Graph permissions
Trace monitoring for M365 Copilot and Defender requires
ThreatHunting.Read.All,AiEnterpriseInteraction.Read.AllandAuditLogsQuery.Read.Allon the service principal. Without them each fetch cycle logs a 403 for that flavor — Azure AI Foundry monitoring is unaffected and keeps working. See Azure M365 Agents prerequisites.Custom Agents
For agents you build yourself — LangChain, LangGraph, or any custom framework. This section has no discovery switch, because you publish those agents to the inventory from your own code using the Trust3 collector SDK. See Monitoring custom agents for the full setup — Publish inventory for the SDK half, and Monitoring for the trace half, including how to make traces link to your assets.
Trust3 reads OTLP trace files from an S3 bucket. Either your existing Langfuse or OTel collector already writes them there, or you can have Trust3 run a trace ingester for you — see the Trace Ingester section below.
Setting Property Default Purpose Enable Langfuse / OTEL Trace Monitoring collector.otel_langfuse.monitoring.enabledfalseReads OTLP traces Langfuse exported to S3 S3 Bucket Name otel_langfuse.s3_bucket— Bucket holding the trace files S3 Key Prefix otel_langfuse.s3_prefix— Prefix under which they are written; blank scans the whole bucket S3 region otel_langfuse.s3_regionus-east-1AWS region of the bucket The collector reads the bucket using the runtime plane's IAM role — there are no access-key fields. Make sure that role has read access to the bucket.
Note
Amazon S3 only. Traces must be written as uncompressed JSON; compressed objects are skipped.
Trace Ingester (EKS planes only)
Optional. Turn this on and Trust3 runs a trace ingester as a sidecar on the AI Assets Collector pod, exposing an authenticated OTLP endpoint that your agents push to. The sidecar writes the traces to your S3 bucket, and the Custom Agents section above then reads them back from that same bucket. It is an OpenTelemetry collector internally, named Trace Ingester to keep it distinct from the
otel-collectorservice that carries Trust3's own platform telemetry.Use this if you do not already have a Langfuse or OTel collector exporting to S3. If you do, leave this off and just point the Custom Agents section at your existing bucket.
Setting Property Default Purpose Enable trace ingester traceIngesterEnabledfalseAdds the trace ingester sidecar, a Service and an Ingress S3 bucket name trace_ingester.s3.bucket— Bucket that receives the traces. Overrides the plane's AWS S3 Bucket Name; blank uses that plane-level value. S3 path prefix trace_ingester.s3.prefix— Blank uses trust3/agent/traces/tenant=<tenant>/plane=<plane>. Give each plane a different prefix if they share a bucket.Trace ingester username trace_ingester.security.basic_auth_usernametrust3agentBasic Auth user your agents send as Trace ingester password trace_ingester.security.basic_auth_password— Basic Auth password. On an AWS Secrets Manager plane, enter the key name inside the secret rather than the password itself. This requires an EKS runtime plane created with Advanced Config, with storage, Ingress and DNS configured — AWS S3 Bucket Name, ACM ARN, ALB Subnet IDs and Domain Name / R53 Hosted Zone Name — plus an IAM Role ARN with
s3:*on the bucket. See What custom agent monitoring needs. If any is missing the deploy still succeeds but no endpoint is created, and Runtime Manager logs a warning naming what is missing.Traces written by this sidecar go only to your S3 bucket — there is no Privacera Cloud destination in that pipeline. Turning the toggle off removes the sidecar, Service and Ingress.
Trace classification
Applies to every monitoring provider — there is no per-platform classification switch.
Setting Property Default Purpose Enable trace classification collector.trace.classification.enabledfalseClassifies collected traces with an LLM to derive categories and policy signals Classifier LLM provider collector.classifier.llm.provider— The LLM vendor Classifier LLM model collector.classifier.llm.model— e.g. claude-haiku-4-5for Anthropic,gpt-4o-minifor OpenAIClassifier LLM API key classifier.llm.api-key— API key for that provider When classification is on, all three fields are required. If any is missing the collector logs a warning and leaves traces unclassified — it does not fail to start, and trace collection continues.
General
Setting Property Default Purpose Scanner interval (minutes) collector.scanner.interval-minutes15Minutes between full collector pipeline runs Kubernetes Configs — update resource values to match your cluster configuration.
-
Click Save. Trust3 creates the AI Assets Collector pod in your runtime namespace.
Configuration is applied at pod startup
Saving configuration rolls the collector pod. The collector reads its configuration once at startup, so a change is not live until that restart completes — expect a minute or two.
Upgrading an existing collector
When an existing collector is upgraded to a release with per-platform switches, your current behavior is preserved: platforms you had credentials for stay discovered, monitoring follows your previous trace setting, and no credential is changed. You do not need to re-enter anything. Review the switches afterwards if you want to narrow what is collected.
Note
The collector runs on a 15-minute schedule. Your first assets will appear in the Trust3 portal under AI Assets within 15 minutes of the pod starting.
Verify the Collector Pod¶
Confirm the collector is running using kubectl:
| Bash | |
|---|---|
Tip
<your-runtime-namespace> will be the Runtime Name configured in Step 3.
Look for the collector's pod with status Running. Its name starts with the application's name:
| Collector | Pod name starts with |
|---|---|
| Shared connections on the Default shared host | ai-assets-collector- |
| Shared connections on a named shared host | ai-assets-collector-<name>- |
| A Dedicated connection, a Custom agents connection, or a Legacy collector | the collector's name |
| A collector created before release 9.2.45.3 | <collector name>-aias- |
If the pod is in CrashLoopBackOff or Error, check the logs:
| Bash | |
|---|---|
You can also open Collectors in the Trust3 Portal, Navigate to Settings > Runtime > Runtime Name > Collectors Tab and confirm the AI Assets Collector shows a running status there.
Tip
If you use k9s, navigate to the runtime namespace and confirm the collector pod is running.
Quick checklist¶
- Deployment Type set to Partially Managed (D2P)
- Cloud Provider set to AWS or Azure, region matches AWS / AKS cluster region
- AWS / Azure prerequisites confirmed
- Runtime installation commands run from terminal (curl/wget first, then Helm)
- Runtime shows Connection Established before clicking Done
- AI Asset Collector added from Collectors > Add New — one connection per workspace or tenant service, or a Legacy collector
- For a Shared connection, scanner interval and classification set on its shared host under System Applications
- Discovery enabled for each platform you are connecting (nothing is collected until you do)
- Databricks configuration provided (if connecting Databricks)
- AWS configuration provided (if connecting AWS)
- Microsoft Copilot Studio configuration provided (if connecting Copilot Studio)
- Collector pod shows
Runningin kubectl - AI assets appear in Trust3 portal within 15 minutes
- Databricks: Databricks
- Microsoft Copilot Studio: Microsoft Copilot Studio prerequisites
- Azure Foundry: Azure Foundry
- Azure M365 Agents: Azure M365 Agents prerequisites
Download docker-compose.yml¶
Save the file in a directory on your machine (for example ai-assets-collector/). Use the link below — it triggers a download using the site’s download helper.
Create .env¶
Under the same directory where you keep docker-compose.yml, create a file named .env and add the variables below. Set values for each platform you connect (Databricks, Microsoft Copilot Studio, Azure Foundry, or all) and AI_GOVERNANCE_API_KEY (To retrieve the API key, log in to Trust3 and navigate to Settings -> API Keys. Make sure you have ADMIN Role to access this page)
Discovery is off unless you turn it on, so set the discovery variable for each platform you are connecting. Monitoring only runs for a platform whose discovery is on — see Discovery and monitoring.
Leave a line blank or omit variables you are not using, following your collector’s expectations.
Login Trust3 AI Docker Repository¶
To log in to the Trust3 AI Docker repository, use the following command:
| Bash | |
|---|---|
When prompted for a password, enter your API key. To retrieve the API key, log in to Trust3 and navigate to Settings > API Keys.
Run with Docker Compose¶
-
Open a terminal under the directory where you keep
docker-compose.ymland.env. -
Start the collector (detached):
Bash -
Watch logs — while
docker composeis up, the collector runs on a schedule (every 15 minutes in the current release):Bash -
Tear down when you no longer want scheduled collection on this host:
Bash
Environment variables (for .env)¶
| Variable | Purpose |
|---|---|
DATABRICKS_HOST | Databricks workspace URL |
DATABRICKS_TOKEN | Personal access token |
DATABRICKS_ENVIRONMENT_NAME | Databricks Workspace Env Type (dev/stage/prod) |
DATABRICKS_ASSET_TAGS | JSON object of key/value tags applied to every asset found in this Databricks workspace. Optional — see Asset tags |
DATABRICKS_MODEL_USAGE_ENABLED | Enable model/serving usage from Databricks system tables. Default: true. Set false to skip. Runtime UI: collector.databricks.model-usage.enabled. |
DATABRICKS_SQL_WAREHOUSE_HTTP_PATH | SQL warehouse HTTP path for model/serving usage system-table queries. Required when model usage is enabled — see Model usage traces |
TRUST3_AZURE_TENANT_ID | Azure tenant ID |
TRUST3_AZURE_CLIENT_ID | Azure application (client) ID |
TRUST3_AZURE_CLIENT_SECRET | Azure client secret |
AZURE_FOUNDRY_ENVIRONMENT_NAME | Azure Foundry Env Type (dev/stage/prod) |
TRUST3_AZURE_ASSET_TAGS | JSON object of key/value tags applied to every asset found in this Azure tenant. Optional — see Asset tags |
AI_GOVERNANCE_API_KEY | API key for AI Governance ingest, when your deployment expects it |
Monitoring environment variables¶
Monitoring is off by default and is enabled per platform.
Discovery and monitoring are set per platform. Monitoring requires that platform's discovery to be on.
| Variable | Default | Purpose |
|---|---|---|
COLLECTOR_DATABRICKS_DISCOVERY_ENABLED | unset | Inventory Databricks assets |
COLLECTOR_DATABRICKS_MONITORING_ENABLED | unset | Collect Databricks traces |
COLLECTOR_AZURE_DISCOVERY_ENABLED | unset | Inventory Foundry, Copilot Studio and M365 Copilot assets |
COLLECTOR_AZURE_MONITORING_ENABLED | unset | Collect Azure traces |
COLLECTOR_OTEL_LANGFUSE_MONITORING_ENABLED | false | Read OTLP trace files from S3 — see Custom Agents |
OTEL_LANGFUSE_S3_IAM_ROLE | — | Role to assume for bucket access; blank uses the host's own credentials |
OTEL_LANGFUSE_S3_ACCESS_KEY_ID / ..._SECRET_ACCESS_KEY | — | Static keys, when no role is available |
COLLECTOR_TRACE_CLASSIFICATION_ENABLED | false | LLM classification, for every provider |
CLASSIFIER_LLM_PROVIDER | openai | openai or anthropic (required when classification is on) |
CLASSIFIER_LLM_MODEL | gpt-4o-mini | Model name (required when classification is on) |
CLASSIFIER_LLM_API_KEY | — | LLM API key (required when classification is on) |
DATABRICKS_MLFLOW_ENABLED | true | Enable MLflow trace collection |
DATABRICKS_GENIE_ENABLED | true | Enable Genie conversation collection |
DATABRICKS_MODEL_USAGE_ENABLED | true | Enable foundation-model and serving-endpoint usage from system catalog tables |
DATABRICKS_DAYS_BACK | 30 | Initial lookback days for MLflow traces |
When a discovery or monitoring variable is left unset, the collector falls back to how it behaved before per-platform switches existed — credentials imply discovery, and monitoring follows TRACE_COLLECTION_ENABLED. Existing .env files therefore keep working unchanged.
Deprecated variables¶
| Variable | Use instead |
|---|---|
TRACE_COLLECTION_ENABLED | COLLECTOR_<PLATFORM>_MONITORING_ENABLED |
CLASSIFIER_BACKEND | COLLECTOR_TRACE_CLASSIFICATION_ENABLED |
Both still work, and are still what an unset per-platform flag falls back to. Prefer the per-platform variables for new configurations.
Quick checklist¶
-
docker-compose.ymlin a directory (download or copy fromai-assets-collector/docker/in the repo) -
.envunder that same directory with the variables above filled in as needed - Discovery variable set for each platform you are connecting
-
docker compose up -d -
docker compose logs -f trust3-ai-assets-collectorto verify the run - Databricks: Databricks
- Microsoft Copilot Studio: Microsoft Copilot Studio prerequisites
- Azure Foundry: Azure Foundry
- Azure M365 Agents: Azure M365 Agents prerequisites
- Custom agents: Custom Agents
Asset tags¶
Asset tags label the assets a collector discovers so you can find them again later. When several collectors report into one Trust3 tenant — one per cloud account, region, or environment — tags are what separate their assets on the AI Assets page.
Tags are set per platform, so a single collector can label its Databricks workspace and its Azure tenant differently.
Adding tags in the Runtime UI¶
Click the + beside the field to open the tag editor. Each row is one Key and its Value — type a value and press Enter to add it. To give a key more than one value, add them to the same row rather than repeating the key:
| Key | Value |
|---|---|
| environment | prod |
| business_unit | payments |
| compliance | pci sox |
| data_sensitivity | confidential |
A key can appear only once. If you enter one twice the editor flags it and Save stays disabled until you merge the values into a single row.
The example above puts four tags on every asset from that platform: environment is prod, business_unit is payments, data_sensitivity is confidential, and compliance is both pci and sox.
Setting tags with Docker¶
Set the variable to a JSON object, where each key maps to a value or a list of values. Each platform has its own variable, so set the ones you use — Databricks, Azure, or both:
| Text Only | |
|---|---|
TRUST3_AZURE_ASSET_TAGS applies to every asset found in the Azure tenant — Microsoft Copilot Studio, M365 Copilot, and Azure Foundry.
Example¶
Two collectors reporting into the same tenant:
| Collector | Databricks asset tags |
|---|---|
| Production workspace | environment = prod, business_unit = payments |
| Development workspace | environment = dev, business_unit = platform |
Filtering by environment = prod on the AI Assets page then shows only assets from the first collector.
Filtering by tag¶
On the AI Assets page, open the Tags filter and choose a tag key to see its values.
- Several values under one key match assets carrying any of them.
- Values under different keys match only assets carrying all of them.
Selecting prod and staging under environment, plus pci under compliance, returns assets that are in prod or staging, and tagged compliance = pci.
Good to know¶
- Both fields are optional. Leave one empty and that platform's assets are simply untagged.
- Names and values are stored exactly as typed —
prodandProdcount as two different tags, so keep them consistent across collectors. - Choose keys that describe the whole workspace or tenant rather than a single asset:
environment,business_unit,owner_team,compliance,cost_centerare typical. - Changing tags takes effect after the collector restarts. Existing assets pick up the new tags on the next scan.
Next steps¶
Once your collector is running, your AI assets will appear in the Trust3 portal under AI Assets within 15 minutes.
-
Core concepts
-
Custom ACR with Runtime