feat(api): return allowed_languages (#11553)

# Which Problems Are Solved

While Zitadel provides a possibility to restrict certain languages to be
used, the corresponding list could not be retrieved in the settings
service (v2). This blocked login v2 implementations from respecting the
list and they would always use all available languages.

# How the Problems Are Solved

- Retrieve the list when checking the instance and pass it into the
context.
- Return it as part of the existing `GetGeneralSettingsResponse`
- This allows us to remove an additional query in some other cases /
endpoints.

# Additional Changes

none

# Additional Context

- required for https://github.com/zitadel/zitadel/pull/11372
- backport to v4.x

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Marco A. <[email protected]>
This commit is contained in:
Livio Spring
2026-02-12 08:44:34 +00:00
committed by GitHub
co-authored by Copilot Marco A.
parent ceffb9c536
commit b0609aa861
14 changed files with 65 additions and 20 deletions
+10 -1
View File
@@ -11,7 +11,10 @@ import (
"github.com/zitadel/zitadel/internal/feature"
)
var emptyInstance = &instance{}
var (
emptyInstance = &instance{}
_ Instance = (*instance)(nil)
)
type Instance interface {
InstanceID() string
@@ -19,6 +22,7 @@ type Instance interface {
ManagementConsoleClientID() string
ManagementConsoleApplicationID() string
DefaultLanguage() language.Tag
AllowedLanguages() []language.Tag
DefaultOrganisationID() string
SecurityPolicyAllowedOrigins() []string
EnableImpersonation() bool
@@ -43,6 +47,7 @@ type instance struct {
clientID string
orgID string
defaultLanguage language.Tag
allowedLanguages []language.Tag
features feature.Features
executionTargets target.Router
}
@@ -75,6 +80,10 @@ func (i *instance) DefaultLanguage() language.Tag {
return i.defaultLanguage
}
func (i *instance) AllowedLanguages() []language.Tag {
return i.allowedLanguages
}
func (i *instance) DefaultOrganisationID() string {
return i.orgID
}