mirror of
https://github.com/hashicorp/vault.git
synced 2025-11-11 13:51:36 +01:00
* UI: Reorganize client components (#8742) * remove complex logic from running totals component * move byMonthNewClients getter to overview * organization: remove unused @versionHistory, update tests * rename namespaceLabels getter * refactor filter-toolbar to manage drodown Sets * add search bar to filter toolbar * make export request * finish adding search logic to dropdown * rename route method * move typescript declarations because all of the client ones are in client-count-utils * add error template for failed export request * update tests * stub activity export adapter method instead of trying to mock readable stream * lint --------- Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> Co-authored-by: claire bontempo <cbontempo@hashicorp.com>
1144 lines
40 KiB
JavaScript
1144 lines
40 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { findAll } from '@ember/test-helpers';
|
|
import { CHARTS } from './client-count-selectors';
|
|
|
|
export function assertBarChart(assert, chartName, byMonthData, isStacked = false) {
|
|
// assertion count is byMonthData.length, plus 2
|
|
const chart = CHARTS.chart(chartName);
|
|
const dataBars = findAll(`${chart} ${CHARTS.verticalBar}`).filter(
|
|
(b) => b.hasAttribute('height') && b.getAttribute('height') !== '0'
|
|
);
|
|
const xAxisLabels = findAll(`${chart} ${CHARTS.xAxisLabel}`);
|
|
|
|
let count = byMonthData.filter((m) => m.clients).length;
|
|
if (isStacked) count = count * 2;
|
|
|
|
assert.strictEqual(dataBars.length, count, `${chartName}: it renders bars for each non-zero month`);
|
|
assert.strictEqual(
|
|
xAxisLabels.length,
|
|
byMonthData.length,
|
|
`${chartName}: it renders a label for each month`
|
|
);
|
|
|
|
xAxisLabels.forEach((e, i) => {
|
|
assert.dom(e).hasText(`${byMonthData[i].month}`, `renders x-axis label: ${byMonthData[i].month}`);
|
|
});
|
|
}
|
|
|
|
export const ACTIVITY_RESPONSE_STUB = {
|
|
start_time: '2023-06-01T00:00:00Z',
|
|
end_time: '2023-09-30T23:59:59Z', // is always the last day and hour of the month queried
|
|
by_namespace: [
|
|
{
|
|
namespace_id: 'e67m31',
|
|
namespace_path: 'ns1',
|
|
counts: {
|
|
acme_clients: 5699,
|
|
clients: 18903,
|
|
entity_clients: 4256,
|
|
non_entity_clients: 4138,
|
|
secret_syncs: 4810,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 8394,
|
|
entity_clients: 4256,
|
|
non_entity_clients: 4138,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
counts: {
|
|
acme_clients: 5699,
|
|
clients: 5699,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 4810,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 4810,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
counts: {
|
|
acme_clients: 4003,
|
|
clients: 16384,
|
|
entity_clients: 4002,
|
|
non_entity_clients: 4089,
|
|
secret_syncs: 4290,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 8091,
|
|
entity_clients: 4002,
|
|
non_entity_clients: 4089,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 4290,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 4290,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
counts: {
|
|
acme_clients: 4003,
|
|
clients: 4003,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
months: [
|
|
{
|
|
timestamp: '2023-06-01T00:00:00Z',
|
|
counts: null,
|
|
namespaces: null,
|
|
new_clients: null,
|
|
},
|
|
{
|
|
timestamp: '2023-07-01T00:00:00Z',
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
},
|
|
namespaces: [
|
|
{
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 200,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 100,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
new_clients: {
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
},
|
|
namespaces: [
|
|
{
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 200,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 100,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
timestamp: '2023-08-01T00:00:00Z',
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
},
|
|
namespaces: [
|
|
{
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 200,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
counts: {
|
|
acme_clients: 100,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 100,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
new_clients: {
|
|
counts: null,
|
|
namespaces: null,
|
|
},
|
|
},
|
|
{
|
|
timestamp: '2023-09-01T00:00:00Z',
|
|
counts: {
|
|
acme_clients: 1928,
|
|
clients: 3928,
|
|
entity_clients: 832,
|
|
non_entity_clients: 930,
|
|
secret_syncs: 238,
|
|
},
|
|
namespaces: [
|
|
{
|
|
namespace_id: 'e67m31',
|
|
namespace_path: 'ns1',
|
|
counts: {
|
|
acme_clients: 934,
|
|
clients: 1981,
|
|
entity_clients: 708,
|
|
non_entity_clients: 182,
|
|
secret_syncs: 157,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
counts: {
|
|
acme_clients: 934,
|
|
clients: 934,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 890,
|
|
entity_clients: 708,
|
|
non_entity_clients: 182,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 157,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 157,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
counts: {
|
|
acme_clients: 994,
|
|
clients: 1947,
|
|
entity_clients: 124,
|
|
non_entity_clients: 748,
|
|
secret_syncs: 81,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
counts: {
|
|
acme_clients: 994,
|
|
clients: 994,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 872,
|
|
entity_clients: 124,
|
|
non_entity_clients: 748,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 81,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 81,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
new_clients: {
|
|
counts: {
|
|
acme_clients: 144,
|
|
clients: 364,
|
|
entity_clients: 59,
|
|
non_entity_clients: 112,
|
|
secret_syncs: 49,
|
|
},
|
|
namespaces: [
|
|
{
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
counts: {
|
|
acme_clients: 91,
|
|
clients: 191,
|
|
entity_clients: 25,
|
|
non_entity_clients: 50,
|
|
secret_syncs: 25,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
counts: {
|
|
acme_clients: 91,
|
|
clients: 91,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 75,
|
|
entity_clients: 25,
|
|
non_entity_clients: 50,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 25,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 25,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
namespace_id: 'e67m31',
|
|
namespace_path: 'ns1',
|
|
counts: {
|
|
acme_clients: 53,
|
|
clients: 173,
|
|
entity_clients: 34,
|
|
non_entity_clients: 62,
|
|
secret_syncs: 24,
|
|
},
|
|
mounts: [
|
|
{
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 96,
|
|
entity_clients: 34,
|
|
non_entity_clients: 62,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
counts: {
|
|
acme_clients: 53,
|
|
clients: 53,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
},
|
|
{
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 24,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 24,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
total: {
|
|
acme_clients: 9702,
|
|
clients: 35287,
|
|
entity_clients: 8258,
|
|
non_entity_clients: 8227,
|
|
secret_syncs: 9100,
|
|
},
|
|
};
|
|
|
|
// combined activity data before and after 1.10 upgrade when Vault added mount attribution
|
|
export const MIXED_ACTIVITY_RESPONSE_STUB = {
|
|
start_time: '2024-03-01T00:00:00Z',
|
|
end_time: '2024-04-30T23:59:59Z',
|
|
total: {
|
|
acme_clients: 0,
|
|
clients: 3,
|
|
entity_clients: 3,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
by_namespace: [
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 3,
|
|
entity_clients: 3,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mounts: [
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 2,
|
|
entity_clients: 2,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mount_path: 'no mount accessor (pre-1.10 upgrade?)',
|
|
mount_type: 'no mount path (pre-1.10 upgrade?)',
|
|
},
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 1,
|
|
entity_clients: 1,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
},
|
|
],
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
},
|
|
],
|
|
months: [
|
|
{
|
|
counts: null,
|
|
namespaces: null,
|
|
new_clients: null,
|
|
timestamp: '2024-03-01T00:00:00Z',
|
|
},
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 3,
|
|
entity_clients: 3,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
namespaces: [
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 3,
|
|
entity_clients: 3,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mounts: [
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 2,
|
|
entity_clients: 2,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mount_path: 'no mount accessor (pre-1.10 upgrade?)',
|
|
mount_type: 'no mount path (pre-1.10 upgrade?)',
|
|
},
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 1,
|
|
entity_clients: 1,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
},
|
|
],
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
},
|
|
],
|
|
new_clients: {
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 3,
|
|
entity_clients: 3,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
namespaces: [
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 3,
|
|
entity_clients: 3,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mounts: [
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 2,
|
|
entity_clients: 2,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mount_path: 'no mount accessor (pre-1.10 upgrade?)',
|
|
mount_type: 'no mount path (pre-1.10 upgrade?)',
|
|
},
|
|
{
|
|
counts: {
|
|
acme_clients: 0,
|
|
clients: 1,
|
|
entity_clients: 1,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
},
|
|
],
|
|
namespace_id: 'root',
|
|
namespace_path: '',
|
|
},
|
|
],
|
|
},
|
|
timestamp: '2024-04-01T00:00:00Z',
|
|
},
|
|
],
|
|
};
|
|
|
|
// order of this array matters because index 0 is a month without data
|
|
export const SERIALIZED_ACTIVITY_RESPONSE = {
|
|
total: {
|
|
acme_clients: 9702,
|
|
clients: 35287,
|
|
entity_clients: 8258,
|
|
non_entity_clients: 8227,
|
|
secret_syncs: 9100,
|
|
},
|
|
by_namespace: [
|
|
{
|
|
label: 'ns1',
|
|
acme_clients: 5699,
|
|
clients: 18903,
|
|
entity_clients: 4256,
|
|
non_entity_clients: 4138,
|
|
secret_syncs: 4810,
|
|
mounts: [
|
|
{
|
|
label: 'auth/userpass/0',
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
namespace_path: 'ns1',
|
|
acme_clients: 0,
|
|
clients: 8394,
|
|
entity_clients: 4256,
|
|
non_entity_clients: 4138,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'acme/pki/0',
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
namespace_path: 'ns1',
|
|
acme_clients: 5699,
|
|
clients: 5699,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'secrets/kv/0',
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
namespace_path: 'ns1',
|
|
acme_clients: 0,
|
|
clients: 4810,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 4810,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: 'root',
|
|
acme_clients: 4003,
|
|
clients: 16384,
|
|
entity_clients: 4002,
|
|
non_entity_clients: 4089,
|
|
secret_syncs: 4290,
|
|
mounts: [
|
|
{
|
|
label: 'auth/userpass/0',
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
namespace_path: 'root',
|
|
acme_clients: 0,
|
|
clients: 8091,
|
|
entity_clients: 4002,
|
|
non_entity_clients: 4089,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'secrets/kv/0',
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
namespace_path: 'root',
|
|
acme_clients: 0,
|
|
clients: 4290,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 4290,
|
|
},
|
|
{
|
|
label: 'acme/pki/0',
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
namespace_path: 'root',
|
|
acme_clients: 4003,
|
|
clients: 4003,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
by_month: [
|
|
{
|
|
timestamp: '2023-06-01T00:00:00Z',
|
|
namespaces: [],
|
|
new_clients: {
|
|
timestamp: '2023-06-01T00:00:00Z',
|
|
namespaces: [],
|
|
},
|
|
},
|
|
{
|
|
timestamp: '2023-07-01T00:00:00Z',
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
namespaces: [
|
|
{
|
|
label: 'root',
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
mounts: [
|
|
{
|
|
label: 'auth/userpass/0',
|
|
namespace_path: 'root',
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
acme_clients: 0,
|
|
clients: 200,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'acme/pki/0',
|
|
namespace_path: 'root',
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
acme_clients: 100,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'secrets/kv/0',
|
|
namespace_path: 'root',
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
acme_clients: 0,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 100,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
new_clients: {
|
|
timestamp: '2023-07-01T00:00:00Z',
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
namespaces: [
|
|
{
|
|
label: 'root',
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
mounts: [
|
|
{
|
|
label: 'auth/userpass/0',
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
namespace_path: 'root',
|
|
acme_clients: 0,
|
|
clients: 200,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'acme/pki/0',
|
|
mount_path: 'acme/pki/0',
|
|
namespace_path: 'root',
|
|
mount_type: 'pki',
|
|
acme_clients: 100,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'secrets/kv/0',
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
namespace_path: 'root',
|
|
acme_clients: 0,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 100,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
timestamp: '2023-08-01T00:00:00Z',
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
namespaces: [
|
|
{
|
|
label: 'root',
|
|
acme_clients: 100,
|
|
clients: 400,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 100,
|
|
mounts: [
|
|
{
|
|
label: 'auth/userpass/0',
|
|
mount_path: 'auth/userpass/0',
|
|
namespace_path: 'root',
|
|
mount_type: 'userpass',
|
|
acme_clients: 0,
|
|
clients: 200,
|
|
entity_clients: 100,
|
|
non_entity_clients: 100,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'acme/pki/0',
|
|
mount_path: 'acme/pki/0',
|
|
namespace_path: 'root',
|
|
mount_type: 'pki',
|
|
acme_clients: 100,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
|
|
{
|
|
label: 'secrets/kv/0',
|
|
mount_path: 'secrets/kv/0',
|
|
namespace_path: 'root',
|
|
mount_type: 'kv',
|
|
acme_clients: 0,
|
|
clients: 100,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 100,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
new_clients: {
|
|
timestamp: '2023-08-01T00:00:00Z',
|
|
namespaces: [],
|
|
},
|
|
},
|
|
{
|
|
timestamp: '2023-09-01T00:00:00Z',
|
|
acme_clients: 1928,
|
|
clients: 3928,
|
|
entity_clients: 832,
|
|
non_entity_clients: 930,
|
|
secret_syncs: 238,
|
|
namespaces: [
|
|
{
|
|
label: 'ns1',
|
|
acme_clients: 934,
|
|
clients: 1981,
|
|
entity_clients: 708,
|
|
non_entity_clients: 182,
|
|
secret_syncs: 157,
|
|
mounts: [
|
|
{
|
|
label: 'acme/pki/0',
|
|
mount_path: 'acme/pki/0',
|
|
acme_clients: 934,
|
|
clients: 934,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'auth/userpass/0',
|
|
mount_path: 'auth/userpass/0',
|
|
acme_clients: 0,
|
|
clients: 890,
|
|
entity_clients: 708,
|
|
non_entity_clients: 182,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'secrets/kv/0',
|
|
mount_path: 'secrets/kv/0',
|
|
acme_clients: 0,
|
|
clients: 157,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 157,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: 'root',
|
|
acme_clients: 994,
|
|
clients: 1947,
|
|
entity_clients: 124,
|
|
non_entity_clients: 748,
|
|
secret_syncs: 81,
|
|
mounts: [
|
|
{
|
|
label: 'acme/pki/0',
|
|
mount_path: 'acme/pki/0',
|
|
acme_clients: 994,
|
|
clients: 994,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'auth/userpass/0',
|
|
mount_path: 'auth/userpass/0',
|
|
acme_clients: 0,
|
|
clients: 872,
|
|
entity_clients: 124,
|
|
non_entity_clients: 748,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'secrets/kv/0',
|
|
mount_path: 'secrets/kv/0',
|
|
acme_clients: 0,
|
|
clients: 81,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 81,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
new_clients: {
|
|
timestamp: '2023-09-01T00:00:00Z',
|
|
acme_clients: 144,
|
|
clients: 364,
|
|
entity_clients: 59,
|
|
non_entity_clients: 112,
|
|
secret_syncs: 49,
|
|
namespaces: [
|
|
{
|
|
label: 'root',
|
|
acme_clients: 91,
|
|
clients: 191,
|
|
entity_clients: 25,
|
|
non_entity_clients: 50,
|
|
secret_syncs: 25,
|
|
mounts: [
|
|
{
|
|
label: 'acme/pki/0',
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
acme_clients: 91,
|
|
clients: 91,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'auth/userpass/0',
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
acme_clients: 0,
|
|
clients: 75,
|
|
entity_clients: 25,
|
|
non_entity_clients: 50,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'secrets/kv/0',
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
acme_clients: 0,
|
|
clients: 25,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 25,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: 'ns1',
|
|
acme_clients: 53,
|
|
clients: 173,
|
|
entity_clients: 34,
|
|
non_entity_clients: 62,
|
|
secret_syncs: 24,
|
|
mounts: [
|
|
{
|
|
label: 'auth/userpass/0',
|
|
mount_path: 'auth/userpass/0',
|
|
mount_type: 'userpass',
|
|
acme_clients: 0,
|
|
clients: 96,
|
|
entity_clients: 34,
|
|
non_entity_clients: 62,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'acme/pki/0',
|
|
mount_path: 'acme/pki/0',
|
|
mount_type: 'pki',
|
|
acme_clients: 53,
|
|
clients: 53,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 0,
|
|
},
|
|
{
|
|
label: 'secrets/kv/0',
|
|
mount_path: 'secrets/kv/0',
|
|
mount_type: 'kv',
|
|
acme_clients: 0,
|
|
clients: 24,
|
|
entity_clients: 0,
|
|
non_entity_clients: 0,
|
|
secret_syncs: 24,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
export const ACTIVITY_EXPORT_STUB = `
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"46dcOXXH+P1VEQiKTQjtWXEtBlbHdMOWwz+svXf3xuU=","client_type":"non-entity-token","namespace_id":"whUNi","namespace_path":"test-ns-2/","mount_accessor":"auth_ns_token_3b2bf405","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:21Z","client_first_used_time":"2025-08-15T16:19:21Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"VKAJVITyTwyqF1GUzwYHwkaK6bbnL1zN8ZJ7viKR8no=","client_type":"non-entity-token","namespace_id":"omjn8","namespace_path":"test-ns-8/","mount_accessor":"auth_ns_token_07b90be7","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:22Z","client_first_used_time":"2025-08-15T16:19:22Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"ww4L5n9WE32lPNh3UBgT3JxTDZb1a+m/3jqUffp04tQ=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:23Z","client_first_used_time":"2025-08-15T16:19:23Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"cBLb9erIROCw7cczXpfkXTOdnZoVwfWF4EAPD9k61lU=","client_type":"non-entity-token","namespace_id":"aT9S5","namespace_path":"test-ns-1/","mount_accessor":"auth_ns_token_62a4e52a","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:21Z","client_first_used_time":"2025-08-15T16:19:21Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"KMHoH3Kvr6nnW2ZIs+i37pYvyVtnuaL3DmyVxUL6boI=","client_type":"non-entity-token","namespace_id":"YMjS8","namespace_path":"test-ns-5/","mount_accessor":"auth_ns_token_45cbc810","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:22Z","client_first_used_time":"2025-08-15T16:19:22Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"hcMH4P4IGAN13cJqkwIJLXYoPLTodtOj/wPTZKS0x4U=","client_type":"non-entity-token","namespace_id":"ZNdL5","namespace_path":"test-ns-7/","mount_accessor":"auth_ns_token_8bbd9440","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:22Z","client_first_used_time":"2025-08-15T16:19:22Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"Oby0ABLmfhqYdfqGfljGHHhAA5zX+BwsGmFu4QGJZd0=","client_type":"non-entity-token","namespace_id":"bJIgY","namespace_path":"test-ns-9/","mount_accessor":"auth_ns_token_8d188479","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:22Z","client_first_used_time":"2025-08-15T16:19:22Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"Z6MjZuH/VD7HU11efiKoM/hfoxssSbeu4c6DhC7zUZ4=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:23Z","client_first_used_time":"2025-08-15T16:19:23Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"1UxaPHJUOPWrf0ivMgBURK6WHzbfXGkcn/C/xI3AeHQ=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:24Z","client_first_used_time":"2025-08-15T16:19:24Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"hfFbwhMucs/f84p2QTOiBLT72i0WLVkIgCGV7RIuWlo=","client_type":"non-entity-token","namespace_id":"x6sKN","namespace_path":"test-ns-4/","mount_accessor":"auth_ns_token_2aaebdc2","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:21Z","client_first_used_time":"2025-08-15T16:19:21Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"sOdIr+zoNqOUa4hq6Jv4LCGVr0sTLGbvcRPVGAtUA7g=","client_type":"non-entity-token","namespace_id":"Rsvk5","namespace_path":"test-ns-6/","mount_accessor":"auth_ns_token_f603fd8d","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:22Z","client_first_used_time":"2025-08-15T16:19:22Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"vOIAwNhe6P6HFdJQgUIU/8K6Z5e+oxyVP5x3KtTKS6U=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:23Z","client_first_used_time":"2025-08-15T16:19:23Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"ZOkJY3P7IzOqulsnEI0JAQQXwTPnXmpGUh9otqNUclc=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:23Z","client_first_used_time":"2025-08-15T16:19:23Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"Lsha/HH+xLZq92XG4GYZVlwVQCiqPCUIuoego4aCybU=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:23Z","client_first_used_time":"2025-08-15T16:19:23Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"Tsl/u7CDTYSXA9HRwlNTW7K/yyEe5PDkLOVTvTWy3q0=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:23Z","client_first_used_time":"2025-08-15T16:19:23Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"vnq6JntpiGV4FN6GDICLECe2in31aanLA6Q1UWqBmL0=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:24Z","client_first_used_time":"2025-08-15T16:19:24Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"MRMrywfPPL3QnKFMBGfRjjmaefBRH1VKpQVIfrd0Xb4=","client_type":"non-entity-token","namespace_id":"6aDiU","namespace_path":"test-ns-3/","mount_accessor":"auth_ns_token_ef771c23","mount_type":"ns_token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:21Z","client_first_used_time":"2025-08-15T16:19:21Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"","entity_alias_name":"","local_entity_alias":false,"client_id":"Rce6fjHs15+hDl5XdXbWmzGNYrTcQsJuaoqfs9Vrhvw=","client_type":"non-entity-token","namespace_id":"root","namespace_path":"","mount_accessor":"auth_token_360f591b","mount_type":"token","mount_path":"auth/token/","token_creation_time":"2025-08-15T16:19:24Z","client_first_used_time":"2025-08-15T16:19:24Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":[]}
|
|
{"entity_name":"entity_b3e2a7ff","entity_alias_name":"bob","local_entity_alias":false,"client_id":"5692c6ef-c871-128e-fb06-df2be7bfc0db","client_type":"entity","namespace_id":"root","namespace_path":"","mount_accessor":"auth_userpass_f47ad0b4","mount_type":"userpass","mount_path":"auth/userpass/","token_creation_time":"2025-08-15T23:48:09Z","client_first_used_time":"2025-08-15T23:48:09Z","policies":[],"entity_metadata":{},"entity_alias_metadata":{},"entity_alias_custom_metadata":{},"entity_group_ids":["7537e6b7-3b06-65c2-1fb2-c83116eb5e6f"]}
|
|
{"entity_name":"bob-smith","entity_alias_name":"bob","local_entity_alias":false,"client_id":"23a04911-5d72-ba98-11d3-527f2fcf3a81","client_type":"entity","namespace_id":"root","namespace_path":"","mount_accessor":"auth_userpass_de28062c","mount_type":"userpass","mount_path":"auth/userpass-test/","token_creation_time":"2025-08-15T23:52:38Z","client_first_used_time":"2025-08-15T23:53:19Z","policies":["base"],"entity_metadata":{"organization":"ACME Inc.","team":"QA"},"entity_alias_metadata":{},"entity_alias_custom_metadata":{"account":"Tester Account"},"entity_group_ids":["7537e6b7-3b06-65c2-1fb2-c83116eb5e6f"]}
|
|
`;
|