fix: ensure the web UI doesn't break when license telemetry required check fails #16667
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Addresses #16455.
Changes
Warnings
andErrors
fields to arrays rather thannil
s.Reasoning
I had to change how entitlements are initialized to match the
codersdk
generated types, which the frontend assumes are correct, and doesn't run additional checks on.features: Record<FeatureName, Feature>
: this type signifies that everyFeatureName
is present in the record, but onmain
, that's not true if there's a telemetry required errorwarnings: readonly string[];
anderrors: readonly string[];
: these types mean that the fields are notnull
, but that's not always trueWith a valid license, the
LicensesEntitlements
function ensures that all features are present in the entitlements. It's called by theEntitlements
function, which is called byapi.updateEnittlements
. However, when a license requires telemetry and telemetry is disabled, the entitlements with all features are discarded in an early exit from the same function. By initializing entitlements with all the features from the get go, we avoid this problem.License issue banner after the changes