mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 10:31:15 +00:00
feat: Support feature flag evaluation server side (#5511)
* feat(editor): roll out schema view * feat(editor): add posthog tracking * refactor: use composables * refactor: clean up console log * refactor: clean up impl * chore: clean up impl * fix: fix demo var * chore: add comment * refactor: clean up * chore: wrap error func * refactor: clean up import * refactor: make store * feat: enable rudderstack usebeacon, move event to unload * chore: clean up alert * refactor: move tracking from hooks * fix: reload flags on login * fix: add func to setup * fix: clear duplicate import * chore: add console to tesT * chore: add console to tesT * fix: try reload * chore: randomize instnace id for testing * chore: randomize instnace id for testing * chore: add console logs for testing * chore: move random id to fe * chore: use query param for testing * feat: update PostHog api endpoint * feat: update rs host * feat: update rs host * feat: update rs endpoints * refactor: use api host for BE events as well * refactor: refactor out posthog client * feat: add feature flags to login * feat: add feature flags to login * feat: get feature flags to work * feat: add created at to be events * chore: add todos * chore: clean up store * chore: add created at to identify * feat: add posthog config to settings * feat: add bootstrapping * chore: clean up * chore: fix build * fix: get dates to work * fix: get posthog to recognize dates * chore: refactor * fix: update back to number * fix: update key * fix: get experiment evals to work * feat: add posthog to signup router * feat: add feature flags on sign up * chore: clean up * fix: fix import * chore: clean up loading script * feat: add timeout, fix: script loader * fix: test timeout and get working on 8080 * refactor: move out posthog * feat: add experiment tracking * fix: clear tracked on reset * fix: fix signup bug * fix: handle errors when telmetry is disabled * refactor: remove redundant await * fix: add back posthog to telemetry * test: fix test * test: fix test * test: add tests for posthog client * lint: fix * fix: fix issue with slow decide endpoint * lint: fix * lint: fix * lint: fix * lint: fix * chore: address PR feedback * chore: address PR feedback * feat: add onboarding experiment
This commit is contained in:
@@ -30,6 +30,7 @@ import {
|
||||
IDisplayOptions,
|
||||
IExecutionsSummary,
|
||||
IAbstractEventMessage,
|
||||
FeatureFlags,
|
||||
} from 'n8n-workflow';
|
||||
import { SignInType } from './constants';
|
||||
import { FAKE_DOOR_FEATURES, TRIGGER_NODE_FILTER, REGULAR_NODE_FILTER } from './constants';
|
||||
@@ -37,6 +38,37 @@ import { BulkCommand, Undoable } from '@/models/history';
|
||||
|
||||
export * from 'n8n-design-system/types';
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
posthog?: {
|
||||
init(
|
||||
key: string,
|
||||
options?: {
|
||||
api_host?: string;
|
||||
autocapture?: boolean;
|
||||
disable_session_recording?: boolean;
|
||||
debug?: boolean;
|
||||
bootstrap?: {
|
||||
distinctId?: string;
|
||||
isIdentifiedID?: boolean;
|
||||
featureFlags: FeatureFlags;
|
||||
};
|
||||
},
|
||||
): void;
|
||||
isFeatureEnabled?(flagName: string): boolean;
|
||||
getFeatureFlag?(flagName: string): boolean | string;
|
||||
identify?(
|
||||
id: string,
|
||||
userProperties?: Record<string, string | number>,
|
||||
userPropertiesOnce?: Record<string, string>,
|
||||
): void;
|
||||
reset?(resetDeviceId?: boolean): void;
|
||||
onFeatureFlags?(callback: (keys: string[], map: FeatureFlags) => void): void;
|
||||
reloadFeatureFlags?(): void;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export type EndpointStyle = {
|
||||
width?: number;
|
||||
height?: number;
|
||||
@@ -551,13 +583,17 @@ export interface IUserResponse {
|
||||
signInType?: SignInType;
|
||||
}
|
||||
|
||||
export interface CurrentUserResponse extends IUserResponse {
|
||||
featureFlags?: FeatureFlags;
|
||||
}
|
||||
|
||||
export interface IUser extends IUserResponse {
|
||||
isDefaultUser: boolean;
|
||||
isPendingUser: boolean;
|
||||
isOwner: boolean;
|
||||
inviteAcceptUrl?: string;
|
||||
fullName?: string;
|
||||
createdAt?: Date;
|
||||
createdAt?: string;
|
||||
}
|
||||
|
||||
export interface IVersionNotificationSettings {
|
||||
@@ -704,6 +740,14 @@ export interface IN8nUISettings {
|
||||
enabled: boolean;
|
||||
host: string;
|
||||
};
|
||||
posthog: {
|
||||
enabled: boolean;
|
||||
apiHost: string;
|
||||
apiKey: string;
|
||||
autocapture: boolean;
|
||||
disableSessionRecording: boolean;
|
||||
debug: boolean;
|
||||
};
|
||||
executionMode: string;
|
||||
pushBackend: 'sse' | 'websocket';
|
||||
communityNodesEnabled: boolean;
|
||||
|
||||
Reference in New Issue
Block a user