> For the complete documentation index, see [llms.txt](https://docs.secure-contacts.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.secure-contacts.com/documentation/app-configuration-policy-name-values-for-sca/sca-configuration-seccontacts.azureblobstorage.md).

# SCA Configuration - SecContacts.AzureBlobStorage

### **SecContacts.AzureBlobStorage** <a href="#seccontacts.azureblobstorage" id="seccontacts.azureblobstorage"></a>

This setting defines Azure Blob Storage (ABS) as an optional data source for contacts.\
It enables Secure Contacts App (SCA) to retrieve contact data from CSV or JSON files stored in Azure Blob Storage. These CSV or JSON files can be exported contacts from any application, including on-premises systems. Exports are parsed, encrypted, and uploaded to Azure Blob Storage using the [ABS Connector (ABScon)](#abs-connector-overview).

* Name: `SecContacts.AzureBlobStorage`
* Value: `[{"name":"<abs name>", "value":"<abs access key>"}]`

The Value property is a JSON array of `name`-`value` pairs.

* If there is only one entry, it becomes the default Azure Blob Storage data source.
* If there are multiple entries, SCA assigns sequential IDs automatically (e.g., `ABS1`, `ABS2`, `ABS3`), regardless of the `name` value.
* Each entry represents a separate CSV or JSON source file.

### **Configuration fields**

<table><thead><tr><th width="139.00006103515625">Field</th><th width="76.99993896484375">Type</th><th width="91.66656494140625">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>name</code></td><td>string</td><td>Yes</td><td>Unique identifier for the Azure Blob Storage entry. Can be any value.</td></tr><tr><td><code>value</code></td><td>string</td><td>Yes</td><td><strong>ABS access key (generated by ABScon)</strong> for the Azure Blob Storage.</td></tr><tr><td><code>targetGroups</code></td><td>string</td><td>No</td><td>Comma-separated list of Microsoft Entra ID Group Object IDs. If specified, only users who are members of at least one of the configured groups can see this datasource. If omitted, the datasource is available to all users.</td></tr></tbody></table>

### Examples

**Single Azure Blob Storage entry**

```json
[
  {
    "name": "ABS1",
    "value": "Xt8TVki4+ndWtqSVTAXTNr(...)0UFWNuDo2du3wZ5w92a7w=="
  }
]
```

Single entry becomes the default Azure Blob Storage data source (`ABS`). No numbering is applied because it’s the only entry.

**Multiple Azure Blob Storage entries**

```json
[
  {
    "name": "ABS1",
    "value": "Xt8TVki4+ndWtqSVTAXTNr(...)0UFWNuDo2du3wZ5w92a7w=="
  },
  {
    "name": "ABS2",
    "value": "Qz1Vki5+abWtqXYTAXTNm(...)1XFWNuDo9du3wZ7x92b=="
  },
  {
    "name": "ABS-Extra",
    "value": "Abc123XyZ(...)7890=="
  }
]
```

Auto-enumeration applies because there are multiple entries:

* First entry → `ABS1`
* Second entry → `ABS2`
* Third entry → `ABS3`

Each entry represents a separate CSV or JSON source file uploaded via the ABS Connector.

**TargetGroups Filter**

```json
[
  {
    "name": "ABS1",
    "value": "Xt8TVki4+ndWtqSVTAXTNr(...)0UFWNuDo2du3wZ5w92a7w==",
    "targetGroups": "15e3a3d2-50a6-43e3-137e-a44316d0b448,6c42cd12-b71e-4ea7-a45c-9e3a9d8b2f87"
  }
]
```

If `targetGroups` are configured, only SCA users who are members of at least one of the specified groups can see this datasource.

### ABS Connector Overview

The Azure Blob Storage Connector (ABScon) is a command-line tool that allows an administrator to:

1. Parse pre-exported contacts from CSV or JSON files.
2. Map properties from any exported format into the SCA contact format.
3. Encrypt the files automatically.
4. Upload the encrypted files to Azure Blob Storage.

Download ABS Connector (ABScon): Contact us for details.

{% hint style="warning" %}
**Note**: The ABS access key must be generated manually for each `Azure Blob Storage entry`. This key can be generated using the ABS Connector (ABScon) during configuration.
{% endhint %}

Once the files are in Azure Blob Storage, SCA can retrieve them as a data source, **treating each file as a separate contact source**.

Each uploaded file can correspond to one entry in SecContacts.AzureBlobStorage. Multiple files can be configured, and SCA will auto-enumerate the data sources (e.g., `ABS1`, `ABS2`, …).

{% hint style="success" %}
**Automation note**: The process can be easily automated using scheduled tasks. For example:

1. Export contacts from the source application into CSV or JSON.
2. Call ABS Connector (ABScon) with parameters and the path to the exported file.
3. ABScon handles parsing, property mapping, encryption, and upload.

This scheduled task can run daily or at any frequency depending on how often the source data changes.
{% endhint %}


---

# 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.secure-contacts.com/documentation/app-configuration-policy-name-values-for-sca/sca-configuration-seccontacts.azureblobstorage.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.
