Skip to main content
Coral supports connecting to some data sources out of the box. These bundled specs live in sources/core.
If the source you need is not available, you can extend Coral by writing a custom source spec.
Run coral source discover to see the bundled sources available in your build.

Bundled data sources

SourceBackendDescription
claudefileQuery local Claude Code transcript events and prompt history from ~/.claude.
clickuphttpQuery tasks, spaces, folders, lists, goals, time entries, comments, views, tags, custom fields, teams, and users from ClickUp.
cloudwatch_logshttpQuery Amazon CloudWatch Logs groups, streams, and events.
cloudwatch_metricshttpQuery Amazon CloudWatch metrics and monitoring metadata.
codexfileQuery local Codex session event logs from ~/.codex/sessions.
confluencehttpQuery spaces, pages, blog posts, comments, attachments, labels, and related metadata from Confluence Cloud.
datadoghttpQuery monitors, events, incidents, dashboards, hosts, services, APM dependencies, downtimes, SLOs, synthetic tests, users, logs, spans, and metrics from Datadog.
githubhttpQuery repositories, issues, pull requests, workflows, organizations, users, teams, and API metadata from GitHub (Cloud or Enterprise).
gitlabhttpQuery projects, groups, issues, merge requests, pipelines, deployments, packages, users, and instance metadata from GitLab (Cloud or self-hosted).
gmailhttpQuery Gmail profile metadata, labels, messages, threads, drafts, history, filters, and send-as aliases from the authenticated mailbox.
google_calendarhttpQuery Google Calendar calendars, events, user settings, and color palettes.
grafanahttpQuery dashboards, folders, datasources, alert rules, annotations, contact points, teams, users, and dashboard panels from Grafana (Cloud or self-hosted).
incident_iohttpQuery incidents, alerts, escalations, schedules, status pages, workflows, teams, users, and catalog resources from incident.io.
intercomhttpQuery contacts, companies, conversations, admins, tags, teams, segments, data attributes, collections, articles, and ticket types from Intercom.
jirahttpQuery projects, issues, comments, worklogs, versions, components, issue types, priorities, and related metadata from Jira Cloud.
launchdarklyhttpQuery projects, feature flags, environments, segments, members, roles, and audit logs from LaunchDarkly.
linearhttpQuery Linear teams, users, issues, issue relations, projects, project milestones, cycles, initiatives, initiative-project links, labels, and attachments.
notionhttpQuery pages, data sources, databases, blocks, users, templates, and properties from Notion.
openobservehttpQuery streams, logs, metrics, and traces from OpenObserve (Cloud or self-hosted).
pagerdutyhttpQuery incidents, services, teams, users, schedules, oncalls, escalation policies, log entries, change events, status pages, and workflows from PagerDuty.
posthoghttpQuery events, persons, sessions, feature flags, experiments, insights, dashboards, cohorts, projects, organizations, and related PostHog resources.
sentryhttpQuery issues, events, projects, releases, deployments, teams, and members from Sentry.
slackhttpQuery channels, messages, thread replies, and users from your Slack workspace.
statusgatorhttpQuery status boards, monitors, incidents, history, service components, subscribers, users, and monitoring regions from StatusGator.
stripehttpQuery customers, charges, subscriptions, invoices, payments, products, prices, refunds, disputes, payouts, balance transactions, and events from Stripe.
wandbhttpQuery the authenticated viewer, projects, runs, and sampled run metrics from Weights & Biases (W&B Cloud or self-hosted).

Supported data source types

Supported sources fall into two categories.
  • HTTP API — Coral translates SQL queries into paginated HTTP requests against a provider’s REST API.
  • File-backed — Coral reads Parquet, JSONL, JSON, or CSV files directly.

Upgrading bundled sources

To update bundled sources, upgrade the Coral binary. Coral resolves each bundled manifest from the current binary at validate or query time, so spec fixes and newly required inputs are picked up automatically, you don’t need to remove and re-add the source. Your configured variables and secrets stay in local state across upgrades.

Configure a source

Each source has its own set of interactive inputs — API tokens, base URLs, or other per-install configuration.

claude

No configuration required.

clickup

CLICKUP_API_TOKEN (required) Use a personal ClickUp API token that begins with pk_. The token inherits your account’s permissions and provides access to the workspaces you belong to. If you’re logged in to ClickUp, you can go to App Settings to find your token. For more details, see the ClickUp authentication guide.

cloudwatch_logs

AWS_REGION (optional)
default us-east-1
AWS region for CloudWatch Logs API requests, for example us-east-1. AWS_ENDPOINT_SUFFIX (optional)
default amazonaws.com
AWS endpoint DNS suffix. Keep amazonaws.com for standard AWS regions. Use the appropriate suffix for other partitions. AWS_ACCESS_KEY_ID (required) AWS access key ID with CloudWatch Logs read permissions. AWS_SECRET_ACCESS_KEY (required) AWS secret access key. Coral does not read your AWS CLI profile, AWS SSO cache, or AWS_PROFILE at query time for this bundled source.

cloudwatch_metrics

