Skip to main content
Public BetaWe're in Public Beta. Things may break. Please report issues via the Support tab.

Dashboard to Server Connection

Connect the ACE dashboard (ace3-ai.com) to your ACE server, wherever it runs

The Problem
Why you need the API key bridge

The ACE dashboard uses cloud JWTs (signed with the cloud backend's secret), but your ACE server has a different JWT secret. This causes 401 Unauthorized errors when the dashboard tries to call your server directly.

Without API Key Bridge:

  1. Dashboard authenticates with cloud backend (JWT signed with cloud secret)
  2. Dashboard calls your ACE server with cloud JWT
  3. Your ACE server rejects it - different JWT secret!

With API Key Bridge:

  1. You generate an API key on your ACE server
  2. API key is stored securely in the cloud backend
  3. Dashboard uses API key to authenticate - works everywhere!
Deployment Scenarios
ACE works wherever your server runs
ScenarioACE Server LocationSetup Required
Local Development
localhost:7777Automatic with ace login
On-Premises
ace.company.comSet ACE_CLOUD_JWT_SECRET
Cloud-Hosted
my-ace.run.appSet ACE_CLOUD_JWT_SECRET
Setup Instructions
Choose your deployment scenario

Automatic Setup (Recommended)

For local development, connection is configured automatically during login.

1. Install ACE

2. Login and start server

Dashboard connection is configured automatically during login.

3. Open Dashboard

Visit ace3-ai.com/dashboard - it will auto-connect to your local server.

How It Works
The API Key Bridge architecture
┌─────────────────┐     ┌──────────────────────┐     ┌─────────────────┐
│   Developer     │     │   Your ACE Server    │     │   Cloud Backend │
│   Laptop        │     │   (on-prem/cloud)    │     │   (ace3-ai.com) │
└────────┬────────┘     └──────────┬───────────┘     └────────┬────────┘
         │                         │                          │
   1. ace login ──────────────────────────────────────────────▶ OAuth
         │                         │                          │
         ◀──────────────────────────────────────── cloud JWT ──┘
         │                         │
   2. ace connect --server https://ace.company.com
         │                         │
         │── Generate API key ─────▶ (validates cloud JWT
         │                         │  via ACE_CLOUD_JWT_SECRET)
         │                         │
         ◀─── api_key: ace_sk_... ─┘
         │                         │
   3. Register with cloud ─────────────────────────────────────▶ stores
         │                         │                          │ encrypted
         │                         │                          │
   4. Dashboard fetches API key ◀──────────────────────────────┘
         │                         │
   5. Dashboard calls your server ─▶ (uses API key, not JWT)
         │                         │
         ◀─── data ────────────────┘
1

OAuth Login: You authenticate with ace3-ai.com and receive a cloud JWT.

2

API Key Generation: Your ACE server validates the cloud JWT (using ACE_CLOUD_JWT_SECRET) and generates an API key.

3

Registration: The API key is encrypted and stored in the cloud backend.

4

Dashboard: When you open the dashboard, it fetches your API key from the cloud.

5

API Calls: Dashboard authenticates with your ACE server using the API key (not JWT).

Team/Organization Setup
Share a connection with your team

For teams using a shared ACE server, an admin can configure a single connection that all organization members inherit.

Shared Organization Key

  1. Admin deploys ACE to company server
  2. Admin runs: ace api-key create --description "Team Dashboard"
  3. Admin enters URL + API key in dashboard settings
  4. Admin enables "Share with organization" toggle
  5. All org members automatically use the shared connection

Benefits: Simpler onboarding - new team members don't need to configure anything. Single point of management for IT admins.

Environment Variables
Configuration for remote ACE servers

On Remote ACE Servers

VariableRequiredDescription
ACE_CLOUD_JWT_SECRETYes*Cloud backend's JWT secret for validating cloud tokens during ace connect
ACE_JWT_SECRETYesYour server's own JWT secret
ACE_DATABASE_ENCRYPTION_KEYYesFernet key for encrypting stored data

*Required for automatic ace connect flow. Not needed if using manual API key setup.

CLI Commands
Commands for managing connections

ace connect

Set up dashboard connection to your ACE server.

Connect to local server (default):

Connect to remote server:

Connect to cloud-hosted server:

ace disconnect

Remove dashboard connections.

Interactive prompt to select which connection to remove.

Troubleshooting
Common issues and solutions

"Authentication failed" on ace connect

Cause: Remote server doesn't have ACE_CLOUD_JWT_SECRET configured.

Fix: Set ACE_CLOUD_JWT_SECRET on your remote server, OR use manual setup (generate API key on server, enter in dashboard).

Dashboard shows "Offline" but server is running

Cause: No connection registered, or API key expired.

Fix: Run ace connect to re-establish connection, or manually add connection in dashboard settings.

"API key is invalid or expired"

Cause: The stored API key was revoked or server was reset.

Fix: Run ace connect to generate new API key, or manually create new API key and update in dashboard.

Security Considerations
How your connections are protected

API keys are encrypted

Stored at rest using Fernet encryption (AES-128).

Cloud JWT acceptance is limited

Cloud JWTs are only accepted for the API key generation endpoint, not for regular API calls.

Organization sharing

Team members can use a shared connection without seeing the API key.

Revocation support

API keys can be revoked at any time via CLI or dashboard.