[optimizer] extract plugin discovery#14745
Conversation
e1be276 to
15f0a30
Compare
There was a problem hiding this comment.
This doesn't work right now, we need to be able to determine this via plugin discovery
kimjoar
left a comment
There was a problem hiding this comment.
I ❤️ this change — great work!
I didn't have any architectural suggestions or anything like that, so I added some low-level comments and a couple nitpicks (the high-level flow of this looks great imo).
Looks like Timelion fails to start with this error:
Fatal Error
Uncaught Error: [$injector:modulerr] Failed to instantiate module kibana due to: Error: [$injector:modulerr] Failed to instantiate module discover/saved_searches due to: Error: [$injector:modulerr] Failed to instantiate module kibana/courier due to: Error: [$injector:nomod] Module 'kibana/courier' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. http://errors.angularjs.org/1.6.5/$injector/nomod?p0=kibana%2Fcourier at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40249:12 at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42430:17 at ensure (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42351:38) at module (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42428:14) at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45066:22 at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20) at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5) at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45068:40 at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20) at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5) http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=kibana%2Fcourier&p1=Error%3A%20%5B%24injector%3Anomod%5D%20Module%20'kibana%2Fcourier'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3Dkibana%252Fcourier%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42430%3A17%0A%20%20%20%20at%20ensure%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42351%3A38)%0A%20%20%20%20at%20module%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42428%3A14)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45066%3A22%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5) at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40249:12 at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45090:15 at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20) at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5) at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45068:40 at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20) at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5) at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45068:40 at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20) at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5) http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=discover%2Fsaved_searches&p1=Error%3A%20%5B%24injector%3Amodulerr%5D%20Failed%20to%20instantiate%20module%20kibana%2Fcourier%20due%20to%3A%0AError%3A%20%5B%24injector%3Anomod%5D%20Module%20'kibana%2Fcourier'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3Dkibana%252Fcourier%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42430%3A17%0A%20%20%20%20at%20ensure%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42351%3A38)%0A%20%20%20%20at%20module%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42428%3A14)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45066%3A22%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fmodulerr%3Fp0%3Dkibana%252Fcourier%26p1%3DError%253A%2520%255B%2524injector%253Anomod%255D%2520Module%2520'kibana%252Fcourier'%2520is%2520not%2520available!%2520You%2520either%2520misspelled%2520the%2520module%2520name%2520or%2520forgot%2520to%2520load%2520it.%2520If%2520registering%2520a%2520module%2520ensure%2520that%2520you%2520specify%2520the%2520dependencies%2520as%2520the%2520second%2520argument.%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.6.5%252F%2524injector%252Fnomod%253Fp0%253Dkibana%25252Fcourier%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40249%253A12%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42430%253A17%250A%2520%2520%2520%2520at%2520ensure%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42351%253A38)%250A%2520%2520%2520%2520at%2520module%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42428%253A14)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45066%253A22%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45090%3A15%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5) at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40249:12 at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45090:15 at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20) at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5) at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45068:40 at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20) at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5) at createInjector (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:44972:19) at doBootstrap (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42082:20) at Object.bootstrap (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42103:12) http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=kibana&p1=Error%3A%20%5B%24injector%3Amodulerr%5D%20Failed%20to%20instantiate%20module%20discover%2Fsaved_searches%20due%20to%3A%0AError%3A%20%5B%24injector%3Amodulerr%5D%20Failed%20to%20instantiate%20module%20kibana%2Fcourier%20due%20to%3A%0AError%3A%20%5B%24injector%3Anomod%5D%20Module%20'kibana%2Fcourier'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3Dkibana%252Fcourier%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42430%3A17%0A%20%20%20%20at%20ensure%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42351%3A38)%0A%20%20%20%20at%20module%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42428%3A14)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45066%3A22%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fmodulerr%3Fp0%3Dkibana%252Fcourier%26p1%3DError%253A%2520%255B%2524injector%253Anomod%255D%2520Module%2520'kibana%252Fcourier'%2520is%2520not%2520available!%2520You%2520either%2520misspelled%2520the%2520module%2520name%2520or%2520forgot%2520to%2520load%2520it.%2520If%2520registering%2520a%2520module%2520ensure%2520that%2520you%2520specify%2520the%2520dependencies%2520as%2520the%2520second%2520argument.%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.6.5%252F%2524injector%252Fnomod%253Fp0%253Dkibana%25252Fcourier%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40249%253A12%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42430%253A17%250A%2520%2520%2520%2520at%2520ensure%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42351%253A38)%250A%2520%2520%2520%2520at%2520module%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42428%253A14)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45066%253A22%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45090%3A15%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fmodulerr%3Fp0%3Ddiscover%252Fsaved_searches%26p1%3DError%253A%2520%255B%2524injector%253Amodulerr%255D%2520Failed%2520to%2520instantiate%2520module%2520kibana%252Fcourier%2520due%2520to%253A%250AError%253A%2520%255B%2524injector%253Anomod%255D%2520Module%2520'kibana%252Fcourier'%2520is%2520not%2520available!%2520You%2520either%2520misspelled%2520the%2520module%2520name%2520or%2520forgot%2520to%2520load%2520it.%2520If%2520registering%2520a%2520module%2520ensure%2520that%2520you%2520specify%2520the%2520dependencies%2520as%2520the%2520second%2520argument.%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.6.5%252F%2524injector%252Fnomod%253Fp0%253Dkibana%25252Fcourier%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40249%253A12%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42430%253A17%250A%2520%2520%2520%2520at%2520ensure%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42351%253A38)%250A%2520%2520%2520%2520at%2520module%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42428%253A14)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45066%253A22%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.6.5%252F%2524injector%252Fmodulerr%253Fp0%253Dkibana%25252Fcourier%2526p1%253DError%25253A%252520%25255B%252524injector%25253Anomod%25255D%252520Module%252520'kibana%25252Fcourier'%252520is%252520not%252520available!%252520You%252520either%252520misspelled%252520the%252520module%252520name%252520or%252520forgot%252520to%252520load%252520it.%252520If%252520registering%252520a%252520module%252520ensure%252520that%252520you%252520specify%252520the%252520dependencies%252520as%252520the%252520second%252520argument.%25250Ahttp%25253A%25252F%25252Ferrors.angularjs.org%25252F1.6.5%25252F%252524injector%25252Fnomod%25253Fp0%25253Dkibana%2525252Fcourier%25250A%252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A40249%25253A12%25250A%252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A42430%25253A17%25250A%252520%252520%252520%252520at%252520ensure%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A42351%25253A38)%25250A%252520%252520%252520%252520at%252520module%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A42428%25253A14)%25250A%252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A45066%25253A22%25250A%252520%252520%252520%252520at%252520forEach%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A40543%25253A20)%25250A%252520%252520%252520%252520at%252520loadModules%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A45050%25253A5)%25250A%252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A45068%25253A40%25250A%252520%252520%252520%252520at%252520forEach%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A40543%25253A20)%25250A%252520%252520%252520%252520at%252520loadModules%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A45050%25253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40249%253A12%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45090%253A15%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45090%3A15%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20createInjector%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A44972%3A19)%0A%20%20%20%20at%20doBootstrap%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42082%3A20)%0A%20%20%20%20at%20Object.bootstrap%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42103%3A12) (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45090)
Version: 7.0.0-alpha1
Build: 8467
Error: Uncaught Error: [$injector:modulerr] Failed to instantiate module kibana due to:
Error: [$injector:modulerr] Failed to instantiate module discover/saved_searches due to:
Error: [$injector:modulerr] Failed to instantiate module kibana/courier due to:
Error: [$injector:nomod] Module 'kibana/courier' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.6.5/$injector/nomod?p0=kibana%2Fcourier
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40249:12
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42430:17
at ensure (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42351:38)
at module (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42428:14)
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45066:22
at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20)
at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5)
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45068:40
at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20)
at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5)
http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=kibana%2Fcourier&p1=Error%3A%20%5B%24injector%3Anomod%5D%20Module%20'kibana%2Fcourier'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3Dkibana%252Fcourier%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42430%3A17%0A%20%20%20%20at%20ensure%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42351%3A38)%0A%20%20%20%20at%20module%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42428%3A14)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45066%3A22%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40249:12
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45090:15
at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20)
at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5)
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45068:40
at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20)
at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5)
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45068:40
at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20)
at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5)
http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=discover%2Fsaved_searches&p1=Error%3A%20%5B%24injector%3Amodulerr%5D%20Failed%20to%20instantiate%20module%20kibana%2Fcourier%20due%20to%3A%0AError%3A%20%5B%24injector%3Anomod%5D%20Module%20'kibana%2Fcourier'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3Dkibana%252Fcourier%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42430%3A17%0A%20%20%20%20at%20ensure%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42351%3A38)%0A%20%20%20%20at%20module%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42428%3A14)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45066%3A22%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fmodulerr%3Fp0%3Dkibana%252Fcourier%26p1%3DError%253A%2520%255B%2524injector%253Anomod%255D%2520Module%2520'kibana%252Fcourier'%2520is%2520not%2520available!%2520You%2520either%2520misspelled%2520the%2520module%2520name%2520or%2520forgot%2520to%2520load%2520it.%2520If%2520registering%2520a%2520module%2520ensure%2520that%2520you%2520specify%2520the%2520dependencies%2520as%2520the%2520second%2520argument.%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.6.5%252F%2524injector%252Fnomod%253Fp0%253Dkibana%25252Fcourier%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40249%253A12%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42430%253A17%250A%2520%2520%2520%2520at%2520ensure%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42351%253A38)%250A%2520%2520%2520%2520at%2520module%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42428%253A14)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45066%253A22%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45090%3A15%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40249:12
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45090:15
at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20)
at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5)
at http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45068:40
at forEach (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:40543:20)
at loadModules (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45050:5)
at createInjector (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:44972:19)
at doBootstrap (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42082:20)
at Object.bootstrap (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:42103:12)
http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=kibana&p1=Error%3A%20%5B%24injector%3Amodulerr%5D%20Failed%20to%20instantiate%20module%20discover%2Fsaved_searches%20due%20to%3A%0AError%3A%20%5B%24injector%3Amodulerr%5D%20Failed%20to%20instantiate%20module%20kibana%2Fcourier%20due%20to%3A%0AError%3A%20%5B%24injector%3Anomod%5D%20Module%20'kibana%2Fcourier'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3Dkibana%252Fcourier%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42430%3A17%0A%20%20%20%20at%20ensure%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42351%3A38)%0A%20%20%20%20at%20module%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42428%3A14)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45066%3A22%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fmodulerr%3Fp0%3Dkibana%252Fcourier%26p1%3DError%253A%2520%255B%2524injector%253Anomod%255D%2520Module%2520'kibana%252Fcourier'%2520is%2520not%2520available!%2520You%2520either%2520misspelled%2520the%2520module%2520name%2520or%2520forgot%2520to%2520load%2520it.%2520If%2520registering%2520a%2520module%2520ensure%2520that%2520you%2520specify%2520the%2520dependencies%2520as%2520the%2520second%2520argument.%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.6.5%252F%2524injector%252Fnomod%253Fp0%253Dkibana%25252Fcourier%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40249%253A12%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42430%253A17%250A%2520%2520%2520%2520at%2520ensure%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42351%253A38)%250A%2520%2520%2520%2520at%2520module%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42428%253A14)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45066%253A22%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45090%3A15%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fmodulerr%3Fp0%3Ddiscover%252Fsaved_searches%26p1%3DError%253A%2520%255B%2524injector%253Amodulerr%255D%2520Failed%2520to%2520instantiate%2520module%2520kibana%252Fcourier%2520due%2520to%253A%250AError%253A%2520%255B%2524injector%253Anomod%255D%2520Module%2520'kibana%252Fcourier'%2520is%2520not%2520available!%2520You%2520either%2520misspelled%2520the%2520module%2520name%2520or%2520forgot%2520to%2520load%2520it.%2520If%2520registering%2520a%2520module%2520ensure%2520that%2520you%2520specify%2520the%2520dependencies%2520as%2520the%2520second%2520argument.%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.6.5%252F%2524injector%252Fnomod%253Fp0%253Dkibana%25252Fcourier%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40249%253A12%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42430%253A17%250A%2520%2520%2520%2520at%2520ensure%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42351%253A38)%250A%2520%2520%2520%2520at%2520module%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A42428%253A14)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45066%253A22%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.6.5%252F%2524injector%252Fmodulerr%253Fp0%253Dkibana%25252Fcourier%2526p1%253DError%25253A%252520%25255B%252524injector%25253Anomod%25255D%252520Module%252520'kibana%25252Fcourier'%252520is%252520not%252520available!%252520You%252520either%252520misspelled%252520the%252520module%252520name%252520or%252520forgot%252520to%252520load%252520it.%252520If%252520registering%252520a%252520module%252520ensure%252520that%252520you%252520specify%252520the%252520dependencies%252520as%252520the%252520second%252520argument.%25250Ahttp%25253A%25252F%25252Ferrors.angularjs.org%25252F1.6.5%25252F%252524injector%25252Fnomod%25253Fp0%25253Dkibana%2525252Fcourier%25250A%252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A40249%25253A12%25250A%252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A42430%25253A17%25250A%252520%252520%252520%252520at%252520ensure%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A42351%25253A38)%25250A%252520%252520%252520%252520at%252520module%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A42428%25253A14)%25250A%252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A45066%25253A22%25250A%252520%252520%252520%252520at%252520forEach%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A40543%25253A20)%25250A%252520%252520%252520%252520at%252520loadModules%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A45050%25253A5)%25250A%252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A45068%25253A40%25250A%252520%252520%252520%252520at%252520forEach%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A40543%25253A20)%25250A%252520%252520%252520%252520at%252520loadModules%252520(http%25253A%25252F%25252Flocalhost%25253A5601%25252Fdpm%25252Fbundles%25252Fcommons.bundle.js%25253Fv%25253D8467%25253A45050%25253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40249%253A12%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45090%253A15%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45068%253A40%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A40543%253A20)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A5601%252Fdpm%252Fbundles%252Fcommons.bundle.js%253Fv%253D8467%253A45050%253A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40249%3A12%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45090%3A15%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45068%3A40%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A40543%3A20)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A45050%3A5)%0A%20%20%20%20at%20createInjector%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A44972%3A19)%0A%20%20%20%20at%20doBootstrap%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42082%3A20)%0A%20%20%20%20at%20Object.bootstrap%20(http%3A%2F%2Flocalhost%3A5601%2Fdpm%2Fbundles%2Fcommons.bundle.js%3Fv%3D8467%3A42103%3A12) (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:45090)
at window.onerror (http://localhost:5601/dpm/bundles/commons.bundle.js?v=8467:86940:16)
And xpack master didn't start for me with this change.
I commented on a couple things that didn't seem relevant to the PR. Those changes lgtm, but for future large PRs I'd prefer them being in separate PRs (it makes the review process simpler).
src/server/kbn_server.js
Outdated
There was a problem hiding this comment.
super nitpick, just an addition to the comment for "grep-ability".
// find plugins and set this.plugins and this.pluginSpecs
|
|
||
| const specs = [].concat(specsByType[type] || []); | ||
|
|
||
| return specs.reduce((acc, spec) => ( |
There was a problem hiding this comment.
Three levels of acc in here. It's not necessarily a bad thing, it just makes it a bit more difficult to follow the flow.
There was a problem hiding this comment.
I think this is ok.. A lot of times this is how it works when you need to reduce within a reduce within a reduce. Am I just used to that?
There was a problem hiding this comment.
I'm used to it, though I do wish it wasn't as messy. I think I prefer this to defining the functions outside of the reduce as function definitions or something. I like how you can see the hierarchy here, but if they were all predefined it would be more confusing to see the relationship.
| return types.reduce((acc, type) => { | ||
| const reducer = (reducers[type] || reducers.unknown); | ||
|
|
||
| if (!reducer) { |
There was a problem hiding this comment.
Can this ever be true, given the || reducers.unknown?
There was a problem hiding this comment.
Yeah, reducers.unknown might not be defined. Depends on the reducer map passed in
|
|
||
| async function statTest(path, test) { | ||
| try { | ||
| const stats = await fcb(cb => stat(path, cb)); |
There was a problem hiding this comment.
nitpick: Could this use promisify instead? Then we could have const stats = await statAsync(path) instead, and have const statAsync = promisify(stat) below the imports. Would make it easier to get rid of bluebird when moving to Node 8 that has built-in promisify.
There was a problem hiding this comment.
Doesn't it bug you when the stat function is imported "globally" into the module but only the wrapped statAsync function is "unusable"? I really like the fcb pattern because it allows me to use the actual function rather than aliasing it to xyzAsync in every file. https://github.com/spalger/fcb
There was a problem hiding this comment.
One reason I like promisify is that it is the pattern Node went for in core (with util.promisify). Also, re every file: You either do fcb(...) or promisify(...) in every file, so I don't feel that's a difference. I'm fine with keeping it, though.
There was a problem hiding this comment.
It's the aliasing that's different, not the import/using in every file. Though, in other projects, I've created adapters for libs like fs so that they are promisified in one place and reused all over which has been really nice, except that it means you're using a non-standard lib for something as basic as file access.
src/ui/ui_apps/ui_apps_mixin.js
Outdated
There was a problem hiding this comment.
nitpick: If kbnServer.uiApps was a Map instead of an array, you could remove the need to memoize, and getAllUiApps could return kbnServer.uiAppsByName.values().
There was a problem hiding this comment.
I'm also fine just getting rid of the memoize stuff, or indexing the list in a uiAppsById map instead of using memoize(), but I really dislike when lists of things aren't just arrays. Also, Map#values() returns an iterable, but not an array.
| .mergeMap(result => result.enabledSpecs), | ||
|
|
||
| // all disabled PluginSpec objects | ||
| disabledSpecs$: extendConfig$ |
There was a problem hiding this comment.
not yet, but I've promised to make that list available so that the list of installed but disabled plugins can be inspected
There was a problem hiding this comment.
nitpick: I think it reads better when we consistently break on 80 lines, plus use the entire newlines for the descriptions (And also remove the unnecessary - from the descriptions).
/**
* @param {PluginPack} pack The plugin pack that produced this spec
* @param {Object} opts The options for this plugin
* @param {String} [opts.id=pkg.name] The id for this plugin.
* @param {Object} [opts.uiExports] A mapping of UiExport types to UI modules
* or metadata about the UI module
* @param {Array} [opts.require] The other plugins that this plugin requires.
* These plugins must exist and be enabled for this plugin to function. The
* require'd plugins will also be initialized first, in order to make sure
* that dependencies provided by these plugins are available.
* @param {String} [opts.version=pkg.version] The version of this plugin
* @param {Function} [opts.init] A function that will be called to initialize
* this plugin at the appropriate time.
* @param {Function} [opts.configPrefix=this.id] The prefix to use for
* configuration values in the main configuration service
* @param {Function} [opts.config] A function that produces a configuration
* schema using Joi, which is passed as its first argument.
* @param {String|False} [opts.publicDir=path + '/public'] The public directory
* for this plugin. The final directory must have the name "public", though it
* can be located somewhere besides the root of the plugin. Set this to false
* to disable exposure of a public directory.
*/This is what it looks like highlighted:
src/server/plugins/lib/plugin.js
Outdated
There was a problem hiding this comment.
I'm not sure what hapi does synchronously on next, but if that function throws an error it would get caught by the catch below, which can create subtle bugs, I think (as we'd call next twice). I think this should be .then(() => next(), next), which would only capture errors from the call to asyncRegister
There was a problem hiding this comment.
Great catch, thanks, that's bitten me before (next() totally executed the next hook sync and errors bubble... crazy)
| @@ -0,0 +1,28 @@ | |||
|
|
|||
| const queues = new WeakMap(); | |||
There was a problem hiding this comment.
Maybe explain the role of queues? And include why it has to be a WeakMap (compared to just a queue variable). I expect it is because you're expecting multiple different kbnServers?
src/ui/ui_bundles/ui_bundle.js
Outdated
There was a problem hiding this comment.
Unnecessary requires? Could do
import { readFile, writeFile, unlink, stat } from 'fs';
const readFileAsync = promisify(readFile);
// ...Would be great to avoid require as much as possible imo.
| return { | ||
| names: [].concat( | ||
| acc.names || [], | ||
| `${pluginSpec.getId()}:${spec.name}`, |
There was a problem hiding this comment.
do we actually need the entire pluginSpec passed in to the reducers?
There was a problem hiding this comment.
I assume no, but doing so means reduceExportSpecs() doesn't need to know what is actually needed by the reducers, which it receives as an argument and doesn't control. It also gives the reducers room to grow.
4c6dba9 to
99c1ff1
Compare
9e2932f to
88328a4
Compare
|
LGTM |
* [plugins] extract plugin discover from the kibana server * integrate plugin discovery module with server * [pluginDiscovery] fully extend config before checking enabled status * [pluginDiscovery] limit arbitrary defaults in PluginSpec * [ui/navLink] fix tests * [ui/injectedVars] fix tests * [ui/app] fix tests * [server/plugins] convert init to callPluginHook tests * [build/verifyTranslations] update verify logic * [pluginDiscovery] remove rx utils * fix i18n transaltion key name * [pluginDiscovery] do kibana version checks as a part of discovery * [pluginDiscovery/createPacksInDirectory$] clarify error handling * [eslint] fix lint errors * [uiApp/modules] ensure load order matches master * [uiBundle] use known uiExport type for providers * [uiExports] use the `home` export type * [uiExports] validate that all uiExport types are known * [timelion] remove archaic/broken bwc check * revert some stragler changes * [pluginSpecs] reformat comments * [uiBundle] rebel and use more fcb 😬 * correct comment * [server/waitForPluginsInit] describe queues var * [server/plugins] prevent multiple calls to next() by using single then() * [uiApp] remove archaic deprecation warning * [uiApp] tighten up tests * [pluginDiscovery/errors] remove $ from symbol var * [pluginDiscovery/reduceExportSpecs] update docs * [pluginDiscovery/findPluginSpecs] rightVersion -> isRightVersion * [pluginDiscovery/findPluginSpecs] fix typos * [uiApps/getById] use Map() rather than memoize * save * [savedObjects/mappings] use uiExports.savedObjectMappings * [server/mapping/indexMapping] update tests, addRootProperties method removed * [uiExports] "embeddableHandlers" -> "embeddableFactories" * [pluginDiscovery] fix pluralization of invalidVersionSpec$ * [pluginDiscover] add README * [pluginDiscovery/reduceExportSpecs] don't ignore fasly spec values, just undefined * [ui/exportTypes] use better reducer names * [ui/uiExports] add README * fix links * [pluginDiscovery/readme] expand examples * [pluginDiscovery/readme] clean up reduceExportSpecs() doc * [ui/uiExports/readme] cleanup example * [pluginDiscovery] remove needless use of lodash * [pluginDiscovery/waitForComplete] use better name * [pluginDiscovery/findPluginSpecs] use fixtures rather than core_plugins * [pluginDiscovery/stubSchema] use deafult: false * [plguinDiscovery/pluginConfig] add tests * typo * [uiExports/readme] fix link * [pluginDiscovery/packAtPath] fail with InvalidPackError if path is not a string * [pluginDiscovery/packAtPath] rely on error.code to detect missing package.json file * [pluginDiscovery/packAtPath] only attempt to get pack when observable is subscribed * [pluginDiscovery/packAtPath] add tests * [pluginDiscovery/pluginPack] move absolute path checks into fs lib * [pluginDiscovery/packsInDirectory] fix error type check * [pluginDiscovery/pluginPack/tests] share some utils * [pluginDiscovery/packsInDirectory] add tests * [pluginDiscovery/pluginPack] only cast undefined to array * [pluginDiscovery/pluginPack] add tests * [pluginDiscovery/pluginSpec/isVersionCompatible] add tests * [pluginDiscovery/InvalidPluginError] be less redundant * [pluginDiscovery/pluginSpec] verify config service is passed to isEnabled() * [pluginDiscovery/pluginSpec] add tests * fix "existent" spelling
* [optimizer] extract plugin discovery (#14745) * [plugins] extract plugin discover from the kibana server * integrate plugin discovery module with server * [pluginDiscovery] fully extend config before checking enabled status * [pluginDiscovery] limit arbitrary defaults in PluginSpec * [ui/navLink] fix tests * [ui/injectedVars] fix tests * [ui/app] fix tests * [server/plugins] convert init to callPluginHook tests * [build/verifyTranslations] update verify logic * [pluginDiscovery] remove rx utils * fix i18n transaltion key name * [pluginDiscovery] do kibana version checks as a part of discovery * [pluginDiscovery/createPacksInDirectory$] clarify error handling * [eslint] fix lint errors * [uiApp/modules] ensure load order matches master * [uiBundle] use known uiExport type for providers * [uiExports] use the `home` export type * [uiExports] validate that all uiExport types are known * [timelion] remove archaic/broken bwc check * revert some stragler changes * [pluginSpecs] reformat comments * [uiBundle] rebel and use more fcb 😬 * correct comment * [server/waitForPluginsInit] describe queues var * [server/plugins] prevent multiple calls to next() by using single then() * [uiApp] remove archaic deprecation warning * [uiApp] tighten up tests * [pluginDiscovery/errors] remove $ from symbol var * [pluginDiscovery/reduceExportSpecs] update docs * [pluginDiscovery/findPluginSpecs] rightVersion -> isRightVersion * [pluginDiscovery/findPluginSpecs] fix typos * [uiApps/getById] use Map() rather than memoize * save * [savedObjects/mappings] use uiExports.savedObjectMappings * [server/mapping/indexMapping] update tests, addRootProperties method removed * [uiExports] "embeddableHandlers" -> "embeddableFactories" * [pluginDiscovery] fix pluralization of invalidVersionSpec$ * [pluginDiscover] add README * [pluginDiscovery/reduceExportSpecs] don't ignore fasly spec values, just undefined * [ui/exportTypes] use better reducer names * [ui/uiExports] add README * fix links * [pluginDiscovery/readme] expand examples * [pluginDiscovery/readme] clean up reduceExportSpecs() doc * [ui/uiExports/readme] cleanup example * [pluginDiscovery] remove needless use of lodash * [pluginDiscovery/waitForComplete] use better name * [pluginDiscovery/findPluginSpecs] use fixtures rather than core_plugins * [pluginDiscovery/stubSchema] use deafult: false * [plguinDiscovery/pluginConfig] add tests * typo * [uiExports/readme] fix link * [pluginDiscovery/packAtPath] fail with InvalidPackError if path is not a string * [pluginDiscovery/packAtPath] rely on error.code to detect missing package.json file * [pluginDiscovery/packAtPath] only attempt to get pack when observable is subscribed * [pluginDiscovery/packAtPath] add tests * [pluginDiscovery/pluginPack] move absolute path checks into fs lib * [pluginDiscovery/packsInDirectory] fix error type check * [pluginDiscovery/pluginPack/tests] share some utils * [pluginDiscovery/packsInDirectory] add tests * [pluginDiscovery/pluginPack] only cast undefined to array * [pluginDiscovery/pluginPack] add tests * [pluginDiscovery/pluginSpec/isVersionCompatible] add tests * [pluginDiscovery/InvalidPluginError] be less redundant * [pluginDiscovery/pluginSpec] verify config service is passed to isEnabled() * [pluginDiscovery/pluginSpec] add tests * fix "existent" spelling * [server/rootRedirect] fix root_redirect view location
|
6.x/6.2: ea0139b |

In order to eventually remove the optimizer from the Kibana server we need access to the plugin list, their ui exports, and their metadata outside of the server.
This accomplishes that by extracting the plugin scanning/loading and uiExport collection to a new module called "plugin discovery" ™️. This module exports two functions:
findPluginSpecs(settings): Array<PluginSpec>reduceExportSpecs(pluginSpecs, reducers, defaults)collectUiExports, in theuimoduleThe UI module has been refactored to use these PluginSpecs via a new method:
collectUiExports(pluginSpecs)reduceExportSpecs()function to produce an object that describes all uiExports exported by thepluginSpecs