Repository navigation
v0.1.4 — secrets.set replaces secrets.create + secrets.rotate
What changed
Mirrors the upstream backend change in unitysvc/unitysvc#798: the secrets API now uses a single idempotent PUT /v1/seller/secrets/{name} endpoint.
Breaking change
# Before (0.1.3):
client.secrets.create("MY_KEY", "v")
client.secrets.rotate("MY_KEY", "v2")
# After (0.1.4):
client.secrets.set("MY_KEY", "v") # idempotent — creates or replaces
client.secrets.set("MY_KEY", "v2") # same call rotatesSame change for the async surface (AsyncSecrets).
CLI
# Before:
usvc secret create MY_KEY --value v
usvc secret rotate MY_KEY --value v2
# After:
usvc secret set MY_KEY --value v
usvc secret set MY_KEY --value v2Tooling
scripts/generate_client.shis now strict about the toolchain — pinsopenapi-python-client==0.28.3andruff==0.14.0, never falls back to whatever is on\$PATH.- Post-regen normalization with ruff (
UP007/UP045/I001) ensures generated code uses PEP 604X | Yunion syntax consistently across regens.
Migration
Code using secrets.create() or secrets.rotate() must switch to secrets.set(name, value) — this is a breaking surface change. CLI users must switch from usvc secret create/rotate to usvc secret set.