Skip to content
OpenAppPhysical access, simplified
Login

User sharing control

Type
user_sharing
Category
Sharing
Enforced at
Authoring-time
Tiers
OrgIntegrationDevice
Enforcement
EnforceRequire approval
Default
Not configured — non-admins may share access freely.

Controls sharing performed through OpenApp: adding vendor-directory users (for example PalGate gate users) and related invitation flows. OpenApp cannot gate sharing done directly in a vendor app, but it can still surface unmanaged vendor-side users. When mode is approval_required, a pending request is opened for an admin to approve or deny.

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
modestringYes
noneadmin_onlyapproval_requiredall
none: nobody may share through OpenApp (including org admins). admin_only: only org admins. approval_required: non-admins need admin approval. all: sharing is allowed.
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

Most-restrictive lattice: none > admin_only > approval_required > all. Compose with invite_creator_roles and no_transitive_delegation — every applicable guard must pass; none still wins.

Example

A non-admin who shares a gate user creates a pending approval instead of writing immediately. An admin reviews the request in the policy approval inbox.

config
{
"mode": "approval_required"
}

Integrations

This type is documented on these connectors: