Environments¶
This page explains what environments are in ntkDeploy, how the environment sidebar works, and how environment context affects what you see when managing profiles and device groups. It also clarifies the important distinction between environments (a data-layer concept) and build flavors (a compile-time concept).
Prerequisites¶
- Read the Glossary entry for Environment before continuing.
What Environments Are¶
In ntkDeploy, an environment is a free-form text label you attach to a Profile to group it by lifecycle stage, department, or operational context. Environments are not fixed system values — you define them yourself.
Common conventions used by fleet administrators include:
| Label | Typical use |
|---|---|
Development |
Experimental or work-in-progress profiles being actively edited |
Staging |
Profiles validated internally and ready for pre-production testing |
Production |
Approved, deployed configurations targeting live device fleets |
Corporate-IT |
Department-scoped profiles for a specific team or business unit |
Labs |
Profiles for test labs or canary device groups |
You are not required to use these labels. The environment field accepts any non-empty string.
Where Environments Live¶
Each profile record stores its environment as a string field (for example "Production"). The environment sidebar reads all existing profile records and extracts the unique set of environment strings to build its list dynamically. An environment entry in the sidebar appears as soon as the first profile with that label is created, and disappears when the last profile using that label is deleted.
There is no global environment registry. Environments only exist as values on profile records. There is no separate screen to pre-define environments.
The Environment Sidebar¶
The environment sidebar is the collapsible panel on the left side of the Profiles screen. It provides fast filtering of the profile list by environment context.
Reading the sidebar¶
- All Environments (the default) — shows every profile regardless of label. The counter beside each named environment shows how many profiles it contains.
- Named environment row (e.g.,
Staging — 12 profiles) — clicking this row filters the profile list to show only profiles with that label. The row is highlighted and the folder icon changes to filled. - No environments yet — this placeholder message appears if no profiles have been created yet.
Switching the active environment¶
Click any environment row to set it as the active filter. Click All Environments to clear the filter and return to the full list.
The selected environment is a session-level UI state — it is not persisted across app restarts. The app always opens on All Environments.
Adding an environment¶
Click + Add Environment at the bottom of the sidebar. Enter a name in the dialog and press Add. The new environment row appears immediately in the sidebar and is selected. Profiles you create while this environment is selected will default to that label.
Note: Adding an environment via this dialog creates the sidebar entry in the current session only. The entry is anchored permanently once the first profile is saved with that label.
Renaming an environment¶
Hover over any environment row and click the ⋮ (more options) menu, then choose Rename. Renaming an environment updates the environment field on every profile that currently carries the old label. The sidebar and profile list both update immediately.
Caution: Renaming is immediate and affects all profiles in that environment. There is no undo. If you need to move a subset of profiles, edit those profiles individually and change their environment label manually.
Deleting an environment¶
Choose Delete from the ⋮ menu. If the environment contains profiles, a warning dialog states how many profiles will be permanently deleted along with the environment label. Deletion is irreversible.
How Environment Filtering Affects the App¶
Profile list filtering¶
When an environment is selected in the sidebar, the profile list shows only profiles with a matching environment value. Priority ordering, search, and all other list actions continue to work within the filtered view.
Profile creation defaults¶
When you create a new profile with an environment selected in the sidebar, the Environment field in the profile form is pre-filled with the selected environment label. You can change it before saving.
Device groups and deployments¶
Device groups are not filtered by environment. The Device Groups screen always shows all groups regardless of which environment is active in the sidebar. When you run the deployment wizard, you choose a profile (from any environment) and a device group independently.
This is by design: a single device group can receive configurations from different environments (for example, you may deploy a
Stagingprofile to a test device group and aProductionprofile to a live fleet group).
Audit log¶
The audit log is not filtered by environment. It records all actions across all environments so you have a complete, unfiltered history.
Environments vs. Build Flavors¶
This is a common source of confusion for new administrators.
| Concept | What it is | Who controls it | When it matters |
|---|---|---|---|
| Environment (data label) | A string field on a profile record | You (the administrator) | When organizing and filtering profiles at runtime |
| Build flavor | A compile-time variant of the ntkDeploy executable | The development team | When the app is built and distributed |
ntkDeploy ships in three build flavors — development, staging, and production — that differ only in app configuration baked in at compile time (such as app identifiers and diagnostic settings). All three flavors connect to the same local SQLite database and support the same full feature set.
You almost certainly run only the production flavor. The development and staging flavors are used by the engineering team during active development and testing. They are not related to the Development, Staging, or Production environment labels on your profiles.
Typical Fleet Workflow Using Environments¶
The following is a recommended workflow pattern. Adapt it to your organization's change management process.
1. Create profile in "Development"
└─ Iterate on settings, use live JSON preview to validate
2. Promote to "Staging"
└─ Clone the profile and change its environment label to Staging
└─ Assign it to a staging device group (test lab)
└─ Run preflight → deploy → verify ntkDrive picks up the config
3. Promote to "Production"
└─ Clone the validated Staging profile and change label to Production
└─ Assign it to the production device group
└─ Run preflight → deploy → verify rollout events show success
4. Archive old versions
└─ Older Profile Versions remain in history for audit purposes
└─ Deactivate profiles no longer in use (do not delete if audit trail matters)
Because ntkDeploy stores data locally, this workflow happens within a single administrator's workstation. If your organization uses multiple administrators, coordinate profile promotions through your normal change management process (for example, export the profile JSON and import it on the destination workstation).
Next Steps¶
- Glossary — reference definitions for every term used above
- Quick Start — create your first profile and deploy it
- Creating a Profile — step-by-step profile creation tutorial