Skip to content

Extract the ClickPipes runtime and finalize the cloud CLI split #385

Description

@sdairs

Parent: #318

Stack position: 6 of 6. Completes the cloud CLI reorganization.

Goal

Move the ClickPipes runtime into its domain module, retire the cloud monoliths, and document the final command layout.

Scope

  • Move ClickPipes handlers, request builders, parsers, output, CloudClient wrapper methods, and unit tests into the ClickPipes module.
  • Remove cloud/commands.rs once all domain code has moved.
  • Reduce cloud/client.rs to core client/auth/error/shared functionality.
  • Reduce cloud/cli.rs to top-level cloud arguments/commands, domain re-exports, and top-level exhaustive classification.
  • Keep the cross-domain subprocess request-shape test file intact; splitting that test file is separate work.
  • Update AGENTS.md command-adding guidance for co-located per-domain clap, handlers, builders, wrappers, and tests.

Acceptance

  • No ClickPipes runtime code remains in a generic commands module.
  • commands.rs is removed and client.rs/cli.rs have only their final shared responsibilities.
  • ClickPipes request shapes, file/base64 handling, output, and error behavior are unchanged.
  • All clap, builder, inline, subprocess wiremock, and workspace tests pass.
  • cargo clippy --workspace --all-targets -- -D warnings and cargo fmt --all --check pass.
  • Contributor documentation points new cloud commands to their domain module.

Out of scope

  • Splitting tests/cli_request_shape_test.rs.
  • Changing Postgres direct-client behavior, cloud auth, commands, flags, or outputs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestrustPull requests that update rust code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions