Repository navigation
Conversation
CONTEXT_MAPPER_GFS_DRIVE_NAME is injected into every gfsc pod as
GFS_DRIVE_NAME and seeded as the drive of every resource row. Reject values
outside ^[a-z0-9-]{1,63}$ when the operator starts instead of letting each
gfsc pod crash-loop on the same check.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ptions-hcc Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ptions-hcc # Conflicts: # host-context-controller/package-lock.json # host-context-controller/package.json
This was referenced Nov 14, 2026
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.
What
host-context-controller rejects
CONTEXT_MAPPER_GFS_DRIVE_NAMEvalues outside^[a-z0-9-]{1,63}$when the operator starts.Why
The operator injects this value into every gfs-controller pod as
GFS_DRIVE_NAMEand seeds it as the drive of every resource row. gfs-controller now validates the same pattern at boot (#1496). Without this check a bad value would only surface as every gfs-controller pod crash-looping on the same error; failing in the operator puts the error where the value is configured.How
gfsConfig.tsvalidates the value with the same pattern and error style as the rest of its config. The README documents the constraint.Testing
gfsConfig.test.ts: defaultmainwhen unset or empty, valid names, and the same rejected set as gfs-controller (uppercase,_,.,/, surrounding spaces, trailing newline, non-ASCII, 64 characters).devmerged in):tsc --noEmitclean,vitest run129 files / 3127 tests passed.Risks
Same as #1496: a drive name outside the alphabet now fails at operator start. No deploy manifest in this repo sets the variable, so the default
mainapplies. Merge after #1496.Stack
Live GFS subscriptions ship as a stack. The server half and the desktop half must reach
devtogether: the server PRs retire the route the current desktop uses, and the desktop PR needs the new watch route.devprincipal_deniedreasondevdevGET/PUT /external/gfs/watchGET/PUT /api/v1/me/gfs/watch1 and 2 are independent of the chain and safe to merge on their own (1 before 2, since the controller check in 2 mirrors the one in 1).
3 to 8 are one unit and should not be deployed partially:
gfs_resource_changedNOTIFY trigger, which nothing listens to yet.changedevents of a stream that is idle (no op in flight). Do not ship 5/6 without 7./api/v1/entity-changes/streamand control-api/external/entity-changes/stream), which the current desktop still uses. Do not ship 7 without 8.