* 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>
* intial working
* intial working with test
* return tests
* fix interval and add monthly test
* add in person_id join
* small restyle
* postgres lifecycle working
* add action handling to postgres query
* add action handling and tests
* fix typing
* visualizing with temp params and added negatives for dormant
* frontend
* fix intervals
* remove unnecessary import
* add person enppoint
* add person endpoint and tests
* add next
* add pagianted test
* fix types
* add frontend logic'
* fixed date range
* disable compare filter on lifecycle
* add diasbled to chartfilter
* return class to personviewset
* added constant
* fix distinct_id and new event within period condition
* replace people queries and fix ch query too
* DRY
* fix null states
* comparefilter nullstate
* add wrapper back to endpoint
* fix datetime formatting
* remove extra stack flag
* reduce filters when it's lifecycle and replace constants
* add default for lifecycle into trendlogic