Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add multiple Apple Business Manager and Volume Purchasing Program connections #9956

Closed
39 of 44 tasks
zwass opened this issue Feb 20, 2023 · 36 comments
Closed
39 of 44 tasks
Assignees
Labels
~csa Issue was created by or deemed important by the Customer Solutions Architect. customer-deebradel customer-hemlock customer-preston customer-ufa #g-mdm MDM product group P2 Prioritize as urgent :product Product Design department (shows up on 🦢 Drafting board) prospect-blondelet prospect-ibara ~sc Request is a requirement in a presales opportunity story A user story defining an entire feature
Milestone

Comments

@zwass
Copy link
Member

zwass commented Feb 20, 2023

Goal

User story
As an administrator at an MSP that offers a white-label MDM solution built on top of Fleet,
I want to add multiple Apple Business Manager (ABM) and Volume Purchasing Program (VPP) connections in Fleet
so that I can use one Fleet server to build automatic enrollment and App Store app workflows for all my clients' macOS, iOS, and iPadOS hosts.

Context

Changes

Product

Engineering

  • Contributor API endpoints to support best practice GitOps (fleetctl gitops) and backwards compatibility GitOps (fleetctl apply). Please add these to the existing reference docs PR here.
  • Feature guide changes: Update feature guides that walkthrough mdm settings (UI changes)
  • Database schema migrations: Subtask
  • Load testing: No

ℹ️  Please read this issue carefully and understand it. Pay special attention to UI wireframes, especially "dev notes".

QA

@noahtalerman:

added by @mna:

  • Important to test migrating from previous version with an existing ABM and VPP token, using the same process as our users. The migration of existing tokens is a two-step process, one during the DB migration, and one soon (seconds) after the fleet server restart.

added by @PezHub:

Confirm all copy -

  • Empty state for ABM and VPP
  • Navigate directly to /settings/integrations/mdm/abm shows correct page
  • Once MDM is turned on

End User Authentication -

  • Remove Default Team option (it moved to ABM page)
  • Confirm updated copy once enabled

ABM -

  • Confirm empty states, uploads, renewals
  • Try to upload existing token + invalid token and confirm error
  • Ensure all teams are set to “no team” upon creation
  • When more than one org, list Alphabetically
  • Test actions items all function - Edit, Renew, Delete
  • Tooltips over Teams Tabs show correct hover display
  • Verify Team behavior for ABM

VPP -

  • Empty state for adding apps when none are available in ABM (could not test since Apple makes it near impossible to remove software titles from Apps & Books in ABM once they are added.)
  • Verify Team behavior for VPP
  • Verify copy and hover tooltips
  • Can only assign 1 team per token
  • Can’t assign any teams if “all teams” is linked to another VPP org

Banners VPP & ABM -

  • Renew
  • Expired
  • ABM accept new terms banner
  • Banners display one at a time in the correct priority
  • Redirect link to page works
  • Orange, red, green dots next to org names reflect expire dates

GitOps

Miscellaneous -

  • Free version - confirmed MABM not available without Premium subscription
  • Test team name changes are reflected for both ABM and VPP pages (per Noah’s suggestion above)
  • Test deleting a team from the UI - ensure it reverts to “no team” for ABM and gets removed for VPP

End-to-end Tests -

  • Ensure ADE devices enroll to the assigned team listed in ABM
  • Test Host page team assignment (transfer option for those awaiting enrollment) vs ABM page ADE team assignment
  • make sure manual assignment on host page overrides ABM page
  • Ensure VPP apps install from the correct Org/Token
  • Ensure VPP apps work from SS and are removed from fleetd when host moves teams
  • Test migrating from 4.55 to 4.56 with an ABM and VPP token configured prior. Make sure no renewal banners show (per Martin’s suggestion above)
  • VPP apps are removed from host when Token is moved, changed or deleted
