Skip to main content

Configure Connectors

Connect Aurora to your cloud providers using provider-specific authentication methods. Each provider has unique configuration requirements.

Google Cloud Platform (GCP)

POST /gcp/login

Initiate GCP OAuth 2.0 authentication flow. Request Body:
string
required
Aurora user identifier
Response:
string
OAuth authorization URL to redirect user to
Example:

OAuth Flow

  1. Frontend calls /gcp/login with userId
  2. Backend returns OAuth URL with encoded state
  3. User redirects to Google consent screen
  4. Google redirects to /gcp/callback with code
  5. Backend exchanges code for tokens
  6. Backend triggers post-auth setup (async)
  7. Frontend polls /gcp/setup/status/:task_id

GET /gcp/setup/status/:task_id

Check post-authentication setup progress. Response:
string
Task state: PENDING, STARTED, PROGRESS, SUCCESS, FAILURE
string
Human-readable status message
boolean
Whether setup is complete
number
Progress percentage (0-100)
number
Current step number
number
Total number of setup steps
Example:

POST /api/gcp/force-disconnect

Disconnect GCP account and delete credentials. Authentication: Required (X-User-ID header) Response:

Amazon Web Services (AWS)

POST /aws/auth

Connect AWS account using IAM role assumption. Authentication: Required (X-User-ID header) Request Body:
string
required
Aurora user identifier
string
required
IAM role ARN to assumeFormat: arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME
string
required
External ID for secure role assumption (from Aurora workspace)
string
Read-only role ARN for Ask mode (optional)
Example Request:
Response:
string
Status: success or error
string
Result message
string
AWS account ID
string
Credential expiration timestamp
Success Example:

IAM Role Setup

Create an IAM role in your AWS account with:
  1. Trust Policy allowing Aurora to assume the role:
  1. Permissions for infrastructure management (EC2, EKS, VPC, IAM, etc.)

GET /aws/get-credentials

Retrieve stored AWS credentials. Response:

Microsoft Azure

POST /azure/login

Connect Azure using service principal credentials. Request Body:
string
required
Aurora user identifier
string
required
Azure tenant ID (Directory ID)
string
required
Service principal application (client) ID
string
required
Service principal client secret
string
Specific subscription ID (uses first enabled if not provided)
string
Subscription display name
object
Optional read-only credentials for Ask mode
string
Read-only service principal client ID
string
Read-only service principal secret
Example Request:
Response:

Service Principal Setup

  1. Create app registration in Azure Active Directory
  2. Generate client secret
  3. Assign permissions to subscription (Contributor or custom role)
  4. Note tenant ID, client ID, and client secret

Scaleway

POST /scaleway_api/scaleway/connect

Connect Scaleway account with API credentials. Request Body:
string
required
Scaleway access key (starts with SCW)
string
required
Scaleway secret key (UUID format)
string
Organization ID (auto-detected if not provided)
string
Default project ID (uses first project if not provided)
Example Request:
Response:

GET /scaleway_api/scaleway/projects

Fetch available Scaleway projects. Response:

POST /scaleway_api/scaleway/disconnect

Disconnect Scaleway account. Response:

Tailscale

POST /tailscale_api/tailscale/connect

Connect Tailscale account using OAuth client credentials. Request Body:
string
required
Tailscale OAuth client ID
string
required
Tailscale OAuth client secret
string
Specific tailnet name (uses default if not provided)
Example Request:
Response:

OAuth Client Setup

  1. Go to Tailscale admin console
  2. Navigate to Settings → OAuth clients
  3. Create new OAuth client
  4. Set appropriate permissions (devices:read, devices:write, etc.)
  5. Copy client ID and secret

GET /tailscale_api/tailscale/ssh-setup

Get SSH setup instructions and public key. Response:

POST /tailscale_api/tailscale/disconnect

Disconnect Tailscale account. Response:

Security Considerations

Credential Storage

All credentials are stored securely:
  • HashiCorp Vault - Credentials encrypted at rest
  • Secret References - Only references stored in database
  • Redis Cache - Credentials cached with TTL
  • Automatic Cleanup - Credentials cleared on disconnect

Authentication Validation

Credentials are validated:
  • On Connect - API calls verify access
  • On Use - Credentials refreshed if expired
  • Status Checks - Regular validation for active connections
  • Error Handling - Invalid credentials trigger reconnection

Best Practices

  1. Least Privilege - Grant minimum required permissions
  2. Rotation - Rotate credentials regularly
  3. Monitoring - Monitor for unauthorized access
  4. Separation - Use separate credentials for read-only mode
  5. Expiration - Set credential expiration policies

Multi-Account Support

Connect multiple accounts for the same provider:
Each connection is tracked separately in the user_connections table.