Skip to content

Add experimental tiger branch commands - #269

Open
nathanjcochran wants to merge 1 commit into
nathan/branches-0-foundationfrom
nathan/branches-1-branch-commands
Open

nathanjcochran wants to merge 1 commit into
nathan/branches-0-foundationfrom
nathan/branches-1-branch-commands

Conversation

@nathanjcochran

@nathanjcochran nathanjcochran commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Adds tiger branch, behind TIGER_EXPERIMENTAL, for managing branches of fluid services. It has create, list, get, delete, start/resume, stop/pause, resize, rename, and update-password. tiger service branch is the same command as tiger branch create.

It's built on the API's service-nested branch endpoints and its new resolve endpoint. Neither is deployed yet, so this has only been tested against mocks.

  • Refs. The commands take a branch by ID or name, resolved through the resolve endpoint restricted to branches. That one call also gives the parent service ID the nested endpoints need. There's no default branch: service_id only ever holds a service ID. create and list take a service, falling back to the default service.
  • Flags and output follow the matching tiger service commands. CPU/memory are checked against the fluid combinations, --iops works as on the service commands, and the output shows the parent service's name with its ID.
  • Passwords. create saves the branch's initial password the way service create does. update-password sets it through the branch endpoint, using the same helpers as the service command.
  • Read-only mode. A branch has no environment tag and always counts as DEV. So read_only=prod allows branch operations, even on branches of a PROD service, and all blocks them.
  • Completion offers branch names, falling back to IDs, from the API's project-wide branch list.
  • Waiting shares the service wait loop (WaitForBranch).

create ends with "Connect with: tiger db psql ". The db commands accept branches from the next PR in the stack.

Follow-ups:

  • branch logs. The API has no branch logs endpoint yet.
  • Storage breakdown. The API doesn't return one for branches.
  • Console URL. There's no Console URL for branches until the Console supports them (TODO in prepareBranchForOutput).

Behind the experimental gate, tiger branch creates, lists, gets, deletes,
starts, stops, resizes, renames, and updates the password of branches of
fluid services. tiger service branch is the same command as branch create.

Branch refs (ID or name) resolve through the API's resolve endpoint,
restricted to branches. Waiting on a branch shares the service wait loop,
and branch passwords are stored and reset through the same helpers as a
service's.
@nathanjcochran
nathanjcochran added this pull request to stack #273 October 21, 2026 22:07
@nathanjcochran nathanjcochran changed the title Add tiger branch commands Add experimental tiger branch commands Oct 21, 2026
@nathanjcochran
nathanjcochran marked this pull request as ready for review October 21, 2026 22:20
@nathanjcochran
nathanjcochran requested a review from a team as a code owner October 21, 2026 22:20
@nathanjcochran nathanjcochran self-assigned this Oct 21, 2026
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.

1 participant