AgentStack
SKILL verified MIT Self-run

Br Cors Public Client

skill-lonsdale201-wp-agent-skills-br-cors-public-client · by Lonsdale201

Configure better-route 0.5.0 CORS and preflight support for public REST clients. Use when adding CorsMiddleware, CorsPolicy, Router::options(), Authorization or Idempotency-Key cross-origin requests, credentialed browser clients, app clients, OPTIONS routes, or debugging failed REST preflight requests.

No reviews yet
0 installs
7 views
0.0% view→install

Install

$ agentstack add skill-lonsdale201-wp-agent-skills-br-cors-public-client

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Br Cors Public Client? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

better-route: CORS and preflight

Use explicit CORS policy for browser or embedded clients. Do not rely on incidental WordPress defaults when the API needs Authorization, Idempotency-Key, If-Match, X-Request-ID, or credentials.

Global middleware

use BetterRoute\Middleware\Cors\CorsMiddleware;
use BetterRoute\Middleware\Cors\CorsPolicy;

$cors = new CorsMiddleware(new CorsPolicy(
    allowedOrigins: ['https://app.example.com'],
    allowCredentials: true
));

$router->middleware([$cors]);

Default allowed headers include:

  • Authorization
  • Content-Type
  • Idempotency-Key
  • If-Match
  • If-None-Match
  • X-Request-ID
  • X-WP-Nonce

Default exposed headers include ETag, Idempotency-Replayed, X-RateLimit-*, and X-Request-ID.

Explicit preflight route

CorsMiddleware can short-circuit OPTIONS requests, but the router must register an OPTIONS route for that path when WordPress would not otherwise dispatch it.

$router->options('/account/payment-methods', static fn () => null)
    ->middleware([$cors]);

Router::options() is public by default in 0.5.0. Do not attach business handlers to preflight routes.

Rules

  • Prefer an origin allowlist. Use * only for non-credentialed public APIs.
  • If allowCredentials: true, do not return wildcard origin; CorsPolicy echoes the allowed request origin.
  • Put CORS early in the middleware list so errors and short-circuits still get headers where possible.
  • Keep allowed headers aligned with actual client needs; add custom headers deliberately.
  • Keep CORS separate from authentication. CORS says which browser origins may call; auth says who the caller is.

Source refs

  • libraries/better-route/src/Middleware/Cors/CorsMiddleware.php
  • libraries/better-route/src/Middleware/Cors/CorsPolicy.php
  • libraries/better-route/src/Router/Router.php
  • libraries/better-route/tests/BuiltInMiddlewareTest.php
  • libraries/better-route/tests/RouterPipelineTest.php

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.