Skip to content
OpenAppPhysical access, fully managed
Login

Prohibit master-door invitations

Type
prohibit_master_door_invites
Category
Invitations
Enforced at
Authoring-time
Tiers
OrgIntegrationDevice
Enforcement
Enforce
Default
Not configured — master doors may be granted on invitations.

Rejects create or update if any granted portal resolves to a listed OpenApp device id. Ids are OpenApp device ULIDs, never client-forged hardware identifiers. Combination unions the id lists so a parent can name building master doors that no child can invite to. Org and integration rows bind members and residents; org admins are exempt unless applies_to includes admin. Device-tier rows bind everyone.

When it is enforced

Evaluated when someone creates or updates an invitation, hold, or share. Requests that would exceed the limit are rejected — they are not silently rewritten.

Where to set it

Settings → Policies (org), the integration Policies tab, or — on PalGate — the device steward 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.

NameTypeRequiredValuesDescription
master_door_idsstring[]Yes—Non-empty array of OpenApp device ULIDs that invitations must not grant.
applies_tostring[]No
adminmemberresidentall
Principal kinds this row binds, as a non-empty array of admin, member, resident, all. Other kinds, a bare string, and empty arrays are rejected. `all` matches every kind this policy can bind. A caller is every kind it is at once, and a row binds when any of them is listed. When omitted, the default applies. Default: Org/integration: member and resident (admins exempt). Device-tier: everyone, including admins.
outputstring or integerNo—Device policies only. One output of the device, as the device reports it (PalGate `1` or `2`, a Shelly, Tasmota, or Waveshare channel index). When set, the policy binds only actions on that output; when omitted, every output of the device. An output that is not one of the device’s outputs, or `output` on an organization or integration policy, is rejected. If an action’s output cannot be identified, an output-scoped policy denies it.

How overlapping rows combine

Union of master_door_ids across applicable rows. Reject, do not drop doors.

Example

An invitation that includes the building’s listed master door is rejected even if other doors on the invite are allowed.

config
{
"master_door_ids": [
"01ARZ3NDEKTSV4RRFFQ69G5FAV"
]
}

Integrations

This type is documented on these connectors:

The OpenAPI contract names this object ProhibitMasterDoorInvitesPolicyConfig:

{
"master_door_ids": ["01ARZ3NDEKTSV4RRFFQ69G5FAV"],
"output": "main"
}

master_door_ids is a non-empty list of OpenApp device ULIDs. An invitation granting any listed door is rejected.