amundsen
amundsen copied to clipboard
Allow configuration of custom features without using entry_points or needing to rebuild the app
Expected Behavior or Use Case
As we use more and more features of Amundsen, the mechanisms for configuration are starting to feel clunky. Specifically, per https://github.com/lyft/amundsenfrontendlibrary/blob/54de01bdc574665316f0517aefbd55cf7ca37ef0/docs/configuration.md#python-entry-points we need to fork the repo and maintain a custom setup.py to be able to configure announcements, custom logging, or a preview client.
Possible Implementation
Rather than using entry_points
, it seems like Amundsen could fetch the appropriate classes to load from the Python configuration set up in FRONTEND_SVC_CONFIG_MODULE_CLASS
, or from environment variables. It seems like it would be pretty straightforward to introduce a new environment variable like FRONTEND_SVC_ANNOUNCEMENT_MODULE_CLASS
and check it in https://github.com/lyft/amundsenfrontendlibrary/blob/395798025361ee140fb73c7065e9a953d94a1e35/amundsen_application/api/announcements/v0.py#L16 - and similar for preview and logging.