Overview
What Gets Indexed
Full sync walks the workspaces visible to the connecting user while capturing each workspace’s change watermark. Incremental sync then reads Windshift’s ordered item change log, including comment activity and deletions.
How It Works
- An administrator sets the externally reachable Windshift base URL once for the instance.
- Omni dynamically registers itself as a public OAuth client (no client ID or secret to manage), uses S256 PKCE, and binds every token to the Windshift MCP resource.
- Each user connects Windshift from My Integrations. The initial authorization grants read access for that user’s sync and read-only MCP tools; write and destructive tools request expanded authorization the first time they are used.
Windshift 0.8.4 or newer is required, with Windshift’s MCP server enabled (
MCP_ENABLED=true).Prerequisites
- Windshift 0.8.4+ with the MCP server enabled
- Admin access to Omni to set the Windshift server URL
- A user account in Windshift for each person who wants to search Windshift content
- Omni deployment with the Windshift connector service running (profile:
windshift)
Setup
Step 1: Configure the Windshift server URL (admin)
Windshift is configured in the admin UI, not through environment variables:- Open Settings → Integrations.
- Find the Windshift server card on the Sources tab and click Configure.
- Enter the externally reachable Windshift base URL, e.g.
https://windshift.example.com. If Windshift uses a context path, include it. - Save.
http(s), no credentials or fragments, and the resolved address must be publicly routable. The setting is stored in the database and read by the connector from connector-manager, so changes propagate without a container restart.
Deployments that predate the UI setting can still set
WINDSHIFT_BASE_URL on the connector container as a fallback. The UI setting wins when both are present.Optional: internal route for server-to-server traffic
To keep client registration, token exchange, user-info, sync, and MCP traffic off the public network, setWINDSHIFT_INTERNAL_BASE_URL on the connector container to a private route to the same Windshift instance, e.g. http://windshift:8080 on the Compose network. This is intentionally environment-only and cannot be set from the UI.
When set, the connector advertises it in its manifest and Omni’s OAuth flow allows that exact origin (scheme + host + port) to resolve to RFC1918 addresses; loopback, link-local/metadata, and reserved ranges are still rejected, and every other endpoint must remain publicly routable. Browser authorization, resource binding, and document links always use the public URL.
Step 2: Connect Windshift (each user)
- Open My Integrations and select Windshift.
- Click Continue to Windshift to start the OAuth flow.
- Sign in to Windshift and approve the requested scopes.
- Return to Omni. The connector starts syncing the workspaces you can access.
Managing the Integration
Restricting Sync
To restrict sync to specific Windshift workspaces, set the source’sworkspace_keys option to a list of workspace keys (omit it to sync all visible workspaces).
Search Operators
MCP Actions
Windshift has no static action list. Omni discovers the tools exposed by your Windshift MCP server after the first sync and surfaces them as source-scoped actions — for examplelist_items, transition_item, and add_comment. Read-only tools use the read scope from the initial authorization; write and destructive tools request expanded authorization when first used.
Permissions
Windshift is a personal source. Each user’s sync is backed by their own OAuth credential, and indexed items are visible only to that Omni user. Actions also run with the connecting user’s Windshift identity, so tools can only see and change what that user can see and change in Windshift.Removing the Integration
- Open My Integrations and remove the Windshift connection.
- Revoke the Omni app in Windshift if you no longer want it authorized.
Troubleshooting
Sync fails with Windshift base URL is not configured
Sync fails with Windshift base URL is not configured
An administrator must set the Windshift URL in Settings → Integrations → Windshift server (or set
WINDSHIFT_BASE_URL as a fallback on the connector container).Connection or token exchange fails behind a private network
Connection or token exchange fails behind a private network
If Omni reaches Windshift over a private route, set
WINDSHIFT_INTERNAL_BASE_URL on the connector container. Browser-facing authorization still uses the public URL.No MCP actions appear
No MCP actions appear
Confirm the Windshift version is 0.8.4 or newer and that Windshift’s MCP server is enabled. Omni discovers tools after the connector’s first successful sync.
A user sees no Windshift content
A user sees no Windshift content
Windshift is personal — confirm that user completed the OAuth connection from My Integrations and that they have access to the workspaces you expect.
What’s Next
Search Your Data
Search work items alongside your other sources
Access Control
Understand document and action authorization
Connector Management
Monitor syncs and manage sources