Skip to main content

Integrations

Eve connects your organization to external services through integrations. Each integration is org-scoped — one connection per provider account per org.

Bring Your Own App (BYOA)

Eve uses a Bring Your Own App model for OAuth providers. Instead of sharing a single platform-wide OAuth application, each org registers their own OAuth app credentials. This gives you:

  • Security isolation — your tokens are issued by your own OAuth app
  • Consent control — users see your company name on the OAuth consent screen
  • Audit independence — revoke access at the app level without affecting other orgs

Setup flow

The general pattern for any OAuth provider:

  1. Create an OAuth app in the provider's developer console
  2. Register the credentials with Eve using eve integrations configure
  3. Connect individual accounts using the provider-specific OAuth flow

Get setup instructions

Eve can tell you exactly what to configure for each provider:

eve integrations setup-info google-drive --org <org_id>
eve integrations setup-info slack --org <org_id>

This returns the callback URL, required scopes, and step-by-step instructions for creating the OAuth app.

Register credentials

# Google Drive
eve integrations configure google-drive \
--org <org_id> \
--client-id "your-google-client-id.apps.googleusercontent.com" \
--client-secret "GOCSPX-..."

# Slack (includes signing secret for webhook verification)
eve integrations configure slack \
--org <org_id> \
--client-id "your-slack-client-id" \
--client-secret "your-slack-client-secret" \
--signing-secret "your-slack-signing-secret"

View and manage credentials

# View current config (secrets are redacted)
eve integrations config google-drive --org <org_id>

# Remove credentials
eve integrations unconfigure google-drive --org <org_id>

Google Drive

Mount Google Drive folders into Eve so agents and workflows can browse, search, and access files from your team's shared drives.

Prerequisites

  1. Configure OAuth credentials (see BYOA setup above)
  2. The Google Drive API must be enabled in your GCP project
  3. OAuth consent screen must be configured (internal or external)

Connect a Google Drive account

After registering OAuth credentials, authorize access to a specific Google Drive account:

# Initiate the OAuth flow (opens browser)
# The API redirects to Google's consent screen using your org's OAuth app
curl "$EVE_API_URL/orgs/<org_id>/integrations/google-drive/oauth/authorize"

On approval, Eve exchanges the authorization code for access and refresh tokens, creating an integration automatically.

Mount a drive folder

Once connected, mount a Google Drive folder to make it accessible:

# List existing mounts
eve cloud-fs list --org <org_id>

# Mount a drive folder
eve cloud-fs mount --org <org_id> --project <proj_id> \
--provider google_drive \
--root-path "/" \
--label "Team shared drive"

# Browse files
eve cloud-fs ls <mount_id> --path "/" --org <org_id>

# Search across mounted drives
eve cloud-fs search <mount_id> --query "quarterly report" --org <org_id>

# Unmount
eve cloud-fs unmount <mount_id> --org <org_id>

Permissions

PermissionAllows
cloud_fs:readList mounts, browse files, search
cloud_fs:writeCreate/update mounts
cloud_fs:adminRemove mounts, manage all mounts

Token refresh

Access tokens expire after ~1 hour. Eve automatically refreshes tokens using the refresh token and your org's OAuth credentials. No manual intervention needed.

Slack

Connect a Slack workspace to enable agent chat, mentions, and interactive workflows. See the Chat & Conversations guide for full details on chat routing and agent interactions.

Prerequisites

  1. Configure Slack app credentials (see BYOA setup above)
  2. Create a Slack app at api.slack.com/apps
  3. Copy the Client ID, Client Secret, and Signing Secret from the app's Basic Information page

Connect a workspace

Generate a shareable install link — the recipient needs Slack workspace admin access but no Eve credentials:

eve integrations slack install-url --org <org_id>
eve integrations slack install-url --org <org_id> --ttl 7d

The link redirects to Slack's OAuth consent screen using your org's OAuth app. On approval, Eve creates the integration automatically. The gateway hot-loads new integrations within ~30 seconds.

For manual connection (when OAuth is unavailable):

eve integrations slack connect \
--org <org_id> \
--team-id <T-ID> \
--token xoxb-...

Required bot events

Subscribe to these events in your Slack app configuration:

EventPurpose
app_mention@eve commands
message.channelsListener dispatch in public channels
message.groupsListener dispatch in private channels
message.imDirect messages

GitHub

GitHub integration uses webhook secrets (not OAuth apps) for event verification:

eve github setup
  • Webhook endpoint: /integrations/github/events/:projectId
  • Auth: EVE_GITHUB_WEBHOOK_SECRET with optional project-scoped override via eve secrets set GITHUB_WEBHOOK_SECRET

CLI quick reference

CommandPurpose
eve integrations setup-info <provider> --org <org>Get provider setup instructions
eve integrations configure <provider> --org <org> ...Register OAuth credentials
eve integrations config <provider> --org <org>View current config
eve integrations unconfigure <provider> --org <org>Remove OAuth credentials
eve integrations list --org <org>List connected integrations
eve integrations test <id> --org <org>Test integration health
eve integrations slack install-url --org <org>Generate Slack install link
eve integrations slack connect --org <org> ...Manual Slack connection
eve cloud-fs list --org <org>List Cloud FS mounts
eve cloud-fs mount --org <org> --project <proj> ...Mount a drive
eve cloud-fs ls <mount> --org <org>Browse files
eve cloud-fs search <mount> --query "..." --org <org>Search files
eve cloud-fs unmount <mount> --org <org>Remove mount
eve github setupGitHub webhook setup

What's next?