refactor: rename group/groupName to application/applicationName
The execution-related "group" concept actually represents the application name. Rename all Java fields, API parameters, and frontend types from groupName→applicationName and group→application for clarity. - Java records: ExecutionSummary, ExecutionDetail, ExecutionDocument, ExecutionRecord, ProcessorRecord - API params: SearchRequest.group→application, SearchController @RequestParam group→application - Services: IngestionService, DetailService, SearchIndexer, StatsStore - Frontend: schema.d.ts, Dashboard, ExchangeDetail, RouteDetail, executions query hooks Database column names (group_name) and OpenSearch field names are unchanged — only the API-facing Java/TS field names are renamed. RBAC group references (groups table, GroupRepository, GroupsTab) are a separate domain concept and are NOT affected by this change. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,10 +6,10 @@ export function useExecutionStats(
|
||||
timeFrom: string | undefined,
|
||||
timeTo: string | undefined,
|
||||
routeId?: string,
|
||||
group?: string,
|
||||
application?: string,
|
||||
) {
|
||||
return useQuery({
|
||||
queryKey: ['executions', 'stats', timeFrom, timeTo, routeId, group],
|
||||
queryKey: ['executions', 'stats', timeFrom, timeTo, routeId, application],
|
||||
queryFn: async () => {
|
||||
const { data, error } = await api.GET('/search/stats', {
|
||||
params: {
|
||||
@@ -17,7 +17,7 @@ export function useExecutionStats(
|
||||
from: timeFrom!,
|
||||
to: timeTo || undefined,
|
||||
routeId: routeId || undefined,
|
||||
group: group || undefined,
|
||||
application: application || undefined,
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -49,10 +49,10 @@ export function useStatsTimeseries(
|
||||
timeFrom: string | undefined,
|
||||
timeTo: string | undefined,
|
||||
routeId?: string,
|
||||
group?: string,
|
||||
application?: string,
|
||||
) {
|
||||
return useQuery({
|
||||
queryKey: ['executions', 'timeseries', timeFrom, timeTo, routeId, group],
|
||||
queryKey: ['executions', 'timeseries', timeFrom, timeTo, routeId, application],
|
||||
queryFn: async () => {
|
||||
const { data, error } = await api.GET('/search/stats/timeseries', {
|
||||
params: {
|
||||
@@ -61,7 +61,7 @@ export function useStatsTimeseries(
|
||||
to: timeTo || undefined,
|
||||
buckets: 24,
|
||||
routeId: routeId || undefined,
|
||||
group: group || undefined,
|
||||
application: application || undefined,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
10
ui/src/api/schema.d.ts
vendored
10
ui/src/api/schema.d.ts
vendored
@@ -1079,7 +1079,7 @@ export interface components {
|
||||
routeId?: string;
|
||||
agentId?: string;
|
||||
processorType?: string;
|
||||
group?: string;
|
||||
application?: string;
|
||||
agentIds?: string[];
|
||||
/** Format: int32 */
|
||||
offset?: number;
|
||||
@@ -1092,7 +1092,7 @@ export interface components {
|
||||
executionId: string;
|
||||
routeId: string;
|
||||
agentId: string;
|
||||
groupName: string;
|
||||
applicationName: string;
|
||||
status: string;
|
||||
/** Format: date-time */
|
||||
startTime: string;
|
||||
@@ -1327,7 +1327,7 @@ export interface components {
|
||||
errorStackTrace: string;
|
||||
diagramContentHash: string;
|
||||
processors: components["schemas"]["ProcessorNode"][];
|
||||
groupName?: string;
|
||||
applicationName?: string;
|
||||
children?: components["schemas"]["ProcessorNode"][];
|
||||
};
|
||||
ProcessorNode: {
|
||||
@@ -2977,7 +2977,7 @@ export interface operations {
|
||||
from: string;
|
||||
to?: string;
|
||||
routeId?: string;
|
||||
group?: string;
|
||||
application?: string;
|
||||
};
|
||||
header?: never;
|
||||
path?: never;
|
||||
@@ -3003,7 +3003,7 @@ export interface operations {
|
||||
to?: string;
|
||||
buckets?: number;
|
||||
routeId?: string;
|
||||
group?: string;
|
||||
application?: string;
|
||||
};
|
||||
header?: never;
|
||||
path?: never;
|
||||
|
||||
@@ -36,7 +36,7 @@ export default function Dashboard() {
|
||||
const { data: searchResult } = useSearchExecutions({
|
||||
timeFrom, timeTo,
|
||||
routeId: routeId || undefined,
|
||||
group: appId || undefined,
|
||||
application: appId || undefined,
|
||||
offset: 0, limit: 50,
|
||||
}, true);
|
||||
const { data: detail } = useExecutionDetail(selectedId);
|
||||
@@ -94,7 +94,7 @@ export default function Dashboard() {
|
||||
),
|
||||
},
|
||||
{ key: 'routeId', header: 'Route', sortable: true, render: (v) => <span>{String(v)}</span> },
|
||||
{ key: 'groupName', header: 'Application', sortable: true, render: (v) => <span>{String(v ?? '')}</span> },
|
||||
{ key: 'applicationName', header: 'Application', sortable: true, render: (v) => <span>{String(v ?? '')}</span> },
|
||||
{ key: 'executionId', header: 'Exchange ID', sortable: true, render: (v) => <MonoText size="xs">{String(v)}</MonoText> },
|
||||
{ key: 'startTime', header: 'Started', sortable: true, render: (v) => <MonoText size="xs">{new Date(v as string).toISOString().replace('T', ' ').slice(0, 19)}</MonoText> },
|
||||
{
|
||||
|
||||
@@ -94,7 +94,7 @@ export default function ExchangeDetail() {
|
||||
<div>
|
||||
<Breadcrumb items={[
|
||||
{ label: 'Dashboard', href: '/apps' },
|
||||
{ label: detail.groupName || 'App', href: `/apps/${detail.groupName}` },
|
||||
{ label: detail.applicationName || 'App', href: `/apps/${detail.applicationName}` },
|
||||
{ label: id?.slice(0, 12) || '' },
|
||||
]} />
|
||||
|
||||
@@ -109,11 +109,11 @@ export default function ExchangeDetail() {
|
||||
<Badge label={detail.status} color={detail.status === 'COMPLETED' ? 'success' : 'error'} variant="filled" />
|
||||
</div>
|
||||
<div className={styles.exchangeRoute}>
|
||||
Route: <span className={styles.routeLink} onClick={() => navigate(`/apps/${detail.groupName}/${detail.routeId}`)}>{detail.routeId}</span>
|
||||
{detail.groupName && (
|
||||
Route: <span className={styles.routeLink} onClick={() => navigate(`/apps/${detail.applicationName}/${detail.routeId}`)}>{detail.routeId}</span>
|
||||
{detail.applicationName && (
|
||||
<>
|
||||
<span className={styles.headerDivider}>·</span>
|
||||
App: <MonoText size="xs">{detail.groupName}</MonoText>
|
||||
App: <MonoText size="xs">{detail.applicationName}</MonoText>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -51,7 +51,7 @@ export default function RouteDetail() {
|
||||
timeFrom,
|
||||
timeTo,
|
||||
routeId: routeId || undefined,
|
||||
group: appId || undefined,
|
||||
application: appId || undefined,
|
||||
offset: 0,
|
||||
limit: 50,
|
||||
});
|
||||
@@ -59,7 +59,7 @@ export default function RouteDetail() {
|
||||
timeFrom,
|
||||
timeTo,
|
||||
routeId: routeId || undefined,
|
||||
group: appId || undefined,
|
||||
application: appId || undefined,
|
||||
status: 'FAILED',
|
||||
offset: 0,
|
||||
limit: 200,
|
||||
|
||||
Reference in New Issue
Block a user