Payload CMS plugins by napolab, published as separate npm packages.
| Package | Description |
|---|---|
@napolab/payload-cloudflare-access |
Sign Payload admin users in with Cloudflare Access instead of passwords. |
@napolab/cloudflare-access-core |
Framework-agnostic Cloudflare Access JWT helpers (no Payload dependency). |
This repository is also a Claude Code plugin marketplace. The payload-cloudflare-access plugin ships skills that set up @napolab/payload-cloudflare-access in a Payload project and verify Access tokens with @napolab/cloudflare-access-core.
/plugin marketplace add napolab/payload-plugins
/plugin install payload-cloudflare-access@napolab-payload-plugins
| Skill | Use |
|---|---|
setup-payload-cloudflare-access |
Install and configure cloudflareAccessPlugin, Access application / env vars, profile sync, debug. |
cloudflare-access-core |
Verify Access JWTs in Workers, Hono or Next.js middleware, read custom claims, fetch get-identity. |
The marketplace lives in .claude-plugin/marketplace.json and the plugin in plugins/payload-cloudflare-access. Validate changes with claude plugin validate ..
Tooling is pinned with mise (Node 24, pnpm 10).
mise install
pnpm install
pnpm exec playwright install chromium # once, for the browser test project
pnpm lint # oxfmt --check + oxlint
pnpm fmt # oxfmt --write + oxlint --fix
pnpm typecheck # tsgo
pnpm test # vitest (unit: node, browser: Playwright Chromium)
pnpm build # swc + tsgo declarations into packages/*/distDuring development, each package's exports point at src/*.ts. publishConfig.exports swaps them for dist/*.js + dist/*.d.ts when the package is packed (pnpm pack / pnpm publish).
Releases use Changesets.
- Add a changeset with
pnpm changesetin your PR. - On
main, the Release workflow opens a "Version Packages" PR. - Merging that PR publishes the bumped packages to npm.
Publishing uses npm trusted publishing (GitHub OIDC, with provenance). There is no NPM_TOKEN secret.
Important
npm only lets you configure a trusted publisher for a package that already exists. Publish the first version of each package manually (pnpm build && cd packages/<name> && pnpm publish --access public), then add napolab/payload-plugins + release.yml as the trusted publisher on npmjs.com for each package.
MIT