rotateRotate Consumer Secret

Generate a new consumer secret for a partner. Optionally keep the old secret valid for a grace period to enable zero-downtime rotation in distributed deployments.

circle-info

When to use: When a consumer secret is compromised, an employee with access leaves, or as part of regular secret rotation policy.

chevron-rightPrerequisiteshashtag

5-Line Core

# Immediate rotation (old secret invalidated instantly)
result = await provider.rotate_consumer_secret(partner_id=partner.id)

# Zero-downtime rotation (old secret valid for 1 hour)
result = await provider.rotate_consumer_secret(partner_id=partner.id, grace_period_seconds=3600)
# Store result.unwrap().consumer_secret securely - only shown once!

When to Rotate

Scenario
Action

Secret compromised

Rotate immediately

Employee with access leaves

Rotate as part of offboarding

Regular rotation policy

Rotate on schedule (e.g., quarterly)

Distributed deployment

Use grace_period_seconds for zero-downtime

Partner requests reset

Rotate and share new secret

Step-by-Step

1

Get Partner ID

2

Rotate the Secret

3

Store the New Secret

4

Verify Old Secret Behavior

5

Expected Output

Without grace period:

With grace_period_seconds=3600:

circle-check

Complete Example

Create rotate_consumer_secret.py:

Run it:

Expected output:

Common Pitfalls

Pitfall
Solution

Not storing new secret

Store immediately — only shown once

Rotating before partner updates

Use grace_period_seconds for zero-downtime rotation

Losing partner ID

Look up via get_partner_by_consumer_key

Grace period too long

Maximum is 604800 seconds (7 days)

Distributed deploy failures

Set grace_period_seconds=3600 (1 hour) to allow gradual rollout


circle-info

Found an issue on this page? Report it on our feedback formarrow-up-right.

Last updated

Was this helpful?