kibana/test/plugin_functional/plugins/rendering_plugin/server/plugin.ts
Joe Portner f6972e420a
[7.17] Avoid loading all plugins on anonymous pages (#129555) (#129743)
* Avoid loading all plugins on anonymous pages (#129555)

(cherry picked from commit 6acf7c0481)

# Conflicts:
#	src/core/server/server.api.md
#	x-pack/plugins/security/kibana.json
#	x-pack/plugins/security/public/management/roles/edit_role/edit_role_page.tsx
#	x-pack/plugins/security/public/plugin.tsx

* node scripts/check_published_api_changes.js --accept
2022-04-07 08:11:13 -07:00

44 lines
1.2 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { Plugin, CoreSetup } from 'kibana/server';
import { schema } from '@kbn/config-schema';
export class RenderingPlugin implements Plugin {
public setup(core: CoreSetup) {
core.http.resources.register(
{
path: '/render/{id}',
validate: {
query: schema.object(
{
isAnonymousPage: schema.boolean({ defaultValue: false }),
},
{ unknowns: 'allow' }
),
params: schema.object({
id: schema.maybe(schema.string()),
}),
},
},
async (context, req, res) => {
const { isAnonymousPage } = req.query;
if (isAnonymousPage) {
return res.renderAnonymousCoreApp();
}
return res.renderCoreApp();
}
);
}
public start() {}
public stop() {}
}