# JSON

### Connecting to JSON Data Sources <a href="#connecting-to-json-data-sources" id="connecting-to-json-data-sources"></a>

Below is an overview of the authentication properties corresponding to each data source:

| **Service provider** | **URI formats**                                                            | **InitiateOAuth** | **OAuthClientId** | **OAuthClientSecret** | **OAuthAccessToken** | **OAuthAccessTokenSecret** | **User** | **Password** | **AuthScheme** | **AzureAccount** | **AzureAccessKey**        | **AWSAccessKey**          | **AWSSecretKey**          | **AWSRegion** |
| -------------------- | -------------------------------------------------------------------------- | ----------------- | ----------------- | --------------------- | -------------------- | -------------------------- | -------- | ------------ | -------------- | ---------------- | ------------------------- | ------------------------- | ------------------------- | ------------- |
| Local                | <p>localPath</p><p>file://localPath</p>                                    |                   |                   |                       |                      |                            |          |              |                |                  |                           |                           |                           |               |
| HTTP or HTTPS        | <p><http://remoteStream></p><p><https://remoteStream></p>                  |                   |                   |                       |                      |                            | OPTIONAL | OPTIONAL     | OPTIONAL       |                  |                           |                           |                           |               |
| Amazon S3            | s3://remotePath                                                            |                   |                   |                       |                      |                            |          |              |                |                  |                           | REQUIRED (your AccessKey) | REQUIRED (your SecretKey) | OPTIONAL      |
| Azure Blob Storage   | azureblob://mycontainer/myblob/                                            |                   |                   |                       |                      |                            |          |              |                | REQUIRED         | REQUIRED (your AccessKey) |                           |                           |               |
| Google Drive         | gdrive://remotePath                                                        | OPTIONAL          | OPTIONAL          | OPTIONAL              | OPTIONAL             | OPTIONAL                   |          |              |                |                  |                           |                           |                           |               |
| Box                  | box://remotePath                                                           | OPTIONAL          | REQUIRED          | REQUIRED              | OPTIONAL             | OPTIONAL                   |          |              |                |                  |                           |                           |                           |               |
| Dropbox              | dropbox://remotePath                                                       | OPTIONAL          | REQUIRED          | REQUIRED              | OPTIONAL             | OPTIONAL                   |          |              |                |                  |                           |                           |                           |               |
| SharePoint Online    | sp\://remotePath                                                           |                   |                   |                       |                      |                            | REQUIRED | REQUIRED     |                |                  |                           |                           |                           |               |
| FTP or FTPS          | <p>ftp\://server:port/remotePath</p><p> ftps\://server:port/remotepath</p> |                   |                   |                       |                      |                            | REQUIRED | REQUIRED     |                |                  |                           |                           |                           |               |
| Wasabi               | wasabi://bucket1/remotePath;                                               |                   |                   |                       |                      |                            |          |              |                |                  |                           |                           |                           |               |

### Connecting to Local Files <a href="#connecting-to-local-files" id="connecting-to-local-files"></a>

Set the URI to a JSON file.

Below is an example connection string:<br>

| `URI=C:\folder1\file.json;` |
| --------------------------- |

### Connecting to HTTP JSON Streams <a href="#connecting-to-http-json-streams" id="connecting-to-http-json-streams"></a>

Set the URI to the HTTP or HTTPS URL of the JSON resource you want to access as a table. Set AuthScheme to use the following authentication types. The provider also supports OAuth authentication;&#x20;

* **HTTP**

  To use HTTP Basic or Digest, set the User and Password. Set CustomHeaders if you need access to the request headers. Set CustomUrlParams to modify the URL query string.
* **Windows (NTLM)**

  Set the Windows User and Password to connect and set AuthScheme to "NTLM".
* **Kerberos and Kerberos Delegation**

  To authenticate with Kerberos, set the User and Password and set AuthScheme to NEGOTIATE. To use Kerberos Delegation, set AuthScheme to KERBEROSDELEGATION.

&#x20;For example:<br>

| `URI=http://www.host1.com/streamname1;AuthScheme=BASIC;User=admin;Password=admin` |
| --------------------------------------------------------------------------------- |

### Connecting to Amazon S3 <a href="#connecting-to-amazon-s3" id="connecting-to-amazon-s3"></a>

