@eventcatalog/core 4.0.4 → 4.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +1 -1
- package/dist/analytics/log-build.js +3 -3
- package/dist/{chunk-VG53ZMUK.js → chunk-3RHS7TFM.js} +1 -1
- package/dist/{chunk-EHVNV53Y.js → chunk-KDWSGOTX.js} +1 -1
- package/dist/{chunk-QYEAFNQS.js → chunk-P4JJRN7P.js} +1 -1
- package/dist/{chunk-UQH6BDUK.js → chunk-VENVGFLE.js} +1 -1
- package/dist/{chunk-B577BDMM.js → chunk-YGSPS7DC.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +1 -1
- package/dist/eventcatalog.js +5 -5
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/eventcatalog/src/components/Tables/Discover/DiscoverTable.tsx +78 -0
- package/eventcatalog/src/components/Tables/Discover/columns.tsx +40 -13
- package/eventcatalog/src/components/Tables/Discover/url-filters.ts +4 -0
- package/eventcatalog/src/pages/discover/[type]/index.astro +17 -1
- package/package.json +1 -1
|
@@ -140,7 +140,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
140
140
|
var import_os = __toESM(require("os"), 1);
|
|
141
141
|
|
|
142
142
|
// package.json
|
|
143
|
-
var version = "4.0.
|
|
143
|
+
var version = "4.0.5";
|
|
144
144
|
|
|
145
145
|
// src/constants.ts
|
|
146
146
|
var VERSION = version;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
log_build_default
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-YGSPS7DC.js";
|
|
4
|
+
import "../chunk-P4JJRN7P.js";
|
|
5
5
|
import "../chunk-DAOXTQVS.js";
|
|
6
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-3RHS7TFM.js";
|
|
7
7
|
import "../chunk-6QENHZZP.js";
|
|
8
8
|
export {
|
|
9
9
|
log_build_default as default
|
package/dist/constants.cjs
CHANGED
package/dist/constants.js
CHANGED
package/dist/eventcatalog.cjs
CHANGED
|
@@ -144,7 +144,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
144
144
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
145
145
|
|
|
146
146
|
// package.json
|
|
147
|
-
var version = "4.0.
|
|
147
|
+
var version = "4.0.5";
|
|
148
148
|
|
|
149
149
|
// src/constants.ts
|
|
150
150
|
var VERSION = version;
|
package/dist/eventcatalog.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
log_build_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YGSPS7DC.js";
|
|
4
4
|
import {
|
|
5
5
|
runMigrations
|
|
6
6
|
} from "./chunk-XUAF2H54.js";
|
|
7
7
|
import "./chunk-CA4U2JP7.js";
|
|
8
8
|
import {
|
|
9
9
|
generate
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KDWSGOTX.js";
|
|
11
11
|
import {
|
|
12
12
|
logger
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VENVGFLE.js";
|
|
14
14
|
import {
|
|
15
15
|
resolve_catalog_dependencies_default
|
|
16
16
|
} from "./chunk-LHR4G2UO.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import {
|
|
21
21
|
watch
|
|
22
22
|
} from "./chunk-O3Y2G6CY.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-P4JJRN7P.js";
|
|
24
24
|
import "./chunk-DAOXTQVS.js";
|
|
25
25
|
import {
|
|
26
26
|
catalogToAstro
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
import "./chunk-VC6VUJIX.js";
|
|
29
29
|
import {
|
|
30
30
|
VERSION
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-3RHS7TFM.js";
|
|
32
32
|
import {
|
|
33
33
|
linkCoreNodeModules,
|
|
34
34
|
resolveInstalledCoreNodeModules
|
package/dist/generate.cjs
CHANGED
|
@@ -108,7 +108,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
|
|
|
108
108
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
109
109
|
|
|
110
110
|
// package.json
|
|
111
|
-
var version = "4.0.
|
|
111
|
+
var version = "4.0.5";
|
|
112
112
|
|
|
113
113
|
// src/constants.ts
|
|
114
114
|
var VERSION = version;
|
package/dist/generate.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generate
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-KDWSGOTX.js";
|
|
4
|
+
import "./chunk-VENVGFLE.js";
|
|
5
|
+
import "./chunk-3RHS7TFM.js";
|
|
6
6
|
import "./chunk-6QENHZZP.js";
|
|
7
7
|
export {
|
|
8
8
|
generate
|
package/dist/utils/cli-logger.js
CHANGED
|
@@ -54,6 +54,7 @@ export interface DiscoverTableData {
|
|
|
54
54
|
hasServices?: boolean;
|
|
55
55
|
hasFlows?: boolean;
|
|
56
56
|
isSubdomain?: boolean;
|
|
57
|
+
parentDomains?: Array<{ id: string; name: string; version: string }>;
|
|
57
58
|
data: {
|
|
58
59
|
id: string;
|
|
59
60
|
name: string;
|
|
@@ -84,6 +85,7 @@ export interface DiscoverTableData {
|
|
|
84
85
|
model?: any;
|
|
85
86
|
agents?: Array<any>;
|
|
86
87
|
services?: Array<any>;
|
|
88
|
+
domains?: Array<any>;
|
|
87
89
|
flows?: Array<any>;
|
|
88
90
|
servicesThatWriteToContainer?: Array<any>;
|
|
89
91
|
servicesThatReadFromContainer?: Array<any>;
|
|
@@ -165,6 +167,11 @@ const AgentProviderIcon = ({ provider, className }: { provider: string; classNam
|
|
|
165
167
|
const areStringArraysEqual = (left: string[], right: string[]) =>
|
|
166
168
|
left.length === right.length && left.every((value, index) => value === right[index]);
|
|
167
169
|
|
|
170
|
+
const DOMAIN_TYPE_OPTIONS = [
|
|
171
|
+
{ id: 'root', label: 'Root domains' },
|
|
172
|
+
{ id: 'subdomain', label: 'Subdomains' },
|
|
173
|
+
];
|
|
174
|
+
|
|
168
175
|
export function DiscoverTable<T extends DiscoverTableData>({
|
|
169
176
|
data: initialData,
|
|
170
177
|
collectionType,
|
|
@@ -272,6 +279,13 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
272
279
|
? filterKnownValues(initialUrlFilters.agentModels, new Set(agentModels.map((model) => model.id)))
|
|
273
280
|
: []
|
|
274
281
|
);
|
|
282
|
+
const [selectedDomainTypes, setSelectedDomainTypes] = useState<string[]>(() =>
|
|
283
|
+
collectionType === 'domains'
|
|
284
|
+
? initialUrlFilters.domainTypes.length > 0
|
|
285
|
+
? filterKnownValues(initialUrlFilters.domainTypes, new Set(DOMAIN_TYPE_OPTIONS.map((option) => option.id)))
|
|
286
|
+
: ['root']
|
|
287
|
+
: []
|
|
288
|
+
);
|
|
275
289
|
const [selectedBadges, setSelectedBadges] = useState<string[]>(() =>
|
|
276
290
|
filterKnownValues(initialUrlFilters.badges, new Set(allBadges.map((badge) => badge.content)))
|
|
277
291
|
);
|
|
@@ -292,6 +306,7 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
292
306
|
consumers: showConsumersFilter ? new Set(consumers.map((consumer) => consumer.id)) : new Set<string>(),
|
|
293
307
|
agentProviders: collectionType === 'agents' ? new Set(agentProviders.map((provider) => provider.id)) : new Set<string>(),
|
|
294
308
|
agentModels: collectionType === 'agents' ? new Set(agentModels.map((model) => model.id)) : new Set<string>(),
|
|
309
|
+
domainTypes: collectionType === 'domains' ? new Set(DOMAIN_TYPE_OPTIONS.map((option) => option.id)) : new Set<string>(),
|
|
295
310
|
badges: new Set(allBadges.map((badge) => badge.content)),
|
|
296
311
|
properties: new Set(propertyOptions.map((property) => property.id)),
|
|
297
312
|
statuses: collectionType === 'adrs' ? new Set(statusOptions.map((status) => status.id)) : new Set<string>(),
|
|
@@ -325,6 +340,7 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
325
340
|
badges: selectedBadges,
|
|
326
341
|
properties: selectedProperties,
|
|
327
342
|
statuses: selectedStatuses,
|
|
343
|
+
domainTypes: selectedDomainTypes,
|
|
328
344
|
showOnlyLatest,
|
|
329
345
|
onlyShowDrafts,
|
|
330
346
|
}),
|
|
@@ -334,6 +350,7 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
334
350
|
selectedAgentProviders,
|
|
335
351
|
selectedBadges,
|
|
336
352
|
selectedConsumers,
|
|
353
|
+
selectedDomainTypes,
|
|
337
354
|
selectedDomains,
|
|
338
355
|
selectedOwners,
|
|
339
356
|
selectedProducers,
|
|
@@ -356,6 +373,7 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
356
373
|
setSelectedConsumers((values) => pruneState(values, knownFilterValues.consumers));
|
|
357
374
|
setSelectedAgentProviders((values) => pruneState(values, knownFilterValues.agentProviders));
|
|
358
375
|
setSelectedAgentModels((values) => pruneState(values, knownFilterValues.agentModels));
|
|
376
|
+
setSelectedDomainTypes((values) => pruneState(values, knownFilterValues.domainTypes));
|
|
359
377
|
setSelectedBadges((values) => pruneState(values, knownFilterValues.badges));
|
|
360
378
|
setSelectedProperties((values) => pruneState(values, knownFilterValues.properties));
|
|
361
379
|
setSelectedStatuses((values) => pruneState(values, knownFilterValues.statuses));
|
|
@@ -402,6 +420,15 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
402
420
|
}
|
|
403
421
|
}
|
|
404
422
|
|
|
423
|
+
// Domain type filter
|
|
424
|
+
if (collectionType === 'domains' && selectedDomainTypes.length > 0) {
|
|
425
|
+
const matchesRoot = selectedDomainTypes.includes('root') && !row.isSubdomain;
|
|
426
|
+
const matchesSubdomain = selectedDomainTypes.includes('subdomain') && row.isSubdomain;
|
|
427
|
+
if (!matchesRoot && !matchesSubdomain) {
|
|
428
|
+
return false;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
|
|
405
432
|
// Owner filter
|
|
406
433
|
if (selectedOwners.length > 0) {
|
|
407
434
|
const itemOwners = row.owners || [];
|
|
@@ -541,6 +568,7 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
541
568
|
selectedOwners,
|
|
542
569
|
selectedProducers,
|
|
543
570
|
selectedConsumers,
|
|
571
|
+
selectedDomainTypes,
|
|
544
572
|
selectedAgentProviders,
|
|
545
573
|
selectedAgentModels,
|
|
546
574
|
selectedBadges,
|
|
@@ -652,6 +680,18 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
652
680
|
return counts;
|
|
653
681
|
}, [initialData]);
|
|
654
682
|
|
|
683
|
+
const domainTypeCounts = useMemo(() => {
|
|
684
|
+
const counts: Record<string, number> = { root: 0, subdomain: 0 };
|
|
685
|
+
initialData.forEach((item) => {
|
|
686
|
+
if (item.isSubdomain) {
|
|
687
|
+
counts.subdomain++;
|
|
688
|
+
} else {
|
|
689
|
+
counts.root++;
|
|
690
|
+
}
|
|
691
|
+
});
|
|
692
|
+
return counts;
|
|
693
|
+
}, [initialData]);
|
|
694
|
+
|
|
655
695
|
const toggleDomain = (domainId: string) => {
|
|
656
696
|
setSelectedDomains((prev) => (prev.includes(domainId) ? prev.filter((id) => id !== domainId) : [...prev, domainId]));
|
|
657
697
|
};
|
|
@@ -678,6 +718,12 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
678
718
|
setSelectedAgentModels((prev) => (prev.includes(modelId) ? prev.filter((id) => id !== modelId) : [...prev, modelId]));
|
|
679
719
|
};
|
|
680
720
|
|
|
721
|
+
const toggleDomainType = (domainType: string) => {
|
|
722
|
+
setSelectedDomainTypes((prev) =>
|
|
723
|
+
prev.includes(domainType) ? prev.filter((id) => id !== domainType) : [...prev, domainType]
|
|
724
|
+
);
|
|
725
|
+
};
|
|
726
|
+
|
|
681
727
|
const toggleBadge = (badgeContent: string) => {
|
|
682
728
|
setSelectedBadges((prev) => (prev.includes(badgeContent) ? prev.filter((b) => b !== badgeContent) : [...prev, badgeContent]));
|
|
683
729
|
};
|
|
@@ -703,6 +749,7 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
703
749
|
setSelectedConsumers([]);
|
|
704
750
|
setSelectedAgentProviders([]);
|
|
705
751
|
setSelectedAgentModels([]);
|
|
752
|
+
setSelectedDomainTypes(collectionType === 'domains' ? ['root'] : []);
|
|
706
753
|
setSelectedBadges([]);
|
|
707
754
|
setSelectedStatuses([]);
|
|
708
755
|
setSelectedProperties([]);
|
|
@@ -719,6 +766,7 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
719
766
|
selectedConsumers.length +
|
|
720
767
|
selectedAgentProviders.length +
|
|
721
768
|
selectedAgentModels.length +
|
|
769
|
+
selectedDomainTypes.length +
|
|
722
770
|
selectedBadges.length +
|
|
723
771
|
selectedStatuses.length +
|
|
724
772
|
selectedProperties.length +
|
|
@@ -742,6 +790,9 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
742
790
|
(id) => agentProviders.find((provider) => provider.id === id)?.name || id
|
|
743
791
|
);
|
|
744
792
|
const selectedAgentModelNames = selectedAgentModels.map((id) => agentModels.find((model) => model.id === id)?.name || id);
|
|
793
|
+
const selectedDomainTypeNames = selectedDomainTypes.map(
|
|
794
|
+
(id) => DOMAIN_TYPE_OPTIONS.find((option) => option.id === id)?.label || id
|
|
795
|
+
);
|
|
745
796
|
const selectedStatusNames = selectedStatuses.map((id) => statusOptions.find((status) => status.id === id)?.name || id);
|
|
746
797
|
|
|
747
798
|
// Filter producers/consumers to only show those with count > 0
|
|
@@ -853,6 +904,33 @@ export function DiscoverTable<T extends DiscoverTableData>({
|
|
|
853
904
|
|
|
854
905
|
{/* Catalog Filters Section */}
|
|
855
906
|
<div className="space-y-3">
|
|
907
|
+
{collectionType === 'domains' && (
|
|
908
|
+
<div>
|
|
909
|
+
<label className="block text-xs font-medium text-[rgb(var(--ec-page-text)/0.8)] mb-1.5">
|
|
910
|
+
Filter by Domain type
|
|
911
|
+
</label>
|
|
912
|
+
<FilterDropdown
|
|
913
|
+
label="All domains"
|
|
914
|
+
selectedItems={selectedDomainTypeNames}
|
|
915
|
+
onClear={() => setSelectedDomainTypes([])}
|
|
916
|
+
onRemoveItem={(label) => {
|
|
917
|
+
const option = DOMAIN_TYPE_OPTIONS.find((item) => item.label === label);
|
|
918
|
+
if (option) toggleDomainType(option.id);
|
|
919
|
+
}}
|
|
920
|
+
>
|
|
921
|
+
{DOMAIN_TYPE_OPTIONS.map((option) => (
|
|
922
|
+
<CheckboxItem
|
|
923
|
+
key={option.id}
|
|
924
|
+
label={option.label}
|
|
925
|
+
checked={selectedDomainTypes.includes(option.id)}
|
|
926
|
+
onChange={() => toggleDomainType(option.id)}
|
|
927
|
+
count={domainTypeCounts[option.id] || 0}
|
|
928
|
+
/>
|
|
929
|
+
))}
|
|
930
|
+
</FilterDropdown>
|
|
931
|
+
</div>
|
|
932
|
+
)}
|
|
933
|
+
|
|
856
934
|
{collectionType === 'agents' && (filteredAgentProviders.length > 0 || filteredAgentModels.length > 0) && (
|
|
857
935
|
<>
|
|
858
936
|
{filteredAgentProviders.length > 0 && (
|
|
@@ -19,6 +19,7 @@ import { favoritesStore, toggleFavorite, type FavoriteItem } from '../../../stor
|
|
|
19
19
|
import type { DiscoverTableData, CollectionType } from './DiscoverTable';
|
|
20
20
|
import type { TableConfiguration } from '@types';
|
|
21
21
|
import { formatAdrDate, isAdrCollection } from '@utils/collections/adr-constants';
|
|
22
|
+
import { CornerDownRight } from 'lucide-react';
|
|
22
23
|
|
|
23
24
|
const columnHelper = createColumnHelper<DiscoverTableData>();
|
|
24
25
|
|
|
@@ -121,22 +122,48 @@ const ResourceNameCell = ({ item }: { item: DiscoverTableData }) => {
|
|
|
121
122
|
const { color, Icon } = getColorAndIconForCollection(item.collection);
|
|
122
123
|
const resourceIcon = item.data.icon;
|
|
123
124
|
const resourceIconUrl = isIconPath(resourceIcon) ? resolveIconUrl(resourceIcon) : null;
|
|
125
|
+
const isDomain = item.collection === 'domains';
|
|
126
|
+
const subdomains = isDomain ? item.data.domains || [] : [];
|
|
124
127
|
|
|
125
128
|
return (
|
|
126
|
-
<
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
129
|
+
<div className="flex min-w-0 flex-col gap-2">
|
|
130
|
+
<a
|
|
131
|
+
href={buildUrl(`/docs/${item.collection}/${item.data.id}/${item.data.version}`)}
|
|
132
|
+
className="group inline-flex items-center gap-2.5 hover:text-[rgb(var(--ec-accent))] transition-colors"
|
|
133
|
+
>
|
|
134
|
+
{resourceIconUrl ? (
|
|
135
|
+
<img src={resourceIconUrl} alt="" className="h-5 w-5 flex-shrink-0 rounded-sm object-contain" />
|
|
136
|
+
) : (
|
|
137
|
+
<Icon className={`h-4 w-4 flex-shrink-0 ${getCollectionTextColorClass(color, 'text-[rgb(var(--ec-icon-color))]')}`} />
|
|
138
|
+
)}
|
|
139
|
+
<span className="text-sm font-semibold text-[rgb(var(--ec-page-text))] group-hover:text-[rgb(var(--ec-accent))]">
|
|
140
|
+
{item.data.name}
|
|
141
|
+
</span>
|
|
142
|
+
{!isLatestVersion && <span className="text-xs text-[rgb(var(--ec-icon-color))]">v{item.data.version}</span>}
|
|
143
|
+
{item.isSubdomain && (
|
|
144
|
+
<span className="rounded-full border border-[rgb(var(--ec-page-border))] px-1.5 py-0.5 text-[10px] font-medium text-[rgb(var(--ec-page-text-muted))]">
|
|
145
|
+
Subdomain
|
|
146
|
+
</span>
|
|
147
|
+
)}
|
|
148
|
+
</a>
|
|
149
|
+
|
|
150
|
+
{subdomains.length > 0 && (
|
|
151
|
+
<div className="flex flex-col gap-1 pl-6">
|
|
152
|
+
{subdomains.map((domain: any) => (
|
|
153
|
+
<a
|
|
154
|
+
key={`${domain.data.id}-${domain.data.version}`}
|
|
155
|
+
href={buildUrl(`/docs/${domain.collection || 'domains'}/${domain.data.id}/${domain.data.version}`)}
|
|
156
|
+
className="group/subdomain inline-flex w-fit items-center gap-1.5 text-xs text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-accent))]"
|
|
157
|
+
>
|
|
158
|
+
<CornerDownRight className="h-3.5 w-3.5 flex-shrink-0 text-[rgb(var(--ec-icon-color))] group-hover/subdomain:text-[rgb(var(--ec-accent))]" />
|
|
159
|
+
<span className="font-medium text-[rgb(var(--ec-page-text))] group-hover/subdomain:text-[rgb(var(--ec-accent))]">
|
|
160
|
+
{domain.data.name}
|
|
161
|
+
</span>
|
|
162
|
+
</a>
|
|
163
|
+
))}
|
|
164
|
+
</div>
|
|
134
165
|
)}
|
|
135
|
-
|
|
136
|
-
{item.data.name}
|
|
137
|
-
</span>
|
|
138
|
-
{!isLatestVersion && <span className="text-xs text-[rgb(var(--ec-icon-color))]">v{item.data.version}</span>}
|
|
139
|
-
</a>
|
|
166
|
+
</div>
|
|
140
167
|
);
|
|
141
168
|
};
|
|
142
169
|
|
|
@@ -6,6 +6,7 @@ export interface DiscoverFilterQueryState {
|
|
|
6
6
|
consumers: string[];
|
|
7
7
|
agentProviders: string[];
|
|
8
8
|
agentModels: string[];
|
|
9
|
+
domainTypes: string[];
|
|
9
10
|
badges: string[];
|
|
10
11
|
properties: string[];
|
|
11
12
|
statuses: string[];
|
|
@@ -21,6 +22,7 @@ const FILTER_PARAM_NAMES = [
|
|
|
21
22
|
'consumer',
|
|
22
23
|
'agentProvider',
|
|
23
24
|
'agentModel',
|
|
25
|
+
'domainType',
|
|
24
26
|
'badge',
|
|
25
27
|
'property',
|
|
26
28
|
'status',
|
|
@@ -47,6 +49,7 @@ export const parseDiscoverFilterSearch = (search: string): DiscoverFilterQuerySt
|
|
|
47
49
|
consumers: getValues(params, 'consumer'),
|
|
48
50
|
agentProviders: getValues(params, 'agentProvider'),
|
|
49
51
|
agentModels: getValues(params, 'agentModel'),
|
|
52
|
+
domainTypes: getValues(params, 'domainType'),
|
|
50
53
|
badges: getValues(params, 'badge'),
|
|
51
54
|
properties: getValues(params, 'property'),
|
|
52
55
|
statuses: getValues(params, 'status'),
|
|
@@ -73,6 +76,7 @@ export const buildDiscoverFilterSearch = (filters: DiscoverFilterQueryState, cur
|
|
|
73
76
|
appendValues('consumer', filters.consumers);
|
|
74
77
|
appendValues('agentProvider', filters.agentProviders);
|
|
75
78
|
appendValues('agentModel', filters.agentModels);
|
|
79
|
+
appendValues('domainType', filters.domainTypes);
|
|
76
80
|
appendValues('badge', filters.badges);
|
|
77
81
|
appendValues('property', filters.properties);
|
|
78
82
|
appendValues('status', filters.statuses);
|
|
@@ -93,7 +93,6 @@ const typeConfig: Record<
|
|
|
93
93
|
propertyOptions: [
|
|
94
94
|
{ id: 'hasServices', label: 'Has Services' },
|
|
95
95
|
{ id: 'hasOwners', label: 'Has Owners' },
|
|
96
|
-
{ id: 'isSubdomain', label: 'Is Subdomain' },
|
|
97
96
|
{ id: 'isDeprecated', label: 'Is Deprecated' },
|
|
98
97
|
],
|
|
99
98
|
},
|
|
@@ -285,6 +284,21 @@ function resolvePointer(pointer: { id: string; version?: string }) {
|
|
|
285
284
|
const allSubdomainIds = new Set(
|
|
286
285
|
domains.flatMap((d: any) => (d.data?.domains || []).map((sd: any) => sd.data?.id || sd.id)).filter(Boolean)
|
|
287
286
|
);
|
|
287
|
+
const parentDomainsBySubdomainId = domains.reduce((parentsBySubdomain: Map<string, any[]>, domain: any) => {
|
|
288
|
+
(domain.data?.domains || []).forEach((subdomain: any) => {
|
|
289
|
+
const subdomainId = subdomain.data?.id || subdomain.id;
|
|
290
|
+
if (!subdomainId) return;
|
|
291
|
+
|
|
292
|
+
const parents = parentsBySubdomain.get(subdomainId) || [];
|
|
293
|
+
parents.push({
|
|
294
|
+
id: domain.data.id,
|
|
295
|
+
name: domain.data.name,
|
|
296
|
+
version: domain.data.version,
|
|
297
|
+
});
|
|
298
|
+
parentsBySubdomain.set(subdomainId, parents);
|
|
299
|
+
});
|
|
300
|
+
return parentsBySubdomain;
|
|
301
|
+
}, new Map<string, any[]>());
|
|
288
302
|
|
|
289
303
|
const isAgentLike = type === 'agents';
|
|
290
304
|
const isServiceLike = type === 'services' || type === 'external-systems';
|
|
@@ -314,6 +328,7 @@ const tableData = enrichedData.map((d: any) => ({
|
|
|
314
328
|
hasServices: type === 'domains' || type === 'systems' ? (d.data?.services || []).length > 0 : false,
|
|
315
329
|
hasFlows: type === 'systems' ? (d.data?.flows || []).length > 0 : false,
|
|
316
330
|
isSubdomain: type === 'domains' ? allSubdomainIds.has(d.data.id) : false,
|
|
331
|
+
parentDomains: type === 'domains' ? parentDomainsBySubdomainId.get(d.data.id) || [] : undefined,
|
|
317
332
|
// Service-specific properties
|
|
318
333
|
domains: isServiceOrAgentLike ? d.enrichedDomains : undefined,
|
|
319
334
|
hasSpecifications: isServiceLike ? hasSpecifications(d) : false,
|
|
@@ -347,6 +362,7 @@ const tableData = enrichedData.map((d: any) => ({
|
|
|
347
362
|
tools: d.data?.tools ?? [],
|
|
348
363
|
agents: d.data?.agents?.map(mapToItem) ?? [],
|
|
349
364
|
services: d.data?.services?.map(mapToItem) ?? [],
|
|
365
|
+
domains: d.data?.domains?.map(mapToItem) ?? [],
|
|
350
366
|
flows: d.data?.flows?.map(mapToItem) ?? [],
|
|
351
367
|
servicesThatWriteToContainer: d.data?.servicesThatWriteToContainer?.map(mapToItem) ?? [],
|
|
352
368
|
servicesThatReadFromContainer: d.data?.servicesThatReadFromContainer?.map(mapToItem) ?? [],
|