Skip to content

feat(activesync): ops snapshot service over State + SyncCache #216

Description

@TDannhauer

Parent

Epic: horde/ActiveSync#99
Depends on: horde/ActiveSync health evaluator (Ops DTOs)
Design: horde/ActiveSync doc/ops-monitor.md (§3, §8, Issue B)

Summary

Add a read-only SnapshotService in Core that builds fleet/device health from Horde_ActiveSyncState + SyncCache, using the ActiveSync Ops evaluator.

  • Factory / injector binding
  • Criteria: user, deviceId, activeWithin, healthMin, stuckOnly, limit, sort
  • Optional per-device log path hint from Horde config (logging.type = perdevice)
  • Unit tests with stub state

Acceptance

  • Read-only (no wipe/block/reset)
  • SQL state supported; Mongo best-effort via same State API
  • Permission-agnostic (CLI/Web callers enforce admin rights)
  • No duplicated heuristics (calls ActiveSync Ops types)

Consumers

  • hordectl activesync …
  • horde/admin/activesync.php health badges

Activity

  1. TDannhauer commented on Jul 31, 2026

    @TDannhauer
    ContributorAuthor

    Note: admin UI consumer is horde/base (admin/activesync.php), not archived horde/horde. Tracker: horde/base#144

  2. TDannhauer commented on Jul 31, 2026

    @TDannhauer
    ContributorAuthor

    CLI consumers are standalone horde-activesync in horde/base (#145/#146), not hordectl. Web consumer: horde/base#144

  3. TDannhauer commented on Sep 18, 2026

    @TDannhauer
    ContributorAuthor

    Implementation is ready in #229. It adds the read-only SnapshotService, criteria and fleet DTOs, injector wiring, log-path hints, and focused tests. It consumes the health model from horde/ActiveSync#107.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions