* Get rid of control version
* Don't show option to license on billing page
* Remove ff constant
* Include plans in billing response
* Update types for the plans
* Hook up the top of the table
* Fill out the rest of the table
* Hook up the rest of the table
* Add tooltip with feature descriptions
* Fix type errors
* Fix more type issues
* Remove old plan data
* clean up
* exclude features we don't want to show in table
* Tolerate missing plan keys
* fix mypy
* Update cypresss test
* Fix mypy again
* Just get whatever default plans
* fix tests
* Update snapshots
* Update snapshots
* moar test fixes
* use is_free to know if free plan
* Say the free allotment is incl'd if base has $ price
* Update snapshots
* Don't change anything having to do with licenses
* Fix type error
* Update snapshots
* Update snapshots
* Use product name from stripe
* only lowercase
* don't hardcode plan names
Co-authored-by: Emanuele Capparelli <k@emkpp.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Problem
@annikaschmid accidentally deleted an insight from a dashboard and then couldn't put it back.
The insight API response was returning the deleted dashboard in the insight's dashboards field. That meant the UI didn't offer the ability to add it to that dashboard because it thought it was already added
Even though there was a test that protected against this which passes and I couldn't figure out why the application behaves well in the test and not when running 🤷
Changes
The dashboard_tiles relation is correct. And we should eventually remove the use of the dashboards relation.
So, let's expose it. This begins the deprecation of the dashboards field on the Insight API.
And overwrites the content of the dashboards field with the correct values when returning a representation of the model.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Michael Matloka <dev@twixes.com>
* more useful validation error message
* cache for only a very short amount of time
* should be exporting dashboards with a different field name for description
* Update snapshots
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* feat(query-tags): add tag for number of entitities
* Update snapshots
* Update snapshots
* Update snapshots
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* fix(trends): ensure formula + breakdown works correctly for all series
* handle cohort ids
* Update snapshots
* address review
* fix
* actual fix
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* chore(clickhouse): add IF NOT EXISTS to all create commands
As part of https://github.com/PostHog/posthog/pull/13753 I was adding a
test to verify that the Kafka -> MergeTree pipeline works. I added Kafka
and MV tables to test setup for this, which highlighed that a few of
these SQL create table commands were failing on the second run.
It looks like for the e.g. MergeTree tables we add an `IF NOT EXISTS`
which avoids these errors, so I'm also adding to the other tables.
* update create_clickhouse_tables_quickly references
* Revert table creation changes
* chore(person-merges): add person merges ClickHouse table
To enable speeding up queries we want to include a person merges table
which we can use to join on to be able to "correct" event person_ids
that may be needed due to person merges happening.
The specific difference from this implementation and the distinct_id
lookup is the cardinality of the table should be :fingerscrossed: much
lower, with the majority of events already having the correct person_id
associated with them.
The distinct_id joining is particularly problematic in that the join key
on the right hand side of a join needs to be loaded into memory as a
Hash map, for the purposes of ClickHouse performing a HashJoin.
1. distinct_ids are arbitrary length strings
2. every event needed to be joined via a distinct_id. With the
person_id join we can use an left outer join making the right hand
side much smaller if we simply omit person ids we think are the
"canonical" id.
* add some todos
* empty __init__
* wip
* Add Kafka and Materialized views
* add some comments
* exclude created_at field
* duplicate materialized view schema from kafka table
* fix default now
* whitespace
* remove EMPTY AS
* Use EMPTY AS
* Update schema snapshots
* update name extract
* fix table name escaping
* update snapshots
* fix escaping
* create kafka tables late
* Add posthog clickhouse migrations to github actions change list
* Add tombstone flag
* add missing comma
* update snapshots
* partition by oldest_event
* make kafka table names consistent with others
* Update posthog/models/person_overrides/sql.py
Co-authored-by: Xavier Vello <xavier@posthog.com>
* Align naming with existing variables and add a test
* add missing override changes
* Update test
* Update snapshots
* delete kafka and mv tables at end of tests
* fix date formatting issue
* assert results is list
* Update snapshots
* Update snapshots
* Add comment re. using EMPTY AS SELECT
* Add comment about where version will come from
* Update posthog/clickhouse/test/test_person_overrides.py
Co-authored-by: James Greenhill <fuziontech@gmail.com>
* Update snapshots
Co-authored-by: Xavier Vello <xavier@posthog.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: James Greenhill <fuziontech@gmail.com>
* Add docs and support for group/person type filtering in property definitions API
* Feature flagged endpoint logic for person and group properties
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Problem
Year in PostHog is done with (for now) but it's still in the code
Changes
remove the cheeky button
remove the feature flag
no adding a year in posthog url to the app context any more
keep the images around so that existing links e.g. in Twitter keep working
replace the page with a placeholder so if folk re-visit the link they get something without hitting the DB
duplicates the sleeping hog image because (at least one of) either to keep life simple or because I don't know how to reference the existing one in the template
track whether that is happening
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* feat(data-exploration): rename to "Event Explorer"
* feat(data-exploration): saved queries in data table
* fix test
* put columns back
* cleanup
* räägime inglise keeles
* show no columns if loading data of different type
* default to off for showing saved queries
Problem
see #10838
stacked on top of #13864
When matching on elements the toolbar always includes any href selector if present. This means that elements whose link changes cannot be matched.
E.g. the third item in a list will be different for different views of the page or the profile button on a web page will have a unique id in the href
Changes
by default not include href in selectors
let user turn on href matching if they want to
fixes tooltips for the HeatmapStats window
fly-by de-antsing of the `HeatmapStats window
Problem
Every time the heatmap elements selector runs we traverse the DOM and cache all of the elements in memory
We do this even if the DOM hasn't changed
We then query within the DOM for a selector match even if we've just recently found exactly that match.
Changes
Only traverses and stores the DOM when the URL changes
Converts some error messages to log messages so they're less worrying for people reporting issues
Caches element lookups when processing API response