feat(portal): add dynamic service registry with manifest integration (#278) - #296
Open
priyanshuvishwakarma273403 wants to merge 2 commits into
Open
Conversation
…lth checking, and graceful degradation
priyanshuvishwakarma273403
requested review from
DenizAltunkapan and
GabrielBBaldez
as code owners
July 22, 2026 06:23
DenizAltunkapan
requested changes
Jul 23, 2026
DenizAltunkapan
left a comment
Member
There was a problem hiding this comment.
Good direction, this is exactly what #278 asked for and the structure (manifest validation, graceful degradation, specs) is solid. No conflicts and CI is green. A few things need fixing before this can go in, mostly around deployment reality and boot behaviour.
Summary of the requested changes, details inline:
- The manifests hardcode localhost URLs, which makes every service show as offline in any non dev deployment. That defeats the drift problem this PR sets out to solve.
- The APP_INITIALIZER blocks app boot on all health checks with no timeout.
- Health checks go through the token interceptor, so the auth token is sent to whatever URL a manifest declares, and a down service triggers the global backend unavailable banner at startup.
- The navbar reads the registry once in ngOnInit, which only works because of the blocking initializer.
- Smaller items: apiUrl is required by the interface but not validated, and the habits manifest points at a route that does not exist.
One more nit outside the diff: the PR description links to a local file path (file:///d:/...), please swap that for a repo link.
… non-blocking APP_INITIALIZER, and reactive navbar
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Vault Web previously relied on a hardcoded list of services (Cloud, Password Manager) in its frontend configuration. Adding or modifying a service required editing Vault Web itself, making the portal and actual deployment prone to configuration drift.
Solution
Introduced a dynamic service registry manifest system:
vault-service.json) in docs/service-manifest-schema.md specifying how each module describes itself (display details, route, health endpoints, required scopes, token forwarding).cloud,passwords, andhabitsin the web root.ServiceRegistryServicetriggered via AngularAPP_INITIALIZERto dynamically load manifests at boot and perform automated health checks on each service's health endpoint.Verification Details
service-registry.service.spec.tsto assert manifest parsing, fallback handling, and health check integration.TOTAL: 21 SUCCESS).