Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b6d83e8
feat(store): add signal-native MetricsDataService (W-a1)
nabramovitz May 21, 2026
bdf33cb
feat(metrics): signal-native chart layer + 7 consumers (W-a2/W-a3)
nabramovitz May 21, 2026
987a9ea
chore(metrics): delete V2 ngrx metrics surface (W-a4)
nabramovitz May 21, 2026
7b6e46d
refactor(apps): retire CfAppsDataSource via direct signal reads (W-b)
nabramovitz May 21, 2026
883e9f8
refactor(cf-user): swap isConnectedUserAdmin selector (W-c)
nabramovitz May 21, 2026
3f9ea6c
refactor(update-app-effects): retire V2 effect (W-d)
nabramovitz May 21, 2026
60f194c
refactor(cf-info): swap effect for EndpointDataService fetcher (W-e)
nabramovitz May 21, 2026
8d9159d
refactor(endpoint-data.shim): retire V2 org+space paths (W-f)
nabramovitz May 21, 2026
1b7997d
test(cf-stratos): drop duplicate-url-collision spec post-W-f
nabramovitz May 21, 2026
9f51117
fix(endpoints): restore FWT-929 duplicate-URL warning on endpoints page
nabramovitz May 21, 2026
1181197
chore(jetstream): bump fw-capi to v3.216.4-fix-apps-delete.11
nabramovitz May 23, 2026
d7e65d8
feat(cloud-foundry): EDS staleness + cascade registry foundation
nabramovitz May 23, 2026
f65e6d4
feat(cloud-foundry): CnsiOrgsSource + CnsiSpacesSource (Phase 2.a)
nabramovitz May 23, 2026
2b9e097
refactor(cloud-foundry): retrofit SI/SB/Routes/Apps sources (Phase 2.b)
nabramovitz May 23, 2026
7b5a929
refactor(cloud-foundry): wire Orgs/Spaces/Apps configs to sources (Ph…
nabramovitz May 23, 2026
81f03ce
fix(refresh): bind real loading signal into endpoints + k8s page tool…
nabramovitz May 23, 2026
724f52f
chore(cf-summary): swap CLI Info icon to material-icons terminal
nabramovitz May 23, 2026
bc16d21
feat(cf-tabs): Org + Space filter dropdowns on Routes/Services/Users/…
nabramovitz May 23, 2026
7846e2a
chore: bump dev.96 for adepttech deploy
nabramovitz May 23, 2026
9180930
chore: bump dev.97 for delete-flow verification deploy
nabramovitz May 23, 2026
4d024d9
feat(cloud-foundry): CnsiAppsSource + CnsiRoutesSource create()
nabramovitz May 23, 2026
1276186
refactor(cloud-foundry): route 11 mutation steppers through source cl…
nabramovitz May 23, 2026
e6f43be
fix(quotas): wire refresh-spin animation on org + space quota pages
nabramovitz May 23, 2026
244c21f
chore: bump dev.98 for source-routing + quota-spin deploy
nabramovitz May 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "stratos",
"version": "v5.0.0-dev.94+build.20260519.1cfce0b572",
"version": "v5.0.0-dev.98+build.20260523.e6f43bec13",
"type": "module",
"description": "Stratos Console",
"main": "index.js",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Schema, schema } from 'normalizr';

import { getCFCompositeEntityId } from '../../../cloud-foundry/src/store/selectors/api.selectors';
import { EntitySchema, metricEntityType } from '@stratosui/store';
import { EntitySchema } from '@stratosui/store';

export const appAutoscalerInfoEntityType = 'autoscalerInfo';
export const appAutoscalerHealthEntityType = 'autoscalerHealth';
Expand Down Expand Up @@ -74,9 +74,6 @@ entityCache[appAutoscalerAppMetricEntityType] = new AutoscalerEntitySchema(
{ idAttribute: getCFCompositeEntityId }
);

const MetricSchema = new AutoscalerEntitySchema(metricEntityType);
entityCache[metricEntityType] = MetricSchema;

export function autoscalerEntityFactory(key: string): EntitySchema {
const entity = entityCache[key];
if (!entity) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import {
StratosCatalogEndpointEntity,
StratosCatalogEntity,
StratosEndpointExtensionDefinition,
metricEntityType,
APIResource,
IFavoriteMetadata
} from '@stratosui/store';
Expand Down Expand Up @@ -46,7 +45,6 @@ export function generateASEntities(): StratosBaseCatalogEntity[] {
generateHealthEntity(endpointDefinition),
generateScalingEntity(endpointDefinition),
generateAppMetricEntity(endpointDefinition),
generateMetricEntity(endpointDefinition),
generateCredentialEntity(endpointDefinition),
];
}
Expand Down Expand Up @@ -119,13 +117,3 @@ function generateAppMetricEntity(endpointDefinition: StratosEndpointExtensionDef
return new StratosCatalogEntity<IFavoriteMetadata, APIResource<any>>(definition);
}