Set the URI to a JSON document in a bucket. Additionally, set the following properties to authenticate:

* AWSAccessKey: Set this to an Amazon Web Services Access Key (a username).
* AWSSecretKey: Set this to an Amazon Web Services Secret Key.

&#x20;For example:<br>

| `URI=s3://bucket1/folder1/file.json; AWSAccessKey=token1; AWSSecretKey=secret1; AWSRegion=OHIO;` |
| ------------------------------------------------------------------------------------------------ |

&#x20;Optionally, specify AWSRegion.

#### Connecting to Wasabi <a href="#connecting-to-wasabi" id="connecting-to-wasabi"></a>

Set the URI to the bucket and folder. Additionally, set the following properties to authenticate:

* AWSAccessKey: Set this to an Wasabi Access Key (a username)
* AWSSecretKey: Set this to an Wasabi Secret Key.

&#x20;For example:<br>

| `URI=wasabi://bucket1/folder1/file.json; AWSAccessKey=token1; AWSSecretKey=secret1; AWSRegion=OHIO;` |
| ---------------------------------------------------------------------------------------------------- |

&#x20;Optionally, specify AWSRegion in addition.

### Connect to Azure Blob Storage <a href="#connect-to-azure-blob-storage" id="connect-to-azure-blob-storage"></a>

Set the URI to the name of your container and the name of the blob. Additionally, set the following properties to authenticate:

* AzureAccount: Set this to the account associated with the Azure blob.
* AzureAccessKey: Set the to the access key associated with the Azure blob.

&#x20;For example:<br>

| `URI=azureblob://mycontainer/myblob; AzureAccount=myAccount; AzureAccessKey=myKey;` |
| ----------------------------------------------------------------------------------- |

### Connecting to Google Drive <a href="#connecting-to-google-drive" id="connecting-to-google-drive"></a>

&#x20;Set the URI to the path to a JSON file. To authenticate to Google APIs, use the OAuth authentication standard. You can connect with a user account or a service account. In the user account flow, you do not need to set any connection properties for your user credentials, as shown in the connection string below:<br>

| `URI=gdrive://folder1/file.json;InitiateOAuth=GETANDREFRESH;` |
| ------------------------------------------------------------- |

### Connecting to Box <a href="#connecting-to-box" id="connecting-to-box"></a>

Set the URI to the path to a JSON file. To authenticate to Box, use the OAuth authentication standard.  You can authenticate with a user account or a service account. In the user account flow, you do not need to set any connection properties for your user credentials, as shown in the connection string below:<br>

| `URI=box://folder1/file.json; InitiateOAuth=GETANDREFRESH;` |
| ----------------------------------------------------------- |

### Connecting to Dropbox <a href="#connecting-to-dropbox" id="connecting-to-dropbox"></a>

Set the URI to the path to a JSON file. To authenticate to Dropbox, use the OAuth authentication standard. You can authenticate with a user account or a service account. In the user account flow, you do not need to set any connection properties for your user credentials, as shown in the connection string below:<br>

| `URI=dropbox://folder1/file.json; InitiateOAuth=GETANDREFRESH; OAuthClientId=oauthclientid1; OAuthClientSecret=oauthcliensecret1; CallbackUrl=http://localhost:12345;` |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### Connecting to SharePoint Online <a href="#connecting-to-sharepoint-online" id="connecting-to-sharepoint-online"></a>

Set the URI to a document library containing JSON files. To authenticate, set User and Password and SharepointUrl.<br>

| `URI=sp://Documents/folder1/file.json; User=user1; Password=password1; SharepointUrl=https://subdomain.sharepoint.com;` |
| ----------------------------------------------------------------------------------------------------------------------- |

### Connecting to FTP <a href="#connecting-to-ftp" id="connecting-to-ftp"></a>

Set the URI to the address of the server followed by the path to a JSON file. To authenticate, set User and Password.<br>

| `URI=ftps://localhost:990/folder1/file.json; User=user1; Password=password1;` |
| ----------------------------------------------------------------------------- |

### Securing JSON Connections <a href="#securing-json-connections" id="securing-json-connections"></a>

By default, the provider attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store. To specify another certificate, see the SSLServerCert property for the available formats to do so.
