{"master":{"name":"TestKitchen","author":["[https:\/\/www.mediawiki.org\/wiki\/Data_Platform_Engineering\/Experiment_Platform Experiment Platform]","Sam Smith","Santiago Faci","Clare Ming"],"url":"https:\/\/www.mediawiki.org\/wiki\/Extension:TestKitchen","descriptionmsg":"testkitchen-desc","license-name":"GPL-2.0-or-later","type":"other","requires":{"MediaWiki":">= 1.47.0","extensions":{"EventBus":"*"}},"config":{"TestKitchenInstrumentConfiguratorBaseUrl":{"value":"http:\/\/localhost:80"},"TestKitchenEnableExperiments":{"description":"If this is falsy, then all experiment-related behavior is disabled.","value":false},"TestKitchenEnableConfigsFetching":{"description":"Enable fetching instrument and experiment configs from Test Kitchen UI during the request. WARNING: This will degrade performance for logged-in users and should not be enabled in production.","value":false},"TestKitchenEnableExperimentConfigsFetching":{"description":"Required by the GrowthExperiments extension. Supereded by $wgTestKitchenEnableConfigsFetching above.","value":false},"TestKitchenEventIntakeServiceName":{"description":"The name of the event intake service that server-side instruments and experiments send events to. The value must be a key in $wgEventServices.","value":""},"TestKitchenExperimentEventIntakeServiceUrl":{"description":"The URL of the EventGate instance to send events to that originate from everyone experiments.","value":"http:\/\/localhost:8192\/v1\/events?hasty=true"},"TestKitchenLoggedInExperimentEventIntakeServiceUrl":{"description":"The URL of the EventGate instance to send events to that originate from logged-in experiments.","value":"http:\/\/localhost:8192\/v1\/events?hasty=true"},"TestKitchenInstrumentEventIntakeServiceUrl":{"description":"The URL of the EventGate instance to send events to that originate from instruments.","value":"http:\/\/localhost:8192\/v1\/events?hasty=true"},"TestKitchenExperimentStreamNames":{"description":"The names of the event streams for experiments configured in Test Kitchen.","value":["product_metrics.web_base"]},"TestKitchenAuthPreserveQueryParamsExperiments":{"description":"List of experiment names to use in the AuthPreseveQueryParams hook. For each experiment listed here, AuthPreserveQueryParams will add its assigned group to a query param in the form ?mpo=<experiment1-name:group>;<experiment2-name:group>","value":[]},"TestKitchenExposureResetEpoch":{"description":"The epoch (in seconds) at which the exposure log will be reset. This is used to ensure that the exposure log is reset at the same time for all users.","value":0}},"HookHandlers":{"TestKitchenMain":{"class":"MediaWiki\\Extension\\TestKitchen\\Hooks","services":["MainConfig","TestKitchen.ExperimentManager"]}},"Hooks":{"AuthPreserveQueryParams":"TestKitchenMain","BeforeInitialize":"TestKitchenMain","BeforePageDisplay":["TestKitchenMain"],"ApiBeforeMain":"TestKitchenMain","APIAfterExecute":"TestKitchenMain"},"QUnitTestModule":{"localBasePath":"tests\/qunit","remoteExtPath":"TestKitchen\/tests\/qunit","scripts":["ext.testKitchen\/index.test.js","ext.testKitchen\/compat.getExperiment.test.js","ext.testKitchen\/compat.getExperimentsByPrefix.test.js","ext.testKitchen\/getInstrument.test.js","ext.testKitchen\/EventFactory.test.js","ext.testKitchen\/eventSender.test.js","ext.testKitchen\/Experiment.test.js","ext.testKitchen\/Instrument.test.js","ext.testKitchen\/useFakeExperiments.test.js","ext.testKitchen\/useFakeInstruments.test.js","ext.testKitchen\/ExposureLogTracker.test.js","ext.testKitchen\/enrollmentConfig.test.js"],"dependencies":["ext.testKitchen"]},"ServiceWiringFiles":["ServiceWiring.php"],"repository":"https:\/\/gerrit.wikimedia.org\/r\/mediawiki\/extensions\/TestKitchen"}}