Skip to content
This repository has been archived by the owner on Jan 15, 2019. It is now read-only.

Plugin System #62

Open
sumnerevans opened this issue Mar 7, 2018 · 1 comment
Open

Plugin System #62

sumnerevans opened this issue Mar 7, 2018 · 1 comment

Comments

@sumnerevans
Copy link
Member

sumnerevans commented Mar 7, 2018

We need a plugin system. For example, Visplay needs to be able to access information from the system about projects.

Technical Implementation

  • NO REFLECTION IN THE MOZARELLA CODEBASE. Any reflection should be done in the plugin itself. For example, if a plugin wants to register itself with the root controller, it has to call setattr on the root controller.
  • Plugins can (but never should) modify the Mozarella models. If you need an N-1 relation between a built-in model and your model, create an XREF table. This is a bit messy from the plugin end, but it's good from a DBA admin perspective because it is trivial to revert.
@jackrosenthal
Copy link
Contributor

What exactly do you mean by no reflection in Mozzarella codebase? We already use getattr, setattr, hasattr everywhere. Why disallow it?

Why must plugins use setattr? Will there be config stored as a string? Explain what you were thinking...

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants