INACTIVE Subscription State - What is the Rational #440
Replies: 2 comments 4 replies
-
I think there will be subscription APIs where it is more reasonable to put the subscription into an However, transitions between No subscription API implementation is forced to use the |
Beta Was this translation helpful? Give feedback.
-
Regarding the first point commented by @sachinvodafone, have managed to be addressed internally. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
While reviewing the CAMARA API design guidelines (https://github.com/camaraproject/Commonalities/blob/main/documentation/API-design-guidelines.md#subscription-status-value-table), I noticed we’ve defined an INACTIVE status for subscriptions. Initially, it seemed like a logical pause point—e.g., when a user revokes consent—but after deeper analysis, I couldn’t find a solid rationale to justify keeping it. Here’s why I propose we remove the INACTIVE state from our model or someone please share more thought/rational to keep it .
The INACTIVE state, meant as a temporary hold when consent is withdrawn, looks reasonable at first glance but doesn’t hold up under scrutiny, especially within the CAMARA context. Below are the key reasons to eliminate it:
Consent Withdrawal (Article 7(3)): GDPR mandates that data processing stop immediately when a user revokes consent. An INACTIVE subscription, retaining its workflow (e.g., device/subscription ID, webhook), keeps personal data linked to a rejected purpose. This conflicts with the requirement to cease processing—not just pause it.
Data Minimization (Article 5(1)(c)): Data must be “limited to what is necessary.” INACTIVE holds onto event filters, sink credentials, and more, despite the user’s “No” signaling no data should flow. Termination (e.g., DELETED) clears this out; INACTIVE retains it without a clear basis.
Right to Erasure (Article 17): If a user requests consent revooked (linking it with deletion process), an INACTIVE state complicates compliance. Why maintain a dormant resource when the user wants it erased/"consent revoked" means he/she doesn't want to follow by anyone ?
Backend Overhead: Managing INACTIVE subscriptions requires tracking timers (e.g., until EXPIRED), monitoring state changes, and storing idle workflows. This bloats databases and complicates logic, whereas termination (DELETED) is a single, clean action.
Two-Step Lifecycle: Shifting from ACTIVE → INACTIVE → EXPIRED/DELETED doubles the transitions. Consent revocation is a definitive stop—why pause first when we can end it outright?
Client Clarity: For clients like a bank tracking Device status, INACTIVE is confusing—should they wait or resubscribe? Ending it with a subscription-ends event is clear: 'It’s over; restart if consent comes back.'
No Reactivation Mechanism: Camara guideline doesn’t support reactivating INACTIVE subscriptions. Without this, it’s a dead-end state—termination makes more sense.
Privacy Alignment: Holding a subscription after consent is withdrawn assumes future consent, which isn’t guaranteed. A fresh subscription on re-consent respects the user’s current choice.
Looking for your valuable insight on this.
Regards
Sachin
Beta Was this translation helpful? Give feedback.
All reactions