calypr-cli started from the Gen3 data-client lineage, but this repo now owns
its own CLI surface and operator workflows. Treat it as a command-oriented Go
application with a few backend-specific client packages, not as a thin mirror of
the old fork.
main.go: root-compatible binary entrypoint used bygo build .cmd/calypr-cli/main.go: compatibility wrapper for subdirectory buildscmd/: Cobra command definitions and CLI orchestration
The root command is calypr-cli, and most subcommands require a named
--profile.
| Path | Responsibility |
|---|---|
cmd/ |
User-facing commands for configure/auth, transfer flows, collaborators, permissions, and portal management |
conf/ |
Profile loading, persistence, and config validation |
credentials/ |
Credential refresh helpers |
g3client/ |
Shared Gen3 client adapter layer, including Syfon-backed surfaces |
fence/ |
Fence-specific request and response helpers |
gecko/ |
Gecko-specific client code for portal operations |
arborist/ |
Arborist-specific client code for permissions operations |
- Transfer commands live in
cmd/and rely on shared Gen3/Syfon client code. permissionsis the Arborist-backed operator surface.portalis the Gecko-backed operator surface.collaboratorshandles collaboration-request workflows exposed by the target commons.
Local entrypoints:
go build .
go build ./cmd/calypr-cli
go test ./...Top-level automation lives under .github/workflows/. The intended baseline is:
ci.yamlfor general lint and unit test coveragecoverage.yamlfor explicit coverage reportingrelease.yamlfor tagged releases- reusable image and integration workflows where the repo still depends on the
shared
uc-cdis/.githubautomation
- The default backend flag is
gen3, but the CLI also carries backend-specific behavior behind command flags and adapters. - This repo still contains some compatibility surfaces from older Gen3 client behavior; when cleaning up, verify call sites before removing them.