GitOps & API design: Add multiple Apple Business Manager and Volume Purchasing Program connections#21043
GitOps & API design: Add multiple Apple Business Manager and Volume Purchasing Program connections#21043
Conversation
| org_settings: | ||
| mdm: | ||
| apple_bm_default_team: "Workstations" # Available in Fleet Premium | ||
| apple_business_manager: # Available in Fleet Premium |
There was a problem hiding this comment.
Dev note
Maintain support for the old apple_bm_default_team. If there's only one ABM token, this value populates the macos_team for the one ABM team.
When the user upgrades, set the new organization_name.macos_team to the value for the apple_bm_default_team.
If the user sets apple_bm_default_team and organization_name at the same time or they set apple_bm_default_team when there are more than one ABM tokens, return the following error:
"mdm.apple_bm_default_team has been deprecated. Please use the new mdm.apple_business_manager key documented here: https://fleetdm.com/learn-more-about/apple-business-manager-gitops"
There was a problem hiding this comment.
Redirect for the URL in the error message is here: https://github.com/fleetdm/fleet/pull/21043/files#diff-0c6120927d3e65309562b5b15b261d3298d05fcb0ff18e5b6512ee683b7ad6b3R533
| "apple_bm_default_team": "", | ||
| "apple_bm_terms_expired": false, | ||
| "enabled_and_configured": true, |
There was a problem hiding this comment.
Dev note
Deprecate the apple_bm_default_team, apple_bm_terms_expired, apple_bm_enabled_and_configured flags (and remove them from docs) but support them for backwards compatibility.
What does support them mean?
apple_bm_default_team- If there's only one ABM token, during migration, this value populates themacos_team,ios_team, andipados_teamfor the one ABM token. If there are more than one ABM tokens and the user tries to setapple_bm_default_team, return the following error: "mdm.apple_bm_default_team has been deprecated. Please use the new endpoint documented here: https://fleetdm.com/learn-more-about/apple-business-manager-teams-api"apple_bm_terms_expired- set totrueis there's one or more ABM tokens w/ terms expiredapple_bm_enabled_and_configured- set totrueis there's one or more ABM tokens
There was a problem hiding this comment.
Website redirect for the error message is added here: https://github.com/fleetdm/fleet/pull/21043/files#diff-0c6120927d3e65309562b5b15b261d3298d05fcb0ff18e5b6512ee683b7ad6b3R533
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| mdm: | ||
| volume_purchasing_program: # Available in Fleet Premium | ||
| - location: Fleet Device Management Inc. | ||
| teams: |
There was a problem hiding this comment.
Dev note
If the user tries to add a team that doesn't exist, show the following error:
Couldn't edit org_settings.mdm.volume_purchasing_program. "💻 Workstations" team doesn't exist.
There was a problem hiding this comment.
QA note
The above error will likely happen when a user changes a team's name via GitOps but forgets to update the team name here.
There was a problem hiding this comment.
Dev note
If the user tries to add a team that already has a VPP token, show the following error:
Couldn't edit org_settings.mdm.volume_purchasing_program. "💻 Workstations" team already has a VPP token. Each team can only have on VPP token.
There was a problem hiding this comment.
Hey @roperzh, now that a new VPP token doesn't have any teams by default (instead of "All team") how do you think the user should specify "All teams" via GitOps?
Could we make it so empty teams for a VPP token means it's available for "All teams." And once, the user adds a second VPP token we error and say you have to assign specific teams.
There was a problem hiding this comment.
Hey @noahtalerman that makes sense, the only gotcha I see is how would you define "no team"?
There was a problem hiding this comment.
I think they would specify "No team" which is a special, reserved team name in Fleet.
That made me wonder, what happens if I create a team w/ "No team" name in Fleet...
It actually breaks the team. And so does naming a team "All teams." Filed a bug for this here: #21264
…itops-and-api-9956 Merge in upstream.
Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: Rachael Shaw <r@rachael.wtf>
|
@rachaelshaw please feel free to merge when the API doc changes look good to go! Thank you for the review. |
|
I would say for consistency's sake (we do return a similar error from the Having a global default team doesn't seem make sense anymore now that we allow multiple tokens. I can create a released bug if that works to track this? |
@jahzielv sounds good! Thanks for following up. |
|
@lukeheath please feel free to merge this PR is the changes look good to you! These reference docs are for the already released "Add multiple Apple Business Manager and Volume Purchasing Program connections" (#9956) story. |
|
@noahtalerman Thanks! Our goal is publish doc changes at the same time as the release. Let's evaluate this issue history together to determine where we need to improve process. |
|
@noahtalerman sorry for the delay! Bug created for the missing error here: #22359 |
GitOps and API changes for the following story:
DONE:
Contributor API endpoints to support best practice GitOps (fleetctl gitops) and backwards compatibility GitOps (fleetctl apply)