Skip to content

Add Gulp watch#11

Merged
sean-sq-chen merged 2 commits into
masterfrom
add-gulp-watch
Jan 9, 2016
Merged

Add Gulp watch#11
sean-sq-chen merged 2 commits into
masterfrom
add-gulp-watch

Conversation

@ongk
Copy link
Copy Markdown
Contributor

@ongk ongk commented Jan 8, 2016

Add Gulp watch on HTML, JS and SCSS files

sean-sq-chen added a commit that referenced this pull request Jan 9, 2016
@sean-sq-chen sean-sq-chen merged commit 00bc60c into master Jan 9, 2016
@ongk ongk deleted the add-gulp-watch branch January 9, 2016 00:41
irfanhabib pushed a commit that referenced this pull request Jun 1, 2017
Merging to unblock cluster registration.
irfanhabib pushed a commit that referenced this pull request Oct 31, 2017
irfanhabib pushed a commit that referenced this pull request Mar 28, 2018
irfanhabib pushed a commit that referenced this pull request Nov 8, 2018
krutten pushed a commit that referenced this pull request Oct 31, 2024
* Make builds work and abstract away architecture (#1)

* use centos 7 as default base image

* don't remove packages that aren't there

* set imagePullPolicy to IfNotPresent

* adjust docker org and tag

* make builds work with centos 7, also revise build script to include param for architecture

* adjust image list for centos 7

* Improvements in vulnerability checking (#8)

* Fix install of swag

Go now uses `go install` instead of `go get` to install packages to the local machine

* replace docs module appropriately

* Configure dependabot

Introduce a basic dependabot.yaml to check for
updates both in the project root for npm and in
the backend directory (src/jetstream) for go

* Include website and electron projects in dependabot

* Fix the CVEs in the jetstream backend (#12)

* Delete grufty go.sum, gut go.mod entirely and refresh dependencies

* add back some dependencies needed for tests to run; update return values of methods using go-sqlmock to use pointers

* Fix backend unit tests (also code quality improvements) (#15)

* Fix backend unit tests

- Ensure int value is formatted as such
- This was causing the backend unit tests to fail, possibly by dependency change

* Replace ioutil usage and decapitalize error strings

* Change receiver to be a pointer in order for assignment to persist

If the receiver is not pointer, the struct is copied and the assignment `r.sent = true` has no effect because r will be discarded after the function returns.

---------

Co-authored-by: Richard Cox <ricox@suse.com>

* Theme Builder: Cast types (#16)

In this case, `prjMetadata.root` is an untyped JSON result (that is, it
can be object, array, number, etc.), but FS.copySync needs to take a
string; do an explicit cast here to make TypeScript happy.

Signed-off-by: Mark Yen <mark.yen@suse.com>
Co-authored-by: Mark Yen <mark.yen@suse.com>

* Update required disk space (#17)

Co-authored-by: Neil MacDougall <neil_macdougall@hotmail.com>

* Migrate to github.com/pressly/goose (#18)

* Migrate to goose fork

* Code quality improvements from go-staticcheck

* Migrate migrations to github.com/pressly/goose

---------

Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>

* Move repository/interfaces to its own submodule: api (#19)

* Delete grufty go.sum, gut go.mod entirely and refresh dependencies

* add back some dependencies needed for tests to run; update return values of methods using go-sqlmock to use pointers

* Update module structure

* Small update of functions/imports to get latest version

* Adjust to pointers for newer version of sqlmock

* Remove ioutil, add new logic to actually get expiry claim from jwt

* Move api into its own module

* change all dependent code besides mock implementaions

* Change mock implementations manually as no gomock command is documented

* Moved and regenerated mock implementations

This was donw with the commands
`mockgen -source=api/auth.go > api/mock/mock_auth.go
as well as
`mockgen -source=repository/apikeys/apikeys.go > repository/apikeys/mock/mock_apikeys.go`
after installing https://github.com/golang/mock with `go install github.com/golang/mock/mockgen@v1.6.0`. This tool however is archived and should be replaced with a fork.

* Build and push base images on push to develop (#11)

* Add action to build base images/push to ghcr.io

* Upgrade go to 1.20.7

* set all docker related env variables to anynines/ghcr.io/centos7

* Add Helm support for local repos in desktop mode (#14)

* Add Helm support for local repos in desktop mode

* Join errors instead of returning just the second error

* Implement all methods required by interface

* Properly quote struct tags

* Bubble up errors, don't just drop them

* no longer use deprecated ioutil package, replace with os and  io

* Don't capitalize error messages

* Remove formatting directives from string, parameters should be appended instead

* Fix the CVEs in the jetstream backend (#12)

* Delete grufty go.sum, gut go.mod entirely and refresh dependencies

* add back some dependencies needed for tests to run; update return values of methods using go-sqlmock to use pointers

* Fix backend unit tests (also code quality improvements) (#15)

* Fix backend unit tests

- Ensure int value is formatted as such
- This was causing the backend unit tests to fail, possibly by dependency change

* Replace ioutil usage and decapitalize error strings

* Change receiver to be a pointer in order for assignment to persist

If the receiver is not pointer, the struct is copied and the assignment `r.sent = true` has no effect because r will be discarded after the function returns.

---------

Co-authored-by: Richard Cox <ricox@suse.com>

* Theme Builder: Cast types (#16)

In this case, `prjMetadata.root` is an untyped JSON result (that is, it
can be object, array, number, etc.), but FS.copySync needs to take a
string; do an explicit cast here to make TypeScript happy.

Signed-off-by: Mark Yen <mark.yen@suse.com>
Co-authored-by: Mark Yen <mark.yen@suse.com>

* Update required disk space (#17)

Co-authored-by: Neil MacDougall <neil_macdougall@hotmail.com>

* Migrate to github.com/pressly/goose (#18)

* Migrate to goose fork

* Code quality improvements from go-staticcheck

* Migrate migrations to github.com/pressly/goose

---------

Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>

* Move repository/interfaces to its own submodule: api (#19)

* Delete grufty go.sum, gut go.mod entirely and refresh dependencies

* add back some dependencies needed for tests to run; update return values of methods using go-sqlmock to use pointers

* Update module structure

* Small update of functions/imports to get latest version

* Adjust to pointers for newer version of sqlmock

* Remove ioutil, add new logic to actually get expiry claim from jwt

* Move api into its own module

* change all dependent code besides mock implementaions

* Change mock implementations manually as no gomock command is documented

* Moved and regenerated mock implementations

This was donw with the commands
`mockgen -source=api/auth.go > api/mock/mock_auth.go
as well as
`mockgen -source=repository/apikeys/apikeys.go > repository/apikeys/mock/mock_apikeys.go`
after installing https://github.com/golang/mock with `go install github.com/golang/mock/mockgen@v1.6.0`. This tool however is archived and should be replaced with a fork.

* Build and push base images on push to develop (#11)

* Add action to build base images/push to ghcr.io

* Upgrade go to 1.20.7

* set all docker related env variables to anynines/ghcr.io/centos7

* Add Helm support for local repos in desktop mode

* Add github.com/pressly/goose

---------

Signed-off-by: Mark Yen <mark.yen@suse.com>
Co-authored-by: Neil MacDougall <neil.macdougall@suse.com>
Co-authored-by: Richard Cox <ricox@suse.com>
Co-authored-by: Mark Yen <mark.yen@suse.com>
Co-authored-by: Neil MacDougall <neil_macdougall@hotmail.com>
Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>

* Fix dependency for database migrations (#20)

* Add github.com/pressly/goose

* Tidy up go.mod and go.sum

* Adapt #4580: Update store references in core package to refer to @stratosui/store (#26)

* Adapt #4580

All references to the core package have been
changed to refer to @stratosui/store.
Some unnecessary newlines have been removed.
The public API of @stratosui/store has been
adjusted as to expose all the necessary functions.

---------

Co-authored-by: Matthias Folz <mfolz@anynines.com>

* Fix database migrations by casting dialect correctly (#22)

* Remove unnecessary ignored return value

* change cast of dialect to pointer casts, so that they actually work

* add Github Actions for Backend and Frontend Tests (#29)

* add Github Actions for Backend and Frontend Tests
* revert recently package-lock.json

* Add script to help with building as packages and fix devkit and package info

* Apply changes from #4529 (#28)

* Fix typo (#31)

* Code quality improvements via `staticcheck` (#24)

* Fix error messages

They shouldn't end with punctuation or newlines and should not be capitalized

* Merge variable declarations and assignments if they are on subsequent lines

* General improvements according to staticcheck

* Change expected error messages in tests

* Tidy up go.mod/go.sum

* Change error message texts in response bodies

* tidy up github action workflow for backend tests to resolve wrong golang version during tests (#32)

* Update to node v20 (#34)

* Update to node v18

* Update to node v20

* Remove sass-lint and stratos-protractor-reporter (#37)

These not very necessary dependencies caused transitive deps to minimist and underscore in versions with CVEs.

* Apply changes from #4583 (#33)

* Upgrade code.cloudfoundry.org/cli to v8 (#42)

* fix dependency issues to compile binary for CF

* update go.mod/sum for jetstream

* crteate extra_plugins.go also for backend tests

* update kubernetes dependencies

* Upgrade code.cloudfoundry.org/cli to 8.7.3; Remove push_actor wrapper since it is redundant; fix loggregator/logcache protobuf conflicts

Co-authored-by: Matthias Folz <mafolz@users.noreply.github.com>

---------

Co-authored-by: Matthias Folz <mfolz@anynines.com>
Co-authored-by: Matthias Folz <mafolz@users.noreply.github.com>

* Cherry pick commit 69ac7dc from other branch; now works without any restrictions; original commit message: (#45)

Apply patch from freudl#1 manually

This results in a version that works, but only
when run with GOLANG_PROTOBUF_REGISTRATION_CONFLICT=warn
or compiled with -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"

This has to be adressed with an update to the
cf dependencies to at least version 9

* fix gogoproto related panic when retrieving logs upgrade github.com/cloudfoundry/noaa/consumer to 2.3.0 (#46)

* Fix frontend CVEs (#40)

* Update @angular/core via ng update to 11.2.14

* Upgrade @angular/cdk to 11.2.14

* Update @angular/cli to 11.2.14

* Update @angular/material to 11.2.14

* Update @ngrx/store to v11

* WIP: fix peer dependencies for angular 11

This commit does NOT compile, likely due to an error with the angular compiler and mismatched version. The next commit will upgrade all deps to angular 12 to remedy this.

* Update @angular/core to v12

* Update @angular/cdk to v12

* Update @angular/material and @angular/flex-layout to v12, also @ngrx/store

* Update @angular/cli to v12

* Update @angular-builders/custom-webpack to v12, replace @cfstratos/ajsf-material with original @ajsf/material

* change custom SassHandler to handle new WebPack 5 Structure as well

* Fix KnownKeys type issues for updated TypeScript@4.3

* Remove debug logging

* Remove overrides for angular upgrade

* Upgrade to angular v13

* Upgrade to angular v14

* Remove references to @cfstratos/ajsf-material

* Move code coverage to different tests

* WIP: Fix tests, still a lot of warnings

* discontinue use of karma-coverage-instanbul-reporter

* Use @cypress/request where possible

* Upgrade immer

* Upgrade @types/karma

* Update marked; change imports accordingly

* Update immer; fix typing for api-request-reducers

* update @swimlane/ngx-charts; fix type issues

* Replace request with maintained fork

* Add npm as engine requirement to make sure overrides work

* Fix up lockfile

* Formatting

---------

Co-authored-by: Matthias Folz <mfolz@anynines.com>
Co-authored-by: Tim Meier <tmeier@anynines.com>

* feat: add errorz package to combine errors as enum in there (#47)

* feat: add errorz package to combine errors as enum in there

* feat: missed duplicated error

* fix: not worked error checks

* fix: not worked error checks

* rename error package

* applied JRA's suggestions

* applied JRA's suggestions

* fix error in test suite

---------

Co-authored-by: Nedim Akar <nedimakar@Nedims-MacBook-Pro.local>
Co-authored-by: Nedim Akar <nedimakar@nedims-mbp.speedport.ip>
Co-authored-by: Jan-Robin Aumann <jaumann@anynines.com>

* allow newer pgsql versions (#51)

* feat: support for PostgreSQL 15

* feat: psql 15 integration

---------

Co-authored-by: Nedim Akar <nedimakar@nedims-mbp.speedport.ip>

* Bump @babel/traverse from 7.23.0 to 7.23.6 (#83)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.23.0 to 7.23.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.6/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @adobe/css-tools from 4.3.1 to 4.3.2 (#77)

Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2.
- [Changelog](https://github.com/adobe/css-tools/blob/main/History.md)
- [Commits](https://github.com/adobe/css-tools/commits)

---
updated-dependencies:
- dependency-name: "@adobe/css-tools"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Release 4.5.1 (#130)

* allow newer pgsql versions (#51)

* feat: support for PostgreSQL 15

* feat: psql 15 integration

---------

Co-authored-by: Nedim Akar <nedimakar@nedims-mbp.speedport.ip>

* Allow product name to be changed (#25)

Co-authored-by: Neil MacDougall <neil.macdougall@suse.com>

* Initial support for CA Certificates for endpoints (#21)

* Adapt "Initial support for CA Certificates for endpoints"

* Add frontend changes for ca-certs

* use correct attribute

* fix pgsql tests by adding empty string for ca_cert

* fix tests by adding the new columns "enabled" (tokens) and "cacert" (cnsis) in various locations for the test suite

* implement requested changes

* fix typo

* update dependencies to address cves (#88)

* upgrade golang/x/net to fix CVE-2023-39325

* address https://github.com/anynines/stratos/security/dependabot/170

* Address https://github.com/anynines/stratos/security/dependabot/323

* Address https://github.com/anynines/stratos/security/dependabot/321

* run go mod tidy

* run go mod tidy

* Upgrade archiver for https://github.com/anynines/stratos/security/dependabot/320

* Upgrade archiver in main go.mod

* Update golang/x libs everywhere, tidy up plugins/monocular module file

* upgrade grpc again

* Bump word-wrap from 1.2.3 to 1.2.4 in /electron (#9)

Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump debug in /website (#41)

Bumps  and [debug](https://github.com/debug-js/debug). These dependencies needed to be updated together.

Updates `debug` from 4.1.1 to 4.3.4
- [Release notes](https://github.com/debug-js/debug/releases)
- [Commits](debug-js/debug@4.1.1...4.3.4)

Updates `debug` from 3.2.6 to 4.3.4
- [Release notes](https://github.com/debug-js/debug/releases)
- [Commits](debug-js/debug@4.1.1...4.3.4)

---
updated-dependencies:
- dependency-name: debug
  dependency-type: indirect
- dependency-name: debug
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Deduplicate column names in tests (#75)

* add samber/lo

* add helper functions to datastore to centralize column name management

* add test helper funtions to generate mock rows and predefined entities

* switch tests over to helper functions

* cover oauth tests as much as possible

* add some more missing row addons

* Fix columns

* Switch CNSI tests over to actual cnsi records; also add expired tokens left out during first refactor

* fix column name without underscore

* Remove legacy GO111MODULE flag and update swag binary (#106)

* Remove legacy GO111MODULE flag and update swag binary

* Add fix for type resolution

* INT-3729 - Stratos - Website: Update Docusaurus to nearest stable (#111)

* Working 2.0.1 🎉

* Fix broken links

* fix small mistake with sed

* fix sed expression

* fix indent

* upgrade docusaurus to 2.4.3 (#112)

* Upgrade to docusaurus v3 (#119)

* Add 'all versions' to drop down

* Upgrade versions to docusaurus v3

* Make the theme switcher button white

* Properly escape the hint on commit signing

* Add workarounds for v3 upgrade

* fix indent

* Add context on why workaround is necessary

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Nedim Akar <148047517+nedimakar@users.noreply.github.com>
Co-authored-by: Nedim Akar <nedimakar@nedims-mbp.speedport.ip>
Co-authored-by: Matthias Folz <mfolz@anynines.com>
Co-authored-by: Neil MacDougall <neil.macdougall@suse.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update container-push-base-images-develop.yaml (#135)

Change the secrets to properly work with github package registry

---------

Signed-off-by: Mark Yen <mark.yen@suse.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Richard Cox <ricox@suse.com>
Co-authored-by: Mark Yen <mark.yen@suse.com>
Co-authored-by: Neil MacDougall <neil_macdougall@hotmail.com>
Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>
Co-authored-by: Neil MacDougall <neil.macdougall@suse.com>
Co-authored-by: Matthias Folz <mfolz@anynines.com>
Co-authored-by: Matthias Folz <mafolz@users.noreply.github.com>
Co-authored-by: Tim Meier <115975772+tmeier-a9s@users.noreply.github.com>
Co-authored-by: Tim Meier <tmeier@anynines.com>
Co-authored-by: Nedim Akar <148047517+nedimakar@users.noreply.github.com>
Co-authored-by: Nedim Akar <nedimakar@Nedims-MacBook-Pro.local>
Co-authored-by: Nedim Akar <nedimakar@nedims-mbp.speedport.ip>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
norman-abramovitz pushed a commit that referenced this pull request May 10, 2026
Stratos backend handlers that go through stratosjobs.RunFastPath emit
the canonical fast-path 200 envelope `{state: 'COMPLETE', result: T}`
(see e.g. native_apps_writes.go:364 and native_service_instances_writes.go:81),
but writeWithJob was returning that envelope verbatim as
AsyncJobResult.state. The 202+poll path, in contrast, sets state to
job.result directly — i.e. T at the bare-result level. The shape mismatch
forced every consumer that needed a field out of the result (Stage 5's
extractCreatedSiGuid, the rollback caller's typed RollbackResult fields,
any future signal-native delete that needs a returned guid) to either
inspect both candidate shapes or only work on one path.

Fix at the writeWithJob boundary: when the 200 body matches the
canonical envelope, unwrap to body.result so AsyncJobResult.state lands
at the same bare-result level both paths produce. Bodies that don't
match (legacy callers, non-Stratos handlers, void-result deletes that
flush null) pass through verbatim — backward-compatible.

Detection rule: body is an object, body.state === 'COMPLETE', and a
'result' key exists. The COMPLETE check guards against false positives
in domain payloads that happen to carry a `state` field (CF resources
don't use 'COMPLETE' as a value); the 'in' check distinguishes envelope-
with-explicit-null from a non-envelope object.

Tests:
- Existing 200 fast-path test rewritten to flush the canonical envelope
  (the previous version flushed bare; passing was incidental, not a
  contract assertion).
- New: pass-through preserved for non-envelope 200 bodies.
- New: null body resolves to state=null without error.
- New: convergence test — fast-path envelope and polled job.result with
  the same T produce equal AsyncJobResult.state.

Stage 5's extractCreatedSiGuid simplifies: no more dual-candidate
checking, just read result.state.links.service_instance directly.
specify-details-step.component.spec.ts already happened to flush the
envelope correctly (Stage 5 wrote it to match the eventual shape), so
no spec rewrite needed beyond the comment update.

Lands ahead of Stages 9b/9c/9d so the new writeWithJob callers each
of those introduces (delete instance, detach binding, delete bound
instance) inherit the clean shape from day one rather than each
re-coding the dual-shape unwrap.

Frontend gate: 1903 passed / 8 skipped / 0 failed (up from 1900 by
the 3 new envelope tests). Backend Go suite passes.
norman-abramovitz pushed a commit that referenced this pull request May 15, 2026
paginationSetClientPageSize had a same-value guard that returned the
state unchanged when the new pageSize matched the current store value.
On view-toggle (cards <-> table), the list-component restores the
per-view remembered size — but if the store already held that size
from a sibling dispatch path, the guard blocked the restore and the
paginator displayed a stale value (e.g. cards=24 -> table=50 -> back
to cards renders 6 instead of remembered 24).

Add a force flag to SetClientPageSize. The view-toggle restore in
list.component sets force=true so the dispatch always lands and the
paginator settles on the correct per-view value. All other callers
keep the default force=false and the guard still suppresses no-op
dispatch in steady-state.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 19, 2026
Remove the cfEntityCatalog.user.store.getEntityService fallback
branch in cf-user.service.getUser. The branch returned a raw
CfUser (no APIResource wrapper) while every consumer
(manage-users.component, remove-user.component) does
.map(user => user.entity) on the result — so the fallback was
already broken (undefined.entity access) whenever it fired.
Removal is a no-op behavioral change.

The non-admin deep-link case still resolves once the cf-users
list page hydrates (cf-users-signal-config drives the populated
list); the title bar just waits for that hydration instead of
trying the broken side path.

Also drops the dead `users: {[guid]: Observable}` cache field
whose only writer was the removed fallback.

The 3 remaining cfEntityCatalog refs in this file
(createCfGetAllUsersAction / createOrgGetUsersAction /
createSpaceGetUsersAction) feed PaginatedAction consumers
(CfListDataSource via cf-select-users-list-config, ngrx effect
users-roles.effects, fetchTotalResults in cf-admin-add-user-warning)
and die with the A.cloudfoundry#11 framework sweep.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 19, 2026
AppVariablesEffect listened for AppVariables.UPDATE, dispatched only by
AppVariablesAdd/Edit/Delete actions whose action-builders had zero
callsites. Entire chain dead. Kill the effect, the action classes,
the three dead action-builder methods, and the two module
registrations. Keep appEnvVar.getMultiple (still live via update-app-
effects on CF_APP_UPDATE_SUCCESS).
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 19, 2026
Replace CfCellHealthListConfigService + CfCellHealthDataSource (ngrx
PaginationMonitor + ListDataSource over FetchCFCellMetricsPaginated)
with CfCellHealthSignalConfigService — direct GET on
/pp/v1/metrics/cf/cells/query, HEALTHY metric probe with HEALTHY_DEP
fallback, signal-backed rows, ViewPipeline. Mirrors the parent cells
tab migration (CfCellsSignalConfigService).

Cell-summary embeds the new list via <app-signal-list>; ListConfig
provider dropped. Preserves the legacy instant-query path — the
window-picker UI rewire to query_range stays for a future change.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 19, 2026
Replace CfCellAppsListConfigService + CfCellAppsDataSource (ngrx
FetchCFMetricsPaginatedAction + ListDataSource + per-row app$ pipe)
with CfCellAppsSignalConfigService — direct GET on the cells metrics
passthrough plus a tiny per-(cnsi,app) promise cache for native
/pp/v1/cf/apps detail joins. Rows resolve eagerly so the signal-list
sorts/filters synchronously on name / space / org once the metric +
detail round-trips land.

Sibling of W2 (cf-cell-health); both cell-detail tabs are now off the
ListDataSource pipeline.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
Route already serves CloudFoundrySpaceAppsSignalComponent (signal-
native, via CfAppsSignalConfigService.initializeForSpace); the legacy
CloudFoundrySpaceAppsComponent + CfSpaceAppsListConfigService +
CfSpaceAppsDataSource were only referenced by their own specs. Delete
the whole V2 chain — component + html + spec, list-config + spec,
data-source. Stale comment in the surviving signal component touched
up so it no longer references the deleted class.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
Both routes tabs already route to signal-native variants:
CloudFoundryRoutesSignalComponent (cf-routes) and
CloudFoundrySpaceRoutesSignalComponent (cf-space-routes). The legacy
V2 chain (component + html + spec, CfRoutesListConfigService,
CfRoutesListConfigBase, CfRoutesDataSource, CfRoutesDataSourceBase,
CfSpaceRoutesListConfigService, CfSpaceRoutesDataSource, plus the
three TableCellRoute* table-cell components) had no live consumers —
removed wholesale.

ListCfRoute moved off the deleted base by swapping to IRoute in the
last consumer (cfOrgSpaceFilter helper). RouteEffect's stale comment
trimmed; the effect itself stays for now and gets revisited in the
follow-up wave that retires the now-dead UNMAP_ROUTE action +
reducers.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
Cascades from W5 — the only legacy dispatcher of UnmapRoute lived in
the cf-routes-list-config-base that W5 deleted. With no callers,
RouteEffect.unmapEffect$ never fired, UnmapRoute never dispatched, and
the UNMAP_ROUTE_SUCCESS reducer cases in routesReducer +
updateAppSummaryRoutesReducer + updateApplicationRoutesReducer never
hit.

Delete: RouteEffect (entire file + both module registrations),
UnmapRoute class, the UNMAP_ROUTE / UNMAP_ROUTE_SUCCESS /
UNMAP_ROUTE_FAILED event constants, the unmap field on
RoutesActionBuilders + routesActionBuilders, the UNMAP_ROUTE_SUCCESS
cases in both reducers, and the now-orphan removeAppFromRoute helper.
Other route action-builder methods (create / delete / getMultiple /
assignRoute) also have zero live dispatchers; those get their own
focused wave so the route-side and service-binding-side cascades stay
reviewable in isolation.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
Cascades from W5/W6 — the W5 consumer delete left the entire route
action/builder/effect/reducer chain without live dispatchers. All
six action classes (CreateRoute, DeleteRoute, GetAllRoutes,
GetAppRoutes, GetSpaceRoutes, AssignRouteToApplication) had only
self-references from the action-builders themselves.

Delete:
- route.actions.ts (BaseRouteAction + CreateRoute + DeleteRoute +
  GetAllRoutes + RouteEvents + CREATE_ROUTE_* constants — entire file)
- routes.action-builder.ts (RoutesActionBuilders + routesActionBuilders)
- routes.reducer.ts (routeReducer + updateAppSummaryRoutesReducer)
- application-route.reducer.ts (updateApplicationRoutesReducer)

Strip:
- GetSpaceRoutes from space.actions.ts + the RouteEvents import
- GetAppRoutes, AssignRouteToApplication, ASSIGN_ROUTE_* from
  application-service-routes.actions.ts (keeps GetAppServiceBindings
  which feeds the still-alive service-binding action-builder)
- assignRoute from ApplicationActionBuilders + applicationActionBuilder
- AppEffects.updateSummary$ effect (ASSIGN_ROUTE_SUCCESS listener);
  clearCellMetrics$ stays
- RoutesActionBuilders + routesActionBuilders + routeReducer +
  updateAppSummaryRoutesReducer + updateApplicationRoutesReducer from
  cf-entity-generator + cf-entity-catalog wiring
- GetAppRoutes export from public_api

GetAppServiceBindings + serviceBindingActionBuilders are also
zero-dispatcher and queued for the next focused wave.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
First "real" list-config migration: apiKeys page swaps from ngrx
ListDataSource to signal-native SignalListConfig, allowing complete
deletion of the apiKey ngrx chain.

New:
- ApiKeysDataService (signal-native HTTP wrapper on /pp/v1/api_keys)
- ApiKeysSignalConfigService (wraps data service into SignalListConfig
  via ViewPipeline; tab-scoped @Injectable)

Rewritten:
- ApiKeysPageComponent uses signal-list + signal-based hasKeys/keyDetails
- AddApiKeyDialogComponent calls dataService.create() with try/catch
- api-keys-page.component.html: app-list -> app-signal-list

Deleted (entire apiKey ngrx chain):
- core/.../list-types/apiKeys/apiKey-list-config.service.ts
- core/.../list-types/apiKeys/apiKey-data-source.ts
- store/src/actions/apiKey.actions.ts
- store/src/effects/apiKey.effects.ts

Removed apiKey references from:
- stratos-entity-catalog (field + types import)
- stratos-action-builders (interface + const + action imports)
- stratos-entity-generator (generateAPIKeys + call site)
- store.module (ApiKeyEffect from EffectsModule)
- stratos-entity-factory (apiKeyEntityType + ApiKeySchema cache entry)
- public-api (GetAllApiKeys export; kept ApiKey type export)
- shared.module (ApiKeyListConfigService provider)

A.cloudfoundry#11 W8.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
Prerequisite framework extensions for the remaining real list-config
migrations (cf-select-users, cf-users-space-roles, endpoints).

New column kinds on SignalListColumn:
- 'checkbox' — multi-row selection via SignalListCheckboxBinding<T>
  (WritableSignal<ReadonlySet<string>> of row keys + optional
  isDisabled predicate). Mirrors 'radio' shape; per-row toggle on
  click, dimmed/no-op when disabled. Unblocks cf-select-users.
- 'template' — projects an <ng-template appSignalListCell="<name>"
  let-row> into the cell. SignalListComponent collects every cell
  template via @ContentChildren and resolves col.templateName at
  render time. Unblocks cf-users-space-roles (CfRoleCheckbox per
  cell) and endpoints (4 custom cell components).

Added:
- SignalListCellTemplateDirective for tagging projected templates
- Component helpers: isCheckboxSelected/Disabled, onToggleCheckbox,
  cellTemplateFor
- Table + card rendering branches for both kinds
- 8 new specs covering both kinds (toggle, disabled, missing template)

Truncate / overflow class rules extended to include the new kinds so
their cells don't get the default truncation that text/link cells get.

A.cloudfoundry#11 W9.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
Manage-users wizard "Select Users" step swaps from BaseCfListConfig +
ListDataSource to signal-native SignalListConfig with the new
kind:'checkbox' multi-select column from W9.

New:
- CfSelectUsersSignalConfigService (tab-scoped @Injectable())
  Bridges cfUserService.getUsers(cfGuid) Observable to a Signal via
  toSignal; rows are CfUser (unwrapped via APIResource.entity).
  selectedKeys: WritableSignal<ReadonlySet<string>> backs the
  checkbox column. resolveSelected() projects keys + users back to
  CfUser[] for the wizard's UsersRolesSetUsers dispatch.

Rewritten:
- UsersRolesSelectComponent — drops ListConfig useFactory wiring +
  PaginationMonitorFactory/EntityMonitorFactory injections; injects
  the new CfSelectUsersSignalConfigService and renders
  <app-signal-list>. valid$ tracks the selection set via effect();
  onNext dispatches the resolved CfUser[] like the legacy flow.
- manage-users-select.component.html: app-list -> app-signal-list

Deleted:
- cf-select-users-list-config.service.ts
- cf-select-users-data-source.service.ts (CfSelectUsersDataSourceService
  + ListDataSource consumer)

The underlying V2 pagination machinery in CfUserService.getUsers() is
left intact — this PR removes the V2 list-config + data-source consumer
in line with split-migration-from-removal; the rest of the wizard
(reducer, downstream cf-roles.service) still consumes CfUser objects
via ngrx and unwinds on a later workstream.

Also exports SignalListCheckboxBinding / SignalListRadioBinding /
SignalListGaugeBinding / SignalListCellTemplateDirective from
@stratosui/core public-api so cloud-foundry consumers can type their
bindings without reaching into the core internals.

A.cloudfoundry#11 W10.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
Manage-users wizard "Modify Roles" space-roles table swaps from
BaseCfListConfig + ListDataSource to signal-native SignalListConfig
using the kind:'template' column added in W9 to host CfRoleCheckbox
per cell.

New:
- CfUsersSpaceRolesSignalConfigService (tab-scoped @Injectable())
  Reads spaces via OrgDataRegistry.acquire(cfGuid, orgGuid) — same
  signal-native StSpace source the org-detail page uses. Resolves
  canUpdateOrgSpaceRoles per space lazily and caches in a Map signal
  so the editable filter doesn't re-subscribe on every spaces() tick.
  Narrows to the wizard's spaceGuid when launched at space scope.
  Re-binds OrgDataService when the wizard's org pick changes via a
  WritableSignal<OrgDataService | null>, keeping all reactivity in
  three top-level effects instead of nested registrations.

Rewritten:
- SpaceRolesListWrapperComponent — drops ListConfig useFactory +
  <app-list>; injects the new signal-config and renders
  <app-signal-list> with three projected ng-templates
  (manager/auditor/developer), each rendering CfRoleCheckbox bound
  to the row's StSpace fields (cnsiGuid, orgGuid, name, guid).
  orgName supplied from rolesData.newRoles().name since the wizard
  is rolled into one org per session.

Deleted:
- cf-users-space-roles-list-config.service.ts
- cf-users-space-roles-data-source.service.ts (V2 ListDataSource over
  GetAllOrganizationSpacesWithOrgs)

TableCellRoleOrgSpaceComponent and the table-cell-select-org component
are kept — the manage-users-modify wizard's org-roles table (the
<app-table>-driven view above the space-roles list) still uses them.

A.cloudfoundry#11 W11.
nabramovitz added a commit to nabramovitz/stratos that referenced this pull request May 20, 2026
The endpoints page itself migrated to <app-signal-list> +
EndpointsSignalConfigService in W36-B Wave 3; the V2 list-config
chain (EndpointsListConfigService / EndpointsDataSource /
BaseEndpointsDataSource) was already orphaned — no live consumer
injected ListConfig from this provider anymore, and the only spec
that referenced it was a `describe.skip` block.

Deleted:
- endpoints-list-config.service.ts (+ spec)
- endpoints-data-source.ts
- base-endpoints-data-source.ts

Cleanup:
- shared.module: dropped EndpointsListConfigService import + provider.
- list.component.spec.ts: removed the skipped 'full test bed' block
  that imported EndpointsListConfigService.
- EndpointCardComponent: dropped the [dataSource] input setter +
  createCardMenuIfReady + updateCardStatus methods that depended on
  BaseEndpointsDataSource. No live consumer ever bound [dataSource]
  on this card (kubernetes mounts it without binding, V2 list-config
  was the only path that did); cardMenu / cardStatus$ fields remain
  for the template bindings but are now driven by consumer wiring,
  not the deleted data-source narrowing.

A.cloudfoundry#11 W12 — closes the real list-config sweep.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants