Skip to content

Commit

Permalink
update gateways report output
Browse files Browse the repository at this point in the history
  • Loading branch information
rustyjux committed Jun 27, 2024
1 parent b36d9e4 commit 32b9f3e
Show file tree
Hide file tree
Showing 10 changed files with 78 additions and 15 deletions.
6 changes: 6 additions & 0 deletions src/services/report/data/consumer-access.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
4 changes: 4 additions & 0 deletions src/services/report/data/consumer-controls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand All @@ -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,
Expand All @@ -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 ==',
Expand Down
2 changes: 2 additions & 0 deletions src/services/report/data/consumer-metrics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down
2 changes: 2 additions & 0 deletions src/services/report/data/consumer-requests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down
2 changes: 2 additions & 0 deletions src/services/report/data/gateway-controls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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,
Expand Down
2 changes: 2 additions & 0 deletions src/services/report/data/gateway-metrics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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,
Expand Down
1 change: 1 addition & 0 deletions src/services/report/data/namespaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
2 changes: 2 additions & 0 deletions src/services/report/data/ns-access.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { ReportOfNamespaces } from './namespaces';

interface ReportOfNamespaceAccess {
namespace: string;
displayName?: string;
subject: string;
subjectName: string;
subjectEmail: string;
Expand Down Expand Up @@ -38,6 +39,7 @@ export async function getNamespaceAccess(
policy.scopes.forEach((scope) => {
data.push({
namespace: ns.name,
displayName: ns.displayName,
subject,
subjectName: '',
subjectEmail: '',
Expand Down
2 changes: 2 additions & 0 deletions src/services/report/data/service-access.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { lookupServicesByNamespace } from '../../keystone/gateway-service';

export interface ReportOfServiceAccess {
namespace: string;
displayName?: string;
service_name: string;
routes?: string;
plugin: string;
Expand Down Expand Up @@ -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,
Expand Down
70 changes: 55 additions & 15 deletions src/services/report/output/structure.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down Expand Up @@ -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',
Expand All @@ -69,7 +74,7 @@ export const reportStructure: any = {
width: 40,
},
{
header: 'Scope',
header: 'Permission',
key: 'scope',
width: 25,
},
Expand All @@ -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',
Expand All @@ -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',
Expand All @@ -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 },
Expand All @@ -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 },
{
Expand All @@ -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 },
Expand Down Expand Up @@ -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',
Expand Down Expand Up @@ -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',
Expand Down

0 comments on commit 32b9f3e

Please sign in to comment.