unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
89 lines • 6.43 kB
JavaScript
import { PayloadType } from 'unleash-client';
import { defaultVariant } from 'unleash-client/lib/variant.js';
import { parseEnvVarBoolean, parseEnvVarBooleanOrStringVariant, } from '../util/index.js';
const flags = {
anonymiseEventLog: false,
enableLicense: false,
responseTimeWithAppNameKillSwitch: parseEnvVarBoolean(process.env.UNLEASH_RESPONSE_TIME_WITH_APP_NAME_KILL_SWITCH, false),
maintenanceMode: parseEnvVarBooleanOrStringVariant(process.env.UNLEASH_EXPERIMENTAL_MAINTENANCE_MODE, false),
messageBanner: {
name: 'message-banner',
enabled: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_MESSAGE_BANNER, false),
payload: {
type: PayloadType.JSON,
value: process.env.UNLEASH_EXPERIMENTAL_MESSAGE_BANNER_PAYLOAD ?? '',
},
},
strictSchemaValidation: parseEnvVarBoolean(process.env.UNLEASH_STRICT_SCHEMA_VALIDTION, false),
personalAccessTokensKillSwitch: parseEnvVarBoolean(process.env.UNLEASH_PAT_KILL_SWITCH, false),
migrationLock: parseEnvVarBoolean(process.env.MIGRATION_LOCK, true),
demo: parseEnvVarBoolean(process.env.UNLEASH_DEMO, false),
filterInvalidClientMetrics: parseEnvVarBoolean(process.env.FILTER_INVALID_CLIENT_METRICS, false),
disableMetrics: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_DISABLE_METRICS, false),
signals: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_SIGNALS, false),
automatedActions: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_AUTOMATED_ACTIONS, false),
celebrateUnleash: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_CELEBRATE_UNLEASH, false),
feedbackPosting: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_FEEDBACK_POSTING, false),
encryptEmails: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_ENCRYPT_EMAILS, false),
extendedUsageMetrics: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_EXTENDED_USAGE_METRICS, false),
outdatedSdksBanner: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_OUTDATED_SDKS_BANNER, false),
feedbackComments: {
name: 'feedbackComments',
enabled: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_FEEDBACK_COMMENTS, false),
payload: {
type: PayloadType.JSON,
value: process.env.UNLEASH_EXPERIMENTAL_FEEDBACK_COMMENTS_PAYLOAD ??
'',
},
},
useMemoizedActiveTokens: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_MEMOIZED_ACTIVE_TOKENS, false),
killScheduledChangeRequestCache: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_KILL_SCHEDULED_CHANGE_REQUEST_CACHE, false),
estimateTrafficDataCost: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_ESTIMATE_TRAFFIC_DATA_COST, false),
disableUpdateMaxRevisionId: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_DISABLE_SCHEDULED_CACHES, false),
disablePublishUnannouncedEvents: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_DISABLE_SCHEDULED_CACHES, false),
queryMissingTokens: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_QUERY_MISSING_TOKENS, false),
responseTimeMetricsFix: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_RESPONSE_TIME_METRICS_FIX, false),
disableShowContextFieldSelectionValues: parseEnvVarBoolean(process.env
.UNLEASH_EXPERIMENTAL_DISABLE_SHOW_CONTEXT_FIELD_SELECTION_VALUES, false),
manyStrategiesPagination: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_MANY_STRATEGIES_PAGINATION, false),
enableLegacyVariants: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_ENABLE_LEGACY_VARIANTS, false),
extendedMetrics: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_EXTENDED_METRICS, false),
removeUnsafeInlineStyleSrc: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_REMOVE_UNSAFE_INLINE_STYLE_SRC, false),
projectRoleAssignment: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_PROJECT_ROLE_ASSIGNMENT, false),
webhookDomainLogging: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENT_WEBHOOK_DOMAIN_LOGGING, false),
productivityReportEmail: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_PRODUCTIVITY_REPORT_EMAIL, false),
productivityReportUnsubscribers: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_PRODUCTIVITY_REPORT_UNSUBSCRIBERS, false),
showUserDeviceCount: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_SHOW_USER_DEVICE_COUNT, false),
deltaApi: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_DELTA_API, false),
deltaDiff: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_DELTA_DIFF, false),
uniqueSdkTracking: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_UNIQUE_SDK_TRACKING, false),
consumptionModel: parseEnvVarBoolean(process.env.EXPERIMENTAL_CONSUMPTION_MODEL, false),
consumptionModelUI: parseEnvVarBoolean(process.env.EXPERIMENTAL_CONSUMPTION_MODEL_UI, false),
impactMetrics: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_IMPACT_METRICS, false),
streaming: {
name: 'disabled',
enabled: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_STREAMING, false),
},
denyStreamingForNonEdge: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_STREAMING_DENY_STREAMING_FOR_NON_EDGE, false),
fetchMode: {
name: 'disabled',
enabled: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_FETCH_MODE, false),
},
milestoneProgression: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_MILESTONE_PROGRESSION, false),
featureReleasePlans: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_FEATURE_RELEASE_PLANS, false),
plausibleMetrics: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_PLAUSIBLE_METRICS, false),
safeguards: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_SAFEGUARDS, false),
oidcPkceSupport: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_OIDC_PKCE_SUPPORT, false),
newInUnleash: parseEnvVarBooleanOrStringVariant(process.env.UNLEASH_EXPERIMENTAL_NEW_IN_UNLEASH, false),
gtmReleaseManagement: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_GTM_RELEASE_MANAGEMENT, false),
projectContextFields: parseEnvVarBoolean(process.env.UNLEASH_EXPERIMENTAL_PROJECT_CONTEXT_FIELDS, false),
};
export const defaultExperimentalOptions = {
flags,
externalResolver: {
isEnabled: () => false,
getVariant: () => defaultVariant,
getStaticContext: () => ({}),
},
};
//# sourceMappingURL=experimental.js.map