function generateMetricEntity(endpointDefinition: StratosEndpointExtensionDefinition) {
const definition = {
type: metricEntityType,
schema: autoscalerEntityFactory(metricEntityType),
label: 'Autoscaler Metric',
labelPlural: 'Autoscaler Metrics',
endpoint: endpointDefinition,
};
return new StratosCatalogEntity<IFavoriteMetadata, APIResource<any>>(definition);
}
101 changes: 0 additions & 101 deletions src/frontend/packages/cloud-foundry/src/actions/cf-metrics.actions.ts

This file was deleted.

This file was deleted.

12 changes: 0 additions & 12 deletions src/frontend/packages/cloud-foundry/src/cf-entity-catalog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import {
IApp,
IAppSummary,
IBuildpack,
ICfV2Info,
IDomain,
IFeatureFlag,
IOrganization,
Expand All @@ -37,7 +36,6 @@ import { AppSummaryActionBuilders } from './entity-action-builders/application-s
import { ApplicationActionBuilders } from './entity-action-builders/application.action-builders';
import { BuildpackActionBuilders } from './entity-action-builders/buildpack.action-builders';
import { CfEventActionBuilders } from './entity-action-builders/cf-event.action-builders';
import { CfInfoDefinitionActionBuilders } from './entity-action-builders/cf-info.action-builders';
import { DomainActionBuilders } from './entity-action-builders/domin.action-builder';
import { FeatureFlagActionBuilders } from './entity-action-builders/feature-flag.action-builder';
import { OrganizationActionBuilders } from './entity-action-builders/organization.action-builders';
Expand Down Expand Up @@ -93,12 +91,6 @@ export class CfEntityCatalog {
APIResource<IPrivateDomain>
>;

public cfInfo!: StratosBaseCatalogEntity<
IFavoriteMetadata,
APIResource<ICfV2Info>,
CfInfoDefinitionActionBuilders
>;

public appStats!: StratosBaseCatalogEntity<
IFavoriteMetadata,
AppStat,
Expand Down Expand Up @@ -206,10 +198,6 @@ export class CfEntityCatalog {
OrganizationActionBuilders
>;

public metric!: StratosBaseCatalogEntity<
IFavoriteMetadata
>;

public userProvidedService!: StratosBaseCatalogEntity<
IFavoriteMetadata,
APIResource<IUserProvidedServiceInstance>,
Expand Down
9 changes: 1 addition & 8 deletions src/frontend/packages/cloud-foundry/src/cf-entity-factory.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EntitySchema, metricEntityType, APIResource } from '@stratosui/store';
import { EntitySchema, APIResource } from '@stratosui/store';
import {
CFApplicationEntitySchema,
CFEntitySchema,
Expand All @@ -16,7 +16,6 @@ import {
appSummaryEntityType,
buildpackEntityType,
cfEventEntityType,
cfInfoEntityType,
cfUserEntityType,
domainEntityType,
featureFlagEntityType,
Expand Down Expand Up @@ -56,9 +55,6 @@ entityCache[appStatsEntityType] = AppStatSchema;
const AppEnvVarSchema = new CFEntitySchema(appEnvVarsEntityType, {}, { idAttribute: getCFCompositeEntityId });
entityCache[appEnvVarsEntityType] = AppEnvVarSchema;

const CFInfoSchema = new CFEntitySchema(cfInfoEntityType);
entityCache[cfInfoEntityType] = CFInfoSchema;

const EventSchema = new CFEntitySchema(cfEventEntityType, {}, { idAttribute: getCFCompositeEntityId });
entityCache[cfEventEntityType] = EventSchema;

Expand Down Expand Up @@ -92,9 +88,6 @@ const ServiceNoPlansSchema = new CFEntitySchema(serviceEntityType, {
}, { idAttribute: getCFCompositeEntityId });
entityCache[serviceEntityType] = ServiceSchema;

const MetricSchema = new CFEntitySchema(metricEntityType);
entityCache[metricEntityType] = MetricSchema;

const SpaceQuotaSchema = new CFEntitySchema(spaceQuotaEntityType, {}, { idAttribute: getCFCompositeEntityId });
entityCache[spaceQuotaEntityType] = SpaceQuotaSchema;

Expand Down
55 changes: 7 additions & 48 deletions src/frontend/packages/cloud-foundry/src/cf-entity-generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import {
IStratosEntityDefinition,
JetstreamError,
JetstreamResponse,
metricEntityType,
PaginatedAction,
PaginationEntityState,
RequestInfoState,
Expand Down Expand Up @@ -48,6 +47,7 @@ import {
StSpaceQuota,
StStack,
} from './services/endpoint-data/stratos-types';
import { refreshCfInfo } from './services/endpoint-data/cf-info-helper';
import { v3EntitiesFromResponse, v3PaginationConfig, v3SingleResourceMapper } from './v3-native';
import {
IService,
Expand All @@ -63,7 +63,6 @@ import {
IApp,
IAppSummary,
IBuildpack,
ICfV2Info,
IDomain,
IFeatureFlag,
IOrganization,
Expand All @@ -84,7 +83,6 @@ import {
appSummaryEntityType,
buildpackEntityType,
cfEventEntityType,
cfInfoEntityType,
cfUserEntityType,
domainEntityType,
featureFlagEntityType,
Expand Down Expand Up @@ -123,10 +121,6 @@ import {
import { applicationActionBuilder, ApplicationActionBuilders } from './entity-action-builders/application.action-builders';
import { BuildpackActionBuilders, buildpackActionBuilders } from './entity-action-builders/buildpack.action-builders';
import { CfEventActionBuilders, cfEventActionBuilders } from './entity-action-builders/cf-event.action-builders';
import {
CfInfoDefinitionActionBuilders,
cfInfoDefinitionActionBuilders,
} from './entity-action-builders/cf-info.action-builders';
import { DomainActionBuilders, domainActionBuilders } from './entity-action-builders/domin.action-builder';
import { FeatureFlagActionBuilders, featureFlagActionBuilders } from './entity-action-builders/feature-flag.action-builder';
import {
Expand Down Expand Up @@ -288,7 +282,12 @@ export function generateCFEntities(): StratosBaseCatalogEntity[] {
},
listDetailsComponent: CfEndpointDetailsComponent,
renderPriority: 1,
healthCheck: new EndpointHealthCheck(CF_ENDPOINT_TYPE, (endpoint) => cfEntityCatalog.cfInfo.api.get(endpoint.guid)),
// W-e: was `cfEntityCatalog.cfInfo.api.get(endpoint.guid)` which dispatched
// a GetCFInfo ngrx action handled by CloudFoundryEffects.fetchInfo$ — both
// the action class and the effect are gone. refreshCfInfo() bypasses
// CfInfoDataService's warm-cache short-circuit so the periodic endpoint
// health pulse still produces a fresh /pp/v1/cf/info/{guid} fetch.
healthCheck: new EndpointHealthCheck(CF_ENDPOINT_TYPE, (endpoint) => refreshCfInfo(endpoint.guid)),
getEndpointIdFromEntity: (entity: CfAPIResource) => entity.entity.cfGuid,
globalPreRequest: (request, action) => {
return addCfRelationParams(request, action);
Expand Down Expand Up @@ -437,13 +436,11 @@ export function generateCFEntities(): StratosBaseCatalogEntity[] {
generateCFBuildPackEntity(endpointDefinition),
generateCFAppStatsEntity(endpointDefinition),
generateCFUserProvidedServiceInstanceEntity(endpointDefinition),
generateCFInfoEntity(endpointDefinition),
generateCFPrivateDomainEntity(endpointDefinition),
generateCFSpaceQuotaEntity(endpointDefinition),
generateCFAppSummaryEntity(endpointDefinition),
generateCFAppEnvVarEntity(endpointDefinition),
generateCFQuotaDefinitionEntity(endpointDefinition),
generateCFMetrics(endpointDefinition)
];
}

Expand Down Expand Up @@ -608,29 +605,6 @@ function generateCFPrivateDomainEntity(endpointDefinition: StratosEndpointExtens
return cfEntityCatalog.privateDomain;
}

function generateCFInfoEntity(endpointDefinition: StratosEndpointExtensionDefinition) {
const cfInfoDefinition: IStratosEntityDefinition = {
type: cfInfoEntityType,
schema: cfEntityFactory(cfInfoEntityType),
label: 'Cloud Foundry Info',
labelPlural: 'Cloud Foundry Infos',
endpoint: endpointDefinition
};
cfEntityCatalog.cfInfo = new StratosCatalogEntity<IFavoriteMetadata, APIResource<ICfV2Info>, CfInfoDefinitionActionBuilders>(
cfInfoDefinition,
{
actionBuilders: cfInfoDefinitionActionBuilders,
entityBuilder: {
getMetadata: info => ({
name: info.entity.name,
}),
getGuid: entity => entity.metadata.guid
}
}
);
return cfEntityCatalog.cfInfo;
}

function generateCFUserProvidedServiceInstanceEntity(endpointDefinition: StratosEndpointExtensionDefinition) {
const definition: IStratosEntityDefinition = {
type: userProvidedServiceInstanceEntityType,
Expand Down Expand Up @@ -1422,18 +1396,3 @@ function generateCfOrgEntity(endpointDefinition: StratosEndpointExtensionDefinit
return cfEntityCatalog.org;
}

function generateCFMetrics(endpointDefinition: StratosEndpointExtensionDefinition) {
const definition: IStratosEntityDefinition = {
type: metricEntityType,
schema: cfEntityFactory(metricEntityType),
label: 'CF Metric',
labelPlural: 'CF Metrics',
endpoint: endpointDefinition,
};
cfEntityCatalog.metric = new StratosCatalogEntity<IFavoriteMetadata>(
definition,
{
}
);
return cfEntityCatalog.metric;
}
1 change: 0 additions & 1 deletion src/frontend/packages/cloud-foundry/src/cf-entity-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ export const domainEntityType = 'domain';
export const organizationEntityType = 'organization';
export const quotaDefinitionEntityType = 'quota_definition';
export const cfEventEntityType = 'cloudFoundryEvent';
export const cfInfoEntityType = 'cloudFoundryInfo';
export const cfUserEntityType = 'user';
export const appSummaryEntityType = 'applicationSummary';
export const appStatsEntityType = 'applicationStats';
Expand Down
Loading
Loading