Skip to content

Environments

Karthikeyan Marappan edited this page Sep 27, 2026 · 5 revisions

Environments (v2.0)

Environments are isolated configurations that let you manage multiple ABM/ASM + Jamf Pro tenants from a single app. Each environment is completely independent — credentials, device data, preferences, and logs never mix.


The sidebar

The left sidebar lists all your environments in a native, keyboard-navigable list (v2.4 — arrow keys and VoiceOver both work now). Each row shows:

  • Status icon — sync status (never synced, success, error, running, queued)
  • Name — the display name you gave it
  • Sync recency — "Synced 2h ago" / "Never synced" (v2.4; previously this line just repeated the ABM/ASM scope badge)
  • Scope tag — only shown at all if your environments actually mix ABM and ASM; hidden entirely when they're all one scope (v2.4)

Click any environment to switch to it. The rest of the app (Setup, Sync, Dashboard, Devices, Export) immediately reflects that environment's data.

Environment switching is always allowed — even while a sync is running. Browsing another environment's Dashboard or Devices does not interrupt an in-progress sync.


Sync All — running multiple environments

Click Sync All in the sidebar header (visible when two or more environments exist) to open the sync queue popover.

The popover lists all environments with checkboxes. Select the ones you want to sync, then click Add to Queue. Environments are queued in sidebar order and run one at a time — no parallel Apple API calls.

While the queue is running:

  • A progress banner appears at the top of the app showing which environment is syncing and how many remain
  • Each environment's row shows a spinner (currently syncing) or a clock icon (waiting in queue)
  • Stop & Save in the banner stops the current environment's sync and saves all progress; the queue advances automatically
  • Cancel All stops the current sync and clears the entire remaining queue

You can freely browse any environment's Dashboard, Devices, Export, or Sync tab while the queue runs.


Adding an environment

Click + in the sidebar header. Enter a name and click Add Environment. The new environment opens in Setup — enter credentials and tap the ABM or ASM button to set the account type, then test auth before running a sync.

The account type (ABM or ASM) is set automatically from your credentials — you do not need to choose it upfront. The sidebar label updates as soon as you tap the scope button in Setup.

Each environment starts empty. Its device data is populated on the first sync.


Renaming

As of v2.4, rename is inline — double-click a row's name, or select the row and press Return. The name becomes an editable field; press Return again (or click away) to commit, or Esc to cancel. Right-click → Rename… does the same thing. (Pre-v2.4, this opened a separate popover.)

Duplicate names are resolved automatically with a numeric suffix (e.g. Acme Corp (2)).


Deleting

Hover over an environment row and click the trash icon, or right-click → Delete…. As of v2.4 the trash icon is hover-only — it's no longer permanently visible next to the active environment.

A confirmation sheet appears listing exactly what will be deleted:

  • All cached device data and coverage records
  • All Jamf sync history
  • Credentials stored in Keychain
  • All sync preferences and timestamps

Type the environment name to confirm, then click Delete Permanently. This cannot be undone.

The last remaining environment cannot be deleted — the app requires at least one.


Data isolation

Data Storage Isolation
ABM/ASM credentials Keychain, key prefix env.{uuid}.axm.{scope}.* Per environment · scope-namespaced (ABM and ASM credentials coexist independently)
Jamf credentials Keychain, key prefix env.{uuid}.jamf.* Per environment
Device cache SQLite at Application Support/AxM Jamf Sync/environments/{uuid}.sqlite Per environment
Sync preferences UserDefaults prefix env.{uuid}. Per environment
Log file ~/Library/Containers/com.karthikmac.axmjamfsync/Data/Library/Logs/AxMJamfSync/environments/{uuid}.log Per environment

v1 → v2 migration

On the first launch after upgrading from v1.x, a migration sheet appears briefly while the app:

  1. Copies your v1 credentials to the Default environment's Keychain namespace
  2. Moves the existing SQLite database to the environments folder
  3. Copies sync timestamps and preferences

Migration is automatic and transparent — your existing device data, coverage results, and write-back history are all preserved in the Default environment. You don't need to re-sync.

After migration completes, the v1 flat Keychain keys are deleted. The Default environment UUID is always 00000000-0000-0000-0000-000000000001.


Log files

Each environment writes to its own log file. Use Help → Open Sync Log in Console to open the active environment's log. The log directory is:

~/Library/Containers/com.karthikmac.axmjamfsync/Data/Library/Logs/AxMJamfSync/environments/

Clone this wiki locally