0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-28 00:46:45 +01:00
posthog/CHANGELOG.md
Yakko Majuri de3ce0115d
Update CHANGELOG (1.14.0) (#1563)
* updated changelog

* added s3 images
2020-09-03 21:21:54 +02:00

54 KiB
Raw Blame History

Changelog

1.14.0 - Thursday 03 September

Insight History Screenshot

Eric really killed this one with a massive pull request where 55 files were modified.

As a result, PostHog now allows you to look through a history of the charts you've made on 'Insights', so that you don't have to worry about forgetting the exact filters you used to reach a certain conclusion, or feeling bad about not having saved that perfect chart from a week ago.

Experiment with insights all you want, now without the fear of losing your work.

Personal API Keys Screenshot

We also merged another huge PR (58 files changed!) from Michael that's been a long time in the making because we wanted to get this just right.

To facilitate integrations with external services, as well as make the experience of using our API simpler and safer, we have now introduced Personal API Keys. They can be generated and deleted on the PostHog setup page. It's worth noting that this is a private API Key, compared to your public 'Team API Key' used in the snippet.

Lastly, because of this change, we have deprecated authentication with username and password for API endpoints.

Public Roadmap Screenshot

At PostHog, one of our core values is transparency. As a result, we try to make as much information public as we can, from what we're working on to how we operate.

As such, it felt important to us to release a public roadmap where our entire community can view what we're up to, what we'll work on next, and what our objectives are for the future. For a long time we have had a rough roadmap available in our Handbook, but, by now having our roadmap on GitHub, we can directly link issues to the board, and community members can also vote (with emojis 👍) on issues they believe to be important.

Furthermore, we have always encouraged members of our community to open issues for bugs, feature requests, or just anything at all they want to see changed. Now, issues opened by the community can be incorporated on the roadmap, so you can have an idea of how your suggestions fit in with our development process.

Keep the tickets coming!

As an open core company, we have to conciliate our open source efforts with our ability to generate revenue. Generating revenue is how we're able to continue to sustain our extensive work in the open source space.

Thus, after a lot of brainstorming and calls with the likes of Sid Sijbrandij, CEO of multibillion dollar open core company GitLab, we settled on a business model that allows PostHog to be a sustainable company in the open source space.

This led to the creation of two key things: an ee subdirectory on our main repo, and a new repository called posthog-foss. We'll be explaining these in more detail in the future, but, for now, you should know that to run fully MIT-licensed software, you can either clone the main repo and delete the ee subdirectory (without any consequences), or clone our posthog-foss repo, which is a mirror of the main repository without proprietary code.

In addition, if you're an enterprise customer looking for added functionality and improved performance, contact us at sales@posthog.com to discuss the license for using our proprietary features.

To ensure the security of your PostHog instance, it's important that you use a randomly-generated unique SECRET_KEY. This key is used by Django to encrypt cookies, calculate hashes, and generate tokens, making it of high importance.

Prior to this version, we denoted the importance of this in our Docs, but did not enforce it in our software. Now, to enhance security, PostHog will not allow you to run the server without setting it.

Many of our deployments generate and set this key by default, so that you will not need to worry about it. This is the case with our Heroku One-Click deployment, for example. However, other methods may not automatically do this (we're working on it!). As such, if you run into any issues when updating PostHog, make sure you have a unique SECRET_KEY set.

You can find more information about this on our 'Securing PostHog' page and should always feel welcome to ask any questions on our community Slack group.

Bug Fixes and Performance Improvements

1.13.0 Thursday 13 August

We're happy to announce that PostHog is now available as a destination on Segment.

Our friends at Segment have built a platform that works as an integrated data pipeline to pull in all your customer data. It's a cool way to combine PostHog with ie Google Analytics or Salesforce data.

If you're already a Segment user, check us out on their Destination Catalog. Otherwise, if you're dealing with multiple tools for data collection and analysis, consider using Segment! They have a generous startup scheme too, like us.

We consolidated trends, sessions, funnels, retention, and user paths into one page for much faster answers to the questions you may have!

PostHog has a feature where Actions can be posted to Slack or Microsoft Teams. This helps you notify your team in real time of the user actions that really matter. Just got a new user? Ping your sales team. Did a user try out a new feature? Get an alert!

The integration used to be very basic - but now you can edit the message format directly in the UI.

PostHog provides an irrefutably awesome toolbar. This lets you interact with your site or app and understand who is doing what. We've been in Beta for a few weeks, and spent a lot of time interviewing early users - thank you to everyone that took part!

We have now eliminated many bugs and improved the UX, so this feature will be on by default for all new PostHog users.

You can annotate graphs in PostHog - mention big releases, new features, or changes to your UX.

Now, it's quicker and easier to get a quick read on what happened that caused something funky in your graphs.

We've also made all annotations default to being global. That means if you create an annotation in one graph (or in the annotations page), it is visible across any dashboard graph that covers that date range. No need to fear losing your annotations.

Bug Fixes and Performance Improvements

1.12.0 - Friday 29 July

  • Shared Dashboards

Dashboard on a TV in your office? Want to have a public stats page? Share a dashboard with someone who doesn't have a PostHog account? You can now publicly share a dashboard. Just click "Share Dashboard" and enable sharing. You'll get a link that's publicly accesible.

Changed your mind? You can always disable sharing.

  • Aggregate Functions

Want to know the average revenue per user? Want to know the lowest browser version anyone is using? You can now do Sum, Max, Min and Avg calculations on any event property and graph them in trends!

  • Global Annotations

Digging through git commits to find out what changed to make the graphs go hay-wire? No more! You can now annotate when something happened (a big release, a bugfix or a launch) and make it super easy for your team-mates to figure out what's going on. Now global.

As part of this, you can now also manage, add and delete annotations from a central screen.

  • Funnel Step Time

You can now see how long it takes users on average to get through steps in a funnel.

  • Regex Filtering

Regex master? Put those skills to use on any property with regex filtering

  • Retention Table Improvements

Previously the retention table was hardcoded to only recognize the $pageview event as a retention event. Now, you can select any action or event to measure retention on.

Clicking on any section in the retention table will tell you exactly what users fall in that item.

Bug Fixes and Performance Improvements

1.11.0 - Friday 17 July

  • Annotations

  • Cohort filters

  • Retention table filtering

  • Many toolbar fixes.

heatmap

Bug fixes and performance improvements

1.10.1 - Thursday 2 July 2020

Bugfixes

  • Actually include the version bump when you push a release! 🐛
  • Add flutter docs and reorder flow #1134
  • Black all the things! #1136

1.10.0 - Wednesday 1 July 2020

Toolbar

  • It's like inspect element, but for user data.

inspect

  • Easily see the ranking of which parts of the page your users are interacting with the most:

heatmap

  • We learned a ton about our product and website within minutes of trying this out.

toolbar dance

Feature flags

  • Feature flags let you roll out changes to users with a certain property, or to a percentage of users, or some combo of the two.

feature flags

Other exciting, enthralling and invigorating features

  • Flutter Integration. You asked for it and now it's here!
  • Retention page. PostHog already had stickiness, but now there is a table that demonstrates perhaps more clearly how your users are coming back (or not!)

retention view

  • Better onboarding. We've had a go at redoing how our set up flow works, and will be tracking if it helps more people get through PostHog's own funnel!
  • Platform.sh deployment. A very simple, new and trendy way to get up and running!
  • Porter development. Join the cool kids and do web development in the cloud. Thank you so much to porter-dev for creating this PR.
  • Event name filtering. By popular demand, you can now filter the events table by the event name. Happy debugging your implementations!

filter by event name

Bug fixes and performance improvements

1.9.0 - Thursday 18 June 2020

  • Sessions view sessions overview
  • You can then see exactly how a user interacted with your app: sessions more detail This should really help with debugging, or just trying to get a detailed view of what users are up to.

Better testing

Develop PostHog with Porter

Management command for millions of events

Set properties to anonymous users

Bug fixes and performance improvements

1.8.0 - Wednesday 3 June 2020

cumulative graphs

Paths start point

Paths filtering by properties

Actions property filter

1.7.0 - Wednesday 27 May 2020

Comparison charts

Hover breakdown

property keys with explanations

automatic domain detection

1.6.0 - Wednesday 20 May 2020

1.5.0 - Wednesday 13 May 2020

1.4.0 - Wednesday 6 May 2020

  • Added filtering of properties individually. For both trends and funnels, you can now add filters for each event/action individually events

  • Added Breakdown by properties in graph. graph

  • Session time series, you can now see how time spend in your app changes over time session time series

  • Export cohorts as CSV export cohorts

  • Edit frontend selector for actions in PostHog frontend selector

  • Setup page redesign setup page redesign

  • Restrict access to instance by IP address (#679, #682)

  • Fix today + hourly filtering not working (#700)

  • Fix timestamps if users had wrong dates set locally (#693, #697, #699)

  • Add $screen to events table (#681)

  • Add noindex to login/signup screens (#702)

  • Speed up cohorts page and use antd (#706)

1.3.0 - Wednesday 29 April 2020

  • We have added an Android library so you can now capture events in your Android app and send them to PostHog, we can automatically capture screen changes, and send any other events that you like

android events

  • There is now, also a PostHog Gatsby plugin

  • We have added URL wildcards so you can use % as a wildcard when setting up an action

url wildcards

  • We have also updated the Trends page design as well as adding trends info hints. Trends is the default homepage when logging into PostHog.

trend layout

trend hints

  • The Events table can now be sorted by timestamp.

timestamp reverse

  • Added a more strict flake8 setup and improvements
  • Upgraded Kea to 2.0.0-beta.5
  • Implemented AntD into Setup page
  • You can now allow access to your PostHog instance by IP address for more security. this does not apply to the JS snippet or the event capture API
  • Added model for typing of filters
  • Added copy code to clipboard changes
  • Use forward for header in middleware if applicable
  • Move get_ip_address to utils
  • Fixed redirect to be explicit for /Trends
  • Moved models to separate files
  • Added link to docs for local deployment
  • Warn instead of crash on invalid selector when using the front-end toolbar

Bug Fixes

  • Fixed issue with default trends route
  • Fixed Setup page operations not working
  • Fixed crash when hovering over events
  • Fixed issues with $create_alias when users have multiple distinct_ids attached to them
  • Fixed trends save to dashboard issue
  • Fixed adding dashboarditem with set dates

1.2.0 - Wednesday 22 Aptil 2020

  • We have added an iOS library so you can now capture events in your iOS app and send them to PostHog, we can automatically capture screen changes, and send any other events that you like

Click here for instructions on how to install it on your app.

  • We have added Sessions to /trends with two modes: “Average session length”, which shows you how long sessions are and how many, and “distribution” which makes it super easy to spot whether sessions are uniformly distributed or whether there are outliers

sessions gif

  • Funnels can be filtered by properties

Funnel properties

  • Added indexes so loading /trends is super fast, even with millions of events
  • We have offloaded storing events to workers, so that calls to our events API are non-blocking, and you can scale insertion of events independently from the rest of PostHog
  • Removed drf-yasg in favor of our own hosted docs
  • Added layout/header components of Ant design
  • Updated property filters to be "tokenized"
  • Updated the way we display actions/events in trend graphs if those action/events have no data in a given timeframe
  • Updated property filters so that they 'AND' rather than 'OR' if you filter multiples

Bug Fixes

  • Fixed unable to sign up to teams
  • Fixed stickniess not loading
  • Fixed property filter bug that would break when multiples were applied in some circumstances
  • Fixed setting event name in action
  • Fixzed event filtering with teams

1.1.0.1 - Thursday 16 April 2020

  • Fix issues with custom events while creating actions

1.1.0 - Wednesday 15 April 2020

Important! We've added Celery workers. We'll move tasks to workers to speed up a lot of actions in PostHog. See update instructions on how to enable workers.

  • Users can integrate PostHog with Slack to send push notifications when events are triggered

Slack action

  • Funnels can now be filtered by Events not just Actions
  • Funnels can be filtered by time intervals as well

funnel intervals funnel with events

  • Added Ant Design to PostHog

ant design sidebar ant design buttons

  • Trends can now be filtered by different time intervals

time intervals

  • Added dotted lines to represent data yet to be determined

Dotted line example

  • Trends graphs have fixed the X axis at 0

x axis 0

  • Daily Active Users (DAUs) added as a default dashboard

DAU dahsboard

  • Changed the way we rendered urls in Paths to reflect better on different screen sizes

paths

  • Updated UX when saving actions to be clearer

actions save

  • Changed the way we store events properties, we now store all event names and property names against the Team
  • Refactored PropertyFilters into a function
  • Added filter by event name to event properties
  • Added mypy rules
  • Using dateutil for datetime
  • Added timestamp index to allow event tables to load at large volumes
  • Updated helm charts to work with redis and workers
  • Added a Babel plugin to reduce antd module load
  • We now use offset instead of timestamp of posthog-js to avoid the wrong user time - previously if your local machine had a time set different to your location (or if the time was just off) we would have displayed that time.
  • Using npm instead of yarn in copy command as Heroku doesn't have yarn
  • We now use posthog-js to get array.js
  • Removed unused indexes from migrations
  • Updated PostHog snippet

Bug Fixes

  • Removed unused future import to prevent Heroku deployments breaking
  • Fixed dupliucated users in Cohorts
  • Type Migration to prevent /trend bug when navigating to a url from a dashboard
  • Added missing type in initial dahsboard element creattion to fix the same bug as above
  • Fixed collectstatic on fresh Heroku updates
  • Fixed network timeout yarn for antd
  • Fixed npm command to copy array.js
  • Fixed date filter not detecting moment
  • Fixed redis error when upgrading Heroku
  • Stopped throwing an error if a user doesn't have a distinct id
  • Fixed a trends people bug that ignored the time interval selected
  • Fixed site_url pass to slack from request

1.0.11 - Wednesday 8 April 2020

Important! We've added Celery workers. We'll move tasks to workers to speed up a lot of actions in PostHog. See update instructions on how to enable workers.

  • Users can filter the trends view by any event rather than just actions

events in trends

  • Users can now change password in /setup

password change

  • Users can also reset password at login screen
  • Added a logout button

logout button

  • Added GitHub / GitLab Social Authorization

social auth

  • Added Stickiness explanation in /trends > Shown As > Stickiness

Stickiness explanation

  • Precalculated events that matched actions, this massively speeds up anything that uses actions
  • Added Celery background workers
  • Added gunicorn workers in docker-server script
  • Added email opt in for PostHog Security and Feature updates
  • Removed yarn cache in production image
  • Cleaned docker yarcn cache
  • Reduced size of Docker images by ~80MB
  • Set default password for postgres in docker-compose.yml
  • Sped up the event insert by only loading actions that were really necessary
  • Migrated ip field to event property
  • Updated all links to point to new docs domain
  • Added GitLab API url
  • Added Async JS snippet
  • Docker and server updates for helm

Bug Fixes

  • Fixed some instances of Cohort page hangs
  • Fixed demo actions not being recalculated
  • Fixed breakdown error on DAUs where tables could not be filtered
  • Fixed array.js
  • Fixied ActionStep.url_ so that it can be null

1.0.10.2 - Friday 3 April 2020

  • Precalculate Actions to speed up everything (dashboards/actions overview etcetera)
  • Fix error running Docker file

1.0.10.1 - Wednesday 1 April 2020

  • Fixes for Helm charts

1.0.10 - Wednesday 1 April 2020

  • Users can now be identified directly from Trend Graphs

users in trend graph

  • Added demo data to new instances of /demo

demo data copy

  • Built a Helm Chart for PostHog

  • Ordering is now by timestamp instead of id

  • Fixed typing errors

  • Fixed funnels not working if order was set incorrectly

  • Avoided team leakage of person properties

  • Fixed live actions error that resulted in opening multiple events

1.0.9 - Wednesday 25 March 2020

  • Stickiness now shown on Trend Graph

stickiness

  • Funnel builder changes

funnel builder

  • Changed 'Add event property filter' to 'Filter events by property'.

  • Added drop down to all filters for event properties

filters

  • Added '_isnot' and 'does not contain' to properties filters

doesnotcontain

  • Moved API key to it's own box

  • Various performance updates

  • Bug fixes

1.0.8.2 - Wednesday 18 March 2020

  • Fixes bug where events wouldn't be filtered under /person or /action.

1.0.8 - Wednesday 18 March 2020

  • Moved actions into /event submenu

moved action

  • Improved Actions Creation

improved actions creation

  • Delete user data

delete user data

  • Various performance improvements

  • Bug fixes

  • Turbolinks: Support for navigating between pages with the toolbar open

1.0.7 - Wednesday 10 March 2020

  • Added changelog and reminder to update to app.
  • Filtering action trends graphs

filtering action trends gif

  • Exact/contains matching for URLs in actions

exact/contains matching gif

  • Filtering paths by date

Filtering paths by date

  • Graphs show numbers

graph show numbers

  • Allow multiple URLS when creating actions

multiple urls when creating actions

  • Better property filters

image

  • API change If you're using the trends api, filtering by action ID is deprecated in favour of api/action/trends?action=[{"id":1}]