chore(m365): bump connector to 2.0.0 to dispatch dbt full-refresh (#736) - #1879
Conversation
Step 2 of the constructorfabric#736 cleanup. 1.0.0 (constructorfabric#1875) established the semver baseline as a `migration` with no data action. This MAJOR bump makes reconcile dispatch a one-shot `dbt --full-refresh` over `dbt_select` (tag:m365+) per ADR-0015, which re-materializes the m365 staging + downstream silver from append-only bronze and thereby purges the unlicensed collab rows that incremental models left behind before the constructorfabric#736 filter landed. PREREQUISITE: deploy only after the 1.0.0 release has reconciled to the live environment. If the Airbyte-side current version is still the legacy non-semver "2026.05.04", classify_bump treats this as `migration` and NO full-refresh is dispatched. Refs constructorfabric#736. Signed-off-by: Roman Mitasov <Roman.Mitasov@constructor.tech> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 59 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Step 2 of the #736 cleanup (step 1 = #1875, which moved the descriptor to
1.0.0).Why
The #736 unlicensed-user filter only affects go-forward source selection. The M365 collab feeders are
materialized='incremental', so rows materialized before the filter landed (unlicensed users withisLicensed=false/null, or explicitly-emptyassignedProducts) are not retro-deleted and keep flowing into silver/gold.Per ADR-0015, a MAJOR descriptor bump makes reconcile dispatch a one-shot
dbt --full-refreshover the connector'sdbt_select(tag:m365+). That re-materializes the m365 staging models + downstream silverclass_collab_*from append-only bronze, applying the license filter to all history and purging the stale unlicensed rows.The full-refresh only fires if the currently reconciled version is already semver (
1.0.0).classify_bumpcompares the descriptor target against the Airbyte-side current:1.0.0(semver) →major→ full-refresh dispatched ✅2026.05.04(non-semver) →migration→ no full-refresh ❌So this PR must be deployed only after #1875 (
1.0.0) has reconciled to the live environment. If both land in the same reconcile with no intermediate tick, the current side is still2026.05.04and this degrades to amigration.Scope / safety
tag:m365+re-materializes only m365's downstream (incl. silver models that union m365; bronze is append-only so unrelated sources are read, not resynced) — per ADR-0015.Refs #736. Follows #1875.
🤖 Generated with Claude Code