PR #195 includes the following updates:
- Adds DuckDB as a supported destination.
PR #193 includes the following updates:
- Fixes a runtime error on Snowflake and BigQuery that occurred when an issue's concatenated comments exceeded the warehouse's string length limit. The
conversationfield injira__issue_enhancednow returns'conversation too long to render'for those issues instead of failing the entire run.count_commentsis unaffected. The character threshold defaults to 16,777,216 (16MB) but can be lowered using thejira_conversation_char_limitvariable. See the README for configuration details and the DECISIONLOG for per-warehouse details.
PR #191 includes the following updates:
- Migrates the
union_connections,apply_source_relation, andpartition_by_source_relationmacros to thedbt_fivetran_utilspackage. - Adds the
fivetran_using_source_casingvariable for case-sensitive destination support. When enabled, downstream transformations respect source casing to ensure consistent results. See the Additional Configurations section of the README for details.
PR #186 includes the following updates:
-
Adds configurable table variable
Include Team Dimension in Sprint Enhancedto control whether theteamcolumn is included injira__sprint_enhanced. Variable is set totrueby default. When set tofalse, the table rolls up to one row per sprint with all metrics aggregated at the sprint level. Only applicable if theteamtable is synced in your connector. -
For dbt Core users: Introduces
jira_sprint_enhanced_include_teamsvariable to control whether the team dimension is included injira__sprint_enhanced. This variable only applies whenjira_using_teamsis also enabled. See the README on how to configure this variable.
- Fixes an issue in
jira__sprint_enhancedwhereoriginal_estimate_seconds,remaining_estimate_seconds, andtime_spent_secondswere undercounted when multiple issues in the same sprint shared identical estimate values. The model now correctly sums estimates per issue before aggregating to the sprint level.
PR #184 includes the following updates:
- Adds a new variable
jira_sprint_enhanced_include_teams(defaulttrue) to control whether the team dimension is included injira__sprint_enhanced. When set tofalse, the model rolls up to one row per sprint with all metrics aggregated at the sprint level. This variable only applies whenjira_using_teamsis also enabled. (docs)
- Fixes an issue in
jira__sprint_enhancedwhereoriginal_estimate_seconds,remaining_estimate_seconds, andtime_spent_secondswere undercounted when multiple issues in the same sprint shared identical estimate values. The model now correctly sums estimates per issue before aggregating to the sprint level.
PR #182 includes the following updates:
- For warehouses using the
insert_overwritestrategy, updates the incremental filter injira__daily_issue_field_historyto align with the model's partition grain. This helps prevent issues with incomplete partition coverage.- You must run a
--full-refreshafter upgrading to apply this fix to existing data.
- You must run a
- Updates integrity test for
jira__daily_sprint_issue_historyto track the last sprint-related event per day, ensuring that only sprint IDs recorded at the final event timestamp for each issue/day are included.
PR #178 includes the following updates:
- Updates
jira__sprint_enhancedto resolve the team per issue per sprint whenjira_using_teamsis enabled. Previously, if an issue had no team assigned at any point during the sprint, the team would appear as null even if a team was later assigned. An additional row would also be created if an issue moved from one team to another within a sprint, causing potential double counting. Now, the model selects the most recent non-null team for each issue-sprint combination, ensuring team assignments are correctly reflected in sprint metrics.
- Updated the
jira__sprint_enhancedmodel description in the README to clarify that granularity is one row per team per sprint when teams are enabled.
PR #175 includes the following updates:
3 total changes • 3 possible breaking changes
| Data Model(s) | Change type | Old | New | Notes |
|---|---|---|---|---|
jira__daily_issue_field_history jira__daily_sprint_issue_history jira__issue_enhanced |
Removed default columns (Breaking Change) | story_points and story_point_estimate included by default |
Columns only included when added to var('issue_field_history_columns') |
These fields are Scrum-specific custom fields not universally used. Add the relevant fields to the issue_field_history_columns variable to retain them. |
jira__sprint_enhanced |
Removed default columns (Breaking Change) | story_points_committed, story_points_end, story_points_completed, story_point_estimate_committed, story_point_estimate_end, and story_point_estimate_completed included by default |
Columns only included when story points and/or story point estimate are added to var('issue_field_history_columns') |
These metrics depend on story_points/story_point_estimate being tracked in field history. Add the relevant fields to the issue_field_history_columns variable to retain them. |
jira__daily_sprint_issue_history jira__sprint_enhanced |
Column type change | story_points and story_point_estimate cast as float |
Cast as numeric |
Improves precision for fractional story point values. |
- Updated
stg_jira__sprintto filter out soft-deleted sprint records using the_fivetran_deletedflag.
- Adds a new
convert_string_to_numericmacro with warehouse-specific dispatch implementations to safely cast story point string values to numeric, handling edge cases such as comma-formatted numbers.
- Updates model descriptions to remove static documentation for
story_points,story_point_estimate, andteamcolumns. Removes story point-related column documentation fromjira__sprint_enhancedas these columns are dynamic and only present when added tovar('issue_field_history_columns').- To retain story point data, add
story pointsand/orstory point estimateto theissue_field_history_columnsvariable in yourdbt_project.yml(See the README for details). Quickstart users can add these fields in the Issue Field History Columns setting.
- To retain story point data, add
PR #170 includes the following update:
1 total change • 1 possible breaking change
| Data Model(s) | Change type | Old | New | Notes |
|---|---|---|---|---|
jira__daily_issue_field_history |
Incremental filter fix (Breaking Change) | Filtered by date_day >= max_date_week |
Filtered by date_week >= max_date_week |
Aligns the incremental filter with the model's weekly partition key. The previous filter could cause data loss during partition overwrites in BigQuery and Databricks destinations on incremental runs. could cause data loss during partition overwrites on incremental runs. A full refresh is recommended to backfill any records that may have been missed. |
PR #174 includes the following updates:
- In the
quickstart.ymlfile:- Made several corrections to Quickstart
supported_varsdescriptions to reflect correct time granularity forjira_issue_history_bufferandlookback_windowvariables.
- Made several corrections to Quickstart
PR #171 includes the following updates:
- Optimizes the
jira__daily_sprint_issue_historymodel for Databricks destinations by adjusting thesplit_sprint_ids()macro.
- Adjusts the vertical integrity
jira__daily_sprint_issue_historytest to incorporate the sprint start date.
PR #170 includes the following updates:
- Fixed incremental filtering in
jira__daily_issue_field_historyandint_jira__pivot_daily_field_historyto align with the model's weekly partition key, preventing potential data loss during partition overwrites.updated_at_weekis now calculated in upstream models (int_jira__issue_field_historyandint_jira__issue_multiselect_history).
- Made several corrections to Quickstart
supported_varsdescriptions.
PR #168 includes the following updates:
5 total changes • 3 possible breaking changes
| Data Model(s) | Change type | Old | New | Notes |
|---|---|---|---|---|
jira__daily_sprint_issue_history |
Date range (Breaking Change) | From the start of the sprint to the last day an issue was added to it | From the start of the sprint to its end | Initially, model incorrectly tracked issues after being removed from sprint or days missing in sprint when issues were added early. Extends tracking period to full sprint lifecycle, creating additional daily records and changing historical data structure. If no end date is provided, sprints will be tracked up to the current date. PR #169 |
jira__daily_sprint_issue_history |
Removed column (Breaking Change) | Included updated_at column |
Column removed | Previously model tracked timestamp when sprint assignment was updated. New logic uses sprint date ranges instead of tracking individual update events. PR #169 |
jira__daily_issue_field_history |
New column (Breaking Change) | Tracked sprint (sprint IDs) as a default field. |
Now also tracks sprint_name (sprint names) |
Provides human-readable sprint names alongside sprint IDs. PR #162 |
jira__timestamp_issue_field_history |
New columns | Only tracked status as a default field |
Now tracks sprint (sprint IDs), sprint_name (sprint names) as default fields alongside status |
Brings timestamp model closer to parity with daily model. Story points fields are configurable via issue_field_history_columns variable. PR #162 |
jira__daily_sprint_issue_historyjira__sprint_enhanced |
New column | team |
Adds team column. You can disable team functionality by leveraging the jira_using_teams variable in dbt Core (Quickstart will handle enable/disable automatically). See the README for configuration details. PR #163 |
- Fixes compilation errors in
int_jira__pivot_daily_field_history,int_jira__pivot_timestamp_field_historywhensprintorsprint_namewere included in theissue_field_history_columnsvariable.int_jira__timestamp_field_history_scdalso handles this logic, along withstory_pointsandstory_point_estimate. These fields are now properly excluded from the custom columns loop since they're handled as default fields. PR #162 - Optimizes joins in
jira__daily_sprint_issue_historyto allow for quicker full refresh runs. PR #169
- Creates
split_sprint_ids()macro to unnest thejira__daily_issue_field_history.sprintfield. PR #169 - Adjusts the issue field history null placeholder from
is_nullto-is_nullfor more consistent aggregations. PR #169
- Adds missing field descriptions.
PR #169 includes the following updates:
1 total change • 1 possible breaking change
| Data Model(s) | Change type | Old | New | Notes |
|---|---|---|---|---|
jira__daily_sprint_issue_history |
Date range | From the start of the sprint to the last day an issue was added to it | From the start of the sprint to its end | If no end date is provided, sprints will be tracked up to the current date. |
- Ensures
jira__daily_sprint_issue_historyprovide an accurate history of sprints and the issues associated with them at the time. Previously:- When an issue was removed from a sprint, the model would continue to track them together.
- If a sprint ended over a month after an issue was last added to it, the model omitted the days in between these dates.
- Optimizes joins in
jira__daily_sprint_issue_historyto allow for quicker full refresh runs.
- Creates
split_sprint_ids()macro to unnest thejira__daily_issue_field_history.sprintfield. - Adjusts the issue field history null placeholder from
is_nullto-is_nullfor more consistent aggregations.
PR #165 includes the following updates:
- Updates README with standardized Fivetran formatting.
- Removes duplicative column yml definitions.
- In the
quickstart.ymlfile:- Adds
table_variablesfor relevant sources to prevent missing sources from blocking downstream Quickstart models. - Adds
supported_varsfor Quickstart UI customization.
- Adds
PR #161 includes the following updates:
- Ensures that issues in
jira__issue_enhancedproperly reflect their current sprint assignments. Previously, if an issue was assigned to a sprint and later unassigned (leaving it with no sprint), the old sprint would persist as the issue'scurrent_sprint_nameandcurrent_sprint_id.
- Fixes
vertical_integrity_sprint_enhancedtest to filter out deleted issues (as done instg_jira__issue) to align source/end model issue counts by sprint. - Excludes more fields that are aggregated strings with non-deterministic orders to the exclude columns set in
consistency_issue_enhanced.
PR #159 includes the following updates:
- Increases the required dbt version upper limit to v3.0.0
PR #158 includes the following updates:
- Ensures that issues in
jira__issue_enhancedproperly reflect their current sprint assignments. Previously, if an issue was assigned to a sprint and later unassigned (leaving it with no sprint), the old sprint would persist as the issue'scurrent_sprint_nameandcurrent_sprint_id.
PR #157 includes the following updates:
** 6 total change • 5 possible breaking changes**
| Data Model(s) | Change type | Old | New | Notes |
|---|---|---|---|---|
| All models | New column | source_relation |
Identifies the source connection when using multiple Jira connections | |
jira__daily_issue_field_history |
Updated surrogate key | issue_day_id = issue_id + date_day |
issue_day_id = issue_id + date_day + source_relation |
Updated to include source_relation |
jira__daily_sprint_issue_history |
Updated surrogate key | sprint_issue_day_id = issue_id + sprint_id + date_day |
sprint_issue_day_id = issue_id + sprint_id + date_day + source_relation |
Updated to include source_relation |
jira__timestamp_issue_field_history |
Updated surrogate key | issue_timestamp_id = issue_id + valid_from |
issue_timestamp_id = issue_id + valid_from + source_relation |
Updated to include source_relation |
int_jira__pivot_daily_field_history int_jira__field_history_scd |
Updated surrogate key | issue_day_id = issue_id + valid_starting_on |
issue_day_id = issue_id + valid_starting_on + source_relation |
Updated to include source_relation |
- Union Data Functionality: This release supports running the package on multiple Jira source connections. See the README for details on how to leverage this feature.
- Removes
issue_typefromexception_colsset injira__timestamp_issue_field_historyto avoid compilation errors when the field is included in theissue_field_history_columnsvariable.
- Removes uniqueness tests. The new unioning feature requires combination-of-column tests to consider the new
source_relationcolumn in addition to the existing primary key, but this is not supported across dbt versions. - These tests will be reintroduced once a version-agnostic solution is available.
We have kept uniqueness tests on the surrogate keys listed above.
- Consistency tests introduced and updated on all end models to validate that the above changes do not impact end model values.
7 total changes • 5 possible breaking changes
| Data Model(s) | Change type | Old | New | Notes |
|---|---|---|---|---|
| jira__timestamp_issue_field_history | New Model (Breaking Change) | SCD Type 2 table tracking field changes at timestamp level with validity periods. Each record shows complete field state during a time period with valid_from/valid_until timestamps. |
||
| jira__issue_status_transitions | New Model (Breaking Change) | Issue status transition tracking with workflow analysis. Provides chronological view of status changes with timing metrics, transition direction analysis, and lifecycle indicators. | ||
| stg_jira__team | New Model (Breaking Change) | Adds staging model for Jira teams functionality. You can leverage the jira__using_teams variable to disable this model in dbt Core (Quickstart will handle enabling/disabling automatically). |
||
| stg_jira__team_tmp | New Model (Breaking Change) | Adds temp model for Jira teams functionality. You can leverage the jira__using_teams variable to disable this model in dbt Core (Quickstart will handle enabling/disabling automatically). |
||
| jira__daily_issue_field_history | Data Change (Breaking Change) | If configured - project, assignee, team brought in with default field id values. |
If configured - project, assignee, team names now brought through. |
Fields customers can define with the issue_field_history_columns variable that bring in their identifier values now bring in the names for easier analytical insights. |
| stg_jira__issue_field_history | New Column | author_id |
Tracks which user made each field change for audit trail and change attribution. | |
| stg_jira__issue_multiselect_history | New Column | author_id |
Tracks which user made each multiselect field change for audit trail and change attribution. |
- Adds support for Jira teams functionality by introducing staging models
stg_jira__teamandstg_jira__team_tmp. - Enhances issue field history models to include team information if teams are enabled.
- When teams are enabled, team data will populate in the
jira__daily_issue_field_historymodel to track team assignments over time and thejira__issue_enhancedmodel to provide current team assignment for each issue.
- When teams are enabled, team data will populate in the
- Creates new analysis folder with
jira__issue_transition_cumulative_flow_analysisandjira_daily_issue_status_category_analysismodels. See the analysis README.md for more details on how to use these models for your Jira reporting.
- Introduces relevant team related seed data, macros, and variables to ensure team support.
- Creates new ephemeral intermediate models that perform necessary operations to build the new
jira__timestamp_issue_field_historymodels.int_jira__pivot_timestamp_field_history: Table pivoting out the fields in field history into columns at the timestamp level to capture all field changes rather than just daily snapshots.int_jira__timestamp_field_history_scd: Slowly-changing-dimension model that backfills field values at the timestamp level.
- Introduces relevant team related seed data, macros, and variables to ensure team support.
- Creates consistency tests for new end models.
PR #145 includes the following updates:
- Removed the dependency on the
fivetran/jira_sourcepackage.- All functionality from the source package has been merged into this transformation package for improved maintainability and clarity.
- If you reference
fivetran/jira_sourcein yourpackages.yml, you must remove this dependency to avoid conflicts. - Any source overrides referencing the
fivetran/jira_sourcepackage will also need to be removed or updated to reference this package. - Update any jira_source-scoped variables to be scoped to only under this package. See the README for how to configure the build schema of staging models.
- As part of the consolidation, vars are no longer used to reference staging models, and only sources are represented by vars. Staging models are now referenced directly with
ref()in downstream models.
- Updated package to maintain compatibility with dbt-core versions both before and after v1.10.6, which introduced a breaking change to multi-argument test syntax (e.g.,
unique_combination_of_columns). - Temporarily removed unsupported tests to avoid errors and ensure smoother upgrades across different dbt-core versions. These tests will be reintroduced once a safe migration path is available.
- Removed all
dbt_utils.unique_combination_of_columnstests. - Moved
loaded_at_field: _fivetran_syncedunder theconfig:block insrc_jira.yml.
- Removed all
- Updated conditions in
.github/workflows/auto-release.yml. - Added
.github/workflows/generate-docs.yml.
PR #140 includes the following updates:
Note: This is not relevant to Fivetran Quickstart users.
Migrated freshness from a top-level source property to a source config in alignment with recent updates from dbt Core (Jira Source v0.9.0). This will resolve the following deprecation warning that users running dbt >= 1.9.6 may have received:
[WARNING]: Deprecated functionality
Found `freshness` as a top-level property of `jira` in file
`models/src_jira.yml`. The `freshness` top-level property should be moved
into the `config` of `jira`.
IMPORTANT: Users running dbt Core < 1.9.6 will not be able to utilize freshness tests in this release or any subsequent releases, as older versions of dbt will not recognize freshness as a source config and therefore not run the tests.
If you are using dbt Core < 1.9.6 and want to continue running Jira freshness tests, please elect one of the following options:
- (Recommended) Upgrade to dbt Core >= 1.9.6
- Do not upgrade your installed version of the
jirapackage. Pin your dependency on v0.20.0 in yourpackages.ymlfile. - Utilize a dbt override to overwrite the package's
jirasource and apply freshness via the previous release top-level property route. This will require you to copy and paste the entirety of the previous releasesrc_jira.ymlfile and add anoverrides: jira_sourceproperty.
- Changed casting of
sprint_idto a string rather than an integer injira__daily_sprint_issue_historyto resolve casting errors.
- Updates to ensure integration tests use latest version of dbt.
The latest version of PR #138 contains the following updates:
- Changed casting of
sprint_idto a string rather than an integer injira__daily_sprint_issue_historyto resolve casting errors.
- Updated the package maintainer pull request template.
- Updated
consistency_issue_enhancedtest to exclude columns that depend on calculations involving the current timestamp to remove failures. - Updated the sprint integrity tests to handle the new
sprint_idcasting.
PR #138 contains the following updates:
- Moved casting of integer of
sprint_idinjira__daily_sprint_issue_historyinto a later CTE to avoid casting errors wherefield_valueis a string.
- Updated the package maintainer pull request template.
- Updated
consistency_issue_enhancedtest to exclude columns that depend on calculations involving the current timestamp to remove failures.
This release includes the following updates.
8 total changes • 6 possible breaking changes (requires a --full-refresh run after upgrading)
| Data Model | Change Type | Old Name | New Name | Notes |
|---|---|---|---|---|
| jira__daily_sprint_issue_history | New Model | Each record represents a snapshot of a sprint and its assorted issues on a given day between the sprint start date and the most recent update to the sprint. | ||
| jira__sprint_enhanced | New Model | This model provides enhanced sprint-level metrics in Jira, incorporating data from sprints, sprint-related issue history, and sprint-based story points tracking. | ||
| jira__daily_issue_field_history | New Columns | story_points, story_point_estimate |
Adding story point fields by default to persist to sprint/issue end models. | |
| jira__issue_enhanced | New Columns | story_points, story_point_estimate |
Adding story point fields by default to persist to sprint/issue end models. | |
| jira__user_enhanced | New Columns | is_active |
Helps show the active user records. | |
| stg_jira__issue_multiselect_history | New Columns | is_active |
Shows which of the field history values is the current one. | |
| stg_jira__issue_field_history | New Columns | is_active |
Shows which of the field history values is the current one. | |
| stg_jira__issue_user | New Columns | is_active |
Shows which of the field history values is the current one. |
- Added
story_pointsandstory_point_estimateas default fields in thejira__daily_issue_field_historyandjira__issue_enhancedmodels. (#136)- Important: These fields are now included by default. If your
issue_field_history_columnsvariable already includesstory_pointsorstory_point_estimate, you must remove them and run a--full-refreshto avoid duplication errors.
- Important: These fields are now included by default. If your
- Introduced two new models:
jira__daily_sprint_issue_historyto look at daily sprint issue snapshots, andjira__sprint_enhancedto examine high level sprint metrics, such as velocity, time tracking and story point completion. Customers should now be able to build valuable sprint visualizations, like their own velocity reports, estimation tracking, and goal metrics. (#136) - If users are not utilizing the
sprintsource, these models can be disabled by setting the variablejira_using_sprintstofalse. More instructions are available in the README. (#136)
- Added consistency and integrity tests for the
jira__sprint_enhancedmodel. (#136) - Added new
jira__daily_sprint_issue_historyandjira__sprint_enhancedto public models in thequickstart.ymlconfiguration. (#136) - Corrected formatting on intermediate and end models to conform with best practices and improve readability. (#136)
- Updated yml documentation and README with new models, fields and descriptions. (#136)
- Created a DECISIONLOG to explain why we bring in multiple metrics from current sprint data as well as historical sprint data for the
jira__sprint_enhancedmodel. (#136) - Added Quickstart model counts to README. (#135)
- Corrected references to connectors and connections in the README. (#135)
PR #133 contains the following updates:
- This change is marked as breaking due to its impact on Redshift configurations.
- For Redshift users, comment data aggregated under the
conversationsfield in thejira__issue_enhancedtable is now disabled by default to prevent consistent errors related to Redshift's varchar length limits.- If you wish to re-enable
conversationson Redshift, set thejira_include_conversationsvariable totruein yourdbt_project.yml.
- If you wish to re-enable
- Updated the
commentseed data to ensure conversations are correctly disabled for Redshift by default. - Renamed the
jira_is_databricks_sql_warehousemacro tojira_is_incremental_compatible, which was updated to returntrueif the Databricks runtime is an all-purpose cluster (previously it checked only for a SQL warehouse runtime) or if the target is any other non-Databricks-supported destination.- This update addresses Databricks runtimes (e.g., endpoints and external runtimes) that do not support the
insert_overwriteincremental strategy used in thejira__daily_issue_field_historyandint_jira__pivot_daily_field_historymodels.
- This update addresses Databricks runtimes (e.g., endpoints and external runtimes) that do not support the
- For Databricks users, the
jira__daily_issue_field_historyandint_jira__pivot_daily_field_historymodels will now apply the incremental strategy only if running on an all-purpose cluster. All other Databricks runtimes will not utilize an incremental strategy. - Added consistency tests for the
jira__project_enhancedandjira__user_enhancedmodels.
PR #131 contains the following updates:
Since the following changes are breaking, a
--full-refreshafter upgrading will be required.
- Changed the partitioning from days to weeks in the following models for BigQuery and Databricks All Purpose Cluster destinations:
int_jira__pivot_daily_field_history- Added field
valid_starting_at_weekfor use with the new weekly partition logic.
- Added field
jira__daily_issue_field_history- Added field
date_weekfor use with the new weekly partition logic.
- Added field
- This adjustment reduces the total number of partitions, helping avoid partition limit issues in certain warehouses.
- For Databricks All Purpose Cluster destinations, updated the
file_formattodeltafor improved performance. - Updated the default materialization of
int_jira__issue_calendar_spinefrom incremental to ephemeral to improve performance and maintainability.
- Updated README with the new default of 1 week for the
lookback_windowvariable.
- Replaced the deprecated
dbt.current_timestamp_backcompat()function withdbt.current_timestamp()to ensure all timestamps are captured in UTC for the following models:int_jira__issue_calendar_spineint_jira__issue_joinjira__issue_enhanced
- Updated model
int_jira__issue_calendar_spineto prevent errors during compilation. - Added consistency tests for the
jira__daily_issue_field_historyandjira__issue_enhancedmodels.
PR #127 contains the following updates:
⚠️ Since the following changes are breaking, a--full-refreshafter upgrading will be required.
- To reduce storage, updated the default materialization of the upstream staging models to views. (See the dbt_jira_source CHANGELOG for more details.)
-
Updated the incremental strategy of the following models to
insert_overwritefor BigQuery and Databricks All Purpose Cluster destinations anddelete+insertfor all other supported destinations.int_jira__issue_calendar_spineint_jira__pivot_daily_field_historyjira__daily_issue_field_history
At this time, models for Databricks SQL Warehouse destinations are materialized as tables without support for incremental runs.
-
Removed intermediate models
int_jira__agg_multiselect_history,int_jira__combine_field_histories, andint_jira__daily_field_historyby combining them withint_jira__pivot_daily_field_history. This is to reduce the redundancy of the data stored in tables, the number of full scans, and the volume of write operations.- Note that if you have previously run this package, these models may still exist in your destination schema, however they will no longer be updated.
-
Updated the default materialization of
int_jira__issue_type_parentsfrom a table to a view. This model is called only inint_jira__issue_users, so a view will reduce storage requirements while not significantly hindering performance. -
For Snowflake and BigQuery destinations, added the following
cluster_bycolumns to the configs for incremental models:int_jira__issue_calendar_spineclustering on columns['date_day', 'issue_id']int_jira__pivot_daily_field_historyclustering on columns['valid_starting_on', 'issue_id']jira__daily_issue_field_historyclustering on columns['date_day', 'issue_id']
-
For Databricks All Purpose Cluster destinations, updated incremental model file formats to
parquetfor compatibility with theinsert_overwritestrategy.
- Added a default 3-day look-back to incremental models to accommodate late arriving records. The number of days can be changed by setting the var
lookback_windowin your dbt_project.yml. See the Lookback Window section of the README for more details. - Added macro
jira_lookbackto streamline the lookback window calculation.
- Added integration testing pipeline for Databricks SQL Warehouse.
- Added macro
jira_is_databricks_sql_warehousefor detecting if a Databricks target is an All Purpose Cluster or a SQL Warehouse. - Updated the maintainer pull request template.
PR #122 contains the following updates:
- The following fields in the below mentioned models have been converted to a string datatype (previously integer) to ensure classic Jira projects may link issues to epics. In classic Jira projects the epic reference is in a hyperlink form (ie. "https://ulr-here/epic-key") as opposed to an ID. As such, a string datatype is needed to successfully link issues to epics. If you are referencing these fields downstream, be sure to make any changes to account for the new datatype.
revised_parent_issue_idfield within theint_jira__issue_type_parentsmodelparent_issue_idfield within thejira__issue_enhancedmodel
- Update README to highlight requirements for using custom fields with the
issue_field_history_columnsvariable.
- Included auto-releaser GitHub Actions workflow to automate future releases.
- Updated the maintainer PR template to resemble the most up to date format.
- Updated
fieldandissue_field_historyseed files to ensure we have an updated test case to capture the epic-link scenario for classic Jira environments.
PR #108 contains the following updates:
- Updated the
jira__daily_issue_field_historymodel to make sureissue_typevalues are correctly joined into the downstream issue models. This applied only ifissue typeis leveraged within theissue_field_history_columnsvariable.
Note: Please be aware that a
dbt run --full-refreshwill be required after upgrading to this version in order to capture the updates.
- Fixed the
jira__daily_issue_field_historymodel to make surecomponentvalues are correctly joined into the downstream issue models. This applied only ifcomponentsare leveraged within theissue_field_history_columnsvariable. (PR #99)
Note: Please be aware that a
dbt run --full-refreshwill be required after upgrading to this version in order to capture the updates.
- Updated the
int_jira__issue_calendar_spinelogic, which now references theint_jira__field_history_scdmodel as an upstream dependency. (PR #104) - Modified the
open_untilfield within theint_jira__issue_calendar_spinemodel to be dependent on theint_jira__field_history_scdmodel'svalid_starting_oncolumn as opposed to theissuetable'supdated_atfield. (PR #104)- This is required as some resolved issues (outside of the 30 day or
jira_issue_history_buffervariable window) were having faulty incremental loads due to untracked fields (fields not tracked via theissue_field_history_columnsvariable or other fields not identified in the history tables such as Links, Comments, etc.). This caused theupdated_atcolumn to update, but there were no tracked fields that were updated, thus causing a faulty incremental load.
- This is required as some resolved issues (outside of the 30 day or
- Added additional seed rows to ensure the new configuration for components properly runs for all edge cases and compare against normal issue field history fields like
summary. (PR #104) - Incorporated the new
fivetran_utils.drop_schemas_automationmacro into the end of each Buildkite integration test job. (PR #98) - Updated the pull request templates. (PR #98)
PR #95 applies the following changes:
- Added the
status_idcolumn as a default field for thejira__daily_issue_field_historymodel. This is required to perform an accurate join for thestatusfield in incremental runs.- Please be aware a
dbt run --full-refreshwill be required following this upgrade.
- Please be aware a
PR #93 applies the following changes:
- Adds the option to use
field_nameinstead offield_idas the field-grain for issue field history transformations. Previously, the package would strictly partition and join issue field data usingfield_id. However, this assumed that it was impossible to have fields with the same name in Jira. For instance, it is very easy to create anotherSprintfield, and different Jira users across your organization may choose the wrong or inconsistent version of the field.- Thus, to treat these as the same field, set the new
jira_field_grainvariable to'field_name'in yourdbt_project.ymlfile. You must run a full refresh to accurately fold this change in.
- Thus, to treat these as the same field, set the new
PR #95 applies the following changes:
- With the addition of the default
status_idfield in thejira__daily_issue_field_historymodel, there is no longer a need to do the extra partitioning to fill values for thestatusfield. As such, thestatuspartitions were removed in place ofstatus_id. However, in the final cte of the model we join in the status staging model to populate the appropriate status per the accurate status_id for the given day.
- Reverting the changes introduced between v0.12.1 except Databricks compatibility. Please stay tuned for a future release that will integrate the v0.12.1 changes in a bug free release. (#88)
- Fixed
jira__daily_issue_field_historymodel to make sure component values are correctly joined into our issue models (#81). - Please note, a
dbt run --full-refreshwill be required after upgrading to this version in order to capture the updates.
- Databricks compatibility 🧱 (#80).
PR #74 includes the following breaking changes:
- Dispatch update for dbt-utils to dbt-core cross-db macros migration. Specifically
{{ dbt_utils.<macro> }}have been updated to{{ dbt.<macro> }}for the below macros:any_valuebool_orcast_bool_to_textconcatdate_truncdateadddatediffescape_single_quotesexcepthashintersectlast_daylengthlistaggpositionreplacerightsafe_castsplit_partstring_literaltype_biginttype_floattype_inttype_numerictype_stringtype_timestamparray_appendarray_concatarray_construct
- For
current_timestampandcurrent_timestamp_in_utcmacros, the dispatch AND the macro names have been updated to the below, respectively:dbt.current_timestamp_backcompatdbt.current_timestamp_in_utc_backcompat
dbt_utils.surrogate_keyhas also been updated todbt_utils.generate_surrogate_key. Since the method for creating surrogate keys differ, we suggest all users do afull-refreshfor the most accurate data. For more information, please refer to dbt-utils release notes for this update.- Dependencies on
fivetran/fivetran_utilshave been upgraded, previously[">=0.3.0", "<0.4.0"]now[">=0.4.0", "<0.5.0"]. - Incremental strategies for all incremental models in this package have been adjusted to use
delete+insertif the warehouse being used is Snowflake, Postgres, or Redshift.
- While this is a patch update, it may also require a full refresh. Please run
dbt run --full-refreshafter upgrading to ensure you have the latest incremental logic.
- Updated logic for model
int_jira__issue_sprintto further adjust how current sprint is determined. It now uses a combination of the newestupdated_atdate for the issue and the neweststarted_atdate of the sprint. This is to account for times when jira updates two sprint records at the same time. (#77 and #78)
- For model
jira__issue_enhanced, updated column namessprint_idandsprint_nametocurrent_sprint_idandcurrent_sprint_name, respectively, to confirm the record is for the current sprint. (#76)
- Updated logic for model
int_jira__issue_sprintto adjust how current sprint is determined. It now uses the neweststarted_atdate of the sprint instead of theupdated_atdate. (#76)
- The default schema for the source tables are now built within a schema titled (
<target_schema>+_jira_source) in your destination. The previous default schema was (<target_schema>+_stg_jira) for source. This may be overwritten if desired. (#63) - Flipped column aliases
sum_close_time_secondsandsum_current_open_secondsof intermediate modelint_jira__user_metrics.sql. (#66) - This ensures that downstream model
jira__user_enhanced.sqlcalculates columnsavg_age_currently_open_secondsandavg_close_time_secondscorrectly. (#66)
- Updated README documentation updates for easier navigation and setup of the dbt package. (#63)
- Added
jira_[source_table_name]_identifiervariables to allow for easier flexibility of the package to refer to source tables with different names. (#63)
- Corrected bug introduced in 0.8.0 that would prevent the correct
statusdata from being passed to modeljira__daily_issue_field_history. (#63)- Please note, a
dbt run --full-refreshwill be required after upgrading to this version in order to capture the updates.
- Please note, a
- Corrected bug introduced in 0.8.0 that would prevent
sprintdata from being passed to modeljira__daily_issue_field_history. (#62)
- Makes priority data optional. Allows new env var
jira_using_priorities. Modelsjira__issue_enhancedandint_jira__issue_joinwon't require sourcejira.priorityor contain priority-related columns ifjira_using_priorities: false. (#55)
- @everettttt (#55)
- Previously the
jira__daily_field_historyandjira__issue_enhancedmodels allowed for users to leverage theissue_field_history_columnsto bring through customfield_ids. However, thefield_idwas not very intuitive to report off. Therefore, the package has been updated to bring through thefield_namevalues in the variable and persist through to the final models. (#54)- Please note, if you leveraged this variable in the past then you will want to update the
field_id(customfield_000123) to be thefield_name(Cool Custom Field) now. Further, adbt run --full-refreshwill be required as well.
- Please note, if you leveraged this variable in the past then you will want to update the
- Multi-select fields that are populated within the
jira__daily_issue_field_historyandjira__issue_enhancedmodels are automatically joined withstg_jira__field_optionto ensure the field names are populated. (#54)
🎉 dbt v1.0.0 Compatibility 🎉
- Adjusts the
require-dbt-versionto now be within the range [">=1.0.0", "<2.0.0"]. Additionally, the package has been updated for dbt v1.0.0 compatibility. If you are using a dbt version <1.0.0, you will need to upgrade in order to leverage the latest version of the package.- For help upgrading your package, I recommend reviewing this GitHub repo's Release Notes on what changes have been implemented since your last upgrade.
- For help upgrading your dbt project to dbt v1.0.0, I recommend reviewing dbt-labs upgrading to 1.0.0 docs for more details on what changes must be made.
- Upgrades the package dependency to refer to the latest
dbt_jira_source. Additionally, the latestdbt_jira_sourcepackage has a dependency on the latestdbt_fivetran_utils. Further, the latestdbt_fivetran_utilspackage also has a dependency ondbt_utils[">=0.8.0", "<0.9.0"].- Please note, if you are installing a version of
dbt_utilsin yourpackages.ymlthat is not in the range above then you will encounter a package dependency error.
- Please note, if you are installing a version of
- This release of the
dbt_jirapackages implements changes to the incremental logic within various models highlighted in the Bug Fixes section below. As such, adbt run --full-refreshwill be required after upgrading this dependency for this package in yourpackages.yml.
- Corrected CTE references within
int_jira__issue_assignee_resolution. The final cte referenced was previously selecting fromissue_field_historywhen it should have been selecting fromfiltered. (#45) - Modified the incremental logic within
int_jira__agg_multiselect_historyto properly capture latest record. Previously, this logic would work for updates made outside of 24 hours. This logic update will now capture any changes since the previous dbt run. (#48)
- Modified the
int_jira__issue_calendar_spinemodel to use thedbt-utils.current_timestamp_in_utcto better capture the current datetime across regions. (#47)
- @thibonacci (#45)
Refer to the relevant release notes on the Github repository for specific details for the previous releases. Thank you!