0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-27 16:26:50 +01:00
Commit Graph

105 Commits

Author SHA1 Message Date
Tim Glaser
e532223435
Fix feature flags insight link (#3865) 2021-04-02 13:07:33 -05:00
Paolo D'Amico
da61c55666
Description & tagging on dashboards (#3756) 2021-03-26 17:38:13 -07:00
Karl-Aksel Puulmann
a5be4f2c33
Add 'cohorts' tab to Person page (#3744)
* Add a cohort tab to Person page

Closes #3743

* Add E2E test navigating from cohort -> person -> back
2021-03-25 17:24:36 +02:00
Paolo D'Amico
89b71a9959
New login & signup (React) (#3701) 2021-03-25 07:40:20 -07:00
Paolo D'Amico
6cc09eaef7
Support custom identifier for person name (#3581) 2021-03-23 15:40:37 -07:00
Paolo D'Amico
136a021d1a
Feature Flags Revamp (UX & Code) (#3675) 2021-03-23 14:34:48 -07:00
Paolo D'Amico
0b755d20bf
Dashboard empty & error states + mobile support (#3666)
* dashboard not found page

* empty dashboard graphics

* move to components (responsive)

* finish empty state component

* update rocket component

* remove unused styles

* fix mobile dashboards

* small fix

* fix cypress
2021-03-22 14:22:00 +01:00
Michael Matloka
3c0737f0fd
Plugins access control (#3486)
* Add Organization.PluginsAccess

* Rename PluginsAccess to PluginsAccessLevel

* Use Organization.plugins_access_level in can_…_plugins_via_api

* Add migration for Organization.plugins_access_level

* Remove unused PLUGINS_CLOUD_WHITELISTED_ORG_IDS

* Update access.py

* Add OrganizationPluginsAccessLevel TS enum

* Fix merge

* Disable LocalPlugin UI on Cloud

* Move away from PluginAccess interface

* Extend PluginsAccessLevel range

* Refactor PluginsAccessLevel for brevity

* Remove PluginAccess interface completely

* Add plugins managed globally

* Update migration

* Show managing org name in "Managed" plugin tag

* Smoothen some rough edges

* Smoothen more edges

* Restore correct MULTI_TENANCY default

* All the edges

* Fix most existing tests

* Remove PLUGINS_*_VIA_API env var support

* Update pluginsNeedingUpdates

* Remove can_*_plugins_via_api from instance status page

* Add tests and polish permissioning

* Update migration

* Fix typing

* Make plugin drawer UI less intrusive

* Update migration

* Fix Uninstall button condition

* Use unified _preflight status endpoint instead of the custom plugins one

* Fix plugin update label condition

* Fix "Check for updates" button condition

* Explain PluginsAccessLevel choices with comments

* Hide global plugin installation option on self-hosted

* Don't actions.loadRepository() as install org

* Improve permissioning with tests

* Satisfy mypy

* Add plugins access level to admin and fix org admin

* Check plugins access level more

* Rename endWithPeriod

* Refactor FE access control checks to accessControl.ts

* Deduplicate permissioning

* Add exception message

* Align backend and frontend plugins access level helpers

* Add plugins access level helper tests

* Fix ChartFilter
2021-03-17 15:01:55 +01:00
Tim Glaser
3b2ceee89e
Fix organization settings (#3643)
* Fix organization settings

* add test

* fix
2021-03-14 17:12:56 +01:00
Michael Matloka
e50d5912e5
Add organization settings (#3324)
* Add organization settings

* Update test_organization.py

* Fix TS issues

* Improve permissioning frontend

* Fix an import

* minor typos

* fix cypress

* Make use of AnalyticsDestroyModelMixin

* Solve nits

* Rework Invites empty state

* Update organization test

* Improve organization tests and permissioning

* Polish Organization Settings frontend

* Improve Members UX

* Use RestrictedArea in Project Settings

* Fix APITestMixin._create_user

* some minor copy adjustments

* Use email initial in ProfilePicture

* Clean up org deletion tests

* Improve org/project deletion UX and reliability

* Enhance org deletion test

Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
2021-03-10 13:09:35 +01:00
Tim Glaser
26fdfabc35
Fix funnels with only events (#3593) 2021-03-06 11:37:55 +01:00
Paolo D'Amico
78bfade0df
Post-release 1694-dashboards (#3513) 2021-03-03 07:17:43 -08:00
Paolo D'Amico
7e10a4f06c
Release Persons V2 (persons-2353) (#3461) 2021-03-02 11:18:04 -08:00
Karl-Aksel Puulmann
b7bdad90eb
Add test for bar charts (#3474)
* Add test for bar charts

Since our charts are rendered on a canvas we can't really interact well
with it. Instead, we take a screenshot now (new dependency).

* Debug error in CI

* Make sure images are the same size on CI and locally
2021-02-26 16:50:36 +02:00
Karl-Aksel Puulmann
eb7b361401
Fix: funnels & retention person links, funnel calculations (#3483)
* Fix links to people from Retention modal and Funnels.

More details under issue https://github.com/PostHog/posthog/issues/3480

* Fix funnel calculations on self-hosted

Broken by renames within https://github.com/PostHog/posthog/pull/3301

* Handle cached calculations in e2e test runner

When executing e2e tests, celery tasks are evaluated immediately. Previously
due to the caching the funnels never loaded as we overwrite the results immediately.

* Add test for navigating to persons from funnels

* Test for retention visualization and person navigation
2021-02-25 17:41:25 +02:00
Karl-Aksel Puulmann
f36495bec6
Filters: Select multiple for equality/inequality (#3422)
* Don't colorize sql for output

* Handle setting array props as values

* Handle arrays exact/is_not property filters

Also updates tests to use parameterization

* Avoid autoclosing PropertyFilter popup

As key changes, old one got removed from DOM

* Improve filter UX

Don't allow filter to become multi-line and keep inputs the same size.

Previous flex={1} was doing flex: 1 1 auto which was messing things up

* Fix typescript issue

* Handle array lookups in postgres

* Update types

* Fix fixture to recreate tables

* Make replace spaces logic consistent with what was there before

* Handle list filtering better in postgres

* Update frontend tests

* Handle edge case: Switching between multi operator and single operators
2021-02-25 16:54:55 +02:00
Eric Duong
66641546d7
Trend component test (#3278)
* temp changes

* more tests

* initial trend tests

* merge master

* remove creepover

* remove stubs

* remove unnecessary check

* remove flaky test

* change fixture

* remove console

* focus tests

* update names

* make test more specific

* remove unecessary check

* fix insights file

* checkout insight file
2021-02-17 13:50:41 +02:00
Karl-Aksel Puulmann
c6d00fc3ee
Allow viewing sessions/recordings on persons page (#3302)
* Add spec for being able to reach session recording to sessions page

* Add basic Person page component test

* Fix viewing session recorings on person page

I broke this in a recent PR by narrowing the URLs down too much to fix
another bug (logics clashing).

* Persons tests pass again
2021-02-11 21:14:28 +02:00
Eric Duong
1dac0ad699
Persons component test (#3266)
* WIP: get cypress something doing

* Get a test running

* Get css loading, stub posthog

* Move helpers to separate file

* Givens > given2

It plays nicer with beforeEach

* Test for session filters

* Test date navigation

* Test filtering

* Try keep old tests running

* Try get tests running under CI

* Prettify fixtures

* Cleanup, use cypress 6

* Add yarn build

* Fix e2e cypress tests

* given2 => givens

* Rename `frontend-test-runner` to `e2e-test-runner`

* Fix cypress test

* add devdependency

* add scaffold

* person test

* fix type

* fix check

* inline fixture

Co-authored-by: Karl-Aksel Puulmann <oxymaccy@gmail.com>
2021-02-10 08:25:17 +02:00
Karl-Aksel Puulmann
30b6692920
React component tests with cypress (#3233)
* WIP: get cypress something doing

* Get a test running

* Get css loading, stub posthog

* Move helpers to separate file

* Givens > given2

It plays nicer with beforeEach

* Test for session filters

* Test date navigation

* Test filtering

* Try keep old tests running

* Try get tests running under CI

* Prettify fixtures

* Cleanup, use cypress 6

* Add yarn build

* Fix e2e cypress tests

* given2 => givens

* Rename `frontend-test-runner` to `e2e-test-runner`

* Fix cypress test

* Add webpack-preprocessor as a devDependency

* Improve freezing time

* Make css inclusions automatic for component tests
2021-02-09 17:28:01 +02:00
Tim Glaser
2297b0f1cf
Grab all events and properties even if job hasn't run yet (#3200)
* Grab all events and properties even if job hasn't run yet

* Use next on generator instead of list comprehension

* Replace IndexError with StopIteration

* Don't raise StopIteration at all

* try delay

Co-authored-by: Michael Matloka <dev@twixes.com>
2021-02-08 18:34:27 +01:00
Karl-Aksel Puulmann
4c98e78c0f
Fix LinkButton component (#3194)
Caused by Link component updates

Fixes https://github.com/PostHog/posthog/issues/3193
2021-02-04 13:26:38 +02:00
Paolo D'Amico
167a79fa2f
Release navigation-1775 (#3167)
Co-authored-by: yakkomajuri <yakko.majuri@gmail.com>
2021-02-04 10:53:00 +01:00
Eric Duong
f1bb651b70
removee proj seetting test (#3179) 2021-02-03 19:15:16 +02:00
Karl-Aksel Puulmann
15d04d9e56
Improve demo data (#3111)
* Unify clickhouse and pg demo data creation

* Adapt yakkos demo data generation to normal demo

* Split demo.py into subfolder

* Add original, web data import

Note that elements are not added because they can't be added
automagically :(.

* Improve wording

* dont generate dashboards

* try get tests passing

* fix types

* Get cypress tests green
2021-01-28 13:50:01 +02:00
Karl-Aksel Puulmann
da92f0bbac
Allow rolling feature flags out to multiple groups (#3030)
* Support multiple groups in feature flags model

This will be part of #3007

I did not do a migration since it would cause errors for decide endpoint
once migrations have run but new schema not up.

* Update analytics_metadata method

* Allow defining multiple groups in frontend

* Allow sorting

* Update tests, allow submit without filters.

* Update cypress

* Avoid N+1 queries

* Indicate filters better in table
2021-01-26 01:18:05 +02:00
Eric Duong
4b7b0d5abe
just match on localhost (#3002) 2021-01-19 21:37:30 +01:00
Tim Glaser
1a6207d791
Upload static cohort csv (#2932)
* Upload static cohort using CSV, closes #2868

* fix tests

* Fix tests

* Fix e2e test

* Avoid double inserts

* Speed up query

* Move to params

* fix tests

* Use JSON instead of protobuf

* unused import

* produce instead of produce_proto

* Insert directly into clickhouse, no need for kafka

* a few quick fixes

* insert in batch to clickhouse

* test SQLi since we can't really trust what we are inserting

* Extra check for duplicates

Co-authored-by: James Greenhill <fuziontech@gmail.com>
2021-01-15 11:19:31 +01:00
Eric Duong
70a6ecb407
Separate math aggregates (#2885)
* separate math aggregates

* add data attr back

* adjust cypress

* make sure tooltip is viewable

* Show total by default

Co-authored-by: Tim Glaser <tim@glsr.nl>
2021-01-11 14:28:29 +01:00
Tim Glaser
e7cf836d59
Merge person modal (#2644)
* WIP merge person

* Warning message

* Fix test

* fix

* Fix small issues
2020-12-10 15:37:30 +01:00
Michael Matloka
1c80aca907
Cleaned up system status page (#2682)
* 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
2020-12-09 13:57:12 +01:00
Paolo D'Amico
f654a37077
Fix cypress projectSettings (#2674)
* fix projectSettings

* allow /insights or /demo

* fix

* real fix
2020-12-07 11:53:14 +01:00
Tim Glaser
a426b427a4
Cohort table improvements (#2576)
* WIP cohort table improvements

* More fixes

* More fun

* Fix updating cohorts

* Add search box

* thing

* stuf

* Fix multiple exports

* Fix tests

* fix

* fix test

* fix

* fix
2020-12-04 19:50:43 +01:00
Paolo D'Amico
d6f3079bc0
Release actions-ux-201012 (#2615)
* remove legacy code & feature flag references

* ActionStepV2 refactor

* ActionEditV2 refactor

* fix backend tests

* fix more tests

* more fixes

* last fix

* address feedback
2020-12-03 10:59:11 +01:00
Tim Glaser
1dd7f7342b
Use select for numerical properties (#2628)
* Use select for numerical properties

* fix test

* fix isssues
2020-12-02 15:18:50 +01:00
Tim Glaser
7d7dca8f47
Remove signup process from cypress (#2264)
* Remove signup process from cypress

* adds cypress preflight tests

* run migrations before setting up test data

* fix preflight tests

* Update preflight.js

Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
2020-12-02 14:12:43 +01:00
Eric Duong
29c952a1ce
remove flake filter by event test (#2580) 2020-11-30 17:36:24 -06:00
GalDayan
000f76a5bd
2094 too many distinct (#2480)
* BUGFIX: re adding feature flag after deleting

* Suppport max array length and show more when need

* refactor

* added 3 distint id to user

* 2 users

* Revert "BUGFIX: re adding feature flag after deleting"

This reverts commit bf9b019b9e.

* added more distinct

* added data-cy and person tests

* fixed tab

* added search for person if not first
2020-11-25 11:12:22 +01:00
Tim Glaser
f47e8b97ae
Combine events and actions into select box (#2394)
* WIP combine events and actions

* Alignment

* Keyboard navigation select box

* Fix enter and other small issues

* add icons

* fix renderinfo

* Hide scrollbar

* Refactor

* Fix cypress test

* fix cypress test
2020-11-24 18:28:44 +01:00
Tim Glaser
e4842f7fed
Feature flag table improvements (#2448)
* Feature flag table improvements

* sorter created by

* fix cypress test
2020-11-23 19:43:03 +01:00
Yakko Majuri
671d1febee
Fix Feature Flags typo (#2463) 2020-11-23 12:07:43 +01:00
GalDayan
f39575d388
Add feature flag filters and roll out precentage to main table (#2387)
* added rollout precentage and filters to main table

* added enable editing

* Seperate to component

* Remove row design

* renamed

* delete unused code

* added typing

* Removed not necessary commits

* prettier ts file

* Formatting

* fix yarn linter

* changed rollout precentage

* changed

* rollbacked the changes

* If there is not roll out percent

* add test on rollout precentage

* refactor

* added filter selectio ntest

* delete unused data-attr

* update attribute

* added filters check
2020-11-20 11:03:14 +01:00
Paolo D'Amico
9ad483064b
Refactor people & users to persons (#2413) 2020-11-17 08:40:48 -06:00
Michael Matloka
33823e8648
Refactor sceneLogic to TypeScript and add dynamic page title (#2361)
* Refactor sceneLogic to TypeScript and add dynamic page title

* Add Cypress checks

* Run prettier

* Fix Cypress checks

* Improve camelCaseToTitle JSDoc

* Move "PostHog" to end of page title

* Use bullet

* Remove actions

* Rerun tests

* Fix new Events page after merge conflict
2020-11-13 17:50:23 +01:00
Tim Glaser
25a053cda4
Manage events view (#2319)
* Finish the local dev w/ proto setup

* WIP manage events view

* Add task, add interface etc

* Move everything to 'manage events' view

* Move all settings into single dropdown (can be reverted)

* Urls for tabs

* Fix migration

* Clickhouse and humanize volume

* Fix cypress test

* Fix sidebar cypress

* Fix cypress again

* Fix some small issues

* Address comments

* Corect naming

* Fix test'

Co-authored-by: James Greenhill <fuziontech@gmail.com>
2020-11-13 14:59:08 +01:00
Tim Glaser
0649615ad7
Closes #2347 Fix shared dashboards (#2351)
* Closes #2347 Fix shared dashboards

* Fix cypress test
2020-11-12 15:31:10 +01:00
Tim Glaser
4dffff5543
1999 improve feature flag ux (#2243)
* #1999 improve feature flag ux

* Fix

* Fix cypress test
2020-11-11 12:22:15 +01:00
Yakko Majuri
b5809139b3
Remove Live Actions Altogether (#2303)
* Remove Live Actions Altogether

* remove backend code

* remove accidental file
2020-11-10 16:35:33 +01:00
Paolo D'Amico
cd251df713
[WIP] New UI (#2114)
Co-authored-by: Michael Matloka <dev@twixes.com>
2020-11-05 12:55:33 +00:00
Marius Andra
fce86ef46d
Plugin v8 (#1946)
* plugin progress

* blah

* add posthog config for plugins

* test gitignore

* new functionality for plugins

* support local plugin paths

* also ignore symlinks

* add positional argument

* fixes

* small fixes

* config polish

* config passed to posthog plugin

* ooooooops

* symlink fix

* cleanse dir before loading

* add cache to plugins

* pickle the goods

* unlink symlink

* pass full config

* unlink even if link points to nothing

* fix fix

* return none if value is empty

* plugin model

* plugins scene

* add config schema to plugins

* install plugins

* save descriptions

* show descriptions

* edit plugin

* save plugin config

* plugin modal

* uninstall plugins

* UX cleanup

* add "required" to plugin config

* open plugin modal after install

* split to subcomponents

* install custom plugins

* rework backend for model plugins

* Plugins on models

* simple reload pubsub

* fix apps not installed

* fix master/main issue

* fix reload command

* use the github api to get the default branch

* init plugins only if not running migrate/makemigrations

* store plugins zip archives in postgres

* tag plugins to specific versions

* save plugins in pluginConfig

* update pluginConfigs instead of adding new rows, remove from redux on uninstall

* remove debug

* run plugins from db by team

* reload when deleting

* remove debug

* smarter handling of dynamic plugins, support local plugins again

* improve typings, add some nicer warnings

* yarn lock file after merge

* squash migrations and add "locked" field to plugins

* error if folder not found in zip

* unregister plugins

* skip plugin init in test mode

* basic plugin test

* avoid mutating the same prop hash

* add pip tools to requirements.txt

* fix mypy, fix manage.py script error

* avoid plugins with mypy

* mypy fix

* abstract redis into plugin and add team_id to reload

* refactor and start work on syncing with posthog.json

* start testing plugin loading from json

* test plugin deletion

* test for syncing plugins from config

* complete and then test local json plugin sync

* test converting back and forward between an local and http path

* remove global plugin config from plugins array in posthog.json

* rename configSchema --> config_schema

* fix migration after merge

* rename from_cli to from_json

* mypy

* import pip after plugin loaded

* show error details

* raise exceptions visible to the frontend

* sync plugins on load

* access control to updating plugins from the web

* access control

* remove posthog.json from git

* test config schema from json

* if you can install via the web, you can also configure

* remove separate view access

* title as "Plugins" instead of "Installed Plugins" if we can't install ourselves and don't see the repository

* add self.team to plugin base class

* add instance_init method

* refactor into files

* sync global plugin config from json

* make global plugins work, add test

* global plugins in interface, make them take precedence over local plugins

* add comments to plugin base class

* reload/reset plugins before each test

* add error field to plugins

* add many plugin zips

* add many plugin zips, fix imports

* store errors on plugin object and test them

* fix types

* add null to error

* can be with any team ID in the test

* save problems running plugins in the plugin_config model

* try to create redis connection pool only once

* throw if no redis

* mypy

* get instance inside heartbeat and not top level

* try caching pubsub

* try pip install with -q

* install pip externally

* remove uuid and typing, now in stdlib

* more verbosity

* add pip back

* catch exceptions

* quiet and no input for pip

* check plugin reload every 10sec on new task

* fix type errors

* fix requirements error message

* use repository.json

* only load and reload plugins on workers

* rename task

* support local js plugins via py-mini-racer

* load js plugins from zip files

* extract jsplugin class and convert to syntax that uses global functions instead of initializing a class

* process events via grpc

* process events with the "posthog-plugins" queue to enable plugins

* remove old native python & mini racer plugin code

* default to false

* change env vars

* fix test

* remove grpc tools

* skip plugins in migrate.py scripts

* fix migration

* change output of settings debug banner to STDERR

* start posthog plugin server with worker

* try to fix python 3.7 test

* add fallback for the optional argument

* annoying CI test debug

* try to finally fix python 3.7 test

* here we go again

* move plugins under instance

* move plugins npm start into its own folder

* more console.log debugginf

* and again

* move plugins to separate script

* more prints

* fix test error

* docker config

* small fixes

* dckerfile fix

* reload plugins via pubsub, upgrade version

* plugins that support team setup code

* sync if made changes from config

* move plugins in menu

* require node 14 in heroku for better plugin support (namely ?. support)

* bump node version in dockerfiles

* update node versions for github actions

* update the concurrency for heroku workers

* update the concurrency for heroku workers (add link)

* Fix migrations after merge

* add ignore_result to process_event tasks

* fix: docker-preview run in parallel bug

* change order of commands

* remove separate plugins server conf script

* clarify intent

* revert castaway change

* add context to plugins/sync.py

* change everything to ValidationError

* delegate destroy to super

* no request to repository url if can't install

* make the if cleaner

* add clarifying line

* add clarifying line

* fix url field type

* rename get_redis_instance to get_client, move to posthog.redis

* remove duplicate validation

* flip if around

* simplify api logic

* simplify plugin_config api, fix global_plugin error

* remove unnecessary field rename

* mypy

* Plugins UI (#2090)

* base UI

* more UI

* load plugin image if available

* toggle enabled plugin

* plugin cards for available

* custom plugins

* change plugin configuration to drawer

* asks for confirmation when enabling or disabling a plugin

* loading state

* separation of concerns, leave new styles for separate PR

* general improvements

* remove button when installation is not available

* preemptively avoid merge conflict with #2114

* move papercups widget & hide bottom bar when drawer is open

* allow clicking the entire plugin card

* address all feedback

* move plugins under "project" menu

* Hide "configure" from globally enabled plugins

Co-authored-by: Marius Andra <marius.andra@gmail.com>

* add plugins opt in toggle to project/plugins

* choose pipeline based on team setting

* add "beta"

* plugin opt-in opt-out pages

* adjust install button

* remove tasks that are never called, remove PLUGINS_ENABLED global key

* fix responsive card display

* fix typo and drawer width

* skeleton fixes

* typo

* use "posthog-plugin-server" npm package

* "posthog-plugin-server" doc

* require the plugin server to be online before enabling plugins

* remove a few needeless "?." cases

* add hint for config_schema

* add hint for errors

* show plugin errors

* stop clicks if clicking on error

* show plugin errors

* loading indicators

* reload plugins when opting in/out

* nicer beta tag

* add frontend type

* fix mypy error

* fix test

* disable plugins if MULTI_TENANCY

* upgrade plugin-server version

* save event with plugin error

* upgrade plugin server

* squashed & optimized migrations

* remove unused import

* updates opt-in copy & hides tech details for cloud version

* fix cypress tests

* compare with None

* change plugins url and add redirect

* remove ellipsis

* use code snippet in plugin errors

* change github regex

* fix loading flickering on installing plugins

* add comment to plugin archive

* fix python style

* remove pip-tools (relic from the python plugin era)

* hard pin plugin server version

* remove copying of posthog.json from dev dockerfile (breaks if file doesn't exist, copied later anyway)

* update lockfile

Co-authored-by: James Greenhill <fuziontech@gmail.com>
Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
2020-11-02 15:08:30 +01:00