Skip to content
OpenAppPhysical access, simplified
Login

Max hold duration

Type
hold_max_duration
Category
Holds
Enforced at
Authoring-time
Tiers
OrgIntegrationDevice
Enforcement
Enforce
Default
Not configured — no policy cap on temporary hold duration.

Caps the until duration of a temporary hold. Requests longer than the cap are rejected, not clamped. When PalGate reports a non-zero hardware latch max (outputNLatchMaxTime), the effective max is the minimum of the policy and that hardware cap.

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. Shared row fieldsenforcement (enforce, require_approval,audit_only) and enabled apply to every type;audit_only and disabled rows never block.

NameTypeRequiredValuesDescription
max_secondsintegerYesMaximum temporary hold length in seconds. Must be greater than 0.
applies_tostring or string[]No
agentapi_keyinvitationmemberresidentadminall
Principal kinds this row binds. Closed set: agent, api_key, invitation, member, resident, admin, all. Unknown strings and empty arrays are rejected. `all` matches every kind. When omitted, the type-specific default applies (see Default). Device-tier rows without `applies_to` often bind everyone, including admins. Default: Org/integration: member and resident. Device-tier without applies_to: everyone, including admins.
outputstring or integerNoOptional channel or output id. When set, the policy binds only that output. When omitted, it binds every output of the tier target. A scoped row does not apply when the acting output is unknown.

How overlapping rows combine

Minimum of max_seconds across applicable rows, then min(policy, vendor latch max) when a PalGate latch max is present.

Example

A 48-hour hold is rejected. A 12-hour hold is accepted.

config
{
"max_seconds": 86400
}

Integrations

This type is documented on these connectors: