> For the complete documentation index, see [llms.txt](https://docs.concurrence.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.concurrence.com/developer-guide/platform-api/data-world-model/connector-runner.md).

# Data Pipeline Monitoring

Inspect stored source events, ingestion history, throughput, and entity resolution, then verify record freshness and external outcomes separately.

Use pipeline monitoring to inspect the data recorded in a workspace and identify the source or period that needs investigation. A pipeline total is evidence about stored records. Confirm the individual record, the agent's read path, and any external action separately.

## Scope <a href="#removed" id="removed"></a>

The operations on this page require `viewer+` access and are workspace-scoped. They report stored pipeline data, not live polling or synchronization with an external system. A saved [data-source record](/developer-guide/platform-api/data-world-model.md#data-sources) supplies configuration; it does not start ingestion.

## Available Evidence <a href="#what-remains" id="what-remains"></a>

| Evidence                            | What to verify next                                                                             |
| ----------------------------------- | ----------------------------------------------------------------------------------------------- |
| Source events and ingestion history | Locate the intended record; inspect its identity, source, and effective time                    |
| Event and entity totals             | Confirm that the expected entity and fields are available through the workflow's read interface |
| Throughput and source activity      | Compare receipt time with the source's clinical time and expected submission cadence            |
| Stored outbound summaries and logs  | Obtain acknowledgement or read-back from the destination for the specific action                |
| Entity-resolution metrics           | Verify the subject association and any separate identity binding required by the application    |

A recent ingestion can contain an old clinical measurement. An empty interval can mean that no new records were submitted. Neither observation alone establishes whether the source is healthy. See [Time and Corrections](https://docs.concurrence.com/data/world-model#time-and-corrections).

## Verify the Data Path <a href="#moving-off-the-connector-runner" id="moving-off-the-connector-runner"></a>

1. Submit a synthetic source record through the provisioned [FHIR](/developer-guide/platform-api/data-world-model/fhir.md), [Bulk Import](/developer-guide/platform-api/data-world-model/bulk-import.md), or [Customer Data Intake](/developer-guide/platform-api/data-world-model/intake.md) path.
2. Inspect its source evidence and then its supported entity or resource read. Input acceptance does not establish immediate projection visibility.
3. Verify the configured agent can retrieve the intended data. Keep the source and run identifiers with the result.
4. For an external mutation, use a supported [integration](/developer-guide/platform-api/integrations.md) and confirm the outcome at the destination. An outbound log entry or approved proposal is not sufficient on its own.

Follow [Connect Data to a Verified Action](/developer-guide/guides/data-to-verified-action.md) for the complete test, including concurrent changes, ambiguous outcomes, and cleanup.

## Data Source Records

Data source endpoints manage stored records for external systems. Creation accepts the `ehr`, `fhir_store`, and `snowflake` source types. The records hold configuration and status counts; use the pipeline observability reads below for evidence about the data path.

### List Data Sources

Lists the workspace's data sources with optional filtering.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/data-sources" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Create a Data Source

Registers an external data source in the workspace.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/data-sources" method="post" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Get a Data Source

Returns one data source by ID.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/data-sources/{data\_source\_id}" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Update a Data Source

Updates a data source's configuration.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/data-sources/{data\_source\_id}" method="patch" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Delete a Data Source

Deletes a data source.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/data-sources/{data\_source\_id}" method="delete" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Get Data Source Status

Returns event counts, sync status, and health for a data source.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/data-sources/{data\_source\_id}/status" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Get Data Source Sync History

Returns a daily event timeline and recent sync failures for a data source.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/data-sources/{data\_source\_id}/sync-history" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

## Pipeline Observability

Use the following read operations to inspect stored pipeline evidence.

### Pipeline Status

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/status" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### List Sources

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/sources" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Source Overview

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/sources/{source\_id}/overview" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Source History

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/sources/{source\_id}/history" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Source Events

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/sources/{source\_id}/events" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Outbound Summary

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/outbound" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Outbound Log

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/outbound/{data\_source\_id}/log" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Entity Resolution Metrics

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/entity-resolution" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Review Counters <a href="#legacy-review-counters" id="legacy-review-counters"></a>

These compatibility counters return zero and do not measure pending external write proposals. Use the [Review Queue](/developer-guide/platform-api/integrations/review-queue.md) to inspect stored proposals and their review decisions; verify external completion separately.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/review" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Throughput

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/throughput" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.concurrence.com/developer-guide/platform-api/data-world-model/connector-runner.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
