* add window-id to ingestion
* move window_id into snapshot data
* Add tests
* add window_id to snapshot_data only if included in the event
* add window_id to session_recording_events table
* revert ph-js downgrade
* fix data generator
* remove partition change
* update window_id defaults for tests
* missed one window_id default
* rename migration for conflict
* fix player close button position
* reduce player padding
* allow recording on seek bar
* remove skip inactivity toggle
* style fix
* update rrweb
* add svg for remvoed content
* add ts ignore to legacy files
* Migration to use materialized columns for groups
Workaround for https://github.com/PostHog/posthog/issues/6422
* Use groups materialized columns in queries
* Update mat column creation tests
* Simplify aggregation_target_field
* Fix migration
* Update snapshots
* smallest change to make aggregation work
* address comments
* add snapshot
* move function to groups model
* update funnel snapshot
* rename person_id to aggregation_target
* update snapshots as well
* dont support persons query mods for now
* update snapshot
* make array orders deterministic
* lemonade shows status as danger because status check assumes only people with access to status metric will see it
* reverse boolean in name to reflect actual value
* Improve process_math
* Add test for overlapping group keys
* Improve event query tests
* Add test for filtering by person properties together with groups
* Avoid flaky tests due to cohort_id changing
* Update queries and snapshots
* Add groups stuff
* Rename column from person_id to `target` in retention queries
No behavioral change, preparing for groups work :)
* Remove dead if statement
* WIP: Retention aggregation by groups
* Handle aggregation by groups in retention
Also handles the case where not every event has a property defined
* Test groups validation mixin
* Reformat
* Improve test for aggregation in retention
* Add /api/projects/@current/groups/property_definitions
To load property definitions for groups
* Add routes for fetching group types
* FE: Group analytics feature flag
* FE: Group analytics base types for properties
* FE: Initial implementation of fetching logics
* add group tabs to filter
* make sure group properties populate and refactor things
* prettier
* disable unused vars
* allow indexing objects by number
* mount group properties logic
Co-authored-by: Li Yi Yu <li@posthog.com>
* Add feature flag-based lemonade opt-in
* Add a `posthog.capture`
* Only show `RedesignOptIn` on cloud or in dev
* Polish `RedesignOptIn`
* Add `LemonSwitch`
* Add `LemonSwitch` loading state
* rename "experimentation" to "feature flags"
* remove BackTo from flags
* make feature flags turbo-mode compatible
* fix feature flags loading
* fix bug if object exists and returns None
* update url when saving
* update index when saving
* take data from featureFlagsLogic if mounted
* sync values with form both ways
* Extract GroupsJoinQuery
* Add test for breakdown filtering
* Unify breakdown mixins
* Allow passing breakdown_type == 'group' with breakdown_group_type_index
* Allow breakdown by group props in trends
* Add tests for trends breakdown_props function on group breakdowns
* Solve common issues
* Output snapshot diff into console
* Clean up materialized columns after tests
* Add zero protection
* Solve test failure
* Type math in Entity
* Allow passing group_type_index from FE to BE
* Get a initial query running
* Add group value filter if aggregating by groups
* Add snapshot testing for trends queries
* isort
* Update tests
* Add test for column_optimizer
* Update ee/clickhouse/queries/trends/util.py
Co-authored-by: Neil Kakkar <neilkakkar@gmail.com>
Co-authored-by: Neil Kakkar <neilkakkar@gmail.com>
* instrument saved insight filters
* instrument saved insight filters even more
* mount the logic
* new insight opens URLs
* instrument "new insight" button
* fix capitalization
* rename sessionRecording to session-recording
* logic for new player
* move rrweb-player into repo
* remove awkward wrapper and fix time not updating bug
* chunk load meta timing
* fix duration setting bug
* update icons and styling for controller
* styling icons
* slider styling
* ugly slider
* remove consoles
* sonarqube
* typescript
* typescript
* implement working seekbar
* fix time mismatches
* remove hardcode
* Fix icon from merge
* move report usage back to sessionsplaylogic
* refactor to seekbar
* implement real time seek time
* play on paused fixed
* paginate recording compression
* some tests
* bug with play pause
* more accurate duration calculation
* implement event fetching from frontend
* add tests and types
* fix buffer play state bug
* add comments back
* remove consoles and revert limit
* remove empty file
* tons of decompression fixes
* rename test file to avoid conflict
* move decompression to helper
* add test for helper
* type fix
* rename method
* simplify paginated decomression
* address feedback
* handle case where offset exceeds length
* clean up
* test fixes
* fix scrubbing issue and onclick lag
* remove console
* clean up on aisle 12
* Add surrounding object for metadata response
* split out endpoint consumption
* fix cypress tests
* use kea-window-values plugin and remove isTouchDevice check
* remove todo
* report usage refactor
* set buffering on last time catch up
* clamp buffer ms
* add logic tests
* fix eventusage
* finish up tests
* remove console
* update duration on first pain
* split out v1 and v2 sessionsPlayLogic and cleanup logic
* revert ts
* remove defaults from tests
* Move mocks into session-recording folder
* fix test
* rename to sessionRecordingLogic
* kea
* rename to sessionRecordingLogic
* cherry pick rename
* update yarn.lock
* prettier
* revert lockfiles
* create seekbar markers selector
* order events ascending
* add tick styling
* fix time buffer
* add events to seekbar
* prettier broke sass
* comment out testing
* fix event click when paused
* fix events next_url
* add info bubble to ticks
* fix existing logic tests
* fix tests
* remove commented out line
Co-authored-by: Rick Marron <rcmarron@gmail.com>
* feat: add project level event exclusion settings controls
This doesn't add the actual exclusions to the correlations, which will
be done in a separate PR.
It also doesn't try to unify the `PersonPropertySelect` and
`EventSelect` components, although this seems likely a good idea,
although possibly there will be some specifics that come up in review
that highlight differences required between them. If not then worth a
followup PR to merge.
* Fix typing of `EventDefinition.description`
This previously was required string, but it seems that the backend does
not return anything for this field in some (all?) cases
* update styling in line with person props
* Update correlation config
* use excluded names in funnel correlation
* make description non-optional again
It causes type error in other places by doing this, to I've just
modified the api response.
* Make tests work with paywall
* factor out config update logic
* chore: clean up EventSelect to not be explicitly about exclusions
* fix storybook typing
* make sure state changes
* change reducer to selector
* use existing debounce dependency to debounce the local state change of conversion window
Co-authored-by: Paul D'Ambra <paul.dambra@gmail.com>