Repository navigation
Import a declarative environment list without putting credentials in configuration #19824
Replies: 1 comment
|
A concrete extension I want to explore in my fork is declarative environment groups with session-only visibility overrides. I manage family members’ machines as well as my own development machines. I want those family environments saved and paired, but normally absent from my everyday workspace. I should be able to deliberately show the Family group when doing maintenance, then return to the declared defaults next session. The declaration would define stable group IDs, labels, member environment IDs, and a default visibility for each group. The client would offer group toggles for the current session; toggling would never rewrite the declaration or forget pairings. Ungrouped environments would keep the existing behavior. Groups should apply consistently across environment/project pickers, thread lists, and search, rather than only collapsing sidebar rows. This complements #6955: that discussion focuses on filtering connected environments, whereas this use case needs declarative defaults and an explicit lifetime for overrides. For this use case, hiding is strictly a visibility filter: the machines stay connected, saved pairing and per-environment connection settings stay unchanged, and remote work continues. Visibility overrides last until the client reloads or restarts; navigation and backgrounding do not reset them. I’ll develop this on my fork while the upstream direction is discussed. Would group membership and default visibility fit the portable manifest proposed here, with activation kept as client-local session state? |
Uh oh!
There was an error while loading. Please reload this page.
I manage several T3 Code environments through Nix and would like the same declaration to produce a file I can import into the mobile client. That would avoid entering every server address on each new device, without distributing credentials in a configuration file.
This follows #19594's shared-versus-machine-local settings discussion, but adds another boundary: configuration versus credentials. A value can be machine-local and still need secret storage.
Proposed workflow:
Offline members should remain visible as pending, with a way to retry. Import should reject credential fields and credential-bearing URLs. The declaration should also remain separate from mutable connection status and UI state.
I have a local fork with fleet enrollment and am implementing an import flow there to test this. The portable artifact should not depend on Nix or Tailscale; those are just my deployment tools. This is separate from migrating an entire environment/database (#18297).
Would you want this direction upstream? In particular:
I'll keep the implementation on my fork while the direction is discussed, per CONTRIBUTING.md.
All reactions