dist/codex/bigcommerce-commerce/skills/bc-security/SKILL.md
Implement BigCommerce security — OAuth token management, API authentication, webhook verification, CSP, input validation, PCI compliance, and app security best practices. Use when hardening integrations or reviewing security posture.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins bc-securityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fetch live docs:
site:developer.bigcommerce.com security authentication for auth securitybigcommerce app security best practices for app securitybigcommerce pci compliance for PCI guidance| Token Type | Security Level | Storage | |------------|---------------|---------| | API Account Token | Highest — full API access | Server-side only, encrypted | | OAuth App Token | High — scoped access | Server-side, per-store | | Storefront API Token | Medium — read-only storefront data | Client-side OK (limited scope) | | Customer Impersonation Token | High — customer data access | Server-side only |
Rate limits prevent abuse:
X-Rate-Limit-Requests-Left headerAlways verify JWTs in Load, Uninstall, and Remove User callbacks:
iss (issuer) matches BigCommerceexp (expiration) — reject expired tokensaud (audience) matches your Client IDstore_hash and user only after verificationstate parameter in OAuth flows to prevent CSRFBigCommerce doesn't sign webhook payloads with HMAC, so:
{ "headers": { "X-Webhook-Secret": "your-shared-secret" } }
store_id matches expected storeshash field) to prevent replay attacksdata.id blindly — verify by fetching the resource via APIWhen your app loads in the BigCommerce admin iframe:
Content-Security-Policy: frame-ancestors 'self' *.bigcommerce.comX-Frame-Options: ALLOW-FROM https://store-{hash}.mybigcommerce.comAdd CSP headers via Script Manager or theme configuration to restrict:
script-src — allowed script sourcesstyle-src — allowed style sourcesimg-src — allowed image sourcesconnect-src — allowed API endpoints{{{raw_html}}} triple-braces only for trusted contentBigCommerce is PCI DSS Level 1 compliant as a platform:
Fetch the BigCommerce security documentation and app review requirements for exact JWT verification patterns, CSP configuration, and current security best practices before implementing.
development
Build with Spree's headless Next.js storefront — the official `spree/storefront` repo (Next.js 16 App Router with Server Actions and Turbopack, React 19 Server Components, Tailwind CSS 4, TypeScript 5, `@spree/sdk`, Sentry), server-only auth (httpOnly JWT cookies + publishable key), MeiliSearch faceted catalog, one-page checkout with Apple/Google Pay/Klarna/Affirm/SEPA, multi-region market routing, GA4 + JSON-LD SEO, and Vercel/Docker deployment. Use when forking or customizing the storefront, or evaluating headless adoption.
tools
Build Spree extensions as Rails engines — gem scaffolding, `bin/rails g spree:extension`, mounting routes/migrations/assets, the modern `prepend` decorator pattern (`*_decorator.rb` with `self.prepended(base)`), generators (`spree:model_decorator`, `spree:controller_decorator`), the four customization surfaces in preference order (Events > Webhooks > Dependencies > Decorators), Spree::Dependencies for swapping service objects, gem release/versioning, and the deprecated Deface engine. Use when building a reusable Spree extension or adding non-trivial customization to an app.
development
Build with Spree's event bus and Webhooks 2.0 — `Spree::Events` publication, `Spree::Subscriber` DSL with `subscribes_to` and `on`, wildcard matching, lifecycle events (`{model}.created/.updated/.deleted` via `publishes_lifecycle_events`), the canonical event catalog (order.*, payment.*, shipment.*, product.*), Webhooks 2.0 endpoints, HMAC-SHA256 signing (`X-Spree-Webhook-Signature`), exponential-backoff retries, and Sidekiq job orchestration. Use when wiring event-driven business logic, building webhook consumers, or replacing ActiveSupport callback chains.
tools
Cross-cutting Spree development patterns — the customization preference hierarchy (Events > Webhooks > Dependencies > Decorators), `Spree::Dependencies` service-object swapping, the `_decorator.rb` + `prepend` + `self.prepended` idiom, idempotent subscribers and webhook receivers, multi-store scoping discipline, prefixed IDs, calculator polymorphism (shipping/promotion/tax share the base), service-object composition with `dry-monads` or simple results, why to avoid `class_eval` reopening and Deface, and Spree-on-Rails idioms (Hotwire/Turbo Stimulus, ActiveStorage, Action Cable, Sidekiq). Use when designing the architecture of a Spree extension or solving cross-cutting concerns.