Skip to content

Add --output=json support to all share-link commands - #274

Merged
AndreyVMarkelov merged 1 commit into
masterfrom
share-link-json-output
Jun 23, 2026
Merged

Add --output=json support to all share-link commands#274
AndreyVMarkelov merged 1 commit into
masterfrom
share-link-json-output

Conversation

@AndreyVMarkelov

@AndreyVMarkelov AndreyVMarkelov commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Migrate all share-link subcommands (create, list, info, update, revoke, download) to emit structured JSON
  • Add shareLinkJSONMetadata and shareLinkJSONPermissions types in cmd/share_link_json.go for shared-link-specific serialization (URL, permissions, visibility, expiration)
  • share-link create includes "existing": true/false to indicate if a link was reused
  • share-link revoke returns array of revoked URLs with optional link metadata
  • share-link download rejects stdout target (-) with --output=json since stdout is reserved for file bytes
  • share-link update fetches metadata after raw API calls so JSON consumers always get current state

Test plan

  • go vet ./... clean
  • golangci-lint run ./... clean
  • All tests pass (go test ./... -count=1)
  • Manual: dbxcli share-link create --output=json /file.txt emits JSON with link metadata
  • Manual: dbxcli share-link list --output=json emits entries array
  • Manual: dbxcli share-link info --output=json <url> shows permissions
  • Manual: dbxcli share-link download --output=json <url> - returns clear error
  • Manual: text mode unchanged for all share-link commands

Migrate create, list, info, update, revoke, and download to emit
structured JSON. Add shareLinkJSONMetadata and shareLinkJSONPermissions
types for shared-link-specific serialization. Download rejects stdout
target (-) when --output=json is requested.
@AndreyVMarkelov
AndreyVMarkelov merged commit d98f6bd into master Jun 23, 2026
7 checks passed
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