Atlas project production

Mosyle to/from Snipe-IT Asset and Tag Sync

Reconcile Mosyle inventory with Snipe-IT assets and push asset-tag corrections back into Mosyle on a repeating district operations cadence.

Internal-only entry. Do not publish externally without review.
Type
System
Lifecycle
Active
Last touched
2026-03-26
Visibility
Internal

Purpose

Keep Mosyle and Snipe-IT aligned so device operations do not have to correct inventory drift manually.

Current state

The registry now treats this as an active production workflow with a documented 30-minute cadence between 06:00 and 23:00. Script evidence narrows write-scope uncertainty: `snipeit_sync_mosyle.sh` performs Snipe-IT create/update plus Mosyle passback (`mosyle_api updatecsv`) for tvOS/macOS/iOS, while `snipeit_sync_mosyle_asset_tags.sh` is a narrower Mosyle asset-tag update path. Host/scheduler normalization now identifies `sal-01.bousd.us` + Linux cron as the primary runtime pattern, with `snipeit_sync_mosyle.sh` as the evidenced scheduled wrapper.

Next step

Publish one runbook naming the canonical scheduled wrapper on `sal-01`, approval authority for write-enabled runs, credential custodian, fallback operator, and when the asset-tags-only sidecar is allowed.

Interfaces

Inputs
  • Mosyle device inventory
  • Snipe-IT asset records
  • mapping JSON
  • scheduled wrapper runs
Outputs
  • Snipe-IT asset updates
  • Mosyle asset-tag updates
  • CSV audit artifacts

Reality to Action trace

Reality Ingestion

Contributes in this stage.

Canonical Storage

Not in scope.

Automation Engines

Not in scope.

Human Interfaces

Contributes in this stage.

Operational Adoption

Contributes in this stage.

Core workflow

TBD. Document the 5-10 steps that define the core workflow.

Data integrity and contracts

Source of truth rules

  • Mosyle is canonical for MDM-side device state.
  • Snipe-IT is canonical for asset inventory state and asset-tag governance where district policy defines it as the inventory record.
  • The sync exists to reduce drift, not to let either side accumulate undocumented override rules.

Safe handling

  • Restrict API credentials and mapping files.
  • Treat CSV exports and asset-tag corrections as internal operational artifacts.
  • Document approval expectations for write-enabled reconciliation runs.

Operational notes

Reliability posture

The registry now documents an active 30-minute reconciliation loop (`aether/docs/cron-example.txt`), with strong script-level evidence of write actions in both directions. Host normalization maps this cron-driven Linux workflow primarily to `sal-01.bousd.us`. Key remaining risks are approval/governance boundaries for write-enabled runs and credential custody.

Observability

  • CSV artifacts in data/
  • wrapper stdout/stderr
  • drift symptoms in Mosyle and Snipe-IT when runs fail

Security and privacy

Device-assignment context, asset tags, and API credentials are internal operational data and should remain restricted.

Dependencies

Upstream
  • Mosyle API access
  • Snipe-IT API access
  • mapping accuracy
  • scheduler ownership
Downstream
  • device refresh planning
  • asset reconciliation workflows

Ownership

Owners

Technology Services

Users

Technology Services, device operations staff

Mosyle to/from Snipe-IT Asset and Tag Sync

Operational Notes

  • Wrapper scripts provide the live district workflow: full reconciliation via snipeit_sync_mosyle.sh and targeted asset-tag updates via snipeit_sync_mosyle_asset_tags.sh.
  • The workflow exports Mosyle devices, maps them against Snipe-IT, updates Snipe-IT assets, and can push corrected asset tags back into Mosyle.
  • Runtime-path evidence in aether/docs/cron-example.txt currently schedules snipeit_sync_mosyle.sh every 30 minutes; the asset-tags-only wrapper appears available as a sidecar/manual path.
  • Runtime host context: this cron-based workflow is now normalized to sal-01.bousd.us for Linux automation.
  • Notification evidence is partial: snipeit_sync_mosyle.sh sends a summary through email_template_mailer --override-email ..., but Atlas still needs the official escalation/distribution list and backup operator map.
  • Related component page: MDM Integration Automation (Mosyle).

Registry Alignment

  • Mapped registry entry: INT-071.
  • Registry clarified: this is the production workflow layer above the standalone Mosyle API component.
  • Validation gaps: approved write-mode authority, escalation recipient map, and explicit primary-versus-sidecar wrapper governance remain unresolved.