# microsoft/powerplatformconnectors architecture

> Architecture diagram of the GitHub repository microsoft/powerplatformconnectors, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/microsoft/powerplatformconnectors
- Repository: https://github.com/microsoft/powerplatformconnectors

## Overview

This repository is a collection of Power Platform connectors and development tools, not one runtime application. The available source evidence supports two architectural views: the Snowflake v2 connector’s OData/SQL surface and paconn CLI’s command and API-management services. The Snowflake connector exposes dataset, table, metadata, row-data, SQL, and connection-test capabilities; several provider implementations and endpoint relationships are represented from the tree but their call details were not sampled. Edges marked dashed are unverified.

Main entry points: [`certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Utilities/SnowflakeClient.cs`](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Utilities/SnowflakeClient.cs) (Snowflake HTTP client), [`tools/paconn-cli/paconn/apimanager/apimanager.py`](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/apimanager/apimanager.py) (Platform API client), [`certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeSQLController.cs`](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeSQLController.cs) (SQL endpoints), [`certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeDataSetController.cs`](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeDataSetController.cs) (Dataset endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_snowflake_api["Snowflake API"]
  node_sql_api["SQL endpoints"]
  node_dataset_api["Dataset endpoints"]
  node_dataset_metadata_api["Dataset metadata"]
  node_table_api["Table endpoints"]
  node_table_metadata_api["Table metadata"]
  node_table_data_api["Row operations"]
  node_test_connection_api["Test connection"]
end

subgraph group_snowflake_core["Snowflake Core"]
  node_sql_provider["SQL operations"]
  node_dataset_provider["Dataset provider"]
  node_dataset_metadata_provider["Dataset metadata provider"]
  node_table_provider["Table provider"]
  node_table_metadata_provider["Table metadata provider"]
  node_table_data_provider["Row data provider"]
  node_test_connection_provider["Connection provider"]
  node_snowflake_client["Snowflake HTTP client<br/>[SnowflakeClient.cs]"]
end

subgraph group_paconn_cli["paconn CLI"]
  node_cli_entry["Command entry<br/>[__main__.py]"]
  node_cli_commands["Command handlers<br/>[commands.py]"]
  node_convert_command["Convert connector<br/>[convert.py]"]
  node_auth_commands["Login/logout<br/>[login.py]"]
end

subgraph group_paconn_services["CLI Services"]
  node_token_manager["Token storage<br/>[tokenmanager.py]"]
  node_api_manager["Platform API client<br/>[apimanager.py]"]
  node_settings_builder["Settings builder<br/>[settingsbuilder.py]"]
  node_upsert_operation["Upload operation<br/>[upsert.py]"]
  node_file_uploader["File uploader<br/>[fileuploader.py]"]
end

node_platform_user(("Platform caller"))
node_snowflake_service[("Snowflake service")]
node_cli_user(("CLI user"))
node_platform_api{{"Power Platform"}}

node_platform_user -.->|"sends SQL"| node_sql_api
node_platform_user -.->|"requests datasets"| node_dataset_api
node_platform_user -.->|"requests metadata"| node_dataset_metadata_api
node_platform_user -.->|"requests tables"| node_table_api
node_platform_user -.->|"requests metadata"| node_table_metadata_api
node_platform_user -.->|"reads or writes rows"| node_table_data_api
node_platform_user -.->|"tests connection"| node_test_connection_api
node_sql_api -->|"invokes"| node_sql_provider
node_table_metadata_api -->|"invokes"| node_table_metadata_provider
node_table_data_api -->|"invokes"| node_table_data_provider
node_table_api -->|"delegates"| node_table_provider
node_dataset_api -.->|"delegates"| node_dataset_provider
node_dataset_metadata_api -.->|"delegates"| node_dataset_metadata_provider
node_test_connection_api -.->|"delegates"| node_test_connection_provider
node_sql_provider -.->|"uses"| node_snowflake_client
node_dataset_provider -.->|"uses"| node_snowflake_client
node_dataset_metadata_provider -.->|"uses"| node_snowflake_client
node_table_provider -.->|"uses"| node_snowflake_client
node_table_metadata_provider -.->|"uses"| node_snowflake_client
node_table_data_provider -.->|"uses"| node_snowflake_client
node_test_connection_provider -.->|"uses"| node_snowflake_client
node_snowflake_client -.->|"sends requests"| node_snowflake_service
node_cli_user -.->|"runs command"| node_cli_entry
node_cli_entry -->|"dispatches"| node_cli_commands
node_cli_commands -.->|"routes conversion"| node_convert_command
node_cli_user -.->|"requests login"| node_auth_commands
node_auth_commands -->|"manages credentials"| node_token_manager
node_api_manager -->|"reads token fields"| node_token_manager
node_convert_command -->|"uses settings"| node_settings_builder
node_cli_user -.->|"requests upload"| node_upsert_operation
node_upsert_operation -->|"uses uploader"| node_file_uploader
node_api_manager -->|"sends HTTP requests"| node_platform_api

click node_sql_api "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeSQLController.cs"
click node_dataset_api "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeDataSetController.cs"
click node_dataset_metadata_api "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeDataSetsMetadataController.cs"
click node_table_api "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableController.cs"
click node_table_metadata_api "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableMetadataController.cs"
click node_table_data_api "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableDataController.cs"
click node_test_connection_api "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTestConnectionController.cs"
click node_sql_provider "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeSQLOperationsProvider.cs"
click node_dataset_provider "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeDataSetProvider.cs"
click node_dataset_metadata_provider "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeDataSetsMetadataProvider.cs"
click node_table_provider "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableProvider.cs"
click node_table_metadata_provider "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableMetadataProvider.cs"
click node_table_data_provider "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableDataProvider.cs"
click node_test_connection_provider "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeTestConnectionProvider.cs"
click node_snowflake_client "https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Utilities/SnowflakeClient.cs"
click node_cli_entry "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/__main__.py"
click node_cli_commands "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/commands/commands.py"
click node_convert_command "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/commands/convert.py"
click node_auth_commands "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/commands/login.py"
click node_token_manager "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/authentication/tokenmanager.py"
click node_api_manager "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/apimanager/apimanager.py"
click node_settings_builder "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/settings/settingsbuilder.py"
click node_upsert_operation "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/operations/upsert.py"
click node_file_uploader "https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/apimanager/fileuploader.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sql_api,node_dataset_api,node_dataset_metadata_api,node_table_api,node_table_metadata_api,node_table_data_api,node_test_connection_api,node_cli_user toneBlue
class node_sql_provider,node_dataset_provider,node_dataset_metadata_provider,node_table_provider,node_table_metadata_provider,node_table_data_provider,node_test_connection_provider,node_snowflake_client,node_snowflake_service toneAmber
class node_cli_entry,node_cli_commands,node_convert_command,node_auth_commands toneMint
class node_token_manager,node_api_manager,node_settings_builder,node_upsert_operation,node_file_uploader toneRose
class node_platform_user,node_platform_api toneIndigo
```

## Components

### Snowflake API

- [SQL endpoints](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeSQLController.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeSQLController.cs`
- [Dataset endpoints](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeDataSetController.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeDataSetController.cs`
- [Dataset metadata](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeDataSetsMetadataController.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeDataSetsMetadataController.cs`
- [Table endpoints](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableController.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableController.cs`
- [Table metadata](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableMetadataController.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableMetadataController.cs`
- [Row operations](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableDataController.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableDataController.cs`
- [Test connection](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTestConnectionController.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTestConnectionController.cs`

### Snowflake Core

- [SQL operations](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeSQLOperationsProvider.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Providers/SnowflakeSQLOperationsProvider.cs`
- [Dataset provider](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeDataSetProvider.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Providers/SnowflakeDataSetProvider.cs`
- [Dataset metadata provider](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeDataSetsMetadataProvider.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Providers/SnowflakeDataSetsMetadataProvider.cs`
- [Table provider](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableProvider.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableProvider.cs`
- [Table metadata provider](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableMetadataProvider.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableMetadataProvider.cs`
- [Row data provider](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableDataProvider.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Providers/SnowflakeTableDataProvider.cs`
- [Connection provider](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Providers/SnowflakeTestConnectionProvider.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Providers/SnowflakeTestConnectionProvider.cs`
- [Snowflake HTTP client](https://github.com/microsoft/powerplatformconnectors/blob/dev/certified-connectors/Snowflake%20v2/SnowflakeV2CoreLogic/Utilities/SnowflakeClient.cs): `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Utilities/SnowflakeClient.cs`

### paconn CLI

- [Command entry](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/__main__.py): `tools/paconn-cli/paconn/__main__.py`
- [Command handlers](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/commands/commands.py): `tools/paconn-cli/paconn/commands/commands.py`
- [Convert connector](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/commands/convert.py): `tools/paconn-cli/paconn/commands/convert.py`
- [Login/logout](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/commands/login.py): `tools/paconn-cli/paconn/commands/login.py`

### CLI Services

- [Token storage](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/authentication/tokenmanager.py): `tools/paconn-cli/paconn/authentication/tokenmanager.py`
- [Platform API client](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/apimanager/apimanager.py): `tools/paconn-cli/paconn/apimanager/apimanager.py`
- [Settings builder](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/settings/settingsbuilder.py): `tools/paconn-cli/paconn/settings/settingsbuilder.py`
- [Upload operation](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/operations/upsert.py): `tools/paconn-cli/paconn/operations/upsert.py`
- [File uploader](https://github.com/microsoft/powerplatformconnectors/blob/dev/tools/paconn-cli/paconn/apimanager/fileuploader.py): `tools/paconn-cli/paconn/apimanager/fileuploader.py`

### Other components

- **Platform caller**
- **Snowflake service**
- **CLI user**
- **Power Platform**

## Connections

- Platform caller → SQL endpoints: sends SQL
- Platform caller → Dataset endpoints: requests datasets
- Platform caller → Dataset metadata: requests metadata
- Platform caller → Table endpoints: requests tables
- Platform caller → Table metadata: requests metadata
- Platform caller → Row operations: reads or writes rows
- Platform caller → Test connection: tests connection
- SQL endpoints → SQL operations: invokes (evidence: `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeSQLController.cs`)
- Table metadata → Table metadata provider: invokes (evidence: `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableMetadataController.cs`)
- Row operations → Row data provider: invokes (evidence: `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableDataController.cs`)
- Table endpoints → Table provider: delegates (evidence: `certified-connectors/Snowflake v2/SnowflakeV2CoreLogic/Controllers/SnowflakeTableController.cs`)
- Dataset endpoints → Dataset provider: delegates
- Dataset metadata → Dataset metadata provider: delegates
- Test connection → Connection provider: delegates
- SQL operations → Snowflake HTTP client: uses
- Dataset provider → Snowflake HTTP client: uses
- Dataset metadata provider → Snowflake HTTP client: uses
- Table provider → Snowflake HTTP client: uses
- Table metadata provider → Snowflake HTTP client: uses
- Row data provider → Snowflake HTTP client: uses
- Connection provider → Snowflake HTTP client: uses
- Snowflake HTTP client → Snowflake service: sends requests
- CLI user → Command entry: runs command
- Command entry → Command handlers: dispatches (evidence: `tools/paconn-cli/paconn/__main__.py`)
- Command handlers → Convert connector: routes conversion
- CLI user → Login/logout: requests login
- Login/logout → Token storage: manages credentials
- Platform API client → Token storage: reads token fields (evidence: `tools/paconn-cli/paconn/apimanager/apimanager.py`)
- Convert connector → Settings builder: uses settings (evidence: `tools/paconn-cli/paconn/commands/convert.py`)
- CLI user → Upload operation: requests upload
- Upload operation → File uploader: uses uploader (evidence: `tools/paconn-cli/paconn/operations/upsert.py`)
- Platform API client → Power Platform: sends HTTP requests (evidence: `tools/paconn-cli/paconn/apimanager/apimanager.py`)
