Rotating a QR Label
Sometimes you want to invalidate an existing sticker — for example:
- You sold an item, but kept the sticker. The buyer shouldn't be able to scan it later.
- You shared a printed sheet with a friend who's not in your account, and you don't want them keeping access.
- The old sticker is damaged and you're printing a fresh one with a different label.
Rotating a code revokes the old token and issues a new one, both pointing at the same resource.
How
On the resource's view page (item, box, closet, location), find the QR Label panel. There's a Rotate button.
When you click it:
- The current token is marked
is_active = 0andpool_status = 'revoked'. Anyone scanning the old sticker now sees: "This code has been revoked." - A new token is allocated from your unclaimed pool (or auto-generated if you're an admin).
- The new token is claimed for the same resource.
- The page reloads showing the new QR Label.
Print the new label. Stick it over the old one (or scrape the old one off and replace).
What happens to the old printed sticker
It stops working. Anyone scanning the old QR sticker gets a friendly error page that doesn't reveal anything about what the resource was. Just "This code is no longer active."
When NOT to rotate
- You just want to print a fresh copy of the same sticker. Don't rotate — just reprint the existing one. Rotation invalidates the old code unnecessarily.
- You changed the resource's title or photo. Don't rotate — the QR's URL stays the same, only what the URL resolves to changes.
Costs
A rotation consumes one of your unclaimed pool codes (the new token has to come from somewhere). If you're at your plan's quota, rotation will fail with "Out of QR Labels — upgrade or delete a resource". The old code goes back to your pool as revoked (counts against quota? — depends on your plan terms; see pricing).
Audit trail
Rotation writes an audit_log row with action qr.rotate so you (or a future you, or an admin) can see when and which token was rotated.