ReferenceAPIApps

DataHub

DataHub API methods, requests, and responses for RawTree Cloud and RawTree BYOC.

DataHub

Configuration, connection checks, sync, and pause require an organization administrator. Read access requires organization membership.

Publish RawTree table and column metadata to DataHub. Install the DataHub app before you configure it. Record values remain private unless you enable sample values.

Configuration and sync state

GET returns the saved configuration and sync status. It never returns the saved DataHub token. For the first configuration, omit revision. For later changes, send the latest revision from GET. A stale or missing revision returns 409. Omit token to keep the saved token. The platform instance and environment cannot change after the first configuration.

POST /sync returns 202 when the service accepts the request. It does not confirm that metadata reached DataHub. Read the configuration endpoint again to inspect sync state, counts, timestamps, and errors. POST /pause disables future automatic syncs. The app remains installed.

GET /v1/apps/datahub/configuration

Read DataHub configuration and sync status.

Use a user session or user OAuth token with full_access. API keys and workload tokens cannot use this method.

Parameters:

FieldLocationTypeRequiredNotes
organizationquerystringYes—
clusterquerystringYes—

Request:

# Read DataHub configuration and sync status.
curl -X GET "https://api.rawtree.com/v1/apps/datahub/configuration?organization=team_alpha&cluster=production" \
  -H "Authorization: Bearer $RAWTREE_USER_TOKEN"

Expected response: HTTP 200.

{
  "configuration": {
    "settings": {
      "gms_url": "https://datahub.example.com",
      "platform_instance": "rawtree-production",
      "environment": "PROD",
      "databases": [
        "analytics"
      ],
      "interval_minutes": 60
    },
    "enabled": true,
    "has_token": true,
    "revision": "11111111-1111-4111-8111-111111111111"
  },
  "sync": {
    "state": "idle",
    "tables_synced": 0,
    "columns_synced": 0
  }
}

PUT /v1/apps/datahub/configuration

Save DataHub configuration.

Use a user session or user OAuth token with full_access. API keys and workload tokens cannot use this method.

Parameters:

FieldLocationTypeRequiredNotes
organizationquerystringYes—
clusterquerystringYes—
settingsbodySettingsYes—
enabledbodybooleanYes—
tokenbodystring or nullNoOmit to retain the saved token. Empty clears it (operator-allowed origins only).
revisionbodystring or nullNoOptimistic concurrency token from GET. Omit for the first configuration.

Request:

# Save DataHub configuration.
curl -X PUT "https://api.rawtree.com/v1/apps/datahub/configuration?organization=team_alpha&cluster=production" \
  -H "Authorization: Bearer $RAWTREE_USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "settings": {
    "gms_url": "https://datahub.example.com",
    "platform_instance": "rawtree-production",
    "environment": "PROD",
    "databases": [
      "analytics"
    ],
    "interval_minutes": 60
  },
  "enabled": true,
  "token": "REPLACE_WITH_DATAHUB_TOKEN"
}'

Expected response: HTTP 200.

{
  "configuration": {
    "settings": {
      "gms_url": "https://datahub.example.com",
      "platform_instance": "rawtree-production",
      "environment": "PROD",
      "databases": [
        "analytics"
      ],
      "interval_minutes": 60
    },
    "enabled": true,
    "has_token": true,
    "revision": "11111111-1111-4111-8111-111111111111"
  },
  "sync": {
    "state": "idle",
    "tables_synced": 0,
    "columns_synced": 0
  }
}

POST /v1/apps/datahub/pause

Pause automatic DataHub syncs.

Use a user session or user OAuth token with full_access. API keys and workload tokens cannot use this method.

Parameters:

FieldLocationTypeRequiredNotes
organizationquerystringYes—
clusterquerystringYes—

Request:

# Pause automatic DataHub syncs.
curl -X POST "https://api.rawtree.com/v1/apps/datahub/pause?organization=team_alpha&cluster=production" \
  -H "Authorization: Bearer $RAWTREE_USER_TOKEN"

Expected response: HTTP 200.

{
  "configuration": {
    "settings": {
      "gms_url": "https://datahub.example.com",
      "platform_instance": "rawtree-production",
      "environment": "PROD",
      "databases": [
        "analytics"
      ],
      "interval_minutes": 60
    },
    "enabled": false,
    "has_token": true,
    "revision": "11111111-1111-4111-8111-111111111111"
  },
  "sync": {
    "state": "idle",
    "tables_synced": 0,
    "columns_synced": 0
  }
}

POST /v1/apps/datahub/preview

Preview tables for DataHub.

Use a user session or user OAuth token with full_access. API keys and workload tokens cannot use this method.

Parameters:

FieldLocationTypeRequiredNotes
organizationquerystringYes—
clusterquerystringYes—
databasesbodyarray of stringYes—
table_filterbodynull or TableFilterNo—

Request:

# Preview tables for DataHub.
curl -X POST "https://api.rawtree.com/v1/apps/datahub/preview?organization=team_alpha&cluster=production" \
  -H "Authorization: Bearer $RAWTREE_USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "databases": [
    "analytics"
  ],
  "table_filter": {
    "mode": "all",
    "exclude": []
  }
}'

Expected response: HTTP 200.

{
  "tables": []
}

POST /v1/apps/datahub/sync

Queue a DataHub sync.

Use a user session or user OAuth token with full_access. API keys and workload tokens cannot use this method.

Parameters:

FieldLocationTypeRequiredNotes
organizationquerystringYes—
clusterquerystringYes—

Request:

# Queue a DataHub sync.
curl -X POST "https://api.rawtree.com/v1/apps/datahub/sync?organization=team_alpha&cluster=production" \
  -H "Authorization: Bearer $RAWTREE_USER_TOKEN"

Expected response: HTTP 202.

{
  "configuration": {
    "settings": {
      "gms_url": "https://datahub.example.com",
      "platform_instance": "rawtree-production",
      "environment": "PROD",
      "databases": [
        "analytics"
      ],
      "interval_minutes": 60
    },
    "enabled": true,
    "has_token": true,
    "revision": "11111111-1111-4111-8111-111111111111"
  },
  "sync": {
    "state": "queued",
    "tables_synced": 0,
    "columns_synced": 0
  }
}

POST /v1/apps/datahub/test-connection

Test the DataHub connection.

Use a user session or user OAuth token with full_access. API keys and workload tokens cannot use this method.

Parameters:

FieldLocationTypeRequiredNotes
organizationquerystringYes—
clusterquerystringYes—
settingsbodySettingsYes—
enabledbodybooleanYes—
tokenbodystring or nullNoOmit to retain the saved token. Empty clears it (operator-allowed origins only).
revisionbodystring or nullNoOptimistic concurrency token from GET. Omit for the first configuration.

Request:

# Test the DataHub connection.
curl -X POST "https://api.rawtree.com/v1/apps/datahub/test-connection?organization=team_alpha&cluster=production" \
  -H "Authorization: Bearer $RAWTREE_USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "settings": {
    "gms_url": "https://datahub.example.com",
    "platform_instance": "rawtree-production",
    "environment": "PROD",
    "databases": [
      "analytics"
    ],
    "interval_minutes": 60
  },
  "enabled": true,
  "token": "REPLACE_WITH_DATAHUB_TOKEN"
}'

Expected response: HTTP 200.

{
  "connected": true
}