* Do not shadow Kafka default columns _timestamp and _offset
* drop the columns only on the kafka_ tables
* include data types
* fields cleanups
* datetime -> datetime64
* double import datetime
* Only allow aggregate functions on numerical properties
* Don't pass onclick when math option disabled
* Add numerical property to demo
* Fix demo
* Update test_demo.py
* Fix Team.event_properties_numerical updating
* Account for extra Team query
* Fix math selection options
* Change "cost" to "price"
* Create Omni-Person model for managing people in Clickhouse
* type fixes
* rebase all the things
* cleanups
* id -> uuid for events in clickhouse
* cleanups and type checks
* Further cleanups and uuid conversions
* kafka fix
* break out serializer across kafka clients
* fix a few bugs w/ datetime types
* basic fix for people kafka table
* fix migration errors (copy pasta errors)
* Use KafkaProducer for Omni Person emitting
* setup mock kafka producer
* undo some work for inserting
* Test TestKafkaProducer
* change if order, obvious mistake
* remove unnecessary function arg
* Fix getters for new column
* Test fixes
* mirror columns across element queries
* firm up handling of timestamps
* only return timestamps for handle_timestamp
* Correct heroku config for Kafka
* added password strength bar
* minor style fixes
* retry cypress
* extract password strength logic to standalone component
* Refactor with TypeScript
* updated strength algo
* fix linter comments
* fix comment
* made distinct chars test less strict
* use zxcvbn
* Make score numbers nicer and add a color between red and orange
Slightly pedantically made passwordScore always a multiple of 20%. :)
* run prettier
Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
Co-authored-by: Michael Matloka <dev@twixes.com>
Co-authored-by: Marius Andra <marius.andra@gmail.com>
* Use ReplacingMergeTree for elements, remove element_groups and use elements_hash as a virtual "pk"
* remove unused ELEMENT_GROUP_TABLE_SQL
* merge fixes
* use redis cache to avoid writing duplicate elements to clickhouse
* move fakeredis to requirements.txt
* add team_id to cache key
* remove elements_group kafka table references
* add elements_hash to clickhouse element serializer
* fix cache key
* rename few keys
* add test runner to ease pycharm dev
* fix a some mypy errors
* remove typo
Co-authored-by: Eric <eeoneric@gmail.com>
* add test runner to ease pycharm dev
* fix broken import
* drop and recreate the clickhouse test db before running tests
* fix person uuid str json serialization issue
* make kafka optional in tests
* fix inits
* remove need for kafka in person.py
* fix a bunch of mypy errors
* fix function and add process_event to pipeline
* fixed missing params and tests
* change uuid and fix types
* types
* optimize for merge prop test
* make ClickhouseProducer to produce to clickhouse one way or another
* annotate types
Co-authored-by: Eric <eeoneric@gmail.com>
Co-authored-by: James Greenhill <fuziontech@gmail.com>
* Send a basic event ingestion status report
* Fix status report
* Fix at last
* Improve instance analytics
* Satisfy mypy
* Include users as active if they logged in after period
* minor typo fix
* Move auth classes to a file of their own
* Fix report
* Enhance report, per team data
* Add persons active in period count and fix capturing
Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
* Query optimizations
* more sql optimizations
* checkpoint
* fix migration
* add UUID field to person
* use django signals to signal that clickhouse needs to be updated
* cleanup person logic
* cleanups
* update migration
* Don't setup the django signals unless we are for sure using ee setup
* expecting back to 30 queries for capturing with new person
* add .venv to .gitignore
* add env back to .gitignore
Co-authored-by: Ubuntu <ubuntu@ip-172-31-73-18.ec2.internal>
* Add CSV renderer to Event serializer
* Add Export button to Event Table page
* Add failsafe in case request doesn't exist
* Update event.py
* Format changes in event.py with black
* Add ignore typing to CSV Renderer import in event.py
* Prettify EventsTable.js
* Improve CSV format detection
* Fix person.py
* Make events CSV query params in line with table logic
* Remove queryset limiting
* Add 100K limit to Event CSV export
* Add limit tooltip
Co-authored-by: Michael Matloka <dev@twixes.com>
* Show underlying property value type
* Use icons to signify property type
* Fix null
* Update null
* Use Bulb instead of QuestionCircle for boolean
* Change "parsed" to "parsable"
* Update style
* Publish events to Kafka for consumption
* Commit avro idl's for event schemas
* convert client to use github.com/dpkp/kafka-python
* events loaded into clickhouse from Kafka
* remove cruft
* Publish events to Kafka for consumption
* convert client to use github.com/dpkp/kafka-python
* remove cruft
* include kafka migrations
* bugfixes for migrations
* use constants for consistency
* wrap up local migrations
* small fixes
* tune ups
* generate clickhouse uuid script
* set CLICKHOUSE_SECURE=False by default if running in TEST or DEBUG
* convert person_id to UUID, make adding `person_id` optional, add distinct_ids already in the `create_person` function
* Fix test_process_event_ee.py, remove all calls to Person.objects.*
* add back util
* fix broken imports
* improve process_event test clickhouse queries
* change property parsing
* indentation wrong missing calls
* uuid4 instead of call to CH
Co-authored-by: Eric <eeoneric@gmail.com>
Co-authored-by: James Greenhill <fuziontech@gmail.com>
* Add tests for FOSS
* Ignore ee specific tests
* Exclude more ee only tests
* conditional tests, nice
* Add ee_available to settings
* fix test
* Fix test
* Test commit
* Fix test again
* Remove EE_MISSING in favor of EE_AVAILABLE completely
* Rename bottom-notice.html to overlays.html, to better reflect purpose
* Add greeting
* Fix ee import
Co-authored-by: Michael Matloka <dev@twixes.com>
* Make trailing slash optional in DRF endpoints
* Update tests
* Make authenticate_secondarily a util
* Use @authenticate_secondarily in /decide
* Add API-specific 404 error and improve URLs
* Update tests
* Don't use @authenticate_secondarily in /decide
* Update urlpatterns
* Update test_user.py
* fixed formatting
* minor changes to tests and _ endpoints
Co-authored-by: Yakko Majuri <yakko.majuri@gmail.com>
* Final ClickHouse module before wiring up to Posthog
* convert private functions to public for ee access
* Fix mypy error
* fix up a few typos breaking tests