mirror of
https://github.com/elastic/kibana.git
synced 2025-06-27 18:51:07 -04:00
[Reporting] Kibana Application Privileges for Reporting (#94966)
* Implement Reporting features as subfeatures of applications * add setting to the docker list * update doc images * finish docs * Apply suggestions from code review Co-authored-by: Kaarina Tungseth <kaarina.tungseth@elastic.co> * Apply suggestions from code review Co-authored-by: Kaarina Tungseth <kaarina.tungseth@elastic.co> * Apply suggestions from code review Co-authored-by: Kaarina Tungseth <kaarina.tungseth@elastic.co> * typo fix * "PDF / PNG Reports" => "Reporting" * Update x-pack/plugins/reporting/server/config/index.ts Co-authored-by: Larry Gregory <lgregorydev@gmail.com> * Update x-pack/test/functional/apps/security/secure_roles_perm.js Co-authored-by: Larry Gregory <lgregorydev@gmail.com> * update ids of report privileges * combine dashboard privileges into 1 group * update jest snapshot * fix tests * fix tests * updates from feedback * add note * update screenshot * fix grammer * fix bad link breaks in doc * update doc heading * Apply suggestions documentation feedback Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * simplify * use const assertions * Apply text change suggestion from code review Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * more test for oss_features and reporting subFeatures * reduce loc diff * fix snapshot * fix flakiness in licensing plugin public functional tests Co-authored-by: Kaarina Tungseth <kaarina.tungseth@elastic.co> Co-authored-by: Larry Gregory <lgregorydev@gmail.com> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com>
This commit is contained in:
parent
e39b8c6d36
commit
5a6eda2b22
84 changed files with 2316 additions and 705 deletions
|
@ -6,15 +6,20 @@
|
|||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { KibanaFeatureConfig } from '../common';
|
||||
import { DEFAULT_APP_CATEGORIES } from '../../../../src/core/server';
|
||||
import type { KibanaFeatureConfig, SubFeatureConfig } from '../common';
|
||||
|
||||
export interface BuildOSSFeaturesParams {
|
||||
savedObjectTypes: string[];
|
||||
includeTimelion: boolean;
|
||||
includeReporting: boolean;
|
||||
}
|
||||
|
||||
export const buildOSSFeatures = ({ savedObjectTypes, includeTimelion }: BuildOSSFeaturesParams) => {
|
||||
export const buildOSSFeatures = ({
|
||||
savedObjectTypes,
|
||||
includeTimelion,
|
||||
includeReporting,
|
||||
}: BuildOSSFeaturesParams): KibanaFeatureConfig[] => {
|
||||
return [
|
||||
{
|
||||
id: 'discover',
|
||||
|
@ -23,6 +28,7 @@ export const buildOSSFeatures = ({ savedObjectTypes, includeTimelion }: BuildOSS
|
|||
}),
|
||||
management: {
|
||||
kibana: ['search_sessions'],
|
||||
...(includeReporting ? { insightsAndAlerting: ['reporting'] } : {}),
|
||||
},
|
||||
order: 100,
|
||||
category: DEFAULT_APP_CATEGORIES.kibana,
|
||||
|
@ -107,6 +113,7 @@ export const buildOSSFeatures = ({ savedObjectTypes, includeTimelion }: BuildOSS
|
|||
},
|
||||
],
|
||||
},
|
||||
...(includeReporting ? [reportingFeatures.discoverReporting] : []),
|
||||
],
|
||||
},
|
||||
{
|
||||
|
@ -114,6 +121,9 @@ export const buildOSSFeatures = ({ savedObjectTypes, includeTimelion }: BuildOSS
|
|||
name: i18n.translate('xpack.features.visualizeFeatureName', {
|
||||
defaultMessage: 'Visualize Library',
|
||||
}),
|
||||
management: {
|
||||
...(includeReporting ? { insightsAndAlerting: ['reporting'] } : {}),
|
||||
},
|
||||
order: 700,
|
||||
category: DEFAULT_APP_CATEGORIES.kibana,
|
||||
app: ['visualize', 'lens', 'kibana'],
|
||||
|
@ -166,6 +176,7 @@ export const buildOSSFeatures = ({ savedObjectTypes, includeTimelion }: BuildOSS
|
|||
},
|
||||
],
|
||||
},
|
||||
...(includeReporting ? [reportingFeatures.visualizeReporting] : []),
|
||||
],
|
||||
},
|
||||
{
|
||||
|
@ -175,6 +186,7 @@ export const buildOSSFeatures = ({ savedObjectTypes, includeTimelion }: BuildOSS
|
|||
}),
|
||||
management: {
|
||||
kibana: ['search_sessions'],
|
||||
...(includeReporting ? { insightsAndAlerting: ['reporting'] } : {}),
|
||||
},
|
||||
order: 200,
|
||||
category: DEFAULT_APP_CATEGORIES.kibana,
|
||||
|
@ -279,6 +291,7 @@ export const buildOSSFeatures = ({ savedObjectTypes, includeTimelion }: BuildOSS
|
|||
},
|
||||
],
|
||||
},
|
||||
...(includeReporting ? [reportingFeatures.dashboardReporting] : []),
|
||||
],
|
||||
},
|
||||
{
|
||||
|
@ -468,3 +481,99 @@ const timelionFeature: KibanaFeatureConfig = {
|
|||
},
|
||||
},
|
||||
};
|
||||
|
||||
const reportingPrivilegeGroupName = i18n.translate(
|
||||
'xpack.features.ossFeatures.reporting.reportingTitle',
|
||||
{
|
||||
defaultMessage: 'Reporting',
|
||||
}
|
||||
);
|
||||
|
||||
const reportingFeatures: {
|
||||
discoverReporting: SubFeatureConfig;
|
||||
dashboardReporting: SubFeatureConfig;
|
||||
visualizeReporting: SubFeatureConfig;
|
||||
} = {
|
||||
discoverReporting: {
|
||||
name: reportingPrivilegeGroupName,
|
||||
privilegeGroups: [
|
||||
{
|
||||
groupType: 'independent',
|
||||
privileges: [
|
||||
{
|
||||
id: 'generate_report',
|
||||
name: i18n.translate('xpack.features.ossFeatures.reporting.discoverGenerateCSV', {
|
||||
defaultMessage: 'Generate CSV reports',
|
||||
}),
|
||||
includeIn: 'all',
|
||||
savedObject: { all: [], read: [] },
|
||||
management: { insightsAndAlerting: ['reporting'] },
|
||||
api: ['generateReport'],
|
||||
ui: ['generateCsv'],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
dashboardReporting: {
|
||||
name: reportingPrivilegeGroupName,
|
||||
privilegeGroups: [
|
||||
{
|
||||
groupType: 'independent',
|
||||
privileges: [
|
||||
{
|
||||
id: 'generate_report',
|
||||
name: i18n.translate(
|
||||
'xpack.features.ossFeatures.reporting.dashboardGenerateScreenshot',
|
||||
{
|
||||
defaultMessage: 'Generate PDF or PNG reports',
|
||||
}
|
||||
),
|
||||
includeIn: 'all',
|
||||
minimumLicense: 'platinum',
|
||||
savedObject: { all: [], read: [] },
|
||||
management: { insightsAndAlerting: ['reporting'] },
|
||||
api: ['generateReport'],
|
||||
ui: ['generateScreenshot'],
|
||||
},
|
||||
{
|
||||
id: 'download_csv_report',
|
||||
name: i18n.translate('xpack.features.ossFeatures.reporting.dashboardDownloadCSV', {
|
||||
defaultMessage: 'Download CSV reports from Saved Search panels',
|
||||
}),
|
||||
includeIn: 'all',
|
||||
savedObject: { all: [], read: [] },
|
||||
management: { insightsAndAlerting: ['reporting'] },
|
||||
api: ['downloadCsv'],
|
||||
ui: ['downloadCsv'],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
visualizeReporting: {
|
||||
name: reportingPrivilegeGroupName,
|
||||
privilegeGroups: [
|
||||
{
|
||||
groupType: 'independent',
|
||||
privileges: [
|
||||
{
|
||||
id: 'generate_report',
|
||||
name: i18n.translate(
|
||||
'xpack.features.ossFeatures.reporting.visualizeGenerateScreenshot',
|
||||
{
|
||||
defaultMessage: 'Generate PDF or PNG reports',
|
||||
}
|
||||
),
|
||||
includeIn: 'all',
|
||||
minimumLicense: 'platinum',
|
||||
savedObject: { all: [], read: [] },
|
||||
management: { insightsAndAlerting: ['reporting'] },
|
||||
api: ['generateReport'],
|
||||
ui: ['generateScreenshot'],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue