Revoke invites on move-out
- Type
- auto_revoke_on_moveout
- Category
- Lifecycle
- Enforced atWhen this policy is checked: while someone tries to open, while they create or change an invitation or hold, on a membership change or background sweep (lifecycle), or after a denial (record only).
- Lifecycle
- TiersWhere an admin can set this policy: the whole organization, one integration, or the physical device when the connector supports a device steward.
- OrgIntegration
- EnforcementEnforcement modes this type accepts. Enforce applies the row. Require approval (user sharing only) opens an admin approval inbox instead of blocking.
- Enforce
- DefaultWhat happens when no row of this type is configured.
- Not configured — leftover invitations stay enabled after move-out.
Runs when a resident leaves a listing: removing a listing member (`DELETE /entities/{id}/directory-listing-members/{member_id}`) or removing a person from the site (`DELETE /integrations/{id}/people/{user_id}`). OpenApp revokes enabled invitations authored by that user whose grants include doors of the listings they left, before the residency is removed. If revocation fails, the request fails and the residency stays, so a retry picks the invitations up again. The user account is not deleted. Each revocation is audited as policy.moveout.revoked.
When it is enforced
Evaluated when membership changes or on a background sweep, not on a request the affected person makes. It acts on existing access (for example revoking invitations) or records an audit event; it never blocks an open or an authoring request.
Where to set it
Settings → Policies (org) or the integration Policies tab.
Policies never grant access. See thepolicies architecture guidefor how org, integration, and device tiers combine.
Arguments
The config object on create/update. Row fields outsideconfig are enforcement (this type acceptsenforce; any other value is rejected with 400), enabled (disabled rows never apply), and capability.
| Name | Type | Required | Values | Description |
|---|
How overlapping rows combine
Any enabled row at the org tree or on the integration turns revocation on. Disabled rows never revoke.
Example
A resident who invited a cleaner to their listing door has that invitation revoked when they are removed from the listing.
{}Integrations
This type is documented on these connectors:
- Home Assistant (home_assistant)
- KNX (knx)
- MQTT (mqtt)
- PalGate Cloud (palgate_cloud)
- Shelly Cloud (shelly_cloud)
- Shelly Websocket (shelly_websocket)
- Tasmota (tasmota)
- Virtual Access (virtual_access)
- Virtual Demo Devices (virtual_demo)
- Waveshare (waveshare)
Related
- Policy catalog
- Policies architecture guide
- Expire dormant users (auto_expire_dormant_users)
- Max active invitations per user (invitation_max_active_per_user)