Configuration¶
Flask¶
The default Flask application uses a LocalConfig that looks for the metadata and search services running on localhost. In order to use different end point, you need to create a custom config class suitable for your use case. Once the config class has been created, it can be referenced via the environment variable: FRONTEND_SVC_CONFIG_MODULE_CLASS
For more examples of how to leverage the Flask configuration for specific features, please see this extended doc.
For more information on Flask configurations, please reference the official Flask documentation.
React Application¶
Application Config¶
Certain features of the React application import variables from an AppConfig object. The configuration can be customized by modifying config-custom.ts.
For examples of how to leverage the application configuration for specific features, please see this extended doc.
Custom Fonts & Styles¶
Fonts and css variables can be customized by modifying fonts-custom.scss and variables-custom.scss.
Python Entry Points¶
The application also leverages python entry points for custom features.
In your local setup.py
, point the entry points detailed below to custom classes or methods that have to be implemented for a given feature.
Run python3 setup.py install
in your virtual environment and restart the application for the entry point changes to take effect.
entry_points="""
[action_log.post_exec.plugin]
analytic_clients_action_log = path.to.file:custom_action_log_method
[preview_client]
table_preview_client_class = amundsen_application.base.examples.example_superset_preview_client:SupersetPreviewClient
[announcement_client]
announcement_client_class = amundsen_application.base.examples.example_announcement_client:SQLAlchemyAnnouncementClient
"""
Action Logging¶
Create a custom method to handle action logging. Under the [ action_log.post_exec.plugin]
group, point the analytic_clients_action_log
entry point in your local setup.py
to that method.
Preview Client¶
Create a custom implementation of base_preview_client. Under the [preview_client]
group, point the table_preview_client_class
entry point in your local setup.py
to that class.
For those who use Apache Superset for data exploration, see this doc for how to implement a preview client for Superset.
Announcement Client¶
Create a custom implementation of base_announcement_client. Under the [announcement_client]
group, point the announcement_client_class
entry point in your local setup.py
to that class.
Currently Amundsen does not own the input and storage of announcements. Consider having the client fetch announcement information from an external web feed.
Authentication¶
Authentication can be hooked within Amundsen using either wrapper class or using proxy to secure the microservices on the nginx/server level. Following are the ways to setup the end-to-end authentication. - OIDC / Keycloak