Skip to main content

Overview

Client onboarding creates all the resources a new client needs to run BI reports on their data:
  1. Snowflake Connection — data source credentials for the client’s schema
  2. Semantic Model — client model that inherits from the Alpha Core model
  3. Virtual Data Mart (VDM) — bridge between the semantic model and the Snowflake connection
  4. Dashboard (optional) — auto-generated facade with core report charts
The onboarding flow is available in two ways:

Prerequisites

Before onboarding a new client:
  • The client’s Snowflake schema and tables must already be provisioned by Data Ops (e.g., DEF_SCHEMA with FCT_POSITION_SECURITY_LEVEL, DIM_SECURITY, DIM_ACCOUNT)
  • An Alpha Core semantic model must exist (this is the model all clients inherit from)
  • If row-level security is needed, the AUTH tables (ALPHA_USER_SCOPE, ALPHA_SCOPE_DEFN, ALPHA_FUND_AUTH, ALPHA_SERVICE_AUTH) must be seeded with the client’s scope data

Via Settings UI

Navigate to Settings > Client Onboarding (visible to admins only).

Step 1: Client Details

Enter the unique client identifier (e.g., DEF), display name, and optional description.

Step 2: Data Source

Configure the Snowflake connection:
  • Account URL
  • Warehouse, Database, Schema
  • Service account credentials
Click Test Connection to validate before proceeding.

Step 3: Model & Dashboard

  • Select the core model to inherit from
  • Toggle row-level security
  • Optionally enable a starter dashboard

Step 4: Review & Create

Review all settings and click Create Client. The system will:
  1. Create the Snowflake connection record
  2. Create the client semantic model (inheriting from core)
  3. Create and publish the Virtual Data Mart
  4. Deploy the dashboard (if selected)
  5. Register the client in the client registry
A progress indicator shows each step completing in real time.

Via API

The onboarding API requires session authentication (browser cookies) or API key authentication.

Onboard a New Client

curl -X POST https://<your-instance>/v1/bi/admin/onboard/<userToken> \
  -H "Content-Type: application/json" \
  -H "CTN: <csrf-token>" \
  --cookie "LASID=<session-id>;ATN=<access-token>;RTN=<refresh-token>" \
  -d '{
    "clientId": "DEF",
    "clientName": "Client DEF Corp",
    "description": "New Alpha client",
    "dataSource": {
      "account": "abc12345.us-east-1.snowflakecomputing.com",
      "warehouse": "WH_DEF",
      "database": "ALPHA_DB",
      "schema": "DEF_SCHEMA",
      "username": "svc_def",
      "password": "secure_password"
    },
    "coreModelId": "SM2026A00001",
    "securityConfig": {
      "enabled": true
    }
  }'

Response

{
  "success": true,
  "status": "COMPLETED",
  "client": {
    "clientId": "DEF",
    "clientName": "Client DEF Corp",
    "dbId": "D2026A00003",
    "modelId": "SM2026A00004",
    "vdmId": "V2026A00109",
    "facadeId": null,
    "experimentIds": [],
    "coreModelId": "SM2026A00001",
    "status": "ACTIVE"
  }
}

Idempotency

Calling the onboarding endpoint for a client that already exists returns the existing record with status: "ALREADY_EXISTS" instead of creating duplicates.

Rollback

If any step fails, all previously created resources are automatically cleaned up and a FAILED registry entry is saved for audit purposes.

Client Registry

After onboarding, clients appear in the Client List view (Settings > Client Onboarding).

List Clients

curl https://<your-instance>/v1/bi/admin/clients/<userToken> \
  -H "CTN: <csrf-token>" \
  --cookie "LASID=<session-id>;ATN=<access-token>;RTN=<refresh-token>"

Get Client Details

curl https://<your-instance>/v1/bi/admin/clients/DEF/<userToken> \
  -H "CTN: <csrf-token>" \
  --cookie "LASID=<session-id>;ATN=<access-token>;RTN=<refresh-token>"

What Gets Created

ResourceID FormatPurpose
ConnectionD2026A00XXXSnowflake data source credentials
Semantic ModelSM2026A00XXXClient model inheriting from core (dimensions, measures, calculations)
Virtual Data MartV2026A00XXXBridge linking model to connection, with security bindings
FacadeF2026A00XXXDashboard with experiments and charts (if dashboard template provided)
Client RegistryMongoDB recordTracks all resources for the client with status and audit info