Rename Apple Business 'Location' to 'Organization Unit' in UI and docs (#44833)
## Summary - Renames Apple Business "Location" / "Locations" to "Organization Unit" / "Organization Units" across user-facing UI strings, documentation, and code comments - Updates the VPP table column header, modal text, error messages, audit log descriptions, YAML configuration docs, and article guides - Underlying API field names (`location` in JSON) and YAML config keys remain unchanged for backward compatibility --- Built for [Mel Pike](https://fleetdm.slack.com/archives/D0AKX7DJFCN/p1778077861693279?thread_ts=1777299502.461149&cid=D0AKX7DJFCN) by [Kilo for Slack](https://kilo.ai/slack) --------- Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> Co-authored-by: melpike <melpike.dev@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: melpike <79950145+melpike@users.noreply.github.com>
This commit is contained in:
co-authored by
kiloconnect[bot]
melpike
Copilot
melpike
parent
90206abeb9
commit
fc907c4634
@@ -112,7 +112,7 @@ Connect Fleet to VPP to deploy [Apple App Store apps](https://fleetdm.com/guides
|
||||
1. In Fleet, select your avatar on the far right of the main navigation menu, and then **Settings > Integrations > MDM**.
|
||||
2. Under **Apple Business (AB)**, select **Add VPP** next to **Volume Purchasing Program (VPP)**.
|
||||
3. Sign in to [Apple Business](https://business.apple.com). If your organization doesn't have an account, select **Sign up now**.
|
||||
4. Head to **Settings > Apps & Books** and download the content token for the location you want to use. Each token is based on a location in Apple Business.
|
||||
4. Head to **Settings > Apps & Books** and download the content token for the organization unit you want to use. Each token is based on an organization unit in Apple Business.
|
||||
5. Upload the content token (.vpptoken file) to Fleet.
|
||||
6. To assign the VPP token to a specific fleet, find the token in the table of VPP tokens. Select the **Actions** dropdown, and then select **Edit fleets**. Use the picker to select which fleet(s) this VPP token should be assigned to.
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ org_settings:
|
||||
# • https://fleetdm.com/guides/apple-mdm-setup#volume-purchasing-program-vpp
|
||||
###########################################################
|
||||
# volume_purchasing_program:
|
||||
# - location: "My location." # This must exactly match a "Location" name in Apple Business (AB).
|
||||
# - location: "My organization unit." # This must exactly match an "Organization Unit" name in Apple Business (AB). Apple previously called this "location." Fleet will rename it to "organization unit" in the next major version.
|
||||
# fleets:
|
||||
# - "💻 Workstations"
|
||||
# - "📱🔐 Personal mobile devices"
|
||||
|
||||
@@ -1141,12 +1141,12 @@ software:
|
||||
ipadTeam,
|
||||
},
|
||||
dryRunAssertion: func(t *testing.T, appCfg *fleet.AppConfig, ds fleet.Datastore, out string, err error) {
|
||||
assert.ErrorContains(t, err, "token with location Does not exist doesn't exist")
|
||||
require.ErrorContains(t, err, "token with organization unit Does not exist doesn't exist")
|
||||
assert.Empty(t, appCfg.MDM.VolumePurchasingProgram.Value)
|
||||
assert.NotContains(t, out, "[!] gitops dry run succeeded")
|
||||
},
|
||||
realRunAssertion: func(t *testing.T, appCfg *fleet.AppConfig, ds fleet.Datastore, out string, err error) {
|
||||
assert.ErrorContains(t, err, "token with location Does not exist doesn't exist")
|
||||
require.ErrorContains(t, err, "token with organization unit Does not exist doesn't exist")
|
||||
assert.Empty(t, appCfg.MDM.VolumePurchasingProgram.Value)
|
||||
assert.NotContains(t, out, "[!] gitops dry run succeeded")
|
||||
},
|
||||
|
||||
@@ -1168,7 +1168,7 @@ org_settings:
|
||||
|
||||
After you've uploaded a [Volume Purchasing Program](https://fleetdm.com/guides/macos-mdm-setup#volume-purchasing-program-vpp) (VPP) token, the `volume_purchasing_program` section lets you configure the fleets in Fleet that have access to that VPP token's App Store apps. Currently, adding a VPP token is only available using Fleet's UI.
|
||||
|
||||
- `location` is the name of the location in the Apple Business Manager account.
|
||||
- `location` is the name of the organization unit in the Apple Business account. Apple previously called this "location." Fleet will rename it to "organization unit" in the next major version.
|
||||
- `fleets` is a list of fleet names. If you choose specific fleets, App Store apps in this VPP account will only be available to install on hosts in these fleets. If not specified, App Store apps will not be available to install on any fleet. To apply it to all fleets, use `- All fleets`.
|
||||
|
||||
Can only be configured for "All fleets" (`org_settings`).
|
||||
|
||||
@@ -1635,7 +1635,7 @@ This activity contains the following fields:
|
||||
Generated when VPP features are enabled in Fleet.
|
||||
|
||||
This activity contains the following fields:
|
||||
- "location": Location associated with the VPP content token for the enabled VPP features.
|
||||
- "location": Organization unit associated with the VPP content token for the enabled VPP features. Apple previously called this "location." Fleet will rename it to "organization unit" in the next major version.
|
||||
|
||||
#### Example
|
||||
|
||||
@@ -1650,7 +1650,7 @@ This activity contains the following fields:
|
||||
Generated when VPP features are disabled in Fleet.
|
||||
|
||||
This activity contains the following fields:
|
||||
- "location": Location associated with the VPP content token for the disabled VPP features.
|
||||
- "location": Organization unit associated with the VPP content token for the disabled VPP features. Apple previously called this "location." Fleet will rename it to "organization unit" in the next major version.
|
||||
|
||||
#### Example
|
||||
|
||||
|
||||
@@ -273,7 +273,7 @@ export interface IActivityDetails {
|
||||
installed_from_dep?: boolean;
|
||||
labels_exclude_any?: ILabelSoftwareTitle[];
|
||||
labels_include_any?: ILabelSoftwareTitle[];
|
||||
location?: string; // name of location associated with VPP token
|
||||
location?: string; // name of organization unit associated with VPP token
|
||||
mdm_platform?: "microsoft" | "apple" | "android" | "ios" | "ipados";
|
||||
minimum_version?: string;
|
||||
mode?: IOrgLogoMode;
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ const generateDuplicateMessage = (msg: string) => {
|
||||
return (
|
||||
<>
|
||||
Couldn't add. There's already a VPP connection for the{" "}
|
||||
<b>{orgName}</b> location.
|
||||
<b>{orgName}</b> organization unit.
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
+3
-3
@@ -47,9 +47,9 @@ const DeleteVppModal = ({
|
||||
isContentDisabled={isDeleting}
|
||||
>
|
||||
<p>
|
||||
Apps purchased for the <b>{orgName}</b> location won't appear in
|
||||
Fleet, and policies that trigger automatic install of these apps will be
|
||||
deleted. Apps won't be uninstalled from hosts.
|
||||
Apps purchased for the <b>{orgName}</b> organization unit won't
|
||||
appear in Fleet, and policies that trigger automatic install of these
|
||||
apps will be deleted. Apps won't be uninstalled from hosts.
|
||||
</p>
|
||||
<p>
|
||||
If you want to enable VPP integration again, you'll have to upload
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ export const generateTableConfig = (
|
||||
},
|
||||
{
|
||||
accessor: "location",
|
||||
Header: "Location",
|
||||
Header: "Organization unit",
|
||||
disableSortBy: true,
|
||||
Cell: (cellProps: ITableStringCellProps) => (
|
||||
<TextCell value={cellProps.cell.value} />
|
||||
|
||||
+2
-2
@@ -173,8 +173,8 @@ type MDMAppleABMAssignmentInfo struct {
|
||||
IpadOSTeam string `json:"ipados_team" renameto:"ipados_fleet"`
|
||||
}
|
||||
|
||||
// MDMAppleVolumePurchasingProgramInfo represents an user definition of the association
|
||||
// between a VPP token (via location) and the team associations.
|
||||
// MDMAppleVolumePurchasingProgramInfo represents a user definition of the association
|
||||
// between a VPP token (via organization unit, formerly "location") and the team associations.
|
||||
type MDMAppleVolumePurchasingProgramInfo struct {
|
||||
Location string `json:"location"`
|
||||
Teams []string `json:"teams" renameto:"fleets"`
|
||||
|
||||
+2
-1
@@ -1120,7 +1120,8 @@ type VPPTokenRaw struct {
|
||||
type VPPTokenData struct {
|
||||
// Location comes from an Apple API:
|
||||
// https://developer.apple.com/documentation/devicemanagement/client_config. It is the name of
|
||||
// the "library" of apps in ABM that is associated with this VPP token.
|
||||
// the organization unit (formerly "location") in Apple Business that is associated with this
|
||||
// VPP token.
|
||||
Location string `json:"location"`
|
||||
|
||||
// Token is the token that is downloaded from ABM. It is a base64 encoded JSON object with the
|
||||
|
||||
@@ -29,8 +29,8 @@ type Asset struct {
|
||||
// PricingParam is the quality of a product in the store.
|
||||
// Possible Values are `STDQ` and `PLUS`
|
||||
PricingParam string `json:"pricingParam"`
|
||||
// AvailableCount is the number of available licenses for this app in the location specified by
|
||||
// the VPP token.
|
||||
// AvailableCount is the number of available licenses for this app in the organization unit
|
||||
// specified by the VPP token.
|
||||
AvailableCount uint `json:"availableCount"`
|
||||
}
|
||||
|
||||
|
||||
@@ -1955,7 +1955,7 @@ func (svc *Service) validateVPPAssignments(
|
||||
|
||||
loc := norm.NFC.String(vpp.Location)
|
||||
if _, ok := tokensByLocation[loc]; !ok {
|
||||
invalid.Appendf("mdm.volume_purchasing_program", "token with location %s doesn't exist", vpp.Location)
|
||||
invalid.Appendf("mdm.volume_purchasing_program", "token with organization unit %s doesn't exist", vpp.Location)
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user