Security

Workspace Isolation

How MarcoPolo isolates each identity's workspace using dedicated containers.

Every MarcoPolo identity, including a person or service account, gets a dedicated workspace: a separate Kubernetes container that runs in isolation from other identities.

What isolation means

Separate containers. Your workspace is its own container with its own filesystem, DuckDB instance, and process space. No other user's AI agent or workspace shares your container.

No cross-tenant access. One identity cannot access another identity's files, cached data, or query history. Connections may be shared or explicitly granted, but there is no shared filesystem or shared database between workspaces.

Separate credential scope. Each workspace has access only to the connections its owner has set up or been granted access to. Sharing a connection lets a colleague query through it; it never exposes the connection's credentials to them.

Lifecycle

Provisioning. When you first sign in to MarcoPolo (via Google, GitHub, Microsoft, or email), a workspace is created for your user account and associated with your company (based on email domain). A service account gets its own workspace when it is created.

Active use. While you're working, the workspace runs as a live container with compute resources. Your AI operates within this container.

Idle. When you're inactive, the runtime scales down. Your filesystem persists. Files, scripts, cached data, and artifacts are all preserved, along with your scheduled jobs.

Resume. When you or your AI make a new request, or a scheduled job is due, the workspace spins back up. Your files are exactly as you left them.

Shared connections

When you share a connection with a colleague, it appears in their own workspace. They don't access your workspace, and you don't access theirs. Queries run through the connection from each workspace independently, and the files each person writes stay in their own workspace.

Company-level sharing (all users on the same email domain) works the same way. Each user gets their own isolated workspace with access to the shared connection.

Service accounts can receive explicit connection grants without sharing the owner's workspace. See Identity and workspaces for the full model.

On this page