Feature flags (#543)

* Re-organize a bit controllers

* Added the featureflagcontroller

* Implement feature flags in the front-end

* Clean env files

* Clean console.log messages

* Fix feature flag test
This commit is contained in:
Julien Nahum
2024-08-27 16:49:43 +02:00
committed by GitHub
parent 1dffd27390
commit 79d3dd7888
40 changed files with 304 additions and 147 deletions

View File

@@ -47,7 +47,7 @@ export default defineNuxtRouteMiddleware((to) => {
})
}
if (!config.public.customDomainsEnabled) {
if (!useFeatureFlag('custom_domains')) {
// If custom domain not allowed, redirect
return redirectToMainDomain({
reason: "custom_domains_disabled",

View File

@@ -0,0 +1,9 @@
import { useFeatureFlagsStore } from '~/stores/featureFlags'
export default defineNuxtRouteMiddleware(async () => {
const featureFlagsStore = useFeatureFlagsStore()
if (import.meta.server && Object.keys(featureFlagsStore.flags).length === 0) {
await featureFlagsStore.fetchFlags()
}
})

View File

@@ -2,7 +2,7 @@ export default defineNuxtRouteMiddleware(() => {
const authStore = useAuthStore()
const runtimeConfig = useRuntimeConfig()
if (runtimeConfig.public?.selfHosted) {
if (useFeatureFlag('self_hosted')) {
if (authStore.check && authStore.user?.email === 'admin@opnform.com') {
return navigateTo({ name: "update-credentials" })
}

View File

@@ -1,11 +1,10 @@
export default defineNuxtRouteMiddleware((from, to, next) => {
const runtimeConfig = useRuntimeConfig()
const route = useRoute()
if (runtimeConfig.public?.selfHosted) {
if (useFeatureFlag('self_hosted')) {
if (from.name === 'register' && route.query?.email && route.query?.invite_token) {
return
}
if (from.name === 'ai-form-builder' && runtimeConfig.public?.aiFeaturesEnabled) {
if (from.name === 'ai-form-builder' && useFeatureFlag('ai_features')) {
return
}
return navigateTo({ name: "index" })