From bc5e8a027906f024b112b430533116433caf23bb Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Fri, 25 Oct 2024 16:57:06 +0200 Subject: [PATCH 01/31] feat(messaging): actually send the message --- frontend/src/lib/api.ts | 3 ++ .../hogfunctions/HogFunctionConfiguration.tsx | 33 +++++++++++++ .../hogFunctionConfigurationLogic.tsx | 17 +++++++ plugin-server/src/cdp/cdp-api.ts | 9 +++- plugin-server/src/cdp/hog-executor.ts | 49 +++++++++++++++++-- plugin-server/src/cdp/hog-function-manager.ts | 4 ++ plugin-server/src/cdp/types.ts | 1 + plugin-server/src/cdp/utils.ts | 47 +++++++++++++++++- posthog/api/hog_function.py | 31 ++++++++++++ 9 files changed, 189 insertions(+), 5 deletions(-) diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index d6760ce8d2abe..3cc573f88a14e 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1760,6 +1760,9 @@ const api = { async update(id: HogFunctionType['id'], data: Partial): Promise { return await new ApiRequest().hogFunction(id).update({ data }) }, + async sendBroadcast(id: HogFunctionType['id']): Promise { + return await new ApiRequest().hogFunction(id).withAction('broadcast').create() + }, async logs( id: HogFunctionType['id'], params: LogEntryRequestParams = {} diff --git a/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx b/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx index a27181b3e77c7..94c10958d397c 100644 --- a/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx +++ b/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx @@ -69,6 +69,7 @@ export function HogFunctionConfiguration({ templateId, id }: HogFunctionConfigur templateHasChanged, forcedSubTemplateId, type, + broadcastLoading, } = useValues(logic) const { submitConfiguration, @@ -80,6 +81,7 @@ export function HogFunctionConfiguration({ templateId, id }: HogFunctionConfigur setConfigurationValue, deleteHogFunction, setSubTemplateId, + sendBroadcast, } = useActions(logic) if (loading && !loaded) { @@ -493,6 +495,37 @@ export function HogFunctionConfiguration({ templateId, id }: HogFunctionConfigur )} {!id || id === 'new' ? : } + + {type === 'broadcast' ? ( + id && id !== 'new' ? ( + + + Send to {personsCount} emails + +
+ Please note: Clicking the button above will + synchronously send to all the e-mails. While this is fine for + testing with small lists, please don't use this for production + usecases yet. +
+ + } + /> + ) : ( + + ) + ) : null} +
{saveButtons}
diff --git a/frontend/src/scenes/pipeline/hogfunctions/hogFunctionConfigurationLogic.tsx b/frontend/src/scenes/pipeline/hogfunctions/hogFunctionConfigurationLogic.tsx index 93d6359d349ca..6599b4d45bdec 100644 --- a/frontend/src/scenes/pipeline/hogfunctions/hogFunctionConfigurationLogic.tsx +++ b/frontend/src/scenes/pipeline/hogfunctions/hogFunctionConfigurationLogic.tsx @@ -188,6 +188,7 @@ export const hogFunctionConfigurationLogic = kea ({ configuration }), persistForUnload: true, setSampleGlobalsError: (error) => ({ error }), + sendBroadcast: true, }), reducers({ showSource: [ @@ -402,6 +403,22 @@ export const hogFunctionConfigurationLogic = kea { + const id = values.hogFunction?.id + if (!id) { + lemonToast.error('No broadcast to send') + return false + } + await api.hogFunctions.sendBroadcast(id) + lemonToast.success('Broadcast sent!') + return true + }, + }, + ], })), forms(({ values, props, asyncActions }) => ({ configuration: { diff --git a/plugin-server/src/cdp/cdp-api.ts b/plugin-server/src/cdp/cdp-api.ts index 4d33df3bca9f3..300e65fb3901c 100644 --- a/plugin-server/src/cdp/cdp-api.ts +++ b/plugin-server/src/cdp/cdp-api.ts @@ -112,6 +112,12 @@ export class CdpApi { ...(configuration ?? {}), } + // The "email" destination is exported as a function. Explicitly call the function when testing. + let functionToExecute: undefined | [string, any[]] = undefined + if (hogFunction.type === 'email') { + functionToExecute = ['sendEmail', [globals.email]] + } + await this.hogFunctionManager.enrichWithIntegrations([compoundConfiguration]) let lastResponse: HogFunctionInvocationResult | null = null @@ -138,7 +144,8 @@ export class CdpApi { url: `${this.hub.SITE_URL ?? 'http://localhost:8000'}/project/${team.id}`, }, }, - compoundConfiguration + compoundConfiguration, + functionToExecute ) if (invocation.queue === 'fetch') { diff --git a/plugin-server/src/cdp/hog-executor.ts b/plugin-server/src/cdp/hog-executor.ts index 801c958c52305..0fcbd5166179f 100644 --- a/plugin-server/src/cdp/hog-executor.ts +++ b/plugin-server/src/cdp/hog-executor.ts @@ -16,7 +16,7 @@ import { HogFunctionQueueParametersFetchResponse, HogFunctionType, } from './types' -import { convertToHogFunctionFilterGlobal } from './utils' +import { convertToHogFunctionFilterGlobal, invokeExportedFunction } from './utils' export const MAX_ASYNC_STEPS = 5 export const MAX_HOG_LOGS = 25 @@ -114,7 +114,7 @@ export class HogExecutor { nonMatchingFunctions: HogFunctionType[] erroredFunctions: HogFunctionType[] } { - const allFunctionsForTeam = this.hogFunctionManager.getTeamHogDestinations(event.project.id) + const allFunctionsForTeam = this.hogFunctionManager.getTeamHogFunctions(event.project.id) const filtersGlobals = convertToHogFunctionFilterGlobal(event) const nonMatchingFunctions: HogFunctionType[] = [] @@ -278,16 +278,59 @@ export class HogExecutor { } const sensitiveValues = this.getSensitiveValues(invocation.hogFunction, globals.inputs) + const invocationInput = + invocation.vmState ?? + (invocation.executeExportedFunction + ? invokeExportedFunction( + invocation.hogFunction.bytecode, + globals, + invocation.executeExportedFunction[0], + invocation.executeExportedFunction[1] + ) + : invocation.hogFunction.bytecode) try { let hogLogs = 0 - execRes = execHog(invocation.vmState ?? invocation.hogFunction.bytecode, { + execRes = execHog(invocationInput, { globals, maxAsyncSteps: MAX_ASYNC_STEPS, // NOTE: This will likely be configurable in the future asyncFunctions: { // We need to pass these in but they don't actually do anything as it is a sync exec fetch: async () => Promise.resolve(), }, + importBytecode: (module) => { + // TODO: more than one hardcoded module + if (module === 'provider/email') { + const provider = this.hogFunctionManager.getTeamHogEmailProvider(invocation.teamId) + if (!provider) { + throw new Error('No email provider configured') + } + try { + const providerGlobals = this.buildHogFunctionGlobals({ + id: '', + teamId: invocation.teamId, + hogFunction: provider, + globals: {} as any, + queue: 'hog', + timings: [], + priority: 0, + } satisfies HogFunctionInvocation) + + return { + bytecode: provider.bytecode, + globals: providerGlobals, + } + } catch (e) { + result.logs.push({ + level: 'error', + timestamp: DateTime.now(), + message: `Error building inputs: ${e}`, + }) + throw e + } + } + throw new Error(`Can't import unknown module: ${module}`) + }, functions: { print: (...args) => { hogLogs++ diff --git a/plugin-server/src/cdp/hog-function-manager.ts b/plugin-server/src/cdp/hog-function-manager.ts index a54be7d96a058..c53ff71952ec2 100644 --- a/plugin-server/src/cdp/hog-function-manager.ts +++ b/plugin-server/src/cdp/hog-function-manager.ts @@ -100,6 +100,10 @@ export class HogFunctionManager { return this.getTeamHogFunctions(teamId).filter((x) => x.type === 'destination' || !x.type) } + public getTeamHogEmailProvider(teamId: Team['id']): HogFunctionType | undefined { + return this.getTeamHogFunctions(teamId).find((x) => x.type === 'email') + } + public getHogFunction(id: HogFunctionType['id']): HogFunctionType | undefined { if (!this.ready) { throw new Error('HogFunctionManager is not ready! Run HogFunctionManager.start() before this') diff --git a/plugin-server/src/cdp/types.ts b/plugin-server/src/cdp/types.ts index 19cce8157a075..da661045229c5 100644 --- a/plugin-server/src/cdp/types.ts +++ b/plugin-server/src/cdp/types.ts @@ -196,6 +196,7 @@ export type HogFunctionInvocation = { // The current vmstate (set if the invocation is paused) vmState?: VMState timings: HogFunctionTiming[] + executeExportedFunction?: [string, any[]] } export type HogFunctionAsyncFunctionRequest = { diff --git a/plugin-server/src/cdp/utils.ts b/plugin-server/src/cdp/utils.ts index 64679d9743cd2..9b453f5ef8144 100644 --- a/plugin-server/src/cdp/utils.ts +++ b/plugin-server/src/cdp/utils.ts @@ -1,6 +1,7 @@ // NOTE: PostIngestionEvent is our context event - it should never be sent directly to an output, but rather transformed into a lightweight schema import { CyclotronJob, CyclotronJobUpdate } from '@posthog/cyclotron' +import { Bytecodes } from '@posthog/hogvm' import { captureException } from '@sentry/node' import { DateTime } from 'luxon' import RE2 from 're2' @@ -273,7 +274,8 @@ export const prepareLogEntriesForClickhouse = ( export function createInvocation( globals: HogFunctionInvocationGlobals, - hogFunction: HogFunctionType + hogFunction: HogFunctionType, + executeExportedFunction?: [string, any[]] ): HogFunctionInvocation { // Add the source of the trigger to the globals const modifiedGlobals: HogFunctionInvocationGlobals = { @@ -292,6 +294,7 @@ export function createInvocation( queue: 'hog', priority: 1, timings: [], + executeExportedFunction, } } @@ -378,3 +381,45 @@ export function cyclotronJobToInvocation(job: CyclotronJob, hogFunction: HogFunc timings: parsedState.timings, } } + +export function invokeExportedFunction( + sourceBytecode: any[], + globals: any, + functionName: string, + args: any[] +): Bytecodes { + let argBytecodes: any[] = [] + for (let i = 0; i < args.length; i++) { + argBytecodes = [ + ...argBytecodes, + 33, // integer + i + 1, // (index in args array) + 32, // string + '__args', + 1, // get global + 2, // (chain length) + ] + } + const bytecode = [ + '_H', + 1, + ...argBytecodes, + 32, // string + 'x', + 2, // call global + 'import', + 1, // (arg count) + 32, // string + functionName, + 45, // get property + 54, // call local + args.length, + 35, // pop + ] + return { + bytecodes: { + x: { bytecode: sourceBytecode, globals: { ...globals, __args: args } }, + root: { bytecode }, + }, + } +} diff --git a/posthog/api/hog_function.py b/posthog/api/hog_function.py index 83f81ca2e63df..fe23a65d6f687 100644 --- a/posthog/api/hog_function.py +++ b/posthog/api/hog_function.py @@ -23,6 +23,7 @@ from posthog.cdp.templates import HOG_FUNCTION_TEMPLATES_BY_ID from posthog.cdp.validation import compile_hog, generate_template_bytecode, validate_inputs, validate_inputs_schema from posthog.constants import AvailableFeature +from posthog.hogql_queries.actors_query_runner import ActorsQueryRunner from posthog.models.activity_logging.activity_log import log_activity, changes_between, Detail from posthog.models.hog_functions.hog_function import HogFunction, HogFunctionState from posthog.plugins.plugin_server_api import create_hog_invocation_test @@ -305,6 +306,36 @@ def invocations(self, request: Request, *args, **kwargs): return Response(res.json()) + @action(detail=True, methods=["POST"]) + def broadcast(self, request: Request, *args, **kwargs): + hog_function = self.get_object() + actors_query = { + "kind": "ActorsQuery", + "properties": hog_function.filters.get("properties", None), + "select": ["id", "any(pdi.distinct_id)", "properties", "created_at"], + } + + response = ActorsQueryRunner(query=actors_query, team=self.team).calculate() + + for result in response.results: + globals = { + "person": { + "id": str(result[0]), + "distinct_id": str(result[1]), + "properties": json.loads(result[2]), + "created_at": result[3].isoformat(), + } + } + create_hog_invocation_test( + team_id=hog_function.team_id, + hog_function_id=hog_function.id, + globals=globals, + configuration=HogFunctionSerializer(hog_function).data, + mock_async_functions=False, + ) + + return Response({"success": True}) + def perform_create(self, serializer): serializer.save() log_activity( From c5aa62baa3f93dbb704c0406311cc3413a3cf963 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:11:05 +0000 Subject: [PATCH 02/31] Update query snapshots --- posthog/api/test/__snapshots__/test_api_docs.ambr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/api/test/__snapshots__/test_api_docs.ambr b/posthog/api/test/__snapshots__/test_api_docs.ambr index 6ef31c6530176..a5f9b394809ae 100644 --- a/posthog/api/test/__snapshots__/test_api_docs.ambr +++ b/posthog/api/test/__snapshots__/test_api_docs.ambr @@ -97,8 +97,8 @@ '/home/runner/work/posthog/posthog/posthog/api/survey.py: Warning [SurveyViewSet > SurveySerializer]: unable to resolve type hint for function "get_conditions". Consider using a type hint or @extend_schema_field. Defaulting to string.', '/home/runner/work/posthog/posthog/posthog/api/web_experiment.py: Warning [WebExperimentViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.web_experiment.WebExperiment" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', 'Warning: encountered multiple names for the same choice set (HrefMatchingEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "Kind069Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "KindCfaEnum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', + 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "Kind069Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "type". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "TypeF73Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: encountered multiple names for the same choice set (EffectivePrivilegeLevelEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: encountered multiple names for the same choice set (MembershipLevelEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', From c360b17cead7a6ef538f1e9911d7f0f533c52dbe Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Fri, 25 Oct 2024 18:13:31 +0200 Subject: [PATCH 03/31] fix typo --- plugin-server/src/cdp/hog-executor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-server/src/cdp/hog-executor.ts b/plugin-server/src/cdp/hog-executor.ts index 0fcbd5166179f..196c911cb4b02 100644 --- a/plugin-server/src/cdp/hog-executor.ts +++ b/plugin-server/src/cdp/hog-executor.ts @@ -114,7 +114,7 @@ export class HogExecutor { nonMatchingFunctions: HogFunctionType[] erroredFunctions: HogFunctionType[] } { - const allFunctionsForTeam = this.hogFunctionManager.getTeamHogFunctions(event.project.id) + const allFunctionsForTeam = this.hogFunctionManager.getTeamHogDestinations(event.project.id) const filtersGlobals = convertToHogFunctionFilterGlobal(event) const nonMatchingFunctions: HogFunctionType[] = [] From a74265883cf0032ffeda5dcc6bab74ec069dad70 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Fri, 25 Oct 2024 18:14:27 +0200 Subject: [PATCH 04/31] fix another flaker --- posthog/api/test/test_api_docs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/api/test/test_api_docs.py b/posthog/api/test/test_api_docs.py index f7f7ab1d418b0..2fe8adf562ecb 100644 --- a/posthog/api/test/test_api_docs.py +++ b/posthog/api/test/test_api_docs.py @@ -29,5 +29,5 @@ def test_api_docs_generation_warnings_snapshot(self) -> None: self.client.get("/api/schema/") # we log lots of warnings when generating the schema - warnings = self._capsys.readouterr().err.split("\n") + warnings = self._capsys.readouterr().err.split("\n").sort() assert warnings == self._snapshot From f012afedc21c87bc4478792bfabc20274fa95a55 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Fri, 25 Oct 2024 18:19:03 +0200 Subject: [PATCH 05/31] remove broadcast code --- frontend/src/lib/api.ts | 3 -- .../hogfunctions/HogFunctionConfiguration.tsx | 32 ------------------- .../hogFunctionConfigurationLogic.tsx | 17 ---------- posthog/api/hog_function.py | 31 ------------------ 4 files changed, 83 deletions(-) diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 3cc573f88a14e..d6760ce8d2abe 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1760,9 +1760,6 @@ const api = { async update(id: HogFunctionType['id'], data: Partial): Promise { return await new ApiRequest().hogFunction(id).update({ data }) }, - async sendBroadcast(id: HogFunctionType['id']): Promise { - return await new ApiRequest().hogFunction(id).withAction('broadcast').create() - }, async logs( id: HogFunctionType['id'], params: LogEntryRequestParams = {} diff --git a/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx b/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx index 94c10958d397c..2977ac206121a 100644 --- a/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx +++ b/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx @@ -69,7 +69,6 @@ export function HogFunctionConfiguration({ templateId, id }: HogFunctionConfigur templateHasChanged, forcedSubTemplateId, type, - broadcastLoading, } = useValues(logic) const { submitConfiguration, @@ -81,7 +80,6 @@ export function HogFunctionConfiguration({ templateId, id }: HogFunctionConfigur setConfigurationValue, deleteHogFunction, setSubTemplateId, - sendBroadcast, } = useActions(logic) if (loading && !loaded) { @@ -496,36 +494,6 @@ export function HogFunctionConfiguration({ templateId, id }: HogFunctionConfigur {!id || id === 'new' ? : } - {type === 'broadcast' ? ( - id && id !== 'new' ? ( - - - Send to {personsCount} emails - -
- Please note: Clicking the button above will - synchronously send to all the e-mails. While this is fine for - testing with small lists, please don't use this for production - usecases yet. -
- - } - /> - ) : ( - - ) - ) : null} -
{saveButtons}
diff --git a/frontend/src/scenes/pipeline/hogfunctions/hogFunctionConfigurationLogic.tsx b/frontend/src/scenes/pipeline/hogfunctions/hogFunctionConfigurationLogic.tsx index 6599b4d45bdec..93d6359d349ca 100644 --- a/frontend/src/scenes/pipeline/hogfunctions/hogFunctionConfigurationLogic.tsx +++ b/frontend/src/scenes/pipeline/hogfunctions/hogFunctionConfigurationLogic.tsx @@ -188,7 +188,6 @@ export const hogFunctionConfigurationLogic = kea ({ configuration }), persistForUnload: true, setSampleGlobalsError: (error) => ({ error }), - sendBroadcast: true, }), reducers({ showSource: [ @@ -403,22 +402,6 @@ export const hogFunctionConfigurationLogic = kea { - const id = values.hogFunction?.id - if (!id) { - lemonToast.error('No broadcast to send') - return false - } - await api.hogFunctions.sendBroadcast(id) - lemonToast.success('Broadcast sent!') - return true - }, - }, - ], })), forms(({ values, props, asyncActions }) => ({ configuration: { diff --git a/posthog/api/hog_function.py b/posthog/api/hog_function.py index fe23a65d6f687..83f81ca2e63df 100644 --- a/posthog/api/hog_function.py +++ b/posthog/api/hog_function.py @@ -23,7 +23,6 @@ from posthog.cdp.templates import HOG_FUNCTION_TEMPLATES_BY_ID from posthog.cdp.validation import compile_hog, generate_template_bytecode, validate_inputs, validate_inputs_schema from posthog.constants import AvailableFeature -from posthog.hogql_queries.actors_query_runner import ActorsQueryRunner from posthog.models.activity_logging.activity_log import log_activity, changes_between, Detail from posthog.models.hog_functions.hog_function import HogFunction, HogFunctionState from posthog.plugins.plugin_server_api import create_hog_invocation_test @@ -306,36 +305,6 @@ def invocations(self, request: Request, *args, **kwargs): return Response(res.json()) - @action(detail=True, methods=["POST"]) - def broadcast(self, request: Request, *args, **kwargs): - hog_function = self.get_object() - actors_query = { - "kind": "ActorsQuery", - "properties": hog_function.filters.get("properties", None), - "select": ["id", "any(pdi.distinct_id)", "properties", "created_at"], - } - - response = ActorsQueryRunner(query=actors_query, team=self.team).calculate() - - for result in response.results: - globals = { - "person": { - "id": str(result[0]), - "distinct_id": str(result[1]), - "properties": json.loads(result[2]), - "created_at": result[3].isoformat(), - } - } - create_hog_invocation_test( - team_id=hog_function.team_id, - hog_function_id=hog_function.id, - globals=globals, - configuration=HogFunctionSerializer(hog_function).data, - mock_async_functions=False, - ) - - return Response({"success": True}) - def perform_create(self, serializer): serializer.save() log_activity( From a59821ae3e75029986133f279ce67a1a20d75adc Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:36:04 +0000 Subject: [PATCH 06/31] Update query snapshots --- .../api/test/__snapshots__/test_api_docs.ambr | 135 +----------------- 1 file changed, 1 insertion(+), 134 deletions(-) diff --git a/posthog/api/test/__snapshots__/test_api_docs.ambr b/posthog/api/test/__snapshots__/test_api_docs.ambr index a5f9b394809ae..87b748e151f66 100644 --- a/posthog/api/test/__snapshots__/test_api_docs.ambr +++ b/posthog/api/test/__snapshots__/test_api_docs.ambr @@ -1,137 +1,4 @@ # serializer version: 1 # name: TestAPIDocsSchema.test_api_docs_generation_warnings_snapshot - list([ - '/home/runner/work/posthog/posthog/posthog/api/plugin_log_entry.py: Warning [PluginLogEntryViewSet]: could not derive type of path parameter "plugin_config_id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - "/home/runner/work/posthog/posthog/posthog/api/app_metrics.py: Error [AppMetricsViewSet]: exception raised while getting serializer. Hint: Is get_serializer_class() returning None or is get_queryset() not working without a request? Ignoring the view for now. (Exception: 'AppMetricsViewSet' should either include a `serializer_class` attribute, or override the `get_serializer_class()` method.)", - '/home/runner/work/posthog/posthog/posthog/api/app_metrics.py: Warning [AppMetricsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.plugin.PluginConfig" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/app_metrics.py: Error [HistoricalExportsAppMetricsViewSet]: unable to guess serializer. This is graceful fallback handling for APIViews. Consider using GenericAPIView as view base class, if view is under your control. Either way you may want to add a serializer_class (or method). Ignoring view for now.', - '/home/runner/work/posthog/posthog/posthog/api/app_metrics.py: Warning [HistoricalExportsAppMetricsViewSet]: could not derive type of path parameter "project_id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/app_metrics.py: Warning [HistoricalExportsAppMetricsViewSet]: could not derive type of path parameter "plugin_config_id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/app_metrics.py: Warning [HistoricalExportsAppMetricsViewSet]: could not derive type of path parameter "id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/batch_exports/http.py: Warning [BatchExportViewSet]: could not derive type of path parameter "project_id" because model "posthog.batch_exports.models.BatchExport" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/batch_exports/http.py: Warning [BatchExportViewSet > BatchExportSerializer]: could not resolve serializer field "HogQLSelectQueryField(required=False)". Defaulting to "string"', - '/home/runner/work/posthog/posthog/posthog/batch_exports/http.py: Warning [BatchExportRunViewSet]: could not derive type of path parameter "project_id" because model "posthog.batch_exports.models.BatchExportRun" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/dashboards/dashboard.py: Warning [DashboardsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.dashboard.Dashboard" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/api/dashboard_collaborator.py: Warning [DashboardCollaboratorViewSet]: could not derive type of path parameter "project_id" because model "ee.models.dashboard_privilege.DashboardPrivilege" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/sharing.py: Warning [SharingConfigurationViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.sharing_configuration.SharingConfiguration" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/event.py: Warning [EventViewSet]: could not derive type of path parameter "project_id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/models/event/util.py: Warning [EventViewSet > ClickhouseEventSerializer]: unable to resolve type hint for function "get_id". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/models/event/util.py: Warning [EventViewSet > ClickhouseEventSerializer]: unable to resolve type hint for function "get_distinct_id". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/models/event/util.py: Warning [EventViewSet > ClickhouseEventSerializer]: unable to resolve type hint for function "get_properties". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/models/event/util.py: Warning [EventViewSet > ClickhouseEventSerializer]: unable to resolve type hint for function "get_event". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/models/event/util.py: Warning [EventViewSet > ClickhouseEventSerializer]: unable to resolve type hint for function "get_timestamp". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/models/event/util.py: Warning [EventViewSet > ClickhouseEventSerializer]: unable to resolve type hint for function "get_person". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/models/event/util.py: Warning [EventViewSet > ClickhouseEventSerializer]: unable to resolve type hint for function "get_elements". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/models/event/util.py: Warning [EventViewSet > ClickhouseEventSerializer]: unable to resolve type hint for function "get_elements_chain". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/event.py: Warning [EventViewSet]: could not derive type of path parameter "id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/api/explicit_team_member.py: Warning [ExplicitTeamMemberViewSet]: could not derive type of path parameter "project_id" because model "ee.models.explicit_team_membership.ExplicitTeamMembership" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/exports.py: Warning [ExportedAssetViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.exported_asset.ExportedAsset" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/exports.py: Warning [ExportedAssetViewSet > ExportedAssetSerializer]: unable to resolve type hint for function "has_content". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/exports.py: Warning [ExportedAssetViewSet > ExportedAssetSerializer]: unable to resolve type hint for function "filename". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/ee/clickhouse/views/groups.py: Warning [GroupsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.group.group.Group" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/clickhouse/views/insights.py: Warning [EnterpriseInsightsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.insight.Insight" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_last_refresh". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_cache_target_age". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_next_allowed_client_refresh". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_result". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_hasMore". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_columns". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_timezone". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_is_cached". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_query_status". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_hogql". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/insight.py: Warning [EnterpriseInsightsViewSet > InsightSerializer]: unable to resolve type hint for function "get_types". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/ee/clickhouse/views/person.py: Warning [EnterprisePersonViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.person.person.Person" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineDestinationsConfigsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.plugin.PluginConfig" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineDestinationsConfigsViewSet > PluginConfigSerializer]: unable to resolve type hint for function "get_config". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineDestinationsConfigsViewSet > PluginConfigSerializer]: unable to resolve type hint for function "get_error". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineDestinationsConfigsViewSet > PluginConfigSerializer]: unable to resolve type hint for function "get_plugin_info". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineDestinationsConfigsViewSet > PluginConfigSerializer]: unable to resolve type hint for function "get_delivery_rate_24h". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineFrontendAppsConfigsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.plugin.PluginConfig" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineImportAppsConfigsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.plugin.PluginConfig" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineTransformationsConfigsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.plugin.PluginConfig" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PluginConfigViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.plugin.PluginConfig" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/query.py: Warning [QueryViewSet]: could not derive type of path parameter "project_id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/opt/hostedtoolcache/Python/3.11.9/x64/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py: Warning [QueryViewSet > ModelMetaclass]: Encountered 2 components with identical names "Person" and different classes and . This will very likely result in an incorrect schema. Try renaming one.', - '/home/runner/work/posthog/posthog/posthog/api/query.py: Warning [QueryViewSet]: could not derive type of path parameter "id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/query.py: Error [QueryViewSet]: unable to guess serializer. This is graceful fallback handling for APIViews. Consider using GenericAPIView as view base class, if view is under your control. Either way you may want to add a serializer_class (or method). Ignoring view for now.', - '/home/runner/work/posthog/posthog/posthog/session_recordings/session_recording_api.py: Warning [SessionRecordingViewSet]: could not derive type of path parameter "project_id" because model "posthog.session_recordings.models.session_recording.SessionRecording" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/person.py: Warning [SessionRecordingViewSet > SessionRecordingSerializer > MinimalPersonSerializer]: unable to resolve type hint for function "get_distinct_ids". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/session_recordings/session_recording_api.py: Warning [SessionRecordingViewSet > SessionRecordingSerializer]: unable to resolve type hint for function "storage". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/session.py: Warning [SessionViewSet]: could not derive type of path parameter "project_id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/api/subscription.py: Warning [SubscriptionViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.subscription.Subscription" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/api/subscription.py: Warning [SubscriptionViewSet > SubscriptionSerializer]: unable to resolve type hint for function "summary". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/organization.py: Warning [OrganizationViewSet > OrganizationSerializer]: unable to resolve type hint for function "get_metadata". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/organization.py: Warning [OrganizationViewSet > OrganizationSerializer]: unable to resolve type hint for function "get_member_count". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/batch_exports/http.py: Warning [BatchExportOrganizationViewSet]: could not derive type of path parameter "organization_id" because model "posthog.batch_exports.models.BatchExport" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/plugin.py: Warning [PipelineDestinationsViewSet > PluginSerializer]: unable to resolve type hint for function "get_hog_function_migration_available". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/project.py: Warning [ProjectViewSet > ProjectBackwardCompatSerializer]: could not resolve field on model with path "person_on_events_querying_enabled". This is likely a custom field that does some unknown magic. Maybe consider annotating the field/property? Defaulting to "string". (Exception: Project has no field named \'person_on_events_querying_enabled\')', - '/home/runner/work/posthog/posthog/posthog/api/project.py: Warning [ProjectViewSet > ProjectBackwardCompatSerializer]: could not resolve field on model with path "default_modifiers". This is likely a custom field that does some unknown magic. Maybe consider annotating the field/property? Defaulting to "string". (Exception: Project has no field named \'default_modifiers\')', - '/home/runner/work/posthog/posthog/posthog/api/project.py: Warning [ProjectViewSet > ProjectBackwardCompatSerializer]: unable to resolve type hint for function "get_product_intents". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/proxy_record.py: Warning [ProxyRecordViewset]: could not derive type of path parameter "organization_id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/proxy_record.py: Warning [ProxyRecordViewset]: could not derive type of path parameter "id" because it is untyped and obtaining queryset from the viewset failed. Consider adding a type to the path (e.g. ) or annotating the parameter type with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/api/role.py: Warning [RoleViewSet > RoleSerializer]: unable to resolve type hint for function "get_members". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/ee/api/role.py: Warning [RoleViewSet > RoleSerializer]: unable to resolve type hint for function "get_associated_flags". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/ee/api/role.py: Warning [RoleMembershipViewSet]: could not derive type of path parameter "organization_id" because model "ee.models.role.RoleMembership" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/action.py: Warning [ActionViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.action.action.Action" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/action.py: Warning [ActionViewSet > ActionSerializer]: unable to resolve type hint for function "get_creation_context". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/activity_log.py: Warning [ActivityLogViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.activity_logging.activity_log.ActivityLog" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/annotation.py: Warning [AnnotationsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.annotation.Annotation" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/cohort.py: Warning [CohortViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.cohort.cohort.Cohort" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/dashboards/dashboard_templates.py: Warning [DashboardTemplateViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.dashboard_templates.DashboardTemplate" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/early_access_feature.py: Warning [EarlyAccessFeatureViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.early_access_feature.EarlyAccessFeature" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/team.py: Warning [TeamViewSet > TeamSerializer]: unable to resolve type hint for function "get_product_intents". Consider using a type hint or @extend_schema_field. Defaulting to string.', - "/home/runner/work/posthog/posthog/posthog/api/event_definition.py: Error [EventDefinitionViewSet]: exception raised while getting serializer. Hint: Is get_serializer_class() returning None or is get_queryset() not working without a request? Ignoring the view for now. (Exception: 'AnonymousUser' object has no attribute 'organization')", - '/home/runner/work/posthog/posthog/posthog/api/event_definition.py: Warning [EventDefinitionViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.event_definition.EventDefinition" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/clickhouse/views/experiment_holdouts.py: Warning [ExperimentHoldoutViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.experiment.ExperimentHoldout" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/clickhouse/views/experiments.py: Warning [EnterpriseExperimentsViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.experiment.Experiment" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/feature_flag.py: Warning [FeatureFlagViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.feature_flag.feature_flag.FeatureFlag" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/api/feature_flag_role_access.py: Warning [FeatureFlagRoleAccessViewSet]: could not derive type of path parameter "project_id" because model "ee.models.feature_flag_role_access.FeatureFlagRoleAccess" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/clickhouse/views/groups.py: Warning [GroupsTypesViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.group_type_mapping.GroupTypeMapping" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/notebook.py: Warning [NotebookViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.notebook.notebook.Notebook" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - "/home/runner/work/posthog/posthog/posthog/api/property_definition.py: Error [PropertyDefinitionViewSet]: exception raised while getting serializer. Hint: Is get_serializer_class() returning None or is get_queryset() not working without a request? Ignoring the view for now. (Exception: 'AnonymousUser' object has no attribute 'organization')", - '/home/runner/work/posthog/posthog/posthog/api/property_definition.py: Warning [PropertyDefinitionViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.property_definition.PropertyDefinition" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/session_recordings/session_recording_playlist.py: Warning [SessionRecordingPlaylistViewSet]: could not derive type of path parameter "project_id" because model "posthog.session_recordings.models.session_recording_playlist.SessionRecordingPlaylist" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/ee/session_recordings/session_recording_playlist.py: Warning [SessionRecordingPlaylistViewSet]: could not derive type of path parameter "session_recording_id" because model "posthog.session_recordings.models.session_recording_playlist.SessionRecordingPlaylist" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/survey.py: Warning [SurveyViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.feedback.survey.Survey" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - '/home/runner/work/posthog/posthog/posthog/api/survey.py: Warning [SurveyViewSet > SurveySerializer]: unable to resolve type hint for function "get_conditions". Consider using a type hint or @extend_schema_field. Defaulting to string.', - '/home/runner/work/posthog/posthog/posthog/api/web_experiment.py: Warning [WebExperimentViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.web_experiment.WebExperiment" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', - 'Warning: encountered multiple names for the same choice set (HrefMatchingEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "KindCfaEnum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "Kind069Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "type". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "TypeF73Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: encountered multiple names for the same choice set (EffectivePrivilegeLevelEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: encountered multiple names for the same choice set (MembershipLevelEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: operationId "environments_app_metrics_historical_exports_retrieve" has collisions [(\'/api/environments/{project_id}/app_metrics/{plugin_config_id}/historical_exports/\', \'get\'), (\'/api/environments/{project_id}/app_metrics/{plugin_config_id}/historical_exports/{id}/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "environments_insights_activity_retrieve" has collisions [(\'/api/environments/{project_id}/insights/{id}/activity/\', \'get\'), (\'/api/environments/{project_id}/insights/activity/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "Funnels" has collisions [(\'/api/environments/{project_id}/insights/funnel/\', \'post\'), (\'/api/projects/{project_id}/insights/funnel/\', \'post\')]. resolving with numeral suffixes.', - 'Warning: operationId "Trends" has collisions [(\'/api/environments/{project_id}/insights/trend/\', \'post\'), (\'/api/projects/{project_id}/insights/trend/\', \'post\')]. resolving with numeral suffixes.', - 'Warning: operationId "environments_persons_activity_retrieve" has collisions [(\'/api/environments/{project_id}/persons/{id}/activity/\', \'get\'), (\'/api/environments/{project_id}/persons/activity/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "list" has collisions [(\'/api/organizations/\', \'get\'), (\'/api/organizations/{organization_id}/projects/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "create" has collisions [(\'/api/organizations/\', \'post\'), (\'/api/organizations/{organization_id}/projects/\', \'post\')]. resolving with numeral suffixes.', - 'Warning: operationId "retrieve" has collisions [(\'/api/organizations/{id}/\', \'get\'), (\'/api/organizations/{organization_id}/projects/{id}/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "update" has collisions [(\'/api/organizations/{id}/\', \'put\'), (\'/api/organizations/{organization_id}/projects/{id}/\', \'put\')]. resolving with numeral suffixes.', - 'Warning: operationId "partial_update" has collisions [(\'/api/organizations/{id}/\', \'patch\'), (\'/api/organizations/{organization_id}/projects/{id}/\', \'patch\')]. resolving with numeral suffixes.', - 'Warning: operationId "destroy" has collisions [(\'/api/organizations/{id}/\', \'delete\'), (\'/api/organizations/{organization_id}/projects/{id}/\', \'delete\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_list" has collisions [(\'/api/organizations/{organization_id}/batch_exports/\', \'get\'), (\'/api/projects/{project_id}/batch_exports/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_create" has collisions [(\'/api/organizations/{organization_id}/batch_exports/\', \'post\'), (\'/api/projects/{project_id}/batch_exports/\', \'post\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_retrieve" has collisions [(\'/api/organizations/{organization_id}/batch_exports/{id}/\', \'get\'), (\'/api/projects/{project_id}/batch_exports/{id}/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_update" has collisions [(\'/api/organizations/{organization_id}/batch_exports/{id}/\', \'put\'), (\'/api/projects/{project_id}/batch_exports/{id}/\', \'put\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_partial_update" has collisions [(\'/api/organizations/{organization_id}/batch_exports/{id}/\', \'patch\'), (\'/api/projects/{project_id}/batch_exports/{id}/\', \'patch\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_destroy" has collisions [(\'/api/organizations/{organization_id}/batch_exports/{id}/\', \'delete\'), (\'/api/projects/{project_id}/batch_exports/{id}/\', \'delete\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_backfill_create" has collisions [(\'/api/organizations/{organization_id}/batch_exports/{id}/backfill/\', \'post\'), (\'/api/projects/{project_id}/batch_exports/{id}/backfill/\', \'post\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_logs_retrieve" has collisions [(\'/api/organizations/{organization_id}/batch_exports/{id}/logs/\', \'get\'), (\'/api/projects/{project_id}/batch_exports/{id}/logs/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_pause_create" has collisions [(\'/api/organizations/{organization_id}/batch_exports/{id}/pause/\', \'post\'), (\'/api/projects/{project_id}/batch_exports/{id}/pause/\', \'post\')]. resolving with numeral suffixes.', - 'Warning: operationId "batch_exports_unpause_create" has collisions [(\'/api/organizations/{organization_id}/batch_exports/{id}/unpause/\', \'post\'), (\'/api/projects/{project_id}/batch_exports/{id}/unpause/\', \'post\')]. resolving with numeral suffixes.', - 'Warning: operationId "app_metrics_historical_exports_retrieve" has collisions [(\'/api/projects/{project_id}/app_metrics/{plugin_config_id}/historical_exports/\', \'get\'), (\'/api/projects/{project_id}/app_metrics/{plugin_config_id}/historical_exports/{id}/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "cohorts_activity_retrieve" has collisions [(\'/api/projects/{project_id}/cohorts/{id}/activity/\', \'get\'), (\'/api/projects/{project_id}/cohorts/activity/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "event_definitions_retrieve" has collisions [(\'/api/projects/{project_id}/event_definitions/\', \'get\'), (\'/api/projects/{project_id}/event_definitions/{id}/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "feature_flags_activity_retrieve" has collisions [(\'/api/projects/{project_id}/feature_flags/{id}/activity/\', \'get\'), (\'/api/projects/{project_id}/feature_flags/activity/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "insights_activity_retrieve" has collisions [(\'/api/projects/{project_id}/insights/{id}/activity/\', \'get\'), (\'/api/projects/{project_id}/insights/activity/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "notebooks_activity_retrieve" has collisions [(\'/api/projects/{project_id}/notebooks/{short_id}/activity/\', \'get\'), (\'/api/projects/{project_id}/notebooks/activity/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "persons_activity_retrieve" has collisions [(\'/api/projects/{project_id}/persons/{id}/activity/\', \'get\'), (\'/api/projects/{project_id}/persons/activity/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "property_definitions_retrieve" has collisions [(\'/api/projects/{project_id}/property_definitions/\', \'get\'), (\'/api/projects/{project_id}/property_definitions/{id}/\', \'get\')]. resolving with numeral suffixes.', - 'Warning: operationId "surveys_activity_retrieve" has collisions [(\'/api/projects/{project_id}/surveys/{id}/activity/\', \'get\'), (\'/api/projects/{project_id}/surveys/activity/\', \'get\')]. resolving with numeral suffixes.', - '', - ]) + None # --- From 0c573dd7319d317567d811f8f4862f626355647b Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:37:54 +0000 Subject: [PATCH 07/31] Update UI snapshots for `chromium` (2) --- ...-funnel-top-to-bottom-breakdown--light.png | Bin 96027 -> 94373 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown--light.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown--light.png index c29fb61fab81c3c9ac5a2ad6c392839b8ae551c4..d27e49a552f6ffba0bb60d7b52caa93c58fe79f0 100644 GIT binary patch delta 74463 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 DhJ&xh delta 76109 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%0Dv~O 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 Date: Fri, 25 Oct 2024 16:57:50 +0000 Subject: [PATCH 08/31] Update UI snapshots for `chromium` (2) --- ...-funnel-top-to-bottom-breakdown--light.png | Bin 94373 -> 96027 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown--light.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown--light.png index d27e49a552f6ffba0bb60d7b52caa93c58fe79f0..c29fb61fab81c3c9ac5a2ad6c392839b8ae551c4 100644 GIT binary patch delta 76109 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%0Dv~O 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 DhJ&xh From 6c0903ce4d6e2b687c055c4e38d4073c10142e4c Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Fri, 25 Oct 2024 21:51:26 +0200 Subject: [PATCH 09/31] no change --- .../scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx b/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx index 2977ac206121a..a27181b3e77c7 100644 --- a/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx +++ b/frontend/src/scenes/pipeline/hogfunctions/HogFunctionConfiguration.tsx @@ -493,7 +493,6 @@ export function HogFunctionConfiguration({ templateId, id }: HogFunctionConfigur )} {!id || id === 'new' ? : } -
{saveButtons}
From 77dfb8bad1b4f6155bf9c865e5f38939e200a322 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Fri, 25 Oct 2024 21:58:57 +0200 Subject: [PATCH 10/31] fixes --- plugin-server/src/cdp/cdp-api.ts | 9 ++------- plugin-server/src/cdp/hog-executor.ts | 10 +++++----- plugin-server/src/cdp/types.ts | 2 +- plugin-server/src/cdp/utils.ts | 7 ++++--- posthog/api/test/test_api_docs.py | 2 +- 5 files changed, 13 insertions(+), 17 deletions(-) diff --git a/plugin-server/src/cdp/cdp-api.ts b/plugin-server/src/cdp/cdp-api.ts index 300e65fb3901c..0f4ea02b96814 100644 --- a/plugin-server/src/cdp/cdp-api.ts +++ b/plugin-server/src/cdp/cdp-api.ts @@ -112,12 +112,6 @@ export class CdpApi { ...(configuration ?? {}), } - // The "email" destination is exported as a function. Explicitly call the function when testing. - let functionToExecute: undefined | [string, any[]] = undefined - if (hogFunction.type === 'email') { - functionToExecute = ['sendEmail', [globals.email]] - } - await this.hogFunctionManager.enrichWithIntegrations([compoundConfiguration]) let lastResponse: HogFunctionInvocationResult | null = null @@ -145,7 +139,8 @@ export class CdpApi { }, }, compoundConfiguration, - functionToExecute + // The "email" hog functions export a "sendEmail" function that we must explicitly call + hogFunction.type === 'email' ? ['sendEmail', [globals.email]] : undefined ) if (invocation.queue === 'fetch') { diff --git a/plugin-server/src/cdp/hog-executor.ts b/plugin-server/src/cdp/hog-executor.ts index 196c911cb4b02..a6c2ccb6ad26e 100644 --- a/plugin-server/src/cdp/hog-executor.ts +++ b/plugin-server/src/cdp/hog-executor.ts @@ -16,7 +16,7 @@ import { HogFunctionQueueParametersFetchResponse, HogFunctionType, } from './types' -import { convertToHogFunctionFilterGlobal, invokeExportedFunction } from './utils' +import { buildExportedFunctionInvoker, convertToHogFunctionFilterGlobal } from './utils' export const MAX_ASYNC_STEPS = 5 export const MAX_HOG_LOGS = 25 @@ -280,12 +280,12 @@ export class HogExecutor { const sensitiveValues = this.getSensitiveValues(invocation.hogFunction, globals.inputs) const invocationInput = invocation.vmState ?? - (invocation.executeExportedFunction - ? invokeExportedFunction( + (invocation.functionToExecute + ? buildExportedFunctionInvoker( invocation.hogFunction.bytecode, globals, - invocation.executeExportedFunction[0], - invocation.executeExportedFunction[1] + invocation.functionToExecute[0], // name + invocation.functionToExecute[1] // args ) : invocation.hogFunction.bytecode) diff --git a/plugin-server/src/cdp/types.ts b/plugin-server/src/cdp/types.ts index da661045229c5..037e08e7a9a54 100644 --- a/plugin-server/src/cdp/types.ts +++ b/plugin-server/src/cdp/types.ts @@ -196,7 +196,7 @@ export type HogFunctionInvocation = { // The current vmstate (set if the invocation is paused) vmState?: VMState timings: HogFunctionTiming[] - executeExportedFunction?: [string, any[]] + functionToExecute?: [string, any[]] } export type HogFunctionAsyncFunctionRequest = { diff --git a/plugin-server/src/cdp/utils.ts b/plugin-server/src/cdp/utils.ts index 9b453f5ef8144..338d724466269 100644 --- a/plugin-server/src/cdp/utils.ts +++ b/plugin-server/src/cdp/utils.ts @@ -275,7 +275,7 @@ export const prepareLogEntriesForClickhouse = ( export function createInvocation( globals: HogFunctionInvocationGlobals, hogFunction: HogFunctionType, - executeExportedFunction?: [string, any[]] + functionToExecute?: [string, any[]] ): HogFunctionInvocation { // Add the source of the trigger to the globals const modifiedGlobals: HogFunctionInvocationGlobals = { @@ -294,7 +294,7 @@ export function createInvocation( queue: 'hog', priority: 1, timings: [], - executeExportedFunction, + functionToExecute, } } @@ -382,7 +382,8 @@ export function cyclotronJobToInvocation(job: CyclotronJob, hogFunction: HogFunc } } -export function invokeExportedFunction( +/** Build bytecode that calls a function in another imported bytecode */ +export function buildExportedFunctionInvoker( sourceBytecode: any[], globals: any, functionName: string, diff --git a/posthog/api/test/test_api_docs.py b/posthog/api/test/test_api_docs.py index 2fe8adf562ecb..b8b051a45e93d 100644 --- a/posthog/api/test/test_api_docs.py +++ b/posthog/api/test/test_api_docs.py @@ -29,5 +29,5 @@ def test_api_docs_generation_warnings_snapshot(self) -> None: self.client.get("/api/schema/") # we log lots of warnings when generating the schema - warnings = self._capsys.readouterr().err.split("\n").sort() + warnings = sorted(self._capsys.readouterr().err.split("\n")) assert warnings == self._snapshot From 7b8a4c85da2d1bbf62cf6cf95bb70d273c58e9cb Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Fri, 25 Oct 2024 21:59:35 +0200 Subject: [PATCH 11/31] maybe not --- posthog/api/test/test_api_docs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/api/test/test_api_docs.py b/posthog/api/test/test_api_docs.py index b8b051a45e93d..f7f7ab1d418b0 100644 --- a/posthog/api/test/test_api_docs.py +++ b/posthog/api/test/test_api_docs.py @@ -29,5 +29,5 @@ def test_api_docs_generation_warnings_snapshot(self) -> None: self.client.get("/api/schema/") # we log lots of warnings when generating the schema - warnings = sorted(self._capsys.readouterr().err.split("\n")) + warnings = self._capsys.readouterr().err.split("\n") assert warnings == self._snapshot From 1e5341e59fc75b0dd0a49e5c0e45e98c3384e41a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 20:08:19 +0000 Subject: [PATCH 12/31] Update query snapshots --- .../transforms/test/__snapshots__/test_in_cohort.ambr | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr b/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr index 06e46e0ca30b0..f018e96ef067a 100644 --- a/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr +++ b/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr @@ -31,7 +31,7 @@ FROM events LEFT JOIN ( SELECT person_static_cohort.person_id AS cohort_person_id, 1 AS matched, person_static_cohort.cohort_id AS cohort_id FROM person_static_cohort - WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [6]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) + WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [4]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) WHERE and(equals(events.team_id, 420), 1, ifNull(equals(__in_cohort.matched, 1), 0)) LIMIT 100 SETTINGS readonly=2, max_execution_time=60, allow_experimental_object_type=1, format_csv_allow_double_quotes=0, max_ast_elements=4000000, max_expanded_ast_elements=4000000, max_bytes_before_external_group_by=0 @@ -42,7 +42,7 @@ FROM events LEFT JOIN ( SELECT person_id AS cohort_person_id, 1 AS matched, cohort_id FROM static_cohort_people - WHERE in(cohort_id, [6])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) + WHERE in(cohort_id, [4])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) WHERE and(1, equals(__in_cohort.matched, 1)) LIMIT 100 ''' @@ -55,7 +55,7 @@ FROM events LEFT JOIN ( SELECT person_static_cohort.person_id AS cohort_person_id, 1 AS matched, person_static_cohort.cohort_id AS cohort_id FROM person_static_cohort - WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [7]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) + WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [5]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) WHERE and(equals(events.team_id, 420), 1, ifNull(equals(__in_cohort.matched, 1), 0)) LIMIT 100 SETTINGS readonly=2, max_execution_time=60, allow_experimental_object_type=1, format_csv_allow_double_quotes=0, max_ast_elements=4000000, max_expanded_ast_elements=4000000, max_bytes_before_external_group_by=0 @@ -66,7 +66,7 @@ FROM events LEFT JOIN ( SELECT person_id AS cohort_person_id, 1 AS matched, cohort_id FROM static_cohort_people - WHERE in(cohort_id, [7])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) + WHERE in(cohort_id, [5])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) WHERE and(1, equals(__in_cohort.matched, 1)) LIMIT 100 ''' From 739d8bb60d0f76db51fae0b4eba240f8d942db46 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 20:16:34 +0000 Subject: [PATCH 13/31] Update query snapshots --- .../test/__snapshots__/test_trends.ambr | 204 +++++++++++++++--- 1 file changed, 172 insertions(+), 32 deletions(-) diff --git a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr index 6027f7ca7bb42..4ae57feb8cb96 100644 --- a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr +++ b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr @@ -851,14 +851,49 @@ # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.1 ''' - /* celery:posthog.tasks.tasks.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; + SELECT groupArray(1)(date)[1] AS date, + arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, + if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', breakdown_value) AS breakdown_value + FROM + (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, + arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) + and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, + breakdown_value AS breakdown_value, + rowNumberInAllBlocks() AS row_number + FROM + (SELECT sum(total) AS count, + day_start AS day_start, + breakdown_value AS breakdown_value + FROM + (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, + toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, + ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value + FROM events AS e SAMPLE 1.0 + LEFT OUTER JOIN + (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, + person_distinct_id_overrides.distinct_id AS distinct_id + FROM person_distinct_id_overrides + WHERE equals(person_distinct_id_overrides.team_id, 2) + GROUP BY person_distinct_id_overrides.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) + WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) + GROUP BY day_start, + breakdown_value) + GROUP BY day_start, + breakdown_value + ORDER BY day_start ASC, breakdown_value ASC) + GROUP BY breakdown_value + ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) + WHERE isNotNull(breakdown_value) + GROUP BY breakdown_value + ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC + LIMIT 50000 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1, + format_csv_allow_double_quotes=0, + max_ast_elements=4000000, + max_expanded_ast_elements=4000000, + max_bytes_before_external_group_by=0 ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.10 @@ -1075,38 +1110,143 @@ # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.2 ''' - /* celery:posthog.tasks.tasks.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; + SELECT groupArray(1)(date)[1] AS date, + arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, + if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', breakdown_value) AS breakdown_value + FROM + (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, + arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) + and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, + breakdown_value AS breakdown_value, + rowNumberInAllBlocks() AS row_number + FROM + (SELECT sum(total) AS count, + day_start AS day_start, + breakdown_value AS breakdown_value + FROM + (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, + toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, + ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value + FROM events AS e SAMPLE 1.0 + LEFT OUTER JOIN + (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, + person_distinct_id_overrides.distinct_id AS distinct_id + FROM person_distinct_id_overrides + WHERE equals(person_distinct_id_overrides.team_id, 2) + GROUP BY person_distinct_id_overrides.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) + WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) + GROUP BY day_start, + breakdown_value) + GROUP BY day_start, + breakdown_value + ORDER BY day_start ASC, breakdown_value ASC) + GROUP BY breakdown_value + ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) + WHERE isNotNull(breakdown_value) + GROUP BY breakdown_value + ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC + LIMIT 50000 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1, + format_csv_allow_double_quotes=0, + max_ast_elements=4000000, + max_expanded_ast_elements=4000000, + max_bytes_before_external_group_by=0 ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.3 ''' - /* celery:posthog.tasks.tasks.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; + SELECT groupArray(1)(date)[1] AS date, + arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, + arrayMap(i -> if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', i), breakdown_value) AS breakdown_value + FROM + (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, + arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) + and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, + breakdown_value AS breakdown_value, + rowNumberInAllBlocks() AS row_number + FROM + (SELECT sum(total) AS count, + day_start AS day_start, + [ifNull(toString(breakdown_value_1), '$$_posthog_breakdown_null_$$')] AS breakdown_value + FROM + (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, + toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, + ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value_1 + FROM events AS e SAMPLE 1.0 + LEFT OUTER JOIN + (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, + person_distinct_id_overrides.distinct_id AS distinct_id + FROM person_distinct_id_overrides + WHERE equals(person_distinct_id_overrides.team_id, 2) + GROUP BY person_distinct_id_overrides.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) + WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) + GROUP BY day_start, + breakdown_value_1) + GROUP BY day_start, + breakdown_value_1 + ORDER BY day_start ASC, breakdown_value ASC) + GROUP BY breakdown_value + ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) + WHERE arrayExists(x -> isNotNull(x), breakdown_value) + GROUP BY breakdown_value + ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC + LIMIT 50000 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1, + format_csv_allow_double_quotes=0, + max_ast_elements=4000000, + max_expanded_ast_elements=4000000, + max_bytes_before_external_group_by=0 ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.4 ''' - /* celery:posthog.tasks.tasks.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; + SELECT groupArray(1)(date)[1] AS date, + arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, + arrayMap(i -> if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', i), breakdown_value) AS breakdown_value + FROM + (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, + arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) + and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, + breakdown_value AS breakdown_value, + rowNumberInAllBlocks() AS row_number + FROM + (SELECT sum(total) AS count, + day_start AS day_start, + [ifNull(toString(breakdown_value_1), '$$_posthog_breakdown_null_$$')] AS breakdown_value + FROM + (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, + toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, + ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value_1 + FROM events AS e SAMPLE 1.0 + LEFT OUTER JOIN + (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, + person_distinct_id_overrides.distinct_id AS distinct_id + FROM person_distinct_id_overrides + WHERE equals(person_distinct_id_overrides.team_id, 2) + GROUP BY person_distinct_id_overrides.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) + WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) + GROUP BY day_start, + breakdown_value_1) + GROUP BY day_start, + breakdown_value_1 + ORDER BY day_start ASC, breakdown_value ASC) + GROUP BY breakdown_value + ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) + WHERE arrayExists(x -> isNotNull(x), breakdown_value) + GROUP BY breakdown_value + ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC + LIMIT 50000 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1, + format_csv_allow_double_quotes=0, + max_ast_elements=4000000, + max_expanded_ast_elements=4000000, + max_bytes_before_external_group_by=0 ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.5 From 26292c5cf101fb9e8d85ad2c4888b51e416c755c Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Fri, 25 Oct 2024 23:59:58 +0200 Subject: [PATCH 14/31] test calling sendEmail for providers on invocation test --- hogvm/typescript/src/execute.ts | 5 +++- plugin-server/src/cdp/hog-executor.ts | 3 +- plugin-server/src/cdp/utils.ts | 8 +++--- plugin-server/tests/cdp/cdp-api.test.ts | 38 +++++++++++++++++++++++++ plugin-server/tests/cdp/examples.ts | 38 ++++++++++++++++++++++++- 5 files changed, 84 insertions(+), 8 deletions(-) diff --git a/hogvm/typescript/src/execute.ts b/hogvm/typescript/src/execute.ts index 2083de268e723..43016f3702602 100644 --- a/hogvm/typescript/src/execute.ts +++ b/hogvm/typescript/src/execute.ts @@ -122,7 +122,10 @@ export function exec(input: any[] | VMState | Bytecodes, options?: ExecOptions): let ops = vmState ? vmState.ops : 0 const timeout = options?.timeout ?? DEFAULT_TIMEOUT_MS const maxAsyncSteps = options?.maxAsyncSteps ?? DEFAULT_MAX_ASYNC_STEPS - const rootGlobals: Record = options?.globals ?? {} + const rootGlobals: Record = + bytecodes.root?.globals && options?.globals + ? { ...bytecodes.root.globals, ...options.globals } + : bytecodes.root?.globals ?? options?.globals ?? {} if (callStack.length === 0) { callStack.push({ diff --git a/plugin-server/src/cdp/hog-executor.ts b/plugin-server/src/cdp/hog-executor.ts index a6c2ccb6ad26e..9051d675fb8f3 100644 --- a/plugin-server/src/cdp/hog-executor.ts +++ b/plugin-server/src/cdp/hog-executor.ts @@ -287,12 +287,11 @@ export class HogExecutor { invocation.functionToExecute[0], // name invocation.functionToExecute[1] // args ) - : invocation.hogFunction.bytecode) + : { bytecodes: { root: { bytecode: invocation.hogFunction.bytecode, globals } } }) try { let hogLogs = 0 execRes = execHog(invocationInput, { - globals, maxAsyncSteps: MAX_ASYNC_STEPS, // NOTE: This will likely be configurable in the future asyncFunctions: { // We need to pass these in but they don't actually do anything as it is a sync exec diff --git a/plugin-server/src/cdp/utils.ts b/plugin-server/src/cdp/utils.ts index 338d724466269..f8031a043a1bc 100644 --- a/plugin-server/src/cdp/utils.ts +++ b/plugin-server/src/cdp/utils.ts @@ -384,8 +384,8 @@ export function cyclotronJobToInvocation(job: CyclotronJob, hogFunction: HogFunc /** Build bytecode that calls a function in another imported bytecode */ export function buildExportedFunctionInvoker( - sourceBytecode: any[], - globals: any, + exportBytecode: any[], + exportGlobals: any, functionName: string, args: any[] ): Bytecodes { @@ -419,8 +419,8 @@ export function buildExportedFunctionInvoker( ] return { bytecodes: { - x: { bytecode: sourceBytecode, globals: { ...globals, __args: args } }, - root: { bytecode }, + x: { bytecode: exportBytecode, globals: exportGlobals }, + root: { bytecode, globals: { __args: args } }, }, } } diff --git a/plugin-server/tests/cdp/cdp-api.test.ts b/plugin-server/tests/cdp/cdp-api.test.ts index aff207f099a4b..94ccf642230a9 100644 --- a/plugin-server/tests/cdp/cdp-api.test.ts +++ b/plugin-server/tests/cdp/cdp-api.test.ts @@ -239,5 +239,43 @@ describe('CDP API', () => { ], }) }) + + it('call exported sendEmail for email provider functions', async () => { + hogFunction = await insertHogFunction({ + ...HOG_EXAMPLES.export_send_email, + ...HOG_INPUTS_EXAMPLES.simple_fetch, + ...HOG_FILTERS_EXAMPLES.no_filters, + }) + + mockFetch.mockImplementationOnce(() => + Promise.resolve({ + status: 201, + text: () => Promise.resolve(JSON.stringify({ real: true })), + }) + ) + const res = await supertest(app) + .post(`/api/projects/${hogFunction.team_id}/hog_functions/${hogFunction.id}/invocations`) + .send({ globals: { ...globals, email: { from: 'me@mycompany.com' } }, mock_async_functions: false }) + + expect(res.status).toEqual(200) + expect(res.body).toMatchObject({ + status: 'success', + error: 'undefined', + logs: [ + { + level: 'debug', + message: 'Executing function', + }, + { + level: 'info', + message: '{"from":"me@mycompany.com"}', + }, + { + level: 'debug', + message: expect.stringContaining('Function completed in'), + }, + ], + }) + }) }) }) diff --git a/plugin-server/tests/cdp/examples.ts b/plugin-server/tests/cdp/examples.ts index d948f85e67424..24b06a0ea2b18 100644 --- a/plugin-server/tests/cdp/examples.ts +++ b/plugin-server/tests/cdp/examples.ts @@ -5,8 +5,9 @@ import { HogFunctionType } from '../../src/cdp/types' * As such we have a bunch of prebuilt examples here for usage in tests. */ -export const HOG_EXAMPLES: Record> = { +export const HOG_EXAMPLES: Record> = { simple_fetch: { + type: 'destination', hog: "let res := fetch(inputs.url, {\n 'headers': inputs.headers,\n 'body': inputs.body,\n 'method': inputs.method\n});\n\nprint('Fetch response:', res)", bytecode: [ '_h', @@ -57,6 +58,7 @@ export const HOG_EXAMPLES: Record> = { From 57345ed53eb0a467ef5826655dd9b82dfe2be860 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 00:03:34 +0200 Subject: [PATCH 15/31] test email provider import --- plugin-server/tests/cdp/hog-function-manager.test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugin-server/tests/cdp/hog-function-manager.test.ts b/plugin-server/tests/cdp/hog-function-manager.test.ts index 9ae3e2c0e6e10..d5d5b575dd3ec 100644 --- a/plugin-server/tests/cdp/hog-function-manager.test.ts +++ b/plugin-server/tests/cdp/hog-function-manager.test.ts @@ -146,6 +146,9 @@ describe('HogFunctionManager', () => { expect(allFunctions.length).toEqual(2) expect(allFunctions.map((f) => f.type).sort()).toEqual(['destination', 'email']) + const emailProvider = manager.getTeamHogEmailProvider(teamId1) + expect(emailProvider.type).toEqual('email') + await hub.db.postgres.query( PostgresUse.COMMON_WRITE, `UPDATE posthog_hogfunction SET name='Test Hog Function team 1 updated' WHERE id = $1`, From 800739aacbad032e7bf905488a79c876897da569 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 00:21:41 +0200 Subject: [PATCH 16/31] test calling imported code --- plugin-server/tests/cdp/examples.ts | 79 ++++++++++++++++++++ plugin-server/tests/cdp/fixtures.ts | 1 + plugin-server/tests/cdp/hog-executor.test.ts | 65 ++++++++++++++++ 3 files changed, 145 insertions(+) diff --git a/plugin-server/tests/cdp/examples.ts b/plugin-server/tests/cdp/examples.ts index 24b06a0ea2b18..fafafce472e3d 100644 --- a/plugin-server/tests/cdp/examples.ts +++ b/plugin-server/tests/cdp/examples.ts @@ -316,6 +316,31 @@ export const HOG_EXAMPLES: Record> = { @@ -402,6 +427,60 @@ export const HOG_INPUTS_EXAMPLES: Record', + design: [], + subject: 'Hello {person.properties.email}', + }, + bytecode: { + to: ['_H', 1, 32, 'email', 32, 'properties', 32, 'person', 1, 3], + body: [ + '_H', + 1, + 32, + 'Hello ', + 32, + 'first_name', + 32, + 'properties', + 32, + 'person', + 1, + 3, + 32, + ' ', + 32, + 'last_name', + 32, + 'properties', + 32, + 'person', + 1, + 3, + 32, + '!\n\nThis is a broadcast', + 2, + 'concat', + 5, + ], + from: ['_H', 1, 32, 'info@posthog.com'], + html: ['_H', 1, 32, ''], + subject: ['_H', 1, 32, 'Hello ', 32, 'email', 32, 'properties', 32, 'person', 1, 3, 2, 'concat', 2], + }, + }, + }, + }, } export const HOG_FILTERS_EXAMPLES: Record> = { diff --git a/plugin-server/tests/cdp/fixtures.ts b/plugin-server/tests/cdp/fixtures.ts index efbf3d2a06f83..e34920fdd981e 100644 --- a/plugin-server/tests/cdp/fixtures.ts +++ b/plugin-server/tests/cdp/fixtures.ts @@ -121,6 +121,7 @@ export const createHogExecutionGlobals = ( url: 'http://localhost:8000/persons/1', properties: { email: 'test@posthog.com', + first_name: 'Pumpkin', }, ...(data.person ?? {}), }, diff --git a/plugin-server/tests/cdp/hog-executor.test.ts b/plugin-server/tests/cdp/hog-executor.test.ts index 7f10b5a9103be..f368c73858c39 100644 --- a/plugin-server/tests/cdp/hog-executor.test.ts +++ b/plugin-server/tests/cdp/hog-executor.test.ts @@ -45,6 +45,7 @@ describe('Hog Executor', () => { reloadAllHogFunctions: jest.fn(), getTeamHogDestinations: jest.fn(), getTeamHogFunction: jest.fn(), + getTeamHogEmailProvider: jest.fn(), } beforeEach(async () => { @@ -215,6 +216,70 @@ describe('Hog Executor', () => { }) }) + describe('email provider functions', () => { + let hogFunction: HogFunctionType + let providerFunction: HogFunctionType + beforeEach(() => { + providerFunction = createHogFunction({ + name: 'Test hog function', + ...HOG_EXAMPLES.export_send_email, + ...HOG_INPUTS_EXAMPLES.none, + ...HOG_FILTERS_EXAMPLES.no_filters, + }) + hogFunction = createHogFunction({ + name: 'Test hog function', + ...HOG_EXAMPLES.import_send_email, + ...HOG_INPUTS_EXAMPLES.email, + ...HOG_FILTERS_EXAMPLES.no_filters, + }) + mockFunctionManager.getTeamHogDestinations.mockReturnValue([hogFunction, providerFunction]) + mockFunctionManager.getTeamHogFunction.mockReturnValue(hogFunction) + mockFunctionManager.getTeamHogEmailProvider.mockReturnValue(providerFunction) + }) + + it('can execute an invocation', () => { + const invocation = createInvocation(hogFunction) + const result = executor.execute(invocation) + expect(result).toEqual({ + capturedPostHogEvents: [], + invocation: { + id: expect.any(String), + teamId: 1, + priority: 0, + globals: invocation.globals, + hogFunction: invocation.hogFunction, + queue: 'hog', + timings: [ + { + kind: 'hog', + duration_ms: 0, + }, + ], + vmState: expect.any(Object), + }, + finished: true, + logs: [ + { + level: 'debug', + message: 'Executing function', + timestamp: expect.any(Object), + }, + { + level: 'info', + message: + '{"to":"test@posthog.com","body":"Hello Pumpkin !\\n\\nThis is a broadcast","from":"info@posthog.com","html":"","subject":"Hello test@posthog.com"}', + timestamp: expect.any(Object), + }, + { + level: 'debug', + message: expect.stringContaining('Function completed in'), + timestamp: expect.any(Object), + }, + ], + }) + }) + }) + describe('filtering', () => { it('can filters incoming messages correctly', () => { const fn = createHogFunction({ From 4c43ca0ab88f268a7518b728a11fe6d441fe5373 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 00:24:16 +0200 Subject: [PATCH 17/31] fistbump --- hogvm/typescript/package.json | 2 +- package.json | 2 +- plugin-server/package.json | 2 +- plugin-server/pnpm-lock.yaml | 8 ++++---- pnpm-lock.yaml | 11 +++++------ 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/hogvm/typescript/package.json b/hogvm/typescript/package.json index cdb4b64b03240..44aafe8789766 100644 --- a/hogvm/typescript/package.json +++ b/hogvm/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@posthog/hogvm", - "version": "1.0.55", + "version": "1.0.56", "description": "PostHog Hog Virtual Machine", "types": "dist/index.d.ts", "source": "src/index.ts", diff --git a/package.json b/package.json index a95fbb9641686..bad9179f56473 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "@medv/finder": "^3.1.0", "@microlink/react-json-view": "^1.21.3", "@monaco-editor/react": "4.6.0", - "@posthog/hogvm": "^1.0.55", + "@posthog/hogvm": "^1.0.56", "@posthog/icons": "0.8.5", "@posthog/plugin-scaffold": "^1.4.4", "@react-hook/size": "^2.1.2", diff --git a/plugin-server/package.json b/plugin-server/package.json index d3b9711b6f963..60fb25342d14e 100644 --- a/plugin-server/package.json +++ b/plugin-server/package.json @@ -54,7 +54,7 @@ "@maxmind/geoip2-node": "^3.4.0", "@posthog/clickhouse": "^1.7.0", "@posthog/cyclotron": "file:../rust/cyclotron-node", - "@posthog/hogvm": "^1.0.55", + "@posthog/hogvm": "^1.0.56", "@posthog/plugin-scaffold": "1.4.4", "@sentry/node": "^7.49.0", "@sentry/profiling-node": "^0.3.0", diff --git a/plugin-server/pnpm-lock.yaml b/plugin-server/pnpm-lock.yaml index d6150f2962bd9..36a8662a19aac 100644 --- a/plugin-server/pnpm-lock.yaml +++ b/plugin-server/pnpm-lock.yaml @@ -47,8 +47,8 @@ dependencies: specifier: file:../rust/cyclotron-node version: file:../rust/cyclotron-node '@posthog/hogvm': - specifier: ^1.0.55 - version: 1.0.55(luxon@3.4.4) + specifier: ^1.0.56 + version: 1.0.56(luxon@3.4.4) '@posthog/plugin-scaffold': specifier: 1.4.4 version: 1.4.4 @@ -3119,8 +3119,8 @@ packages: engines: {node: '>=12'} dev: false - /@posthog/hogvm@1.0.55(luxon@3.4.4): - resolution: {integrity: sha512-cjF3lrA62aaqoERiVJHpkkRBS6QJ1rH4xYwiOMOs8ZQKNNRofeqth4NJzhJReXA0Wlf99l8hDt2lgFgLaDBI1w==} + /@posthog/hogvm@1.0.56(luxon@3.4.4): + resolution: {integrity: sha512-28d2E3j2f4QJBJk/a3YTwFLEUodJ16s2hGhGVX4XsZ0qekkkich9vGsSYM3A8D6aAg/aZxAf78PtlakGyHyx1Q==} peerDependencies: luxon: ^3.4.4 dependencies: diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 213db7def9748..ccb44bdecac07 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,8 +50,8 @@ dependencies: specifier: 4.6.0 version: 4.6.0(monaco-editor@0.49.0)(react-dom@18.2.0)(react@18.2.0) '@posthog/hogvm': - specifier: ^1.0.55 - version: 1.0.55(luxon@3.5.0) + specifier: ^1.0.56 + version: 1.0.56(luxon@3.5.0) '@posthog/icons': specifier: 0.8.5 version: 0.8.5(react-dom@18.2.0)(react@18.2.0) @@ -389,7 +389,7 @@ dependencies: optionalDependencies: fsevents: specifier: ^2.3.2 - version: 2.3.3 + version: 2.3.2 devDependencies: '@babel/core': @@ -5415,8 +5415,8 @@ packages: resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} dev: false - /@posthog/hogvm@1.0.55(luxon@3.5.0): - resolution: {integrity: sha512-cjF3lrA62aaqoERiVJHpkkRBS6QJ1rH4xYwiOMOs8ZQKNNRofeqth4NJzhJReXA0Wlf99l8hDt2lgFgLaDBI1w==} + /@posthog/hogvm@1.0.56(luxon@3.5.0): + resolution: {integrity: sha512-28d2E3j2f4QJBJk/a3YTwFLEUodJ16s2hGhGVX4XsZ0qekkkich9vGsSYM3A8D6aAg/aZxAf78PtlakGyHyx1Q==} peerDependencies: luxon: ^3.4.4 dependencies: @@ -13134,7 +13134,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /fsevents@2.3.3: From 13693da04a65d954e39267b136f5c26ad6883d32 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 00:26:21 +0200 Subject: [PATCH 18/31] Revert "Update query snapshots" This reverts commit 1e5341e59fc75b0dd0a49e5c0e45e98c3384e41a. --- .../transforms/test/__snapshots__/test_in_cohort.ambr | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr b/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr index f018e96ef067a..06e46e0ca30b0 100644 --- a/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr +++ b/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr @@ -31,7 +31,7 @@ FROM events LEFT JOIN ( SELECT person_static_cohort.person_id AS cohort_person_id, 1 AS matched, person_static_cohort.cohort_id AS cohort_id FROM person_static_cohort - WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [4]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) + WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [6]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) WHERE and(equals(events.team_id, 420), 1, ifNull(equals(__in_cohort.matched, 1), 0)) LIMIT 100 SETTINGS readonly=2, max_execution_time=60, allow_experimental_object_type=1, format_csv_allow_double_quotes=0, max_ast_elements=4000000, max_expanded_ast_elements=4000000, max_bytes_before_external_group_by=0 @@ -42,7 +42,7 @@ FROM events LEFT JOIN ( SELECT person_id AS cohort_person_id, 1 AS matched, cohort_id FROM static_cohort_people - WHERE in(cohort_id, [4])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) + WHERE in(cohort_id, [6])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) WHERE and(1, equals(__in_cohort.matched, 1)) LIMIT 100 ''' @@ -55,7 +55,7 @@ FROM events LEFT JOIN ( SELECT person_static_cohort.person_id AS cohort_person_id, 1 AS matched, person_static_cohort.cohort_id AS cohort_id FROM person_static_cohort - WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [5]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) + WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [7]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) WHERE and(equals(events.team_id, 420), 1, ifNull(equals(__in_cohort.matched, 1), 0)) LIMIT 100 SETTINGS readonly=2, max_execution_time=60, allow_experimental_object_type=1, format_csv_allow_double_quotes=0, max_ast_elements=4000000, max_expanded_ast_elements=4000000, max_bytes_before_external_group_by=0 @@ -66,7 +66,7 @@ FROM events LEFT JOIN ( SELECT person_id AS cohort_person_id, 1 AS matched, cohort_id FROM static_cohort_people - WHERE in(cohort_id, [5])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) + WHERE in(cohort_id, [7])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) WHERE and(1, equals(__in_cohort.matched, 1)) LIMIT 100 ''' From 384beeeaa6da5ea44710fc00e1dd71f8b352b382 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 00:26:30 +0200 Subject: [PATCH 19/31] Revert "Update query snapshots" This reverts commit 739d8bb60d0f76db51fae0b4eba240f8d942db46. --- .../test/__snapshots__/test_trends.ambr | 204 +++--------------- 1 file changed, 32 insertions(+), 172 deletions(-) diff --git a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr index 4ae57feb8cb96..6027f7ca7bb42 100644 --- a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr +++ b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr @@ -851,49 +851,14 @@ # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.1 ''' - SELECT groupArray(1)(date)[1] AS date, - arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, - if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', breakdown_value) AS breakdown_value - FROM - (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, - arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) - and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, - breakdown_value AS breakdown_value, - rowNumberInAllBlocks() AS row_number - FROM - (SELECT sum(total) AS count, - day_start AS day_start, - breakdown_value AS breakdown_value - FROM - (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, - toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, - ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value - FROM events AS e SAMPLE 1.0 - LEFT OUTER JOIN - (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, - person_distinct_id_overrides.distinct_id AS distinct_id - FROM person_distinct_id_overrides - WHERE equals(person_distinct_id_overrides.team_id, 2) - GROUP BY person_distinct_id_overrides.distinct_id - HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) - WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) - GROUP BY day_start, - breakdown_value) - GROUP BY day_start, - breakdown_value - ORDER BY day_start ASC, breakdown_value ASC) - GROUP BY breakdown_value - ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) - WHERE isNotNull(breakdown_value) - GROUP BY breakdown_value - ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC - LIMIT 50000 SETTINGS readonly=2, - max_execution_time=60, - allow_experimental_object_type=1, - format_csv_allow_double_quotes=0, - max_ast_elements=4000000, - max_expanded_ast_elements=4000000, - max_bytes_before_external_group_by=0 + /* celery:posthog.tasks.tasks.sync_insight_caching_state */ + SELECT team_id, + date_diff('second', max(timestamp), now()) AS age + FROM events + WHERE timestamp > date_sub(DAY, 3, now()) + AND timestamp < now() + GROUP BY team_id + ORDER BY age; ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.10 @@ -1110,143 +1075,38 @@ # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.2 ''' - SELECT groupArray(1)(date)[1] AS date, - arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, - if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', breakdown_value) AS breakdown_value - FROM - (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, - arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) - and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, - breakdown_value AS breakdown_value, - rowNumberInAllBlocks() AS row_number - FROM - (SELECT sum(total) AS count, - day_start AS day_start, - breakdown_value AS breakdown_value - FROM - (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, - toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, - ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value - FROM events AS e SAMPLE 1.0 - LEFT OUTER JOIN - (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, - person_distinct_id_overrides.distinct_id AS distinct_id - FROM person_distinct_id_overrides - WHERE equals(person_distinct_id_overrides.team_id, 2) - GROUP BY person_distinct_id_overrides.distinct_id - HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) - WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) - GROUP BY day_start, - breakdown_value) - GROUP BY day_start, - breakdown_value - ORDER BY day_start ASC, breakdown_value ASC) - GROUP BY breakdown_value - ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) - WHERE isNotNull(breakdown_value) - GROUP BY breakdown_value - ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC - LIMIT 50000 SETTINGS readonly=2, - max_execution_time=60, - allow_experimental_object_type=1, - format_csv_allow_double_quotes=0, - max_ast_elements=4000000, - max_expanded_ast_elements=4000000, - max_bytes_before_external_group_by=0 + /* celery:posthog.tasks.tasks.sync_insight_caching_state */ + SELECT team_id, + date_diff('second', max(timestamp), now()) AS age + FROM events + WHERE timestamp > date_sub(DAY, 3, now()) + AND timestamp < now() + GROUP BY team_id + ORDER BY age; ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.3 ''' - SELECT groupArray(1)(date)[1] AS date, - arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, - arrayMap(i -> if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', i), breakdown_value) AS breakdown_value - FROM - (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, - arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) - and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, - breakdown_value AS breakdown_value, - rowNumberInAllBlocks() AS row_number - FROM - (SELECT sum(total) AS count, - day_start AS day_start, - [ifNull(toString(breakdown_value_1), '$$_posthog_breakdown_null_$$')] AS breakdown_value - FROM - (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, - toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, - ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value_1 - FROM events AS e SAMPLE 1.0 - LEFT OUTER JOIN - (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, - person_distinct_id_overrides.distinct_id AS distinct_id - FROM person_distinct_id_overrides - WHERE equals(person_distinct_id_overrides.team_id, 2) - GROUP BY person_distinct_id_overrides.distinct_id - HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) - WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) - GROUP BY day_start, - breakdown_value_1) - GROUP BY day_start, - breakdown_value_1 - ORDER BY day_start ASC, breakdown_value ASC) - GROUP BY breakdown_value - ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) - WHERE arrayExists(x -> isNotNull(x), breakdown_value) - GROUP BY breakdown_value - ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC - LIMIT 50000 SETTINGS readonly=2, - max_execution_time=60, - allow_experimental_object_type=1, - format_csv_allow_double_quotes=0, - max_ast_elements=4000000, - max_expanded_ast_elements=4000000, - max_bytes_before_external_group_by=0 + /* celery:posthog.tasks.tasks.sync_insight_caching_state */ + SELECT team_id, + date_diff('second', max(timestamp), now()) AS age + FROM events + WHERE timestamp > date_sub(DAY, 3, now()) + AND timestamp < now() + GROUP BY team_id + ORDER BY age; ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.4 ''' - SELECT groupArray(1)(date)[1] AS date, - arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, - arrayMap(i -> if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', i), breakdown_value) AS breakdown_value - FROM - (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, - arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) - and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, - breakdown_value AS breakdown_value, - rowNumberInAllBlocks() AS row_number - FROM - (SELECT sum(total) AS count, - day_start AS day_start, - [ifNull(toString(breakdown_value_1), '$$_posthog_breakdown_null_$$')] AS breakdown_value - FROM - (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, - toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, - ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value_1 - FROM events AS e SAMPLE 1.0 - LEFT OUTER JOIN - (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, - person_distinct_id_overrides.distinct_id AS distinct_id - FROM person_distinct_id_overrides - WHERE equals(person_distinct_id_overrides.team_id, 2) - GROUP BY person_distinct_id_overrides.distinct_id - HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) - WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) - GROUP BY day_start, - breakdown_value_1) - GROUP BY day_start, - breakdown_value_1 - ORDER BY day_start ASC, breakdown_value ASC) - GROUP BY breakdown_value - ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) - WHERE arrayExists(x -> isNotNull(x), breakdown_value) - GROUP BY breakdown_value - ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC - LIMIT 50000 SETTINGS readonly=2, - max_execution_time=60, - allow_experimental_object_type=1, - format_csv_allow_double_quotes=0, - max_ast_elements=4000000, - max_expanded_ast_elements=4000000, - max_bytes_before_external_group_by=0 + /* celery:posthog.tasks.tasks.sync_insight_caching_state */ + SELECT team_id, + date_diff('second', max(timestamp), now()) AS age + FROM events + WHERE timestamp > date_sub(DAY, 3, now()) + AND timestamp < now() + GROUP BY team_id + ORDER BY age; ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.5 From 230df08571097bc770b712385c1e5da4e231fc99 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 00:44:06 +0200 Subject: [PATCH 20/31] fix crash --- plugin-server/src/cdp/hog-executor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-server/src/cdp/hog-executor.ts b/plugin-server/src/cdp/hog-executor.ts index 9051d675fb8f3..922967c296456 100644 --- a/plugin-server/src/cdp/hog-executor.ts +++ b/plugin-server/src/cdp/hog-executor.ts @@ -495,7 +495,7 @@ export class HogExecutor { result.finished = true // Explicitly set to true to prevent infinite loops status.error( '🦔', - `[HogExecutor] Error executing function ${invocation.hogFunction.id} - ${invocation.hogFunction.name}. Event: '${invocation.globals.event.url}'`, + `[HogExecutor] Error executing function ${invocation.hogFunction.id} - ${invocation.hogFunction.name}. Event: '${invocation.globals.event?.url}'`, err ) } From 90fd4576083afedf636dab5ce84ae7f30e0a4f76 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 00:49:46 +0200 Subject: [PATCH 21/31] fix template --- posthog/cdp/templates/mailjet/template_mailjet.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/posthog/cdp/templates/mailjet/template_mailjet.py b/posthog/cdp/templates/mailjet/template_mailjet.py index 23cf5e07da0f4..e0fa8863d0a0e 100644 --- a/posthog/cdp/templates/mailjet/template_mailjet.py +++ b/posthog/cdp/templates/mailjet/template_mailjet.py @@ -170,17 +170,17 @@ 'Messages': [ { 'From': { - 'Email': inputs.email.from, + 'Email': email.from, 'Name': '' }, 'To': [ { - 'Email': inputs.email.to, + 'Email': email.to, 'Name': '' } ], - 'Subject': inputs.email.subject, - 'HTMLPart': inputs.email.html + 'Subject': email.subject, + 'HTMLPart': email.html } ] } From 017810086a24afcecd943ea2123544925ab27602 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 23:08:39 +0000 Subject: [PATCH 22/31] Update query snapshots --- .../transforms/test/__snapshots__/test_in_cohort.ambr | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr b/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr index 06e46e0ca30b0..f018e96ef067a 100644 --- a/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr +++ b/posthog/hogql/transforms/test/__snapshots__/test_in_cohort.ambr @@ -31,7 +31,7 @@ FROM events LEFT JOIN ( SELECT person_static_cohort.person_id AS cohort_person_id, 1 AS matched, person_static_cohort.cohort_id AS cohort_id FROM person_static_cohort - WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [6]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) + WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [4]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) WHERE and(equals(events.team_id, 420), 1, ifNull(equals(__in_cohort.matched, 1), 0)) LIMIT 100 SETTINGS readonly=2, max_execution_time=60, allow_experimental_object_type=1, format_csv_allow_double_quotes=0, max_ast_elements=4000000, max_expanded_ast_elements=4000000, max_bytes_before_external_group_by=0 @@ -42,7 +42,7 @@ FROM events LEFT JOIN ( SELECT person_id AS cohort_person_id, 1 AS matched, cohort_id FROM static_cohort_people - WHERE in(cohort_id, [6])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) + WHERE in(cohort_id, [4])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) WHERE and(1, equals(__in_cohort.matched, 1)) LIMIT 100 ''' @@ -55,7 +55,7 @@ FROM events LEFT JOIN ( SELECT person_static_cohort.person_id AS cohort_person_id, 1 AS matched, person_static_cohort.cohort_id AS cohort_id FROM person_static_cohort - WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [7]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) + WHERE and(equals(person_static_cohort.team_id, 420), in(person_static_cohort.cohort_id, [5]))) AS __in_cohort ON equals(__in_cohort.cohort_person_id, events.person_id) WHERE and(equals(events.team_id, 420), 1, ifNull(equals(__in_cohort.matched, 1), 0)) LIMIT 100 SETTINGS readonly=2, max_execution_time=60, allow_experimental_object_type=1, format_csv_allow_double_quotes=0, max_ast_elements=4000000, max_expanded_ast_elements=4000000, max_bytes_before_external_group_by=0 @@ -66,7 +66,7 @@ FROM events LEFT JOIN ( SELECT person_id AS cohort_person_id, 1 AS matched, cohort_id FROM static_cohort_people - WHERE in(cohort_id, [7])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) + WHERE in(cohort_id, [5])) AS __in_cohort ON equals(__in_cohort.cohort_person_id, person_id) WHERE and(1, equals(__in_cohort.matched, 1)) LIMIT 100 ''' From cf2e11412386ebfc987f9788b38562faa8457f2a Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 01:12:20 +0200 Subject: [PATCH 23/31] cleanup --- plugin-server/src/cdp/hog-executor.ts | 3 ++- plugin-server/tests/cdp/hog-executor.test.ts | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/plugin-server/src/cdp/hog-executor.ts b/plugin-server/src/cdp/hog-executor.ts index 922967c296456..c57d954460f66 100644 --- a/plugin-server/src/cdp/hog-executor.ts +++ b/plugin-server/src/cdp/hog-executor.ts @@ -287,11 +287,12 @@ export class HogExecutor { invocation.functionToExecute[0], // name invocation.functionToExecute[1] // args ) - : { bytecodes: { root: { bytecode: invocation.hogFunction.bytecode, globals } } }) + : invocation.hogFunction.bytecode) try { let hogLogs = 0 execRes = execHog(invocationInput, { + globals: invocation.functionToExecute ? undefined : globals, maxAsyncSteps: MAX_ASYNC_STEPS, // NOTE: This will likely be configurable in the future asyncFunctions: { // We need to pass these in but they don't actually do anything as it is a sync exec diff --git a/plugin-server/tests/cdp/hog-executor.test.ts b/plugin-server/tests/cdp/hog-executor.test.ts index f368c73858c39..94608b2f5bea1 100644 --- a/plugin-server/tests/cdp/hog-executor.test.ts +++ b/plugin-server/tests/cdp/hog-executor.test.ts @@ -107,7 +107,7 @@ describe('Hog Executor', () => { { timestamp: expect.any(DateTime), level: 'debug', - message: "Suspending function due to async function call 'fetch'. Payload: 1918 bytes", + message: "Suspending function due to async function call 'fetch'. Payload: 1951 bytes", }, ]) }) @@ -163,7 +163,7 @@ describe('Hog Executor', () => { id: 'uuid', name: 'test', url: 'http://localhost:8000/persons/1', - properties: { email: 'test@posthog.com' }, + properties: { email: 'test@posthog.com', first_name: 'Pumpkin' }, }, event_url: 'http://localhost:8000/events/1-test', }) @@ -188,10 +188,10 @@ describe('Hog Executor', () => { expect(logs.map((log) => log.message)).toMatchInlineSnapshot(` Array [ "Executing function", - "Suspending function due to async function call 'fetch'. Payload: 1918 bytes", + "Suspending function due to async function call 'fetch'. Payload: 1951 bytes", "Resuming function", "Fetch response:, {\\"status\\":200,\\"body\\":\\"success\\"}", - "Function completed in 100ms. Sync: 0ms. Mem: 779 bytes. Ops: 22. Event: 'http://localhost:8000/events/1'", + "Function completed in 100ms. Sync: 0ms. Mem: 812 bytes. Ops: 22. Event: 'http://localhost:8000/events/1'", ] `) }) @@ -207,10 +207,10 @@ describe('Hog Executor', () => { expect(logs.map((log) => log.message)).toMatchInlineSnapshot(` Array [ "Executing function", - "Suspending function due to async function call 'fetch'. Payload: 1918 bytes", + "Suspending function due to async function call 'fetch'. Payload: 1951 bytes", "Resuming function", "Fetch response:, {\\"status\\":200,\\"body\\":{\\"foo\\":\\"bar\\"}}", - "Function completed in 100ms. Sync: 0ms. Mem: 779 bytes. Ops: 22. Event: 'http://localhost:8000/events/1'", + "Function completed in 100ms. Sync: 0ms. Mem: 812 bytes. Ops: 22. Event: 'http://localhost:8000/events/1'", ] `) }) From 9baeaa4351be5d7e0a90761bbc5a1f0edb0863e1 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 23:15:31 +0000 Subject: [PATCH 24/31] Update query snapshots --- .../test/__snapshots__/test_trends.ambr | 204 +++++++++++++++--- 1 file changed, 172 insertions(+), 32 deletions(-) diff --git a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr index 6027f7ca7bb42..4ae57feb8cb96 100644 --- a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr +++ b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr @@ -851,14 +851,49 @@ # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.1 ''' - /* celery:posthog.tasks.tasks.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; + SELECT groupArray(1)(date)[1] AS date, + arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, + if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', breakdown_value) AS breakdown_value + FROM + (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, + arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) + and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, + breakdown_value AS breakdown_value, + rowNumberInAllBlocks() AS row_number + FROM + (SELECT sum(total) AS count, + day_start AS day_start, + breakdown_value AS breakdown_value + FROM + (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, + toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, + ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value + FROM events AS e SAMPLE 1.0 + LEFT OUTER JOIN + (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, + person_distinct_id_overrides.distinct_id AS distinct_id + FROM person_distinct_id_overrides + WHERE equals(person_distinct_id_overrides.team_id, 2) + GROUP BY person_distinct_id_overrides.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) + WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) + GROUP BY day_start, + breakdown_value) + GROUP BY day_start, + breakdown_value + ORDER BY day_start ASC, breakdown_value ASC) + GROUP BY breakdown_value + ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) + WHERE isNotNull(breakdown_value) + GROUP BY breakdown_value + ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC + LIMIT 50000 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1, + format_csv_allow_double_quotes=0, + max_ast_elements=4000000, + max_expanded_ast_elements=4000000, + max_bytes_before_external_group_by=0 ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.10 @@ -1075,38 +1110,143 @@ # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.2 ''' - /* celery:posthog.tasks.tasks.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; + SELECT groupArray(1)(date)[1] AS date, + arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, + if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', breakdown_value) AS breakdown_value + FROM + (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, + arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) + and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, + breakdown_value AS breakdown_value, + rowNumberInAllBlocks() AS row_number + FROM + (SELECT sum(total) AS count, + day_start AS day_start, + breakdown_value AS breakdown_value + FROM + (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, + toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, + ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value + FROM events AS e SAMPLE 1.0 + LEFT OUTER JOIN + (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, + person_distinct_id_overrides.distinct_id AS distinct_id + FROM person_distinct_id_overrides + WHERE equals(person_distinct_id_overrides.team_id, 2) + GROUP BY person_distinct_id_overrides.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) + WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) + GROUP BY day_start, + breakdown_value) + GROUP BY day_start, + breakdown_value + ORDER BY day_start ASC, breakdown_value ASC) + GROUP BY breakdown_value + ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) + WHERE isNotNull(breakdown_value) + GROUP BY breakdown_value + ORDER BY if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_other_$$'), 0), 2, if(ifNull(equals(breakdown_value, '$$_posthog_breakdown_null_$$'), 0), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC + LIMIT 50000 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1, + format_csv_allow_double_quotes=0, + max_ast_elements=4000000, + max_expanded_ast_elements=4000000, + max_bytes_before_external_group_by=0 ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.3 ''' - /* celery:posthog.tasks.tasks.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; + SELECT groupArray(1)(date)[1] AS date, + arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, + arrayMap(i -> if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', i), breakdown_value) AS breakdown_value + FROM + (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, + arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) + and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, + breakdown_value AS breakdown_value, + rowNumberInAllBlocks() AS row_number + FROM + (SELECT sum(total) AS count, + day_start AS day_start, + [ifNull(toString(breakdown_value_1), '$$_posthog_breakdown_null_$$')] AS breakdown_value + FROM + (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, + toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, + ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value_1 + FROM events AS e SAMPLE 1.0 + LEFT OUTER JOIN + (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, + person_distinct_id_overrides.distinct_id AS distinct_id + FROM person_distinct_id_overrides + WHERE equals(person_distinct_id_overrides.team_id, 2) + GROUP BY person_distinct_id_overrides.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) + WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) + GROUP BY day_start, + breakdown_value_1) + GROUP BY day_start, + breakdown_value_1 + ORDER BY day_start ASC, breakdown_value ASC) + GROUP BY breakdown_value + ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) + WHERE arrayExists(x -> isNotNull(x), breakdown_value) + GROUP BY breakdown_value + ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC + LIMIT 50000 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1, + format_csv_allow_double_quotes=0, + max_ast_elements=4000000, + max_expanded_ast_elements=4000000, + max_bytes_before_external_group_by=0 ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.4 ''' - /* celery:posthog.tasks.tasks.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; + SELECT groupArray(1)(date)[1] AS date, + arrayFold((acc, x) -> arrayMap(i -> plus(acc[i], x[i]), range(1, plus(length(date), 1))), groupArray(ifNull(total, 0)), arrayWithConstant(length(date), reinterpretAsFloat64(0))) AS total, + arrayMap(i -> if(ifNull(ifNull(greaterOrEquals(row_number, 25), 0), 0), '$$_posthog_breakdown_other_$$', i), breakdown_value) AS breakdown_value + FROM + (SELECT arrayMap(number -> plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toIntervalDay(number)), range(0, plus(coalesce(dateDiff('day', toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC'))), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))))), 1))) AS date, + arrayMap(_match_date -> arraySum(arraySlice(groupArray(ifNull(count, 0)), indexOf(groupArray(day_start) AS _days_for_count, _match_date) AS _index, plus(minus(arrayLastIndex(x -> ifNull(equals(x, _match_date), isNull(x) + and isNull(_match_date)), _days_for_count), _index), 1))), date) AS total, + breakdown_value AS breakdown_value, + rowNumberInAllBlocks() AS row_number + FROM + (SELECT sum(total) AS count, + day_start AS day_start, + [ifNull(toString(breakdown_value_1), '$$_posthog_breakdown_null_$$')] AS breakdown_value + FROM + (SELECT count(DISTINCT if(not(empty(e__override.distinct_id)), e__override.person_id, e.person_id)) AS total, + toStartOfDay(toTimeZone(e.timestamp, 'UTC')) AS day_start, + ifNull(nullIf(toString(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', '')), ''), '$$_posthog_breakdown_null_$$') AS breakdown_value_1 + FROM events AS e SAMPLE 1.0 + LEFT OUTER JOIN + (SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id, + person_distinct_id_overrides.distinct_id AS distinct_id + FROM person_distinct_id_overrides + WHERE equals(person_distinct_id_overrides.team_id, 2) + GROUP BY person_distinct_id_overrides.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id) + WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), equals(e.event, 'sign up')) + GROUP BY day_start, + breakdown_value_1) + GROUP BY day_start, + breakdown_value_1 + ORDER BY day_start ASC, breakdown_value ASC) + GROUP BY breakdown_value + ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC) + WHERE arrayExists(x -> isNotNull(x), breakdown_value) + GROUP BY breakdown_value + ORDER BY if(has(breakdown_value, '$$_posthog_breakdown_other_$$'), 2, if(has(breakdown_value, '$$_posthog_breakdown_null_$$'), 1, 0)) ASC, arraySum(total) DESC, breakdown_value ASC + LIMIT 50000 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1, + format_csv_allow_double_quotes=0, + max_ast_elements=4000000, + max_expanded_ast_elements=4000000, + max_bytes_before_external_group_by=0 ''' # --- # name: TestTrends.test_dau_with_breakdown_filtering_with_sampling.5 From 48bd1496509cba522cb98bf908d2f53cabbcb89b Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 23:29:16 +0000 Subject: [PATCH 25/31] Update query snapshots --- posthog/api/test/__snapshots__/test_api_docs.ambr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/api/test/__snapshots__/test_api_docs.ambr b/posthog/api/test/__snapshots__/test_api_docs.ambr index a5f9b394809ae..6ef31c6530176 100644 --- a/posthog/api/test/__snapshots__/test_api_docs.ambr +++ b/posthog/api/test/__snapshots__/test_api_docs.ambr @@ -97,8 +97,8 @@ '/home/runner/work/posthog/posthog/posthog/api/survey.py: Warning [SurveyViewSet > SurveySerializer]: unable to resolve type hint for function "get_conditions". Consider using a type hint or @extend_schema_field. Defaulting to string.', '/home/runner/work/posthog/posthog/posthog/api/web_experiment.py: Warning [WebExperimentViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.web_experiment.WebExperiment" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', 'Warning: encountered multiple names for the same choice set (HrefMatchingEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "KindCfaEnum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "Kind069Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', + 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "KindCfaEnum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "type". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "TypeF73Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: encountered multiple names for the same choice set (EffectivePrivilegeLevelEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: encountered multiple names for the same choice set (MembershipLevelEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', From efa2252714852203b53698ebb169aeb348d070ca Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 23:36:27 +0000 Subject: [PATCH 26/31] Update UI snapshots for `chromium` (1) --- ...rter--trends-line-insight-legend--dark.png | Bin 14104 -> 11375 bytes ...ter--trends-line-insight-legend--light.png | Bin 13770 -> 11027 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--dark.png b/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--dark.png index 8ac461d15d0bbe78b06112735d2d7edc23f82143..fe89947c699ee507d932e63c45c8343a0bdeff7f 100644 GIT binary patch literal 11375 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 Tg7rXxm`?4P=F{>gFW>w>HlS@b literal 14104 zcmeHuX;f3$wr=c8E#z31q9S0aNFhQj5hA^o4H^WBUO<9~g0!JcfIwnXN+~L(bkeIB z5CVig1PD<8psAdth5s~6AP zhNaCjJ>%^r))q#mK7MT9djCMxj|oRE<=wo{@umTBi}>W~Nvo{mi^z9gwNHwVS?$>q z_u+|ZzrntuFE6hAVteTve*5=Icnc$L^uxH__aU<%$V8vwMA7`xeALR)CKHriGD@lH zIJonwtHWH3G1!58*uHT;1aj{mn@@o+KYe!-eE#~6kKpt7!}m5oAm5#bY=S`k@c^?zt@dE2 zl$4z2?*z8Uef224bLS4BFTcsd`ux}fzx{56O=nH0{>S4StNod}^T1$;F}~cVuebU3 z5|2kh)fMa-*(!H1J~6?MZ4VAEII3%E__V)~^!k_gY)DIT$f>D`^dSK&?$P1l;o*p3 zduo?AVN)fF?UW$`V>q%ip621xS4b&$UfXgMT;YGhUH^%HKkClHM#hy;)zw%^M31L& zIlX37)M_@+JgXfoHpDbz2M(H?GrlYvBHt`uriFH*V6c`>oC&PD0JVc}+AYC^8qwQ;0BLL9PNKz&~*Dok%6@=TzEc zZ@7S&Y-yH071|eNmZ;^&%fxnz&XV;8146rP-y z?2wjd-E4g3bm^0q72Tg-rm=$uClk8?rZC}N5!u(P-KM|BnOM#SiqIffd( zEI76nkH14smQ&PyZRmCl?lq)17HhItMh`$|5)SSdiB<_ei7#v9Y;q>~C!`L4e6Zz9 z7DC15dcSWw0;60c?Ni3y?%x^{)YX!x*9(^%+l&C`zcXtgLH=R!8x-V zYLe3>eZkgu=tiiy;ixIAtjoBCPtgyzaijWw+9n>Wz}dUHP3G&lRE79=W%FO*%^2lA zsn*`CS{JxF6iN(_ncTVW$E3tW`}8!+j8IMw_p^yH@lm`KYV64$^V9|45v5^X=1AJ+b!P5vOuv zlnIg&!AH#uxF=;8>7(Ws2pWaMlWsYd>3=3A3EJ!GB-}<5@tJ7Bgzbe5hG>pR9Y0J# z<)#dOOwsX~YKy{gh6L!rz-Zk9XFJz26uWATr!bzaapFYYr2PJN&ZjXZdfjPy z!8ULWheE^I4|SLj?h1Etk2PE~1!k#EOVh!$rIB|kX!#;+%TUZg`s_~BOikD4M==^2 z8v1C?nWgeR!X(loN6JsLbtDxY! zC-!dH^1Omk7Y_HDd}&=+}po2#vDf0<(!2rdU(+g%6COk?)Z z2oj{|8cIK+wg16`%dE4)KjJ&zU5be|TB+Zvk?&HC>Uj6Xk5Sgv(&7WAG_}!knngv5 zQ0!UQhfM1f9gIa!ilR|+YO?Io#TP_6gg!&*XR{u`>RP&NBJap`R>MiU6;bTOyn|ui z-ceKrDQ(-c2APaG@z$1JsVcea-5pP*_N6i(Z8Rdyua+sC7O!mZ>Yqzhj%YdQQk6fe z*Zk^LXK%}- zX*xbDO46EY;g%MybOZ4Fc6J2|`{}_q14($_r)?^)tq+=DzqJsbt(SSa#Y8!7th^At zVz)szvc9WFftCuB_Popr>hkH$mzu@{i#;>KIj`Mc9IT-ar>f|oJ%ivg;Dlieh*1lJ z(7UW!Bx~3R6G9aYiyZP-Z$9Ls8Gh$7hbhM`(rP+H1X!Nglm&S#|3iLjRQ`?;&7qk| zc6pyNvzoi!pg5)gMU+VY6tDD0k#I)RZ(HYDQ*=B@OcayslQbA!&dSiG_%U?ZgMOKr znbe4$SyeMhu;d6d)TK(L`b5(_hPFJ znpM2aztlM4!C4-iH^3yRz}!UJB4~aK9ib!cEAU*DzPKu+@5_M4mgIPA&b~<{^w20p z;Nf3asGTfFREGKA_%roGtH;iRItPVxs$dZB+0!`|D{26K3~M7R*xTDn7T)pbCfu~4 z^`9=RP!>c}h{z^O04l+wf70b5C@X250>>Q!^Hf@dC`fnhTn>|%FX7)`&UQZHQ&0B zG@;q~nXNm$Yhlw8Uehot2Lfy{jr9r?s zDLchiu%vM`dN`E+`j@fU?t;<_jW05X@{pMb{_KQ+LupA=i3F+K8s4akS>E2LV#5z4 zpsK>b=$ffNKVaZLxP0KtP6ZUFrc13aSqFoHdwskoQHfj_ExFU;NlRgZd{p3Eo{wEa zYpVs@@RFdefm1GmLMO8K!U#oC*LPt63k7p2k8nlK5x;5xGmb?_mpqtV&%8KSo8Y`sH8YJpU=ZG%+GB>9R>D!I+89ANe^DbVPvtU0w*ZIX6Tz4| zTUjlB&5D&%S-hs3>epZNshmnF2^?#XJJ>B1BZ>L0RP3coU#JrPwSvj!ioLBKZsjw|8OAV5?)-Ha(RE4%uru_qGrPqs<9yM!A`K!S&*Aai*uSpWoL;MVP0Z z4bN(H{HSc-(P@ren$Smn6hhb#|!$q3Lu6IZ$$mbBX3$*+p}% z^}R&s)kL%WMgSl?m-~{#nqFBJ+T5rKU=M~qS5z2(5jmMZfZ>oacKfA$apc@JKpkAm zz4<(7O-TLjXpYHks#~lP*-nPeN3K^@e6XK;%kxaDaOmrN`6XxELl;pc%rNFzq*RKT zQIk4OB@$@ADf=aWl?;@h2LPJAdy_BADQ3rGQ3HT+sG^yarW^y<35UE#v=lp+3YyXW z$QetVqqS4S{4b{X_=aZ((9JWf+z%frIr6xO*(Os!Pl9LF)rKP&CN1!mARGaSxE@BQ z2wcN^xW~;iURg&-9wh}qKSj(;IFM#lubZkw-Ns_E@R@n8%b%FYrQgS1kY}5v08hf& z`vjTBW9j=eQ*z?5foppOL!xu=8LqT)Y#>KhaD0T`l%#quco^U+U<1707^D9kcEMJt)!8mwaZJF9a6PD{rd{jgNZdxCAVkt z5(o#+_@44?YeW#sbK}U#acM0xxi&eWbG_xBu^gM>$hlG>0#q+1?u#k*G-vrJoUrL3 zsxY-z?TU9z2;azPD&tgb9VKc?ckM3CecK)DX6#&*?e#y+Rm4FHL@A4I19xV8B+pUE zC;++4 zW(HZV3Dzk~lgj(>Rm1*?}vbH2+I{g`4!)(Rek7G?YJ;6 z)^F$JBt=S7#MJcUhPm~$+L_N~p3SY(nYtZ;7SfM?kgrV<544w=(KG6l*DRMMtDTu9 z3nNFJE9Y`;hQHG3nTu`Jt|qHr<@SZnmW^p2RW?(1i5P$qhHr%~#%dV~(zI>h6d|X= zyJr>~CAzVMGueOk4bFcCfR##6KTKDseZ_gn;A5YJ)0`Ene`{@NuXx+8=7Qe{_61(Z z=R}w4mG)}RfnUB2RC8-|@XIu0W;*6rrA2zp)iKklsVNpp)b1*sOexTtkXqSZzkY*l zhbwPLnON+%W(lc!Oe+p$zGSjh+;W_g>3L7jDY z{pXX-Vi^Ht1mb#6V572lCU%yI_MF7xC#JJ@(Oq`^P_cS5HVtz{fj9F1zbH-~If1lR7@zJawMLH74sdMvi?QEcclj z=B=-kd69!^*AKbvJ>Ut5wDxc~D7|h3_Yi|)x!8jPzAJ-s$Sdk{hbrf^ zk3MDw_xV}IhMg32W)g_xiVsB#ORj+Q#B$KAaE7{C=AW3}AmDU@J<$R%b3FrmnP3>h z#Btkw3WfZA^P2d04sKyoz{*Ur7BXD@E2jz>9E#}0P=!s71?F2*jy>Qz(=LMd@u=zk z(U;L2rM2c@8Q$1n8~u*T%Hawt`UaCU=E7*X&%W>PMuzsZHmIr$^#=Chk-AW=lOIyZ zK2xoH&+K4i>$QB8Qe|^TV@Am8%f?A91_C^jr3wGNW%x}JD{x8^N7YQFaVp1lRm&Y} z&kiMk;!~q=ogD+EoW`ABd}Ojp1!SnuMc;K*9E=eRkPb6S> zP#F6-h40^w=W|_71yAPdhc2NM&mKm5^2gPY85qf>iHQkyybl(`?4eQ$XJHW;VL=x; zeV!*u74;M|GogKEMIf?je?4KtZ1!c7N^tYSQN2y1>WJ2DCQURVrD}fVMX5#R;OL-# z?nGw-IeAmnZAk!XWk|8hm2OEvt@fWauV83Fq0po^$=4>ATqPk~ilEAUnn|P@A6NJ@ zb9qV;*-VHdh0K(gD>3Z)Ziqll7Qvr&w6(nsun3g7!3thBa7!ccd_0ULZ0InxwfFF( zXYgjf_9a4Hr35W`JL~txlXa>)n zb?{|jF@xu$mCNbI5A`dMt_Z7Ne0t{{Okd=!PU9W@2FtKgu>jo6pxnF1srJ^T<8gZP z?GJ6>rLe`x0{WArn_z@}vy3s4TSKqLY~X9{ujW4W#M06d zLS^mOQV;W_la3KxH0gB*>m^#3#Z0$XqpvPz;jO79$UPNu)pF2JL0f>(c2ltj?h~{} zb?@4pM@h8(!M9lV6 zeU*wRyFIxyVP*r5X4`h;uM7^g?hc;QM5H=EZ8``%p~9&ZvX&O-5B{AKUi3 zHe*mgLYQclXq{?m{_}|whNG445i9c- zj}6;FZul1!v2R-!l&j^}dtsIZu2hLa)M4x% zB!}cptM5%%0WMwH=Emy*6LqoQi{8BeLwoO_O_swwhr%0m^S~Z}z)eM&55+&G2F$!gunUf%RtZFK=3x-n0d}zxG`fxVSawiA`v!~jS&p0 z!aA}rBxipi?{^pi6WrN9YH1iL^ip$R-EMzll(~OpWPH0jriPs7#T5 zJ-UlI-3e2BuC($s%JdNSO3ypF7wlGUqy{WU*jd`PzVgMSDqv{Z;rMfvD1HJp&w+@5 z=K_9eM{p6w#SmEGyMPirq`>-eC zw9yN?Wd1;|nF%-seS{=dmZ>0Bx-vC;Vej63#w%aNf5~(EXlC$U86?xSs>ho(u*udD z>rZy8<1aryxWZ+@NK3{TZi2ON{1J=x{b?Y$*uWV`R>g-8r|@NSh2o&p@AtQx;Jb4y zx$&LrTfUTf&<92gK#6X=)J`!~3cucU+`PHD1+y}Z6_@v=1*{j7@qka`#z*;PEgC0) zyfh}?Ctk_drcx%R7V7uBFq*6OJahLqs#VtGMis$xGp*X6@wT9H1YzZ!KHCKb{!`S3 z4L1Pl^V*CwU`9aZh_}u(rW`jEd2tmq#n4v{JQwg9gzP4Qvn*eolA*wk&iUq8YoDhDxs_h)u@w~ z6w&}ct^{}9B(MJt&0>O5(h@$CR!Ze%;vYRCI1u#!Jrb?3c#CR}0e24T5Txq*l|0HR zE_rurMERjeehBmJy}C?K)cYB~+-AUKlLdbc?Qn1ri}JjHAH1hE+x3zp9g|PTjZb#x*=gX*ME;w=wBsy{TBfftwYPG$r%6;QcER|e zHQX%mBy9^S6gUH*`n9w(;eC=Q5uZ&7=y)gO&snDH7l5#xBSHk61nUUD?#mm)sN$8Y z>P9Q8aoV0V3w7~mEbN7nh}+!EcgWZ#uUv+mX?0Y`D@xW$b@B%9{h9h0PO&Ji4mQtw z9uc(KrC}fWr*#B}JcSX=CRd-61DP(n`z|CW-l^Q%5rHuFY#TC-HVPbbMK;rX8QFXt z2iM{$d3>{)H7b4$M9#6*g(!0Pnt@^cvrb_ZgG=YMp?jO zpr*+UV~Fvc3%e~nO9$j$c=H}Ui}dR*6pL2a3{Sw7)$!5F2T-@t-3{1f?$p|-lrsZb z_~pSyC>(dj!>y1MtO9EJ#rn9Ty4RifE|auWDi-Tjs%aPpVz${l9;mfc!Xc0`pXYTz zYG-Fztfg3niJr8<#Fgcfl(9$6qITIciT--AZNL*N`ljM?y*#8R&(1tm*Q*B0n1lB(0CF5DFz?HPZ~k3EDvLBY8Hk~#`r%P zQu?BhCZ(*egKY9;YBFfJeJ_8=tcUCf$ z_ltZ#?g|*A)5)#!TKdw*ChMG6F}OdSg`F+L_wg^zuD8EX8uUD!%%d9_p!o(cC#{F_ z#?v1G?GBl5m;6z;YhYSSS5@$o2$Ua^oio6+b)?98^8%oI+3^-xy{k7XDKSqEm7LZD^pQ-=6+;#FVNt({X z`Ho#UBVPUc#Vkvp+r)R8lZJ#Hoz#;q75N}R(hd3jzvE){XTR22!~3L*mMuxdugsiu zk$F~NmTS0#JnGY1$jsxdt(48Eh5ut5VQ(8hUg7 z;o8opNT45G&B=HvE9+-K_MwP481l^XVQG!(!)J%|yv6lCS=Mk6{%tNv0I(yYmLC(l z^A7S98`IapJTYD!sjI0O1a(67>Z{D*VD2U|9*F+>!q;)ixLd2+RIu08pj;X$TQV)x z5;4r@Tt9`>5iSCgcnF^)@1ZM7PnLi>ih0-H`$#gI)Fdz z2=>UHUG)i@I4>F=KpO`_&-_Y{2y6%{t2mAp?>1z`k@zq z(Lsz&89#iKt$F?PYel#2jg-)xXTXvFxh3v@$I}?c9IS^x_BF_Q0sa>|`@h)~@bB>0 z-(LE^Z_fC89R8ISmcPC9x0h}L#P~P%_xvwMqrY?O-?{Z)>h}9PRsNkS|4x;lX8P~8 z%l>~kfqq4pbMpPu_4%_sEiEksJF_rQz}DM=`Wbz}o=(1oKp;TR&g}R^0irb91LbtV;TGs#x$bC1j-dTVkMKWk=%#9F zXgC7}=Z-F;=={T!0Wb5-0pNeuaBxk+{U|VQ3wujY?7{e^Zm`C_b;WMah8s{S!hE<# zrt~>n@$&K#NASIGn(FNS2wH-HP@+?GRAxg^b4v?v$@|+DJ8%RnJ}nJ_wi$?G0%#DP z%z3bWXgB!wUlg3br>y4UX$0T1XBo@Y1M3#Ks80=jAFd~>hpUyYbIa|iwq4u6lEX*o zQ|RiBfQpVkn=4=*ip$K~;_P^Dh1-hD1-=+}@bf{Vv*2cu=*UkSZgea&GP|0=*WZ{5 z;_m~P>BeyhXf{hgIbainJ1)U=hf=9kpc^KWw%h+2kR>v4{;N|kSvzxqT$TUaD}-Gw7b8-Hn=s_PW@$^#)+sh_>L;wgrzn_CwB? z$)9q4+x8Wj;3N;id6TgRL=EMAQlOGaa2T`-qdT-AaGktDdGWlo!SM&RAFYqQ%JXqM zRqwOit;ou}VDPO))~Rzvd+mP?`FL;9dWXAB%f+|1;!l^y_mvG^*YUGGy1D9Y;rnCv zKOR1I+jnH))!|nk&h1k}-D3H0Ro=~)IzL^DGe!=H3lr?X<$ zXC4X&8kUC)i;(^8KNWvkUM^!ZD(vmzajQut#;}=fI#YxQe$bOE@a9cO%G%|LnK4si z<1>DiV?au6S<}tNuSZ!@#Rsb(sPAkc0sr!JQSVWZ4h;xbuckGPW z2aQly%c0U8w6Q~^)KsylS@YvapLQkq)0o({C^!3{62@r2_~bI3!!Wh$sf|)@ZEij( zDLaNW_{+9aZ?|o^iRa(#PFKKG=!l1VE4A`G_77}%cPG`UaqMa`fBji!r~At*7cXYh zU#lKzYU1pyO=-PG?3%fDHGE{z>S*>g(PDD*iQVDoMoteQG3JlH)L(Q>xEM6c(xe4L(il2~XgsQ-P@*p;?tPlJkZn)}!-WVy<(37SaUv6b;yUU4?$c>3A! z<~iDa!|7BqSucs$-P_yy1;dbe5rW3&Y`%#vug8X3bQ`rz^AbCkw>gjLTVWIjsxQq2 z3u0{T;-i24DZ0+e%8I;{P+t5gSv#AC#b*2Omy>&b^}~j5T5#R$CE#p{w9G-nMX>b=Q@7pzF?6FhjG`2(-d$hpGHRFbQQu0<=g#r^s0sD zRj*{&QFpKp%rkvz@|^V;WDN+Ubw+)|*;!?!#cL!T3X;0~?1!rTJtfcQUEX;lJKg?P z8t3ffET&25g|4yBm)VS|B!YuQvOX_tt*Lk|{ODuq(IYT_-6vO8E<_Pol|LO3D+||u zCl@bj?{+K;bL<(weYrgN;Qa0Z*RX(@Z;$p+r6EO{*HQWFy)V)e4yhaK&qUMp)7u>E zrNDQuPlsFkTS#?$T%R}E|7Bd&yKOEH_AVBlGVF?P|MH=i{#EN#D)v&ngH7<_H~fob zjU%X3^NY&Zv*?94_n~d+N{aaf1%!P4Y80(y(>6ohTlGbH(AKBVT?s^}rh##ALz!*t z)Ld@H^Ep>VZI7})x_ev-^79bIzE?Xw#oi*?p{Mi5uPk=l-=vHwLUX(JCaB^YFF!w& zk&$7KnqN&CJ|^?nIR*Y3$jKvCT=>zb`!6Y`-OnmdhONQbLb=p^TCW9@NEmiK_S=g^ zumq+96Pffo7oqsgehd`q8T5K(+1s~)f;M!8|A1}y%Dk&U;Y-8LoiWxnMvu1b660bR zi6CxVatky}0^I#HA_9_mfeG42#HNCd?_MJP!5%m$U&aO^< zjgH{v+SQzU2KzPhkny>_=~h2}@h8nyX&rIr@lfnAk>aMuzt=_F*e6^1g}e@m?hlK8 zB@}M8QDutd0=}vhemZ`P9~*nWyCu zdS@w}Qo#w0u3H?=U~}069o^k!H%B|e3S{r8K&F$c);3@F((|p>H%ZYqNQu{2Au_SA zMjZyBKf_2G1)22(F22RVLmYyru?JWQfh9Ww!NqN4_S{31d@0T0v78bkn0;afK~*c@NWN)6OJ8$m>$`E$?Avp?_>u8SXMu( z{_y138>=H5iwfuR2E`_4|7qcUTf3f6qYcl0*nRJz-}>E9YcD2>BSL)--z82WfUL z>*D5-fa|gF?uj7PH=xNESY-Syi2w9r*4y9CZlL@SvfcjhKZ?}hC5!^EgRD)mr?~e; z{pmZe6b9S=$L*UpKJiMavMGR?xy&QI4r^DnFCo?bjsRk-b;pPSKcPwFq* zDXAw8?Rr%A_9E)9jCS~OoJ^?xSDyC2bjN?3a8nv=VoU|`{zXa2Q)8lw#vVvIRvt6^Tu7~+RlFs#krbedWY_xYnPoqG^`9Rne~s z)JZ-}6!+>CfT>*0?do*G`@e=%kmz*XLMHBB4j?5Bzl%|4*Zu zvYn4VeD_hdg_s?dwP`>gC+|c48qcE58)ff({aa2L#a({Wp{V;{@@Lr{u3oaZSorJB G2mc4UW$C^E diff --git a/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--light.png b/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--light.png index bbb59b784ba62a9afbe99034c94cba3b09e5dd92..b2c01e25a4548a4cb0307467d8e4e0b3efa56bba 100644 GIT binary patch literal 11027 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 N`L_D4{F`P^{}=Z71WW(` literal 13770 zcmeHuXH=8v)^;34EQ2^>VGx0F97V){iV&$8DF1in?_E%yqwH zR=-2C(P+x@P~g7fzdaAxE&j*#M4Klz7tWu0cKc?njk!SC<;m8H*w-iWLKDlrW$gU< z)a@MSQ(K+S75?`AeE!|tXZ}dvdVkBoEn7|>|50&)aOY#R>G>aChm84JD$J{RVly=w zFe@G;&r}NC+30uJ!?JN4tx6AmK~3IAZH9ep+VCR^^~aVUenFw`?%Z@7zBsVO2L3&} zvl{+=@ax?TDAblSsEsJp&VT8Gt7R?bv2lbVS4)38J3DW0`gnjgER_G2$GiXX<;$;M zB}2m`TzjSFjmV~NMUryOicex``PW_@UYb%ma_m@7i7ni!dT&qui-Mc$74&SQ&uNJl z!xLRFZ`!EBOn+GNx?sn&)6+S3jr@@yl zVwI_PS_nbxgH==;v)xFEK@#{na>M6 z*1KGb=^HF8Ek|>Wk%hD#KD^L78*&~m{O_{TKQU{5_>8~JyE(BoS;1=x$EL12Sk86D zEbC34hRMogqaj<U?POIM2 z$UR*xH}cB9hU)F$^Tx5vZ=G;t8k{e~L<3z}Sy{%&qs-KR$peq~d(`bQF2eP4IxZ`; zw6(Q$F#_3DYh1Q<;JT#Gmlw7T5e<^Q7OuwG#$>4zH{U0@QBAL1`$X|y&l``?> zYiJMQo)2H^!q{cQ5iTiRx#r{b7|-?=>*$`Q=4O)L*C#5TW7n@=C&tD~`S#tx^_JvT zy$cc5JZ;xR%+9OGGR!tw7;BL@dF#U&VM(vmiOfvmW>G1M`_Mac*YfnTGQViCg-&^o zX|}ngrH0Fwd`6)IiNIg6tngZ~kUxw<@#GT9o-Z)4$#d;(K4fFU<31bu`|j?3pFcvR zb*{)NV9JJCB(@neF_%W#{N6tjk%;Y1^pTgBpXo?%E+0=_t6~R}pFbZ|oS~FRX#`N_ zo8)BEy{Ee9WNWO1MOA?JaDBLe_G7R`m;!ZKMQUcdq1J|=xjL~-;>C#lDg-{y#sA=R zPx0CqhE{&7@mVGbzxqi_x@zRvW#!c)=B|tayOMmHn)^`)wWI=BZA5eqk+`0siQz~ro*B&T_Zto`HvR_BMU*udYf0(`+k)-Wi1sas zG5T3KITmH^Lo=0ZD+`O{%F`rDe3E$EU%#BV*_C73AWaA|qFFE2Z9?58hjyX)ccK^M z7Ama#riqn;LIbNtc_lWwZF6>mjun?Aj4AU8a>{o$t2{2jv)ETwu_{ovrT9$uT#7!d zlX%LJ!(xO8iw=zS@7=Qp_a%QQ*|W7=z+b~QPXw#buc3S=Kg*^sg1e2zVhV;M)O;pC zzcI+v?ab68VF~!@$bHH#Werk+x0)|pxKKX#>6Mo6OrJlu-&Zh_r|QFs*Y9!6Oo3zM zOlFg%{70f>(|wu2nDo!Z&fO7`Y9+W{pHD9@nEpbL&(KZjfw%YX--qQ9*DIfE*}q7# zicW^ZJdj@0>sqPgHb5yWJI#%hS7D5S7pk%HYwg=oElo_yJVu++FURFslowP~RKVGk zD`BT^;(PqG9p63Jsz8~2w?TOSQ_Fh7Y84=F#0D`R!dic0q|RjQ`bxK{^%S9HipxA+ zFu%IdX>agT5hL2k8~p@HGr=0+b+VVP8SR)v-|U#kLw}(av|iuXIR|d7vUAt5Bu$HQ z54)}^+A5u#S3b6{&>-o$)&`!Qp%L<;f)Ovr9&79`N=`UoTd&k@5shZL*NUi37a3^3 z30~t!2hG;734%2_GG)G#ldz{BLOE{T|J#el{Ao8rLG$Rk9}a~#vV+fp{YqoX5CzT)<)J^PfL zK4<78m3xlEmRdz|n{uR)Nzo=AO}Fo{Ga^VhZ@F+)}v2Yw}HI zm*!V7-xC{9gK}v%`&Xr{OcFb=`}{t#f|)B9*cxtl$LZ=?=e@^Tz|A7as`e(=xWY$e zQc}7I`|AzaeFD=TPIm(CB)L||n!C0?uX%nZL|>as;|F9LOfT>$-B$6T!a)b`9_8m_o5+f>gE)dDc=_xJz- zy&$geE_SV8)9l9tMb8aB9EL+T|8|=Om&YlkrJxaHWSkAzEW)2=@^RnVUqoX0%VXT+ zIPP3OM<&_*o#q-#(R=cRoVGOPQZA@d~qv9?ZT~>dkucPCHv|zbGu+9|pAJH<eaGzgan9BpURCX5Q3C62!?tbP z_`_KKaF@ATOT8ArlKWuw8k?w~zj%j&zh*22(>SDO+L|U|mC>jgU3U|GxJyFmspWTe&7f^&M zuD!a*T%YkRT#Ln2WS5tfmGv`6<$b$cv?RShKiIlU6Gw8Rt@~)p#t~p4vl17^C7Bej zCAu+pqB9frRsWYbsn3b^T`WL1*N(JC zfOh`SV`)5^C|g=s01n=iXy6rmDPK=~(&O$vVC3 zEws$nYawrLkGtF&`3&UyN<1z_?42YnKjHJy!{xaLkpC1enrG5>S zD_Dg*Hf0xQS%U1dkZM|}KL6n$qp0gc)Im`&AWJY*>O`M}c>my0dLeAD*8V%^m4##F zrhy9VU-4zGc9lAj>cRS*G=d;BG!&4xuvInNnuhoH_jm5fQ5jG6G|DlFLPI(e+r4`~ zfj2h}seF7bF%QkPOV}`gEA0n__X7@qUH$e7((O(5K$WL-F2n^q2Ezla<;-*n{CJ|_ zW1^Dt(7T7lzA?EpKx)XP%8nf)&qFl%4)FkRb zRum9kCv`k@kDNzi6%)Tk&o*|0b&!SWS#&sFqJF@9ql_5ZtO#;8>q3jUUwe!50A=OA z(Du||4#U#7e<{UxKo*Ve9}xmFG6X9Ha99aTvm^m;JbZ>Q@Uf0pG`AORb_(_bR0|kJ zAb<8Tc4UUix1fpvU2!(4$Vg)r8`cU64X+I~i&pg=l*maa^#kw=bNi)|(`BW!&{R+} zc}Opva{uLw=yhFHnbAFYR#mEND>0iz_64y6nY~#d_URQ~6CHg;IAv}iB*$)`D}fIU z$yQbT`8e9{y?X~dn$c@O6W}-$y}q?KE6^xbRROZ;fZMS#F_yq!uxpIA9qO~y#Ev@+ zl5tg=rs8cQ7+G;P8q0$rQ(d{2Wi{sB?_ykznt^B7u0YAp$$>DHngSOAvR7zY%Mz+K zw(_@|5vlZ^X#Tl6VWX(JI|Rcktw_z;>W!WXhKZ2QISS&k>G<{4rEi}Omg3KxsY!51 zE&rq^Y&V4g^PPLV1K{s0XY(6khp9u#(nz#k1duR5>O+SPK|<>v*@GR6w^ddYqTT-V zk|ljvUt3bu>$Nf2N?AJa-By_*H>PH~*ViX9fc;)gL|Idm+t3*d8wiI#?6p2pnpDM} z9Erxv6_imZ6x|e6om6!dxdBKJKvZ(finCw?B+6-q$8=bELRfN@-Rj+qJK|5@`C4{o zxWM|))&Fy1%_apErZnd`%{y9COEC)RrC6!&2d1MDCQL2h#HN-jA@HYvbkfJojHceQ z?sq&eir%H{uFOm-p4tH}2T2x5FOq6LK@f`tTK;W-_^i!s7sL0Z;8!OgGbAcH==%Gw zh!U1-`Ri+K@h1)j@{7z%T_ZJDzg?Vu8eJ(A0DxWWb}vt3t2(42VuySs>sjETS^x1A zZa*7enw8}=KhhY!PpN5hVd96wlaT4J85xxnGr5XQ=2iA}M!0;xxpzCJxhwBlg`wP% zvwg2&X5X^dXT#46-p;M?|N8!t zDb*g&tz<5-nS|}4mXI-A`zz!vD}v@7-(v>+UO`%sO|N8A)wp}Jfo#kGj$D=v2EY%O zz~EO#seV@ zm*vaT06zebuXF0tSy6*aQ{5QHj$7a%ah5&|1;R>mZuyAdcwlRhr7x~fNRD3{H!5xe z1u!{zm{!F^J6vg6FSoJFHXsnK{p*8;`Z=v4UB@gcddhp@&J66NA?- z238K<-#$~t9caTFLFR0=!mYKR6NSClRRJ7D+DC4JC=-;@)~D}o*oct%x-c;Z1=~br zoEfKs#G3iWiWo)v&ejM!u-k*j5*!Mm5Eiet2#;35rmopnN&;)hCQ~b*wlUCEIaFy^ z5wR87E3U|Ox*|mM%V?J(f6i$@NKU)E4{uS$=kE3*)2rD;L)|s*%V0uG_p)>dz1g}I z&4xgP0_e?~H!1?&0vk-;=4Z6BvckBW+VGcnCs1J^K)%yG-oRF5(|g@$RXI5>)ps{U z%jjtWq_Zog@*1OMGKsMD#QxWPa3;hK&o+&2NJD5+#0-;0sPviE*Mw%e%$IumENde>pihK|>G43e>VIec75p%d=1w6FY!P!ZM!=?3!KH zJ9X92Y8D)t_gM4N&&Lo?dg?v3kmbCM%FS-&S}Lur8XWFh&7@)5E1mi)rUEd_jm)Dn zs@VbcESH?I+Qyhpe${QJwXyCxzGZTvn2XeUO-)TKZv)^#8zJkec#MGmL_lsm_A7Q` zb&5>R$>9}Q+cq{gS3)_|3TblduEWHbm}1xd)%@BW&Ff!TzSM;jh&2S7;h3j;OWB>7 zZ3qGcdky%HPXj`O<$`7~cE~}w1r1BcruSgu%^-**+$bl~iB;>EBvy(tt_MO*&7n2< z-Me=HnTr#hGNp}>+I*mTghI>M*cb!kHX~yUaOj-2Y+#&w%G`Gw;JlX5(NdD#8tK<* z&%b_>7!%;$_0;GQri;gP!r~P4WJi@;+XrO`*~`!gy<>~e>Nz38M2Vv`L21%GvvVN*j5?uENA*AEDcCeVJ49RSXG6NVZeY*}E$?ilHKFp z;~S45^3U?*oEmb&e8+!XxqDEyK^;_r%9)BO;5j`5GN4WVVRK-?wymeg z(Gx0V%R6;@ppN$T{DFjcO0LP&Tjw+ztu^Z5 zpW&843&|kzSG#HUgw_-_ZZy*ixS*J&*R_TSN%LYSIzR+=eL^pZS5#EA2o=VD%^<&- zSK+O=4^Iy;{+!km7L^KGXu*`aF{vPHL2MsUfKbp$Qbw2dgkuIw)>=KmNP{J9m-9XD zB%vvD^%5X#u)qb3uU)%#_3CWBgqsDhbL1w4-k?_mz=`Pqm?54=%d#<>gu2}tl+OsDbRTH#EwQ8QnJ1oe6&0_To@w&_LoM~RGF(xNLifeR|}&< zK}_sG_>7K~|7Z-c0}3w#Z7_8p@Vbl4x4`Nkw@CpM&W|>Sg@#%Y)|U{a>z=UG2TeYxR~Ox8bo^k@&r1)fu%tsq*r zxTpaD?qJ2jD4>_pk9DF*62YD ztw|U%9DXrZ`F8vBLziPgJ&cgX;`zK41n2E%rK z`o1#g`KTMP_$`V)4^`YzIXM}<)MVTsRuPu?H?@EFQ><8x50K^0oJYZazM2{zG za4P^KC6_O=F@Onx28Bj~2|dDUjj*)KklnE(N8&+FV=)SmDvH>#OHVyYf3mN9;V*H; zf<2pe?2k8xXMV1`aT$)4)l=*YITT?N#E!WJX+&qqB(|zfLzhCFC zK`J%MHH*Q;q>lj+@6NNVIJdm<%KX^C}ZJ^RR6IA;3Kk-*8*e}6xeCe zy4tegQW~mpHE;@udZn!TwuN;IBwH3RfUXMA)gZ8NuqY;RgXY(N9MoK~Bf-fN^&vI% zl)8}sXJ1LLe}hP%4n2}6&?_{U1d;<<3e@BH9Ik|TfIEGBQU93suLfucY*9UKS>r*h8W zW+YwMd6qNQ>x;21ItlVtl;vpirRiQS;%Q*Z*kh(}R!?M7<4LqT95=iS)S2(Wxn-`z zx96A^5IQv93%hzPuMf$>K#P2) zx^N%kPat`yPR!aOFgs__!?6NtksgwLWI0~2#G=Q|9sCabD^A{06XFmcC5Mv_DCrWK8R9wa<_cXKmj}riU~AsRAC*g z{|`ybMvyhz^KaBb`3~xc5>)N5IY!c3q=!K0*;rj3tO;@xNTu0%dDQ8WUU}eU_cjXK zlca(dKQVq9Z%qN2e%)HIWX)jt#&$8TFGNE=fB^cKqE^b;{<8GEaveGevYykL{-)V( zDyNv(aZXg@GYGX%9LRCAFC>8Ac8j~&7c3vC!2z~(Yg!K}96)n~!WHUBTPSzgjKc9E z$Iflrw-;g@M>B#7wQlLD&%K8tPcOB4%vb;VbuWjc+c+LpQRWhnvfo1 z6|C`t_k@ws1frOrJ%O}6G^@rEoq-EifPQ&yhsrIuLEFzq45_2Leo$9{zj4oq?h984YZZQnW_R54!&!Gcjesz7By&-Yn&pUaCo z!}Sb`mz9-OTdD>YM*=^d1RAId;_r>xM}Q4{&^A@rl!XF4NL@+*e_(ijAnc&~_ko58 zX>ye<;IkQ-P^k@rgx&?G3^uj$rW+!303Hf>*}~IvJKn%%fti6~QfAl-56H_#3dku} zB4mRbk2z~WH^vLM4mU&+KnX)07hyEdpWBRlh%((d0ME;~A`4de^f6Tt*KOJBLO<-i zzV{n0ABvvuT-2*p1as%mT#ehx?`#nE$G?m~2>PhPE(m&j+0GJSLM><4UECFB* zl3^uuQxNQ1U7B)Z8$jD{P;OYxefuf6%;lDZ>plLqk4Rgy+Cc^(RR5D6=RfJ*{TsWe z|NRbUhm>6up;lEGyaHPv++Kv<(D!0p)4DnV-d4xs>dTP)FRt$Q`>L{|)(VKI4Ea9%s(PPK5l1SU; zzxN{kU&F%NO1WFpK9MtC5Uv#NO*53n1w5=5F=!~6cxKS~NtnJ=4i=hKuvKeAMFt&O zl8!%2U3s&Vq;Ix#Epgd?5_>#6C|$Qr1a3<>)T?s$F@GY=OdR&@)Z4m2-C=0Fa2^C} zZ9b?PJ|M?`YKoD=#wqrt!OV#_sA$li3R8neL6OMQ`>V5?1&!On_qoWf4G>jM zFaG!tXplU0UH4Ay%a@@k8VyQkog~N^ciXz-R?+Pa!D`{4K$f{BE`Brx*kg`kzgmu{fdL}^K_KyNsPNCZXlaC*_rx=7CN3IgTSs5NifB@vfW8}( z8eBLE4{MK1E??!A2+W^jTTGd{*z(`e<_THZr2)O5Sc33tXlx9FGZrAxgMbf0JnYO% zz+Y#=;3u);p_o+}^crET*J){z9%tck$+Z@l+n`W*&`3xCEe~X45Va~nBj%kDAuym_41*h>(^KKmVq#*p?>%Nh@w+4c7o6>D zTkDso89F*Vfj2i_-jJC@OKOVE#2aS{T`qCOg2XGW>UA6X#-Jj9ZwTGe(P^2aXTxx7 z8O+Ge&(Fum8B>?Ph8?{4*Eg8G)1DBC_LoV8JTTehm9JS_w4aX`<4ETSmtgZj`7}vIjiXE^~+CbXWK7q+x*)R zhKX3mZ}zV?x%|-j+h6+I>SJF@HvInc&pKZ7-fkUr53h%+4xF;GWis8oRg%Zm8!Oj5 z2NqIcZ%G(8t8$O@w{P!&9noksD9p%o>r8)TVWD85-O8+^z5VLdtL`u)^Wwz|m`LC* zE_%Vs$0zptOP75Pk*Gvkh$zbF_=}bEWqh4w-qdW8^&>Jtf=bx$MEg-Ru)_o_aY#i) z<<%=>a6-d#?26NDU%97H&*K9_0Hkj3p;0 z?>zfk6m${JZF!NAk&&K03I~>(o7>XTqTmzccu8G~SzveB+`PBFy&aU*fPjFW-d;5| zHJktffO1ap5K1uG>(193TCjfD<#}V}>+Ewm*7`}WrHs-K&=NsLU}3leCZIll053yE za=;Sc+?F(aFa+R%2e65UJ7G=$3*D2?k)KCkX!Oy}eG(GQ&CLb}0nrXTn4Fx1p+pO6 zkO~${%gUOpiy$9mytUQx^jw&obq@{>_Vwk$RbW)#)x`-%Kln2X)Ro2`SGRN-hY#^c zwexjDB<5plf&BEM#MvWq$Sdgz?ZAUuC&kZ}1#(@rv>HZI-5nhrp}T2m*$*x8-rio2 zMw9kggOft2*xK4!BQIoz)6Crb+!heBEul>|H{8HwF`@%<13I#`OQ1an!t7&F={y*= zfdj?iaFNnjK6w`TQ;Nea&r$o&E>Bu4uh(5Q7n9=ZwB3hMG4SFq&B+BOzkc)PQaCi%xm>OuzHQ}#0{W69x4-O; zt-2IR&36VM2AV9;d&?N7!TJ0eT)3IElxf&bU$SJ#U@vEnum#Ig+1hxswc*k=-J{30 z5Gs?6#*Oz$OY0qup7T?G@H9ZFqOwxWI|2dn9|Lt~V%=z(Pn6L3x0hLNED9~Spzie3+a3ZYl@n3RqI`}G>!ib27FoL}r8@DAWX1;mj z*b@tyna#z32DNJ1mtR_?VKl(Dj7vT~%Nz9!)!ZT%`#^#7s7*7agbHC#gCJmYT_b$Q}6yMDx z4cViKN%tC9RPER-e0Rye5frC|5mTygbhFD*JTx@FB%HR7@a69Pc%gphi zh4GNqjS#r!Eq*(};jP&Cw)yTl@KMnC^5dzN_bS6gp#|)|{Xz31j_eN~+)pNaFtLX9 z>=R9nsbMhW*Y2)2ZXD*|4Ni*PHDI3=+l!BHjDYW-ewDI;AHSXXPA`7m^uKu1v7_45 z^zHeZtZCi}SZa3o=O@s$HK{Ok6dv?b*F343?79a&zY-S}HRPu*)1Ote(H)PksjiOp z%7)KvDt`QtGd?bsX0G%Q#XA%KCx_#cZoUP+5mXKgkLe8gl;(f;J7-kw!K{xz-xH8@lEdc z{|R9l8yy`@vVIyD#~E;I`n(bOBP5De-^PD-*#F!O{%7CtB*exeV)aZ$LXnMJx}bYL J@2t)J{{pOCRM7wc From 709278c37310a2e3646b703701a6d79626042758 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 23:54:00 +0000 Subject: [PATCH 27/31] Update query snapshots --- posthog/api/test/__snapshots__/test_api_docs.ambr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/api/test/__snapshots__/test_api_docs.ambr b/posthog/api/test/__snapshots__/test_api_docs.ambr index 6ef31c6530176..a5f9b394809ae 100644 --- a/posthog/api/test/__snapshots__/test_api_docs.ambr +++ b/posthog/api/test/__snapshots__/test_api_docs.ambr @@ -97,8 +97,8 @@ '/home/runner/work/posthog/posthog/posthog/api/survey.py: Warning [SurveyViewSet > SurveySerializer]: unable to resolve type hint for function "get_conditions". Consider using a type hint or @extend_schema_field. Defaulting to string.', '/home/runner/work/posthog/posthog/posthog/api/web_experiment.py: Warning [WebExperimentViewSet]: could not derive type of path parameter "project_id" because model "posthog.models.web_experiment.WebExperiment" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".', 'Warning: encountered multiple names for the same choice set (HrefMatchingEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', - 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "Kind069Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "KindCfaEnum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', + 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "kind". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "Kind069Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: enum naming encountered a non-optimally resolvable collision for fields named "type". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "TypeF73Enum". add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: encountered multiple names for the same choice set (EffectivePrivilegeLevelEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', 'Warning: encountered multiple names for the same choice set (MembershipLevelEnum). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.', From 636f55416f7d476d7858b0b27bbc297b3b1f1859 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 23:55:36 +0000 Subject: [PATCH 28/31] Update UI snapshots for `chromium` (1) --- ...rter--trends-line-insight-legend--dark.png | Bin 11375 -> 14104 bytes ...ter--trends-line-insight-legend--light.png | Bin 11027 -> 13770 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--dark.png b/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--dark.png index fe89947c699ee507d932e63c45c8343a0bdeff7f..8ac461d15d0bbe78b06112735d2d7edc23f82143 100644 GIT binary patch literal 14104 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 G2mc4UW$C^E literal 11375 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 Tg7rXxm`?4P=F{>gFW>w>HlS@b diff --git a/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--light.png b/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--light.png index b2c01e25a4548a4cb0307467d8e4e0b3efa56bba..bbb59b784ba62a9afbe99034c94cba3b09e5dd92 100644 GIT binary patch literal 13770 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 J@2t)J{{pOCRM7wc literal 11027 zcmeHtc{r4P`?qqJyM()2MTkl_A!MD_xaR2S&eJL1x}oEhxH#%6#-FNw_&5<1ZDArMKyXlykiuUfMNju^EWERy&hx4Mcvkr1KzmD0 zoMC+W6ly6%^?2F&^v8_n&kxtNk;B8c8X5_g9`Rz(ox$PU^>O&N#Mr?^SIcY7kqI$a zy75|>Q4#~)d)bRjbibq@di+?D?zcBb=??eM{rM*c-LHSq(;c#=JAeLP{xdP>x`jUt z`}wnPPQML4YOE{xmvM}YOq}qU(8|i-%1W#LX|wF_S;j6dMM;T?)m6U6CL@VS!n#J% zj}`t>ep!-Pb``_R7WI39lE&Fu*hN-4M4 zM+4_t9E9Y$D%L*qpcUM==^FwrFgd+xIF+%DPN3Bu6F6egq5Viz!K6a2W;RN$b>Nf# z+%4;gh0@+uhaTR*i%d?%qXO+b=TcBQ%jjWdY$eO7YL^VuW)Z#W@1}*=JSVuLg>LOF zHEh-LXGVQy-`zz*>!@wvJr0D!^+#Rj(P*^u=TFZVJm>r70@+M|WoG6^I3z|yL~v*5 z=IHS%y}lw>6CA8`@7_IPjo&MSsp;u_(`w3>x4gG+-*#UZSRAeN94@sN+PxBXBq}00 zTH30E3#ks5im?_;^{{fh(S#p3WAg_J73q)kr4@OG`@&2w3-J zY6%;aR&_*`%VBrSMY&BWdc17s@E-8o6wJJUzW(4sqPM}@w{I2p_wcCff`YDCR|kiD0)c?aR*excA~;k( z3Efqcxy)qV6sDz;hpv^Ekue~O@L#(0vu1ZmRYL=fw`?!6Xl;6Z&S*)*uhO)-mA_m= zS=pf0pGw^#igsjcq{zp`#VritQV@<~&yTTQMCX0}%*M=RVJ85xJ+ttT2oH*DvE zu79HLZV6%U^7YcFyR9ETJPo8R$%^H|BDR)Bw}=6?DJjI3C?PgsLrFi%dJ%82-H;2s z2){=13D`gnQY=bPOiU|f5+Nm3qLp@MX=$mcrQF3r@2as;HOBqHg9orCH@56j@n?Gh z!xq~+54UH(?h*si;=U3}sdqneKN_wfEWdi~5aD^5K*>I@%TlG~ep!g0-)gey6(_=B zq||3dmO*>rmX!lrMw#UL;+PylN)kb9Psv(j~@BN^!< zi1nv#=wo%fyu2XloSc^DdNbU`9bRm2Z;y|g;fJ_*c!&f?w7J(2M(U{hgXQIAO%*A- zZv_sc74XjbHQjSxHIlCnVO3+&(=SFHB^SHHUOdU<d+F_sJR&z=mJ}P=jjqKC)+C1YX!D>oIPUUApt9juBrMyy6h}rzEIX6)Qs7Wy z+bxX>%s%CtREmp>!`jkPQ-hc|E$`Ac2GKaflKGKx*OMntZjE}PXF8I$NJDtchD}2I zM+Cc7TkOeGr`8)-HH>!^Wj#pWD#aP_xa|`+C!y(YtGZf~ArEL1T5U@_# z-i(6iy#lkTmZ;O62K$DWv6L+`vBG@;La?Es0YaDjt#A_1G81lEzA~6+L;xs+*D>AQ z5AxgHoclel-IAKNQoF;!W>{EaJGeAfEhi`_c=hUXsA$dh=CEUHwPq9w?n5lNUk@R# zqN4J>#MX17;bnSy`qQU}MMZH%!#fi#xn|pNej}r!uCA_=las?GwpJ%_pV#8?gMEOj65#qJfAUrTp;Eh{36k$lqpqf=ro&u{-{#PZle{4z zAz>HD0F$dztsC;AaKcAVu$ysl?X34|h?-QSM`D)BXSm{m=2wpeLZE4DAhBDATNZiC zp#1Lz7glUIy27J97QeffcqdKFR5B%CL1@$jTX3F(_wd97fQ^&M)o^=`CZ&_<@5 z+iMhg#DxZCRJ zL^|u6nws9c`LxCacD{%+9}-6S?%lg;YQl0tNPiEHP0GfCpRX^R`zoi-&6_s?HvndR z{romgEDYr39PVO>RFVE1OvOX6X zd5U`Bvy@2j1IQjVD4GNZ6DnmxBT4o&JNxDQKcQsj=H^0L&7*wR+7VNme1iAl^f{Nv zWb)*s#G|hFEb`mqYn=*+O^fWks*b50=0xL)y;pRhYZ|HnA$|0V{Jj8Bt|_J1@u;QE zh_jgY!c&O-xM4y3Lw#4XCKA54_S>VdA=WRb0G>ooFZhk2IBE?w$0(V1j~z zHpxUZPrbGZ6Q{IYf3~i(von;`nwpyK?(PW=GOXiBf_;WY%77!UN>*2wCXiw(_gHPf z{ztV0K`b|{=m_H(60sJY@#6rjpsGXuKWKh^j`Ctsk>yzMf*PMT)b`D#(Hx`S*x6?% zCxIKXa&Ta#TDl3X`EAGbifF&21L##kHrDu6(u~(2Q7{fkPa-<~r1&$xRj4JEUGMT2 z&ojHDzZIvz);4bwX02+J63R|#oFvBREbSLhPE>Ux2tg^ z%KLp82axVfP=&x$3}#M(T32Y^4DpQiU1@yFtHdqudyhPG=hm$&My0tUhEnWur(hp0 zS1M|G)c*kXp^^o_${C!a6vn>Nr>zkc9Su-7*xIVf(zjsHJW3=g@bab=b#7s%rY&^m z(GPkK$!U6{aYMxMLzOGI))b8tb>*)KqdTYoi@nx>kFTkFg%jr#LuyzMG=qRR8^UnQ zqKyCckKn#dR-`+==a4<`{B|#lVf=h<`_xp1dqIL znb>_OZ5!9%sG8~$6S|oW|`9RFN{4ntGAC zo#L}pu9Ck>yu^1dlO$AK!DU-#k0Yjh@4!3^Uoltls2dkhA5c0I$7^_&elcqX!oP4t zjQDf3iT#nPkwN^rWqCPrrGb^lZ@qg%Asg7xLVZ3wSy))OpQveAY8NNJK0ZHB8S^1G zHZCpS}RkHov zyKNmwa@yM33``v9o_}(MN!Hys&Ujp|6i030t*ze4cz9&GdT7w%C&RRd#k`YXJ!V-n zT6$m7dtbUMdMCoU(s{CpLJa_RA9_Z(qC;uw=g)M7$KR^FU4aVf=l~(y{u;p_g>tOf zvAlEV4m=Jp&}WlW?)2kxwa?Z(!nb+|SNq$_s3*~V@w@Kc>)c0xiWe?iP|2E|oz2Y5 zgrg7VkW%5P;1GZK0@$=f=k>HmsJ-*w3eACM4x$76k~#}*{-WplSrWiKFL5E$6iLW> z=D!=;g%rh)V=u>?HOIiBRvn4_ul;PqO{7v_u2+fIuE|6z@~PjDltCWrBXdWy5Q29@msv z@aPd+Ae7BvbQ5o;wzZWs7U{85}KvIFZsYYLMc5$)!UTh6j%62e6kIW(V;1z;7HP>6A;Y!X9VetteBbg>CtQ*1xH30xB}Rt}^L9`E|-(IfcwD`gZ4#UW*L zijB<*KeT?~Wv9ZvaX>q{g2tfpP5>dAgJMm`VuPel8#3$IP2?h5O9|R4YO1vR z`kzLmJV`kVGs$sTk>cK!<<%6$Zl8L);CG2BjDr!ez8A0L?K>csb5ZIm^WKwdN3^Oj z8|q22SkFF36ClXv&yVlztkGyRR(^FiPtOAd2ap2-?Fl`DVTp}9)7o#B&dJ@Y^?zo| zzJjoms=HxRhNi7$r=kX}8IuP6os|6VS5fPxGir#lZ|sH|*TPvcqRgE)AOc{noq?c4i%Cm(-(h=JmlGZL76Kj#oLN>j7I zkvyf4Xxo#XAAnTA>d=-tO+rQYr?BN}#o1aKr%j4x_Gdz)`1rNkf1P~s4N~M4%VFG4 zG8w(JYeL9hUtecY*mLSkMtW2tB_-Eant5tF9Fe;BbDl`j5o!g~pJ-hEzc@F`wFyDM zTS2C1ro3VOQ-+zs8B#P8j!0++uFWp~@C&18l~ajAlyK6>a8y-SgBB)FPe&&vUWeQj!exyAm7|ZNZBK>+Y`C%V)blh99$cPdRo;l*C*x

@ITK^-d!&}XT0Vtp+Is$!Co=xtzLhJ!{MCs2KCW?x*C}{QmJ(>A9WIHc>igX zw)TP0Dkvxbt^^d@?R1K2OZ)YkdLE4^!i;Ihu zH4XR3WqJIDc`>Nnm`Y}Lr$vX3`+rSZ;2c3jih}ThZK8(wJ@t-YIkeWzs5w0E+h zxtZmx_)mD%BS($^)Ad^KR%-2-2S|WGru>Z10DT4Oft8gtLp_PIx7I0yT~{7jTU}kZ z{vL&bdsfSf`If&5JZ_nad+|0tKD%?X+Hcnb`Lf0?tfpAm%*+guwguS?90v-I)z0b^ zco}Cxr|O>2gCSy2$p(_1zz9)9tODot>?% zyTJI-{yP@bK^jn6M3aCIXJ%x=o1mVa9>N$#l?awh^_WN5T8Es^){-A!>11>GLg@Lb zecCQ2F<@_!2aCl5E%*)~4+Q|2fvJZBfS$UB2Fr;PBZcNlE-tI!QJ5GTM~j$X0P_J< zXG8TCE?&BHX_i0%@ONR!dK!1@&Yk(!r0*rIHYM|{!5r3IR)30ay$SP9mh;R9N;*t% z)Bv)TaaziB5AH4>Kgn1SQ>ooF~_QaEVpvj_rwu#5w!G;m)Oswc^FEDPtE+8J(_ zi1Y(E)Gb4uc`qZ$1f+`vu4Bi#GmeqL`H^>S2c-c5k&~0t2bKo{9z?qydd^q_i+&E= ziRsue0L&i!%VM)@i^=kSn7YS@e*E|mE>FpnciaNw1(bA6s*bU7;>j0aF&KMWWFNOg zrQKojYcDdX^k{5uW;=E2d2n#dunq9b<|vI#5XQYRKGxrhv%Wrz7q@5u7OPqH&f)iIn>z0rASrQ>f_d} zTXthrJ5Ze{sDPtXj;p4{z<))2aAQgS({Wbf`@;<{S))*}!VLMDeFV{Wtye?gEW`Ph zEH6Gxni<%GvZh*ET9_B|ciGRJ;aloiSYysePoL%KOp@Co2kaX;ZgOrV%edaz&)jkg z`w{Q_$5d`^OVUfmGXMUG;WxE=tD!abG@(obNESS33@O?IdU_c#n5+!1h(sbo zLqb6RYCB{~R)lf{-_Fj?)YO#wd|wv$m6XQ) z9#v8J(_C{_q%05%AOJ%`^k`l`$%jiLFMba_TSgP@P=>i?xHK)1TJ5G1nL{=jr67- zRB#L9!R?k#zG7n1%N5EX0*cc{Y1r3?J#2YwGv)W|gCLN>#*B`Pgxu;(Q3z;wags6y z$PNZ(FgGR>OisO=5@7X=XRd6wqG_q*BzZr|n+u9y^1@yL{nH%6xzz41RVK;0yEr?4 z{qm(t-|82^g)`UE*1-|?SQ?r8@nZ!_UqbsdAmc(zOX}^=^-7_~A*0DLnaXNv{ewrK zLc}K|B#Z?*Km?`8`#EeX(mNRSKL}2J0GVuD;bskD4LT&NtE+%YU_>8Kb6}bY)ULY=6|KppwyoWSj>HNWD%*<9+qVr=h z@!au$uOak5?)4wGlK%eY|Et;d_YVENL;prk_U|zHuMU&&Up2{ebjLp(%mVyp&G^3$ z{=fR*|7#B0$>Zl|7Z<#XYf)$jqpGSZSGnAbgO&H^%fNC@2^Ga5YOQ; zVm!+$)&FwVg_*i0s5PQqGR_zko9ZI+mDkHByTDA!qo86&L`gwwtWG4x7TGJMTV7?%gf&{$MQ)hZIW%J2PhkzYAAm|A>R%Z2oeu#U4+H?{kXqUX&UPTTn>^3J!d(R| zyu*hN1M7#$jr``eFJIV!#zUhIETk9_llg^(gqWC&$d;Ct1CtND6=?bFb}R7+U_lZ0 z*7*4#buBF|7r&QGPE3?K635=(c$T9k4!4K4;+!(vHZ3h}V{v)e33*tPI=ZKEIp6YI zN?(q7|BjsnUKeA?#un4lgGy+(luiKU!@aQ?yhXnw`151lWd^5E|xFI@OwfVYJ1a8h`7Mx*2!}zx+-pA+Mv7Y7rAWg3J-CgmYpUTj=^O5747B*eq z;b6D}*#GQUb>)zqo=To!Ns9wvW_mg(Fc1sw!OV=6m6ap-_Z##5V2r9{SwV9Y`ujO3 zL1AHgFrL8Wwe3#54J03op(>ZD7LYgKMfky#4opz&PA52mRW(D}8&+ZEk5dSMQJm(@ z#bL(d$D#Wj`}S=iWXkjB&mk({;;ig}(I|IiMS@&EKVD~qS!&fnstSkM5pbvEa!49b zO-(Gz{h)jMl5a&mHmIr9r{S}VEPoPp5h1H2d{e2OT2O81_)aa zi{M>Ezj;%~NAGZ<{|_dk&8%>}thX%LYUC`w8}mBx9M=u7Nw|@_HDL9C%L`5AzC0s+ z78%fl&^`gd!+Q4YSvEF=*RmNlG9@JiB?ui_aA+w(+(SenTHrJ%=kP~0PGkc#j|5Ji zJBNh00?(~ybo9V?wutd6QC@-$w1)f+^x>8l2}JOW&{bZ}4<1Y;%D6hz#UJKM^4}{9zE&GkX}T1J#Zj4 zmLYY()M#pIf>4J`eyvRcjudq;m$Lj?ZYdTl9T?TwP!IWG6R|$uFC;HdgJ`se2^5&^ zAvlbJzdqz*a3~vZ6L}Qd7q-=xpxXCddERdNRos1u5||L#Y~pkb+tV@2qOA+Jc=H{lS7rkPjXfSb!Qg9RO6_~FB zI}_{)Ik(yI#r9+3&aGFcrgfK2MOs^DeNZ#fw|SRt&VZ9v-hNNqFMax{Rq7U?^ncIzrvbt{_yOs?g3Zs6YRY_0V`C$9Dd7ThkFs3P;`lB1$?#_Y$1)tA z@`$3gokrqQi}!_YAi~b0&VFV(z{|VSB=N$Nu+0!`FX38zLE_9=O*% zeLQTc{IcK9qrsDz>+Ml}HbUye&3^#>>C>kxDk@~mZor2Lo_SRxq5lB-*7jDI4}&kl zr$uq`eEb<}Gre2|SH`71Xuk17B$94@^PyIkuKQmq+z;D%_}pp2#fVI~j2z00eE0hT zR<(TYY?cRhzAv8~8z{TvczJ%{*q8S9jvB9;%*=w~;)eUJM;zQO@%Wsa1VRihCWg0^ zO){9~9TlUm29JAfeDQJi51)TIEBVj#?0t{5lZ*J;mR6l`dV0hB&xbWZC-+scy=H~? zu8A@_F$xF@7T*)}Qyx^w_%u4o%gP_jJ#A773debENE#M1_=( zk=4hoAp$IP?|aM0uq7q7nM%Q|<>_AdG0A-%*^c5{8czxwV9J$F N`L_D4{F`P^{}=Z71WW(` From 8e6396a58e59ad8caa4e7abd2028cb98ebd38515 Mon Sep 17 00:00:00 2001 From: Marius Andra Date: Sat, 26 Oct 2024 02:56:19 +0200 Subject: [PATCH 29/31] fixes --- plugin-server/tests/cdp/cdp-e2e.test.ts | 2 +- plugin-server/tests/cdp/cdp-processed-events-consumer.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-server/tests/cdp/cdp-e2e.test.ts b/plugin-server/tests/cdp/cdp-e2e.test.ts index e40c98c903edd..db170f7ea8e1f 100644 --- a/plugin-server/tests/cdp/cdp-e2e.test.ts +++ b/plugin-server/tests/cdp/cdp-e2e.test.ts @@ -131,7 +131,7 @@ describe('CDP E2E', () => { Array [ "https://example.com/posthog-webhook", Object { - "body": "{\\"event\\":{\\"uuid\\":\\"b3a1fe86-b10c-43cc-acaf-d208977608d0\\",\\"event\\":\\"$pageview\\",\\"elements_chain\\":\\"\\",\\"distinct_id\\":\\"distinct_id\\",\\"url\\":\\"http://localhost:8000/events/1\\",\\"properties\\":{\\"$current_url\\":\\"https://posthog.com\\",\\"$lib_version\\":\\"1.0.0\\"},\\"timestamp\\":\\"2024-09-03T09:00:00Z\\"},\\"groups\\":{},\\"nested\\":{\\"foo\\":\\"http://localhost:8000/events/1\\"},\\"person\\":{\\"id\\":\\"uuid\\",\\"name\\":\\"test\\",\\"url\\":\\"http://localhost:8000/persons/1\\",\\"properties\\":{\\"email\\":\\"test@posthog.com\\"}},\\"event_url\\":\\"http://localhost:8000/events/1-test\\"}", + "body": "{\\"event\\":{\\"uuid\\":\\"b3a1fe86-b10c-43cc-acaf-d208977608d0\\",\\"event\\":\\"$pageview\\",\\"elements_chain\\":\\"\\",\\"distinct_id\\":\\"distinct_id\\",\\"url\\":\\"http://localhost:8000/events/1\\",\\"properties\\":{\\"$current_url\\":\\"https://posthog.com\\",\\"$lib_version\\":\\"1.0.0\\"},\\"timestamp\\":\\"2024-09-03T09:00:00Z\\"},\\"groups\\":{},\\"nested\\":{\\"foo\\":\\"http://localhost:8000/events/1\\"},\\"person\\":{\\"id\\":\\"uuid\\",\\"name\\":\\"test\\",\\"url\\":\\"http://localhost:8000/persons/1\\",\\"properties\\":{\\"email\\":\\"test@posthog.com\\",\\"first_name\\":\\"Pumpkin\\"}},\\"event_url\\":\\"http://localhost:8000/events/1-test\\"}", "headers": Object { "version": "v=1.0.0", }, diff --git a/plugin-server/tests/cdp/cdp-processed-events-consumer.test.ts b/plugin-server/tests/cdp/cdp-processed-events-consumer.test.ts index 633f408101802..f86cec16a0bc2 100644 --- a/plugin-server/tests/cdp/cdp-processed-events-consumer.test.ts +++ b/plugin-server/tests/cdp/cdp-processed-events-consumer.test.ts @@ -172,7 +172,7 @@ describe('CDP Processed Events Consumer', () => { { topic: 'log_entries_test', value: { - message: "Suspending function due to async function call 'fetch'. Payload: 2002 bytes", + message: "Suspending function due to async function call 'fetch'. Payload: 2035 bytes", log_source_id: fnFetchNoFilters.id, }, }, From d923a8a45f1e0f30b23b6a80376239bed1d2b4ea Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 01:13:55 +0000 Subject: [PATCH 30/31] Update UI snapshots for `chromium` (1) --- ...rter--trends-line-insight-legend--dark.png | Bin 14104 -> 11375 bytes ...ter--trends-line-insight-legend--light.png | Bin 13770 -> 11027 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--dark.png b/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--dark.png index 8ac461d15d0bbe78b06112735d2d7edc23f82143..fe89947c699ee507d932e63c45c8343a0bdeff7f 100644 GIT binary patch literal 11375 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 Tg7rXxm`?4P=F{>gFW>w>HlS@b literal 14104 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 G2mc4UW$C^E diff --git a/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--light.png b/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--light.png index bbb59b784ba62a9afbe99034c94cba3b09e5dd92..b2c01e25a4548a4cb0307467d8e4e0b3efa56bba 100644 GIT binary patch literal 11027 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 N`L_D4{F`P^{}=Z71WW(` literal 13770 zcmeHuXH=8v)^;34EQ2^>VGx0F97V){iV&$8DF1in?_E%yqwH zR=-2C(P+x@P~g7fzdaAxE&j*#M4Klz7tWu0cKc?njk!SC<;m8H*w-iWLKDlrW$gU< z)a@MSQ(K+S75?`AeE!|tXZ}dvdVkBoEn7|>|50&)aOY#R>G>aChm84JD$J{RVly=w zFe@G;&r}NC+30uJ!?JN4tx6AmK~3IAZH9ep+VCR^^~aVUenFw`?%Z@7zBsVO2L3&} zvl{+=@ax?TDAblSsEsJp&VT8Gt7R?bv2lbVS4)38J3DW0`gnjgER_G2$GiXX<;$;M zB}2m`TzjSFjmV~NMUryOicex``PW_@UYb%ma_m@7i7ni!dT&qui-Mc$74&SQ&uNJl z!xLRFZ`!EBOn+GNx?sn&)6+S3jr@@yl zVwI_PS_nbxgH==;v)xFEK@#{na>M6 z*1KGb=^HF8Ek|>Wk%hD#KD^L78*&~m{O_{TKQU{5_>8~JyE(BoS;1=x$EL12Sk86D zEbC34hRMogqaj<U?POIM2 z$UR*xH}cB9hU)F$^Tx5vZ=G;t8k{e~L<3z}Sy{%&qs-KR$peq~d(`bQF2eP4IxZ`; zw6(Q$F#_3DYh1Q<;JT#Gmlw7T5e<^Q7OuwG#$>4zH{U0@QBAL1`$X|y&l``?> zYiJMQo)2H^!q{cQ5iTiRx#r{b7|-?=>*$`Q=4O)L*C#5TW7n@=C&tD~`S#tx^_JvT zy$cc5JZ;xR%+9OGGR!tw7;BL@dF#U&VM(vmiOfvmW>G1M`_Mac*YfnTGQViCg-&^o zX|}ngrH0Fwd`6)IiNIg6tngZ~kUxw<@#GT9o-Z)4$#d;(K4fFU<31bu`|j?3pFcvR zb*{)NV9JJCB(@neF_%W#{N6tjk%;Y1^pTgBpXo?%E+0=_t6~R}pFbZ|oS~FRX#`N_ zo8)BEy{Ee9WNWO1MOA?JaDBLe_G7R`m;!ZKMQUcdq1J|=xjL~-;>C#lDg-{y#sA=R zPx0CqhE{&7@mVGbzxqi_x@zRvW#!c)=B|tayOMmHn)^`)wWI=BZA5eqk+`0siQz~ro*B&T_Zto`HvR_BMU*udYf0(`+k)-Wi1sas zG5T3KITmH^Lo=0ZD+`O{%F`rDe3E$EU%#BV*_C73AWaA|qFFE2Z9?58hjyX)ccK^M z7Ama#riqn;LIbNtc_lWwZF6>mjun?Aj4AU8a>{o$t2{2jv)ETwu_{ovrT9$uT#7!d zlX%LJ!(xO8iw=zS@7=Qp_a%QQ*|W7=z+b~QPXw#buc3S=Kg*^sg1e2zVhV;M)O;pC zzcI+v?ab68VF~!@$bHH#Werk+x0)|pxKKX#>6Mo6OrJlu-&Zh_r|QFs*Y9!6Oo3zM zOlFg%{70f>(|wu2nDo!Z&fO7`Y9+W{pHD9@nEpbL&(KZjfw%YX--qQ9*DIfE*}q7# zicW^ZJdj@0>sqPgHb5yWJI#%hS7D5S7pk%HYwg=oElo_yJVu++FURFslowP~RKVGk zD`BT^;(PqG9p63Jsz8~2w?TOSQ_Fh7Y84=F#0D`R!dic0q|RjQ`bxK{^%S9HipxA+ zFu%IdX>agT5hL2k8~p@HGr=0+b+VVP8SR)v-|U#kLw}(av|iuXIR|d7vUAt5Bu$HQ z54)}^+A5u#S3b6{&>-o$)&`!Qp%L<;f)Ovr9&79`N=`UoTd&k@5shZL*NUi37a3^3 z30~t!2hG;734%2_GG)G#ldz{BLOE{T|J#el{Ao8rLG$Rk9}a~#vV+fp{YqoX5CzT)<)J^PfL zK4<78m3xlEmRdz|n{uR)Nzo=AO}Fo{Ga^VhZ@F+)}v2Yw}HI zm*!V7-xC{9gK}v%`&Xr{OcFb=`}{t#f|)B9*cxtl$LZ=?=e@^Tz|A7as`e(=xWY$e zQc}7I`|AzaeFD=TPIm(CB)L||n!C0?uX%nZL|>as;|F9LOfT>$-B$6T!a)b`9_8m_o5+f>gE)dDc=_xJz- zy&$geE_SV8)9l9tMb8aB9EL+T|8|=Om&YlkrJxaHWSkAzEW)2=@^RnVUqoX0%VXT+ zIPP3OM<&_*o#q-#(R=cRoVGOPQZA@d~qv9?ZT~>dkucPCHv|zbGu+9|pAJH<eaGzgan9BpURCX5Q3C62!?tbP z_`_KKaF@ATOT8ArlKWuw8k?w~zj%j&zh*22(>SDO+L|U|mC>jgU3U|GxJyFmspWTe&7f^&M zuD!a*T%YkRT#Ln2WS5tfmGv`6<$b$cv?RShKiIlU6Gw8Rt@~)p#t~p4vl17^C7Bej zCAu+pqB9frRsWYbsn3b^T`WL1*N(JC zfOh`SV`)5^C|g=s01n=iXy6rmDPK=~(&O$vVC3 zEws$nYawrLkGtF&`3&UyN<1z_?42YnKjHJy!{xaLkpC1enrG5>S zD_Dg*Hf0xQS%U1dkZM|}KL6n$qp0gc)Im`&AWJY*>O`M}c>my0dLeAD*8V%^m4##F zrhy9VU-4zGc9lAj>cRS*G=d;BG!&4xuvInNnuhoH_jm5fQ5jG6G|DlFLPI(e+r4`~ zfj2h}seF7bF%QkPOV}`gEA0n__X7@qUH$e7((O(5K$WL-F2n^q2Ezla<;-*n{CJ|_ zW1^Dt(7T7lzA?EpKx)XP%8nf)&qFl%4)FkRb zRum9kCv`k@kDNzi6%)Tk&o*|0b&!SWS#&sFqJF@9ql_5ZtO#;8>q3jUUwe!50A=OA z(Du||4#U#7e<{UxKo*Ve9}xmFG6X9Ha99aTvm^m;JbZ>Q@Uf0pG`AORb_(_bR0|kJ zAb<8Tc4UUix1fpvU2!(4$Vg)r8`cU64X+I~i&pg=l*maa^#kw=bNi)|(`BW!&{R+} zc}Opva{uLw=yhFHnbAFYR#mEND>0iz_64y6nY~#d_URQ~6CHg;IAv}iB*$)`D}fIU z$yQbT`8e9{y?X~dn$c@O6W}-$y}q?KE6^xbRROZ;fZMS#F_yq!uxpIA9qO~y#Ev@+ zl5tg=rs8cQ7+G;P8q0$rQ(d{2Wi{sB?_ykznt^B7u0YAp$$>DHngSOAvR7zY%Mz+K zw(_@|5vlZ^X#Tl6VWX(JI|Rcktw_z;>W!WXhKZ2QISS&k>G<{4rEi}Omg3KxsY!51 zE&rq^Y&V4g^PPLV1K{s0XY(6khp9u#(nz#k1duR5>O+SPK|<>v*@GR6w^ddYqTT-V zk|ljvUt3bu>$Nf2N?AJa-By_*H>PH~*ViX9fc;)gL|Idm+t3*d8wiI#?6p2pnpDM} z9Erxv6_imZ6x|e6om6!dxdBKJKvZ(finCw?B+6-q$8=bELRfN@-Rj+qJK|5@`C4{o zxWM|))&Fy1%_apErZnd`%{y9COEC)RrC6!&2d1MDCQL2h#HN-jA@HYvbkfJojHceQ z?sq&eir%H{uFOm-p4tH}2T2x5FOq6LK@f`tTK;W-_^i!s7sL0Z;8!OgGbAcH==%Gw zh!U1-`Ri+K@h1)j@{7z%T_ZJDzg?Vu8eJ(A0DxWWb}vt3t2(42VuySs>sjETS^x1A zZa*7enw8}=KhhY!PpN5hVd96wlaT4J85xxnGr5XQ=2iA}M!0;xxpzCJxhwBlg`wP% zvwg2&X5X^dXT#46-p;M?|N8!t zDb*g&tz<5-nS|}4mXI-A`zz!vD}v@7-(v>+UO`%sO|N8A)wp}Jfo#kGj$D=v2EY%O zz~EO#seV@ zm*vaT06zebuXF0tSy6*aQ{5QHj$7a%ah5&|1;R>mZuyAdcwlRhr7x~fNRD3{H!5xe z1u!{zm{!F^J6vg6FSoJFHXsnK{p*8;`Z=v4UB@gcddhp@&J66NA?- z238K<-#$~t9caTFLFR0=!mYKR6NSClRRJ7D+DC4JC=-;@)~D}o*oct%x-c;Z1=~br zoEfKs#G3iWiWo)v&ejM!u-k*j5*!Mm5Eiet2#;35rmopnN&;)hCQ~b*wlUCEIaFy^ z5wR87E3U|Ox*|mM%V?J(f6i$@NKU)E4{uS$=kE3*)2rD;L)|s*%V0uG_p)>dz1g}I z&4xgP0_e?~H!1?&0vk-;=4Z6BvckBW+VGcnCs1J^K)%yG-oRF5(|g@$RXI5>)ps{U z%jjtWq_Zog@*1OMGKsMD#QxWPa3;hK&o+&2NJD5+#0-;0sPviE*Mw%e%$IumENde>pihK|>G43e>VIec75p%d=1w6FY!P!ZM!=?3!KH zJ9X92Y8D)t_gM4N&&Lo?dg?v3kmbCM%FS-&S}Lur8XWFh&7@)5E1mi)rUEd_jm)Dn zs@VbcESH?I+Qyhpe${QJwXyCxzGZTvn2XeUO-)TKZv)^#8zJkec#MGmL_lsm_A7Q` zb&5>R$>9}Q+cq{gS3)_|3TblduEWHbm}1xd)%@BW&Ff!TzSM;jh&2S7;h3j;OWB>7 zZ3qGcdky%HPXj`O<$`7~cE~}w1r1BcruSgu%^-**+$bl~iB;>EBvy(tt_MO*&7n2< z-Me=HnTr#hGNp}>+I*mTghI>M*cb!kHX~yUaOj-2Y+#&w%G`Gw;JlX5(NdD#8tK<* z&%b_>7!%;$_0;GQri;gP!r~P4WJi@;+XrO`*~`!gy<>~e>Nz38M2Vv`L21%GvvVN*j5?uENA*AEDcCeVJ49RSXG6NVZeY*}E$?ilHKFp z;~S45^3U?*oEmb&e8+!XxqDEyK^;_r%9)BO;5j`5GN4WVVRK-?wymeg z(Gx0V%R6;@ppN$T{DFjcO0LP&Tjw+ztu^Z5 zpW&843&|kzSG#HUgw_-_ZZy*ixS*J&*R_TSN%LYSIzR+=eL^pZS5#EA2o=VD%^<&- zSK+O=4^Iy;{+!km7L^KGXu*`aF{vPHL2MsUfKbp$Qbw2dgkuIw)>=KmNP{J9m-9XD zB%vvD^%5X#u)qb3uU)%#_3CWBgqsDhbL1w4-k?_mz=`Pqm?54=%d#<>gu2}tl+OsDbRTH#EwQ8QnJ1oe6&0_To@w&_LoM~RGF(xNLifeR|}&< zK}_sG_>7K~|7Z-c0}3w#Z7_8p@Vbl4x4`Nkw@CpM&W|>Sg@#%Y)|U{a>z=UG2TeYxR~Ox8bo^k@&r1)fu%tsq*r zxTpaD?qJ2jD4>_pk9DF*62YD ztw|U%9DXrZ`F8vBLziPgJ&cgX;`zK41n2E%rK z`o1#g`KTMP_$`V)4^`YzIXM}<)MVTsRuPu?H?@EFQ><8x50K^0oJYZazM2{zG za4P^KC6_O=F@Onx28Bj~2|dDUjj*)KklnE(N8&+FV=)SmDvH>#OHVyYf3mN9;V*H; zf<2pe?2k8xXMV1`aT$)4)l=*YITT?N#E!WJX+&qqB(|zfLzhCFC zK`J%MHH*Q;q>lj+@6NNVIJdm<%KX^C}ZJ^RR6IA;3Kk-*8*e}6xeCe zy4tegQW~mpHE;@udZn!TwuN;IBwH3RfUXMA)gZ8NuqY;RgXY(N9MoK~Bf-fN^&vI% zl)8}sXJ1LLe}hP%4n2}6&?_{U1d;<<3e@BH9Ik|TfIEGBQU93suLfucY*9UKS>r*h8W zW+YwMd6qNQ>x;21ItlVtl;vpirRiQS;%Q*Z*kh(}R!?M7<4LqT95=iS)S2(Wxn-`z zx96A^5IQv93%hzPuMf$>K#P2) zx^N%kPat`yPR!aOFgs__!?6NtksgwLWI0~2#G=Q|9sCabD^A{06XFmcC5Mv_DCrWK8R9wa<_cXKmj}riU~AsRAC*g z{|`ybMvyhz^KaBb`3~xc5>)N5IY!c3q=!K0*;rj3tO;@xNTu0%dDQ8WUU}eU_cjXK zlca(dKQVq9Z%qN2e%)HIWX)jt#&$8TFGNE=fB^cKqE^b;{<8GEaveGevYykL{-)V( zDyNv(aZXg@GYGX%9LRCAFC>8Ac8j~&7c3vC!2z~(Yg!K}96)n~!WHUBTPSzgjKc9E z$Iflrw-;g@M>B#7wQlLD&%K8tPcOB4%vb;VbuWjc+c+LpQRWhnvfo1 z6|C`t_k@ws1frOrJ%O}6G^@rEoq-EifPQ&yhsrIuLEFzq45_2Leo$9{zj4oq?h984YZZQnW_R54!&!Gcjesz7By&-Yn&pUaCo z!}Sb`mz9-OTdD>YM*=^d1RAId;_r>xM}Q4{&^A@rl!XF4NL@+*e_(ijAnc&~_ko58 zX>ye<;IkQ-P^k@rgx&?G3^uj$rW+!303Hf>*}~IvJKn%%fti6~QfAl-56H_#3dku} zB4mRbk2z~WH^vLM4mU&+KnX)07hyEdpWBRlh%((d0ME;~A`4de^f6Tt*KOJBLO<-i zzV{n0ABvvuT-2*p1as%mT#ehx?`#nE$G?m~2>PhPE(m&j+0GJSLM><4UECFB* zl3^uuQxNQ1U7B)Z8$jD{P;OYxefuf6%;lDZ>plLqk4Rgy+Cc^(RR5D6=RfJ*{TsWe z|NRbUhm>6up;lEGyaHPv++Kv<(D!0p)4DnV-d4xs>dTP)FRt$Q`>L{|)(VKI4Ea9%s(PPK5l1SU; zzxN{kU&F%NO1WFpK9MtC5Uv#NO*53n1w5=5F=!~6cxKS~NtnJ=4i=hKuvKeAMFt&O zl8!%2U3s&Vq;Ix#Epgd?5_>#6C|$Qr1a3<>)T?s$F@GY=OdR&@)Z4m2-C=0Fa2^C} zZ9b?PJ|M?`YKoD=#wqrt!OV#_sA$li3R8neL6OMQ`>V5?1&!On_qoWf4G>jM zFaG!tXplU0UH4Ay%a@@k8VyQkog~N^ciXz-R?+Pa!D`{4K$f{BE`Brx*kg`kzgmu{fdL}^K_KyNsPNCZXlaC*_rx=7CN3IgTSs5NifB@vfW8}( z8eBLE4{MK1E??!A2+W^jTTGd{*z(`e<_THZr2)O5Sc33tXlx9FGZrAxgMbf0JnYO% zz+Y#=;3u);p_o+}^crET*J){z9%tck$+Z@l+n`W*&`3xCEe~X45Va~nBj%kDAuym_41*h>(^KKmVq#*p?>%Nh@w+4c7o6>D zTkDso89F*Vfj2i_-jJC@OKOVE#2aS{T`qCOg2XGW>UA6X#-Jj9ZwTGe(P^2aXTxx7 z8O+Ge&(Fum8B>?Ph8?{4*Eg8G)1DBC_LoV8JTTehm9JS_w4aX`<4ETSmtgZj`7}vIjiXE^~+CbXWK7q+x*)R zhKX3mZ}zV?x%|-j+h6+I>SJF@HvInc&pKZ7-fkUr53h%+4xF;GWis8oRg%Zm8!Oj5 z2NqIcZ%G(8t8$O@w{P!&9noksD9p%o>r8)TVWD85-O8+^z5VLdtL`u)^Wwz|m`LC* zE_%Vs$0zptOP75Pk*Gvkh$zbF_=}bEWqh4w-qdW8^&>Jtf=bx$MEg-Ru)_o_aY#i) z<<%=>a6-d#?26NDU%97H&*K9_0Hkj3p;0 z?>zfk6m${JZF!NAk&&K03I~>(o7>XTqTmzccu8G~SzveB+`PBFy&aU*fPjFW-d;5| zHJktffO1ap5K1uG>(193TCjfD<#}V}>+Ewm*7`}WrHs-K&=NsLU}3leCZIll053yE za=;Sc+?F(aFa+R%2e65UJ7G=$3*D2?k)KCkX!Oy}eG(GQ&CLb}0nrXTn4Fx1p+pO6 zkO~${%gUOpiy$9mytUQx^jw&obq@{>_Vwk$RbW)#)x`-%Kln2X)Ro2`SGRN-hY#^c zwexjDB<5plf&BEM#MvWq$Sdgz?ZAUuC&kZ}1#(@rv>HZI-5nhrp}T2m*$*x8-rio2 zMw9kggOft2*xK4!BQIoz)6Crb+!heBEul>|H{8HwF`@%<13I#`OQ1an!t7&F={y*= zfdj?iaFNnjK6w`TQ;Nea&r$o&E>Bu4uh(5Q7n9=ZwB3hMG4SFq&B+BOzkc)PQaCi%xm>OuzHQ}#0{W69x4-O; zt-2IR&36VM2AV9;d&?N7!TJ0eT)3IElxf&bU$SJ#U@vEnum#Ig+1hxswc*k=-J{30 z5Gs?6#*Oz$OY0qup7T?G@H9ZFqOwxWI|2dn9|Lt~V%=z(Pn6L3x0hLNED9~Spzie3+a3ZYl@n3RqI`}G>!ib27FoL}r8@DAWX1;mj z*b@tyna#z32DNJ1mtR_?VKl(Dj7vT~%Nz9!)!ZT%`#^#7s7*7agbHC#gCJmYT_b$Q}6yMDx z4cViKN%tC9RPER-e0Rye5frC|5mTygbhFD*JTx@FB%HR7@a69Pc%gphi zh4GNqjS#r!Eq*(};jP&Cw)yTl@KMnC^5dzN_bS6gp#|)|{Xz31j_eN~+)pNaFtLX9 z>=R9nsbMhW*Y2)2ZXD*|4Ni*PHDI3=+l!BHjDYW-ewDI;AHSXXPA`7m^uKu1v7_45 z^zHeZtZCi}SZa3o=O@s$HK{Ok6dv?b*F343?79a&zY-S}HRPu*)1Ote(H)PksjiOp z%7)KvDt`QtGd?bsX0G%Q#XA%KCx_#cZoUP+5mXKgkLe8gl;(f;J7-kw!K{xz-xH8@lEdc z{|R9l8yy`@vVIyD#~E;I`n(bOBP5De-^PD-*#F!O{%7CtB*exeV)aZ$LXnMJx}bYL J@2t)J{{pOCRM7wc From 05ae44af30d254d000fa2ba5016cff693a347fc3 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 01:32:57 +0000 Subject: [PATCH 31/31] Update UI snapshots for `chromium` (1) --- ...rter--trends-line-insight-legend--dark.png | Bin 11375 -> 14104 bytes ...ter--trends-line-insight-legend--light.png | Bin 11027 -> 13770 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--dark.png b/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--dark.png index fe89947c699ee507d932e63c45c8343a0bdeff7f..8ac461d15d0bbe78b06112735d2d7edc23f82143 100644 GIT binary patch literal 14104 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 G2mc4UW$C^E literal 11375 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 Tg7rXxm`?4P=F{>gFW>w>HlS@b diff --git a/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--light.png b/frontend/__snapshots__/exporter-exporter--trends-line-insight-legend--light.png index b2c01e25a4548a4cb0307467d8e4e0b3efa56bba..bbb59b784ba62a9afbe99034c94cba3b09e5dd92 100644 GIT binary patch literal 13770 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 J@2t)J{{pOCRM7wc literal 11027 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 N`L_D4{F`P^{}=Z71WW(`