From 690833e262b636f6c969a4cbeeabb511c425278a Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Tue, 31 Oct 2023 15:32:15 +0100 Subject: [PATCH 01/22] fix feature flags filters dropdown width --- frontend/src/scenes/feature-flags/FeatureFlags.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/src/scenes/feature-flags/FeatureFlags.tsx b/frontend/src/scenes/feature-flags/FeatureFlags.tsx index 80d139cbd7c9b..3768568688784 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlags.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlags.tsx @@ -261,6 +261,7 @@ export function OverViewTab({ Type { if (type) { if (type === 'all') { @@ -287,6 +288,7 @@ export function OverViewTab({ Status { if (status) { if (status === 'all') { @@ -310,6 +312,7 @@ export function OverViewTab({ Created by { if (user) { if (user === 'any') { From 8bbdfd5b375bda63e74247b0c7d91cb2b5ff6841 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Wed, 1 Nov 2023 15:25:35 +0100 Subject: [PATCH 02/22] add plain UI --- frontend/src/lib/constants.tsx | 1 + .../src/scenes/feature-flags/FeatureFlag.tsx | 9 ++ .../feature-flags/FeatureFlagProjects.tsx | 115 ++++++++++++++++++ .../scenes/feature-flags/featureFlagLogic.ts | 9 ++ .../scenes/feature-flags/featureFlagsLogic.ts | 1 + 5 files changed, 135 insertions(+) create mode 100644 frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx diff --git a/frontend/src/lib/constants.tsx b/frontend/src/lib/constants.tsx index 1e73fcd7a3982..90cd474e2520b 100644 --- a/frontend/src/lib/constants.tsx +++ b/frontend/src/lib/constants.tsx @@ -171,6 +171,7 @@ export const FEATURE_FLAGS = { SESSION_RECORDING_SAMPLING: 'session-recording-sampling', // owner: #team-monitoring PERSON_FEED_CANVAS: 'person-feed-canvas', // owner: #project-canvas SIDE_PANEL_DOCS: 'side-panel-docs', // owner: #noteforce-3000 + MULTI_PROJECT_FEATURE_FLAGS: 'multi-project-feature-flags', // owner: @jurajmajerik #team-feature-success } as const export type FeatureFlagKey = (typeof FEATURE_FLAGS)[keyof typeof FEATURE_FLAGS] diff --git a/frontend/src/scenes/feature-flags/FeatureFlag.tsx b/frontend/src/scenes/feature-flags/FeatureFlag.tsx index 8de7aa6162fed..07a179fd45d57 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlag.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlag.tsx @@ -66,6 +66,7 @@ import { concatWithPunctuation } from 'scenes/insights/utils' import { LemonTab, LemonTabs } from 'lib/lemon-ui/LemonTabs' import { FeatureFlagReleaseConditions } from './FeatureFlagReleaseConditions' import { NotebookSelectButton } from 'scenes/notebooks/NotebookSelectButton/NotebookSelectButton' +import FeatureFlagProjects from './FeatureFlagProjects' export const scene: SceneExport = { component: FeatureFlag, @@ -202,6 +203,14 @@ export function FeatureFlag({ id }: { id?: string } = {}): JSX.Element { }) } + if (featureFlags[FEATURE_FLAGS.MULTI_PROJECT_FEATURE_FLAGS]) { + tabs.push({ + label: 'Projects', + key: FeatureFlagsTab.PROJECTS, + content: , + }) + } + return ( <>
diff --git a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx new file mode 100644 index 0000000000000..fbb7e4a5c2436 --- /dev/null +++ b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx @@ -0,0 +1,115 @@ +import { LemonTable, LemonTableColumns } from 'lib/lemon-ui/LemonTable' +import { LemonButton, LemonModal, LemonModalProps, LemonSelect } from '@posthog/lemon-ui' +import { IconArrowRight } from 'lib/lemon-ui/icons' +import { useActions, useValues } from 'kea' +import { Form } from 'kea-forms' +import { Field } from 'lib/forms/Field' +import { LemonBanner } from 'lib/lemon-ui/LemonBanner' +import { featureFlagLogic } from './featureFlagLogic' +import { organizationLogic } from '../organizationLogic' + +const records: Record[] = [{ project: 'project-1-staging', flag_status: 'enabled' }] + +export function CopyFeatureFlagModal({ + overlayRef, + contentRef, +}: Pick): JSX.Element { + const { featureFlag, isProjectsModalOpen } = useValues(featureFlagLogic) + const { currentOrganization } = useValues(organizationLogic) + const { closeProjectsModal } = useActions(featureFlagLogic) + + return ( + +
+
+ + Cancel + + + Copy + +
+
+ } + > +
+
+
+
+
Feature Flag key
+
+ {featureFlag.key} +
+
+
+
+ +
+ + ({ value: org.id, label: org.name })) || [] + } + className="min-w-40" + /> + +
+ + + By performing the copy, you may overwrite your existing Feature Flag configuration in + project-1-prod. + +
+ + ) +} + +const columns: LemonTableColumns> = [ + { + title: 'Project', + dataIndex: 'project', + }, + { + title: 'Flag status', + dataIndex: 'flag_status', + }, +] + +export default function FeatureFlagProjects(): JSX.Element { + const { openProjectsModal } = useActions(featureFlagLogic) + + return ( +
+ openProjectsModal()} + > + Copy to another project + + + +
+ ) +} diff --git a/frontend/src/scenes/feature-flags/featureFlagLogic.ts b/frontend/src/scenes/feature-flags/featureFlagLogic.ts index e145ddc23056f..1f59713d3bed7 100644 --- a/frontend/src/scenes/feature-flags/featureFlagLogic.ts +++ b/frontend/src/scenes/feature-flags/featureFlagLogic.ts @@ -219,6 +219,8 @@ export const featureFlagLogic = kea([ triggerFeatureFlagUpdate: (payload: Partial) => ({ payload }), generateUsageDashboard: true, enrichUsageDashboard: true, + closeProjectsModal: true, + openProjectsModal: true, }), forms(({ actions, values }) => ({ featureFlag: { @@ -465,6 +467,13 @@ export const featureFlagLogic = kea([ setTotalUsers: (_, { count }) => count, }, ], + isProjectsModalOpen: [ + false, + { + openProjectsModal: () => true, + closeProjectsModal: () => false, + }, + ], }), loaders(({ values, props, actions }) => ({ featureFlag: { diff --git a/frontend/src/scenes/feature-flags/featureFlagsLogic.ts b/frontend/src/scenes/feature-flags/featureFlagsLogic.ts index 3023d747a13c6..e88e418635a2c 100644 --- a/frontend/src/scenes/feature-flags/featureFlagsLogic.ts +++ b/frontend/src/scenes/feature-flags/featureFlagsLogic.ts @@ -16,6 +16,7 @@ export enum FeatureFlagsTab { Analysis = 'analysis', USAGE = 'usage', PERMISSIONS = 'permissions', + PROJECTS = 'projects', } export interface FeatureFlagsFilters { From 26b87c69f03c63bf1175e2e4315a03e5d65e0867 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Wed, 1 Nov 2023 18:06:09 +0100 Subject: [PATCH 03/22] Update frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx Co-authored-by: Neil Kakkar --- frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx index fbb7e4a5c2436..1e3d47bff2011 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx @@ -63,7 +63,7 @@ export function CopyFeatureFlagModal({ ({ value: org.id, label: org.name })) || [] + currentOrganization?.teams?.map((team) => ({ value: team.id, label: team.name })) || [] } className="min-w-40" /> From 8b4eddc18f74e4f2bed9b66a093127f5686b8887 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 17:28:38 +0000 Subject: [PATCH 04/22] Update UI snapshots for `chromium` (2) --- ...nes-app-notebooks--recordings-playlist.png | Bin 84201 -> 77191 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png b/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png index e0e5eddc30ae170bab1f8d1f3951c1d6cbf4f280..230cebcb3ed2b9b3e0130aa3a1dda5bf92f82d27 100644 GIT binary patch delta 41788 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� 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 delta 48853 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 z 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 G>c0Sz@_Zry From b292f82b4a3e25cd506332257c613a9b7e9bd842 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Thu, 2 Nov 2023 21:42:08 +0100 Subject: [PATCH 05/22] move copy form out of the modal --- .../src/scenes/feature-flags/FeatureFlag.tsx | 6 +- .../feature-flags/FeatureFlagProjects.tsx | 164 ++++++++---------- .../scenes/feature-flags/featureFlagLogic.ts | 19 +- 3 files changed, 86 insertions(+), 103 deletions(-) diff --git a/frontend/src/scenes/feature-flags/FeatureFlag.tsx b/frontend/src/scenes/feature-flags/FeatureFlag.tsx index 07a179fd45d57..e1ebc794098da 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlag.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlag.tsx @@ -57,6 +57,7 @@ import { dashboardLogic } from 'scenes/dashboard/dashboardLogic' import { EmptyDashboardComponent } from 'scenes/dashboard/EmptyDashboardComponent' import { FeatureFlagCodeExample } from './FeatureFlagCodeExample' import { billingLogic } from 'scenes/billing/billingLogic' +import { organizationLogic } from '../organizationLogic' import { AnalysisTab } from './FeatureFlagAnalysisTab' import { NodeKind } from '~/queries/schema' import { Query } from '~/queries/Query/Query' @@ -97,6 +98,8 @@ export function FeatureFlag({ id }: { id?: string } = {}): JSX.Element { featureFlagPermissionsLogic({ flagId: featureFlag.id }) ) + const { currentOrganization } = useValues(organizationLogic) + const { tags } = useValues(tagsModel) const { hasAvailableFeature } = useValues(userLogic) @@ -203,7 +206,8 @@ export function FeatureFlag({ id }: { id?: string } = {}): JSX.Element { }) } - if (featureFlags[FEATURE_FLAGS.MULTI_PROJECT_FEATURE_FLAGS]) { + const hasMultipleProjects = (currentOrganization?.teams?.length ?? 0) > 1 + if (featureFlags[FEATURE_FLAGS.MULTI_PROJECT_FEATURE_FLAGS] && hasMultipleProjects) { tabs.push({ label: 'Projects', key: FeatureFlagsTab.PROJECTS, diff --git a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx index 1e3d47bff2011..cdf57d7e06aaa 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx @@ -1,115 +1,87 @@ import { LemonTable, LemonTableColumns } from 'lib/lemon-ui/LemonTable' -import { LemonButton, LemonModal, LemonModalProps, LemonSelect } from '@posthog/lemon-ui' -import { IconArrowRight } from 'lib/lemon-ui/icons' +import { LemonButton, LemonSelect } from '@posthog/lemon-ui' +import { IconArrowRight, IconSync } from 'lib/lemon-ui/icons' import { useActions, useValues } from 'kea' -import { Form } from 'kea-forms' -import { Field } from 'lib/forms/Field' import { LemonBanner } from 'lib/lemon-ui/LemonBanner' import { featureFlagLogic } from './featureFlagLogic' import { organizationLogic } from '../organizationLogic' +import { teamLogic } from 'scenes/teamLogic' +import { useEffect } from 'react' -const records: Record[] = [{ project: 'project-1-staging', flag_status: 'enabled' }] +const getColumns = (): LemonTableColumns> => { + const { currentTeamId } = useValues(teamLogic) -export function CopyFeatureFlagModal({ - overlayRef, - contentRef, -}: Pick): JSX.Element { - const { featureFlag, isProjectsModalOpen } = useValues(featureFlagLogic) - const { currentOrganization } = useValues(organizationLogic) - const { closeProjectsModal } = useActions(featureFlagLogic) - - return ( - -
-
- - Cancel - - - Copy - -
-
- } - > -
-
-
-
-
Feature Flag key
-
- {featureFlag.key} -
-
-
-
- -
- - ({ value: team.id, label: team.name })) || [] - } - className="min-w-40" - /> - -
- - - By performing the copy, you may overwrite your existing Feature Flag configuration in - project-1-prod. - -
- - ) + return [ + { + title: 'Project', + dataIndex: 'project_name', + render: (dataValue, record) => + Number(record.project_id) === currentTeamId ? `${dataValue} (current)` : dataValue, + }, + { + title: 'Flag status', + dataIndex: 'active', + render: (dataValue) => { + return dataValue ? 'active' : 'disabled' + }, + }, + ] } -const columns: LemonTableColumns> = [ - { - title: 'Project', - dataIndex: 'project', - }, - { - title: 'Flag status', - dataIndex: 'flag_status', - }, -] - export default function FeatureFlagProjects(): JSX.Element { - const { openProjectsModal } = useActions(featureFlagLogic) + const { featureFlag, copyDestinationProject, projectsWithCurrentFlag } = useValues(featureFlagLogic) + const { setCopyDestinationProject, loadProjectsWithCurrentFlag } = useActions(featureFlagLogic) + const { currentOrganization } = useValues(organizationLogic) + const { currentTeam } = useValues(teamLogic) + + useEffect(() => { + loadProjectsWithCurrentFlag() + }, []) return (
- openProjectsModal()} - > - Copy to another project - +

Feature flag copy

+
Copy your flag and its configuration to another project.
+
+
+
Key
+
+ {featureFlag.key} +
+
+
+
+ +
+
+
Destination project
+ setCopyDestinationProject(id)} + options={ + currentOrganization?.teams + ?.map((team) => ({ value: team.id, label: team.name })) + .filter((option) => option.value !== currentTeam?.id) || [] + } + className="min-w-40" + /> +
+
+
+ }> + Copy + +
+
+ + By performing the copy, you may overwrite your existing Feature Flag configuration in another project. + -
) } diff --git a/frontend/src/scenes/feature-flags/featureFlagLogic.ts b/frontend/src/scenes/feature-flags/featureFlagLogic.ts index 1f59713d3bed7..77eec5c2ab461 100644 --- a/frontend/src/scenes/feature-flags/featureFlagLogic.ts +++ b/frontend/src/scenes/feature-flags/featureFlagLogic.ts @@ -41,6 +41,7 @@ import { featureFlagPermissionsLogic } from './featureFlagPermissionsLogic' import { userLogic } from 'scenes/userLogic' import { newDashboardLogic } from 'scenes/dashboard/newDashboardLogic' import { dashboardsLogic } from 'scenes/dashboard/dashboards/dashboardsLogic' +import { organizationLogic } from '../organizationLogic' import { NEW_EARLY_ACCESS_FEATURE } from 'scenes/early-access-features/earlyAccessFeatureLogic' import { NEW_SURVEY, NewSurvey } from 'scenes/surveys/constants' @@ -177,6 +178,8 @@ export const featureFlagLogic = kea([ ['hasAvailableFeature'], dashboardsLogic, ['dashboards'], + organizationLogic, + ['currentOrganization'], ], actions: [ newDashboardLogic({ featureFlagId: typeof props.id === 'number' ? props.id : undefined }), @@ -219,8 +222,7 @@ export const featureFlagLogic = kea([ triggerFeatureFlagUpdate: (payload: Partial) => ({ payload }), generateUsageDashboard: true, enrichUsageDashboard: true, - closeProjectsModal: true, - openProjectsModal: true, + setCopyDestinationProject: (id: number | null) => ({ id }), }), forms(({ actions, values }) => ({ featureFlag: { @@ -467,11 +469,10 @@ export const featureFlagLogic = kea([ setTotalUsers: (_, { count }) => count, }, ], - isProjectsModalOpen: [ - false, + copyDestinationProject: [ + null as number | null, { - openProjectsModal: () => true, - closeProjectsModal: () => false, + setCopyDestinationProject: (_, { id }) => id, }, ], }), @@ -575,6 +576,12 @@ export const featureFlagLogic = kea([ }, }, ], + projectsWithCurrentFlag: { + __default: [] as Record[], + loadProjectsWithCurrentFlag: async () => { + return [] + }, + }, })), listeners(({ actions, values, props }) => ({ submitNewDashboardSuccessWithResult: async ({ result }) => { From 71d499e88ff122cf57288962fae8c24a01061249 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Thu, 2 Nov 2023 21:42:08 +0100 Subject: [PATCH 06/22] move copy form out of the modal --- .../src/scenes/feature-flags/FeatureFlag.tsx | 6 +- .../feature-flags/FeatureFlagProjects.tsx | 164 ++++++++---------- .../scenes/feature-flags/featureFlagLogic.ts | 19 +- 3 files changed, 86 insertions(+), 103 deletions(-) diff --git a/frontend/src/scenes/feature-flags/FeatureFlag.tsx b/frontend/src/scenes/feature-flags/FeatureFlag.tsx index 07a179fd45d57..e1ebc794098da 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlag.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlag.tsx @@ -57,6 +57,7 @@ import { dashboardLogic } from 'scenes/dashboard/dashboardLogic' import { EmptyDashboardComponent } from 'scenes/dashboard/EmptyDashboardComponent' import { FeatureFlagCodeExample } from './FeatureFlagCodeExample' import { billingLogic } from 'scenes/billing/billingLogic' +import { organizationLogic } from '../organizationLogic' import { AnalysisTab } from './FeatureFlagAnalysisTab' import { NodeKind } from '~/queries/schema' import { Query } from '~/queries/Query/Query' @@ -97,6 +98,8 @@ export function FeatureFlag({ id }: { id?: string } = {}): JSX.Element { featureFlagPermissionsLogic({ flagId: featureFlag.id }) ) + const { currentOrganization } = useValues(organizationLogic) + const { tags } = useValues(tagsModel) const { hasAvailableFeature } = useValues(userLogic) @@ -203,7 +206,8 @@ export function FeatureFlag({ id }: { id?: string } = {}): JSX.Element { }) } - if (featureFlags[FEATURE_FLAGS.MULTI_PROJECT_FEATURE_FLAGS]) { + const hasMultipleProjects = (currentOrganization?.teams?.length ?? 0) > 1 + if (featureFlags[FEATURE_FLAGS.MULTI_PROJECT_FEATURE_FLAGS] && hasMultipleProjects) { tabs.push({ label: 'Projects', key: FeatureFlagsTab.PROJECTS, diff --git a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx index 1e3d47bff2011..cdf57d7e06aaa 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx @@ -1,115 +1,87 @@ import { LemonTable, LemonTableColumns } from 'lib/lemon-ui/LemonTable' -import { LemonButton, LemonModal, LemonModalProps, LemonSelect } from '@posthog/lemon-ui' -import { IconArrowRight } from 'lib/lemon-ui/icons' +import { LemonButton, LemonSelect } from '@posthog/lemon-ui' +import { IconArrowRight, IconSync } from 'lib/lemon-ui/icons' import { useActions, useValues } from 'kea' -import { Form } from 'kea-forms' -import { Field } from 'lib/forms/Field' import { LemonBanner } from 'lib/lemon-ui/LemonBanner' import { featureFlagLogic } from './featureFlagLogic' import { organizationLogic } from '../organizationLogic' +import { teamLogic } from 'scenes/teamLogic' +import { useEffect } from 'react' -const records: Record[] = [{ project: 'project-1-staging', flag_status: 'enabled' }] +const getColumns = (): LemonTableColumns> => { + const { currentTeamId } = useValues(teamLogic) -export function CopyFeatureFlagModal({ - overlayRef, - contentRef, -}: Pick): JSX.Element { - const { featureFlag, isProjectsModalOpen } = useValues(featureFlagLogic) - const { currentOrganization } = useValues(organizationLogic) - const { closeProjectsModal } = useActions(featureFlagLogic) - - return ( - -
-
- - Cancel - - - Copy - -
-
- } - > -
-
-
-
-
Feature Flag key
-
- {featureFlag.key} -
-
-
-
- -
- - ({ value: team.id, label: team.name })) || [] - } - className="min-w-40" - /> - -
- - - By performing the copy, you may overwrite your existing Feature Flag configuration in - project-1-prod. - -
- - ) + return [ + { + title: 'Project', + dataIndex: 'project_name', + render: (dataValue, record) => + Number(record.project_id) === currentTeamId ? `${dataValue} (current)` : dataValue, + }, + { + title: 'Flag status', + dataIndex: 'active', + render: (dataValue) => { + return dataValue ? 'active' : 'disabled' + }, + }, + ] } -const columns: LemonTableColumns> = [ - { - title: 'Project', - dataIndex: 'project', - }, - { - title: 'Flag status', - dataIndex: 'flag_status', - }, -] - export default function FeatureFlagProjects(): JSX.Element { - const { openProjectsModal } = useActions(featureFlagLogic) + const { featureFlag, copyDestinationProject, projectsWithCurrentFlag } = useValues(featureFlagLogic) + const { setCopyDestinationProject, loadProjectsWithCurrentFlag } = useActions(featureFlagLogic) + const { currentOrganization } = useValues(organizationLogic) + const { currentTeam } = useValues(teamLogic) + + useEffect(() => { + loadProjectsWithCurrentFlag() + }, []) return (
- openProjectsModal()} - > - Copy to another project - +

Feature flag copy

+
Copy your flag and its configuration to another project.
+
+
+
Key
+
+ {featureFlag.key} +
+
+
+
+ +
+
+
Destination project
+ setCopyDestinationProject(id)} + options={ + currentOrganization?.teams + ?.map((team) => ({ value: team.id, label: team.name })) + .filter((option) => option.value !== currentTeam?.id) || [] + } + className="min-w-40" + /> +
+
+
+ }> + Copy + +
+
+ + By performing the copy, you may overwrite your existing Feature Flag configuration in another project. + -
) } diff --git a/frontend/src/scenes/feature-flags/featureFlagLogic.ts b/frontend/src/scenes/feature-flags/featureFlagLogic.ts index 1f59713d3bed7..77eec5c2ab461 100644 --- a/frontend/src/scenes/feature-flags/featureFlagLogic.ts +++ b/frontend/src/scenes/feature-flags/featureFlagLogic.ts @@ -41,6 +41,7 @@ import { featureFlagPermissionsLogic } from './featureFlagPermissionsLogic' import { userLogic } from 'scenes/userLogic' import { newDashboardLogic } from 'scenes/dashboard/newDashboardLogic' import { dashboardsLogic } from 'scenes/dashboard/dashboards/dashboardsLogic' +import { organizationLogic } from '../organizationLogic' import { NEW_EARLY_ACCESS_FEATURE } from 'scenes/early-access-features/earlyAccessFeatureLogic' import { NEW_SURVEY, NewSurvey } from 'scenes/surveys/constants' @@ -177,6 +178,8 @@ export const featureFlagLogic = kea([ ['hasAvailableFeature'], dashboardsLogic, ['dashboards'], + organizationLogic, + ['currentOrganization'], ], actions: [ newDashboardLogic({ featureFlagId: typeof props.id === 'number' ? props.id : undefined }), @@ -219,8 +222,7 @@ export const featureFlagLogic = kea([ triggerFeatureFlagUpdate: (payload: Partial) => ({ payload }), generateUsageDashboard: true, enrichUsageDashboard: true, - closeProjectsModal: true, - openProjectsModal: true, + setCopyDestinationProject: (id: number | null) => ({ id }), }), forms(({ actions, values }) => ({ featureFlag: { @@ -467,11 +469,10 @@ export const featureFlagLogic = kea([ setTotalUsers: (_, { count }) => count, }, ], - isProjectsModalOpen: [ - false, + copyDestinationProject: [ + null as number | null, { - openProjectsModal: () => true, - closeProjectsModal: () => false, + setCopyDestinationProject: (_, { id }) => id, }, ], }), @@ -575,6 +576,12 @@ export const featureFlagLogic = kea([ }, }, ], + projectsWithCurrentFlag: { + __default: [] as Record[], + loadProjectsWithCurrentFlag: async () => { + return [] + }, + }, })), listeners(({ actions, values, props }) => ({ submitNewDashboardSuccessWithResult: async ({ result }) => { From bf314d456f0c3d7ac2e9ba7798da5a43c9d908d5 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Fri, 3 Nov 2023 13:47:48 +0100 Subject: [PATCH 07/22] add endpoint and tests --- posthog/api/organization_feature_flag.py | 35 +++++++++++++++ .../test/test_organization_feature_flag.py | 45 +++++++++++++++++++ posthog/urls.py | 5 +++ 3 files changed, 85 insertions(+) create mode 100644 posthog/api/organization_feature_flag.py create mode 100644 posthog/api/test/test_organization_feature_flag.py diff --git a/posthog/api/organization_feature_flag.py b/posthog/api/organization_feature_flag.py new file mode 100644 index 0000000000000..62ce05ca08dfc --- /dev/null +++ b/posthog/api/organization_feature_flag.py @@ -0,0 +1,35 @@ +from rest_framework.views import APIView +from posthog.models import FeatureFlag +from posthog.models.organization import Organization +from rest_framework.response import Response +from posthog.permissions import OrganizationMemberPermissions +from rest_framework.permissions import IsAuthenticated +from rest_framework import serializers + + +class OrganizationFeatureFlagView(APIView): + """ + Retrieves all feature flags for a given organization and key. + """ + + basename = "org_feature_flags" + permission_classes = [IsAuthenticated, OrganizationMemberPermissions] + + def initial(self, request, *args, **kwargs): + # Organization needs to be set before permissions are checked + try: + self.organization = Organization.objects.get(id=kwargs.get("organization_id")) + except Organization.DoesNotExist: + raise serializers.ValidationError("Filters are not valid (can only use group properties)") + + super().initial(request, *args, **kwargs) + + def get(self, request, organization_id, feature_flag_key): + + organization = Organization.objects.get(id=organization_id) + teams = organization.teams.all() + + flags = FeatureFlag.objects.filter(key=feature_flag_key, team_id__in=[team.id for team in teams]) + flags_data = [{"team_id": flag.team_id, "active": flag.active} for flag in flags] + + return Response(flags_data) diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py new file mode 100644 index 0000000000000..8527ac644c0d8 --- /dev/null +++ b/posthog/api/test/test_organization_feature_flag.py @@ -0,0 +1,45 @@ +from rest_framework import status +from posthog.models.team.team import Team +from posthog.models import FeatureFlag +from posthog.test.base import APIBaseTest + + +class OrganizationFeatureFlagViewTests(APIBaseTest): + def setUp(self): + self.team_1 = self.team + self.team_2 = Team.objects.create(organization=self.organization) + + self.feature_flag_key = "key-1" + + self.feature_flag_1 = FeatureFlag.objects.create( + team=self.team_1, created_by=self.user, key=self.feature_flag_key + ) + self.feature_flag_1 = FeatureFlag.objects.create( + team=self.team_2, created_by=self.user, key=self.feature_flag_key + ) + + super().setUp() + + def test_get_feature_flag_success(self): + url = f"/api/organizations/{self.organization.id}/feature_flags/{self.feature_flag_key}" + response = self.client.get(url) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + expected_data = [{"team_id": self.team_1.id, "active": True}, {"team_id": self.team_2.id, "active": True}] + self.assertCountEqual(response.data, expected_data) + + def test_get_feature_flag_not_found(self): + url = f"/api/organizations/{self.organization.id}/feature_flags/nonexistent-flag" + response = self.client.get(url) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data, []) + + def test_get_feature_flag_unauthorized(self): + self.client.logout() + + url = f"/api/organizations/{self.organization.id}/feature_flags/{self.feature_flag_key}" + response = self.client.get(url) + + self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) diff --git a/posthog/urls.py b/posthog/urls.py index c271406c73469..f5406044e524b 100644 --- a/posthog/urls.py +++ b/posthog/urls.py @@ -41,6 +41,7 @@ from posthog.api.early_access_feature import early_access_features from posthog.api.prompt import prompt_webhook from posthog.api.survey import surveys +from posthog.api.organization_feature_flag import OrganizationFeatureFlagView from posthog.demo.legacy import demo_route from posthog.models import User from .utils import render_template @@ -168,6 +169,10 @@ def opt_slash_path(route: str, view: Callable, name: Optional[str] = None) -> UR opt_slash_path("api/signup", signup.SignupViewset.as_view()), opt_slash_path("api/social_signup", signup.SocialSignupViewset.as_view()), path("api/signup//", signup.InviteSignupViewset.as_view()), + path( + "api/organizations//feature_flags/", + OrganizationFeatureFlagView.as_view(), + ), path( "api/reset//", authentication.PasswordResetCompleteViewSet.as_view({"get": "retrieve", "post": "create"}), From f44338680493ae8b549cd47ae48f2f0c0373d262 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Fri, 3 Nov 2023 14:11:31 +0100 Subject: [PATCH 08/22] fix validation error msg --- posthog/api/organization_feature_flag.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/posthog/api/organization_feature_flag.py b/posthog/api/organization_feature_flag.py index 62ce05ca08dfc..1c2081eb67d08 100644 --- a/posthog/api/organization_feature_flag.py +++ b/posthog/api/organization_feature_flag.py @@ -20,12 +20,11 @@ def initial(self, request, *args, **kwargs): try: self.organization = Organization.objects.get(id=kwargs.get("organization_id")) except Organization.DoesNotExist: - raise serializers.ValidationError("Filters are not valid (can only use group properties)") + raise serializers.ValidationError("Organization does not exist") super().initial(request, *args, **kwargs) def get(self, request, organization_id, feature_flag_key): - organization = Organization.objects.get(id=organization_id) teams = organization.teams.all() From 3fba00f82745b6e95ebc527297d796b71193285d Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:22:56 +0000 Subject: [PATCH 09/22] Update UI snapshots for `chromium` (2) --- ...nes-app-notebooks--recordings-playlist.png | Bin 77191 -> 84201 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png b/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png index 230cebcb3ed2b9b3e0130aa3a1dda5bf92f82d27..e0e5eddc30ae170bab1f8d1f3951c1d6cbf4f280 100644 GIT binary patch delta 48853 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 z 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 G>c0Sz@_Zry delta 41788 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� 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 From 2af436022af160e12d599885db53d7de15c65508 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Fri, 3 Nov 2023 17:14:43 +0100 Subject: [PATCH 10/22] use ViewSet instead of APIView --- posthog/api/__init__.py | 7 + posthog/api/organization_feature_flag.py | 31 ++-- .../test_organization_feature_flag.ambr | 147 ++++++++++++++++++ .../test/test_organization_feature_flag.py | 9 +- posthog/urls.py | 5 - 5 files changed, 173 insertions(+), 26 deletions(-) create mode 100644 posthog/api/test/__snapshots__/test_organization_feature_flag.ambr diff --git a/posthog/api/__init__.py b/posthog/api/__init__.py index 2756855a074f9..db29671690b2d 100644 --- a/posthog/api/__init__.py +++ b/posthog/api/__init__.py @@ -24,6 +24,7 @@ notebook, organization, organization_domain, + organization_feature_flag, organization_invite, organization_member, personal_api_key, @@ -188,6 +189,12 @@ def api_not_found(request): "organization_domains", ["organization_id"], ) +organizations_router.register( + r"feature_flags", + organization_feature_flag.OrganizationFeatureFlagView, + "organization_feature_flags", + ["organization_id"], +) # Project nested endpoints projects_router = router.register(r"projects", team.TeamViewSet, "projects") diff --git a/posthog/api/organization_feature_flag.py b/posthog/api/organization_feature_flag.py index 1c2081eb67d08..6ecd5715f8fc6 100644 --- a/posthog/api/organization_feature_flag.py +++ b/posthog/api/organization_feature_flag.py @@ -1,32 +1,29 @@ -from rest_framework.views import APIView +from posthog.api.routing import StructuredViewSetMixin from posthog.models import FeatureFlag -from posthog.models.organization import Organization -from rest_framework.response import Response from posthog.permissions import OrganizationMemberPermissions +from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated -from rest_framework import serializers +from rest_framework import ( + mixins, + viewsets, +) -class OrganizationFeatureFlagView(APIView): +class OrganizationFeatureFlagView( + viewsets.ViewSet, + StructuredViewSetMixin, + mixins.RetrieveModelMixin, +): """ Retrieves all feature flags for a given organization and key. """ - basename = "org_feature_flags" permission_classes = [IsAuthenticated, OrganizationMemberPermissions] - def initial(self, request, *args, **kwargs): - # Organization needs to be set before permissions are checked - try: - self.organization = Organization.objects.get(id=kwargs.get("organization_id")) - except Organization.DoesNotExist: - raise serializers.ValidationError("Organization does not exist") - - super().initial(request, *args, **kwargs) + def retrieve(self, request, *args, **kwargs): + feature_flag_key = kwargs.get("pk") - def get(self, request, organization_id, feature_flag_key): - organization = Organization.objects.get(id=organization_id) - teams = organization.teams.all() + teams = self.organization.teams.all() flags = FeatureFlag.objects.filter(key=feature_flag_key, team_id__in=[team.id for team in teams]) flags_data = [{"team_id": flag.team_id, "active": flag.active} for flag in flags] diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr new file mode 100644 index 0000000000000..f7327c76f7d7f --- /dev/null +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -0,0 +1,147 @@ +# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success + ' + SELECT "posthog_user"."id", + "posthog_user"."password", + "posthog_user"."last_login", + "posthog_user"."first_name", + "posthog_user"."last_name", + "posthog_user"."is_staff", + "posthog_user"."is_active", + "posthog_user"."date_joined", + "posthog_user"."uuid", + "posthog_user"."current_organization_id", + "posthog_user"."current_team_id", + "posthog_user"."email", + "posthog_user"."pending_email", + "posthog_user"."temporary_token", + "posthog_user"."distinct_id", + "posthog_user"."is_email_verified", + "posthog_user"."has_seen_product_intro_for", + "posthog_user"."email_opt_in", + "posthog_user"."partial_notification_settings", + "posthog_user"."anonymize_data", + "posthog_user"."toolbar_mode", + "posthog_user"."events_column_config" + FROM "posthog_user" + WHERE "posthog_user"."id" = 2 + LIMIT 21 /**/ + ' +--- +# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.1 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + ' +--- +# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.2 + ' + SELECT (1) AS "a" + FROM "posthog_organizationmembership" + WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid + AND "posthog_organizationmembership"."user_id" = 2) + LIMIT 1 /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + ' +--- +# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.3 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + ' +--- +# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.4 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + ' +--- +# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.5 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'key-1' + AND "posthog_featureflag"."team_id" IN (1, + 2, + 3, + 4, + 5 /* ... */)) /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + ' +--- diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py index 8527ac644c0d8..de57dfb91bd0b 100644 --- a/posthog/api/test/test_organization_feature_flag.py +++ b/posthog/api/test/test_organization_feature_flag.py @@ -1,10 +1,10 @@ from rest_framework import status from posthog.models.team.team import Team from posthog.models import FeatureFlag -from posthog.test.base import APIBaseTest +from posthog.test.base import APIBaseTest, QueryMatchingTest, snapshot_postgres_queries -class OrganizationFeatureFlagViewTests(APIBaseTest): +class OrganizationFeatureFlagViewTests(APIBaseTest, QueryMatchingTest): def setUp(self): self.team_1 = self.team self.team_2 = Team.objects.create(organization=self.organization) @@ -20,6 +20,7 @@ def setUp(self): super().setUp() + @snapshot_postgres_queries def test_get_feature_flag_success(self): url = f"/api/organizations/{self.organization.id}/feature_flags/{self.feature_flag_key}" response = self.client.get(url) @@ -27,14 +28,14 @@ def test_get_feature_flag_success(self): self.assertEqual(response.status_code, status.HTTP_200_OK) expected_data = [{"team_id": self.team_1.id, "active": True}, {"team_id": self.team_2.id, "active": True}] - self.assertCountEqual(response.data, expected_data) + self.assertCountEqual(response.json(), expected_data) def test_get_feature_flag_not_found(self): url = f"/api/organizations/{self.organization.id}/feature_flags/nonexistent-flag" response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, []) + self.assertEqual(response.json(), []) def test_get_feature_flag_unauthorized(self): self.client.logout() diff --git a/posthog/urls.py b/posthog/urls.py index f5406044e524b..c271406c73469 100644 --- a/posthog/urls.py +++ b/posthog/urls.py @@ -41,7 +41,6 @@ from posthog.api.early_access_feature import early_access_features from posthog.api.prompt import prompt_webhook from posthog.api.survey import surveys -from posthog.api.organization_feature_flag import OrganizationFeatureFlagView from posthog.demo.legacy import demo_route from posthog.models import User from .utils import render_template @@ -169,10 +168,6 @@ def opt_slash_path(route: str, view: Callable, name: Optional[str] = None) -> UR opt_slash_path("api/signup", signup.SignupViewset.as_view()), opt_slash_path("api/social_signup", signup.SocialSignupViewset.as_view()), path("api/signup//", signup.InviteSignupViewset.as_view()), - path( - "api/organizations//feature_flags/", - OrganizationFeatureFlagView.as_view(), - ), path( "api/reset//", authentication.PasswordResetCompleteViewSet.as_view({"get": "retrieve", "post": "create"}), From aaf60a9fb380589d313db86b9c3fbc0e4443c7ac Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Mon, 6 Nov 2023 08:31:10 +0100 Subject: [PATCH 11/22] change lookup field from pk to feature_flag_key --- posthog/api/organization_feature_flag.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posthog/api/organization_feature_flag.py b/posthog/api/organization_feature_flag.py index 6ecd5715f8fc6..a1d7533a7eb28 100644 --- a/posthog/api/organization_feature_flag.py +++ b/posthog/api/organization_feature_flag.py @@ -19,9 +19,10 @@ class OrganizationFeatureFlagView( """ permission_classes = [IsAuthenticated, OrganizationMemberPermissions] + lookup_field = "feature_flag_key" def retrieve(self, request, *args, **kwargs): - feature_flag_key = kwargs.get("pk") + feature_flag_key = kwargs.get(self.lookup_field) teams = self.organization.teams.all() From c98781fa50de8dc865cccf8d6ef7dd70b35a28a1 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Mon, 6 Nov 2023 16:41:24 +0100 Subject: [PATCH 12/22] add bulk copy endpoint --- posthog/api/organization_feature_flag.py | 77 +- .../test_organization_feature_flag.ambr | 1444 ++++++++++++++++- .../test/test_organization_feature_flag.py | 93 +- 3 files changed, 1592 insertions(+), 22 deletions(-) diff --git a/posthog/api/organization_feature_flag.py b/posthog/api/organization_feature_flag.py index a1d7533a7eb28..ccd127ac7948f 100644 --- a/posthog/api/organization_feature_flag.py +++ b/posthog/api/organization_feature_flag.py @@ -1,11 +1,15 @@ from posthog.api.routing import StructuredViewSetMixin -from posthog.models import FeatureFlag +from posthog.api.feature_flag import FeatureFlagSerializer +from posthog.models import FeatureFlag, Team from posthog.permissions import OrganizationMemberPermissions +from django.core.exceptions import ObjectDoesNotExist from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated +from rest_framework.decorators import action from rest_framework import ( mixins, viewsets, + status, ) @@ -27,6 +31,75 @@ def retrieve(self, request, *args, **kwargs): teams = self.organization.teams.all() flags = FeatureFlag.objects.filter(key=feature_flag_key, team_id__in=[team.id for team in teams]) - flags_data = [{"team_id": flag.team_id, "active": flag.active} for flag in flags] + flags_data = [ + { + "flag_id": flag.id, + "team_id": flag.team_id, + "active": flag.active, + } + for flag in flags + ] return Response(flags_data) + + @action(detail=False, methods=["post"], url_path="copy_flags") + def copy_flags(self, request, *args, **kwargs): + body = request.data + feature_flag_key = body.get("feature_flag_key") + from_project = body.get("from_project") + target_project_ids = body.get("target_project_ids") + + if not feature_flag_key or not from_project or not target_project_ids: + return Response({"error": "Missing required fields"}, status=status.HTTP_400_BAD_REQUEST) + + try: + flag_to_copy = FeatureFlag.objects.get(key=feature_flag_key, team_id=from_project) + except FeatureFlag.DoesNotExist: + return Response({"error": "Feature flag to copy does not exist."}, status=status.HTTP_404_NOT_FOUND) + + results = {"success": [], "failed": []} + + for target_project_id in target_project_ids: + # Target project does not exist + try: + Team.objects.get(id=target_project_id) + except ObjectDoesNotExist: + results["failed"].append({"project_id": target_project_id, "errors": "Target project does not exist."}) + continue + + context = { + "request": request, + "team_id": target_project_id, + } + flag_data = { + "key": flag_to_copy.key, + "name": flag_to_copy.name, + "filters": flag_to_copy.filters, + "active": flag_to_copy.active, + "deleted": False, + } + feature_flag_serializer = FeatureFlagSerializer(data=flag_data, context=context) + + existing_flag = FeatureFlag.objects.filter(key=feature_flag_key, team_id=target_project_id).first() + # Update existing flag + if existing_flag: + feature_flag_serializer = FeatureFlagSerializer( + existing_flag, data=flag_data, partial=True, context=context + ) + # Create new flag + else: + feature_flag_serializer = FeatureFlagSerializer(data=flag_data, context=context) + + try: + feature_flag_serializer.is_valid(raise_exception=True) + new_feature_flag = feature_flag_serializer.save(team_id=target_project_id) + results["success"].append(FeatureFlagSerializer(new_feature_flag, context=context).data) + except Exception as e: + results["failed"].append( + { + "project_id": target_project_id, + "errors": str(e) if not feature_flag_serializer.errors else feature_flag_serializer.errors, + } + ) + + return Response(results, status=status.HTTP_200_OK) diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr index f7327c76f7d7f..6f46f491f11d1 100644 --- a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -1,4 +1,4 @@ -# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success ' SELECT "posthog_user"."id", "posthog_user"."password", @@ -27,7 +27,7 @@ LIMIT 21 /**/ ' --- -# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.1 +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.1 ' SELECT "posthog_organization"."id", "posthog_organization"."name", @@ -48,30 +48,1313 @@ "posthog_organization"."available_features" FROM "posthog_organization" WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ ' --- -# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.2 +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.10 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.11 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.12 + ' + SELECT "posthog_dashboardtile"."id" + FROM "posthog_dashboardtile" + INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") + WHERE (NOT ("posthog_dashboardtile"."deleted" + AND "posthog_dashboardtile"."deleted" IS NOT NULL) + AND NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.13 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.14 + ' + SELECT "posthog_dashboardtile"."id" + FROM "posthog_dashboardtile" + INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") + WHERE (NOT ("posthog_dashboardtile"."deleted" + AND "posthog_dashboardtile"."deleted" IS NOT NULL) + AND NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.15 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.16 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.17 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.18 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.19 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.2 ' SELECT (1) AS "a" FROM "posthog_organizationmembership" WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid AND "posthog_organizationmembership"."user_id" = 2) - LIMIT 1 /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.20 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.21 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.22 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.23 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.24 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.25 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.26 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.27 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.28 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.29 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.3 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.30 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.31 + ' + SELECT "posthog_dashboardtile"."id", + "posthog_dashboardtile"."dashboard_id", + "posthog_dashboardtile"."insight_id", + "posthog_dashboardtile"."text_id", + "posthog_dashboardtile"."layouts", + "posthog_dashboardtile"."color", + "posthog_dashboardtile"."filters_hash", + "posthog_dashboardtile"."last_refresh", + "posthog_dashboardtile"."refreshing", + "posthog_dashboardtile"."refresh_attempt", + "posthog_dashboardtile"."deleted" + FROM "posthog_dashboardtile" + WHERE "posthog_dashboardtile"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.32 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.33 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE "posthog_dashboard"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.34 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.35 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.36 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.37 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.38 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.39 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.4 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.40 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.41 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.42 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.43 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.44 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.45 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.46 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.47 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.48 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.49 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.5 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.50 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.51 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ ' --- -# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.3 +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.52 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.53 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.54 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.55 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.56 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.57 + ' + SELECT "posthog_dashboardtile"."id", + "posthog_dashboardtile"."dashboard_id", + "posthog_dashboardtile"."insight_id", + "posthog_dashboardtile"."text_id", + "posthog_dashboardtile"."layouts", + "posthog_dashboardtile"."color", + "posthog_dashboardtile"."filters_hash", + "posthog_dashboardtile"."last_refresh", + "posthog_dashboardtile"."refreshing", + "posthog_dashboardtile"."refresh_attempt", + "posthog_dashboardtile"."deleted" + FROM "posthog_dashboardtile" + WHERE "posthog_dashboardtile"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.58 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.59 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE "posthog_dashboard"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.6 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + ORDER BY "posthog_featureflag"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.60 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.61 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.62 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.63 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.64 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.65 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.66 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.67 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."active" + AND NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ ' --- -# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.4 +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.68 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -114,12 +1397,142 @@ "posthog_team"."extra_settings", "posthog_team"."correlation_config", "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", "posthog_team"."external_data_workspace_id" FROM "posthog_team" - WHERE "posthog_team"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.69 + ' + SELECT "posthog_experiment"."id", + "posthog_experiment"."name", + "posthog_experiment"."description", + "posthog_experiment"."team_id", + "posthog_experiment"."filters", + "posthog_experiment"."parameters", + "posthog_experiment"."secondary_metrics", + "posthog_experiment"."feature_flag_id", + "posthog_experiment"."created_by_id", + "posthog_experiment"."start_date", + "posthog_experiment"."end_date", + "posthog_experiment"."created_at", + "posthog_experiment"."updated_at", + "posthog_experiment"."archived" + FROM "posthog_experiment" + WHERE "posthog_experiment"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.7 + ' + SELECT (1) AS "a" + FROM "posthog_featureflag" + WHERE (NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.70 + ' + SELECT "posthog_survey"."id", + "posthog_survey"."team_id", + "posthog_survey"."name", + "posthog_survey"."description", + "posthog_survey"."linked_flag_id", + "posthog_survey"."targeting_flag_id", + "posthog_survey"."type", + "posthog_survey"."conditions", + "posthog_survey"."questions", + "posthog_survey"."appearance", + "posthog_survey"."created_at", + "posthog_survey"."created_by_id", + "posthog_survey"."start_date", + "posthog_survey"."end_date", + "posthog_survey"."updated_at", + "posthog_survey"."archived" + FROM "posthog_survey" + WHERE "posthog_survey"."linked_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.71 + ' + SELECT "posthog_earlyaccessfeature"."id", + "posthog_earlyaccessfeature"."team_id", + "posthog_earlyaccessfeature"."feature_flag_id", + "posthog_earlyaccessfeature"."name", + "posthog_earlyaccessfeature"."description", + "posthog_earlyaccessfeature"."stage", + "posthog_earlyaccessfeature"."documentation_url", + "posthog_earlyaccessfeature"."created_at" + FROM "posthog_earlyaccessfeature" + WHERE "posthog_earlyaccessfeature"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.72 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") + WHERE (NOT ("posthog_dashboard"."deleted") + AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.73 + ' + SELECT (1) AS "a" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 1 + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.8 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ ' --- -# name: OrganizationFeatureFlagViewTests.test_get_feature_flag_success.5 +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.9 ' SELECT "posthog_featureflag"."id", "posthog_featureflag"."key", @@ -137,11 +1550,8 @@ "posthog_featureflag"."usage_dashboard_id", "posthog_featureflag"."has_enriched_analytics" FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'key-1' - AND "posthog_featureflag"."team_id" IN (1, - 2, - 3, - 4, - 5 /* ... */)) /*controller='organization_feature_flags-detail',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/%28%3FP%3Cpk%3E%5B%5E/.%5D%2B%29/%3F%24'*/ + WHERE ("posthog_featureflag"."active" + AND NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ ' --- diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py index de57dfb91bd0b..2eb6ef5edf51a 100644 --- a/posthog/api/test/test_organization_feature_flag.py +++ b/posthog/api/test/test_organization_feature_flag.py @@ -4,7 +4,7 @@ from posthog.test.base import APIBaseTest, QueryMatchingTest, snapshot_postgres_queries -class OrganizationFeatureFlagViewTests(APIBaseTest, QueryMatchingTest): +class TestOrganizationFeatureFlagGet(APIBaseTest, QueryMatchingTest): def setUp(self): self.team_1 = self.team self.team_2 = Team.objects.create(organization=self.organization) @@ -14,7 +14,7 @@ def setUp(self): self.feature_flag_1 = FeatureFlag.objects.create( team=self.team_1, created_by=self.user, key=self.feature_flag_key ) - self.feature_flag_1 = FeatureFlag.objects.create( + self.feature_flag_2 = FeatureFlag.objects.create( team=self.team_2, created_by=self.user, key=self.feature_flag_key ) @@ -27,7 +27,10 @@ def test_get_feature_flag_success(self): self.assertEqual(response.status_code, status.HTTP_200_OK) - expected_data = [{"team_id": self.team_1.id, "active": True}, {"team_id": self.team_2.id, "active": True}] + expected_data = [ + {"flag_id": self.feature_flag_1.id, "team_id": self.team_1.id, "active": True}, + {"flag_id": self.feature_flag_2.id, "team_id": self.team_2.id, "active": True}, + ] self.assertCountEqual(response.json(), expected_data) def test_get_feature_flag_not_found(self): @@ -44,3 +47,87 @@ def test_get_feature_flag_unauthorized(self): response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + + +class TestOrganizationFeatureFlagCopy(APIBaseTest, QueryMatchingTest): + def setUp(self): + self.team_1 = self.team + self.team_2 = Team.objects.create(organization=self.organization) + + self.feature_flag_key = "copied-flag-key" + self.feature_flag_to_copy = FeatureFlag.objects.create( + team=self.team_1, + created_by=self.user, + key=self.feature_flag_key, + filters={"groups": [{"rollout_percentage": 65}]}, + ) + + super().setUp() + + @snapshot_postgres_queries + def test_copy_feature_flag_success(self): + url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" + data = { + "feature_flag_key": self.feature_flag_to_copy.key, + "from_project": self.feature_flag_to_copy.team_id, + "target_project_ids": [self.team_2.id], + } + response = self.client.post(url, data) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertIn("success", response.json()) + self.assertIn("failed", response.json()) + + # copied flag is present in the response + self.assertEqual(self.feature_flag_key, response.json()["success"][0]["key"]) + + # copied flag is present in the DB + copied_flag = FeatureFlag.objects.filter(team=self.team_2, key=self.feature_flag_key).exists() + self.assertTrue(copied_flag) + + def test_copy_feature_flag_missing_fields(self): + url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" + data = {} + response = self.client.post(url, data) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertIn("error", response.json()) + + def test_copy_feature_flag_nonexistent_key(self): + url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" + data = { + "feature_flag_key": "nonexistent-key", + "from_project": self.team_1.id, + "target_project_ids": [self.team_2.id], + } + response = self.client.post(url, data) + + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertIn("error", response.json()) + + def test_copy_feature_flag_to_nonexistent_target(self): + url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" + nonexistent_project_id = 999 + data = { + "feature_flag_key": self.feature_flag_key, + "from_project": self.team_1.id, + "target_project_ids": [nonexistent_project_id], + } + + response = self.client.post(url, data) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(len(response.json()["failed"]), 1) + self.assertEqual(nonexistent_project_id, response.json()["failed"][0]["project_id"]) + + def test_copy_feature_flag_unauthorized(self): + self.client.logout() + url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" + data = { + "feature_flag_key": self.feature_flag_key, + "from_project": self.team_1.id, + "target_project_ids": [self.team_2.id], + } + response = self.client.post(url, data) + + self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) From fa378bfe75f4e8da7fc595133c807b04b297e013 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Tue, 7 Nov 2023 09:07:51 +0100 Subject: [PATCH 13/22] address feedback --- posthog/api/organization_feature_flag.py | 32 +- .../test_organization_feature_flag.ambr | 1560 +---------------- .../test/test_organization_feature_flag.py | 24 +- posthog/models/feature_flag/feature_flag.py | 1 + 4 files changed, 45 insertions(+), 1572 deletions(-) diff --git a/posthog/api/organization_feature_flag.py b/posthog/api/organization_feature_flag.py index ccd127ac7948f..484b817a72de1 100644 --- a/posthog/api/organization_feature_flag.py +++ b/posthog/api/organization_feature_flag.py @@ -30,7 +30,11 @@ def retrieve(self, request, *args, **kwargs): teams = self.organization.teams.all() - flags = FeatureFlag.objects.filter(key=feature_flag_key, team_id__in=[team.id for team in teams]) + flags = FeatureFlag.objects.filter( + key=feature_flag_key, + team_id__in=[team.id for team in teams], + deleted=False, + ) flags_data = [ { "flag_id": flag.id, @@ -55,16 +59,22 @@ def copy_flags(self, request, *args, **kwargs): try: flag_to_copy = FeatureFlag.objects.get(key=feature_flag_key, team_id=from_project) except FeatureFlag.DoesNotExist: - return Response({"error": "Feature flag to copy does not exist."}, status=status.HTTP_404_NOT_FOUND) + return Response({"error": "Feature flag to copy does not exist."}, status=status.HTTP_400_BAD_REQUEST) - results = {"success": [], "failed": []} + successful_projects = [] + failed_projects = [] for target_project_id in target_project_ids: # Target project does not exist try: Team.objects.get(id=target_project_id) except ObjectDoesNotExist: - results["failed"].append({"project_id": target_project_id, "errors": "Target project does not exist."}) + failed_projects.append( + { + "project_id": target_project_id, + "errors": "Target project does not exist.", + } + ) continue context = { @@ -76,9 +86,10 @@ def copy_flags(self, request, *args, **kwargs): "name": flag_to_copy.name, "filters": flag_to_copy.filters, "active": flag_to_copy.active, + "rollout_percentage": flag_to_copy.rollout_percentage, + "ensure_experience_continuity": flag_to_copy.ensure_experience_continuity, "deleted": False, } - feature_flag_serializer = FeatureFlagSerializer(data=flag_data, context=context) existing_flag = FeatureFlag.objects.filter(key=feature_flag_key, team_id=target_project_id).first() # Update existing flag @@ -92,14 +103,17 @@ def copy_flags(self, request, *args, **kwargs): try: feature_flag_serializer.is_valid(raise_exception=True) - new_feature_flag = feature_flag_serializer.save(team_id=target_project_id) - results["success"].append(FeatureFlagSerializer(new_feature_flag, context=context).data) + feature_flag_serializer.save(team_id=target_project_id) + successful_projects.append(feature_flag_serializer.data) except Exception as e: - results["failed"].append( + failed_projects.append( { "project_id": target_project_id, "errors": str(e) if not feature_flag_serializer.errors else feature_flag_serializer.errors, } ) - return Response(results, status=status.HTTP_200_OK) + return Response( + {"success": successful_projects, "failed": failed_projects}, + status=status.HTTP_200_OK, + ) diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr index cdf988b647049..4d617da9ef82b 100644 --- a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -1,1560 +1,3 @@ -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success - ' - SELECT "posthog_user"."id", - "posthog_user"."password", - "posthog_user"."last_login", - "posthog_user"."first_name", - "posthog_user"."last_name", - "posthog_user"."is_staff", - "posthog_user"."is_active", - "posthog_user"."date_joined", - "posthog_user"."uuid", - "posthog_user"."current_organization_id", - "posthog_user"."current_team_id", - "posthog_user"."email", - "posthog_user"."pending_email", - "posthog_user"."temporary_token", - "posthog_user"."distinct_id", - "posthog_user"."is_email_verified", - "posthog_user"."has_seen_product_intro_for", - "posthog_user"."email_opt_in", - "posthog_user"."partial_notification_settings", - "posthog_user"."anonymize_data", - "posthog_user"."toolbar_mode", - "posthog_user"."events_column_config" - FROM "posthog_user" - WHERE "posthog_user"."id" = 2 - LIMIT 21 /**/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.1 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.10 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.11 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.12 - ' - SELECT "posthog_dashboardtile"."id" - FROM "posthog_dashboardtile" - INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") - WHERE (NOT ("posthog_dashboardtile"."deleted" - AND "posthog_dashboardtile"."deleted" IS NOT NULL) - AND NOT ("posthog_dashboard"."deleted") - AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.13 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.14 - ' - SELECT "posthog_dashboardtile"."id" - FROM "posthog_dashboardtile" - INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") - WHERE (NOT ("posthog_dashboardtile"."deleted" - AND "posthog_dashboardtile"."deleted" IS NOT NULL) - AND NOT ("posthog_dashboard"."deleted") - AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.15 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.16 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.17 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.18 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.19 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.2 - ' - SELECT (1) AS "a" - FROM "posthog_organizationmembership" - WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid - AND "posthog_organizationmembership"."user_id" = 2) - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.20 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.21 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.22 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.23 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.24 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.25 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.26 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.27 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.28 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.29 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.3 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.30 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.31 - ' - SELECT "posthog_dashboardtile"."id", - "posthog_dashboardtile"."dashboard_id", - "posthog_dashboardtile"."insight_id", - "posthog_dashboardtile"."text_id", - "posthog_dashboardtile"."layouts", - "posthog_dashboardtile"."color", - "posthog_dashboardtile"."filters_hash", - "posthog_dashboardtile"."last_refresh", - "posthog_dashboardtile"."refreshing", - "posthog_dashboardtile"."refresh_attempt", - "posthog_dashboardtile"."deleted" - FROM "posthog_dashboardtile" - WHERE "posthog_dashboardtile"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.32 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.33 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - WHERE "posthog_dashboard"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.34 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.35 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.36 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.37 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.38 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.39 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.4 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.40 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.41 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.42 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.43 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.44 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.45 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.46 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.47 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.48 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.49 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.5 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.50 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.51 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.52 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.53 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.54 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.55 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.56 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.57 - ' - SELECT "posthog_dashboardtile"."id", - "posthog_dashboardtile"."dashboard_id", - "posthog_dashboardtile"."insight_id", - "posthog_dashboardtile"."text_id", - "posthog_dashboardtile"."layouts", - "posthog_dashboardtile"."color", - "posthog_dashboardtile"."filters_hash", - "posthog_dashboardtile"."last_refresh", - "posthog_dashboardtile"."refreshing", - "posthog_dashboardtile"."refresh_attempt", - "posthog_dashboardtile"."deleted" - FROM "posthog_dashboardtile" - WHERE "posthog_dashboardtile"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.58 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.59 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - WHERE "posthog_dashboard"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.6 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - ORDER BY "posthog_featureflag"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.60 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.61 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.62 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.63 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.64 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.65 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.66 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.67 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."active" - AND NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.68 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.69 - ' - SELECT "posthog_experiment"."id", - "posthog_experiment"."name", - "posthog_experiment"."description", - "posthog_experiment"."team_id", - "posthog_experiment"."filters", - "posthog_experiment"."parameters", - "posthog_experiment"."secondary_metrics", - "posthog_experiment"."feature_flag_id", - "posthog_experiment"."created_by_id", - "posthog_experiment"."start_date", - "posthog_experiment"."end_date", - "posthog_experiment"."created_at", - "posthog_experiment"."updated_at", - "posthog_experiment"."archived" - FROM "posthog_experiment" - WHERE "posthog_experiment"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.7 - ' - SELECT (1) AS "a" - FROM "posthog_featureflag" - WHERE (NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.70 - ' - SELECT "posthog_survey"."id", - "posthog_survey"."team_id", - "posthog_survey"."name", - "posthog_survey"."description", - "posthog_survey"."linked_flag_id", - "posthog_survey"."targeting_flag_id", - "posthog_survey"."type", - "posthog_survey"."conditions", - "posthog_survey"."questions", - "posthog_survey"."appearance", - "posthog_survey"."created_at", - "posthog_survey"."created_by_id", - "posthog_survey"."start_date", - "posthog_survey"."end_date", - "posthog_survey"."updated_at", - "posthog_survey"."archived" - FROM "posthog_survey" - WHERE "posthog_survey"."linked_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.71 - ' - SELECT "posthog_earlyaccessfeature"."id", - "posthog_earlyaccessfeature"."team_id", - "posthog_earlyaccessfeature"."feature_flag_id", - "posthog_earlyaccessfeature"."name", - "posthog_earlyaccessfeature"."description", - "posthog_earlyaccessfeature"."stage", - "posthog_earlyaccessfeature"."documentation_url", - "posthog_earlyaccessfeature"."created_at" - FROM "posthog_earlyaccessfeature" - WHERE "posthog_earlyaccessfeature"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.72 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") - WHERE (NOT ("posthog_dashboard"."deleted") - AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.73 - ' - SELECT (1) AS "a" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 1 - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.8 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."deleted" - AND "posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.9 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."active" - AND NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- # name: TestOrganizationFeatureFlagGet.test_get_feature_flag_success ' SELECT "posthog_user"."id", @@ -1694,7 +137,8 @@ "posthog_featureflag"."usage_dashboard_id", "posthog_featureflag"."has_enriched_analytics" FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'key-1' + WHERE (NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'key-1' AND "posthog_featureflag"."team_id" IN (1, 2, 3, diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py index 2eb6ef5edf51a..7a8bc0bad3fe9 100644 --- a/posthog/api/test/test_organization_feature_flag.py +++ b/posthog/api/test/test_organization_feature_flag.py @@ -8,6 +8,7 @@ class TestOrganizationFeatureFlagGet(APIBaseTest, QueryMatchingTest): def setUp(self): self.team_1 = self.team self.team_2 = Team.objects.create(organization=self.organization) + self.team_3 = Team.objects.create(organization=self.organization) self.feature_flag_key = "key-1" @@ -17,6 +18,9 @@ def setUp(self): self.feature_flag_2 = FeatureFlag.objects.create( team=self.team_2, created_by=self.user, key=self.feature_flag_key ) + self.feature_flag_deleted = FeatureFlag.objects.create( + team=self.team_3, created_by=self.user, key=self.feature_flag_key, deleted=True + ) super().setUp() @@ -64,7 +68,7 @@ def setUp(self): super().setUp() - @snapshot_postgres_queries + # @snapshot_postgres_queries def test_copy_feature_flag_success(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" data = { @@ -81,9 +85,18 @@ def test_copy_feature_flag_success(self): # copied flag is present in the response self.assertEqual(self.feature_flag_key, response.json()["success"][0]["key"]) - # copied flag is present in the DB - copied_flag = FeatureFlag.objects.filter(team=self.team_2, key=self.feature_flag_key).exists() - self.assertTrue(copied_flag) + expected_fields = { + "key": self.feature_flag_to_copy.key, + "name": self.feature_flag_to_copy.name, + "filters": self.feature_flag_to_copy.filters, + "active": self.feature_flag_to_copy.active, + "rollout_percentage": self.feature_flag_to_copy.rollout_percentage, + "ensure_experience_continuity": self.feature_flag_to_copy.ensure_experience_continuity, + } + copied_flag = FeatureFlag.objects.get(team=self.team_2, key=self.feature_flag_key) + for field, expected_value in expected_fields.items(): + actual_value = getattr(copied_flag, field) + self.assertEqual(expected_value, actual_value) def test_copy_feature_flag_missing_fields(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" @@ -102,7 +115,7 @@ def test_copy_feature_flag_nonexistent_key(self): } response = self.client.post(url, data) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertIn("error", response.json()) def test_copy_feature_flag_to_nonexistent_target(self): @@ -117,6 +130,7 @@ def test_copy_feature_flag_to_nonexistent_target(self): response = self.client.post(url, data) self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(len(response.json()["success"]), 0) self.assertEqual(len(response.json()["failed"]), 1) self.assertEqual(nonexistent_project_id, response.json()["failed"][0]["project_id"]) diff --git a/posthog/models/feature_flag/feature_flag.py b/posthog/models/feature_flag/feature_flag.py index b45271bb16845..97d5d3e1aace8 100644 --- a/posthog/models/feature_flag/feature_flag.py +++ b/posthog/models/feature_flag/feature_flag.py @@ -27,6 +27,7 @@ class FeatureFlag(models.Model): class Meta: constraints = [models.UniqueConstraint(fields=["team", "key"], name="unique key for team")] + # When adding new fields, make sure to update organization_feature_flags.py::copy_flags key: models.CharField = models.CharField(max_length=400) name: models.TextField = models.TextField( blank=True From 09f7c4742f394b54dc2d04f690158a0b1fe3c79a Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Tue, 7 Nov 2023 09:10:57 +0100 Subject: [PATCH 14/22] add snapshots --- .../test_organization_feature_flag.ambr | 1571 +++++++++++++++++ .../test/test_organization_feature_flag.py | 2 +- 2 files changed, 1572 insertions(+), 1 deletion(-) diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr index 4d617da9ef82b..ac5affa5164a0 100644 --- a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -1,3 +1,1574 @@ +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success + ' + SELECT "posthog_user"."id", + "posthog_user"."password", + "posthog_user"."last_login", + "posthog_user"."first_name", + "posthog_user"."last_name", + "posthog_user"."is_staff", + "posthog_user"."is_active", + "posthog_user"."date_joined", + "posthog_user"."uuid", + "posthog_user"."current_organization_id", + "posthog_user"."current_team_id", + "posthog_user"."email", + "posthog_user"."pending_email", + "posthog_user"."temporary_token", + "posthog_user"."distinct_id", + "posthog_user"."is_email_verified", + "posthog_user"."has_seen_product_intro_for", + "posthog_user"."email_opt_in", + "posthog_user"."partial_notification_settings", + "posthog_user"."anonymize_data", + "posthog_user"."toolbar_mode", + "posthog_user"."events_column_config" + FROM "posthog_user" + WHERE "posthog_user"."id" = 2 + LIMIT 21 /**/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.1 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.10 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.11 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.12 + ' + SELECT "posthog_dashboardtile"."id" + FROM "posthog_dashboardtile" + INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") + WHERE (NOT ("posthog_dashboardtile"."deleted" + AND "posthog_dashboardtile"."deleted" IS NOT NULL) + AND NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.13 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.14 + ' + SELECT "posthog_dashboardtile"."id" + FROM "posthog_dashboardtile" + INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") + WHERE (NOT ("posthog_dashboardtile"."deleted" + AND "posthog_dashboardtile"."deleted" IS NOT NULL) + AND NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.15 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.16 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.17 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.18 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.19 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.2 + ' + SELECT (1) AS "a" + FROM "posthog_organizationmembership" + WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid + AND "posthog_organizationmembership"."user_id" = 2) + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.20 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.21 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.22 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.23 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.24 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.25 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.26 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.27 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.28 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.29 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.3 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.30 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.31 + ' + SELECT "posthog_dashboardtile"."id", + "posthog_dashboardtile"."dashboard_id", + "posthog_dashboardtile"."insight_id", + "posthog_dashboardtile"."text_id", + "posthog_dashboardtile"."layouts", + "posthog_dashboardtile"."color", + "posthog_dashboardtile"."filters_hash", + "posthog_dashboardtile"."last_refresh", + "posthog_dashboardtile"."refreshing", + "posthog_dashboardtile"."refresh_attempt", + "posthog_dashboardtile"."deleted" + FROM "posthog_dashboardtile" + WHERE "posthog_dashboardtile"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.32 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.33 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE "posthog_dashboard"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.34 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.35 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.36 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.37 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.38 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.39 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.4 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.40 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.41 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.42 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.43 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.44 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.45 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.46 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.47 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.48 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.49 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.5 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.50 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.51 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.52 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.53 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.54 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.55 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.56 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.57 + ' + SELECT "posthog_dashboardtile"."id", + "posthog_dashboardtile"."dashboard_id", + "posthog_dashboardtile"."insight_id", + "posthog_dashboardtile"."text_id", + "posthog_dashboardtile"."layouts", + "posthog_dashboardtile"."color", + "posthog_dashboardtile"."filters_hash", + "posthog_dashboardtile"."last_refresh", + "posthog_dashboardtile"."refreshing", + "posthog_dashboardtile"."refresh_attempt", + "posthog_dashboardtile"."deleted" + FROM "posthog_dashboardtile" + WHERE "posthog_dashboardtile"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.58 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.59 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE "posthog_dashboard"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.6 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + ORDER BY "posthog_featureflag"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.60 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.61 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.62 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.63 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.64 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.65 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.66 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.67 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."active" + AND NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.68 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.69 + ' + SELECT "posthog_experiment"."id", + "posthog_experiment"."name", + "posthog_experiment"."description", + "posthog_experiment"."team_id", + "posthog_experiment"."filters", + "posthog_experiment"."parameters", + "posthog_experiment"."secondary_metrics", + "posthog_experiment"."feature_flag_id", + "posthog_experiment"."created_by_id", + "posthog_experiment"."start_date", + "posthog_experiment"."end_date", + "posthog_experiment"."created_at", + "posthog_experiment"."updated_at", + "posthog_experiment"."archived" + FROM "posthog_experiment" + WHERE "posthog_experiment"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.7 + ' + SELECT (1) AS "a" + FROM "posthog_featureflag" + WHERE (NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.70 + ' + SELECT "posthog_survey"."id", + "posthog_survey"."team_id", + "posthog_survey"."name", + "posthog_survey"."description", + "posthog_survey"."linked_flag_id", + "posthog_survey"."targeting_flag_id", + "posthog_survey"."type", + "posthog_survey"."conditions", + "posthog_survey"."questions", + "posthog_survey"."appearance", + "posthog_survey"."created_at", + "posthog_survey"."created_by_id", + "posthog_survey"."start_date", + "posthog_survey"."end_date", + "posthog_survey"."updated_at", + "posthog_survey"."archived" + FROM "posthog_survey" + WHERE "posthog_survey"."linked_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.71 + ' + SELECT "posthog_earlyaccessfeature"."id", + "posthog_earlyaccessfeature"."team_id", + "posthog_earlyaccessfeature"."feature_flag_id", + "posthog_earlyaccessfeature"."name", + "posthog_earlyaccessfeature"."description", + "posthog_earlyaccessfeature"."stage", + "posthog_earlyaccessfeature"."documentation_url", + "posthog_earlyaccessfeature"."created_at" + FROM "posthog_earlyaccessfeature" + WHERE "posthog_earlyaccessfeature"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.72 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") + WHERE (NOT ("posthog_dashboard"."deleted") + AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.73 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 21 + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.8 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.9 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."active" + AND NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- # name: TestOrganizationFeatureFlagGet.test_get_feature_flag_success ' SELECT "posthog_user"."id", diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py index 7a8bc0bad3fe9..096aa9bdd2873 100644 --- a/posthog/api/test/test_organization_feature_flag.py +++ b/posthog/api/test/test_organization_feature_flag.py @@ -68,7 +68,7 @@ def setUp(self): super().setUp() - # @snapshot_postgres_queries + @snapshot_postgres_queries def test_copy_feature_flag_success(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" data = { From 567d5adf7018033213f893c57ab7264d4d12057a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 08:22:45 +0000 Subject: [PATCH 15/22] Update query snapshots --- .../__snapshots__/test_dashboard.ambr | 359 +++++++++--------- 1 file changed, 185 insertions(+), 174 deletions(-) diff --git a/posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr b/posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr index f40bb246f4ce1..6707779ce10ce 100644 --- a/posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr +++ b/posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr @@ -1488,7 +1488,7 @@ "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' @@ -1499,7 +1499,7 @@ "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' @@ -1510,12 +1510,23 @@ "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- # name: TestDashboard.test_listing_dashboards_is_not_nplus1.13 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.14 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -1542,7 +1553,7 @@ 5 /* ... */)) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.14 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.15 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -1598,7 +1609,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.15 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.16 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -1654,24 +1665,13 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.16 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ - ' ---- # name: TestDashboard.test_listing_dashboards_is_not_nplus1.17 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' @@ -1682,7 +1682,7 @@ "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' @@ -1693,7 +1693,7 @@ "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' @@ -1734,7 +1734,7 @@ "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' @@ -1745,12 +1745,23 @@ "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- # name: TestDashboard.test_listing_dashboards_is_not_nplus1.22 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.23 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -1799,7 +1810,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.23 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.24 ' SELECT "posthog_dashboardtile"."id", "posthog_dashboardtile"."dashboard_id", @@ -1817,7 +1828,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.24 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.25 ' SELECT "posthog_dashboarditem"."id", "posthog_dashboarditem"."name", @@ -1852,7 +1863,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.25 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.26 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -1875,7 +1886,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.26 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.27 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -1931,7 +1942,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.27 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.28 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1942,7 +1953,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.28 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.29 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1953,42 +1964,29 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.29 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.3 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.3 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.30 ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - WHERE (NOT ("posthog_dashboard"."deleted") - AND "posthog_dashboard"."id" = 2) - LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.30 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.31 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1999,7 +1997,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.31 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.32 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2010,7 +2008,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.32 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.33 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2021,7 +2019,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.33 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.34 ' SELECT "posthog_organization"."id", "posthog_organization"."name", @@ -2045,7 +2043,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.34 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.35 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -2069,7 +2067,7 @@ AND "posthog_dashboardtile"."insight_id" = 2) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.35 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.36 ' SELECT "posthog_dashboardtile"."id", "posthog_dashboardtile"."dashboard_id", @@ -2090,7 +2088,7 @@ AND "posthog_dashboardtile"."insight_id" = 2) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.36 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.37 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2101,7 +2099,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.37 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.38 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2112,7 +2110,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.38 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.39 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2123,7 +2121,31 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.39 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.4 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE (NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboard"."id" = 2) + LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.40 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2134,56 +2156,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.4 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ - ' ---- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.40 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.41 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2194,7 +2167,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.41 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.42 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2205,7 +2178,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.42 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.43 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2216,7 +2189,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.43 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.44 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2227,7 +2200,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.44 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.45 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2238,7 +2211,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.45 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.46 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2249,7 +2222,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.46 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.47 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2260,7 +2233,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.47 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.48 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2271,7 +2244,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.48 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.49 ' SELECT "posthog_dashboardtile"."dashboard_id" FROM "posthog_dashboardtile" @@ -2282,7 +2255,56 @@ AND "posthog_dashboardtile"."insight_id" = 2) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.49 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.5 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.50 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -2309,42 +2331,7 @@ 5 /* ... */)) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.5 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ - ' ---- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.50 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.51 ' SELECT "posthog_user"."id", "posthog_user"."password", @@ -2373,7 +2360,7 @@ LIMIT 21 /**/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.51 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.52 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -2422,7 +2409,7 @@ LIMIT 21 /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.52 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.53 ' SELECT "posthog_organizationmembership"."id", "posthog_organizationmembership"."organization_id", @@ -2452,7 +2439,7 @@ WHERE "posthog_organizationmembership"."user_id" = 2 /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.53 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.54 ' SELECT "posthog_organization"."id", "posthog_organization"."name", @@ -2476,7 +2463,7 @@ LIMIT 21 /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.54 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.55 ' SELECT COUNT(*) AS "__count" FROM "posthog_dashboard" @@ -2484,7 +2471,7 @@ AND "posthog_dashboard"."team_id" = 2) /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.55 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.56 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -2601,7 +2588,7 @@ LIMIT 300 /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.56 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.57 ' SELECT "posthog_sharingconfiguration"."id", "posthog_sharingconfiguration"."team_id", @@ -2620,6 +2607,41 @@ ' --- # name: TestDashboard.test_listing_dashboards_is_not_nplus1.6 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.7 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -2675,24 +2697,13 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.7 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ - ' ---- # name: TestDashboard.test_listing_dashboards_is_not_nplus1.8 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' @@ -2703,7 +2714,7 @@ "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' From 91db420bb3402817f52cc7d443341285709f1cf5 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 08:37:34 +0000 Subject: [PATCH 16/22] Update query snapshots --- .../__snapshots__/test_dashboard.ambr | 373 +++++++++--------- 1 file changed, 190 insertions(+), 183 deletions(-) diff --git a/posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr b/posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr index 6707779ce10ce..275c555c7e7da 100644 --- a/posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr +++ b/posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr @@ -1483,17 +1483,6 @@ ' --- # name: TestDashboard.test_listing_dashboards_is_not_nplus1.10 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ - ' ---- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.11 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1504,7 +1493,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.12 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.11 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1515,7 +1504,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.13 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.12 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1526,7 +1515,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.14 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.13 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -1553,7 +1542,7 @@ 5 /* ... */)) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.15 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.14 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -1609,7 +1598,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.16 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.15 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -1665,7 +1654,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.17 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.16 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1676,7 +1665,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.18 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.17 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1687,7 +1676,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.19 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.18 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1698,6 +1687,17 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.19 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- # name: TestDashboard.test_listing_dashboards_is_not_nplus1.2 ' SELECT "posthog_organizationmembership"."id", @@ -1729,17 +1729,6 @@ ' --- # name: TestDashboard.test_listing_dashboards_is_not_nplus1.20 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ - ' ---- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.21 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1750,7 +1739,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.22 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.21 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1761,7 +1750,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.23 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.22 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -1810,7 +1799,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.24 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.23 ' SELECT "posthog_dashboardtile"."id", "posthog_dashboardtile"."dashboard_id", @@ -1828,7 +1817,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.25 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.24 ' SELECT "posthog_dashboarditem"."id", "posthog_dashboarditem"."name", @@ -1863,7 +1852,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.26 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.25 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -1886,7 +1875,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.27 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.26 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -1942,7 +1931,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.28 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.27 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1953,7 +1942,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.29 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.28 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1964,29 +1953,42 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.3 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.29 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.30 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.3 ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE (NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboard"."id" = 2) + LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.31 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.30 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -1997,7 +1999,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.32 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.31 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2008,7 +2010,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.33 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.32 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2019,7 +2021,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.34 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.33 ' SELECT "posthog_organization"."id", "posthog_organization"."name", @@ -2043,7 +2045,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.35 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.34 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -2067,7 +2069,7 @@ AND "posthog_dashboardtile"."insight_id" = 2) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.36 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.35 ' SELECT "posthog_dashboardtile"."id", "posthog_dashboardtile"."dashboard_id", @@ -2088,7 +2090,7 @@ AND "posthog_dashboardtile"."insight_id" = 2) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.37 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.36 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2099,7 +2101,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.38 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.37 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2110,7 +2112,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.39 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.38 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2121,31 +2123,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.4 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - WHERE (NOT ("posthog_dashboard"."deleted") - AND "posthog_dashboard"."id" = 2) - LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ - ' ---- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.40 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.39 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2156,7 +2134,56 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.41 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.4 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.40 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2167,7 +2194,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.42 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.41 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2178,7 +2205,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.43 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.42 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2189,7 +2216,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.44 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.43 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2200,7 +2227,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.45 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.44 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2211,7 +2238,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.46 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.45 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2222,7 +2249,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.47 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.46 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2233,7 +2260,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.48 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.47 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2244,7 +2271,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.49 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.48 ' SELECT "posthog_dashboardtile"."dashboard_id" FROM "posthog_dashboardtile" @@ -2255,56 +2282,7 @@ AND "posthog_dashboardtile"."insight_id" = 2) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.5 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ - ' ---- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.50 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.49 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -2331,7 +2309,42 @@ 5 /* ... */)) /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.51 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.5 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.50 ' SELECT "posthog_user"."id", "posthog_user"."password", @@ -2360,7 +2373,7 @@ LIMIT 21 /**/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.52 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.51 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -2409,7 +2422,7 @@ LIMIT 21 /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.53 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.52 ' SELECT "posthog_organizationmembership"."id", "posthog_organizationmembership"."organization_id", @@ -2439,7 +2452,7 @@ WHERE "posthog_organizationmembership"."user_id" = 2 /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.54 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.53 ' SELECT "posthog_organization"."id", "posthog_organization"."name", @@ -2463,7 +2476,7 @@ LIMIT 21 /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.55 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.54 ' SELECT COUNT(*) AS "__count" FROM "posthog_dashboard" @@ -2471,7 +2484,7 @@ AND "posthog_dashboard"."team_id" = 2) /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.56 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.55 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -2588,7 +2601,7 @@ LIMIT 300 /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.57 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.56 ' SELECT "posthog_sharingconfiguration"."id", "posthog_sharingconfiguration"."team_id", @@ -2606,42 +2619,25 @@ 5 /* ... */) /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.6 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.57 ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + SELECT "posthog_sharingconfiguration"."id", + "posthog_sharingconfiguration"."team_id", + "posthog_sharingconfiguration"."dashboard_id", + "posthog_sharingconfiguration"."insight_id", + "posthog_sharingconfiguration"."recording_id", + "posthog_sharingconfiguration"."created_at", + "posthog_sharingconfiguration"."enabled", + "posthog_sharingconfiguration"."access_token" + FROM "posthog_sharingconfiguration" + WHERE "posthog_sharingconfiguration"."dashboard_id" IN (1, + 2, + 3, + 4, + 5 /* ... */) /*controller='project_dashboards-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/dashboards/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.7 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.6 ' SELECT "posthog_team"."id", "posthog_team"."uuid", @@ -2697,7 +2693,7 @@ LIMIT 21 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.8 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.7 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2708,7 +2704,7 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- -# name: TestDashboard.test_listing_dashboards_is_not_nplus1.9 +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.8 ' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", @@ -2719,6 +2715,17 @@ LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ ' --- +# name: TestDashboard.test_listing_dashboards_is_not_nplus1.9 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='project_insights-list',route='api/projects/%28%3FP%3Cparent_lookup_team_id%3E%5B%5E/.%5D%2B%29/insights/%3F%24'*/ + ' +--- # name: TestDashboard.test_loading_individual_dashboard_does_not_prefetch_all_possible_tiles ' SELECT "posthog_user"."id", From fa5a02921d3f5079d2d0a9ec5576bf37bb57bce2 Mon Sep 17 00:00:00 2001 From: Neil Kakkar Date: Tue, 7 Nov 2023 12:50:19 +0000 Subject: [PATCH 17/22] snapshot --- .../test_organization_feature_flag.ambr | 1571 ----------------- 1 file changed, 1571 deletions(-) diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr index ac5affa5164a0..4d617da9ef82b 100644 --- a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -1,1574 +1,3 @@ -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success - ' - SELECT "posthog_user"."id", - "posthog_user"."password", - "posthog_user"."last_login", - "posthog_user"."first_name", - "posthog_user"."last_name", - "posthog_user"."is_staff", - "posthog_user"."is_active", - "posthog_user"."date_joined", - "posthog_user"."uuid", - "posthog_user"."current_organization_id", - "posthog_user"."current_team_id", - "posthog_user"."email", - "posthog_user"."pending_email", - "posthog_user"."temporary_token", - "posthog_user"."distinct_id", - "posthog_user"."is_email_verified", - "posthog_user"."has_seen_product_intro_for", - "posthog_user"."email_opt_in", - "posthog_user"."partial_notification_settings", - "posthog_user"."anonymize_data", - "posthog_user"."toolbar_mode", - "posthog_user"."events_column_config" - FROM "posthog_user" - WHERE "posthog_user"."id" = 2 - LIMIT 21 /**/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.1 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.10 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.11 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.12 - ' - SELECT "posthog_dashboardtile"."id" - FROM "posthog_dashboardtile" - INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") - WHERE (NOT ("posthog_dashboardtile"."deleted" - AND "posthog_dashboardtile"."deleted" IS NOT NULL) - AND NOT ("posthog_dashboard"."deleted") - AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.13 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.14 - ' - SELECT "posthog_dashboardtile"."id" - FROM "posthog_dashboardtile" - INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") - WHERE (NOT ("posthog_dashboardtile"."deleted" - AND "posthog_dashboardtile"."deleted" IS NOT NULL) - AND NOT ("posthog_dashboard"."deleted") - AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.15 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.16 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.17 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.18 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.19 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.2 - ' - SELECT (1) AS "a" - FROM "posthog_organizationmembership" - WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid - AND "posthog_organizationmembership"."user_id" = 2) - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.20 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.21 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.22 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.23 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.24 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.25 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.26 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.27 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.28 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.29 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.3 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.30 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.31 - ' - SELECT "posthog_dashboardtile"."id", - "posthog_dashboardtile"."dashboard_id", - "posthog_dashboardtile"."insight_id", - "posthog_dashboardtile"."text_id", - "posthog_dashboardtile"."layouts", - "posthog_dashboardtile"."color", - "posthog_dashboardtile"."filters_hash", - "posthog_dashboardtile"."last_refresh", - "posthog_dashboardtile"."refreshing", - "posthog_dashboardtile"."refresh_attempt", - "posthog_dashboardtile"."deleted" - FROM "posthog_dashboardtile" - WHERE "posthog_dashboardtile"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.32 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.33 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - WHERE "posthog_dashboard"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.34 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.35 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.36 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.37 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.38 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.39 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.4 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.40 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.41 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.42 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.43 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.44 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.45 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.46 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.47 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.48 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.49 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.5 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.50 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.51 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.52 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.53 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.54 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.55 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.56 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.57 - ' - SELECT "posthog_dashboardtile"."id", - "posthog_dashboardtile"."dashboard_id", - "posthog_dashboardtile"."insight_id", - "posthog_dashboardtile"."text_id", - "posthog_dashboardtile"."layouts", - "posthog_dashboardtile"."color", - "posthog_dashboardtile"."filters_hash", - "posthog_dashboardtile"."last_refresh", - "posthog_dashboardtile"."refreshing", - "posthog_dashboardtile"."refresh_attempt", - "posthog_dashboardtile"."deleted" - FROM "posthog_dashboardtile" - WHERE "posthog_dashboardtile"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.58 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.59 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - WHERE "posthog_dashboard"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.6 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - ORDER BY "posthog_featureflag"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.60 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.61 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.62 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.63 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.64 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.65 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.66 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.67 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."active" - AND NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.68 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.69 - ' - SELECT "posthog_experiment"."id", - "posthog_experiment"."name", - "posthog_experiment"."description", - "posthog_experiment"."team_id", - "posthog_experiment"."filters", - "posthog_experiment"."parameters", - "posthog_experiment"."secondary_metrics", - "posthog_experiment"."feature_flag_id", - "posthog_experiment"."created_by_id", - "posthog_experiment"."start_date", - "posthog_experiment"."end_date", - "posthog_experiment"."created_at", - "posthog_experiment"."updated_at", - "posthog_experiment"."archived" - FROM "posthog_experiment" - WHERE "posthog_experiment"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.7 - ' - SELECT (1) AS "a" - FROM "posthog_featureflag" - WHERE (NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.70 - ' - SELECT "posthog_survey"."id", - "posthog_survey"."team_id", - "posthog_survey"."name", - "posthog_survey"."description", - "posthog_survey"."linked_flag_id", - "posthog_survey"."targeting_flag_id", - "posthog_survey"."type", - "posthog_survey"."conditions", - "posthog_survey"."questions", - "posthog_survey"."appearance", - "posthog_survey"."created_at", - "posthog_survey"."created_by_id", - "posthog_survey"."start_date", - "posthog_survey"."end_date", - "posthog_survey"."updated_at", - "posthog_survey"."archived" - FROM "posthog_survey" - WHERE "posthog_survey"."linked_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.71 - ' - SELECT "posthog_earlyaccessfeature"."id", - "posthog_earlyaccessfeature"."team_id", - "posthog_earlyaccessfeature"."feature_flag_id", - "posthog_earlyaccessfeature"."name", - "posthog_earlyaccessfeature"."description", - "posthog_earlyaccessfeature"."stage", - "posthog_earlyaccessfeature"."documentation_url", - "posthog_earlyaccessfeature"."created_at" - FROM "posthog_earlyaccessfeature" - WHERE "posthog_earlyaccessfeature"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.72 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") - WHERE (NOT ("posthog_dashboard"."deleted") - AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.73 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 21 - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.8 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."deleted" - AND "posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.9 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."active" - AND NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- # name: TestOrganizationFeatureFlagGet.test_get_feature_flag_success ' SELECT "posthog_user"."id", From fe14a41ebfd5cfed43782053886efa3f398efb88 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 13:00:33 +0000 Subject: [PATCH 18/22] Update query snapshots --- .../test_organization_feature_flag.ambr | 1571 +++++++++++++++++ 1 file changed, 1571 insertions(+) diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr index 4d617da9ef82b..ac5affa5164a0 100644 --- a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -1,3 +1,1574 @@ +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success + ' + SELECT "posthog_user"."id", + "posthog_user"."password", + "posthog_user"."last_login", + "posthog_user"."first_name", + "posthog_user"."last_name", + "posthog_user"."is_staff", + "posthog_user"."is_active", + "posthog_user"."date_joined", + "posthog_user"."uuid", + "posthog_user"."current_organization_id", + "posthog_user"."current_team_id", + "posthog_user"."email", + "posthog_user"."pending_email", + "posthog_user"."temporary_token", + "posthog_user"."distinct_id", + "posthog_user"."is_email_verified", + "posthog_user"."has_seen_product_intro_for", + "posthog_user"."email_opt_in", + "posthog_user"."partial_notification_settings", + "posthog_user"."anonymize_data", + "posthog_user"."toolbar_mode", + "posthog_user"."events_column_config" + FROM "posthog_user" + WHERE "posthog_user"."id" = 2 + LIMIT 21 /**/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.1 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.10 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.11 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.12 + ' + SELECT "posthog_dashboardtile"."id" + FROM "posthog_dashboardtile" + INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") + WHERE (NOT ("posthog_dashboardtile"."deleted" + AND "posthog_dashboardtile"."deleted" IS NOT NULL) + AND NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.13 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.14 + ' + SELECT "posthog_dashboardtile"."id" + FROM "posthog_dashboardtile" + INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") + WHERE (NOT ("posthog_dashboardtile"."deleted" + AND "posthog_dashboardtile"."deleted" IS NOT NULL) + AND NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.15 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.16 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.17 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.18 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.19 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.2 + ' + SELECT (1) AS "a" + FROM "posthog_organizationmembership" + WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid + AND "posthog_organizationmembership"."user_id" = 2) + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.20 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.21 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.22 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.23 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.24 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.25 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.26 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.27 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.28 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.29 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.3 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.30 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.31 + ' + SELECT "posthog_dashboardtile"."id", + "posthog_dashboardtile"."dashboard_id", + "posthog_dashboardtile"."insight_id", + "posthog_dashboardtile"."text_id", + "posthog_dashboardtile"."layouts", + "posthog_dashboardtile"."color", + "posthog_dashboardtile"."filters_hash", + "posthog_dashboardtile"."last_refresh", + "posthog_dashboardtile"."refreshing", + "posthog_dashboardtile"."refresh_attempt", + "posthog_dashboardtile"."deleted" + FROM "posthog_dashboardtile" + WHERE "posthog_dashboardtile"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.32 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.33 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE "posthog_dashboard"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.34 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.35 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.36 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.37 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.38 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.39 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.4 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.40 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.41 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.42 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.43 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.44 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.45 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.46 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.47 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.48 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.49 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.5 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.50 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.51 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.52 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.53 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.54 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.55 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.56 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.57 + ' + SELECT "posthog_dashboardtile"."id", + "posthog_dashboardtile"."dashboard_id", + "posthog_dashboardtile"."insight_id", + "posthog_dashboardtile"."text_id", + "posthog_dashboardtile"."layouts", + "posthog_dashboardtile"."color", + "posthog_dashboardtile"."filters_hash", + "posthog_dashboardtile"."last_refresh", + "posthog_dashboardtile"."refreshing", + "posthog_dashboardtile"."refresh_attempt", + "posthog_dashboardtile"."deleted" + FROM "posthog_dashboardtile" + WHERE "posthog_dashboardtile"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.58 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.59 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE "posthog_dashboard"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.6 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + ORDER BY "posthog_featureflag"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.60 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.61 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.62 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.63 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.64 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.65 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.66 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.67 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."active" + AND NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.68 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.69 + ' + SELECT "posthog_experiment"."id", + "posthog_experiment"."name", + "posthog_experiment"."description", + "posthog_experiment"."team_id", + "posthog_experiment"."filters", + "posthog_experiment"."parameters", + "posthog_experiment"."secondary_metrics", + "posthog_experiment"."feature_flag_id", + "posthog_experiment"."created_by_id", + "posthog_experiment"."start_date", + "posthog_experiment"."end_date", + "posthog_experiment"."created_at", + "posthog_experiment"."updated_at", + "posthog_experiment"."archived" + FROM "posthog_experiment" + WHERE "posthog_experiment"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.7 + ' + SELECT (1) AS "a" + FROM "posthog_featureflag" + WHERE (NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.70 + ' + SELECT "posthog_survey"."id", + "posthog_survey"."team_id", + "posthog_survey"."name", + "posthog_survey"."description", + "posthog_survey"."linked_flag_id", + "posthog_survey"."targeting_flag_id", + "posthog_survey"."type", + "posthog_survey"."conditions", + "posthog_survey"."questions", + "posthog_survey"."appearance", + "posthog_survey"."created_at", + "posthog_survey"."created_by_id", + "posthog_survey"."start_date", + "posthog_survey"."end_date", + "posthog_survey"."updated_at", + "posthog_survey"."archived" + FROM "posthog_survey" + WHERE "posthog_survey"."linked_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.71 + ' + SELECT "posthog_earlyaccessfeature"."id", + "posthog_earlyaccessfeature"."team_id", + "posthog_earlyaccessfeature"."feature_flag_id", + "posthog_earlyaccessfeature"."name", + "posthog_earlyaccessfeature"."description", + "posthog_earlyaccessfeature"."stage", + "posthog_earlyaccessfeature"."documentation_url", + "posthog_earlyaccessfeature"."created_at" + FROM "posthog_earlyaccessfeature" + WHERE "posthog_earlyaccessfeature"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.72 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") + WHERE (NOT ("posthog_dashboard"."deleted") + AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.73 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 21 + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.8 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.9 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."active" + AND NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- # name: TestOrganizationFeatureFlagGet.test_get_feature_flag_success ' SELECT "posthog_user"."id", From 81b53287e3eff8f11802be219431ab34db332ffd Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Tue, 7 Nov 2023 17:03:54 +0100 Subject: [PATCH 19/22] adjust test_copy_feature_flag_create_new --- .../test_organization_feature_flag.ambr | 1611 +++++++++++++++++ .../test/test_organization_feature_flag.py | 87 +- 2 files changed, 1687 insertions(+), 11 deletions(-) diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr index ac5affa5164a0..9f92a2cb86103 100644 --- a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -1,3 +1,1614 @@ +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new + ' + SELECT "posthog_user"."id", + "posthog_user"."password", + "posthog_user"."last_login", + "posthog_user"."first_name", + "posthog_user"."last_name", + "posthog_user"."is_staff", + "posthog_user"."is_active", + "posthog_user"."date_joined", + "posthog_user"."uuid", + "posthog_user"."current_organization_id", + "posthog_user"."current_team_id", + "posthog_user"."email", + "posthog_user"."pending_email", + "posthog_user"."temporary_token", + "posthog_user"."distinct_id", + "posthog_user"."is_email_verified", + "posthog_user"."has_seen_product_intro_for", + "posthog_user"."email_opt_in", + "posthog_user"."partial_notification_settings", + "posthog_user"."anonymize_data", + "posthog_user"."toolbar_mode", + "posthog_user"."events_column_config" + FROM "posthog_user" + WHERE "posthog_user"."id" = 2 + LIMIT 21 /**/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.1 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.10 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.11 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.12 + ' + SELECT "posthog_dashboardtile"."id" + FROM "posthog_dashboardtile" + INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") + WHERE (NOT ("posthog_dashboardtile"."deleted" + AND "posthog_dashboardtile"."deleted" IS NOT NULL) + AND NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.13 + ' + SELECT "posthog_organization"."id", + "posthog_organization"."name", + "posthog_organization"."slug", + "posthog_organization"."created_at", + "posthog_organization"."updated_at", + "posthog_organization"."plugins_access_level", + "posthog_organization"."for_internal_metrics", + "posthog_organization"."is_member_join_email_enabled", + "posthog_organization"."enforce_2fa", + "posthog_organization"."customer_id", + "posthog_organization"."available_product_features", + "posthog_organization"."usage", + "posthog_organization"."never_drop_data", + "posthog_organization"."setup_section_2_completed", + "posthog_organization"."personalization", + "posthog_organization"."domain_whitelist", + "posthog_organization"."available_features" + FROM "posthog_organization" + WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.14 + ' + SELECT "posthog_dashboardtile"."id" + FROM "posthog_dashboardtile" + INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") + WHERE (NOT ("posthog_dashboardtile"."deleted" + AND "posthog_dashboardtile"."deleted" IS NOT NULL) + AND NOT ("posthog_dashboard"."deleted") + AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.15 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.16 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.17 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.18 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.19 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.2 + ' + SELECT (1) AS "a" + FROM "posthog_organizationmembership" + WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid + AND "posthog_organizationmembership"."user_id" = 2) + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.20 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.21 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.22 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.23 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.24 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.25 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.26 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.27 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.28 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.29 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.3 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.30 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.31 + ' + SELECT "posthog_dashboardtile"."id", + "posthog_dashboardtile"."dashboard_id", + "posthog_dashboardtile"."insight_id", + "posthog_dashboardtile"."text_id", + "posthog_dashboardtile"."layouts", + "posthog_dashboardtile"."color", + "posthog_dashboardtile"."filters_hash", + "posthog_dashboardtile"."last_refresh", + "posthog_dashboardtile"."refreshing", + "posthog_dashboardtile"."refresh_attempt", + "posthog_dashboardtile"."deleted" + FROM "posthog_dashboardtile" + WHERE "posthog_dashboardtile"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.32 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.33 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE "posthog_dashboard"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.34 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.35 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.36 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.37 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.38 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.39 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.4 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.40 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.41 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.42 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.43 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.44 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.45 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.46 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.47 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.48 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.49 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.5 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.50 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.51 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.52 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.53 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.54 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.55 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.56 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.57 + ' + SELECT "posthog_dashboardtile"."id", + "posthog_dashboardtile"."dashboard_id", + "posthog_dashboardtile"."insight_id", + "posthog_dashboardtile"."text_id", + "posthog_dashboardtile"."layouts", + "posthog_dashboardtile"."color", + "posthog_dashboardtile"."filters_hash", + "posthog_dashboardtile"."last_refresh", + "posthog_dashboardtile"."refreshing", + "posthog_dashboardtile"."refresh_attempt", + "posthog_dashboardtile"."deleted" + FROM "posthog_dashboardtile" + WHERE "posthog_dashboardtile"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.58 + ' + SELECT "posthog_dashboarditem"."id", + "posthog_dashboarditem"."name", + "posthog_dashboarditem"."derived_name", + "posthog_dashboarditem"."description", + "posthog_dashboarditem"."team_id", + "posthog_dashboarditem"."filters", + "posthog_dashboarditem"."filters_hash", + "posthog_dashboarditem"."query", + "posthog_dashboarditem"."order", + "posthog_dashboarditem"."deleted", + "posthog_dashboarditem"."saved", + "posthog_dashboarditem"."created_at", + "posthog_dashboarditem"."last_refresh", + "posthog_dashboarditem"."refreshing", + "posthog_dashboarditem"."created_by_id", + "posthog_dashboarditem"."is_sample", + "posthog_dashboarditem"."short_id", + "posthog_dashboarditem"."favorited", + "posthog_dashboarditem"."refresh_attempt", + "posthog_dashboarditem"."last_modified_at", + "posthog_dashboarditem"."last_modified_by_id", + "posthog_dashboarditem"."dashboard_id", + "posthog_dashboarditem"."layouts", + "posthog_dashboarditem"."color", + "posthog_dashboarditem"."dive_dashboard_id", + "posthog_dashboarditem"."updated_at", + "posthog_dashboarditem"."deprecated_tags", + "posthog_dashboarditem"."tags" + FROM "posthog_dashboarditem" + WHERE "posthog_dashboarditem"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.59 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + WHERE "posthog_dashboard"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.6 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + ORDER BY "posthog_featureflag"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.60 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.61 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.62 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.63 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.64 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.65 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.66 + ' + SELECT "posthog_instancesetting"."id", + "posthog_instancesetting"."key", + "posthog_instancesetting"."raw_value" + FROM "posthog_instancesetting" + WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' + ORDER BY "posthog_instancesetting"."id" ASC + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.67 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."active" + AND NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.68 + ' + SELECT "posthog_team"."id", + "posthog_team"."uuid", + "posthog_team"."organization_id", + "posthog_team"."api_token", + "posthog_team"."app_urls", + "posthog_team"."name", + "posthog_team"."slack_incoming_webhook", + "posthog_team"."created_at", + "posthog_team"."updated_at", + "posthog_team"."anonymize_ips", + "posthog_team"."completed_snippet_onboarding", + "posthog_team"."has_completed_onboarding_for", + "posthog_team"."ingested_event", + "posthog_team"."autocapture_opt_out", + "posthog_team"."autocapture_exceptions_opt_in", + "posthog_team"."autocapture_exceptions_errors_to_ignore", + "posthog_team"."session_recording_opt_in", + "posthog_team"."session_recording_sample_rate", + "posthog_team"."session_recording_minimum_duration_milliseconds", + "posthog_team"."session_recording_linked_flag", + "posthog_team"."capture_console_log_opt_in", + "posthog_team"."capture_performance_opt_in", + "posthog_team"."surveys_opt_in", + "posthog_team"."session_recording_version", + "posthog_team"."signup_token", + "posthog_team"."is_demo", + "posthog_team"."access_control", + "posthog_team"."week_start_day", + "posthog_team"."inject_web_apps", + "posthog_team"."test_account_filters", + "posthog_team"."test_account_filters_default_checked", + "posthog_team"."path_cleaning_filters", + "posthog_team"."timezone", + "posthog_team"."data_attributes", + "posthog_team"."person_display_name_properties", + "posthog_team"."live_events_columns", + "posthog_team"."recording_domains", + "posthog_team"."primary_dashboard_id", + "posthog_team"."extra_settings", + "posthog_team"."correlation_config", + "posthog_team"."session_recording_retention_period_days", + "posthog_team"."plugins_opt_in", + "posthog_team"."opt_out_capture", + "posthog_team"."event_names", + "posthog_team"."event_names_with_usage", + "posthog_team"."event_properties", + "posthog_team"."event_properties_with_usage", + "posthog_team"."event_properties_numerical", + "posthog_team"."external_data_workspace_id" + FROM "posthog_team" + WHERE "posthog_team"."id" = 2 + LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.69 + ' + SELECT "posthog_experiment"."id", + "posthog_experiment"."name", + "posthog_experiment"."description", + "posthog_experiment"."team_id", + "posthog_experiment"."filters", + "posthog_experiment"."parameters", + "posthog_experiment"."secondary_metrics", + "posthog_experiment"."feature_flag_id", + "posthog_experiment"."created_by_id", + "posthog_experiment"."start_date", + "posthog_experiment"."end_date", + "posthog_experiment"."created_at", + "posthog_experiment"."updated_at", + "posthog_experiment"."archived" + FROM "posthog_experiment" + WHERE "posthog_experiment"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.7 + ' + SELECT (1) AS "a" + FROM "posthog_featureflag" + WHERE (NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.70 + ' + SELECT "posthog_survey"."id", + "posthog_survey"."team_id", + "posthog_survey"."name", + "posthog_survey"."description", + "posthog_survey"."linked_flag_id", + "posthog_survey"."targeting_flag_id", + "posthog_survey"."type", + "posthog_survey"."conditions", + "posthog_survey"."questions", + "posthog_survey"."appearance", + "posthog_survey"."created_at", + "posthog_survey"."created_by_id", + "posthog_survey"."start_date", + "posthog_survey"."end_date", + "posthog_survey"."updated_at", + "posthog_survey"."archived" + FROM "posthog_survey" + WHERE "posthog_survey"."linked_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.71 + ' + SELECT "posthog_earlyaccessfeature"."id", + "posthog_earlyaccessfeature"."team_id", + "posthog_earlyaccessfeature"."feature_flag_id", + "posthog_earlyaccessfeature"."name", + "posthog_earlyaccessfeature"."description", + "posthog_earlyaccessfeature"."stage", + "posthog_earlyaccessfeature"."documentation_url", + "posthog_earlyaccessfeature"."created_at" + FROM "posthog_earlyaccessfeature" + WHERE "posthog_earlyaccessfeature"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.72 + ' + SELECT "posthog_dashboard"."id", + "posthog_dashboard"."name", + "posthog_dashboard"."description", + "posthog_dashboard"."team_id", + "posthog_dashboard"."pinned", + "posthog_dashboard"."created_at", + "posthog_dashboard"."created_by_id", + "posthog_dashboard"."deleted", + "posthog_dashboard"."last_accessed_at", + "posthog_dashboard"."filters", + "posthog_dashboard"."creation_mode", + "posthog_dashboard"."restriction_level", + "posthog_dashboard"."deprecated_tags", + "posthog_dashboard"."tags", + "posthog_dashboard"."share_token", + "posthog_dashboard"."is_shared" + FROM "posthog_dashboard" + INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") + WHERE (NOT ("posthog_dashboard"."deleted") + AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.73 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) + LIMIT 21 + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.74 + ' + SELECT "posthog_user"."id", + "posthog_user"."password", + "posthog_user"."last_login", + "posthog_user"."first_name", + "posthog_user"."last_name", + "posthog_user"."is_staff", + "posthog_user"."is_active", + "posthog_user"."date_joined", + "posthog_user"."uuid", + "posthog_user"."current_organization_id", + "posthog_user"."current_team_id", + "posthog_user"."email", + "posthog_user"."pending_email", + "posthog_user"."temporary_token", + "posthog_user"."distinct_id", + "posthog_user"."is_email_verified", + "posthog_user"."requested_password_reset_at", + "posthog_user"."has_seen_product_intro_for", + "posthog_user"."email_opt_in", + "posthog_user"."partial_notification_settings", + "posthog_user"."anonymize_data", + "posthog_user"."toolbar_mode", + "posthog_user"."events_column_config" + FROM "posthog_user" + WHERE "posthog_user"."id" = 2 + LIMIT 21 + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.75 + ' + SELECT (1) AS "a" + FROM "posthog_dashboard" + INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") + WHERE (NOT ("posthog_dashboard"."deleted") + AND "posthog_featureflagdashboards"."feature_flag_id" = 2) + LIMIT 1 + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.8 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."deleted" + AND "posthog_featureflag"."key" = 'copied-flag-key' + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.9 + ' + SELECT "posthog_featureflag"."id", + "posthog_featureflag"."key", + "posthog_featureflag"."name", + "posthog_featureflag"."filters", + "posthog_featureflag"."rollout_percentage", + "posthog_featureflag"."team_id", + "posthog_featureflag"."created_by_id", + "posthog_featureflag"."created_at", + "posthog_featureflag"."deleted", + "posthog_featureflag"."active", + "posthog_featureflag"."rollback_conditions", + "posthog_featureflag"."performed_rollback", + "posthog_featureflag"."ensure_experience_continuity", + "posthog_featureflag"."usage_dashboard_id", + "posthog_featureflag"."has_enriched_analytics" + FROM "posthog_featureflag" + WHERE ("posthog_featureflag"."active" + AND NOT "posthog_featureflag"."deleted" + AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ + ' +--- # name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success ' SELECT "posthog_user"."id", diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py index 096aa9bdd2873..4d158fa2ffd62 100644 --- a/posthog/api/test/test_organization_feature_flag.py +++ b/posthog/api/test/test_organization_feature_flag.py @@ -59,22 +59,25 @@ def setUp(self): self.team_2 = Team.objects.create(organization=self.organization) self.feature_flag_key = "copied-flag-key" + self.rollout_percentage = 65 self.feature_flag_to_copy = FeatureFlag.objects.create( team=self.team_1, created_by=self.user, key=self.feature_flag_key, - filters={"groups": [{"rollout_percentage": 65}]}, + filters={"groups": [{"rollout_percentage": self.rollout_percentage}]}, ) super().setUp() @snapshot_postgres_queries - def test_copy_feature_flag_success(self): + def test_copy_feature_flag_create_new(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" + target_project = self.team_2 + data = { "feature_flag_key": self.feature_flag_to_copy.key, "from_project": self.feature_flag_to_copy.team_id, - "target_project_ids": [self.team_2.id], + "target_project_ids": [target_project.id], } response = self.client.post(url, data) @@ -82,21 +85,83 @@ def test_copy_feature_flag_success(self): self.assertIn("success", response.json()) self.assertIn("failed", response.json()) - # copied flag is present in the response - self.assertEqual(self.feature_flag_key, response.json()["success"][0]["key"]) + # Check copied flag in the response + expected_flag_response = { + "key": self.feature_flag_to_copy.key, + "name": self.feature_flag_to_copy.name, + "filters": self.feature_flag_to_copy.filters, + "active": self.feature_flag_to_copy.active, + "ensure_experience_continuity": self.feature_flag_to_copy.ensure_experience_continuity, + "rollout_percentage": self.rollout_percentage, + "deleted": False, + "created_by": self.user.id, + "id": "__ignore__", + "created_at": "__ignore__", + "usage_dashboard": "__ignore__", + "is_simple_flag": True, + "experiment_set": [], + "surveys": [], + "features": [], + "rollback_conditions": None, + "performed_rollback": False, + "can_edit": True, + "analytics_dashboards": [], + "has_enriched_analytics": False, + "tags": [], + } + + flag_response = response.json()["success"][0] + + for key, expected_value in expected_flag_response.items(): + self.assertIn(key, flag_response) + if expected_value != "__ignore__": + if key == "created_by": + self.assertEqual(flag_response[key]["id"], expected_value) + else: + self.assertEqual(flag_response[key], expected_value) - expected_fields = { + self.assertSetEqual( + set(expected_flag_response.keys()), + set(flag_response.keys()), + ) + + # Check copied flag in the DB + expected_flag_db = { "key": self.feature_flag_to_copy.key, "name": self.feature_flag_to_copy.name, "filters": self.feature_flag_to_copy.filters, "active": self.feature_flag_to_copy.active, - "rollout_percentage": self.feature_flag_to_copy.rollout_percentage, "ensure_experience_continuity": self.feature_flag_to_copy.ensure_experience_continuity, + "rollout_percentage": None, + "deleted": False, + "created_by": self.user.id, + "id": "__ignore__", + "created_at": "__ignore__", + "usage_dashboard": "__ignore__", + "rollback_conditions": None, + "performed_rollback": False, + "analytics_dashboards": [], + "has_enriched_analytics": False, } - copied_flag = FeatureFlag.objects.get(team=self.team_2, key=self.feature_flag_key) - for field, expected_value in expected_fields.items(): - actual_value = getattr(copied_flag, field) - self.assertEqual(expected_value, actual_value) + + db_flag = FeatureFlag.objects.get(team=self.team_2, key=self.feature_flag_key) + db_field_names = [f.name for f in db_flag._meta.get_fields()] + for key, expected_value in expected_flag_db.items(): + self.assertIn(key, db_field_names) + if expected_value != "__ignore__": + if key == "created_by": + user_instance = getattr(db_flag, key) + self.assertEqual(user_instance.id, expected_value) + elif key == "analytics_dashboards": + self.assertFalse((getattr(db_flag, key)).exists()) # stores ManyRelatedManager + else: + self.assertEqual(getattr(db_flag, key), expected_value) + + # To be added in a follow up + # self.assertSetEqual( + # set(expected_flag_db.keys()), + # set(db_field_names), + # ) def test_copy_feature_flag_missing_fields(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" From 9b0b4154f4f3bc73e8571175c55b71c626c588a8 Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Tue, 7 Nov 2023 18:27:00 +0100 Subject: [PATCH 20/22] add test_copy_feature_flag_update_existing --- .../test/test_organization_feature_flag.py | 114 ++++++++++++------ 1 file changed, 77 insertions(+), 37 deletions(-) diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py index 4d158fa2ffd62..f06b19135d6e1 100644 --- a/posthog/api/test/test_organization_feature_flag.py +++ b/posthog/api/test/test_organization_feature_flag.py @@ -59,24 +59,26 @@ def setUp(self): self.team_2 = Team.objects.create(organization=self.organization) self.feature_flag_key = "copied-flag-key" - self.rollout_percentage = 65 - self.feature_flag_to_copy = FeatureFlag.objects.create( + + super().setUp() + + # @snapshot_postgres_queries + def test_copy_feature_flag_create_new(self): + rollout_percentage_to_copy = 65 + feature_flag_to_copy = FeatureFlag.objects.create( team=self.team_1, created_by=self.user, key=self.feature_flag_key, - filters={"groups": [{"rollout_percentage": self.rollout_percentage}]}, + filters={"groups": [{"rollout_percentage": rollout_percentage_to_copy}]}, + rollout_percentage=rollout_percentage_to_copy, ) - super().setUp() - - @snapshot_postgres_queries - def test_copy_feature_flag_create_new(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" target_project = self.team_2 data = { - "feature_flag_key": self.feature_flag_to_copy.key, - "from_project": self.feature_flag_to_copy.team_id, + "feature_flag_key": feature_flag_to_copy.key, + "from_project": feature_flag_to_copy.team_id, "target_project_ids": [target_project.id], } response = self.client.post(url, data) @@ -87,12 +89,12 @@ def test_copy_feature_flag_create_new(self): # Check copied flag in the response expected_flag_response = { - "key": self.feature_flag_to_copy.key, - "name": self.feature_flag_to_copy.name, - "filters": self.feature_flag_to_copy.filters, - "active": self.feature_flag_to_copy.active, - "ensure_experience_continuity": self.feature_flag_to_copy.ensure_experience_continuity, - "rollout_percentage": self.rollout_percentage, + "key": feature_flag_to_copy.key, + "name": feature_flag_to_copy.name, + "filters": feature_flag_to_copy.filters, + "active": feature_flag_to_copy.active, + "ensure_experience_continuity": feature_flag_to_copy.ensure_experience_continuity, + "rollout_percentage": rollout_percentage_to_copy, "deleted": False, "created_by": self.user.id, "id": "__ignore__", @@ -125,43 +127,81 @@ def test_copy_feature_flag_create_new(self): set(flag_response.keys()), ) - # Check copied flag in the DB - expected_flag_db = { - "key": self.feature_flag_to_copy.key, - "name": self.feature_flag_to_copy.name, - "filters": self.feature_flag_to_copy.filters, - "active": self.feature_flag_to_copy.active, - "ensure_experience_continuity": self.feature_flag_to_copy.ensure_experience_continuity, - "rollout_percentage": None, + def test_copy_feature_flag_update_existing(self): + rollout_percentage_to_copy = 65 + feature_flag_to_copy = FeatureFlag.objects.create( + team=self.team_1, + created_by=self.user, + key=self.feature_flag_key, + filters={"groups": [{"rollout_percentage": rollout_percentage_to_copy}]}, + rollout_percentage=rollout_percentage_to_copy, + ensure_experience_continuity=True, + ) + + target_project = self.team_2 + rollout_percentage_existing = 99 + self.feature_flag_existing = FeatureFlag.objects.create( + team=target_project, + created_by=self.user, + key=self.feature_flag_key, + name="Existing flag", + filters={"groups": [{"rollout_percentage": rollout_percentage_existing}]}, + rollout_percentage=rollout_percentage_existing, + ensure_experience_continuity=False, + ) + + url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" + + data = { + "feature_flag_key": feature_flag_to_copy.key, + "from_project": feature_flag_to_copy.team_id, + "target_project_ids": [target_project.id], + } + response = self.client.post(url, data) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertIn("success", response.json()) + self.assertIn("failed", response.json()) + + # Check copied flag in the response + expected_flag_response = { + "key": feature_flag_to_copy.key, + "name": feature_flag_to_copy.name, + "filters": feature_flag_to_copy.filters, + "active": feature_flag_to_copy.active, + "ensure_experience_continuity": feature_flag_to_copy.ensure_experience_continuity, + "rollout_percentage": rollout_percentage_to_copy, "deleted": False, "created_by": self.user.id, "id": "__ignore__", "created_at": "__ignore__", "usage_dashboard": "__ignore__", + "is_simple_flag": True, + "experiment_set": [], + "surveys": [], + "features": [], "rollback_conditions": None, "performed_rollback": False, + "can_edit": True, "analytics_dashboards": [], "has_enriched_analytics": False, + "tags": [], } - db_flag = FeatureFlag.objects.get(team=self.team_2, key=self.feature_flag_key) - db_field_names = [f.name for f in db_flag._meta.get_fields()] - for key, expected_value in expected_flag_db.items(): - self.assertIn(key, db_field_names) + flag_response = response.json()["success"][0] + + for key, expected_value in expected_flag_response.items(): + self.assertIn(key, flag_response) if expected_value != "__ignore__": if key == "created_by": - user_instance = getattr(db_flag, key) - self.assertEqual(user_instance.id, expected_value) - elif key == "analytics_dashboards": - self.assertFalse((getattr(db_flag, key)).exists()) # stores ManyRelatedManager + self.assertEqual(flag_response[key]["id"], expected_value) else: - self.assertEqual(getattr(db_flag, key), expected_value) + self.assertEqual(flag_response[key], expected_value) - # To be added in a follow up - # self.assertSetEqual( - # set(expected_flag_db.keys()), - # set(db_field_names), - # ) + self.assertSetEqual( + set(expected_flag_response.keys()), + set(flag_response.keys()), + ) def test_copy_feature_flag_missing_fields(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" From b9e0e6517e8a54d8222cce433f2d65b2158c5f6b Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Tue, 7 Nov 2023 18:37:42 +0100 Subject: [PATCH 21/22] clean up --- .../test_organization_feature_flag.ambr | 1614 +---------------- .../test/test_organization_feature_flag.py | 60 +- 2 files changed, 26 insertions(+), 1648 deletions(-) diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr index 9f92a2cb86103..12afeb71d76d6 100644 --- a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -1501,1593 +1501,6 @@ ' --- # name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.73 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 21 - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.74 - ' - SELECT "posthog_user"."id", - "posthog_user"."password", - "posthog_user"."last_login", - "posthog_user"."first_name", - "posthog_user"."last_name", - "posthog_user"."is_staff", - "posthog_user"."is_active", - "posthog_user"."date_joined", - "posthog_user"."uuid", - "posthog_user"."current_organization_id", - "posthog_user"."current_team_id", - "posthog_user"."email", - "posthog_user"."pending_email", - "posthog_user"."temporary_token", - "posthog_user"."distinct_id", - "posthog_user"."is_email_verified", - "posthog_user"."requested_password_reset_at", - "posthog_user"."has_seen_product_intro_for", - "posthog_user"."email_opt_in", - "posthog_user"."partial_notification_settings", - "posthog_user"."anonymize_data", - "posthog_user"."toolbar_mode", - "posthog_user"."events_column_config" - FROM "posthog_user" - WHERE "posthog_user"."id" = 2 - LIMIT 21 - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.75 - ' - SELECT (1) AS "a" - FROM "posthog_dashboard" - INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") - WHERE (NOT ("posthog_dashboard"."deleted") - AND "posthog_featureflagdashboards"."feature_flag_id" = 2) - LIMIT 1 - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.8 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."deleted" - AND "posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.9 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."active" - AND NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success - ' - SELECT "posthog_user"."id", - "posthog_user"."password", - "posthog_user"."last_login", - "posthog_user"."first_name", - "posthog_user"."last_name", - "posthog_user"."is_staff", - "posthog_user"."is_active", - "posthog_user"."date_joined", - "posthog_user"."uuid", - "posthog_user"."current_organization_id", - "posthog_user"."current_team_id", - "posthog_user"."email", - "posthog_user"."pending_email", - "posthog_user"."temporary_token", - "posthog_user"."distinct_id", - "posthog_user"."is_email_verified", - "posthog_user"."has_seen_product_intro_for", - "posthog_user"."email_opt_in", - "posthog_user"."partial_notification_settings", - "posthog_user"."anonymize_data", - "posthog_user"."toolbar_mode", - "posthog_user"."events_column_config" - FROM "posthog_user" - WHERE "posthog_user"."id" = 2 - LIMIT 21 /**/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.1 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.10 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.11 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.12 - ' - SELECT "posthog_dashboardtile"."id" - FROM "posthog_dashboardtile" - INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") - WHERE (NOT ("posthog_dashboardtile"."deleted" - AND "posthog_dashboardtile"."deleted" IS NOT NULL) - AND NOT ("posthog_dashboard"."deleted") - AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.13 - ' - SELECT "posthog_organization"."id", - "posthog_organization"."name", - "posthog_organization"."slug", - "posthog_organization"."created_at", - "posthog_organization"."updated_at", - "posthog_organization"."plugins_access_level", - "posthog_organization"."for_internal_metrics", - "posthog_organization"."is_member_join_email_enabled", - "posthog_organization"."enforce_2fa", - "posthog_organization"."customer_id", - "posthog_organization"."available_product_features", - "posthog_organization"."usage", - "posthog_organization"."never_drop_data", - "posthog_organization"."setup_section_2_completed", - "posthog_organization"."personalization", - "posthog_organization"."domain_whitelist", - "posthog_organization"."available_features" - FROM "posthog_organization" - WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.14 - ' - SELECT "posthog_dashboardtile"."id" - FROM "posthog_dashboardtile" - INNER JOIN "posthog_dashboard" ON ("posthog_dashboardtile"."dashboard_id" = "posthog_dashboard"."id") - WHERE (NOT ("posthog_dashboardtile"."deleted" - AND "posthog_dashboardtile"."deleted" IS NOT NULL) - AND NOT ("posthog_dashboard"."deleted") - AND "posthog_dashboardtile"."dashboard_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.15 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.16 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.17 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.18 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.19 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.2 - ' - SELECT (1) AS "a" - FROM "posthog_organizationmembership" - WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid - AND "posthog_organizationmembership"."user_id" = 2) - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.20 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.21 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.22 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.23 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.24 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.25 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.26 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.27 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.28 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.29 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.3 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.30 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.31 - ' - SELECT "posthog_dashboardtile"."id", - "posthog_dashboardtile"."dashboard_id", - "posthog_dashboardtile"."insight_id", - "posthog_dashboardtile"."text_id", - "posthog_dashboardtile"."layouts", - "posthog_dashboardtile"."color", - "posthog_dashboardtile"."filters_hash", - "posthog_dashboardtile"."last_refresh", - "posthog_dashboardtile"."refreshing", - "posthog_dashboardtile"."refresh_attempt", - "posthog_dashboardtile"."deleted" - FROM "posthog_dashboardtile" - WHERE "posthog_dashboardtile"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.32 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.33 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - WHERE "posthog_dashboard"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.34 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.35 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.36 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.37 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.38 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.39 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.4 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.40 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.41 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.42 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.43 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.44 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.45 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.46 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.47 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.48 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.49 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.5 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.50 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.51 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.52 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.53 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.54 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.55 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.56 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.57 - ' - SELECT "posthog_dashboardtile"."id", - "posthog_dashboardtile"."dashboard_id", - "posthog_dashboardtile"."insight_id", - "posthog_dashboardtile"."text_id", - "posthog_dashboardtile"."layouts", - "posthog_dashboardtile"."color", - "posthog_dashboardtile"."filters_hash", - "posthog_dashboardtile"."last_refresh", - "posthog_dashboardtile"."refreshing", - "posthog_dashboardtile"."refresh_attempt", - "posthog_dashboardtile"."deleted" - FROM "posthog_dashboardtile" - WHERE "posthog_dashboardtile"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.58 - ' - SELECT "posthog_dashboarditem"."id", - "posthog_dashboarditem"."name", - "posthog_dashboarditem"."derived_name", - "posthog_dashboarditem"."description", - "posthog_dashboarditem"."team_id", - "posthog_dashboarditem"."filters", - "posthog_dashboarditem"."filters_hash", - "posthog_dashboarditem"."query", - "posthog_dashboarditem"."order", - "posthog_dashboarditem"."deleted", - "posthog_dashboarditem"."saved", - "posthog_dashboarditem"."created_at", - "posthog_dashboarditem"."last_refresh", - "posthog_dashboarditem"."refreshing", - "posthog_dashboarditem"."created_by_id", - "posthog_dashboarditem"."is_sample", - "posthog_dashboarditem"."short_id", - "posthog_dashboarditem"."favorited", - "posthog_dashboarditem"."refresh_attempt", - "posthog_dashboarditem"."last_modified_at", - "posthog_dashboarditem"."last_modified_by_id", - "posthog_dashboarditem"."dashboard_id", - "posthog_dashboarditem"."layouts", - "posthog_dashboarditem"."color", - "posthog_dashboarditem"."dive_dashboard_id", - "posthog_dashboarditem"."updated_at", - "posthog_dashboarditem"."deprecated_tags", - "posthog_dashboarditem"."tags" - FROM "posthog_dashboarditem" - WHERE "posthog_dashboarditem"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.59 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - WHERE "posthog_dashboard"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.6 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - ORDER BY "posthog_featureflag"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.60 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.61 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.62 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.63 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.64 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.65 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_V2_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.66 - ' - SELECT "posthog_instancesetting"."id", - "posthog_instancesetting"."key", - "posthog_instancesetting"."raw_value" - FROM "posthog_instancesetting" - WHERE "posthog_instancesetting"."key" = 'constance:posthog:PERSON_ON_EVENTS_ENABLED' - ORDER BY "posthog_instancesetting"."id" ASC - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.67 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."active" - AND NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.68 - ' - SELECT "posthog_team"."id", - "posthog_team"."uuid", - "posthog_team"."organization_id", - "posthog_team"."api_token", - "posthog_team"."app_urls", - "posthog_team"."name", - "posthog_team"."slack_incoming_webhook", - "posthog_team"."created_at", - "posthog_team"."updated_at", - "posthog_team"."anonymize_ips", - "posthog_team"."completed_snippet_onboarding", - "posthog_team"."has_completed_onboarding_for", - "posthog_team"."ingested_event", - "posthog_team"."autocapture_opt_out", - "posthog_team"."autocapture_exceptions_opt_in", - "posthog_team"."autocapture_exceptions_errors_to_ignore", - "posthog_team"."session_recording_opt_in", - "posthog_team"."session_recording_sample_rate", - "posthog_team"."session_recording_minimum_duration_milliseconds", - "posthog_team"."session_recording_linked_flag", - "posthog_team"."capture_console_log_opt_in", - "posthog_team"."capture_performance_opt_in", - "posthog_team"."surveys_opt_in", - "posthog_team"."session_recording_version", - "posthog_team"."signup_token", - "posthog_team"."is_demo", - "posthog_team"."access_control", - "posthog_team"."week_start_day", - "posthog_team"."inject_web_apps", - "posthog_team"."test_account_filters", - "posthog_team"."test_account_filters_default_checked", - "posthog_team"."path_cleaning_filters", - "posthog_team"."timezone", - "posthog_team"."data_attributes", - "posthog_team"."person_display_name_properties", - "posthog_team"."live_events_columns", - "posthog_team"."recording_domains", - "posthog_team"."primary_dashboard_id", - "posthog_team"."extra_settings", - "posthog_team"."correlation_config", - "posthog_team"."session_recording_retention_period_days", - "posthog_team"."plugins_opt_in", - "posthog_team"."opt_out_capture", - "posthog_team"."event_names", - "posthog_team"."event_names_with_usage", - "posthog_team"."event_properties", - "posthog_team"."event_properties_with_usage", - "posthog_team"."event_properties_numerical", - "posthog_team"."external_data_workspace_id" - FROM "posthog_team" - WHERE "posthog_team"."id" = 2 - LIMIT 21 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.69 - ' - SELECT "posthog_experiment"."id", - "posthog_experiment"."name", - "posthog_experiment"."description", - "posthog_experiment"."team_id", - "posthog_experiment"."filters", - "posthog_experiment"."parameters", - "posthog_experiment"."secondary_metrics", - "posthog_experiment"."feature_flag_id", - "posthog_experiment"."created_by_id", - "posthog_experiment"."start_date", - "posthog_experiment"."end_date", - "posthog_experiment"."created_at", - "posthog_experiment"."updated_at", - "posthog_experiment"."archived" - FROM "posthog_experiment" - WHERE "posthog_experiment"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.7 - ' - SELECT (1) AS "a" - FROM "posthog_featureflag" - WHERE (NOT "posthog_featureflag"."deleted" - AND "posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 1 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.70 - ' - SELECT "posthog_survey"."id", - "posthog_survey"."team_id", - "posthog_survey"."name", - "posthog_survey"."description", - "posthog_survey"."linked_flag_id", - "posthog_survey"."targeting_flag_id", - "posthog_survey"."type", - "posthog_survey"."conditions", - "posthog_survey"."questions", - "posthog_survey"."appearance", - "posthog_survey"."created_at", - "posthog_survey"."created_by_id", - "posthog_survey"."start_date", - "posthog_survey"."end_date", - "posthog_survey"."updated_at", - "posthog_survey"."archived" - FROM "posthog_survey" - WHERE "posthog_survey"."linked_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.71 - ' - SELECT "posthog_earlyaccessfeature"."id", - "posthog_earlyaccessfeature"."team_id", - "posthog_earlyaccessfeature"."feature_flag_id", - "posthog_earlyaccessfeature"."name", - "posthog_earlyaccessfeature"."description", - "posthog_earlyaccessfeature"."stage", - "posthog_earlyaccessfeature"."documentation_url", - "posthog_earlyaccessfeature"."created_at" - FROM "posthog_earlyaccessfeature" - WHERE "posthog_earlyaccessfeature"."feature_flag_id" = 2 /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.72 ' SELECT "posthog_dashboard"."id", "posthog_dashboard"."name", @@ -3111,30 +1524,7 @@ AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ ' --- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.73 - ' - SELECT "posthog_featureflag"."id", - "posthog_featureflag"."key", - "posthog_featureflag"."name", - "posthog_featureflag"."filters", - "posthog_featureflag"."rollout_percentage", - "posthog_featureflag"."team_id", - "posthog_featureflag"."created_by_id", - "posthog_featureflag"."created_at", - "posthog_featureflag"."deleted", - "posthog_featureflag"."active", - "posthog_featureflag"."rollback_conditions", - "posthog_featureflag"."performed_rollback", - "posthog_featureflag"."ensure_experience_continuity", - "posthog_featureflag"."usage_dashboard_id", - "posthog_featureflag"."has_enriched_analytics" - FROM "posthog_featureflag" - WHERE ("posthog_featureflag"."key" = 'copied-flag-key' - AND "posthog_featureflag"."team_id" = 2) - LIMIT 21 - ' ---- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.8 +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.8 ' SELECT "posthog_featureflag"."id", "posthog_featureflag"."key", @@ -3157,7 +1547,7 @@ AND "posthog_featureflag"."team_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ ' --- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_success.9 +# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.9 ' SELECT "posthog_featureflag"."id", "posthog_featureflag"."key", diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py index f06b19135d6e1..aa33f89ffe859 100644 --- a/posthog/api/test/test_organization_feature_flag.py +++ b/posthog/api/test/test_organization_feature_flag.py @@ -59,26 +59,25 @@ def setUp(self): self.team_2 = Team.objects.create(organization=self.organization) self.feature_flag_key = "copied-flag-key" - - super().setUp() - - # @snapshot_postgres_queries - def test_copy_feature_flag_create_new(self): - rollout_percentage_to_copy = 65 - feature_flag_to_copy = FeatureFlag.objects.create( + self.rollout_percentage_to_copy = 65 + self.feature_flag_to_copy = FeatureFlag.objects.create( team=self.team_1, created_by=self.user, key=self.feature_flag_key, - filters={"groups": [{"rollout_percentage": rollout_percentage_to_copy}]}, - rollout_percentage=rollout_percentage_to_copy, + filters={"groups": [{"rollout_percentage": self.rollout_percentage_to_copy}]}, + rollout_percentage=self.rollout_percentage_to_copy, ) + super().setUp() + + @snapshot_postgres_queries + def test_copy_feature_flag_create_new(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" target_project = self.team_2 data = { - "feature_flag_key": feature_flag_to_copy.key, - "from_project": feature_flag_to_copy.team_id, + "feature_flag_key": self.feature_flag_to_copy.key, + "from_project": self.feature_flag_to_copy.team_id, "target_project_ids": [target_project.id], } response = self.client.post(url, data) @@ -89,12 +88,12 @@ def test_copy_feature_flag_create_new(self): # Check copied flag in the response expected_flag_response = { - "key": feature_flag_to_copy.key, - "name": feature_flag_to_copy.name, - "filters": feature_flag_to_copy.filters, - "active": feature_flag_to_copy.active, - "ensure_experience_continuity": feature_flag_to_copy.ensure_experience_continuity, - "rollout_percentage": rollout_percentage_to_copy, + "key": self.feature_flag_to_copy.key, + "name": self.feature_flag_to_copy.name, + "filters": self.feature_flag_to_copy.filters, + "active": self.feature_flag_to_copy.active, + "ensure_experience_continuity": self.feature_flag_to_copy.ensure_experience_continuity, + "rollout_percentage": self.rollout_percentage_to_copy, "deleted": False, "created_by": self.user.id, "id": "__ignore__", @@ -128,16 +127,6 @@ def test_copy_feature_flag_create_new(self): ) def test_copy_feature_flag_update_existing(self): - rollout_percentage_to_copy = 65 - feature_flag_to_copy = FeatureFlag.objects.create( - team=self.team_1, - created_by=self.user, - key=self.feature_flag_key, - filters={"groups": [{"rollout_percentage": rollout_percentage_to_copy}]}, - rollout_percentage=rollout_percentage_to_copy, - ensure_experience_continuity=True, - ) - target_project = self.team_2 rollout_percentage_existing = 99 self.feature_flag_existing = FeatureFlag.objects.create( @@ -153,8 +142,8 @@ def test_copy_feature_flag_update_existing(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" data = { - "feature_flag_key": feature_flag_to_copy.key, - "from_project": feature_flag_to_copy.team_id, + "feature_flag_key": self.feature_flag_to_copy.key, + "from_project": self.feature_flag_to_copy.team_id, "target_project_ids": [target_project.id], } response = self.client.post(url, data) @@ -165,12 +154,12 @@ def test_copy_feature_flag_update_existing(self): # Check copied flag in the response expected_flag_response = { - "key": feature_flag_to_copy.key, - "name": feature_flag_to_copy.name, - "filters": feature_flag_to_copy.filters, - "active": feature_flag_to_copy.active, - "ensure_experience_continuity": feature_flag_to_copy.ensure_experience_continuity, - "rollout_percentage": rollout_percentage_to_copy, + "key": self.feature_flag_to_copy.key, + "name": self.feature_flag_to_copy.name, + "filters": self.feature_flag_to_copy.filters, + "active": self.feature_flag_to_copy.active, + "ensure_experience_continuity": self.feature_flag_to_copy.ensure_experience_continuity, + "rollout_percentage": self.rollout_percentage_to_copy, "deleted": False, "created_by": self.user.id, "id": "__ignore__", @@ -233,7 +222,6 @@ def test_copy_feature_flag_to_nonexistent_target(self): } response = self.client.post(url, data) - self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.json()["success"]), 0) self.assertEqual(len(response.json()["failed"]), 1) From d61a86fbc86f57501186c901a0f5f852873a75ce Mon Sep 17 00:00:00 2001 From: Juraj Majerik Date: Tue, 7 Nov 2023 22:15:40 +0100 Subject: [PATCH 22/22] add typing for data in test_copy_feature_flag_missing_fields --- .../test_organization_feature_flag.ambr | 24 ------------------- .../test/test_organization_feature_flag.py | 3 ++- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr index 12afeb71d76d6..d1e736d1af3f4 100644 --- a/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr +++ b/posthog/api/test/__snapshots__/test_organization_feature_flag.ambr @@ -1500,30 +1500,6 @@ AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ ' --- -# name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.73 - ' - SELECT "posthog_dashboard"."id", - "posthog_dashboard"."name", - "posthog_dashboard"."description", - "posthog_dashboard"."team_id", - "posthog_dashboard"."pinned", - "posthog_dashboard"."created_at", - "posthog_dashboard"."created_by_id", - "posthog_dashboard"."deleted", - "posthog_dashboard"."last_accessed_at", - "posthog_dashboard"."filters", - "posthog_dashboard"."creation_mode", - "posthog_dashboard"."restriction_level", - "posthog_dashboard"."deprecated_tags", - "posthog_dashboard"."tags", - "posthog_dashboard"."share_token", - "posthog_dashboard"."is_shared" - FROM "posthog_dashboard" - INNER JOIN "posthog_featureflagdashboards" ON ("posthog_dashboard"."id" = "posthog_featureflagdashboards"."dashboard_id") - WHERE (NOT ("posthog_dashboard"."deleted") - AND "posthog_featureflagdashboards"."feature_flag_id" = 2) /*controller='organization_feature_flags-copy-flags',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/feature_flags/copy_flags/%3F%24'*/ - ' ---- # name: TestOrganizationFeatureFlagCopy.test_copy_feature_flag_create_new.8 ' SELECT "posthog_featureflag"."id", diff --git a/posthog/api/test/test_organization_feature_flag.py b/posthog/api/test/test_organization_feature_flag.py index aa33f89ffe859..f1cd080acbc61 100644 --- a/posthog/api/test/test_organization_feature_flag.py +++ b/posthog/api/test/test_organization_feature_flag.py @@ -2,6 +2,7 @@ from posthog.models.team.team import Team from posthog.models import FeatureFlag from posthog.test.base import APIBaseTest, QueryMatchingTest, snapshot_postgres_queries +from typing import Any, Dict class TestOrganizationFeatureFlagGet(APIBaseTest, QueryMatchingTest): @@ -194,7 +195,7 @@ def test_copy_feature_flag_update_existing(self): def test_copy_feature_flag_missing_fields(self): url = f"/api/organizations/{self.organization.id}/feature_flags/copy_flags" - data = {} + data: Dict[str, Any] = {} response = self.client.post(url, data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)