# Azure DevOps schema ERD

Table and field reference for the Fivetran Azure DevOps connector.

## Table & Field Reference

### commit_parents

| Column | Type | Keys |
| --- | --- | --- |
| commit_id | String | PK, FK |
| parent_commit_id | String | PK, FK |

### commit_change_counts

| Column | Type | Keys |
| --- | --- | --- |
| change_counts_name | Unknown | PK |
| commit_id | String | PK, FK |
| change_counts_value | Unknown |  |

### commit

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| push_by_id | String | FK |
| repository_id | String | FK |
| author_date | Unknown |  |
| author_email | String |  |
| author_name | String |  |
| comment | String |  |
| comment_truncated | Boolean |  |
| committed_date | Unknown |  |
| committed_email | String |  |
| committed_name | String |  |
| push_date | Unknown |  |
| push_id | Int |  |
| remote_url | String |  |
| tree_id | String |  |
| url | String |  |

### project

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| team_id | String | FK |
| abbreviation | String |  |
| capabilities_process_template_name | String |  |
| capabilities_process_template_type_id | String |  |
| capabilities_version_control_git_enabled | String |  |
| capabilities_version_control_source_control_type | String |  |
| capabilities_version_control_tfvc_enabled | String |  |
| default_team_image_url | String |  |
| description | String |  |
| last_update_time | Unknown |  |
| name | String |  |
| revision | Int |  |
| state | String |  |
| url | String |  |
| visibility | String |  |

### repository

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| parent_repository_id | String | FK |
| project_id | String | FK |
| default_branch | String |  |
| is_disabled | Boolean |  |
| is_fork | Boolean |  |
| name | String |  |
| remote_url | String |  |
| size | Long |  |
| ssh_url | String |  |
| url | String |  |
| valid_remote_urls | Json |  |
| web_url | String |  |

### plan

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| created_by_id | String | FK |
| modified_by_id | String | FK |
| project_id | String | FK |
| created_date | Unknown |  |
| description | String |  |
| modified_date | Unknown |  |
| name | String |  |
| revision | Int |  |
| type | String |  |
| user_permissions | String |  |
| custom_properties_** |  |  |

### item

| Column | Type | Keys |
| --- | --- | --- |
| object_id | String | PK |
| project_id | String | PK |
| repository_id | String | PK, FK |
| commit_id | String | FK |
| latest_processed_change | String | FK |
| content | String |  |
| git_object_type | String |  |
| is_folder | Boolean |  |
| is_symlink | Boolean |  |
| original_object_id | String |  |
| path | String |  |
| url | String |  |

### installed_extension_scope

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| installed_extension_id | Unknown | PK, FK |
| scope | Unknown |  |

### installed_extension_contribution_authentication_schema

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| installed_extension_contribution_id | Unknown | PK |
| installed_extension_id | Unknown | PK |
| type | Unknown | PK |
| description | Unknown |  |
| input_mode | Unknown |  |
| is_confidential | Unknown |  |
| name | Unknown |  |
| validation_datatype | Unknown |  |
| validation_is_required | Unknown |  |
| value_default_value | Unknown |  |
| value_input_id | Unknown |  |
| value_is_disabled | Unknown |  |

### installed_extension_contribution_target

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| installed_extension_id | Unknown | PK, FK |
| target | Unknown |  |

### installed_extension_contribution_constraint

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| installed_extension_id | Unknown | PK, FK |
| name | Unknown |  |
| property_extension_id | Unknown |  |

### installed_extension_contribution_restricted

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| installed_extension_id | Unknown | PK, FK |
| member | Unknown |  |

### installed_extension_contribution

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| installed_extension_id | Unknown | PK, FK |
| description | Unknown |  |
| properties_attribute | Unknown |  |
| properties_display_name | Unknown |  |
| properties_name | Unknown |  |
| properties_version | Unknown |  |
| property_url_display_name | Unknown |  |
| property_url_help_text | Unknown |  |
| property_url_is_visible | Unknown |  |
| property_url_value | Unknown |  |
| type | Unknown |  |

### installed_extension_contribution_type

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| installed_extension_id | Unknown | PK, FK |
| description | Unknown |  |
| indexed | Unknown |  |
| name | Unknown |  |
| properties | Json |  |
| visible_to | Unknown |  |

### installed_extension_file

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| installed_extension_id | Unknown | PK, FK |
| asset_type | Unknown |  |
| languages | Unknown |  |
| source | Unknown |  |

