Azure integration

Create integration

Create an Azure integration with SuperAnnotate to upload items from your Azure storage into your projects. SuperAnnotate will have read-only access to your data; your items are stored in your Azure storage and are only displayed in SuperAnnotate.

Step 1: Begin integration setup

azure integration setup

  1. Click on your Organization.
  2. Go to the Integrations tab.
  3. Click New Integration.
  4. Select Azure Integration.
  5. In the Create Azure Integration pop-up, type the name of your integration under Integration name.
  6. Under Teams, you can add the integration to one or multiple teams (optional). The integration will be available in the selected team(s) only.

📘

It is also possible to set up an integration through the Team Setup tab.

🚧

Only Organization Owners can set up an integration from the Organization tab.

Step 2: Create storage account

azure storage account

  1. Go to the Azure portal and click on Storage Accounts.
  2. Click + Create.
  3. Type in a name for your storage account in the Storage account name field.
  4. Click Review.
  5. When the account is ready, click Create.
  6. Go back to SuperAnnotate’s integration setup page.
  7. Enter your storage account name in the corresponding field.

Step 3: Create Azure container

azure container

The Azure Container is where your items will be uploaded to and imported from.

To create a container:

  1. In the Azure portal, click on the storage account created in Step 2.
  2. In the left panel, under Data storage, click on Containers.
  3. Click + Container.
  4. Type in a name for your container (max 120 characters).
  5. Click Create.
  6. Go back to SuperAnnotate’s integration setup page.
  7. Enter your container name in the corresponding field.

Step 4: Annotation location

azure annotation location

Choose an Annotation location. This will decide where your annotation data will be stored:

  • SuperAnnotate - your annotation data will be stored on our servers.
  • Azure container - type in the location path where the annotations will be stored. SuperAnnotate requires read, write and delete access to the provided location.

📘

  • Choosing an annotation location allows you to maintain an extra level of project privacy and security by ensuring that all annotation data will be stored in a location of your choice. If the provided location doesn’t exist, it will be created when you annotate an item from that bucket. The path to the annotated JSON file will be as follows: BUCKET_NAME / ANNOTATION_LOCATION / data / TEAM_ID / ANNOTATION_JSON.json
  • Please note that if your annotation JSON file is too large, it’ll have to be temporarily downloaded and processed to make it available, then deleted after 24 hours. For video projects, this applies to files that exceed 5MB. For other project types, this applies to files that exceed 15MB.

🚧

Future upload methods will be defined based on the annotation location type of the chosen integration. Learn more.

❗️

The Explore, Insights and Analytics features will be unavailable for any project that uses integrations whose annotations aren’t stored on SuperAnnotate’s servers.

Step 5: Register single-tenant application

azure single tenant applicationA registered application will allow you to provide SuperAnnotate the necessary roles to access your container.

  1. In the Azure portal, go to App registrations.
  2. Click + New registration.
  3. Type in a name for your registration.
  4. Make sure that under Support account types, you have selected: Accounts in this organizational directory only (Default Directory only - Single tenant)
  5. Click Register.
  6. Copy the Application (client) ID and the Directory (tenant) ID from your registered application’s page and paste them into their respective fields in the integration setup page.

Step 6: Create client secret

azure client secret

  1. When in the registered application page, go to Certificates & secrets in the left panel.
  2. Click + New client secret.
  3. Type in a name for the secret.
  4. Select an expiry date.
  5. Click Add.
  6. You’ll need to copy the Value key. Make sure to save it somewhere safe, because when you return to this page later, the key will no longer be visible.
  7. Go back to SuperAnnotate’s integration setup page.
  8. Paste the copied key under the Client secret field.

Step 7: Grant access to registered application

Providing access to your Storage account

azure application access
  1. In the Azure portal, go to the storage account created in Step 2.
  2. In the left panel, click on Access Control (IAM).
  3. Click + Add.
  4. Select Add role assignment.
  5. Search for Storage Blob Delegator.
  6. Click Next.
  7. Under Members, click + Select members.
  8. Select the registered application created in Step 5.
  9. Click Select.

Providing access to your Container

azure container access
  1. Go to the container created in Step 3.
  2. In the left panel, click on Access Control (IAM).
  3. Click + Add.
  4. Select Add role assignment.
  5. Search for Storage Blob Data Reader.
  6. Click Next.
  7. Under Members, click + Select members.
  8. Select the registered application created in Step 5.
  9. Click Select.

Providing access to the annotation location

azure annotation location access

If you've selected your Azure container as your annotation location, then you must provide the Storage Blob Data Contributor role to the specified path:

  1. Go to the container created in Step 3.
  2. In the left panel, click on Access Control (IAM).
  3. Click + Add.
  4. Select Add role assignment.
  5. Search for Storage Blob Data Contributor.
  6. Click Next.
  7. Under Members, click + Select members.
  8. Select the registered application created in Step 5.
  9. Go to the Conditions tab.
  10. Click + Add condition.
  11. Under Condition #1, click + Add action and provide the following:
    • Write to a blob
    • Create a blob or snapshot, or append data
    • Delete a blob
  12. Next, in Build expression, click + Add expression. For the following fields, select these options:
    • Attribute source: Resource
    • Attribute: Container name
    • Operator: StringEquals
    • Value: [Your container name]
  13. Next, click + Add expression again and select these options:
    • Attribute source: Resource
    • Attribute: Blob path
    • Operator: StringLike
    • Value: [Annotation Folder Name]/*
  14. Between both expressions above, select And.
  15. Click Save.
  16. Click Review + assign twice.

Step 8: Finalize and create

azure create integration

Once you’ve completed the steps above, go back to SuperAnnotate’s integration setup page and click Create.

Validate Integration

To validate your Azure integration:

  1. In Integrations, find your integration.
  2. Click the three dots .
  3. Select Check connection.

Edit team

If you need to make your integration available for more teams, or you want to revoke a team's access to it, you may edit the permissions accordingly.

To add or remove an integration to one or multiple teams:

  1. In Integrations, find your integration.
  2. Click the three dots .
  3. Select Edit team.
  4. Add one or multiple teams from the dropdown, or remove a team by clicking the X on their name. To add all teams, choose Select all. To remove all teams, click the X on the right side of the field.
  5. Click Save.

Delete integration

To delete an integration:

  1. In Integrations, find your integration.
  2. Click the three dots .
  3. Select Delete Integration.
  4. In the popup, click Delete.

🚧

Please note that by deleting the integration, any items uploaded to your projects from this integration will no longer be accessible.

Add items with Azure integration

You can add items from your Azure container to your projects (excluding Tiled Imagery).

  1. In Data, click Add.
  2. Select Upload Images, Upload Videos, or Upload Documents (depending on your project type).
  3. Go to External Storage.
  4. In Integrations, choose an integration (mandatory) and type a folder path (optional).
  5. Click Upload.

🚧

Folder paths

  • Note that when you type in a folder path, all items within that folder will be uploaded. You won't be able to select and choose specific files from the folder.
  • SuperAnnotate supports a two-level folder structure. This means that you can have items and folders in a project, but you can’t create or upload subfolders. For example, let’s say you want to upload a folder from your cloud storage to the root folder of your project. If that folder has several items and a subfolder, the subfolder will be excluded. If you want to upload items from that subfolder, you’ll have to specify its location path: FOLDER 1 / SUBFOLDER

🚧

Enable CORS for Text Projects

You’ll need to enable CORS in your storage to be able to make use of your items in the Text Editor. Learn more.