CSV Import

How to Import Data from CSV Files into Veza

You can use a CSV file to upload identity and entitlement metadata for applications without a native integration. Importing from CSV is especially useful when the application provides a way to export this data from a management console or API.

Uploading CSV data creates a custom application provider and data source. It also populates Authorization Graph entities with the specified attributes. It is currently possible to create Users, Groups, and Roles with this method.

Preparing a CSV File

CSV stands for "Comma-Separated Values." It's a widely used file format that stores tabular data (numbers and text) in plain text format. A CSV file typically contains a set of records, where each record corresponds to a single row of the table, and each field in the table is separated by a comma.

When importing via CSV, the system anticipates the following column headers:

  • Last Name

  • First Name

  • User ID (required)

  • Email Address

  • Active

  • Groups (group names separated by commas)

  • Roles (role names separated by commas)

Here's an example:

Last Name,First Name,User ID,Email Address,Active,Groups,Roles
Smith,John,Joh,john@example.com,Active,"sales, marketing, it-support","Admin, User"
Johnson,Emily,Emi,emily@example.com,Inactive,"it-support","SuperAdmin, User"
Brown,Michael,Mic,michael@example.com,Active,"hr, finance",User
Davis,Laura,Lau,laura@example.com,Active,"sales, sec-eng",User
Wilson,Robert,Rob,robert@example.com,Active,"sales, it-support","SuperAdmin, User"
Martinez,Susan,Sus,susan@example.com,Inactive,marketing,User
Anderson,David,Dav,david@example.com,Inactive,it-support,"SuperAdmin, User"

Notes:

  • Active field will set the user to active if the field case insensitively matches any of the following values. Otherwise will default to setting user to inactive.

    • active

    • enabled

    • true

    • t

    • yes

    • y

    • 1

  • Display name will be the combination of "{First Name} {Last Name}" unless both fields are empty, in which case it will use the User ID for display name. Either name column can be used alone for single column display name

  • Email address is used as an external identity for the user if supplied. It will also be stored as the email property on the user.

  • If a row does not have a User ID it will be skipped

Formatting

The exact steps to create a CSV with the required data will vary based on the application. However, the general flow should look like:

  1. Export Data: Initiate a data export from the application's API. This could yield data in formats like JSON, XML, or directly in CSV.

  2. Transform Data:

    • Ensure the data is in CSV.

    • Ensure roles, groups, or similar fields are comma-separated in the CSV.

  3. Map Fields: Align fields from the exported data to those required by Veza. Rename or adjust fields as necessary.

  4. Clean Data:

    • Remove inconsistencies and ensure fields have valid values.

  5. Save as CSV: If using software like Excel or Google Sheets, export the data as a .csv file.

  6. Review & Test:

    • Check a few rows for accuracy.

    • Test import a subset of data, if possible, before the full upload.

Adding a CSV Integration

To establish a new custom provider, data source, and input the initial data:

  1. Go to Configurations > Integrations > Create Integration.

  2. Choose Upload CSV from the options.

  3. If desired, upload a logo for the provider.

  4. Provide a name for the provider and click Next. The Provider name will be used as the application name and type.

  5. Specify a name for the data source and proceed by clicking Next.

  6. Upload your desired CSV file and finalize by clicking Create Integration.

Download the Sample CSV Template Here:

Updating a CSV Integration

Should you need to update an existing data source with fresh data:

  1. Navigate to Configurations > Integrations.

  2. Search for the relevant integration using its name and select Edit.

  3. Upload the CSV file that contains the new set of data.

Only full updates are accepted at this time. Incremental updates are not supported; submit the complete data set for each update.

Last updated