### installed_extension

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| base_uri | Unknown |  |
| extension_name | Unknown |  |
| fallback_base_uri | Unknown |  |
| install_state_flag | Unknown |  |
| install_state_last_updated | Unknown |  |
| last_published | Unknown |  |
| manifest_version | Unknown |  |
| publisher_id | Unknown |  |
| publisher_name | Unknown |  |
| registration_id | Unknown |  |
| version | Unknown |  |

### query

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| created_by_id | String | FK |
| last_executed_by_id | String | FK |
| last_modified_by_id | String | FK |
| project_id | String | FK |
| created_date | Unknown |  |
| has_children | Boolean |  |
| is_deleted | Boolean |  |
| is_folder | Boolean |  |
| is_public | Boolean |  |
| last_executed_date | Unknown |  |
| last_modified_date | Unknown |  |
| name | String |  |
| path | String |  |
| type | String |  |

### users

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| access_level_account_license_type | Unknown |  |
| access_level_assignment_source | Unknown |  |
| access_level_git_hub_license_type | Unknown |  |
| access_level_license_display_name | Unknown |  |
| access_level_licensing_source | Unknown |  |
| access_level_msdn_license_type | Unknown |  |
| access_level_status | Unknown |  |
| access_level_status_message | Unknown |  |
| date_created | Unknown |  |
| last_access_date | Instant |  |
| user_descriptor | String |  |
| user_directory_alias | String |  |
| user_display_name | String |  |
| user_domain | String |  |
| user_is_deleted_in_origin | Boolean |  |
| user_legacy_descriptor | String |  |
| user_mail_address | String |  |
| user_meta_type | String |  |
| user_origin | String |  |
| user_origin_id | String |  |
| user_principal_name | String |  |
| user_subject_kind | String |  |
| user_url | String |  |

### backlog

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| project_id | Unknown | PK, FK |
| team_id | Unknown | PK, FK |
| color | String |  |
| is_hidden | Boolean |  |
| name | String |  |
| rank | Int |  |
| type | String |  |
| work_item_count_limit | Int |  |

### process_work_item_type_state

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| process_work_item_type_reference_name | Unknown | PK, FK |
| color | Unknown |  |
| customization_type | Unknown |  |
| name | Unknown |  |
| orders | Unknown |  |
| state_category | Unknown |  |
| url | Unknown |  |

### process_work_item_type

| Column | Type | Keys |
| --- | --- | --- |
| reference_name | Unknown | PK |
| process_type_id | Unknown | PK, FK |
| color | Unknown |  |
| customization | Unknown |  |
| description | Unknown |  |
| icon | Unknown |  |
| inherit | Unknown |  |
| is_disabled | Unknown |  |
| name | Unknown |  |

### status

| Column | Type | Keys |
| --- | --- | --- |
| geography_id | Unknown | PK |
| geography_name | Unknown | PK |
| service_id | Unknown | PK |
| status | Unknown |  |

### project_property

| Column | Type | Keys |
| --- | --- | --- |
| name | String | PK |
| project_id | String | PK, FK |
| value | Json |  |

### backlog_work_item

| Column | Type | Keys |
| --- | --- | --- |
| backlog_id | String | PK, FK |
| project_id | Unknown | PK, FK |
| team_id | Unknown | PK, FK |
| work_item_id | Unknown | PK, FK |

### work_item_revision

| Column | Type | Keys |
| --- | --- | --- |
| revision | String | PK |
| id | String | PK, FK |
| project_id | String | PK, FK |
| multiline_fields_format | Json |  |
| custom_** |  |  |

### users_groups

| Column | Type | Keys |
| --- | --- | --- |
| group_id | String | PK, FK |
| user_id | String | PK, FK |

### pull_request_commit

| Column | Type | Keys |
| --- | --- | --- |
| commit_id | String | PK, FK |
| pull_request_id | Int | PK, FK |

### pull_request_reviewer

| Column | Type | Keys |
| --- | --- | --- |
| pull_request_id | Int | PK, FK |
| reviewer_id | String | PK, FK |

### pull_request_work_item

| Column | Type | Keys |
| --- | --- | --- |
| pull_request_id | Int | PK, FK |
| work_item_id | Unknown | PK, FK |

### pull_request

| Column | Type | Keys |
| --- | --- | --- |
| id | Int | PK |
| auto_complete_set_by | String | FK |
| closed_by | String | FK |
| created_by | String | FK |
| fork_source | String | FK |
| last_merge_commit | String | FK |
| last_merge_source_commit | String | FK |
| last_merge_target_commit | String | FK |
| repository_id | String | FK |
| artifact_id | String |  |
| closed_date | Unknown |  |
| code_review_id | Int |  |
| completion_queue_time | String |  |
| creation_date | Unknown |  |
| description | String |  |
| has_multiple_merge_bases | Boolean |  |
| is_draft | Boolean |  |
| merge_failure_message | String |  |
| merge_failure_type | String |  |
| merge_id | String |  |
| merge_status | String |  |
| remote_url | String |  |
| source_ref_name | String |  |
| status | String |  |
| supports_iterations | Boolean |  |
| target_ref_name | String |  |
| title | String |  |
| url | String |  |

