Skip to content

v0.9.0 -- Type Registry

Released: March 2026

This release introduces a declarative type registry that replaces per-type boilerplate code, adds instance-level type selection, real-time sync progress, and broken reference detection.

What's New

Instance Settings

Choose which of the 12 Zendesk configuration types to sync per connection. Disabling a type stops future syncs but preserves existing snapshots. Re-enabling pulls fresh data on the next sync.

Types are grouped into 5 categories with toggle switches and category-level select/deselect controls. All 12 types are enabled by default.

Learn more about Instance Settings

Sync Progress Indicator

A real-time progress bar replaces the simple "Syncing..." spinner. See which type is being synced, your position in the sequence, elapsed time, and completed types with item counts.

The indicator polls every 1 second and collapses to a summary after completion.

Learn more about Sync Progress

Broken Reference Detection

Six new health checks (REF-001 through REF-006) detect configuration items that reference deleted or missing Zendesk objects. The scanner cross-references dependency data against snapshot history to flag triggers, automations, macros, views, SLA policies, and ticket forms with broken references.

Findings appear in the health check dashboard, PDF reports, and AI-powered executive summary.

Learn more about Broken Reference Detection

Improved Dependency Accuracy

Dependency extraction accuracy improved by 24%, from 374 to 463 dependencies on a typical instance. Eight missing reference patterns were ported from the frontend, and two new target types (schedules and brands) are now captured. String-ID coercion bug fixed, eliminating silent drops of group, brand, assignee, and ticket form references.

What Changed

Type Registry

All 12 Zendesk object types are now defined in a single declarative registry file. This replaced ~857 lines of per-type boilerplate with ~550 lines of registry-driven code, a net reduction of ~617 lines. Adding a new type is now a ~20-line config entry instead of touching 12--20 files.

Key changes:

  • ZendeskService: 12 per-type getter methods replaced by a single fetchConfigType() method
  • SyncService: 13 per-type sync methods replaced by a single syncType() method
  • SyncController: 13 handlers collapsed into 1 parameterised handler
  • Routes: 15 hardcoded routes collapsed into 3 parameterised routes
  • parseFieldReference: Refactored from ~170-line if/else chain to ~45-line registry-driven pattern matcher

Health Checks

The health check engine now includes 32 checks (previously 26). The 6 new checks are broken reference detections (REF-001 through REF-006) in the Data Hygiene category.

Sync Filtering

Full sync now respects each connection's enabled types configuration. Disabled types are skipped, reducing sync time proportionally. Selective (single-type) sync validates against the enabled types list.

Database Migration

This release includes a backward-compatible database migration:

  • add_enabled_types -- Adds an enabledTypes column to the connection model. Existing connections are backfilled with all 12 types enabled. An empty array means "sync all types", ensuring pre-migration connections work identically without any changes.

Upgrade Notes

  • No action required. The migration is fully backward-compatible.
  • Existing connections continue to sync all types by default.
  • Health check scores may change slightly due to the 6 new broken reference checks.