-
Notifications
You must be signed in to change notification settings - Fork 147
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
Custom routes + Further notification cleanup #309
Conversation
Codecov Report
@@ Coverage Diff @@
## master #309 +/- ##
=========================================
+ Coverage 71.57% 71.6% +0.02%
=========================================
Files 143 143
Lines 3684 3701 +17
Branches 459 462 +3
=========================================
+ Hits 2637 2650 +13
- Misses 1014 1018 +4
Partials 33 33
Continue to review full report at Codecov.
|
@jinhyukchang can you give your input on the changes in Now that I think about it, we could also modify our our custom authentication method and return some default "service user" for our new use case where a service is hitting a custom endpoint as opposed to a real user. What do you think? |
Reverted the change to |
@danwom PTAL |
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.
Looks fine on my end, but maybe you'll want to get @jinhyukchang to look as well?
Jin was fine with the changes I tagged him to look at in our private repo, will go ahead and merge this. |
* Clean up doc (#249) * Remove example folder in FE (#251) * Add better logging for profile page views (#239) * add stalebot config (#264) * Update stalebot setting (#268) * Adds the request timeout configuration (#275) * Adds the request timeout configuration * Bumps the version to take advantage of request timeout * Update AxiosError handling (#283) * Update v0.ts * lint fix * Use Redux-Saga for Search Actions (#265) * Added redux actions and sagas instead for each search action: `submitSearch`, `setResource`, `setPageIndex`, `loadPreviousSearch`, and `UrlDidUpdate`. This greatly simplifies the `SearchPage` logic in preparation for adding filters. * Added `navigation-utils`. * Removed `SQUASH COMMITS` from the PR template (#287) Removed `SQUASH COMMITS` from the PR template * TagInfo now fires 'submitSearch' instead of using navigation (#285) * Remove render_template for feedback email (#293) * Remove render_template for feedback email * Fix html markup * Added auto-select resource after searching (#292) * Truncate the column type (#297) * Truncate the column type * Update truncation method * Cleanup logic * Improve table & columns description formatting (#98) (#298) * Add support for React-Markdown to editable text fields * Add support for windows via cross-env * Update EditableText component (#299) * Fix some styling issues with react-markdown * Update EditableText to use React Refs instead of ref callbacks * Add configs for table and column description max lengths * Change 'json' to 'data' field for Python Requests (#303) * Switch usage of 'json' to 'data' in metadata APIs * Use 'raw_request=True' for Envoy client post/put APIs * Update README.md (#302) * Link deeper to doc content (#304) Summary of Changes Will scroll past GitHub repo folders (specially more handy on small screens like phones/tablets) Like amundsen-io/amundsendatabuilder#147 * Fixed linebreaks with Markdown descriptions (#305) * Amundsen Notifications Without Preferences (#273) * Initial start to notifications API (#215) * initial start to notifications API * fixing some styling * fixed lint errors * update types * added tests * linter, moved notification types * addressed comments regarding imports/enum naming * fixed alphabetical order * Notifs post email functionality (#222) * initial start to notifications API * fixing some styling * fixed lint errors * update types * added tests * linter, moved notification types * added template support * made changes to reflect private changes * added helper function * fixed lint issue * addressed comments, added some type checking and cleaned up comments * testing removing test * fixed linter * fixed lint * fixed linting issues * skip type checking * fixed lint * fixed typing on get request args * removed typing for get request to fix lint issues * fixed linter again * re added test * raise exception inside of getmailclient * added exceptions * addressed comments * whitespace issue * removed calls to get_query_param * fixed syntax error * Send notification when adding/removing owner from table (#237) * basic e2e functionality for adding/removing * send_notification refactor * fix lint errors * blank line lint error * fixed syntax issue * arg typing * addressed comments, fixed code style * Prevent Self-Notifications (#243) * Prevent user from notifying themselves * removed exception * added owner check to send_notification * Fixed return for no recipients (#244) * fixed return for no recipients * fixed linter issue * Request notifications component (#238) * init of request form * basic request component * getting basic functionality in * clearing out css * removed z-index fixes and add constants * fixed string casting * added redux-saga calls * removed reset request notification * fixed tests * addressed comments, added basic test, added redux state management for opening/closing component * added tests, just need to add render test * cleaned up component tests: * addressed html/css comments * removed unecessary styling * removed collapsed class * cleaned up render method * fixed test * Open request component (#254) * added button to open up request component * removed tabledetail changes * className styling * fixed text-decoration * added tests, changed naming for OpenRequest * styling formatting * Add, Request, and Remove Email Copy (#257) * init for fixing email copy for request, add, and remove * removed print statement * fixed python unit test * fixed linter issues * addressed comments, fixed linter issues * added notification unit test * fixed test positional arg * fix test * Add notification action logging (#258) * init of adding action logging * changed location of action logging * fixed linter errors * fixed comment * addressed comments * remove request test call (#259) * hide request if description already exists (#269) * fixed open request button, request form styling (#267) * Added request dropdown component (#262) * init * made fixes * cleaned up code * fixed color issues * fixed import order * fixed styling, changed ducks/sagas * User dropdown (#263) * init * fixed sty;es * fixed test issue * fixed test * added tests, addressed comments * Request Metadata Component Tests (#270) * added tests + readonly field to stop errors * fixed tslint * addressed comments, added header tests * Request form navigation fix, dropdown fix (#272) * Request form navigation fix, dropdown fix * added test * added unique id to dropdown * Creates User Preferences page with no functionality (#266) * init * added event handlers * removed test file * added constants * addressed comments * fixed test, removed all links to page * updated test * fixed call to onclick * removed preferences page * Python cleanup + tests (#277) * Python cleanup + tests * More tests + revert some unecessary changes * Bring dropdown UI closer to design (#278) * Rename OpenRequestDescription for clarity + code cleanup + test additions (#279) * Notifications ducks cleanup + tests (#280) * Notifications ducks cleanup + tests * Fix issues * Fix template for edge case of empty form (#281) * Temporary debugging code, will revert * Temporary debugging code, will revert * Implement notification form confirmation (#289) * Preserve compatibility in base_mail_client (#290) * Notifications Configs + Doc (#291) * Add notification config * Code cleanup * More cleanup + add a test * Add some doc for how to enable features * Add config utils test + fix type error * Relative URLs to child configuration docs (#294) * Relative URLs to child configuration docs Relative URLs to docs in the same folder should do. They work for any branch, local copies of the docs - and should work better if we ever (or whenever :-) we get to having e.g a Sphinx generated site. * Update application_config.md Relative doc link * Update flask_config.md Relative doc link * Update flask_config.md Relative doc link * Remove temporary debugging code * Improve behavior of notification sending for owner editing (#296) * Initial Implementation: Notification only on success * Cleanup + tests: Notification only on success * Cleanup: Remove test code to trigger failure * Cleanup: Lint fix * Workaround for not notifying teams or alumni * Cleanup: Remove import mistake * Utilize NotificationType enums instead of hardcoded string * Remove use of render_template * More minor cleanups * Address some feedback * Cleanup * More cleanup * Notifications Improvements (#301) * Initial start to notifications API (#215) * initial start to notifications API * fixing some styling * fixed lint errors * update types * added tests * linter, moved notification types * addressed comments regarding imports/enum naming * fixed alphabetical order * Notifs post email functionality (#222) * initial start to notifications API * fixing some styling * fixed lint errors * update types * added tests * linter, moved notification types * added template support * made changes to reflect private changes * added helper function * fixed lint issue * addressed comments, added some type checking and cleaned up comments * testing removing test * fixed linter * fixed lint * fixed linting issues * skip type checking * fixed lint * fixed typing on get request args * removed typing for get request to fix lint issues * fixed linter again * re added test * raise exception inside of getmailclient * added exceptions * addressed comments * whitespace issue * removed calls to get_query_param * fixed syntax error * Send notification when adding/removing owner from table (#237) * basic e2e functionality for adding/removing * send_notification refactor * fix lint errors * blank line lint error * fixed syntax issue * arg typing * addressed comments, fixed code style * Prevent Self-Notifications (#243) * Prevent user from notifying themselves * removed exception * added owner check to send_notification * Fixed return for no recipients (#244) * fixed return for no recipients * fixed linter issue * Request notifications component (#238) * init of request form * basic request component * getting basic functionality in * clearing out css * removed z-index fixes and add constants * fixed string casting * added redux-saga calls * removed reset request notification * fixed tests * addressed comments, added basic test, added redux state management for opening/closing component * added tests, just need to add render test * cleaned up component tests: * addressed html/css comments * removed unecessary styling * removed collapsed class * cleaned up render method * fixed test * Open request component (#254) * added button to open up request component * removed tabledetail changes * className styling * fixed text-decoration * added tests, changed naming for OpenRequest * styling formatting * Add, Request, and Remove Email Copy (#257) * init for fixing email copy for request, add, and remove * removed print statement * fixed python unit test * fixed linter issues * addressed comments, fixed linter issues * added notification unit test * fixed test positional arg * fix test * Add notification action logging (#258) * init of adding action logging * changed location of action logging * fixed linter errors * fixed comment * addressed comments * remove request test call (#259) * hide request if description already exists (#269) * fixed open request button, request form styling (#267) * Added request dropdown component (#262) * init * made fixes * cleaned up code * fixed color issues * fixed import order * fixed styling, changed ducks/sagas * User dropdown (#263) * init * fixed sty;es * fixed test issue * fixed test * added tests, addressed comments * Request Metadata Component Tests (#270) * added tests + readonly field to stop errors * fixed tslint * addressed comments, added header tests * Request form navigation fix, dropdown fix (#272) * Request form navigation fix, dropdown fix * added test * added unique id to dropdown * Creates User Preferences page with no functionality (#266) * init * added event handlers * removed test file * added constants * addressed comments * fixed test, removed all links to page * updated test * fixed call to onclick * removed preferences page * Python cleanup + tests (#277) * Python cleanup + tests * More tests + revert some unecessary changes * Bring dropdown UI closer to design (#278) * Rename OpenRequestDescription for clarity + code cleanup + test additions (#279) * Notifications ducks cleanup + tests (#280) * Notifications ducks cleanup + tests * Fix issues * Fix template for edge case of empty form (#281) * Temporary debugging code, will revert * Temporary debugging code, will revert * Implement notification form confirmation (#289) * Preserve compatibility in base_mail_client (#290) * Notifications Configs + Doc (#291) * Add notification config * Code cleanup * More cleanup + add a test * Add some doc for how to enable features * Add config utils test + fix type error * Relative URLs to child configuration docs (#294) * Relative URLs to child configuration docs Relative URLs to docs in the same folder should do. They work for any branch, local copies of the docs - and should work better if we ever (or whenever :-) we get to having e.g a Sphinx generated site. * Update application_config.md Relative doc link * Update flask_config.md Relative doc link * Update flask_config.md Relative doc link * Remove temporary debugging code * Improve behavior of notification sending for owner editing (#296) * Initial Implementation: Notification only on success * Cleanup + tests: Notification only on success * Cleanup: Remove test code to trigger failure * Cleanup: Lint fix * Workaround for not notifying teams or alumni * Cleanup: Remove import mistake * Utilize NotificationType enums instead of hardcoded string * Remove use of render_template * More minor cleanups * Address some feedback * Cleanup * More cleanup * Updates for RequestMetadataForm * Switch to generating a for url + comment required for request column descriptions * Update some tests + comment out ones that need update before merge * Update some tests + comment out ones that need update before merge * Code cleanup * Update and rename notification_utils python tests * Modify resource_url check + add docstrings for python tests * Component cleanup * Cleanup component tests * Fix some typos * optimize docker (#300) * Update developer_guide.md (#310) Fix a 404 * Custom routes + Further notification cleanup (#309) * Further notification cleanup * Catch any errors getting the user for metrics + add doc for INIT_CUSTOM_ROUTES * Revert change to _build_metrics * Fix some merge conflicts * Fix some merge conflicts * Add source for notification email links (#312) * Add source for notification email links * Update TableDetail logic * Fix FlashMessage styles * Update config-types.ts (#314)
* Merge `master` into `feature/search_v2` (#253) * Clean up doc (#249) * Remove example folder in FE (#251) * Add better logging for profile page views (#239) * Added new search page layout (#250) * Added SearchPanel to search page, with new wide layout * Added 'ResourceSelector' * Add SearchBar to NavBar + update styles (#252) * Add SearchBar to NavBar + update styles * Lint fix * Code cleanup * Fix tests * Update ResourceListItem UI (#255) * WIP * Update layout * Some code cleanup * Tests * Add some starter doc for the AppConfig * Code cleanup + update UserListItem description UI * start icon -> resource icon * Moved Feedback tool to NavBar (#256) * Update Feedback Component * Update tests * Clean up some styles * reposition form * Tweak feedback style * Initial implementation of SearchFilter (#260) * Initial implementation of SearchFilter * Clean some code + add CheckBoxItem tests * Fixed warning on ResourceSelector * Add/fix some more tests * Some tweaks before merge * Implement New color theme (#276) * Added a color palette file * Replaced $gray-light/dark colors with semantic variables for each purpose * Update brand colors to indigo * Merge `master` into `feature/search_v2` (#286) * Update searchv2 master (#313) * Clean up doc (#249) * Remove example folder in FE (#251) * Add better logging for profile page views (#239) * add stalebot config (#264) * Update stalebot setting (#268) * Adds the request timeout configuration (#275) * Adds the request timeout configuration * Bumps the version to take advantage of request timeout * Update AxiosError handling (#283) * Update v0.ts * lint fix * Use Redux-Saga for Search Actions (#265) * Added redux actions and sagas instead for each search action: `submitSearch`, `setResource`, `setPageIndex`, `loadPreviousSearch`, and `UrlDidUpdate`. This greatly simplifies the `SearchPage` logic in preparation for adding filters. * Added `navigation-utils`. * Removed `SQUASH COMMITS` from the PR template (#287) Removed `SQUASH COMMITS` from the PR template * TagInfo now fires 'submitSearch' instead of using navigation (#285) * Remove render_template for feedback email (#293) * Remove render_template for feedback email * Fix html markup * Added auto-select resource after searching (#292) * Truncate the column type (#297) * Truncate the column type * Update truncation method * Cleanup logic * Improve table & columns description formatting (#98) (#298) * Add support for React-Markdown to editable text fields * Add support for windows via cross-env * Update EditableText component (#299) * Fix some styling issues with react-markdown * Update EditableText to use React Refs instead of ref callbacks * Add configs for table and column description max lengths * Change 'json' to 'data' field for Python Requests (#303) * Switch usage of 'json' to 'data' in metadata APIs * Use 'raw_request=True' for Envoy client post/put APIs * Update README.md (#302) * Link deeper to doc content (#304) Summary of Changes Will scroll past GitHub repo folders (specially more handy on small screens like phones/tablets) Like amundsen-io/amundsendatabuilder#147 * Fixed linebreaks with Markdown descriptions (#305) * Amundsen Notifications Without Preferences (#273) * Initial start to notifications API (#215) * initial start to notifications API * fixing some styling * fixed lint errors * update types * added tests * linter, moved notification types * addressed comments regarding imports/enum naming * fixed alphabetical order * Notifs post email functionality (#222) * initial start to notifications API * fixing some styling * fixed lint errors * update types * added tests * linter, moved notification types * added template support * made changes to reflect private changes * added helper function * fixed lint issue * addressed comments, added some type checking and cleaned up comments * testing removing test * fixed linter * fixed lint * fixed linting issues * skip type checking * fixed lint * fixed typing on get request args * removed typing for get request to fix lint issues * fixed linter again * re added test * raise exception inside of getmailclient * added exceptions * addressed comments * whitespace issue * removed calls to get_query_param * fixed syntax error * Send notification when adding/removing owner from table (#237) * basic e2e functionality for adding/removing * send_notification refactor * fix lint errors * blank line lint error * fixed syntax issue * arg typing * addressed comments, fixed code style * Prevent Self-Notifications (#243) * Prevent user from notifying themselves * removed exception * added owner check to send_notification * Fixed return for no recipients (#244) * fixed return for no recipients * fixed linter issue * Request notifications component (#238) * init of request form * basic request component * getting basic functionality in * clearing out css * removed z-index fixes and add constants * fixed string casting * added redux-saga calls * removed reset request notification * fixed tests * addressed comments, added basic test, added redux state management for opening/closing component * added tests, just need to add render test * cleaned up component tests: * addressed html/css comments * removed unecessary styling * removed collapsed class * cleaned up render method * fixed test * Open request component (#254) * added button to open up request component * removed tabledetail changes * className styling * fixed text-decoration * added tests, changed naming for OpenRequest * styling formatting * Add, Request, and Remove Email Copy (#257) * init for fixing email copy for request, add, and remove * removed print statement * fixed python unit test * fixed linter issues * addressed comments, fixed linter issues * added notification unit test * fixed test positional arg * fix test * Add notification action logging (#258) * init of adding action logging * changed location of action logging * fixed linter errors * fixed comment * addressed comments * remove request test call (#259) * hide request if description already exists (#269) * fixed open request button, request form styling (#267) * Added request dropdown component (#262) * init * made fixes * cleaned up code * fixed color issues * fixed import order * fixed styling, changed ducks/sagas * User dropdown (#263) * init * fixed sty;es * fixed test issue * fixed test * added tests, addressed comments * Request Metadata Component Tests (#270) * added tests + readonly field to stop errors * fixed tslint * addressed comments, added header tests * Request form navigation fix, dropdown fix (#272) * Request form navigation fix, dropdown fix * added test * added unique id to dropdown * Creates User Preferences page with no functionality (#266) * init * added event handlers * removed test file * added constants * addressed comments * fixed test, removed all links to page * updated test * fixed call to onclick * removed preferences page * Python cleanup + tests (#277) * Python cleanup + tests * More tests + revert some unecessary changes * Bring dropdown UI closer to design (#278) * Rename OpenRequestDescription for clarity + code cleanup + test additions (#279) * Notifications ducks cleanup + tests (#280) * Notifications ducks cleanup + tests * Fix issues * Fix template for edge case of empty form (#281) * Temporary debugging code, will revert * Temporary debugging code, will revert * Implement notification form confirmation (#289) * Preserve compatibility in base_mail_client (#290) * Notifications Configs + Doc (#291) * Add notification config * Code cleanup * More cleanup + add a test * Add some doc for how to enable features * Add config utils test + fix type error * Relative URLs to child configuration docs (#294) * Relative URLs to child configuration docs Relative URLs to docs in the same folder should do. They work for any branch, local copies of the docs - and should work better if we ever (or whenever :-) we get to having e.g a Sphinx generated site. * Update application_config.md Relative doc link * Update flask_config.md Relative doc link * Update flask_config.md Relative doc link * Remove temporary debugging code * Improve behavior of notification sending for owner editing (#296) * Initial Implementation: Notification only on success * Cleanup + tests: Notification only on success * Cleanup: Remove test code to trigger failure * Cleanup: Lint fix * Workaround for not notifying teams or alumni * Cleanup: Remove import mistake * Utilize NotificationType enums instead of hardcoded string * Remove use of render_template * More minor cleanups * Address some feedback * Cleanup * More cleanup * Notifications Improvements (#301) * Initial start to notifications API (#215) * initial start to notifications API * fixing some styling * fixed lint errors * update types * added tests * linter, moved notification types * addressed comments regarding imports/enum naming * fixed alphabetical order * Notifs post email functionality (#222) * initial start to notifications API * fixing some styling * fixed lint errors * update types * added tests * linter, moved notification types * added template support * made changes to reflect private changes * added helper function * fixed lint issue * addressed comments, added some type checking and cleaned up comments * testing removing test * fixed linter * fixed lint * fixed linting issues * skip type checking * fixed lint * fixed typing on get request args * removed typing for get request to fix lint issues * fixed linter again * re added test * raise exception inside of getmailclient * added exceptions * addressed comments * whitespace issue * removed calls to get_query_param * fixed syntax error * Send notification when adding/removing owner from table (#237) * basic e2e functionality for adding/removing * send_notification refactor * fix lint errors * blank line lint error * fixed syntax issue * arg typing * addressed comments, fixed code style * Prevent Self-Notifications (#243) * Prevent user from notifying themselves * removed exception * added owner check to send_notification * Fixed return for no recipients (#244) * fixed return for no recipients * fixed linter issue * Request notifications component (#238) * init of request form * basic request component * getting basic functionality in * clearing out css * removed z-index fixes and add constants * fixed string casting * added redux-saga calls * removed reset request notification * fixed tests * addressed comments, added basic test, added redux state management for opening/closing component * added tests, just need to add render test * cleaned up component tests: * addressed html/css comments * removed unecessary styling * removed collapsed class * cleaned up render method * fixed test * Open request component (#254) * added button to open up request component * removed tabledetail changes * className styling * fixed text-decoration * added tests, changed naming for OpenRequest * styling formatting * Add, Request, and Remove Email Copy (#257) * init for fixing email copy for request, add, and remove * removed print statement * fixed python unit test * fixed linter issues * addressed comments, fixed linter issues * added notification unit test * fixed test positional arg * fix test * Add notification action logging (#258) * init of adding action logging * changed location of action logging * fixed linter errors * fixed comment * addressed comments * remove request test call (#259) * hide request if description already exists (#269) * fixed open request button, request form styling (#267) * Added request dropdown component (#262) * init * made fixes * cleaned up code * fixed color issues * fixed import order * fixed styling, changed ducks/sagas * User dropdown (#263) * init * fixed sty;es * fixed test issue * fixed test * added tests, addressed comments * Request Metadata Component Tests (#270) * added tests + readonly field to stop errors * fixed tslint * addressed comments, added header tests * Request form navigation fix, dropdown fix (#272) * Request form navigation fix, dropdown fix * added test * added unique id to dropdown * Creates User Preferences page with no functionality (#266) * init * added event handlers * removed test file * added constants * addressed comments * fixed test, removed all links to page * updated test * fixed call to onclick * removed preferences page * Python cleanup + tests (#277) * Python cleanup + tests * More tests + revert some unecessary changes * Bring dropdown UI closer to design (#278) * Rename OpenRequestDescription for clarity + code cleanup + test additions (#279) * Notifications ducks cleanup + tests (#280) * Notifications ducks cleanup + tests * Fix issues * Fix template for edge case of empty form (#281) * Temporary debugging code, will revert * Temporary debugging code, will revert * Implement notification form confirmation (#289) * Preserve compatibility in base_mail_client (#290) * Notifications Configs + Doc (#291) * Add notification config * Code cleanup * More cleanup + add a test * Add some doc for how to enable features * Add config utils test + fix type error * Relative URLs to child configuration docs (#294) * Relative URLs to child configuration docs Relative URLs to docs in the same folder should do. They work for any branch, local copies of the docs - and should work better if we ever (or whenever :-) we get to having e.g a Sphinx generated site. * Update application_config.md Relative doc link * Update flask_config.md Relative doc link * Update flask_config.md Relative doc link * Remove temporary debugging code * Improve behavior of notification sending for owner editing (#296) * Initial Implementation: Notification only on success * Cleanup + tests: Notification only on success * Cleanup: Remove test code to trigger failure * Cleanup: Lint fix * Workaround for not notifying teams or alumni * Cleanup: Remove import mistake * Utilize NotificationType enums instead of hardcoded string * Remove use of render_template * More minor cleanups * Address some feedback * Cleanup * More cleanup * Updates for RequestMetadataForm * Switch to generating a for url + comment required for request column descriptions * Update some tests + comment out ones that need update before merge * Update some tests + comment out ones that need update before merge * Code cleanup * Update and rename notification_utils python tests * Modify resource_url check + add docstrings for python tests * Component cleanup * Cleanup component tests * Fix some typos * optimize docker (#300) * Update developer_guide.md (#310) Fix a 404 * Custom routes + Further notification cleanup (#309) * Further notification cleanup * Catch any errors getting the user for metrics + add doc for INIT_CUSTOM_ROUTES * Revert change to _build_metrics * Fix some merge conflicts * Fix some merge conflicts * Add source for notification email links (#312) * Add source for notification email links * Update TableDetail logic * Fix FlashMessage styles * Update config-types.ts (#314) * Convert usages of `white` to `$white` * - ResourceSelector now uses `setResource` action instead of onChange prop - Added/fixed test cases for ResourceSelector/SearchPage - Deleted unused code in SearchPage * Added additional test cases for SearchBar * Modified list-group shoadows * Added a test case for ResourceSelector
Summary of Changes
This PR adds a new feature to allow the configuration of custom and completes some cleanup in the notifications code.
There is a new config variable
INIT_CUSTOM_ROUTES
. It is aCallable
that takes a Flask application and is called duringcreate_app
. This allows individuals to configure custom endpoints to support custom logic. In our case at Lyft, we are using it to hook on a new endpoint to our frontend application that will process some internal callback to generate some custom metrics.In our python code I have added an enum class
NotificationType
, that matches theNotificationType
interface in the frontend application, and replaced all usages of hardcoded notification type strings to leverage the enum class. This makes it easier to maintain the code snd prevent some human error when it comes to writing our notification logic.For notification emails, instead of passing "notification" as the email type, we will pass the exact
notification_type
instead. This is more helpful because it will allow custom mail clients to execute specific logic based on thenotification_type
.In_build_metrics()
inaction_log.py
we now catch any exceptions that occur when getting theuser
for metrics, and fallback to the default. The reason is that actions that are logged in any of the custom routes, if that endpoint was hit by another service as opposed to being the result of a user action -- theAUTH_USER_METHOD
might encounter some error.Tests
Added a python test to cover calling
get_notification_subject()
with an unsupported notification type.Documentation
Added documentation for
INIT_CUSTOM_ROUTES
toflask_config.md
.CheckList
Make sure you have checked all steps below to ensure a timely review.