### process

| Column | Type | Keys |
| --- | --- | --- |
| process_type_id | Unknown | PK |
| parent_process_type_id | Unknown | FK |
| customization_type | Unknown |  |
| description | Unknown |  |
| is_default | Unknown |  |
| is_enabled | Unknown |  |
| name | Unknown |  |
| reference_name | Unknown |  |

### blocked_approver

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| approval_id | Unknown | PK, FK |
| project_id | String | PK, FK |
| id | Unknown | FK |
| descriptor | Unknown |  |
| display_name | Unknown |  |
| is_deleted_in_origin | Unknown |  |
| url | Unknown |  |

### approval_step_history

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| approval_id | Unknown | PK, FK |
| approval_step_index | Unknown | PK, FK |
| project_id | String | PK, FK |
| assigned_to_id | Unknown | FK |
| created_by_id | Unknown | FK |
| comment | Unknown |  |
| created_on | Unknown |  |

### approval_step

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| approval_id | Unknown | PK, FK |
| project_id | String | PK, FK |
| actual_approver_id | Unknown | FK |
| assigned_approver_id | Unknown | FK |
| last_modified_by_id | Unknown | FK |
| comment | Unknown |  |
| history | Unknown |  |
| initiated_on | Unknown |  |
| last_modified_on | Unknown |  |
| orders | Unknown |  |
| permission | Unknown |  |
| status | Unknown |  |

### approval

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| project_id | String | PK |
| created_on | Unknown |  |
| execution_order | Unknown |  |
| instructions | Unknown |  |
| iteration | Unknown |  |
| last_modified_on | Unknown |  |
| last_updated_date | Unknown |  |
| min_required_approvers | Unknown |  |
| name | Unknown |  |
| passed_tests | Unknown |  |
| permission | Unknown |  |
| post_process_state | Unknown |  |
| revision | Unknown |  |
| started_date | Unknown |  |
| state | Unknown |  |
| status | Unknown |  |
| total_tests | Unknown |  |
| url | Unknown |  |

### groups

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| description | String |  |
| descriptor | String |  |
| display_name | String |  |
| domain | String |  |
| legacy_descriptor | String |  |
| mail_address | String |  |
| origin | String |  |
| principal_name | String |  |
| subject_kind | String |  |
| url | String |  |

### label

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| pull_request_id | Int | PK, FK |
| active | Boolean |  |
| name | String |  |
| url | String |  |

### team_identity_property

| Column | Type | Keys |
| --- | --- | --- |
| _fivetran_id | String | PK |
| team_id | Unknown | FK |
| type | Unknown |  |
| value | Unknown |  |

### team_groups

| Column | Type | Keys |
| --- | --- | --- |
| group_id | Unknown | PK, FK |
| team_id | Unknown | PK, FK |

### team

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| project_id | Unknown | FK |
| description | Unknown |  |
| identity_custom_display_name | Unknown |  |
| identity_descriptor | Unknown |  |
| identity_is_active | Unknown |  |
| identity_is_container | Unknown |  |
| identity_member_of | Json |  |
| identity_members | Json |  |
| identity_meta_type_id | Unknown |  |
| identity_provider_display_name | Unknown |  |
| identity_resource_version | Unknown |  |
| identity_social_descriptor | Unknown |  |
| identity_subject_descriptor | Unknown |  |
| identity_unique_user_id | Unknown |  |
| name | Unknown |  |

### work_item_relation

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| work_item_id | Unknown | PK, FK |
| related_work_item_id | Unknown | FK |
| attribute_is_locked | Unknown |  |
| attribute_name | Unknown |  |
| rel | String |  |
| url | Unknown |  |

### work_item

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| project_id | Unknown | PK |
| team_id | Unknown | PK |
| revision | Unknown |  |
| url | Unknown |  |
| custom_** |  |  |
| system_assigned_to_** |  |  |
| system_changed_by_** |  |  |
| system_created_by_** |  |  |

### board_row

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| board_id | String | FK |
| name | Unknown |  |

