-
Notifications
You must be signed in to change notification settings - Fork 1.9k
feat(apps): plugin source in its own model, part 2 #9854
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's stagger this deploy from the main PR but code-wise lgtm! 💪
Thanks! Had to add a quick fix based on what I saw on The migration in step 1 didn't create a This bug doesn't change how the plugins work or load, but just editing. Right now, for a few plugins, if you click "edit source", you see an error and must fill in So I added a migration to create |
* master: refactor(ingestion): Make `KAFKA_ENABLED` true by default and set `KAFKA_HOSTS` default (#9844) feat(apps): transpile frontend.tsx (#9828) feat: show api call status when adding insights to dashboards (#9817) feat: track metrics on zapier hook firings (#9866) fix(onboarding): instrumentation (#9845) feat(whitelabel-shared-dashboard): Hide branding on shared dashboards paid (#9849) fix(apps): plugin source quickfix (#9862) refactor(plugin-server): Remove `ts-jest`, use `jest.mocked` (#9861) refactor(plugin-server): Trigger public jobs with graphile insted of celery queue (#9811) chore: upgrade pip tools (#9859) feat(apps): plugin source in its own model, part 2 (#9854) chore: Update sprint_planning_retro.md (#9791) feat(apps): plugin source in its own model, part 1 (#9853) feat(matrix): Add option to save `simulate_matrix` like `setup_dev` (#9836) fix(cohort): add mapping from event to person (#9841) feat(person-on-events): Enable CI to run using both old and new queries (#9814)
* create plugin source model * edit source via plugin_source model * deprecate "source" * test plugin source updates * add support for index.ts and index.js * refactor plugin loading, support plugin sources from db * fix source code in tests * remove transpilation code * reload plugin after saving * store defaults in the db instead of persisting in form * remove fields that don't exist * remove unused fields * commit suggestion * rename to PluginSourceFile * fix code feedback * add comments * make it safer to call * convert to upsert * convert to upsert * comment on the null * revert plugin server changes * get source from new model behind the scenes * simplify * revert accidental changes * revert accidental changes * remove defaults * sync the old source field * use the source model in the plugin server * cache the source from pluginsourcefile * test that getPluginSource gets data from the database * safer null check that doesn't override `{}` in the db with `null` * fix error from migration 0233 ([] is falsy in python!)
Problem
Here's part 2 of #9825 to be merged after #9853
Changes
loadPlugin
code to treat each source (local file, zip viaplugin.archive
orPluginSourceFile
) as exactly the same.pluginsourcefile
forindex.ts
in the plugin if it exists, to avoid one extra query.How did you test this code?
I'm not fully convinced in the caching system is needed or makes sense. Probably I should use a new field in this case, instead of regurgitating
source
.Does this approach make sense?