@zwass zwass added the #g-mdm MDM product group label Feb 20, 2023
@dherder dherder added ~feature fest Will be reviewed at next Feature Fest customer-hemlock customer-preston labels Nov 9, 2023
@noahtalerman noahtalerman changed the title Support macOS MDM "multi-tenancy" 🎸 Support macOS MDM "multi-tenancy" Nov 27, 2023
@noahtalerman noahtalerman added :product Product Design department (shows up on 🦢 Drafting board) story A user story defining an entire feature and removed ~feature fest Will be reviewed at next Feature Fest labels Nov 28, 2023
@noahtalerman noahtalerman self-assigned this Nov 28, 2023
@marko-lisica
Copy link
Member

@zayhanlon @zwass We didn't get to this one in the current design sprint. Adding it to feature fest.

@marko-lisica marko-lisica added ~feature fest Will be reviewed at next Feature Fest and removed :product Product Design department (shows up on 🦢 Drafting board) labels Dec 14, 2023
@noahtalerman noahtalerman removed the ~feature fest Will be reviewed at next Feature Fest label Dec 15, 2023
@dherder dherder added the ~feature fest Will be reviewed at next Feature Fest label Mar 6, 2024
@noahtalerman noahtalerman assigned dherder and unassigned dherder Mar 7, 2024
@noahtalerman noahtalerman removed the ~feature fest Will be reviewed at next Feature Fest label Mar 12, 2024
@noahtalerman
Copy link
Member

Hey @dherder, heads up, we didn't have room to take this one in the current design sprint (4.48).

@dherder dherder added ~feature fest Will be reviewed at next Feature Fest prospect-ibara labels May 2, 2024
@nonpunctual nonpunctual added the ~csa Issue was created by or deemed important by the Customer Solutions Architect. label May 7, 2024
@noahtalerman noahtalerman assigned dherder and unassigned dherder May 9, 2024
@noahtalerman noahtalerman removed the ~feature fest Will be reviewed at next Feature Fest label May 15, 2024
@dherder dherder added customer-deebradel ~feature fest Will be reviewed at next Feature Fest labels Jun 5, 2024
@phtardif1
Copy link
Member

We now also have a European MSP (confidential) that requires same set of features and willing to work with us on developing and bringing to market

roperzh added a commit that referenced this issue Aug 30, 2024
> Related issue: #9956 

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes

files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [x] Added/updated tests
- [x] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes
- [x] If database migrations are included, checked table schema to
confirm autoupdate
- For database migrations:
- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [x] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [x] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
- [x] Manual QA for all new/changed functionality

---------

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [ ] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#changes-files)
for more information.
- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for
new osquery data ingestion features.
- [ ] Added/updated tests
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes
- [ ] If database migrations are included, checked table schema to
confirm autoupdate
- For database migrations:
- [ ] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [ ] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [ ] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
- [ ] Manual QA for all new/changed functionality
- For Orbit and Fleet Desktop changes:
- [ ] Orbit runs on macOS, Linux and Windows. Check if the orbit
feature/bugfix should only apply to one platform (`runtime.GOOS`).
- [ ] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux.
- [ ] Auto-update manual QA, from released version of component to new
version (see [tools/tuf/test](../tools/tuf/test/README.md)).

Co-authored-by: Jahziel Villasana-Espinoza <[email protected]>
Co-authored-by: Martin Angers <[email protected]>
Co-authored-by: Gabriel Hernandez <[email protected]>
Co-authored-by: Sarah Gillespie <[email protected]>
Co-authored-by: Dante Catalfamo <[email protected]>
RachelElysia pushed a commit that referenced this issue Sep 3, 2024
> Related issue: #9956 

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [x] Added/updated tests
- [x] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes
- [x] If database migrations are included, checked table schema to
confirm autoupdate
- For database migrations:
- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [x] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [x] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Martin Angers <[email protected]>
Co-authored-by: Gabriel Hernandez <[email protected]>
Co-authored-by: Roberto Dip <[email protected]>
Co-authored-by: Sarah Gillespie <[email protected]>
Co-authored-by: Dante Catalfamo <[email protected]>
Co-authored-by: Roberto Dip <[email protected]>
@lukeheath lukeheath added :product Product Design department (shows up on 🦢 Drafting board) and removed :release Ready to write code. Scheduled in a release. See "Making changes" in handbook. labels Sep 7, 2024
noahtalerman added a commit that referenced this issue Sep 12, 2024
#9956 was shipped in Fleet 4.56
@noahtalerman
Copy link
Member

