Add encoding outputs create gcs-service-account command#10
Conversation
Add `bitmovin encoding outputs create gcs-service-account` to wrap POST /v1/encoding/outputs/gcs-service-account. Service-account-based GCS outputs use the SDK's typed `GcsServiceAccountOutput` model with the JSON key file content; previously, only HMAC-based GCS outputs were exposed in the CLI even though the API supports both. Reads the JSON key file directly via --service-account-key-file so credentials never appear in shell history. Validates the file is parseable JSON before calling the API for a clearer error path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Solid — fills a real gap (HMAC-only GCS outputs were the awkward path on GCP), reads the SA file directly so credentials don't end up in shell history, validates JSON before the API call, and the tests cover the three meaningful states. Two things I'd change before merge:
Smaller note
Otherwise LGTM in principle once (1) and (2) are addressed. |
Summary
Add `bitmovin encoding outputs create gcs-service-account` to wrap `POST /v1/encoding/outputs/gcs-service-account`.
The CLI previously only exposed HMAC-based GCS outputs (`encoding outputs create gcs`), even though the API supports both HMAC and Service Account-based GCS outputs. Service-account-based outputs are the recommended path on GCP — HMAC keys are S3-compat shims that don't always handle every supported feature, and many organizations disable HMAC interoperability via org policy entirely.
Usage
```zsh
bitmovin encoding outputs create gcs-service-account \
--name my-output \
--bucket my-bucket \
--service-account-key-file ./sa-key.json \
--cloud-region EUROPE_WEST_1
```
Changes
Tests
Test plan