### board_column

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| board_id | String | FK |
| column_type | Unknown |  |
| description | Unknown |  |
| is_split | Unknown |  |
| item_limit | Unknown |  |
| name | Unknown |  |
| state_mappings_epic | Unknown |  |

### board

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| project_id | Unknown | FK |
| team_id | Unknown | FK |
| can_edit | Boolean |  |
| done_field_reference_name | Unknown |  |
| is_valid | Boolean |  |
| name | String |  |
| revision | Int |  |

### project_pipeline

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| project_id | String | PK, FK |
| configuration | Json |  |
| folder | String |  |
| name | String |  |
| revision | String |  |
| url | String |  |

## Relationships

- commit_parents(parent_commit_id) → commit(id)
- commit_parents(commit_id) → commit(id)
- commit_change_counts(commit_id) → commit(id)
- commit(push_by_id) → users(id)
- commit(repository_id) → repository(id)
- project(team_id) → team(id)
- repository(parent_repository_id) → repository(id)
- repository(project_id) → project(id)
- plan(modified_by_id) → users(id)
- plan(created_by_id) → users(id)
- plan(project_id) → project(id)
- item(latest_processed_change) → commit(id)
- item(commit_id) → commit(id)
- item(repository_id) → repository(id)
- installed_extension_scope(installed_extension_id) → installed_extension(id)
- installed_extension_contribution_target(installed_extension_id) → installed_extension_contribution(installed_extension_id)
- installed_extension_contribution_constraint(installed_extension_id) → installed_extension_contribution(installed_extension_id)
- installed_extension_contribution_restricted(installed_extension_id) → installed_extension_contribution(installed_extension_id)
- installed_extension_contribution(installed_extension_id) → installed_extension(id)
- installed_extension_contribution_type(installed_extension_id) → installed_extension(id)
- installed_extension_file(installed_extension_id) → installed_extension(id)
- query(last_modified_by_id) → users(id)
- query(created_by_id) → users(id)
- query(last_executed_by_id) → users(id)
- query(project_id) → project(id)
- backlog(team_id) → team(id)
- backlog(project_id) → project(id)
- process_work_item_type_state(process_work_item_type_reference_name) → process_work_item_type(reference_name)
- process_work_item_type(process_type_id) → process(process_type_id)
- project_property(project_id) → project(id)
- backlog_work_item(work_item_id) → work_item(id)
- backlog_work_item(backlog_id) → backlog(id)
- backlog_work_item(team_id) → team(id)
- backlog_work_item(project_id) → project(id)
- work_item_revision(id) → work_item(id)
- work_item_revision(project_id) → project(id)
- users_groups(user_id) → users(id)
- users_groups(group_id) → groups(id)
- pull_request_commit(commit_id) → commit(id)
- pull_request_commit(pull_request_id) → pull_request(id)
- pull_request_reviewer(reviewer_id) → users(id)
- pull_request_reviewer(pull_request_id) → pull_request(id)
- pull_request_work_item(work_item_id) → work_item(id)
- pull_request_work_item(pull_request_id) → pull_request(id)
- pull_request(last_merge_source_commit) → commit(id)
- pull_request(last_merge_commit) → commit(id)
- pull_request(created_by) → users(id)
- pull_request(closed_by) → users(id)
- pull_request(auto_complete_set_by) → users(id)
- pull_request(repository_id) → repository(id)
- pull_request(last_merge_target_commit) → commit(id)
- pull_request(fork_source) → repository(id)
- process(parent_process_type_id) → process(process_type_id)
- blocked_approver(id) → users(id)
- blocked_approver(project_id) → approval(project_id)
- blocked_approver(approval_id) → approval(id)
- approval_step_history(assigned_to_id) → users(id)
- approval_step_history(created_by_id) → users(id)
- approval_step_history(project_id) → approval_step(project_id)
- approval_step_history(approval_step_index) → approval_step(index)
- approval_step_history(approval_id) → approval_step(approval_id)
- approval_step(last_modified_by_id) → users(id)
- approval_step(assigned_approver_id) → users(id)
- approval_step(actual_approver_id) → users(id)
- approval_step(project_id) → approval(project_id)
- approval_step(approval_id) → approval(id)
- label(pull_request_id) → pull_request(id)
- team_identity_property(team_id) → team(id)
- team_groups(group_id) → groups(id)
- team_groups(team_id) → team(id)
- team(project_id) → project(id)
- work_item_relation(related_work_item_id) → work_item(id)
- work_item_relation(work_item_id) → work_item(id)
- board_row(board_id) → board(id)
- board_column(board_id) → board(id)
- board(project_id) → project(id)
- board(team_id) → team(id)
- project_pipeline(project_id) → project(id)
