# Connectors

A Connector enables [Publisher](https://github.com/DNAstack/dnastack-product-docs/blob/main/docs/publisher/data-sources/connectors/broken-reference/README.md) to interface with various external storage systems. They provide standardized access to files and tables while managing authentication, monitoring, and data access functionality.

## Required Connector Functionality

A Connector must fulfill these requirements:

### Configuration

* Provide an HTML user interface for configuring external connections
  * Store encrypted credentials for external systems (e.g., service accounts or dedicated user accounts)
  * Generate an audit trail for configuration changes

### Data Access

* Respond to requests about attached data by:
  * Listing files with current metadata (size, checksums, create/update dates)
  * Generating time-limited signed URLs for file retrieval
  * Listing tables with current metadata (column names & types, row count)
  * Dumping table data with optional column and row subsetting
  * Generating an audit trail for data access

### Monitoring

* Monitor external systems for data changes
  * Notify Publisher of changes
* Log all external system access, including purpose and success/fail status

## Connector Types

1. [AWS S3 Storage](/products/publisher/data-sources/connectors/connecting-to-aws-s3-storage.md)
2. [Google Cloud Storage](/products/publisher/data-sources/connectors/connecting-to-google-cloud-platform.md)
3. [Microsoft Azure Blob Storage](/products/publisher/data-sources/connectors/connecting-to-microsoft-azure-blob-storage.md)
4. [PostgreSQL](/products/publisher/data-sources/connectors/connecting-to-postgresql.md)
5. [HTTPS](/products/publisher/data-sources/connectors/connecting-to-https.md)

{% hint style="info" %}
While Publisher includes DNAstack-developed connectors, third-party developers can create additional connectors for other data sources. For information on developing custom connectors, refer to the Data Source Connector Developer Guide.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.omics.ai/products/publisher/data-sources/connectors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
