vault/ui/tests/helpers/clients/client-count-helpers.js
2024-04-10 22:01:35 +00:00

1027 lines
27 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { click } from '@ember/test-helpers';
import { LICENSE_START } from 'vault/mirage/handlers/clients';
import { addMonths } from 'date-fns';
import { CLIENT_COUNT } from './client-count-selectors';
export async function dateDropdownSelect(month, year) {
const { dateDropdown, counts } = CLIENT_COUNT;
await click(counts.startEdit);
await click(dateDropdown.toggleMonth);
await click(dateDropdown.selectMonth(month));
await click(dateDropdown.toggleYear);
await click(dateDropdown.selectYear(year));
await click(dateDropdown.submit);
}
export const ACTIVITY_RESPONSE_STUB = {
start_time: '2023-08-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: 'root',
namespace_path: '',
counts: {
distinct_entities: 1033,
entity_clients: 1033,
non_entity_tokens: 1924,
non_entity_clients: 1924,
secret_syncs: 2397,
acme_clients: 75,
clients: 5429,
},
mounts: [
{
mount_path: 'auth/authid0',
counts: {
clients: 2957,
entity_clients: 1033,
non_entity_clients: 1924,
distinct_entities: 1033,
non_entity_tokens: 1924,
secret_syncs: 0,
acme_clients: 0,
},
},
{
mount_path: 'kvv2-engine-0',
counts: {
clients: 2397,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 2397,
acme_clients: 0,
},
},
{
mount_path: 'pki-engine-0',
counts: {
clients: 75,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 0,
acme_clients: 75,
},
},
],
},
{
namespace_id: '81ry61',
namespace_path: 'ns1',
counts: {
distinct_entities: 783,
entity_clients: 783,
non_entity_tokens: 1193,
non_entity_clients: 1193,
secret_syncs: 275,
acme_clients: 125,
clients: 2376,
},
mounts: [
{
mount_path: 'auth/authid0',
counts: {
clients: 1976,
entity_clients: 783,
non_entity_clients: 1193,
distinct_entities: 783,
non_entity_tokens: 1193,
secret_syncs: 0,
acme_clients: 0,
},
},
{
mount_path: 'kvv2-engine-0',
counts: {
clients: 275,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 275,
acme_clients: 0,
},
},
{
mount_path: 'pki-engine-0',
counts: {
clients: 125,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 0,
acme_clients: 125,
},
},
],
},
],
months: [
{
timestamp: '2023-08-01T00:00:00Z',
counts: null,
namespaces: null,
new_clients: null,
},
{
timestamp: '2023-09-01T00:00:00Z',
counts: {
distinct_entities: 1329,
entity_clients: 1329,
non_entity_tokens: 1738,
non_entity_clients: 1738,
secret_syncs: 5525,
acme_clients: 200,
clients: 8792,
},
namespaces: [
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 1279,
entity_clients: 1279,
non_entity_tokens: 1598,
non_entity_clients: 1598,
secret_syncs: 2755,
acme_clients: 75,
clients: 5707,
},
mounts: [
{
mount_path: 'auth/authid0',
counts: {
clients: 2877,
entity_clients: 1279,
non_entity_clients: 1598,
distinct_entities: 1279,
non_entity_tokens: 1598,
secret_syncs: 0,
acme_clients: 0,
},
},
{
mount_path: 'kvv2-engine-0',
counts: {
clients: 2755,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 2755,
acme_clients: 0,
},
},
{
mount_path: 'pki-engine-0',
counts: {
clients: 75,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 0,
acme_clients: 75,
},
},
],
},
{
namespace_id: '81ry61',
namespace_path: 'ns1',
counts: {
distinct_entities: 50,
entity_clients: 50,
non_entity_tokens: 140,
non_entity_clients: 140,
secret_syncs: 2770,
acme_clients: 125,
clients: 3085,
},
mounts: [
{
mount_path: 'kvv2-engine-0',
counts: {
clients: 2770,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 2770,
acme_clients: 0,
},
},
{
mount_path: 'auth/authid0',
counts: {
clients: 190,
entity_clients: 50,
non_entity_clients: 140,
distinct_entities: 50,
non_entity_tokens: 140,
secret_syncs: 0,
acme_clients: 0,
},
},
{
mount_path: 'pki-engine-0',
counts: {
clients: 125,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 0,
acme_clients: 125,
},
},
],
},
],
new_clients: {
counts: {
distinct_entities: 39,
entity_clients: 39,
non_entity_tokens: 81,
non_entity_clients: 81,
secret_syncs: 166,
acme_clients: 50,
clients: 336,
},
namespaces: [
{
namespace_id: '81ry61',
namespace_path: 'ns1',
counts: {
distinct_entities: 30,
entity_clients: 30,
non_entity_tokens: 62,
non_entity_clients: 62,
secret_syncs: 100,
acme_clients: 30,
clients: 222,
},
mounts: [
{
mount_path: 'kvv2-engine-0',
counts: {
clients: 100,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 100,
acme_clients: 0,
},
},
{
mount_path: 'auth/authid0',
counts: {
clients: 92,
entity_clients: 30,
non_entity_clients: 62,
distinct_entities: 30,
non_entity_tokens: 62,
secret_syncs: 0,
acme_clients: 0,
},
},
{
mount_path: 'pki-engine-0',
counts: {
clients: 30,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 0,
acme_clients: 30,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 9,
entity_clients: 9,
non_entity_tokens: 19,
non_entity_clients: 19,
secret_syncs: 66,
acme_clients: 20,
clients: 114,
},
mounts: [
{
mount_path: 'kvv2-engine-0',
counts: {
clients: 66,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 66,
acme_clients: 0,
},
},
{
mount_path: 'auth/authid0',
counts: {
clients: 28,
entity_clients: 9,
non_entity_clients: 19,
distinct_entities: 9,
non_entity_tokens: 19,
secret_syncs: 0,
acme_clients: 0,
},
},
{
mount_path: 'pki-engine-0',
counts: {
clients: 20,
entity_clients: 0,
non_entity_clients: 0,
distinct_entities: 0,
non_entity_tokens: 0,
secret_syncs: 0,
acme_clients: 20,
},
},
],
},
],
},
},
],
total: {
distinct_entities: 1816,
entity_clients: 1816,
non_entity_tokens: 3117,
non_entity_clients: 3117,
secret_syncs: 2672,
acme_clients: 200,
clients: 7805,
},
};
// 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,
distinct_entities: 3,
entity_clients: 3,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
by_namespace: [
{
counts: {
acme_clients: 0,
clients: 3,
distinct_entities: 3,
entity_clients: 3,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mounts: [
{
counts: {
acme_clients: 0,
clients: 2,
distinct_entities: 2,
entity_clients: 2,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mount_path: 'no mount accessor (pre-1.10 upgrade?)',
},
{
counts: {
acme_clients: 0,
clients: 1,
distinct_entities: 1,
entity_clients: 1,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mount_path: 'auth/u/',
},
],
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,
distinct_entities: 0,
entity_clients: 3,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
namespaces: [
{
counts: {
acme_clients: 0,
clients: 3,
distinct_entities: 0,
entity_clients: 3,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mounts: [
{
counts: {
acme_clients: 0,
clients: 2,
distinct_entities: 0,
entity_clients: 2,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mount_path: 'no mount accessor (pre-1.10 upgrade?)',
},
{
counts: {
acme_clients: 0,
clients: 1,
distinct_entities: 0,
entity_clients: 1,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mount_path: 'auth/u/',
},
],
namespace_id: 'root',
namespace_path: '',
},
],
new_clients: {
counts: {
acme_clients: 0,
clients: 3,
distinct_entities: 0,
entity_clients: 3,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
namespaces: [
{
counts: {
acme_clients: 0,
clients: 3,
distinct_entities: 0,
entity_clients: 3,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mounts: [
{
counts: {
acme_clients: 0,
clients: 2,
distinct_entities: 0,
entity_clients: 2,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mount_path: 'no mount accessor (pre-1.10 upgrade?)',
},
{
counts: {
acme_clients: 0,
clients: 1,
distinct_entities: 0,
entity_clients: 1,
non_entity_clients: 0,
non_entity_tokens: 0,
secret_syncs: 0,
},
mount_path: 'auth/u/',
},
],
namespace_id: 'root',
namespace_path: '',
},
],
},
timestamp: '2024-04-01T00:00:00Z',
},
],
};
// format returned by model hook in routes/vault/cluster/clients.ts
export const VERSION_HISTORY = [
{
version: '1.9.0',
previousVersion: null,
timestampInstalled: LICENSE_START.toISOString(),
},
{
version: '1.9.1',
previousVersion: '1.9.0',
timestampInstalled: addMonths(LICENSE_START, 1).toISOString(),
},
{
version: '1.10.1',
previousVersion: '1.9.1',
timestampInstalled: addMonths(LICENSE_START, 2).toISOString(),
},
{
version: '1.14.4',
previousVersion: '1.10.1',
timestampInstalled: addMonths(LICENSE_START, 3).toISOString(),
},
{
version: '1.16.0',
previousVersion: '1.14.4',
timestampInstalled: addMonths(LICENSE_START, 4).toISOString(),
},
];
// order of this array matters because index 0 is a month without data
export const SERIALIZED_ACTIVITY_RESPONSE = {
by_namespace: [
{
label: 'root',
clients: 5429,
entity_clients: 1033,
non_entity_clients: 1924,
secret_syncs: 2397,
acme_clients: 75,
mounts: [
{
acme_clients: 0,
clients: 2957,
entity_clients: 1033,
label: 'auth/authid0',
non_entity_clients: 1924,
secret_syncs: 0,
},
{
acme_clients: 0,
clients: 2397,
entity_clients: 0,
label: 'kvv2-engine-0',
non_entity_clients: 0,
secret_syncs: 2397,
},
{
acme_clients: 75,
clients: 75,
entity_clients: 0,
label: 'pki-engine-0',
non_entity_clients: 0,
secret_syncs: 0,
},
],
},
{
label: 'ns1',
clients: 2376,
entity_clients: 783,
non_entity_clients: 1193,
secret_syncs: 275,
acme_clients: 125,
mounts: [
{
label: 'auth/authid0',
clients: 1976,
entity_clients: 783,
non_entity_clients: 1193,
secret_syncs: 0,
acme_clients: 0,
},
{
label: 'kvv2-engine-0',
clients: 275,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 275,
acme_clients: 0,
},
{
label: 'pki-engine-0',
acme_clients: 125,
clients: 125,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
},
],
},
],
by_month: [
{
month: '8/23',
timestamp: '2023-08-01T00:00:00Z',
namespaces: [],
new_clients: {
month: '8/23',
timestamp: '2023-08-01T00:00:00Z',
namespaces: [],
},
namespaces_by_key: {},
},
{
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
clients: 8592,
entity_clients: 1329,
non_entity_clients: 1738,
secret_syncs: 5525,
namespaces: [
{
label: 'root',
clients: 5707,
entity_clients: 1279,
non_entity_clients: 1598,
secret_syncs: 2755,
acme_clients: 75,
mounts: [
{
label: 'auth/authid0',
clients: 2877,
entity_clients: 1279,
non_entity_clients: 1598,
secret_syncs: 0,
acme_clients: 0,
},
{
label: 'kvv2-engine-0',
clients: 2755,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 2755,
acme_clients: 0,
},
{
label: 'pki-engine-0',
acme_clients: 75,
clients: 75,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
},
],
},
{
label: 'ns1',
clients: 3085,
entity_clients: 50,
non_entity_clients: 140,
secret_syncs: 2770,
acme_clients: 125,
mounts: [
{
label: 'kvv2-engine-0',
clients: 2770,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 2770,
acme_clients: 0,
},
{
label: 'auth/authid0',
clients: 190,
entity_clients: 50,
non_entity_clients: 140,
secret_syncs: 0,
acme_clients: 0,
},
{
label: 'pki-engine-0',
acme_clients: 125,
clients: 125,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
},
],
},
],
namespaces_by_key: {
root: {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
clients: 5707,
entity_clients: 1279,
non_entity_clients: 1598,
secret_syncs: 2755,
acme_clients: 75,
new_clients: {
month: '9/23',
label: 'root',
clients: 114,
entity_clients: 9,
non_entity_clients: 19,
secret_syncs: 66,
acme_clients: 20,
mounts: [
{
label: 'kvv2-engine-0',
clients: 66,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 66,
acme_clients: 0,
},
{
label: 'auth/authid0',
clients: 28,
entity_clients: 9,
non_entity_clients: 19,
secret_syncs: 0,
acme_clients: 0,
},
{
label: 'pki-engine-0',
clients: 20,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
acme_clients: 20,
},
],
},
mounts_by_key: {
'auth/authid0': {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
label: 'auth/authid0',
clients: 2877,
entity_clients: 1279,
non_entity_clients: 1598,
secret_syncs: 0,
acme_clients: 0,
new_clients: {
month: '9/23',
label: 'auth/authid0',
clients: 28,
entity_clients: 9,
non_entity_clients: 19,
secret_syncs: 0,
acme_clients: 0,
},
},
'kvv2-engine-0': {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
label: 'kvv2-engine-0',
clients: 2755,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 2755,
acme_clients: 0,
new_clients: {
month: '9/23',
label: 'kvv2-engine-0',
clients: 66,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 66,
acme_clients: 0,
},
},
'pki-engine-0': {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
label: 'pki-engine-0',
clients: 75,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
acme_clients: 75,
new_clients: {
month: '9/23',
label: 'pki-engine-0',
acme_clients: 20,
clients: 20,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
},
},
},
},
ns1: {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
clients: 3085,
entity_clients: 50,
non_entity_clients: 140,
secret_syncs: 2770,
acme_clients: 125,
new_clients: {
month: '9/23',
label: 'ns1',
clients: 222,
entity_clients: 30,
non_entity_clients: 62,
secret_syncs: 100,
acme_clients: 30,
mounts: [
{
label: 'kvv2-engine-0',
clients: 100,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 100,
acme_clients: 0,
},
{
label: 'auth/authid0',
clients: 92,
entity_clients: 30,
non_entity_clients: 62,
secret_syncs: 0,
acme_clients: 0,
},
{
label: 'pki-engine-0',
acme_clients: 30,
clients: 30,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
},
],
},
mounts_by_key: {
'kvv2-engine-0': {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
label: 'kvv2-engine-0',
clients: 2770,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 2770,
acme_clients: 0,
new_clients: {
month: '9/23',
label: 'kvv2-engine-0',
clients: 100,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 100,
acme_clients: 0,
},
},
'auth/authid0': {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
label: 'auth/authid0',
clients: 190,
entity_clients: 50,
non_entity_clients: 140,
secret_syncs: 0,
acme_clients: 0,
new_clients: {
month: '9/23',
label: 'auth/authid0',
clients: 92,
entity_clients: 30,
non_entity_clients: 62,
secret_syncs: 0,
acme_clients: 0,
},
},
'pki-engine-0': {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
clients: 125,
acme_clients: 125,
entity_clients: 0,
label: 'pki-engine-0',
non_entity_clients: 0,
secret_syncs: 0,
new_clients: {
acme_clients: 30,
clients: 30,
entity_clients: 0,
label: 'pki-engine-0',
month: '9/23',
non_entity_clients: 0,
secret_syncs: 0,
},
},
},
},
},
new_clients: {
month: '9/23',
timestamp: '2023-09-01T00:00:00Z',
clients: 336,
entity_clients: 39,
non_entity_clients: 81,
secret_syncs: 166,
acme_clients: 50,
namespaces: [
{
label: 'ns1',
clients: 222,
entity_clients: 30,
non_entity_clients: 62,
secret_syncs: 100,
acme_clients: 30,
mounts: [
{
label: 'kvv2-engine-0',
clients: 100,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 100,
acme_clients: 0,
},
{
label: 'auth/authid0',
clients: 92,
entity_clients: 30,
non_entity_clients: 62,
secret_syncs: 0,
acme_clients: 0,
},
{
label: 'pki-engine-0',
clients: 30,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
acme_clients: 30,
},
],
},
{
label: 'root',
clients: 114,
entity_clients: 9,
non_entity_clients: 19,
secret_syncs: 66,
acme_clients: 20,
mounts: [
{
label: 'kvv2-engine-0',
clients: 66,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 66,
acme_clients: 0,
},
{
label: 'auth/authid0',
clients: 28,
entity_clients: 9,
non_entity_clients: 19,
secret_syncs: 0,
acme_clients: 0,
},
{
label: 'pki-engine-0',
clients: 20,
entity_clients: 0,
non_entity_clients: 0,
secret_syncs: 0,
acme_clients: 20,
},
],
},
],
},
},
],
};