feat: mock plugins with real configs
so you no longer need to comment out xpack config in the kibana.dev.yml
This commit is contained in:
134
plugins/reporting/index.js
Normal file
134
plugins/reporting/index.js
Normal file
@@ -0,0 +1,134 @@
|
||||
const appConfig = { concurrency: 4 };
|
||||
const getDefaultBrowser = async () => 'phantom';
|
||||
const getDefaultChromiumSandboxDisabled = async () => true;
|
||||
|
||||
export function reporting(kibana) {
|
||||
return new kibana.Plugin({
|
||||
name: "reporting",
|
||||
id: "reporting",
|
||||
configPrefix: "xpack.reporting",
|
||||
async config(Joi) {
|
||||
return Joi.object({
|
||||
enabled: Joi.boolean().default(true),
|
||||
kibanaServer: Joi.object({
|
||||
protocol: Joi.string().valid(["http", "https"]),
|
||||
hostname: Joi.string(),
|
||||
port: Joi.number().integer()
|
||||
}).default(),
|
||||
queue: Joi.object({
|
||||
indexInterval: Joi.string().default("week"),
|
||||
pollInterval: Joi.number()
|
||||
.integer()
|
||||
.default(3000),
|
||||
pollIntervalErrorMultiplier: Joi.number()
|
||||
.integer()
|
||||
.default(10),
|
||||
timeout: Joi.number()
|
||||
.integer()
|
||||
.default(30000)
|
||||
}).default(),
|
||||
capture: Joi.object({
|
||||
record: Joi.boolean().default(false),
|
||||
zoom: Joi.number()
|
||||
.integer()
|
||||
.default(2),
|
||||
viewport: Joi.object({
|
||||
width: Joi.number()
|
||||
.integer()
|
||||
.default(1950),
|
||||
height: Joi.number()
|
||||
.integer()
|
||||
.default(1200)
|
||||
}).default(),
|
||||
timeout: Joi.number()
|
||||
.integer()
|
||||
.default(20000), //deprecated
|
||||
loadDelay: Joi.number()
|
||||
.integer()
|
||||
.default(3000),
|
||||
settleTime: Joi.number()
|
||||
.integer()
|
||||
.default(1000), //deprecated
|
||||
concurrency: Joi.number()
|
||||
.integer()
|
||||
.default(appConfig.concurrency), //deprecated
|
||||
browser: Joi.object({
|
||||
type: Joi.any()
|
||||
.valid("phantom", "chromium")
|
||||
.default(await getDefaultBrowser()),
|
||||
autoDownload: Joi.boolean().when("$dev", {
|
||||
is: true,
|
||||
then: Joi.default(true),
|
||||
otherwise: Joi.default(false)
|
||||
}),
|
||||
chromium: Joi.object({
|
||||
disableSandbox: Joi.boolean().default(
|
||||
await getDefaultChromiumSandboxDisabled()
|
||||
),
|
||||
proxy: Joi.object({
|
||||
enabled: Joi.boolean().default(false),
|
||||
server: Joi.string()
|
||||
.uri({ scheme: ["http", "https"] })
|
||||
.when("enabled", {
|
||||
is: Joi.valid(false),
|
||||
then: Joi.valid(null),
|
||||
else: Joi.required()
|
||||
}),
|
||||
bypass: Joi.array()
|
||||
.items(Joi.string().regex(/^[^\s]+$/))
|
||||
.when("enabled", {
|
||||
is: Joi.valid(false),
|
||||
then: Joi.valid(null),
|
||||
else: Joi.default([])
|
||||
})
|
||||
}).default(),
|
||||
maxScreenshotDimension: Joi.number()
|
||||
.integer()
|
||||
.default(1950)
|
||||
}).default()
|
||||
}).default()
|
||||
}).default(),
|
||||
csv: Joi.object({
|
||||
maxSizeBytes: Joi.number()
|
||||
.integer()
|
||||
.default(1024 * 1024 * 10), // bytes in a kB * kB in a mB * 10
|
||||
scroll: Joi.object({
|
||||
duration: Joi.string()
|
||||
.regex(/^[0-9]+(d|h|m|s|ms|micros|nanos)$/, {
|
||||
name: "DurationString"
|
||||
})
|
||||
.default("30s"),
|
||||
size: Joi.number()
|
||||
.integer()
|
||||
.default(500)
|
||||
}).default()
|
||||
}).default(),
|
||||
encryptionKey: Joi.string(),
|
||||
roles: Joi.object({
|
||||
allow: Joi.array()
|
||||
.items(Joi.string())
|
||||
.default(["reporting_user"])
|
||||
}).default(),
|
||||
index: Joi.string().default(".reporting"),
|
||||
poll: Joi.object({
|
||||
jobCompletionNotifier: Joi.object({
|
||||
interval: Joi.number()
|
||||
.integer()
|
||||
.default(10000),
|
||||
intervalErrorMultiplier: Joi.number()
|
||||
.integer()
|
||||
.default(5)
|
||||
}).default(),
|
||||
jobsRefresh: Joi.object({
|
||||
interval: Joi.number()
|
||||
.integer()
|
||||
.default(5000),
|
||||
intervalErrorMultiplier: Joi.number()
|
||||
.integer()
|
||||
.default(5)
|
||||
}).default()
|
||||
}).default()
|
||||
}).default();
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user