open-vault/ui/mirage/handlers/clients.js
claire bontempo 55dba55bbe
UI/1.11 client count component tests (#15748)
* add line chart test

* add empty state option to line chart

* add empty state test

* add tooltip coverage

* add test files

* add monthly usage tests

* finish tests

* tidying

* address comments, add average test

* finish tests broken from calendar
2022-06-03 15:47:19 -07:00

3385 lines
94 KiB
JavaScript

import {
formatISO,
isAfter,
isBefore,
sub,
isSameMonth,
startOfMonth,
endOfMonth,
addMonths,
subMonths,
differenceInCalendarMonths,
} from 'date-fns';
import { parseAPITimestamp } from 'core/utils/date-formatters';
import formatRFC3339 from 'date-fns/formatRFC3339';
const NEW_DATE = new Date();
const COUNTS_START = subMonths(NEW_DATE, 12); // pretend vault user started cluster 1 year ago
// for testing, we're in the middle of a license/billing period
const LICENSE_START = startOfMonth(subMonths(NEW_DATE, 6));
const LICENSE_END = endOfMonth(addMonths(NEW_DATE, 6));
// upgrade happened 1 month after license start
const UPGRADE_DATE = addMonths(LICENSE_START, 1);
// Oldest to newest
const MOCK_MONTHLY_DATA = [
{
timestamp: formatISO(UPGRADE_DATE),
counts: {
distinct_entities: 0,
entity_clients: 10433,
non_entity_tokens: 0,
non_entity_clients: 7555,
clients: 17988,
},
namespaces: [
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 3458,
non_entity_tokens: 0,
non_entity_clients: 1631,
clients: 5089,
},
mounts: [
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 948,
non_entity_tokens: 0,
non_entity_clients: 714,
clients: 1662,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 899,
non_entity_tokens: 0,
non_entity_clients: 301,
clients: 1200,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 692,
non_entity_tokens: 0,
non_entity_clients: 474,
clients: 1166,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 919,
non_entity_tokens: 0,
non_entity_clients: 142,
clients: 1061,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 2428,
non_entity_tokens: 0,
non_entity_clients: 1841,
clients: 4269,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 969,
non_entity_tokens: 0,
non_entity_clients: 396,
clients: 1365,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 794,
non_entity_tokens: 0,
non_entity_clients: 501,
clients: 1295,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 289,
non_entity_tokens: 0,
non_entity_clients: 666,
clients: 955,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 376,
non_entity_tokens: 0,
non_entity_clients: 278,
clients: 654,
},
},
],
},
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 2384,
non_entity_tokens: 0,
non_entity_clients: 1278,
clients: 3662,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 853,
non_entity_tokens: 0,
non_entity_clients: 553,
clients: 1406,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 677,
non_entity_tokens: 0,
non_entity_clients: 182,
clients: 859,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 582,
non_entity_tokens: 0,
non_entity_clients: 175,
clients: 757,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 272,
non_entity_tokens: 0,
non_entity_clients: 368,
clients: 640,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 943,
non_entity_tokens: 0,
non_entity_clients: 1595,
clients: 2538,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 318,
non_entity_tokens: 0,
non_entity_clients: 735,
clients: 1053,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 362,
non_entity_tokens: 0,
non_entity_clients: 415,
clients: 777,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 158,
non_entity_tokens: 0,
non_entity_clients: 325,
clients: 483,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 105,
non_entity_tokens: 0,
non_entity_clients: 120,
clients: 225,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 1220,
non_entity_tokens: 0,
non_entity_clients: 1210,
clients: 2430,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 697,
non_entity_tokens: 0,
non_entity_clients: 516,
clients: 1213,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 154,
non_entity_tokens: 0,
non_entity_clients: 480,
clients: 634,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 223,
non_entity_tokens: 0,
non_entity_clients: 97,
clients: 320,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 146,
non_entity_tokens: 0,
non_entity_clients: 117,
clients: 263,
},
},
],
},
],
new_clients: {
counts: {
distinct_entities: 0,
entity_clients: 5032,
non_entity_tokens: 0,
non_entity_clients: 2888,
clients: 7920,
},
namespaces: [
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1907,
non_entity_tokens: 0,
non_entity_clients: 354,
clients: 2261,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 753,
non_entity_tokens: 0,
non_entity_clients: 138,
clients: 891,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 516,
non_entity_tokens: 0,
non_entity_clients: 91,
clients: 607,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 474,
non_entity_tokens: 0,
non_entity_clients: 1,
clients: 475,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 164,
non_entity_tokens: 0,
non_entity_clients: 124,
clients: 288,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 843,
non_entity_tokens: 0,
non_entity_clients: 748,
clients: 1591,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 597,
non_entity_tokens: 0,
non_entity_clients: 369,
clients: 966,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 185,
non_entity_tokens: 0,
non_entity_clients: 156,
clients: 341,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 59,
non_entity_tokens: 0,
non_entity_clients: 223,
clients: 282,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
},
],
},
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 1291,
non_entity_tokens: 0,
non_entity_clients: 268,
clients: 1559,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 518,
non_entity_tokens: 0,
non_entity_clients: 78,
clients: 596,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 291,
non_entity_tokens: 0,
non_entity_clients: 85,
clients: 376,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 276,
non_entity_tokens: 0,
non_entity_clients: 59,
clients: 335,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 206,
non_entity_tokens: 0,
non_entity_clients: 46,
clients: 252,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 663,
non_entity_tokens: 0,
non_entity_clients: 778,
clients: 1441,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 478,
non_entity_tokens: 0,
non_entity_clients: 309,
clients: 787,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 129,
non_entity_tokens: 0,
non_entity_clients: 313,
clients: 442,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 32,
non_entity_tokens: 0,
non_entity_clients: 79,
clients: 111,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 24,
non_entity_tokens: 0,
non_entity_clients: 77,
clients: 101,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 328,
non_entity_tokens: 0,
non_entity_clients: 740,
clients: 1068,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 143,
non_entity_tokens: 0,
non_entity_clients: 273,
clients: 416,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 136,
non_entity_tokens: 0,
non_entity_clients: 142,
clients: 278,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 19,
non_entity_tokens: 0,
non_entity_clients: 216,
clients: 235,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 30,
non_entity_tokens: 0,
non_entity_clients: 109,
clients: 139,
},
},
],
},
],
},
},
{
timestamp: formatISO(addMonths(UPGRADE_DATE, 1)),
counts: {
distinct_entities: 0,
entity_clients: 10285,
non_entity_tokens: 0,
non_entity_clients: 10425,
clients: 20710,
},
namespaces: [
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 2335,
non_entity_tokens: 0,
non_entity_clients: 2644,
clients: 4979,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 939,
non_entity_tokens: 0,
non_entity_clients: 649,
clients: 1588,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 461,
non_entity_tokens: 0,
non_entity_clients: 870,
clients: 1331,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 172,
non_entity_tokens: 0,
non_entity_clients: 990,
clients: 1162,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 763,
non_entity_tokens: 0,
non_entity_clients: 135,
clients: 898,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 2054,
non_entity_tokens: 0,
non_entity_clients: 2747,
clients: 4801,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 540,
non_entity_tokens: 0,
non_entity_clients: 941,
clients: 1481,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 722,
non_entity_tokens: 0,
non_entity_clients: 507,
clients: 1229,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 611,
non_entity_tokens: 0,
non_entity_clients: 520,
clients: 1131,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 181,
non_entity_tokens: 0,
non_entity_clients: 779,
clients: 960,
},
},
],
},
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 2788,
non_entity_tokens: 0,
non_entity_clients: 1720,
clients: 4508,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 643,
non_entity_tokens: 0,
non_entity_clients: 814,
clients: 1457,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 811,
non_entity_tokens: 0,
non_entity_clients: 385,
clients: 1196,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 932,
non_entity_tokens: 0,
non_entity_clients: 72,
clients: 1004,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 402,
non_entity_tokens: 0,
non_entity_clients: 449,
clients: 851,
},
},
],
},
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1162,
non_entity_tokens: 0,
non_entity_clients: 2187,
clients: 3349,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 483,
non_entity_tokens: 0,
non_entity_clients: 839,
clients: 1322,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 373,
non_entity_tokens: 0,
non_entity_clients: 858,
clients: 1231,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 271,
non_entity_tokens: 0,
non_entity_clients: 154,
clients: 425,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 35,
non_entity_tokens: 0,
non_entity_clients: 336,
clients: 371,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 1946,
non_entity_tokens: 0,
non_entity_clients: 1127,
clients: 3073,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 322,
non_entity_tokens: 0,
non_entity_clients: 537,
clients: 859,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 685,
non_entity_tokens: 0,
non_entity_clients: 132,
clients: 817,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 321,
non_entity_tokens: 0,
non_entity_clients: 385,
clients: 706,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 618,
non_entity_tokens: 0,
non_entity_clients: 73,
clients: 691,
},
},
],
},
],
new_clients: {
counts: {
distinct_entities: 0,
entity_clients: 5315,
non_entity_tokens: 0,
non_entity_clients: 5724,
clients: 11039,
},
namespaces: [
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 1253,
non_entity_tokens: 0,
non_entity_clients: 1529,
clients: 2782,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 452,
non_entity_tokens: 0,
non_entity_clients: 433,
clients: 885,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 134,
non_entity_tokens: 0,
non_entity_clients: 732,
clients: 866,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 472,
non_entity_tokens: 0,
non_entity_clients: 361,
clients: 833,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 195,
non_entity_tokens: 0,
non_entity_clients: 3,
clients: 198,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1032,
non_entity_tokens: 0,
non_entity_clients: 1652,
clients: 2684,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 93,
non_entity_tokens: 0,
non_entity_clients: 849,
clients: 942,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 692,
non_entity_tokens: 0,
non_entity_clients: 117,
clients: 809,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 159,
non_entity_tokens: 0,
non_entity_clients: 596,
clients: 755,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 88,
non_entity_tokens: 0,
non_entity_clients: 90,
clients: 178,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 1482,
non_entity_tokens: 0,
non_entity_clients: 742,
clients: 2224,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 278,
non_entity_tokens: 0,
non_entity_clients: 372,
clients: 650,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 546,
non_entity_tokens: 0,
non_entity_clients: 52,
clients: 598,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 313,
non_entity_tokens: 0,
non_entity_clients: 264,
clients: 577,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 345,
non_entity_tokens: 0,
non_entity_clients: 54,
clients: 399,
},
},
],
},
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 1090,
non_entity_tokens: 0,
non_entity_clients: 600,
clients: 1690,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 632,
non_entity_tokens: 0,
non_entity_clients: 7,
clients: 639,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 180,
non_entity_tokens: 0,
non_entity_clients: 317,
clients: 497,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 214,
non_entity_tokens: 0,
non_entity_clients: 239,
clients: 453,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 64,
non_entity_tokens: 0,
non_entity_clients: 37,
clients: 101,
},
},
],
},
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 458,
non_entity_tokens: 0,
non_entity_clients: 1201,
clients: 1659,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 134,
non_entity_tokens: 0,
non_entity_clients: 827,
clients: 961,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 232,
non_entity_tokens: 0,
non_entity_clients: 112,
clients: 344,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 4,
non_entity_tokens: 0,
non_entity_clients: 193,
clients: 197,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 88,
non_entity_tokens: 0,
non_entity_clients: 69,
clients: 157,
},
},
],
},
],
},
},
{
timestamp: formatISO(addMonths(UPGRADE_DATE, 2)),
counts: {
distinct_entities: 0,
entity_clients: 9721,
non_entity_tokens: 0,
non_entity_clients: 11472,
clients: 21193,
},
namespaces: [
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 2321,
non_entity_tokens: 0,
non_entity_clients: 2864,
clients: 5185,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 616,
non_entity_tokens: 0,
non_entity_clients: 940,
clients: 1556,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 965,
non_entity_tokens: 0,
non_entity_clients: 393,
clients: 1358,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 587,
non_entity_tokens: 0,
non_entity_clients: 724,
clients: 1311,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 153,
non_entity_tokens: 0,
non_entity_clients: 807,
clients: 960,
},
},
],
},
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 2711,
non_entity_tokens: 0,
non_entity_clients: 1883,
clients: 4594,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 619,
non_entity_tokens: 0,
non_entity_clients: 925,
clients: 1544,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 661,
non_entity_tokens: 0,
non_entity_clients: 814,
clients: 1475,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 954,
non_entity_tokens: 0,
non_entity_clients: 7,
clients: 961,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 477,
non_entity_tokens: 0,
non_entity_clients: 137,
clients: 614,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1426,
non_entity_tokens: 0,
non_entity_clients: 2978,
clients: 4404,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 780,
non_entity_tokens: 0,
non_entity_clients: 696,
clients: 1476,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 369,
non_entity_tokens: 0,
non_entity_clients: 977,
clients: 1346,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 200,
non_entity_tokens: 0,
non_entity_clients: 753,
clients: 953,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 77,
non_entity_tokens: 0,
non_entity_clients: 552,
clients: 629,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 2213,
non_entity_tokens: 0,
non_entity_clients: 1851,
clients: 4064,
},
mounts: [
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 610,
non_entity_tokens: 0,
non_entity_clients: 893,
clients: 1503,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 957,
non_entity_tokens: 0,
non_entity_clients: 136,
clients: 1093,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 262,
non_entity_tokens: 0,
non_entity_clients: 605,
clients: 867,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 384,
non_entity_tokens: 0,
non_entity_clients: 217,
clients: 601,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 1050,
non_entity_tokens: 0,
non_entity_clients: 1896,
clients: 2946,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 74,
non_entity_tokens: 0,
non_entity_clients: 978,
clients: 1052,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 238,
non_entity_tokens: 0,
non_entity_clients: 530,
clients: 768,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 367,
non_entity_tokens: 0,
non_entity_clients: 199,
clients: 566,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 371,
non_entity_tokens: 0,
non_entity_clients: 189,
clients: 560,
},
},
],
},
],
new_clients: {
counts: {
distinct_entities: 0,
entity_clients: 4637,
non_entity_tokens: 0,
non_entity_clients: 5789,
clients: 10426,
},
namespaces: [
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1170,
non_entity_tokens: 0,
non_entity_clients: 1525,
clients: 2695,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 511,
non_entity_tokens: 0,
non_entity_clients: 720,
clients: 1231,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 76,
non_entity_tokens: 0,
non_entity_clients: 479,
clients: 555,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 431,
non_entity_tokens: 0,
non_entity_clients: 72,
clients: 503,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 152,
non_entity_tokens: 0,
non_entity_clients: 254,
clients: 406,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 1482,
non_entity_tokens: 0,
non_entity_clients: 1129,
clients: 2611,
},
mounts: [
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 553,
non_entity_tokens: 0,
non_entity_clients: 884,
clients: 1437,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 664,
non_entity_tokens: 0,
non_entity_clients: 11,
clients: 675,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 153,
non_entity_tokens: 0,
non_entity_clients: 230,
clients: 383,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 112,
non_entity_tokens: 0,
non_entity_clients: 4,
clients: 116,
},
},
],
},
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 1067,
non_entity_tokens: 0,
non_entity_clients: 968,
clients: 2035,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 0,
non_entity_tokens: 0,
non_entity_clients: 865,
clients: 865,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 659,
non_entity_tokens: 0,
non_entity_clients: 4,
clients: 663,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 292,
non_entity_tokens: 0,
non_entity_clients: 40,
clients: 332,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 116,
non_entity_tokens: 0,
non_entity_clients: 59,
clients: 175,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 547,
non_entity_tokens: 0,
non_entity_clients: 1270,
clients: 1817,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 36,
non_entity_tokens: 0,
non_entity_clients: 546,
clients: 582,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 61,
non_entity_tokens: 0,
non_entity_clients: 467,
clients: 528,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 286,
non_entity_tokens: 0,
non_entity_clients: 216,
clients: 502,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 164,
non_entity_tokens: 0,
non_entity_clients: 41,
clients: 205,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 371,
non_entity_tokens: 0,
non_entity_clients: 897,
clients: 1268,
},
mounts: [
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 152,
non_entity_tokens: 0,
non_entity_clients: 490,
clients: 642,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 70,
non_entity_tokens: 0,
non_entity_clients: 160,
clients: 230,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 84,
non_entity_tokens: 0,
non_entity_clients: 141,
clients: 225,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 65,
non_entity_tokens: 0,
non_entity_clients: 106,
clients: 171,
},
},
],
},
],
},
},
{
timestamp: formatISO(addMonths(UPGRADE_DATE, 3)),
counts: {
distinct_entities: 0,
entity_clients: 10873,
non_entity_tokens: 0,
non_entity_clients: 9343,
clients: 20216,
},
namespaces: [
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 1303,
non_entity_tokens: 0,
non_entity_clients: 3388,
clients: 4691,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 721,
non_entity_tokens: 0,
non_entity_clients: 980,
clients: 1701,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 377,
non_entity_tokens: 0,
non_entity_clients: 838,
clients: 1215,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 127,
non_entity_tokens: 0,
non_entity_clients: 877,
clients: 1004,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 78,
non_entity_tokens: 0,
non_entity_clients: 693,
clients: 771,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 2404,
non_entity_tokens: 0,
non_entity_clients: 2085,
clients: 4489,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 830,
non_entity_tokens: 0,
non_entity_clients: 779,
clients: 1609,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 926,
non_entity_tokens: 0,
non_entity_clients: 311,
clients: 1237,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 82,
non_entity_tokens: 0,
non_entity_clients: 896,
clients: 978,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 566,
non_entity_tokens: 0,
non_entity_clients: 99,
clients: 665,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 3076,
non_entity_tokens: 0,
non_entity_clients: 1396,
clients: 4472,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 874,
non_entity_tokens: 0,
non_entity_clients: 601,
clients: 1475,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 921,
non_entity_tokens: 0,
non_entity_clients: 428,
clients: 1349,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 885,
non_entity_tokens: 0,
non_entity_clients: 204,
clients: 1089,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 396,
non_entity_tokens: 0,
non_entity_clients: 163,
clients: 559,
},
},
],
},
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 2298,
non_entity_tokens: 0,
non_entity_clients: 1632,
clients: 3930,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 858,
non_entity_tokens: 0,
non_entity_clients: 663,
clients: 1521,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 669,
non_entity_tokens: 0,
non_entity_clients: 272,
clients: 941,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 183,
non_entity_tokens: 0,
non_entity_clients: 567,
clients: 750,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 588,
non_entity_tokens: 0,
non_entity_clients: 130,
clients: 718,
},
},
],
},
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 1792,
non_entity_tokens: 0,
non_entity_clients: 842,
clients: 2634,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 611,
non_entity_tokens: 0,
non_entity_clients: 215,
clients: 826,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 365,
non_entity_tokens: 0,
non_entity_clients: 368,
clients: 733,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 469,
non_entity_tokens: 0,
non_entity_clients: 244,
clients: 713,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 347,
non_entity_tokens: 0,
non_entity_clients: 15,
clients: 362,
},
},
],
},
],
new_clients: {
counts: {
distinct_entities: 0,
entity_clients: 5855,
non_entity_tokens: 0,
non_entity_clients: 4729,
clients: 10584,
},
namespaces: [
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 1409,
non_entity_tokens: 0,
non_entity_clients: 1429,
clients: 2838,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 532,
non_entity_tokens: 0,
non_entity_clients: 563,
clients: 1095,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 655,
non_entity_tokens: 0,
non_entity_clients: 179,
clients: 834,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 34,
non_entity_tokens: 0,
non_entity_clients: 658,
clients: 692,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 188,
non_entity_tokens: 0,
non_entity_clients: 29,
clients: 217,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1869,
non_entity_tokens: 0,
non_entity_clients: 592,
clients: 2461,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 745,
non_entity_tokens: 0,
non_entity_clients: 239,
clients: 984,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 539,
non_entity_tokens: 0,
non_entity_clients: 132,
clients: 671,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 294,
non_entity_tokens: 0,
non_entity_clients: 110,
clients: 404,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 291,
non_entity_tokens: 0,
non_entity_clients: 111,
clients: 402,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 838,
non_entity_tokens: 0,
non_entity_clients: 1486,
clients: 2324,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 629,
non_entity_tokens: 0,
non_entity_clients: 742,
clients: 1371,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 166,
non_entity_tokens: 0,
non_entity_clients: 410,
clients: 576,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 12,
non_entity_tokens: 0,
non_entity_clients: 279,
clients: 291,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 31,
non_entity_tokens: 0,
non_entity_clients: 55,
clients: 86,
},
},
],
},
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 996,
non_entity_tokens: 0,
non_entity_clients: 805,
clients: 1801,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 484,
non_entity_tokens: 0,
non_entity_clients: 145,
clients: 629,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 396,
non_entity_tokens: 0,
non_entity_clients: 156,
clients: 552,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 18,
non_entity_tokens: 0,
non_entity_clients: 401,
clients: 419,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 98,
non_entity_tokens: 0,
non_entity_clients: 103,
clients: 201,
},
},
],
},
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 743,
non_entity_tokens: 0,
non_entity_clients: 417,
clients: 1160,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 188,
non_entity_tokens: 0,
non_entity_clients: 168,
clients: 356,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 196,
non_entity_tokens: 0,
non_entity_clients: 115,
clients: 311,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 291,
non_entity_tokens: 0,
non_entity_clients: 3,
clients: 294,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 68,
non_entity_tokens: 0,
non_entity_clients: 131,
clients: 199,
},
},
],
},
],
},
},
{
timestamp: formatISO(addMonths(UPGRADE_DATE, 4)),
counts: {
distinct_entities: 0,
entity_clients: 10342,
non_entity_tokens: 0,
non_entity_clients: 13170,
clients: 23512,
},
namespaces: [
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 2816,
non_entity_tokens: 0,
non_entity_clients: 3098,
clients: 5914,
},
mounts: [
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 726,
non_entity_tokens: 0,
non_entity_clients: 995,
clients: 1721,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 737,
non_entity_tokens: 0,
non_entity_clients: 850,
clients: 1587,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 754,
non_entity_tokens: 0,
non_entity_clients: 617,
clients: 1371,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 599,
non_entity_tokens: 0,
non_entity_clients: 636,
clients: 1235,
},
},
],
},
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 2253,
non_entity_tokens: 0,
non_entity_clients: 2404,
clients: 4657,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 775,
non_entity_tokens: 0,
non_entity_clients: 689,
clients: 1464,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 699,
non_entity_tokens: 0,
non_entity_clients: 652,
clients: 1351,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 566,
non_entity_tokens: 0,
non_entity_clients: 487,
clients: 1053,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 213,
non_entity_tokens: 0,
non_entity_clients: 576,
clients: 789,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 1725,
non_entity_tokens: 0,
non_entity_clients: 2927,
clients: 4652,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 811,
non_entity_tokens: 0,
non_entity_clients: 417,
clients: 1228,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 294,
non_entity_tokens: 0,
non_entity_clients: 900,
clients: 1194,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 503,
non_entity_tokens: 0,
non_entity_clients: 620,
clients: 1123,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 117,
non_entity_tokens: 0,
non_entity_clients: 990,
clients: 1107,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 1678,
non_entity_tokens: 0,
non_entity_clients: 2775,
clients: 4453,
},
mounts: [
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 972,
non_entity_tokens: 0,
non_entity_clients: 608,
clients: 1580,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 172,
non_entity_tokens: 0,
non_entity_clients: 957,
clients: 1129,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 220,
non_entity_tokens: 0,
non_entity_clients: 756,
clients: 976,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 314,
non_entity_tokens: 0,
non_entity_clients: 454,
clients: 768,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1870,
non_entity_tokens: 0,
non_entity_clients: 1966,
clients: 3836,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 839,
non_entity_tokens: 0,
non_entity_clients: 762,
clients: 1601,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 447,
non_entity_tokens: 0,
non_entity_clients: 583,
clients: 1030,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 382,
non_entity_tokens: 0,
non_entity_clients: 375,
clients: 757,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 202,
non_entity_tokens: 0,
non_entity_clients: 246,
clients: 448,
},
},
],
},
],
new_clients: {
counts: {
distinct_entities: 0,
entity_clients: 5959,
non_entity_tokens: 0,
non_entity_clients: 6985,
clients: 12944,
},
namespaces: [
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 0,
entity_clients: 873,
non_entity_tokens: 0,
non_entity_clients: 2355,
clients: 3228,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 196,
non_entity_tokens: 0,
non_entity_clients: 811,
clients: 1007,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 38,
non_entity_tokens: 0,
non_entity_clients: 931,
clients: 969,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 148,
non_entity_tokens: 0,
non_entity_clients: 608,
clients: 756,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 491,
non_entity_tokens: 0,
non_entity_clients: 5,
clients: 496,
},
},
],
},
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1352,
non_entity_tokens: 0,
non_entity_clients: 1506,
clients: 2858,
},
mounts: [
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 245,
non_entity_tokens: 0,
non_entity_clients: 560,
clients: 805,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 465,
non_entity_tokens: 0,
non_entity_clients: 332,
clients: 797,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 529,
non_entity_tokens: 0,
non_entity_clients: 117,
clients: 646,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 113,
non_entity_tokens: 0,
non_entity_clients: 497,
clients: 610,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 0,
entity_clients: 1355,
non_entity_tokens: 0,
non_entity_clients: 1353,
clients: 2708,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 557,
non_entity_tokens: 0,
non_entity_clients: 538,
clients: 1095,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 410,
non_entity_tokens: 0,
non_entity_clients: 496,
clients: 906,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 146,
non_entity_tokens: 0,
non_entity_clients: 237,
clients: 383,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 242,
non_entity_tokens: 0,
non_entity_clients: 82,
clients: 324,
},
},
],
},
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 0,
entity_clients: 1514,
non_entity_tokens: 0,
non_entity_clients: 578,
clients: 2092,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 602,
non_entity_tokens: 0,
non_entity_clients: 147,
clients: 749,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 259,
non_entity_tokens: 0,
non_entity_clients: 344,
clients: 603,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 349,
non_entity_tokens: 0,
non_entity_clients: 43,
clients: 392,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 304,
non_entity_tokens: 0,
non_entity_clients: 44,
clients: 348,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 865,
non_entity_tokens: 0,
non_entity_clients: 1193,
clients: 2058,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 10,
non_entity_tokens: 0,
non_entity_clients: 722,
clients: 732,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 0,
entity_clients: 643,
non_entity_tokens: 0,
non_entity_clients: 4,
clients: 647,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 0,
entity_clients: 93,
non_entity_tokens: 0,
non_entity_clients: 379,
clients: 472,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 0,
entity_clients: 119,
non_entity_tokens: 0,
non_entity_clients: 88,
clients: 207,
},
},
],
},
],
},
},
];
function generateNullMonths(startDate, endDate) {
let numberOfMonths = differenceInCalendarMonths(endDate, startDate);
let months = [];
for (let i = 0; i < numberOfMonths; i++) {
months.push({
timestamp: formatRFC3339(startOfMonth(addMonths(startDate, i))),
counts: null,
namespace: null,
new_clients: null,
});
continue;
}
return months;
}
const handleMockQuery = (queryStartTimestamp, queryEndTimestamp, monthlyData) => {
const queryStartDate = startOfMonth(parseAPITimestamp(queryStartTimestamp));
const queryEndDate = parseAPITimestamp(queryEndTimestamp);
// monthlyData is oldest to newest
const dataEarliestMonth = parseAPITimestamp(monthlyData[0].timestamp);
const dataLatestMonth = parseAPITimestamp(monthlyData[monthlyData.length - 1].timestamp);
let transformedMonthlyArray = [...monthlyData];
// If query end is before last month in array, return only through end query
if (isBefore(queryEndDate, dataLatestMonth)) {
let indexQueryStart = monthlyData.findIndex((e) =>
isSameMonth(queryStartDate, parseAPITimestamp(e.timestamp))
);
let indexQueryEnd = monthlyData.findIndex((e) =>
isSameMonth(queryEndDate, parseAPITimestamp(e.timestamp))
);
return transformedMonthlyArray.slice(indexQueryStart, indexQueryEnd + 1);
}
// If query wants months previous to the data we have, generate months without data prior
if (isBefore(queryStartDate, dataEarliestMonth)) {
return [...generateNullMonths(queryStartDate, dataEarliestMonth), ...transformedMonthlyArray];
}
// If query is after earliest month in array, return latest to month that matches query
if (isAfter(queryStartDate, dataEarliestMonth)) {
let index = monthlyData.findIndex((e) => isSameMonth(queryStartDate, parseAPITimestamp(e.timestamp)));
return transformedMonthlyArray.slice(index);
}
return transformedMonthlyArray;
};
export default function (server) {
server.get('sys/license/status', function () {
return {
request_id: 'my-license-request-id',
data: {
autoloaded: {
license_id: 'my-license-id',
start_time: formatRFC3339(LICENSE_START),
expiration_time: formatRFC3339(LICENSE_END),
},
},
};
});
server.get('sys/internal/counters/config', function () {
return {
request_id: 'some-config-id',
data: {
default_report_months: 12,
enabled: 'default-enable',
queries_available: true,
retention_months: 24,
},
};
});
server.get('/sys/internal/counters/activity', (schema, req) => {
const { start_time, end_time } = req.queryParams;
return {
request_id: '25f55fbb-f253-9c46-c6f0-3cdd3ada91ab',
lease_id: '',
renewable: false,
lease_duration: 0,
data: {
by_namespace: [
{
namespace_id: 'PU6JB',
namespace_path: 'test-ns-2/',
counts: {
distinct_entities: 23326,
entity_clients: 23326,
non_entity_tokens: 17826,
non_entity_clients: 17826,
clients: 41152,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 6508,
entity_clients: 6508,
non_entity_tokens: 3634,
non_entity_clients: 3634,
clients: 10142,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 5118,
entity_clients: 5118,
non_entity_tokens: 4942,
non_entity_clients: 4942,
clients: 10060,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 5931,
entity_clients: 5931,
non_entity_tokens: 4057,
non_entity_clients: 4057,
clients: 9988,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 4962,
entity_clients: 4962,
non_entity_tokens: 3739,
non_entity_clients: 3739,
clients: 8701,
},
},
],
},
{
namespace_id: '3lq5r',
namespace_path: 'test-ns-2-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 19842,
entity_clients: 19842,
non_entity_tokens: 20799,
non_entity_clients: 20799,
clients: 40641,
},
mounts: [
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 4695,
entity_clients: 4695,
non_entity_tokens: 6620,
non_entity_clients: 6620,
clients: 11315,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 5762,
entity_clients: 5762,
non_entity_tokens: 4112,
non_entity_clients: 4112,
clients: 9874,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 5303,
entity_clients: 5303,
non_entity_tokens: 4538,
non_entity_clients: 4538,
clients: 9841,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 3501,
entity_clients: 3501,
non_entity_tokens: 4974,
non_entity_clients: 4974,
clients: 8475,
},
},
],
},
{
namespace_id: 'sJRLj',
namespace_path: 'test-ns-1-with-namespace-length-over-18-characters/',
counts: {
distinct_entities: 20389,
entity_clients: 20389,
non_entity_tokens: 19445,
non_entity_clients: 19445,
clients: 39834,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 5356,
entity_clients: 5356,
non_entity_tokens: 5075,
non_entity_clients: 5075,
clients: 10431,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 4639,
entity_clients: 4639,
non_entity_tokens: 5242,
non_entity_clients: 5242,
clients: 9881,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 4926,
entity_clients: 4926,
non_entity_tokens: 4163,
non_entity_clients: 4163,
clients: 9089,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 4437,
entity_clients: 4437,
non_entity_tokens: 4201,
non_entity_clients: 4201,
clients: 8638,
},
},
],
},
{
namespace_id: 'opmJ1',
namespace_path: 'test-ns-1/',
counts: {
distinct_entities: 19316,
entity_clients: 19316,
non_entity_tokens: 18450,
non_entity_clients: 18450,
clients: 37766,
},
mounts: [
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 4952,
entity_clients: 4952,
non_entity_tokens: 5080,
non_entity_clients: 5080,
clients: 10032,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 5198,
entity_clients: 5198,
non_entity_tokens: 3825,
non_entity_clients: 3825,
clients: 9023,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 3827,
entity_clients: 3827,
non_entity_tokens: 5156,
non_entity_clients: 5156,
clients: 8983,
},
},
{
mount_path: 'path-2',
counts: {
distinct_entities: 3981,
entity_clients: 3981,
non_entity_tokens: 3661,
non_entity_clients: 3661,
clients: 7642,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 15416,
entity_clients: 15416,
non_entity_tokens: 19892,
non_entity_clients: 19892,
clients: 35308,
},
mounts: [
{
mount_path: 'path-2',
counts: {
distinct_entities: 3936,
entity_clients: 3936,
non_entity_tokens: 5428,
non_entity_clients: 5428,
clients: 9364,
},
},
{
mount_path: 'path-1',
counts: {
distinct_entities: 4021,
entity_clients: 4021,
non_entity_tokens: 4530,
non_entity_clients: 4530,
clients: 8551,
},
},
{
mount_path: 'path-4-with-over-18-characters',
counts: {
distinct_entities: 2934,
entity_clients: 2934,
non_entity_tokens: 5357,
non_entity_clients: 5357,
clients: 8291,
},
},
{
mount_path: 'path-3-with-over-18-characters',
counts: {
distinct_entities: 3938,
entity_clients: 3938,
non_entity_tokens: 3932,
non_entity_clients: 3932,
clients: 7870,
},
},
],
},
],
end_time: end_time || formatISO(endOfMonth(sub(NEW_DATE, { months: 1 }))),
months: handleMockQuery(start_time, end_time, MOCK_MONTHLY_DATA),
start_time: isBefore(new Date(start_time), COUNTS_START) ? formatRFC3339(COUNTS_START) : start_time,
total: {
distinct_entities: 98289,
entity_clients: 98289,
non_entity_tokens: 96412,
non_entity_clients: 96412,
clients: 194701,
},
},
wrap_info: null,
warnings: null,
auth: null,
};
});
server.get('/sys/internal/counters/activity/monthly', function () {
const timestamp = NEW_DATE;
return {
request_id: '26be5ab9-dcac-9237-ec12-269a8ca64742',
lease_id: '',
renewable: false,
lease_duration: 0,
data: {
by_namespace: [
{
namespace_id: '0lHBL',
namespace_path: 'ns1/',
counts: {
distinct_entities: 85,
non_entity_tokens: 15,
clients: 100,
},
mounts: [
{
mount_path: 'auth/method/uMGBU',
counts: {
clients: 35,
entity_clients: 20,
non_entity_clients: 15,
},
},
{
mount_path: 'auth/method/woiej',
counts: {
clients: 35,
entity_clients: 20,
non_entity_clients: 15,
},
},
],
},
{
namespace_id: 'RxD81',
namespace_path: 'ns2/',
counts: {
distinct_entities: 35,
non_entity_tokens: 20,
clients: 55,
},
mounts: [
{
mount_path: 'auth/method/ABCD1',
counts: {
clients: 35,
entity_clients: 20,
non_entity_clients: 15,
},
},
{
mount_path: 'auth/method/ABCD2',
counts: {
clients: 35,
entity_clients: 20,
non_entity_clients: 15,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 12,
non_entity_tokens: 8,
clients: 20,
},
mounts: [
{
mount_path: 'auth/method/XYZZ2',
counts: {
clients: 35,
entity_clients: 20,
non_entity_clients: 15,
},
},
{
mount_path: 'auth/method/XYZZ1',
counts: {
clients: 35,
entity_clients: 20,
non_entity_clients: 15,
},
},
{
mount_path: 'auth_userpass_3158c012',
counts: {
clients: 2,
entity_clients: 2,
non_entity_clients: 0,
},
},
],
},
],
months: [
{
timestamp: startOfMonth(timestamp).toISOString(),
counts: {
distinct_entities: 0,
entity_clients: 4,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 4,
},
namespaces: [
{
namespace_id: 'lHmap',
namespace_path: 'education/',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
mounts: [
{
mount_path: 'auth_userpass_a36c8125',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
},
],
},
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
mounts: [
{
mount_path: 'auth_userpass_3158c012',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
},
],
},
],
new_clients: {
counts: {
distinct_entities: 0,
entity_clients: 4,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 4,
},
namespaces: [
{
namespace_id: 'root',
namespace_path: '',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
mounts: [
{
mount_path: 'auth_userpass_3158c012',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
},
],
},
{
namespace_id: 'lHmap',
namespace_path: 'education/',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
mounts: [
{
mount_path: 'auth_userpass_a36c8125',
counts: {
distinct_entities: 0,
entity_clients: 2,
non_entity_tokens: 0,
non_entity_clients: 0,
clients: 2,
},
},
],
},
],
},
},
],
distinct_entities: 132,
entity_clients: 132,
non_entity_tokens: 43,
non_entity_clients: 43,
clients: 175,
},
wrap_info: null,
warnings: null,
auth: null,
};
});
}