publ betaReference (MCP guide)
Open publ console

publ Reference

Migration map.

design_access_get

Read installed-feature access settings, hierarchy and membership candidates for one channel. Omit installedPAppId first, then select an editable target and read it again to obtain its permissions, capabilities and revision. This call sends no writes and creates no task.

Input Contract
channelCode Required nonempty string identifying the selected channel
installedPAppId Optional positive integer copied from an editable targets row
membershipPage Optional integer, minimum 1, default 1
membershipLimit Optional integer, 1–100, default 50
membershipSearch Optional string forwarded to membership search; this schema specifies no length limit or trimming

Unknown fields are rejected. Use the existing design-screen OWNER or DELEGATEE context; the server remains authoritative for channel authorization. This workflow does not implement the newer per-operation permission-bit guard used by some other channel tools. The source-defined hosted channel resource admits only its exact channel; an account resource excludes these tools and access-control recovery. Deployed authorization is a separate verification question.

List targets and one page of candidates:

{"channelCode":"selected-channel-code","membershipPage":1,"membershipLimit":50}

Read an editable installed-feature target:

{"channelCode":"selected-channel-code","installedPAppId":123,"membershipPage":2,"membershipLimit":25,"membershipSearch":"Supporters"}

Replace the example channel and ID with the selected channel and a returned editable target. Membership search/pagination does not filter the hierarchy or targets. Follow nextMembershipPage until null when a complete candidate inventory is needed; the default page is not the whole inventory. Candidate rows expose mid, title and type; saving selected IDs independently requires current-channel GENERAL membership detail verification.

A successful DESIGN_ACCESS result includes environment, channel, flattened hierarchy, targets, memberships, pagination and nextMembershipPage. Hierarchy nodes retain hiid, parent, type, target identity, feature code, active/public state, available guard statuses, optional normalized permissions and entrance conditions. System-managed monitoring grants are represented by a digest when present, without returning their grant IDs.

targets includes P_APP_PATH rows even when they are not editable. Editing requires exactly one matching installed-feature row, a non-null target ID, a nonempty feature code other than X00001 and nonempty available guard statuses. Page IDs, inner-screen targets and system pages are not substitutes. A selected editable target adds installedPAppId, pAppCode, permissions, capabilities and a 64-character lowercase hexadecimal revision. The permission rules explain supported guest modes and paid-access preservation.

Copy the selected target's revision into apply. It covers target hierarchy/installed/feature identity, canonical ACL permissions and the optional monitoring digest. It does not cover every channel entrance or visibility condition. List-only get has no target revision. Unsupported or ambiguous ACL data fails with an unverified-contract result; no missing guest fields or false membership grants are guessed into allowed access.

verification.confirmed:true with method:"access_read" confirms the read contract. effectiveVisitorAccess:false means effective visitor access was not verified, not that every visitor is denied. Stored settings, channel entrance restrictions and actual visitor behavior remain distinct. See the screen contract for transport and historical evidence boundaries.

Failed reads

The hierarchy and membership reads start together, as on the source storyboard; the ACL summary follows. A failure returns an error with readStage (the first failing stage), reads (each stage's own result, not_reached where it did not run) and writesPerformed:false. An UPSTREAM_HTTP_* code carries upstream: method, path, query parameter names, status and the server's error code/message with credential-shaped text removed. Readable parts are kept for diagnosis. When the hierarchy fails, the summary of the requested installedPAppId is still read and returned as permissionSummary with targetVerified:false and editable:false. A failed result never includes revision, so no save follows it; the source screen shows nothing after a failed read.

Installed-feature policy

Installed pApps are enabled by installation. There is no separate activation or deactivation step. Use this ACL workflow for supported visitor-access changes; uninstall is not an access-control substitute. A failed read leaves permissions unverified and unchanged, not denied. SELECTED with no memberships still preserves existing paid-entitlement access and must not be reported as blocking everyone.

Inputs

Field Required here Contract
membershipPage No integer; minimum 1; default 1
membershipLimit No integer; minimum 1; maximum 100; default 50
membershipSearch No string
app No string; The feature screen: its code (for example A00002) or its exact title from the targets list.