Skip to main content

Enrolling Universal Blue (Bluefin) Linux Devices into Swif

Updated today

Swif now supports a dedicated Linux enrollment method for Universal Blue (Bluefin) devices. This method is designed for organizations that build and distribute custom Universal Blue images to their users.

This article explains:

  1. What the new Universal Blue (Bluefin) enrollment method is

  2. Key features for admins and end users

  3. How to prepare your image (Build phase)

  4. How users enroll their device (Enrollment phase)

  5. Limitations and notes


1. What is the Universal Blue (Bluefin) enrollment method?

Universal Blue (Bluefin) is an image-based Linux distribution. Instead of installing packages manually on every machine, organizations typically:

  • Build a custom image with the required tools and configuration, then

  • Distribute that image to users as their base operating system.

The Universal Blue enrollment method in Swif:

  • Appears as a new Linux enrollment option specifically for Universal Blue (Bluefin) devices.

  • Provides a guided 3-step installation flow for admins.

  • Auto-fills your Team ID and lets you choose one or more Group IDs so that enrolled devices land in the correct Swif groups from day one.

  • Gives users a simple enrollment command they run once on their device to complete enrollment.


2. Key features

a. Auto-filled Team ID and Group ID selection

When an admin sets up the Universal Blue enrollment method in the Swif web app:

  • Team ID is automatically filled in by Swif.

  • Available Group IDs are listed so the admin can:

    • Select a primary group (or multiple groups, depending on your design), and

    • Generate the correct configuration and installation instructions.

This reduces copy‑paste mistakes and ensures every Bluefin device automatically joins the intended Swif team and group(s) during enrollment.

b. 3‑step installation script in the UI

The frontend surfaces a 3-step installation flow tailored for Universal Blue. While the exact UI layout follows internal design specs, conceptually it guides admins through:

  1. Build phase (for administrators) – how to integrate Swif into your Universal Blue image build.

  2. Repository / package setup – ensuring the device can download the Swif Linux client from the correct repository.

  3. Enrollment phase (for users) – the final command users run on their device to register with Swif.

Each step presents copy‑ready commands or snippets to streamline setup.

c. Single enrollment command for end users

For end users, the experience is reduced to one-time execution of the Swif enrollment command on their Universal Blue device:

/usr/bin/swifteam -doEnroll -teamId="" -name="" -surname="" -email=""

  • -teamId is auto-filled by the admin experience.

  • Users (or IT) provide the user’s name, surname, and email.

  • This command only needs to be executed once, typically during initial setup or first boot.

After running this command successfully, the device is enrolled and appears in your Swif console under the correct team and group(s).

d. Alignment with Universal Blue architecture

The new method is built specifically for Universal Blue’s image-based model:

  • It assumes you are building or customizing a Bluefin image for your organization.

  • Swif’s install and enrollment scripts are designed to be baked into that image build and then finalized by a user-level enroll command at first run.

e. Scoped functionality (no BYOD / configurations support)

To keep this flow clear and predictable, the Universal Blue enrollment method:

  • Does not support BYOD (Bring Your Own Device) for this path.

  • Does not support Swif “Configurations” via this method.

If you need BYOD-style enrollment or configuration-based behavior, use Swif’s other enrollment methods instead.


3. Build phase (for administrators)

The build phase is where you integrate Swif into your Universal Blue image before it is delivered to users.

3.1 Integrate install_swifteam.sh into your image

You should integrate the provided script install_swifteam.sh into your Universal Blue image build process (e.g., in GitHub Actions or another CI/CD system you use to build your image).

During that build:

  • Call install_swifteam.sh, and

  • Pass in the following parameters:

  • $TEAM_ID – The Swif Team ID (auto-surfaced in the UI when you configure the method).

  • $GROUP_IDS – One or more Swif Group IDs.

If you need multiple groups, pass them as a comma-separated list:

GROUP_IDS="group-id-1,group-id-2,group-id-3"

This ensures that when the image boots and the enrollment command runs, devices register directly into the right team and group assignments.

Note: The exact invocation of install_swifteam.sh (arguments, environment variables) is defined by your internal engineering docs and the script contents. The Swif UI for the Universal Blue method exposes the necessary IDs.

3.2 Configure the Swif Linux repository

For successful installation and updates of the Swif Linux agent on Bluefin, make sure your image uses the correct package repository.

The baseurl in swifteam.repo must be:

baseurl=https://swif-linux-package.s3.ap-southeast-1.amazonaws.com/fedora/beta/x86_64

Ensure this repo file is present and correctly referenced in your image so that:

  • The Swif client can be installed during build (via install_swifteam.sh), and

  • Your devices continue to receive package updates after deployment.


4. Enrollment phase (for end users)

Once your image is built and distributed, end users only need to complete a simple enrollment step.

4.1 When does the user enroll?

Typical patterns:

  • During the initial device setup (first boot), or

  • As part of your internal onboarding checklist, run by IT or by the end user.

4.2 Enrollment command

The Swif Universal Blue enrollment method provides a copy‑pasteable command in the UI. At its core, it looks like this:

/usr/bin/swifteam -doEnroll -teamId="<TEAM_ID>" -name="<FirstName>" -surname="<LastName>" -email="<user@example.com>"

Where:

  • <TEAM_ID> is provided automatically by the Swif UI.

  • <FirstName>, <LastName>, and <user@example.com> are specific to the user of that device.

After running this command:

  • The device enrolls into the correct team (teamId) and group(s) (groupId / GROUP_IDS defined in your build).

  • The device becomes visible and manageable in your Swif console.

Important: The script needs to run only once per device. Re-running it is typically unnecessary unless you are re-enrolling or testing.


5. Limitations and considerations

The Universal Blue (Bluefin) enrollment method in Swif is intentionally scoped:

  • No BYOD support in this flow

    • This is designed for managed, image-based deployments owned by your organization.

  • No “Configurations” integration

    • Device policies or configurations must be managed via other Swif mechanisms, not directly through this enrollment method.

  • Requires image customization capability

    • You need access to the process that builds your Universal Blue images (often handled by DevOps / platform teams). If your admins do not control CI/CD or the image build, coordinate with the team that does.

If your environment does not use a central image build for Universal Blue, consider using one of Swif’s general Linux enrollment paths instead.


6. Where to get help

You can share this article with both your platform/DevOps team (for the build phase) and your IT admins or helpdesk (for the enrollment phase) to ensure a smooth rollout of Universal Blue (Bluefin) devices with Swif.

Did this answer your question?