diff --git a/src/services/report/data/consumer-access.ts b/src/services/report/data/consumer-access.ts index 9576c32a1..6118752f2 100644 --- a/src/services/report/data/consumer-access.ts +++ b/src/services/report/data/consumer-access.ts @@ -24,6 +24,7 @@ const logger = Logger('report.access'); export interface ReportOfConsumerAccess { namespace: string; + displayName?: string; consumer_username: string; prod_env_issuer?: string; perm_acl?: string; @@ -148,6 +149,7 @@ export async function getConsumerAccess( .forEach((access) => { data.push({ namespace: ns.name, + displayName: ns.displayName, prod_name: access.productEnvironment?.product?.name, prod_env_name: access.productEnvironment?.name, prod_env_app_id: access.productEnvironment?.appId, @@ -223,6 +225,7 @@ async function fillClientScopeBasedAccess( data.push({ namespace: ns.name, + displayName: ns.displayName, prod_name: env.product.name, prod_env_name: env.name, prod_env_app_id: env.appId, @@ -294,6 +297,7 @@ async function fillClientRoleBasedAccess( data.push({ namespace: ns.name, + displayName: ns.displayName, prod_name: env.product.name, prod_env_name: env.name, prod_env_app_id: env.appId, @@ -356,6 +360,7 @@ async function fillConsumerKongACLBasedAccess( data.push({ namespace: ns.name, + displayName: ns.displayName, prod_name: env.product.name, prod_env_name: env.name, prod_env_app_id: env.appId, @@ -397,6 +402,7 @@ async function fillConsumerKongACLBasedAccess( data.push({ namespace: ns.name, + displayName: ns.displayName, prod_name: '', prod_env_name: '', prod_env_app_id: acl.group, diff --git a/src/services/report/data/consumer-controls.ts b/src/services/report/data/consumer-controls.ts index fc53fdea1..2e3f6a495 100644 --- a/src/services/report/data/consumer-controls.ts +++ b/src/services/report/data/consumer-controls.ts @@ -7,6 +7,7 @@ import { ReportOfGatewayMetrics } from './gateway-metrics'; interface ReportOfConsumerControls { namespace: string; + displayName?: string; consumer_username: string; prod_name?: string; prod_env_name?: string; @@ -35,6 +36,7 @@ export async function getConsumerControls( if (plugin.service != null) { data.push({ namespace: ns.name, + displayName: ns.displayName, consumer_username: access.consumer.username, prod_name: serviceLookup.get(plugin.service.name)?.prod_name, prod_env_name: serviceLookup.get(plugin.service.name) @@ -46,6 +48,7 @@ export async function getConsumerControls( } else if (plugin.route != null) { data.push({ namespace: ns.name, + displayName: ns.displayName, consumer_username: access.consumer.username, prod_name: serviceLookup.get(plugin.route.service.name) ?.prod_name, @@ -59,6 +62,7 @@ export async function getConsumerControls( } else { data.push({ namespace: ns.name, + displayName: ns.displayName, consumer_username: access.consumer.username, service_name: '== ALL ==', route_name: '== ALL ==', diff --git a/src/services/report/data/consumer-metrics.ts b/src/services/report/data/consumer-metrics.ts index 7a4cfcedf..67e739499 100644 --- a/src/services/report/data/consumer-metrics.ts +++ b/src/services/report/data/consumer-metrics.ts @@ -7,6 +7,7 @@ import { ReportOfConsumerAccess } from './consumer-access'; interface ReportOfConsumerMetrics { namespace: string; + displayName?: string; consumer_username: string; prod_name?: string; prod_env_name?: string; @@ -54,6 +55,7 @@ export async function getReportOfConsumerMetrics( data.push({ namespace: ns.name, + displayName: ns.displayName, consumer_username: consumer, prod_name: serviceLookup.get(serviceName)?.prod_name, prod_env_name: serviceLookup.get(serviceName)?.prod_env_name, diff --git a/src/services/report/data/consumer-requests.ts b/src/services/report/data/consumer-requests.ts index 2a41ab345..d0332e442 100644 --- a/src/services/report/data/consumer-requests.ts +++ b/src/services/report/data/consumer-requests.ts @@ -7,6 +7,7 @@ import { getAccessRequestsByNamespace } from '../../keystone'; interface ReportOfConsumerRequest { namespace: string; + displayName?: string; prod_name: string; prod_env_name: string; prod_env_app_id: string; @@ -36,6 +37,7 @@ export async function getConsumerRequests( requests.forEach((req) => { data.push({ namespace: ns.name, + displayName: ns.displayName, prod_name: req.productEnvironment?.product?.name, prod_env_name: req.productEnvironment?.name, prod_env_app_id: req.productEnvironment?.appId, diff --git a/src/services/report/data/gateway-controls.ts b/src/services/report/data/gateway-controls.ts index 8bf5da028..f7b7f60e2 100644 --- a/src/services/report/data/gateway-controls.ts +++ b/src/services/report/data/gateway-controls.ts @@ -6,6 +6,7 @@ import { ReportOfGatewayMetrics } from './gateway-metrics'; interface ReportOfGatewayControls { namespace: string; + displayName?: string; prod_name?: string; prod_env_name?: string; service_name: string; @@ -31,6 +32,7 @@ export async function getGatewayControls( svc.plugins?.forEach((plugin) => { data.push({ namespace: ns.name, + displayName: ns.displayName, prod_name: serviceLookup.get(svc.name)?.prod_name, prod_env_name: serviceLookup.get(svc.name)?.prod_env_name, service_name: svc.name, diff --git a/src/services/report/data/gateway-metrics.ts b/src/services/report/data/gateway-metrics.ts index 285987c96..42128f0b1 100644 --- a/src/services/report/data/gateway-metrics.ts +++ b/src/services/report/data/gateway-metrics.ts @@ -6,6 +6,7 @@ import { dateRange } from '../../utils'; export interface ReportOfGatewayMetrics { namespace: string; + displayName?: string; prod_name?: string; prod_env_name?: string; prod_env_app_id?: string; @@ -32,6 +33,7 @@ export async function getGatewayMetrics( data.push({ namespace: ns.name, + displayName: ns.displayName, service_name: svc.name, prod_name: svc.environment?.product?.name, prod_env_name: svc.environment?.name, diff --git a/src/services/report/data/namespaces.ts b/src/services/report/data/namespaces.ts index ab0e9b1fa..c348d5c0a 100644 --- a/src/services/report/data/namespaces.ts +++ b/src/services/report/data/namespaces.ts @@ -46,6 +46,7 @@ export async function getNamespaces( const detail: ReportOfNamespaces = { resource_id: ns.id, name: ns.name, + displayName: ns.displayName, }; const nsPermissions = await kcGroupService.getGroup('ns', ns.name); diff --git a/src/services/report/data/ns-access.ts b/src/services/report/data/ns-access.ts index c25250ea9..e975c8f6a 100644 --- a/src/services/report/data/ns-access.ts +++ b/src/services/report/data/ns-access.ts @@ -7,6 +7,7 @@ import { ReportOfNamespaces } from './namespaces'; interface ReportOfNamespaceAccess { namespace: string; + displayName?: string; subject: string; subjectName: string; subjectEmail: string; @@ -38,6 +39,7 @@ export async function getNamespaceAccess( policy.scopes.forEach((scope) => { data.push({ namespace: ns.name, + displayName: ns.displayName, subject, subjectName: '', subjectEmail: '', diff --git a/src/services/report/data/service-access.ts b/src/services/report/data/service-access.ts index 2bef170e1..b712b957d 100644 --- a/src/services/report/data/service-access.ts +++ b/src/services/report/data/service-access.ts @@ -22,6 +22,7 @@ import { lookupServicesByNamespace } from '../../keystone/gateway-service'; export interface ReportOfServiceAccess { namespace: string; + displayName?: string; service_name: string; routes?: string; plugin: string; @@ -76,6 +77,7 @@ export async function getServiceAccess( const partial: ReportOfServiceAccess = { namespace: ns.name, + displayName: ns.displayName, service_name: service.name, routes: buildRouteList(service), plugin: plugin[0].name, diff --git a/src/services/report/output/structure.ts b/src/services/report/output/structure.ts index 1fa93e723..6c0d77b22 100644 --- a/src/services/report/output/structure.ts +++ b/src/services/report/output/structure.ts @@ -11,17 +11,17 @@ export const reportOrder = [ export const reportStructure: any = { namespaces: { - label: 'Namespaces', + label: 'Gateways', fields: [ { - header: 'Name', + header: 'Gateway ID', key: 'name', - width: 32, + width: 20, }, { - header: 'Display Name', + header: 'Gateway Display Name', key: 'displayName', - width: 32, + width: 26, }, { header: 'Privileged', @@ -51,13 +51,18 @@ export const reportStructure: any = { ], }, ns_access: { - label: 'Namespace Access', + label: 'Gateway Access', fields: [ { - header: 'Namespace', + header: 'Gateway ID', key: 'namespace', width: 20, }, + { + header: 'Gateway Display Name', + key: 'displayName', + width: 26, + }, { header: 'Subject', key: 'subject', @@ -69,7 +74,7 @@ export const reportStructure: any = { width: 40, }, { - header: 'Scope', + header: 'Permission', key: 'scope', width: 25, }, @@ -79,10 +84,15 @@ export const reportStructure: any = { label: 'Gateway Metrics', fields: [ { - header: 'Namespace', + header: 'Gateway ID', key: 'namespace', width: 20, }, + { + header: 'Gateway Display Name', + key: 'displayName', + width: 26, + }, { header: 'Product', key: 'prod_name', @@ -105,10 +115,15 @@ export const reportStructure: any = { label: 'Gateway Controls', fields: [ { - header: 'Namespace', + header: 'Gateway ID', key: 'namespace', width: 20, }, + { + header: 'Gateway Display Name', + key: 'displayName', + width: 26, + }, { header: 'Product', key: 'prod_name', @@ -133,10 +148,15 @@ export const reportStructure: any = { label: 'Consumer Requests', fields: [ { - header: 'Namespace', + header: 'Gateway ID', key: 'namespace', width: 20, }, + { + header: 'Gateway Display Name', + key: 'displayName', + width: 26, + }, { header: 'Requestor', key: 'requestor', width: 25 }, { header: 'Application', key: 'app_name', width: 30 }, { header: 'Application ID', key: 'app_id', width: 25 }, @@ -154,10 +174,15 @@ export const reportStructure: any = { label: 'Consumer Access', fields: [ { - header: 'Namespace', + header: 'Gateway ID', key: 'namespace', width: 20, }, + { + header: 'Gateway Display Name', + key: 'displayName', + width: 26, + }, { header: 'Service', key: 'service_name', width: 40 }, { header: 'Routes', key: 'routes', width: 60 }, { @@ -175,10 +200,15 @@ export const reportStructure: any = { label: 'Consumer Access', fields: [ { - header: 'Namespace', + header: 'Gateway ID', key: 'namespace', width: 20, }, + { + header: 'Gateway Display Name', + key: 'displayName', + width: 26, + }, { header: 'Consumer', key: 'consumer_username', width: 55 }, { header: 'Issuer', key: 'prod_env_issuer', width: 25 }, { header: 'Perm [ACL]', key: 'perm_acl', width: 15 }, @@ -207,10 +237,15 @@ export const reportStructure: any = { label: 'Consumer Metrics', fields: [ { - header: 'Namespace', + header: 'Gateway ID', key: 'namespace', width: 20, }, + { + header: 'Gateway Display Name', + key: 'displayName', + width: 26, + }, { header: 'Consumer', key: 'consumer_username', @@ -238,10 +273,15 @@ export const reportStructure: any = { label: 'Consumer Controls', fields: [ { - header: 'Namespace', + header: 'Gateway ID', key: 'namespace', width: 20, }, + { + header: 'Gateway Display Name', + key: 'displayName', + width: 26, + }, { header: 'Consumer', key: 'consumer_username',