Azure DevOps is methodology that supports cohesiveness between development and operations into a smooth sailing event allowing organizations to create and improve products at a faster pace than they can with traditional software development approaches.
Supervisor configuration parameters
To configure the connector, following parameters are required.
-
Connector name
-
PAT (Personal Access Token)
NOTE: For more information related to generating a PAT, see Retrieving Personal Access Token.
-
Target URL (https://vsaex.dev.azure.com/{ORGANIZATION_NAME})
-
Project Target URL (https://dev.azure.com/{ORGANIZATION_NAME})
-
Instance DateTime Offset (refer Configuring additional datetime offset in connectors for more details).
Supported objects and operations
Users
Operation |
VERB |
---|---|
Create User |
POST |
Get User by Id |
GET |
List Users |
GET |
Update User |
PUT |
Delete User |
DELETE |
Groups
Operation |
VERB |
---|---|
Create Group |
POST |
Get Group by Id |
GET |
List Groups |
GET |
Update Group |
PUT |
Delete Group |
DELETE |
Projects
Operation |
VERB |
---|---|
Create Project |
POST |
Get Project by Id |
GET |
List Projects |
GET |
Update Project |
PUT |
Delete Project |
DELETE |
Mandatory fields
This section lists the mandatory field required to CREATE a user.
Users (for v1.0 & v2.0)
-
userName
Groups (for v1.0 & v2.0)
-
displayName
-
enterpriseExtension.licenseRule.accountLicenseType
-
enterpriseExtension.licenseRule.licensingSource
-
enterpriseExtension.licenseRule.msdnLicenseType
Projects (for v1.0 & v2.0)
-
displayName
-
capabilities.processTemplateTypeId
-
capabilities.versionSourceControlType
Attributes Mappings
Different mappings associated with this connector are listed in the tables below.
SCIM User | Azure DevOps Parameter |
---|---|
id | id |
userName | user.principalName |
displayName | user.displayName |
emails[].value | user.mailAddress |
enterpriseExtension.accessLevel.licensingSource | accessLevel.licensingSource |
enterpriseExtension.accessLevel.accountLicenseType | accessLevel.accountLicenseType |
enterpriseExtension.accessLevel.msdnLicenseType | accessLevel.msdnLicenseType |
enterpriseExtension.accessLevel.licenseDisplayName | accessLevel.licenseDisplayName |
enterpriseExtension.accessLevel.status | accessLevel.status |
enterpriseExtension.accessLevel.statusMessage | accessLevel.statusMessage |
enterpriseExtension.accessLevel.assignmentSource | accessLevel.assignmentSource |
enterpriseExtension.originId | user.originId |
enterpriseExtension.origin | user.origin |
enterpriseExtension.descriptor | user.descriptor |
enterpriseExtension.subjectKind | user.subjectKind |
enterpriseExtension.metaType | user.metaType |
enterpriseExtension.domain | user.domain |
enterpriseExtension.directoryAlias | user.directoryAlias |
enterpriseExtension.projectEntitlements[].assignmentSource | projectEntitlements[].assignmentSource |
enterpriseExtension.projectEntitlements[].isProjectPermissionInherited | projectEntitlements[].projectPermissionInherited |
enterpriseExtension.projectEntitlements[].projectRefId | projectEntitlements[].projectRef.id |
enterpriseExtension.projectEntitlements[].projectRefName | projectEntitlements[].projectRef.name |
enterpriseExtension.projectEntitlements[].projectGroupType | projectEntitlements[].group.groupType |
enterpriseExtension.projectEntitlements[].projectGroupDisplayName | projectEntitlements[].group.displayName |
enterpriseExtension.groupAssignments[].groupId | groupAssignments[].id |
enterpriseExtension.groupAssignments[].groupDescription | groupAssignments[].group.description |
enterpriseExtension.groupAssignments[].groupDescriptor | groupAssignments[].group.descriptor |
enterpriseExtension.groupAssignments[].groupDisplayName | groupAssignments[].group.displayName |
enterpriseExtension.groupAssignments[].groupDomain | groupAssignments[].group.domain |
enterpriseExtension.groupAssignments[].groupMailAddress | groupAssignments[].group.mailAddress |
enterpriseExtension.groupAssignments[].groupOrigin | groupAssignments[].group.origin |
enterpriseExtension.groupAssignments[].groupOriginId | groupAssignments[].group.originId |
enterpriseExtension.groupAssignments[].groupPrincipalName | groupAssignments[].group.principalName |
enterpriseExtension.groupAssignments[].groupSubjectkind | groupAssignments[].group.subjectKind |
enterpriseExtension.groupAssignments[].status | groupAssignments[].status |
enterpriseExtension.groupAssignments[].groupLicensingSource | groupAssignments[].licenseRule.licensingSource |
enterpriseExtension.groupAssignments[].groupAccountLicenseType | groupAssignments[].licenseRule.accountLicenseType |
enterpriseExtension.groupAssignments[].groupMsdnLicenseType | groupAssignments[].licenseRule.msdnLicenseType |
enterpriseExtension.groupAssignments[].groupLicenseDisplayName | groupAssignments[].licenseRule.licenseDisplayName |
enterpriseExtension.groupAssignments[].groupLicensingRuleStatus | groupAssignments[].licenseRule.status |
enterpriseExtension.groupAssignments[].groupLicensingRuleStatusMessage | groupAssignments[].licenseRule.statusMessage |
enterpriseExtension.groupAssignments[].groupLicensingRuleAssignmentSource | groupAssignments[].licenseRuleAssignmentSource |
meta.created | dateCreated |
SCIM User | Azure DevOps Parameter |
---|---|
id | user.descriptor |
userName | user.principalName |
displayName | user.displayName |
emails[].value | user.mailAddress |
enterpriseExtension.originId | user.originId |
enterpriseExtension.origin | user.origin |
enterpriseExtension.subjectKind | user.subjectKind |
enterpriseExtension.metaType | user.metaType |
enterpriseExtension.domain | user.domain |
enterpriseExtension.directoryAlias | user.directoryAlias |
enterpriseExtension.projectEntitlements[].assignmentSource | projectEntitlements[].assignmentSource |
enterpriseExtension.projectEntitlements[].isProjectPermissionInherited | projectEntitlements[].projectPermissionInherited |
enterpriseExtension.projectEntitlements[].projectRefId | projectEntitlements[].projectRef.id |
enterpriseExtension.projectEntitlements[].projectRefName | projectEntitlements[].projectRef.name |
enterpriseExtension.projectEntitlements[].projectGroupType | projectEntitlements[].group.groupType |
enterpriseExtension.projectEntitlements[].projectGroupDisplayName | projectEntitlements[].group.displayName |
enterpriseExtension.accessLevel.licensingSource | accessLevel.licensingSource |
enterpriseExtension.accessLevel.accountLicenseType | accessLevel.accountLicenseType |
enterpriseExtension.accessLevel.msdnLicenseType | accessLevel.msdnLicenseType |
enterpriseExtension.accessLevel.licenseDisplayName | accessLevel.licenseDisplayName |
enterpriseExtension.accessLevel.status | accessLevel.status |
enterpriseExtension.accessLevel.statusMessage | accessLevel.statusMessage |
enterpriseExtension.accessLevel.assignmentSource | accessLevel.assignmentSource |
SCIM Group | Azure DevOps Parameter |
---|---|
id | id |
displayName | group.displayName |
members[].value | members[].id |
enterpriseExtension.licenseRule.licensingSource | licenseRule.licensingSource |
enterpriseExtension.licenseRule.accountLicenseType | licenseRule.accountLicenseType |
enterpriseExtension.licenseRule.msdnLicenseType | licenseRule.msdnLicenseType |
enterpriseExtension.licenseRule.licenseDisplayName | licenseRule.licenseDisplayName |
enterpriseExtension.licenseRule.status | licenseRule.status |
enterpriseExtension.licenseRule.statusMessage | licenseRule.statusMessage |
enterpriseExtension.licenseRule.assignmentSource | licenseRule.assignmentSource |
enterpriseExtension.originId | group.originId |
enterpriseExtension.origin | group.origin |
enterpriseExtension.descriptor | group.descriptor |
enterpriseExtension.subjectKind | group.subjectKind |
enterpriseExtension.description | group.description |
enterpriseExtension.domain | group.domain |
enterpriseExtension.status | group.status |
enterpriseExtension.principalName | group.principalName |
enterpriseExtension.projectEntitlements[].assignmentSource | projectEntitlements[].assignmentSource |
enterpriseExtension.projectEntitlements[].isProjectPermissionInherited | projectEntitlements[].projectPermissionInherited |
enterpriseExtension.projectEntitlements[].projectRefId | projectEntitlements[].projectRef.id |
enterpriseExtension.projectEntitlements[].projectRefName | projectEntitlements[].projectRef.name |
enterpriseExtension.projectEntitlements[].projectGroupType | projectEntitlements[].group.groupType |
enterpriseExtension.projectEntitlements[].projectGroupDisplayName | projectEntitlements[].group.displayName |
SCIM Group | Azure DevOps Parameter |
---|---|
id | group.descriptor |
displayName | group.displayName |
members[].value | members[].id |
enterpriseExtension.licenseRule.licensingSource | licenseRule.licensingSource |
enterpriseExtension.licenseRule.accountLicenseType | licenseRule.accountLicenseType |
enterpriseExtension.licenseRule.msdnLicenseType | licenseRule.msdnLicenseType |
enterpriseExtension.licenseRule.licenseDisplayName | licenseRule.licenseDisplayName |
enterpriseExtension.licenseRule.status | licenseRule.status |
enterpriseExtension.licenseRule.statusMessage | licenseRule.statusMessage |
enterpriseExtension.licenseRule.assignmentSource | licenseRule.assignmentSource |
enterpriseExtension.originId | group.originId |
enterpriseExtension.origin | group.origin |
enterpriseExtension.subjectKind | group.subjectKind |
enterpriseExtension.description | group.description |
enterpriseExtension.domain | group.domain |
enterpriseExtension.status | group.status |
enterpriseExtension.principalName | group.principalName |
enterpriseExtension.projectEntitlements[].assignmentSource | projectEntitlements[].assignmentSource |
enterpriseExtension.projectEntitlements[].isProjectPermissionInherited | projectEntitlements[].projectPermissionInherited |
enterpriseExtension.projectEntitlements[].projectRefId | projectEntitlements[].projectRef.id |
enterpriseExtension.projectEntitlements[].projectRefName | projectEntitlements[].projectRef.name |
enterpriseExtension.projectEntitlements[].projectGroupType | projectEntitlements[].group.groupType |
enterpriseExtension.projectEntitlements[].projectGroupDisplayName | projectEntitlements[].group.displayName |
SCIM Projects | Azure DevOps Parameter |
---|---|
id | id |
displayName | name |
description | description |
state | state |
visibility | visibility |
revision | revision |
capabilities.processTemplateName | capabilities.processTemplate.templateName |
capabilities.processTemplateTypeId | capabilities.processTemplate.templateTypeId |
capabilities.versionSourceControlType | capabilities.versioncontrol.sourceControlType |
capabilities.versionControlGitEnabled | capabilities.versioncontrol.gitEnabled |
capabilities.versionControlTfvcEnabled | capabilities.versioncontrol.tfvcEnabled |
defaultTeam.id | defaultTeam.id |
defaultTeam.name | defaultTeam.name |
meta.lastModified | lastUpdatedTime |
Connector limitations
-
The userName should be in the format of the email address (The email address of the user which has to be added to the organization).
-
If we use the username that is already existing, the system will not throw a conflict error; instead, it will update that user or return the existing data.
-
Extensions[] are not mapped because the data is not returning from the target in response.
-
If we add a user that already exists in the organisation but is deleted, that user will have the same user ID as it had previously.
-
Only one email per user is supported by target system.
-
Azure DevOps Target System does not return important meta information lastModified for users, lastModified & created for groups and created for projects.
-
At least one writable attribute should be provided while updating a user, group and project.
-
Projects and access levels added indirectly when groups are associated for users are not updatable.
-
Providing an already used display name to a group will return error even though the old group is deleted in target instance.
-
The create or update of a group will be successful even though the target API fails with errors during the membership management operations on the group. This is because the create or update of a group in connector internally handles create/update and membership management.
-
Adding a project with different group types is not supported currently.
-
Pagination in users and projects returns records in multiples of 100.
-
Pagination is not supported in groups.