2020-01-25 00:57:57 +01:00
|
|
|
{
|
2020-04-14 12:05:45 +02:00
|
|
|
"name": "posthog",
|
|
|
|
"description": "",
|
|
|
|
"version": "0.0.0",
|
|
|
|
"repository": {
|
|
|
|
"type": "git",
|
|
|
|
"url": "https://github.com/posthog/posthog.git"
|
|
|
|
},
|
2020-09-01 15:58:13 +02:00
|
|
|
"author": "PostHog Inc.",
|
2020-04-14 12:05:45 +02:00
|
|
|
"bugs": {
|
|
|
|
"url": "https://github.com/posthog/posthog/issues"
|
|
|
|
},
|
|
|
|
"homepage": "https://github.com/posthog/posthog#readme",
|
2020-09-01 15:58:13 +02:00
|
|
|
"license": "MIT",
|
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
|
|
|
"engines": {
|
2022-03-15 10:48:56 +01:00
|
|
|
"node": ">=16 <17"
|
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
|
|
|
},
|
2020-04-14 12:05:45 +02:00
|
|
|
"scripts": {
|
2021-11-03 09:50:24 +01:00
|
|
|
"copy-scripts": "mkdir -p frontend/dist/ && yarn copy-scripts:array && yarn copy-scripts:recorder",
|
2021-08-24 15:36:30 +02:00
|
|
|
"copy-scripts:array": "cp node_modules/posthog-js/dist/array.js* frontend/dist/",
|
2022-03-16 18:25:15 +01:00
|
|
|
"copy-scripts:recorder": "cp node_modules/rrweb/dist/record/rrweb-record.min.js frontend/dist/recorder.js && cp node_modules/rrweb/dist/record/rrweb-record.min.js.map frontend/dist/recorder.js.map && cat node_modules/rrweb/dist/plugins/console-record.min.js >> frontend/dist/recorder.js && sed -i -e s/rrweb-record.min.js.map/recorder.js.map/ frontend/dist/recorder.js && sed -i -e 's/\\/\\/\\# sourceMappingURL=recorder/window.rrweb = {record: rrwebRecord}\\n\\/\\/# sourceMappingURL=recorder/g' frontend/dist/recorder.js",
|
2020-11-24 16:07:36 +01:00
|
|
|
"test": "jest",
|
2021-11-03 09:50:24 +01:00
|
|
|
"start": "concurrently -n ESBUILD,TYPEGEN -c yellow,green \"yarn start-http\" \"yarn run typegen:watch\"",
|
|
|
|
"start-http": "yarn start-http:esbuild",
|
|
|
|
"start-http:esbuild": "yarn clean && yarn copy-scripts && node frontend/build.mjs --dev",
|
|
|
|
"start-http:webpack": "mkdir -p frontend/dist/ && cp -a frontend/public/* frontend/dist/ && npm run copy-scripts && webpack serve",
|
|
|
|
"start-https": "yarn start-https:webpack",
|
|
|
|
"start-https:webpack": "yarn start-http:webpack --https",
|
|
|
|
"start-docker": "yarn start-docker:esbuild",
|
|
|
|
"start-docker:esbuild": "yarn start-http:esbuild --host 0.0.0.0",
|
|
|
|
"start-docker:webpack": "yarn start-http:webpack --host 0.0.0.0",
|
2022-01-18 20:32:28 +01:00
|
|
|
"start-ch-dev": "concurrently -n DOCKER,ESBUILD,TYPEGEN -c red,blue,green \"docker-compose -f docker-compose.dev.yml pull && CH_WEB_SCRIPT=./ee/bin/docker-ch-dev-backend docker-compose -f docker-compose.dev.yml up\" \"yarn run start-http --host 0.0.0.0\" \"yarn run typegen:watch\"",
|
|
|
|
"clear-ch-dev": "docker compose -f docker-compose.dev.yml stop && docker compose -f docker-compose.dev.yml rm -v && docker compose -f docker-compose.dev.yml down",
|
2021-11-03 09:50:24 +01:00
|
|
|
"clean": "rm -rf frontend/dist && mkdir frontend/dist",
|
2021-11-03 12:30:48 +01:00
|
|
|
"build": "yarn copy-scripts && yarn build:esbuild",
|
2021-11-03 09:50:24 +01:00
|
|
|
"build:webpack": "echo \"Building Webpack\" && NODE_ENV=production webpack --config webpack.config.js && cp -a frontend/public/* frontend/dist/",
|
|
|
|
"build:esbuild": "node frontend/build.mjs",
|
|
|
|
"prettier": "prettier --write \"./**/*.{js,mjs,ts,tsx,json,yaml,yml,css,scss}\"",
|
|
|
|
"prettier:check": "prettier --check \"./**/*.{js,mjs,ts,tsx,json,yaml,yml,css,scss}\"",
|
2020-10-27 09:57:06 +01:00
|
|
|
"typescript:check": "tsc",
|
2021-01-22 15:36:30 +01:00
|
|
|
"typescript:clean": "tsc --build --clean",
|
2020-08-24 23:02:13 +02:00
|
|
|
"eslint": "eslint frontend/src",
|
2021-01-22 15:36:30 +01:00
|
|
|
"typegen:write": "kea-typegen write",
|
|
|
|
"typegen:check": "kea-typegen check",
|
2020-11-02 15:55:20 +01:00
|
|
|
"typegen:watch": "kea-typegen watch",
|
2021-06-24 09:00:59 +02:00
|
|
|
"typegen:clean": "find frontend/src -type f -name '*Type.ts' -delete",
|
2021-02-03 13:03:22 +01:00
|
|
|
"format:python": "black . && isort .",
|
|
|
|
"format:js": "yarn prettier && yarn eslint --fix",
|
2021-08-25 10:38:33 +02:00
|
|
|
"format": "yarn format:python && yarn format:js",
|
2022-03-15 17:36:51 +01:00
|
|
|
"storybook": "start-storybook -p 6006",
|
|
|
|
"build-storybook": "build-storybook",
|
2022-01-18 20:32:28 +01:00
|
|
|
"arm64:ch-dev:start": "concurrently -n DOCKER,ESBUILD,TYPEGEN -c red,blue,green \"docker-compose -f docker-compose.arm64.yml pull && CH_WEB_SCRIPT=./ee/bin/docker-ch-dev-backend docker-compose -f docker-compose.arm64.yml up\" \"yarn run start-http --host 0.0.0.0\" \"yarn run typegen:watch\"",
|
|
|
|
"arm64:ch-dev:clear": "docker compose -f docker-compose.arm64.yml stop && docker compose -f docker-compose.arm64.yml rm -v && docker compose -f docker-compose.arm64.yml down",
|
2021-09-13 13:01:24 +02:00
|
|
|
"arm64:services": "yarn arm64:services:stop && yarn arm64:services:clean && yarn arm64:services:start",
|
2022-05-20 10:56:50 +02:00
|
|
|
"arm64:services:start": "docker-compose -f docker-compose.arm64.yml up zookeeper kafka clickhouse object_storage",
|
2022-01-18 20:32:28 +01:00
|
|
|
"arm64:services:stop": "docker-compose -f docker-compose.arm64.yml down",
|
2022-05-20 10:56:50 +02:00
|
|
|
"arm64:services:clean": "docker-compose -f docker-compose.arm64.yml rm -v zookeeper kafka clickhouse object_storage",
|
2022-03-21 13:15:50 +01:00
|
|
|
"dev:migrate:postgres": "export DEBUG=1 && source env/bin/activate && python manage.py migrate",
|
2022-05-04 04:36:58 +02:00
|
|
|
"dev:migrate:clickhouse": "export DEBUG=1 && source env/bin/activate && python manage.py migrate_clickhouse",
|
|
|
|
"prepare": "husky install"
|
2020-04-14 12:05:45 +02:00
|
|
|
},
|
|
|
|
"dependencies": {
|
2022-05-09 11:34:28 +02:00
|
|
|
"@babel/core": "^7.17.10",
|
|
|
|
"@babel/runtime": "^7.17.9",
|
2021-06-01 13:19:38 +02:00
|
|
|
"@monaco-editor/react": "^4.1.3",
|
2021-07-19 18:40:31 +02:00
|
|
|
"@popperjs/core": "^2.9.2",
|
2021-06-17 12:06:55 +02:00
|
|
|
"@posthog/chart.js": "^2.9.6",
|
2022-05-27 14:51:23 +02:00
|
|
|
"@posthog/plugin-scaffold": "1.0.2",
|
2021-10-15 04:41:47 +02:00
|
|
|
"@posthog/react-rrweb-player": "^1.1.3",
|
2021-03-30 10:28:57 +02:00
|
|
|
"@posthog/simmerjs": "0.7.4",
|
2021-07-19 21:00:59 +02:00
|
|
|
"@react-hook/size": "^2.1.2",
|
2022-03-09 12:56:34 +01:00
|
|
|
"@sentry/react": "^6.18.0",
|
2021-10-12 02:30:25 +02:00
|
|
|
"@types/d3-sankey": "^0.11.2",
|
2021-05-14 13:45:09 +02:00
|
|
|
"@types/md5": "^2.3.0",
|
2022-01-22 01:27:30 +01:00
|
|
|
"@types/react-input-autosize": "^2.2.1",
|
2022-01-25 12:29:03 +01:00
|
|
|
"@types/react-transition-group": "^4.4.4",
|
2021-11-18 23:05:14 +01:00
|
|
|
"@types/react-virtualized": "^9.21.14",
|
2021-11-24 20:02:38 +01:00
|
|
|
"antd": "^4.17.1",
|
2021-03-18 18:49:45 +01:00
|
|
|
"antd-dayjs-webpack-plugin": "^1.0.6",
|
2020-04-14 12:05:45 +02:00
|
|
|
"babel-preset-nano-react-app": "^0.1.0",
|
2021-12-16 18:36:05 +01:00
|
|
|
"chart.js": "^3.6.2",
|
2021-03-18 18:49:45 +01:00
|
|
|
"chartjs-adapter-dayjs": "^1.0.0",
|
2021-12-16 18:36:05 +01:00
|
|
|
"chartjs-plugin-crosshair": "^1.2.0",
|
2021-07-01 04:27:36 +02:00
|
|
|
"clsx": "^1.1.1",
|
2021-07-20 00:28:57 +02:00
|
|
|
"core-js": "3.15.2",
|
2020-08-17 15:40:11 +02:00
|
|
|
"d3": "^5.15.0",
|
2020-04-14 12:05:45 +02:00
|
|
|
"d3-sankey": "^0.12.3",
|
2021-11-24 20:02:38 +01:00
|
|
|
"dayjs": "^1.10.7",
|
2020-10-13 15:44:56 +02:00
|
|
|
"expr-eval": "^2.0.2",
|
2021-01-13 13:55:06 +01:00
|
|
|
"fast-deep-equal": "^3.1.3",
|
2020-10-13 15:44:56 +02:00
|
|
|
"fuse.js": "^6.4.1",
|
2022-05-20 18:14:58 +02:00
|
|
|
"kea": "^3.0.1",
|
|
|
|
"kea-forms": "^3.0.1",
|
|
|
|
"kea-loaders": "^3.0.0",
|
|
|
|
"kea-localstorage": "^3.0.0",
|
|
|
|
"kea-router": "^3.0.0",
|
|
|
|
"kea-subscriptions": "^3.0.0",
|
2021-10-14 19:17:42 +02:00
|
|
|
"kea-waitfor": "^0.2.1",
|
2022-05-20 18:14:58 +02:00
|
|
|
"kea-window-values": "^3.0.0",
|
2021-05-14 13:45:09 +02:00
|
|
|
"md5": "^2.3.0",
|
2022-06-01 15:50:48 +02:00
|
|
|
"posthog-js": "1.23.0",
|
2020-08-11 10:52:43 +02:00
|
|
|
"posthog-js-lite": "^0.0.3",
|
2020-04-14 12:05:45 +02:00
|
|
|
"prop-types": "^15.7.2",
|
2021-01-05 14:42:19 +01:00
|
|
|
"query-selector-shadow-dom": "0.8.0",
|
2021-04-14 14:53:56 +02:00
|
|
|
"rc-trigger": "^5.2.5",
|
2020-09-01 15:58:13 +02:00
|
|
|
"react": "^16.13.1",
|
2020-09-03 14:37:20 +02:00
|
|
|
"react-dom": "^16.12.0",
|
2020-08-17 15:40:11 +02:00
|
|
|
"react-draggable": "^4.2.0",
|
2021-10-14 16:51:27 +02:00
|
|
|
"react-grid-layout": "^1.3.0",
|
2022-01-22 01:27:30 +01:00
|
|
|
"react-input-autosize": "^3.0.0",
|
2021-03-12 14:54:29 +01:00
|
|
|
"react-markdown": "^5.0.3",
|
2021-07-19 18:40:31 +02:00
|
|
|
"react-popper": "^2.2.5",
|
2021-04-10 20:52:00 +02:00
|
|
|
"react-resizable": "^1.11.1",
|
2020-10-18 12:53:24 +02:00
|
|
|
"react-shadow": "^18.4.2",
|
2021-01-08 09:35:12 +01:00
|
|
|
"react-sortable-hoc": "^1.11.0",
|
2020-08-26 16:36:34 +02:00
|
|
|
"react-syntax-highlighter": "^13.5.1",
|
2022-01-22 01:27:30 +01:00
|
|
|
"react-textarea-autosize": "^8.3.3",
|
2022-03-09 12:36:57 +01:00
|
|
|
"react-toastify": "^8.2.0",
|
2022-01-25 12:29:03 +01:00
|
|
|
"react-transition-group": "^4.4.2",
|
2021-04-29 17:56:20 +02:00
|
|
|
"react-virtualized": "^9.22.3",
|
2021-04-27 01:56:34 +02:00
|
|
|
"resize-observer-polyfill": "^1.5.1",
|
2022-05-13 02:13:49 +02:00
|
|
|
"rrweb": "^1.1.3",
|
2020-04-14 12:05:45 +02:00
|
|
|
"sass": "^1.26.2",
|
2021-04-30 17:27:20 +02:00
|
|
|
"use-debounce": "^6.0.1",
|
2021-11-19 17:50:43 +01:00
|
|
|
"use-resize-observer": "^8.0.0",
|
2020-09-25 02:37:55 +02:00
|
|
|
"zxcvbn": "^4.4.2"
|
2020-04-14 12:05:45 +02:00
|
|
|
},
|
|
|
|
"devDependencies": {
|
2022-05-09 11:34:28 +02:00
|
|
|
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
|
|
"@babel/plugin-proposal-private-property-in-object": "^7.16.7",
|
|
|
|
"@babel/plugin-transform-react-jsx": "^7.17.3",
|
|
|
|
"@babel/plugin-transform-runtime": "^7.17.10",
|
|
|
|
"@babel/preset-env": "^7.17.10",
|
|
|
|
"@babel/preset-typescript": "^7.16.7",
|
2020-06-02 11:39:53 +02:00
|
|
|
"@hot-loader/react-dom": "^16.13.0",
|
2022-03-08 14:17:59 +01:00
|
|
|
"@storybook/addon-actions": "^6.4.19",
|
|
|
|
"@storybook/addon-essentials": "^6.4.19",
|
|
|
|
"@storybook/addon-links": "^6.4.19",
|
2022-03-17 08:45:47 +01:00
|
|
|
"@storybook/addon-storysource": "^6.4.19",
|
2022-03-08 14:17:59 +01:00
|
|
|
"@storybook/react": "^6.4.19",
|
2022-03-21 14:18:47 +01:00
|
|
|
"@testing-library/jest-dom": "^5.16.2",
|
2021-10-20 16:12:32 +02:00
|
|
|
"@testing-library/react": "^12.1.2",
|
|
|
|
"@testing-library/user-event": "^13.5.0",
|
2021-12-16 18:36:05 +01:00
|
|
|
"@types/chart.js": "^2.9.34",
|
|
|
|
"@types/chartjs-plugin-crosshair": "^1.1.1",
|
2022-03-01 16:41:34 +01:00
|
|
|
"@types/clone": "^2.1.1",
|
2021-07-14 23:52:26 +02:00
|
|
|
"@types/d3": "^7.0.0",
|
2020-11-24 16:07:36 +01:00
|
|
|
"@types/jest": "^26.0.15",
|
2021-10-14 19:08:39 +02:00
|
|
|
"@types/query-selector-shadow-dom": "^1.0.0",
|
2021-01-13 00:46:59 +01:00
|
|
|
"@types/react": "^16.14.2",
|
2020-10-08 00:43:23 +02:00
|
|
|
"@types/react-dom": "^16.9.8",
|
2021-10-14 16:51:27 +02:00
|
|
|
"@types/react-grid-layout": "^1.1.2",
|
2021-04-10 20:52:00 +02:00
|
|
|
"@types/react-resizable": "^1.7.2",
|
2020-10-14 10:42:06 +02:00
|
|
|
"@types/react-syntax-highlighter": "^11.0.4",
|
|
|
|
"@types/zxcvbn": "^4.4.0",
|
2020-08-17 15:40:11 +02:00
|
|
|
"@typescript-eslint/eslint-plugin": "^3.6.0",
|
|
|
|
"@typescript-eslint/parser": "^3.6.0",
|
|
|
|
"autoprefixer": "^9.7.4",
|
2020-05-13 14:17:00 +02:00
|
|
|
"babel-eslint": "^10.1.0",
|
2021-08-13 02:45:19 +02:00
|
|
|
"babel-jest": "^27.0.6",
|
2020-04-14 12:05:45 +02:00
|
|
|
"babel-loader": "^8.0.6",
|
|
|
|
"babel-plugin-import": "^1.13.0",
|
2020-08-14 17:02:57 +02:00
|
|
|
"concurrently": "^5.3.0",
|
2021-11-09 14:55:02 +01:00
|
|
|
"cors": "^2.8.5",
|
2020-08-17 15:40:11 +02:00
|
|
|
"css-loader": "^3.4.2",
|
2020-04-14 12:05:45 +02:00
|
|
|
"cssnano": "^4.1.10",
|
2022-03-08 14:17:59 +01:00
|
|
|
"esbuild": "^0.14.25",
|
|
|
|
"esbuild-plugin-less": "^1.1.6",
|
|
|
|
"esbuild-sass-plugin": "^1.8.2",
|
2020-09-01 15:58:13 +02:00
|
|
|
"eslint": "^7.8.0",
|
2021-09-29 12:49:29 +02:00
|
|
|
"eslint-config-prettier": "^8.3.0",
|
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
|
|
|
"eslint-plugin-cypress": "^2.11.2",
|
2022-05-25 16:38:44 +02:00
|
|
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
2020-07-08 09:45:23 +02:00
|
|
|
"eslint-plugin-prettier": "^3.1.4",
|
|
|
|
"eslint-plugin-react": "^7.20.3",
|
2022-03-08 14:17:59 +01:00
|
|
|
"eslint-plugin-storybook": "^0.5.7",
|
2021-11-09 14:55:02 +01:00
|
|
|
"express": "^4.17.1",
|
2020-09-01 15:58:13 +02:00
|
|
|
"file-loader": "^6.1.0",
|
2021-11-03 09:50:24 +01:00
|
|
|
"fs-extra": "^10.0.0",
|
2021-02-09 16:28:01 +01:00
|
|
|
"givens": "^1.3.6",
|
2021-08-25 10:38:33 +02:00
|
|
|
"history": "^5.0.1",
|
2021-03-12 14:54:29 +01:00
|
|
|
"html-webpack-harddisk-plugin": "^1.0.2",
|
|
|
|
"html-webpack-plugin": "^4.5.2",
|
2022-05-03 17:12:46 +02:00
|
|
|
"husky": "^7.0.4",
|
2020-11-24 16:07:36 +01:00
|
|
|
"jest": "^26.6.3",
|
2022-01-14 11:02:39 +01:00
|
|
|
"kea-test-utils": "^0.2.2",
|
2022-05-24 12:38:18 +02:00
|
|
|
"kea-typegen": "^3.1.0",
|
2020-11-05 13:55:33 +01:00
|
|
|
"less": "^3.12.2",
|
|
|
|
"less-loader": "^7.0.2",
|
2020-09-01 15:58:13 +02:00
|
|
|
"lint-staged": "~10.2.13",
|
2021-10-13 06:45:51 +02:00
|
|
|
"msw": "^0.35.0",
|
2021-11-03 09:50:24 +01:00
|
|
|
"path-browserify": "^1.0.1",
|
2022-05-27 14:31:17 +02:00
|
|
|
"pixelmatch": "^5.3.0",
|
|
|
|
"pngjs": "^6.0.0",
|
2020-04-14 12:05:45 +02:00
|
|
|
"postcss-loader": "^3.0.0",
|
2021-09-29 12:49:29 +02:00
|
|
|
"prettier": "^2.3.1",
|
2021-06-01 13:19:38 +02:00
|
|
|
"raw-loader": "^4.0.2",
|
2020-09-01 15:58:13 +02:00
|
|
|
"sass-loader": "^10.0.1",
|
2022-03-08 14:17:59 +01:00
|
|
|
"storybook-addon-turbo-build": "^1.0.1",
|
2021-05-31 19:13:50 +02:00
|
|
|
"style-loader": "^2.0.0",
|
2021-12-09 06:54:32 +01:00
|
|
|
"timekeeper": "^2.2.0",
|
2021-01-13 00:46:59 +01:00
|
|
|
"ts-node": "^9.1.1",
|
2022-05-09 11:34:28 +02:00
|
|
|
"typescript": "^4.6.4",
|
2021-03-12 14:54:29 +01:00
|
|
|
"webpack": "^4.46.0",
|
|
|
|
"webpack-cli": "^4.5.0",
|
2021-07-24 01:58:29 +02:00
|
|
|
"webpack-dev-server": "^3.11.2",
|
|
|
|
"whatwg-fetch": "^3.6.2"
|
2020-04-14 12:05:45 +02:00
|
|
|
},
|
2020-09-01 15:58:13 +02:00
|
|
|
"optionalDependencies": {
|
|
|
|
"fsevents": "^2.1.2"
|
|
|
|
},
|
2020-04-14 12:05:45 +02:00
|
|
|
"lint-staged": {
|
2021-11-25 15:59:32 +01:00
|
|
|
"*.{js,jsx,mjs,ts,tsx,json,yaml,yml,css,scss}": "prettier --write",
|
|
|
|
"(frontend/**).{js,jsx,mjs,ts,tsx}": "eslint -c .eslintrc.js --fix",
|
|
|
|
"(plugin-server/**).{js,jsx,mjs,ts,tsx}": "eslint -c plugin-server/.eslintrc.js --fix",
|
2020-11-02 15:55:20 +01:00
|
|
|
"*.{py,pyi}": [
|
|
|
|
"black",
|
2022-03-01 19:54:13 +01:00
|
|
|
"flake8",
|
2020-11-02 15:55:20 +01:00
|
|
|
"isort"
|
2020-07-28 22:19:33 +02:00
|
|
|
]
|
2021-07-13 10:01:04 +02:00
|
|
|
},
|
|
|
|
"browserslist": {
|
|
|
|
"development": [
|
|
|
|
"last 2 chrome versions",
|
|
|
|
"last 2 firefox versions",
|
|
|
|
"last 2 edge versions"
|
|
|
|
],
|
|
|
|
"production": [
|
|
|
|
"defaults"
|
|
|
|
]
|
2021-11-03 09:50:24 +01:00
|
|
|
},
|
|
|
|
"browser": {
|
|
|
|
"path": "path-browserify"
|
2020-03-14 15:53:14 +01:00
|
|
|
}
|
2020-07-28 22:19:33 +02:00
|
|
|
}
|