* Remove a dead TODO
This was solved in PR #1849
* Make sessions query more readable
* Remove dead code from sessions
* Make it possible to test with imports in jest
* Fix a bug and add tests to createActionFromEvent
I added tests when initially solving #2848, but the original solution
had to be scrapped. The tests are still valid though
* feature flag papercups
* Use @papercups-io/chat-widget instead of weird useEffect hacks
* Rename basicComponents to essentialElements
* Add posthog_domain to Papercups metadata
* Actually rename basicComponents to essentialElements
Co-authored-by: Michael Matloka <dev@twixes.com>
* Fix unix-dgram build
* Add per-organization whitelisting of plugins API on Cloud
* Add migration
* Update can_install_plugins_via_api calls in serializer
* Remove unused type: ignore
* Update PluginSerializer for organization_id
* Make Plugin.organization nullable
* Fix can_install_plugins_via_api
* Update pluginsLogic.ts
* Adjust can_configure_plugins_via_api for organization
* Don't include organization_id in serializer
* Set default Plugin.organization to first Organization in instance
* Fix PluginConfigSerializer.create
* Test that other orgs' plugins can't be accessed (as if they didn't exist, 404)
* fix typo
Co-authored-by: Marius Andra <marius.andra@gmail.com>
* fix tsc error
* add plugin source, create plugin source version model, add plugin_type
* can create and save source plugins via the api
* make empty source plugins
* message if no config options available
* different image or tag for source plugins
* fix some types
* second drawer
* add fields into drawer
* add monaco editor
* refactor drawer
* save plugin and must be json
* close tab on save
* fix default code
* upgrade to plugin server 0.5.0 - with scheduled plugins
* less height
* upgrade to plugin server 0.5.1 - with posthog.capture
* remove minimap from editor
* upgrade to 0.5.1
* use enum
* reduce quirk
* must enter a name/url
* use the source
* simpler text
* sync image
* add link to docs
* add a link to the documentation inside the source code drawer
* text / ux simplifications
* nicer first plugin experience
* nicer django model choices
* person v2 stage I
* delete person
* merge persons
* person properties
* address feedback & cleanup
* updates isURL utility with tests
* edit text-based person properties inline
* allow changing bool & null props as well
* sort properties by type & alphabetically
* editing only on first-level of nesting
* remove properties
* Proposal: When clicking 'add action/event', populate the generated event with last event data
In my usecase I was analyzing $capture_failed_request with different
percentiles/math operators on the same properties. Doing this was
slightly painful, since I needed to enter the same data over and over
again.
After this change we'll populate the action/event with last row.
My hypothesis is this will speed things up generally.
* when adding rows to entity filters, keep visibility as well
* Deprecate dashboard item type and move to display
* Mypy rerors
* fix test
* fix
* Fix test
* Fix another test
* Remove determineInsightType
* Get rid of RetentionTable display types
* Fix update dashboard
* Duplicate existing endpoints under /api/event/sessions
* Use different endpoint for sessions table logic in sessions page
* drop irrelevant code for insights endpoint
* update documentation
* extract method
* move code under only relevant path
* Extract clickhouse sessions logic
* Refactor: Separate session list logic from rest of sessions
* move sessions list to separate file
* Move sessions list tests to separate file
* add clickhouse session list tests
* add support for duration filtering on postgres
* move api tests to right place
* kill dead code
* Handle empty duration input properly
* rename no option
* Add close button to the filter
* Allow choosing time unit in dropdown
* solve mypy errors
* minor changes
* show arrow
Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
* add clickhouse query for people breakdown
* remove log
* add pg implementation
* remove caching and fix timestamp formatting
* modify how people are returned
* reimplement frontend logic for handling new people payload
* remove period check
* change params
* add returndict
* DRY retention param formatting
* remove feature flag for retention
* remove feature flag for retention
* Use return value of add_session_recording_ids
The mutation here is incidental, this is symmetrical with how postgres
behaves.
* Implement sessions_filter
This will hold session-recording specific filters
* WIP: make filtering by session recording length possible on ch
* Kill dead method
* Allow filtering by session length
* Make logic a bit smoother around filtering by recording duration
* More common code for clickhouse_session_recording
* Add filtering tests for ch
* Resolve mypy issues
* Only run duration tests for ch
* Put new filters logic behind a feature flag
* Kill dead const
* Solve operators-related comment
* Review feedback: rename variable
* Fix test failures
* Polish system status page
* Show system health badge to is_staff users on Cloud
* Update Cypress test
* Correct inconsistent scene name
* Use RDBMS enum instead of constants
* Add "Analytics database in use" to System Status
* Fix typing
* Add command palette badge to new TopNavigation
* optimise getTypeIcon & command palette icon in primary color
Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
* Debug CH queries
* tests
* Logout when impersonated session
* Put "Debug ClickHouse queries" in its own command
* Clean up ClickHouse modal
Co-authored-by: Michael Matloka <dev@twixes.com>