@rachaelshaw I passed this one to you during confirm and celebrate. Can you please own closing the remaining checkboxes? Thanks :)

@noahtalerman noahtalerman assigned rachaelshaw and unassigned roperzh Sep 12, 2024
zayhanlon pushed a commit that referenced this issue Sep 13, 2024
@noahtalerman
Copy link
Member

noahtalerman commented Sep 16, 2024

Hey @rachaelshaw, I just noticed that the reference docs PR has conflicts. Please let me know how/if I can help resolve those. Happy to help!

Getting reference docs merged is last item before we can call this story done.

@noahtalerman
Copy link
Member

Hey @rachaelshaw, I resolved the conflicts for the reference doc PR.

I left a question for Dante here but I think we can go ahead and merge if everything looks good. Then address any fixes to the redirect a follow up PR.

@noahtalerman
Copy link
Member

Hey @rachaelshaw, just following up w/ another ping!

Please let me know if/how I can help get the reference doc PR across the finish line so we can call this story shipped.

lukeheath pushed a commit that referenced this issue Sep 20, 2024
…urchasing Program connections (#21043)

GitOps and API changes for the following story:
- #9956

DONE: 
- ~~Contributor API endpoints to support best practice GitOps (`fleetctl
gitops`) and backwards compatibility GitOps (`fleetctl apply`)~~
  - #21043 (comment)

---------

Co-authored-by: Martin Angers <[email protected]>
Co-authored-by: Dante Catalfamo <[email protected]>
Co-authored-by: Marko Lisica <[email protected]>
Co-authored-by: George Karr <[email protected]>
Co-authored-by: Gabriel Hernandez <[email protected]>
Co-authored-by: Rachael Shaw <[email protected]>
@noahtalerman
Copy link
Member

Updates to the permissions guide are in a PR here: Permissions PR is here: #22336

Waiting to closet this story until that is merged.

@noahtalerman
Copy link
Member

Hey @zayhanlon and @dherder heads up that this story w/ customer/prospect labels attached was shipped in 4.56 🚀

We're missing the guide. I filed a bug for this here: #22339

I think let's leave this story open until we ship the guide.

@roperzh
Copy link
Contributor

roperzh commented Sep 24, 2024

hey @noahtalerman the guide was already updated here #21627

@noahtalerman
Copy link
Member

hey @noahtalerman the guide was already updated here #21627

Followed up here: #22339 (comment)

@noahtalerman
Copy link
Member

PR to the guides is up here: #22458

@noahtalerman
Copy link
Member

Closing this story now that we shipped the best practice in a guide here: https://fleetdm.com/guides/macos-mdm-setup#best-practice

@fleet-release
Copy link
Contributor

Apple workflows bloom,
In clouds, multiple hosts thrive,
Ease for admins, hived.

@mikermcneil
Copy link
Member

@noahtalerman Where is the UI for this? I just tried to demo it to a partner and failed to do it, because I couldn't find the option in the UI. I later found it here: /settings/integrations/mdm/abm

How can we make it more visible?

@noahtalerman
Copy link
Member

noahtalerman commented Jan 29, 2025

I just tried to demo it to a partner and failed to do it, because I couldn't find the option in the UI. I later found it here: /settings/integrations/mdm/abm

@mikermcneil maybe we add more "Apple Business Manager" language here in Settings > Integrations > MDM?

Clicking the pencil icon is how you get to the ABM page:

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
~csa Issue was created by or deemed important by the Customer Solutions Architect. customer-deebradel customer-hemlock customer-preston customer-ufa #g-mdm MDM product group P2 Prioritize as urgent :product Product Design department (shows up on 🦢 Drafting board) prospect-blondelet prospect-ibara ~sc Request is a requirement in a presales opportunity story A user story defining an entire feature
Development

No branches or pull requests