Skip to content

[DOCS] client-sdk/acps: rewrite the permits guide as Access Control Permissions - #53

Merged
alexandrecarvalheira merged 2 commits into
mainfrom
docs/acp-guide
Aug 25, 2026
Merged

[DOCS] client-sdk/acps: rewrite the permits guide as Access Control Permissions#53
alexandrecarvalheira merged 2 commits into
mainfrom
docs/acp-guide

Conversation

@alexandrecarvalheira

Copy link
Copy Markdown
Collaborator

Stacked on #52. Review that one first; this diff shrinks to its own two commits once #52 merges.

Renames guides/permits to guides/acps and rewrites it for 0.7, with a redirect from the old path.

Naming

The title spells out Access Control Permissions (ACP) before the acronym, per your note. STYLE.md now carries that as a rule: a page whose subject is ACPs puts the full term in its title, and every other page expands it on first use.

It documents what 0.7 added, not just the rename

A mechanical Permit-to-ACP rename would have missed the parts that are actually new:

  • Scope, which is the important one. Global / Contract / Handles, and the fact that a scope only ever narrows the issuer's existing access. It cannot delegate something the issuer could not already read, and it does not retroactively narrow ACPs already issued.
  • Onchain sharing: shareOnChain, getIncomingShares, importFromChain, dismissShare, cancelShare, so an offer no longer needs a side channel.
  • Revocation: revokeACP, revokeAllACPs, isACPRevoked, checked at use, so it reaches copies the issuer no longer holds.
  • ACPUtils.export now throws on anything that is not a signed sharing ACP. In 0.6 it serialized anything, so a call made during a render goes from always working to always throwing, with no compile error.

Everything verified against the 0.7.1 source rather than the rename table: client.acp is singular, the store key is cofhesdk-acps, and ACP expiration defaults to 7 days while the config key defaultACPExpiration defaults to 30. Those two defaults are different layers and the old page only mentioned one.

Two findings worth acting on outside this PR

The upstream skill install command is broken. Both main URLs 404 — cofhesdk has no main branch, its default is master. The published guide at cofhesdk.fhenix.io carries the same broken archive/refs/heads/main.tar.gz, and because it is piped into tar, users get a confusing tar error rather than a 404. Fixed to master here and verified end to end (14 files extracted). Worth fixing upstream too.

Seven pages still link here with "permit" wording. The redirect covers the paths and mint broken-links is clean, so nothing is broken. I left those files alone deliberately: they carry 79 pre-existing Vale errors between them, and touching one line would fail docs-style on an unrelated backlog. They belong in the sweep that migrates their prose. To keep one inbound deep link alive meanwhile, the Validating heading carries a {#validating-permits} anchor, which should be renamed when error-handling.mdx is migrated.

Vale, lint-docs.py, mint validate, and mint broken-links --check-anchors --check-redirects all clean.

🤖 Generated with Claude Code

Base automatically changed from docs/migrating-to-0-7 to main August 25, 2026 03:58
alexandrecarvalheira and others added 2 commits August 25, 2026 01:02
…hare directions

Moves the agent skill to the top, since most of this migration is
mechanical, and names the Agent Skill format so readers on editors other
than Claude Code know it applies to them.

Adds the case that needs no work: a contract already taking
(externalEuint32, bytes) for a single value verifies as a batch of one,
so it needs no redeploy. Adds the return direction of sharedEuintXX with
a worked example, the SenderNotAllowed rule, and the React hook renames.

Points the skill URLs at master. The repository has no main branch, so
the install command in the upstream guide 404s and tar fails on the
error page. Verified the corrected command extracts all 14 files.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ermissions

Renames the page to match the 0.7 terminology, with a redirect from the
old path. The title spells out Access Control Permission before the
acronym, and STYLE.md now requires that of any page whose subject is ACPs.

Documents what 0.7 added rather than only renaming: the scope model
(Global, Contract, Handles) and that a scope only narrows, onchain
sharing via shareOnChain and importFromChain, and revocation.

Verified against the 0.7.1 source: client.acp is singular, the store key
is cofhesdk-acps, ACP expiration defaults to 7 days while the config key
defaultACPExpiration defaults to 30, and ACPUtils.export now throws on a
self ACP.

The Validating heading keeps a {#validating-permits} anchor so the
inbound deep link from error-handling.mdx still resolves. Rename it when
that page is migrated.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mintlify

mintlify Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
fhenix 🟢 Ready View Preview Aug 25, 2026, 4:04 AM

@alexandrecarvalheira
alexandrecarvalheira merged commit 4c7ea7e into main Aug 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant