This adds support for multiple users in the Wizard. The users are rendered in tabs and can be both added and removed. When clicking on remove button, modal pops up to inform user that the changes cannot be undone.
Neither password nor SSH keys are further required, making it possible to create a user with just a username.
Removing/adding some periods for the sake of consistency.
I believe the description of the step should end with a period, helped texts and options should not (at least that's the prevailing pattern in the Wizard as of now).
The jwt decode dependency helps us to keep track of the token that is
present in the Satellite command. jwt-decode is the most popular
dependency for the job, and very easy to use.
This commit resolves an issue where the blueprint name did not update when the user changed the Architecture or Distribution.
Additionally, it sets an initial value for blueprintName in the WizardSlice.
This commit adds password validation to the User step:
- Moved password validation logic to a separate `checkPasswordValidity` function, returning detailed results (strength and validation state).
- Simplified validation in `PasswordValidatedInput` by using `checkPasswordValidity` results directly.
- Added dynamic password strength indicator showing success or error based on requirements.
- Integrated environment-specific validation messages (e.g., for Azure).
- Improved code separation between presentation and validation for better maintainability.
- Unit tests: Adds tests for invalid passwords, covering both default and Azure cases.
This adds a test to check whether validation messages get rendered on import.
Each step is checked for the correctly rendered error messages and then all invalid values are cleared so Next button re-enables and it's possible to continue.
The "No results found for <searchTerm>" options were previously enabled, but ignored upon click. This disables them properly and adds tests to check if they're disabled.
This removes sorting on the frontend side where it's already handled by the content sources API.
Since we manipulate selected packages by joining the, with `currentlyRemovedPackages` list, the sorting is added there to keep the packages from jumping around when unselected.
There is a bug that makes `custom-first-boot` service stay in services when the first boot script is removed.
How to reproduce:
1. create a blueprint with a first boot script
2. download the blueprint and confirm `custom-first-boot` was added to enabled services
3. click on "Edit blueprint"
4. go to First boot step and remove the script
5. save edited blueprint
Current behaviour:
- `custom-first-boot` service should be still enabled even with the removed first boot script
Updated behaviour:
- `custom-first-boot` is no longer in the blueprint after first boot script got removed
This sets retry globally to `3`, so we don't have to add it to the tests individually.
For the tests that are reliable this shouldn't have any effect, but it will trigger on tests that proved to be a bit flakey (like revisit tests).