Summary
Rename the concept of "profile" (a stored set of credentials for a Jamf instance) to "tenant" throughout the CLI. The current terminology is confusing because "profile" collides with "configuration profile" — a core Jamf concept.
Context
From discussion on #31 — @grahampugh raised that "profile" is confusing, especially when documented as "config profile". "Tenant" aligns with the direction of Jamf Platform APIs and is unambiguous.
Scope
This is a large, sweeping change:
User-facing
--profile flag → --tenant (keep --profile as hidden deprecated alias for backwards compat)
JAMF_PROFILE env var → JAMF_TENANT (support both, prefer new)
config add-profile → config add-tenant
config remove-profile → config remove-tenant
config list output column
config set-default description
pro setup --profile-name → pro setup --tenant-name
multi --profiles → multi --tenants
- All help text, error messages, wiki docs, README
Config file
profiles: key → tenants: (with auto-migration from old key)
default-profile: → default-tenant:
Internal
config.Profile struct → config.Tenant
config.GetProfile() → config.GetTenant()
- Package-level
profile var in root.go
keychain.KeychainRef format
- All test fixtures
Migration
- Auto-detect old
profiles: key in config and migrate to tenants: on first load (similar to existing path migration)
- Keep
--profile as a hidden alias so existing scripts don't break
References
Summary
Rename the concept of "profile" (a stored set of credentials for a Jamf instance) to "tenant" throughout the CLI. The current terminology is confusing because "profile" collides with "configuration profile" — a core Jamf concept.
Context
From discussion on #31 — @grahampugh raised that "profile" is confusing, especially when documented as "config profile". "Tenant" aligns with the direction of Jamf Platform APIs and is unambiguous.
Scope
This is a large, sweeping change:
User-facing
--profileflag →--tenant(keep--profileas hidden deprecated alias for backwards compat)JAMF_PROFILEenv var →JAMF_TENANT(support both, prefer new)config add-profile→config add-tenantconfig remove-profile→config remove-tenantconfig listoutput columnconfig set-defaultdescriptionpro setup --profile-name→pro setup --tenant-namemulti --profiles→multi --tenantsConfig file
profiles:key →tenants:(with auto-migration from old key)default-profile:→default-tenant:Internal
config.Profilestruct →config.Tenantconfig.GetProfile()→config.GetTenant()profilevar inroot.gokeychain.KeychainRefformatMigration
profiles:key in config and migrate totenants:on first load (similar to existing path migration)--profileas a hidden alias so existing scripts don't breakReferences