AWS_REGION (optional)
default us-east-1
AWS region for CloudWatch API requests, for example us-east-1. AWS_ENDPOINT_SUFFIX (optional)
default amazonaws.com
AWS endpoint DNS suffix. Keep amazonaws.com for standard AWS regions. Use the appropriate suffix for other partitions. AWS_ACCESS_KEY_ID (required) AWS access key ID with the CloudWatch read permissions. AWS_SECRET_ACCESS_KEY (required) AWS secret access key. Coral does not read your AWS CLI profile, AWS SSO cache, or AWS_PROFILE at query time for this bundled source.

codex

No configuration required.

confluence

CONFLUENCE_BASE_URL (required) Base URL of your Atlassian Cloud site, without the /wiki suffix (for example https://acme.atlassian.net). CONFLUENCE_EMAIL (required) Email address for your Atlassian account. CONFLUENCE_API_TOKEN (required) Create an API token at Atlassian API token settings.

datadog

DD_SITE (optional)
default datadoghq.com
Datadog site host for your org (for example datadoghq.com, datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com, ap1.datadoghq.com, or ddog-gov.com). For site and region details, see the Datadog site guide. DD_API_KEY (required) Use a Datadog API key. This key is required for all Datadog API requests. See Datadog API keys. DD_APPLICATION_KEY (required) Use a Datadog application key with read access to the resources you plan to query (for example monitors, incidents, logs, APM, and metrics). See Datadog application keys.

github

GITHUB_API_BASE (optional)
default https://api.github.com
Base URL for the GitHub REST API. Keep the default for GitHub Cloud; for GitHub Enterprise Server, use https://<host>/api/v3. GITHUB_TOKEN (required) Connect with GitHub OAuth or paste a personal access token. The OAuth methods request the repo, read:org, read:user, and user:email scopes. Credential methods:
  • Connect with GitHub device code — Signs you in through GitHub, with no app setup or client secret needed. Requests the repo, read:org, read:user, and user:email scopes. To use your own GitHub app instead, set GITHUB_OAUTH_CLIENT_ID to its Client ID and enable device flow on the app.
  • Connect with GitHub OAuth app — Uses your own GitHub OAuth app. Register one with its Authorization callback URL set to http://127.0.0.1:53682/oauth/callback, then enter the app’s Client ID and Client secret below. Requests the repo, read:org, read:user, and user:email scopes. See GitHub’s guide.
  • Paste token — If you use GitHub CLI, run gh auth token. Otherwise create a personal access token with read access to the repositories and organizations you query; some admin tables need elevated scopes. Works with GitHub Enterprise Server. See GitHub PAT docs.

gitlab

GITLAB_API_BASE (optional)
default https://gitlab.com
Base URL of your GitLab instance. Keep the default for gitlab.com; for self-hosted GitLab, use your instance URL (for example https://gitlab.example.com). GITLAB_TOKEN (required) Connect with GitLab OAuth or paste a personal access token. Both need the read_api scope; some admin tables require elevated scopes. Credential methods:
  • Connect with GitLab.com OAuth — Sign in to GitLab.com in your browser. Requests the read_api scope. To use your own GitLab OAuth application, set GITLAB_OAUTH_CLIENT_ID to its Application ID.
  • Paste token — Create a personal access token with the read_api scope; some admin tables need elevated scopes. See GitLab PAT docs.

gmail

GMAIL_USER_ID (optional)
default me
Gmail user ID to query. Use me for the authenticated Google account, or an email address when the token has delegated access. GMAIL_TOKEN (required) Connect with Google OAuth or paste an access token. Either way the token needs the https://www.googleapis.com/auth/gmail.readonly scope. Credential methods:
  • Connect with Google — Enable the Gmail API in a Google Cloud project and create an OAuth 2.0 client of type “Desktop app”, then enter its Client ID and Client secret below. Requests read-only access with the https://www.googleapis.com/auth/gmail.readonly scope. See Google OAuth client setup.
  • Paste access token — Paste a read-only OAuth 2.0 access token issued with the https://www.googleapis.com/auth/gmail.readonly scope.

google_calendar

GOOGLE_CALENDAR_API_BASE (optional)
default https://www.googleapis.com/calendar/v3
Base URL for the Google Calendar API. Keep the default unless you are testing against a mock Calendar-compatible API. GOOGLE_CALENDAR_ACCESS_TOKEN (required) Connect with Google OAuth or paste an access token. Either way the token needs the read-only https://www.googleapis.com/auth/calendar.readonly scope. Credential methods:
  • Connect Google Calendar — Enable the Google Calendar API in a Google Cloud project and create an OAuth 2.0 client of type “Desktop app”, then enter its Client ID and Client secret below. Requests read-only access with the https://www.googleapis.com/auth/calendar.readonly scope. See Google OAuth client setup.
  • Paste access token — Paste a read-only OAuth 2.0 access token issued with the https://www.googleapis.com/auth/calendar.readonly scope.

grafana

GRAFANA_URL (required) Base URL of your Grafana instance (e.g. https://my-org.grafana.net). For self-hosted Grafana, use your instance URL (e.g. https://grafana.example.com). GRAFANA_TOKEN (required) Create an Org Admin service account and generate a token for it. This provides read access for all the bundled tables. See Grafana service account docs.

incident_io

INCIDENT_IO_API_KEY (required) Create an API key with read permissions for the resources you plan to query. See incident.io API key docs.

intercom

INTERCOM_ACCESS_TOKEN (required) Create a private app and copy its access token. The token provides read access to your workspace data. See Intercom authentication docs.

jira

JIRA_BASE_URL (required) Base URL of your Jira Cloud site (for example https://acme.atlassian.net). JIRA_EMAIL (required) Email address for your Atlassian account. JIRA_API_TOKEN (required) Create an API token at Atlassian API token settings.

launchdarkly

LAUNCHDARKLY_API_BASE (optional)
default https://app.launchdarkly.com
For self-hosted LaunchDarkly, set to your relay or app host LAUNCHDARKLY_TOKEN (required) Create an API access token with the Reader role, which gives read-only access to all tables. See LaunchDarkly API token docs.

linear

LINEAR_API_KEY (required) Create a personal API key with the Read permission, which gives read-only access to all tables. You can optionally scope the key to specific teams. See Linear API key docs.

notion

NOTION_API_KEY (required) Notion doesn’t ship a workspace-wide read token. You must create a connection on a workspace you own, then grant it access to the pages and databases you want to query. Create the connection at notion.so/developers and copy its internal integration token. Then open the integration’s content access settings and give it edit access to each page or database you want Coral to read. The token needs read content capabilities for most tables. See the Notion authorization docs.

openobserve

OPENOBSERVE_URL (required) Base URL of your OpenObserve instance (for example https://api.openobserve.ai or http://localhost:5080). OPENOBSERVE_ORG (optional)
default default
Organization slug in OpenObserve. Keep the default default for single-tenant setups. OPENOBSERVE_USERNAME (required) OpenObserve username or email for HTTP Basic auth. OPENOBSERVE_PASSWORD (required) OpenObserve password for HTTP Basic auth.

pagerduty

PAGERDUTY_API_TOKEN (required) Use a read-only General Access REST API key or a personal User Token REST API key. General Access keys require admin privileges to create; User Token keys can be created by any user but are scoped to that user’s permissions. See PagerDuty API access docs.

posthog

POSTHOG_API_BASE (optional)
default https://us.posthog.com
Base URL of your PostHog instance. Use https://us.posthog.com for US Cloud, https://eu.posthog.com for EU Cloud, or your self-hosted URL. POSTHOG_API_KEY (required) Create a personal API key and select only the read scopes for the resources you plan to query. See PostHog API docs.

sentry

SENTRY_ORG (required) Your Sentry organization slug (found in the Sentry URL after /organizations/) SENTRY_TOKEN (required) Connect with Sentry OAuth or paste an internal-integration token. Both need the org:read, event:read, member:read, project:read, project:releases, and team:read scopes. Credential methods:
  • Connect with Sentry device flow — Sign in to Sentry with a device code. Enter your Sentry OAuth app’s Client ID when prompted. Requests the org:read, event:read, member:read, project:read, project:releases, and team:read scopes. See Sentry auth docs.
  • Paste auth token — Create an internal integration and paste its token, granting the org:read, event:read, member:read, project:read, project:releases, and team:read read scopes. See Sentry auth docs.

slack

SLACK_TOKEN (required) Slack has no general-purpose API for reading messages, so you need a Slack app with an OAuth token. Both methods use these scopes: channels:read, channels:history, groups:read, groups:history, users:read, users:read.email. See the Slack app setup guide. Credential methods:
  • Connect with Slack — Create a user-token app, which pre-fills the scopes and redirect URL, then enter its Client ID below and authorize in your browser. Reads the channels the authorizing user belongs to.
  • Paste Slack OAuth Token — Paste the OAuth token from your app’s OAuth & Permissions page. If you don’t have an app, create a bot-token app, install it, then paste its bot token. Reads the channels the bot has been added to.

statusgator

STATUSGATOR_API_TOKEN (required) Create a read-only API token from the API menu in your StatusGator dashboard. Only organization admins can generate tokens. See StatusGator API docs.

stripe

STRIPE_API_KEY (required) Create a restricted API key (rk_test_ or rk_live_) with Read permissions for the resources you plan to query. You can also use secret keys (sk_test_ or sk_live_), but restricted keys limit access to only the required endpoints. See Stripe API key docs.

wandb

WANDB_BASE_URL (optional)
default https://api.wandb.ai
Base URL of your W&B instance. Use https://api.wandb.ai for W&B Cloud (the default) or your self-hosted host (for example https://wandb.example.com). The GraphQL endpoint is at /graphql. WANDB_API_KEY (required) Personal API key for W&B. Generate one at https://wandb.ai/authorize (or https://<your-host>/authorize for self-hosted). Coral uses the key for HTTP Basic auth with username api.

Don’t see what you need?

The bundled set is growing. If your data source is not listed, write a custom source, or reach out to us via Discord or GitHub.