* Add scheduled task to wipe session recordings
* Create a new table for session recording
* Save snapshot events to different table
* Use SessionRecordingEvent over Events everywhere
We can remove a ton of cruft this way as well
* Add missing signature
* Extract util from models/event
* Attempt to update ingest side of clickhouse session recording events
Note that it's using main kafka topic - not sure if a good idea.
* Get separate table in ch working for session recording events
* WIP: query sessions
* Make both session recording queries work
* Make linter happy
* Rebase migration
* Make tests work
* Apply a TTL to session recordings and other configuration:
- toYYYYMMDD partitioning should be smoother with TTL setup
- TTL achieves not needing to archive the data ourselves
- index_granularity will enable smaller reads per session_id
- ORDER BY clause is to make single session as well as time range query
reasonable
* Convert retention cronjob to new model
* Add tests to process_event changes
* Add test for ee_capture change
* Fixup migration
* Make clickhouse tests drop/create session recording tables
* Make TTL not be there in tests
Otherwise writes get eaten by it during tests when mocking time
* Fix retention task
Co-authored-by: Tim Glaser <tim@glsr.nl>
* Improve session recording setup
- Add beta flag
- Add CTA to open issue
- Always show for self-hosted users
* Make the icon a bit larger
Co-authored-by: Tim Glaser <tim@glsr.nl>
* improve "public" import paths
* fix `useOutsideClickHandler` firing an event on any click anywhere in the page
Co-authored-by: Michael Matloka <dev@twixes.com>
* Add ability to reset project API token
* Add Popconfirm
* Disable option to set own api_token
* Fix element key
* Simplify text
* Slightly improve margin-left
* Improve /api/team detail view retrieval
* Add Never support to humanFriendlyDetailedTime
* Fix typing
* Hide $session_id properties
* Exclude $snapshot events from event views
* Add end_time to sessions queries
This might be used by SessionRecording queries
* Add WIP way to return session recording
Note that this mutates existing responses - might not be the best way to
do this.
* Query for feature flags in a consistent way in frontend
* Improve documentation on featureFlagLogic
* Update frontend types
* Set up endpoint for querying event data for rrweb
* Sort snapshot data in BE before sending to FE
* Show sessions player in a drawer, load data from API
This makes for a smoother experience (IMO, will iterate). At the very
least, drawers enable us to have differing urls via kea
* Show loader while replay is loading
* Make player full-width
* Remove debug code
* Implement persistent URLs for sessions
This should make it possible to share recordings with team.
The URLs are currently quite long - perhaps we can get rid of
distinct_id long-term within it?
* Use only $session_id for filtering sessions
There's a small risk of collisions, but this cleans code up a lot
* WIP
* Add `array.flatMap` to tsconfig
* Add selectors for prev/next session recording
* Clean up whitespace
* Make next and previous buttons work
* Patch prev/next behavior when not visible in page
* Session recording query testing
* Fix typing errors
* Make Sessions queries work properly
It was previously overwriting things even in queries not returning a
list of sessions
* Blacklist browsers w/o flatMap (PR review)
* Close sessions player on back
* fix back button and small bugs
Co-authored-by: Marius Andra <marius.andra@gmail.com>
* Use posthog.js correctly in userLogic
This caused some confusion (issue #1955) - we should be using our own
tools correctly. 😅
* Always update email (PR feedback)
* Backend changes to implement #1461
* Added the missing migration files
* Fixes Typecheck errors
* Refactor request.user.team_set.get() to use request.user.team
* Updated user patch method to change current_team on team id instead of name
* Merged migration file
* Changes team property to return first item in queryset
* Fixes failing tests
* Changed User api to return the ids of the teams they are currently part of
* Frontend for changing teams
* Update and simplify migrations
* Improve team and user buttons
* Make team changing backend more logical
* Improve current_team mechanics
* Update test_team.py
* Fix Team.objects.create_with_data
* Update migration
* Update tests
* Make setup_review more convenient
* Add Organization and OrganizationMembership
* Replace is_admin with level
* Extend API
* Update team.py
* Improve modeling
* Improve handling of new mechanics
* Add proper migration
* Remove _ensure_organization_and_team
* Update 0084_org_team_user.py
* Improve user, org and team creation
* Make MembershipLevel more flexible for the future
* Add member deletion
* Fix naive datetime warnings
* Update setup_review.py
* Update API route
* Make PersonalAPIKey changes
* Update models and migrations, fix typing
* Fix typing
* Use MAC-less UUID v1 instead of v4 for better performance
* Add abstract UUIDModel
* Update utils.py
* Update utils.py
* Fix multi/unicast bit
* Update APIs, frontend and tests
* Update pull_request_template.md
* Fix comment
* Fix migration error
* Compress migrations
* Updates with minimal renaming
* More updates
* Make further updates
* Update test_team_user.py
* Fix issues
* Add migration
* Satisfy mypy
* Remove Signup redirect on logged in
* Use uuid1_macless in Person
* Fix typing
* Update tests
* Update /api/team/signup to /api/organization/signup
* Fix mypy issues and update tests
The remaining failures are actually missing functionality (TDD applied), so filling these in.
* Update 0086_org_live
* Make small improvements
* Implement permissions
* Remove now unneccesary membership check
* Update setup_dev.py
* Make small frontend improvements
* Add drf-nested-routers as requirement
* Remove unused import
* Implemented nested routes
* Remove cruft
* Add relevant org/proj/user name to headings
* Fix imports
* Update migration
* Replace unreliable drf-nested-routers with drf-extensions
* Improve unset team handling
* Make org and team creation proper
* Update migration
* Fix migration
* Update TopContent
* Update command palette for new sidebar structure
* Remove deprecated demo data deletion
* Assume that each org has a project and fix typing
* Require paid plan for multiple orgs and projects
* Make HogFlix demo a separate team
* Update migration
* Slightly improve style
* Adjust page layout bottom padding
* Make user dropdown nicer
* Fix base app tests
* Satisfy mypy
* Fix test_leave_organization
* Improve wording
* Possibly fix import
* Remove misplaced None check
* Enhance org and teams APIs and add tests
* Fix /api/projects for particular Team
* Improve invites and demo data
* Address feedback
* Put everything related to billing on Organization
* Fix minor issues
* Simplify invitation creation
* Update team model
* Make orgs and projects premium only on self-hosted
* Improve testing
* Update migration
* Remove extra License import
* Fix minor issues
* Fix Django tests
* Fix Cypress
* Fix yarn build
* Fix TeamSignupViewset
* Fix posthog-production incompatibility
* Remove extraneous insight endpoint registration
* Adjust tests for posthog-production
* Simplify invitations and fix email validation
* Address all feedback
* Satisfy mypy
* Update migration
* Fix constraint removal in migration
* Update tests
* Fix test creation edge case
* Run posthog-production CI tests against this branch and teams-live
* Ensure that js_posthog_api_key is always passed
* Fix preflight check pre-login
* Update cypress tests
* Update instanceStatus.js
* Bring ee tets up to par
* Bring actions-ux-201012 back
* Cypress retry in cypress.json
* Revert "Run posthog-production CI tests against this branch and teams-live"
This reverts commit d79cb844d8.
Co-authored-by: anna <ms.annaphilips@gmail.com>
Co-authored-by: Anna Philips <aphilips@matmacorp.com>
* Make log output locally less noisy
* Add usage button to feature flags
* convert backTo logic to kea
Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
* delete hogflix dashboard, name it something other than "default"
* reload dashboards list to get it out of the sidebar
* fix name for consistency
Co-authored-by: Yakko Majuri <yakko.majuri@gmail.com>
* System Status page and API (#1812).
* More resilient to Redis outage. Ensure the table gets loaded.
* Bugfix and reworded.
* Using kea-typegen now and removed a " ".
* working date filter
* frontend for period
* remove period
* add params
* add period
* period working
* add test for period
* merge master
* fix test
* add dropdowns for period date filtering
* pass params and handle properly
* fix labels and readjust tests
* test split for retentino period
* make insight retention test just test for response
* add condition
* feature flag the frontend and bring back ff for the ch endpoint
* fix cohort filtering
* fix cohort querying
* remove init
* remove feature flag
* add back featureflag
* block person modal on retention page if clickhouse enabled
* use distinct_id instead of joining for person_id
* Convert utils to TS and add missing lodash-like functions
* Purge lodash, using utils and ES features instead
* Remove lodash as a dependency
* Fix Annotation.created_at default value (was null)
* Convert all of utils to TypeScript
* Update ESLint rule @typescript-eslint/explicit-module-boundary-types
* Put all @types/* into devDependencies
* Lower @typescript-eslint/explicit-function-return-type severity
* Fix Annotation.created_at in a better way
* Don't copy item on push in groupBy
* Use `Set.has()` instead of `in Set`
* Update .eslintrc.js
* Update .eslintrc.js