@patronage/software-factory 1.0.0-alpha.3 → 1.0.0-alpha.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,6 +51,7 @@ Load only matching references:
51
51
  | Crypto and randomness | Weak hashes, predictable random values, static IVs, ECB mode, timing-unsafe compares, unsigned tokens, or custom crypto protect security-sensitive data. |
52
52
  | Abuse controls | Sensitive or expensive operations such as login, MFA, invites, exports, password reset, billing, email, SMS, or paid API calls lack meaningful rate, quota, replay, or idempotency controls. |
53
53
  | CI and workflows | Workflow changes let untrusted or caller-controlled code, text, artifacts, caches, or actions reach privileged execution, secrets, write tokens, releases, packages, deployments, or sensitive runners. |
54
+ | Infrastructure exposure | An infrastructure declaration publishes a service to the internet without a declared authentication mechanism. In an Alchemy stack, a Worker declaring `workersDev: true`, a `domain`, or `routes` must also declare its guard — Cloudflare Access, an auth secret binding, or an equivalent check inside the Worker — or carry a written reason in the change for why it is public. |
54
55
 
55
56
  ## Severity
56
57
 
@@ -22,6 +22,7 @@ Use this when reviewing JavaScript, TypeScript, Node, React, Next.js, or browser
22
22
  | Path traversal | `path.join(root, userPath)` without realpath containment, archive extraction by entry name | Normalize and resolve real paths, verify containment, generate server-side filenames |
23
23
  | Webhook forgery | State-changing webhook parses JSON before verifying signature or skips timestamp/replay checks | Verify raw body signature, timestamp freshness, replay/idempotency, and provider secret before side effects |
24
24
  | Secrets exposure | Secrets in client components, `NEXT_PUBLIC_*`, serialized props, logs, or error responses | Server-only reads, redacted logs, safe error messages, no hardcoded production fallback |
25
+ | Public Worker without auth | Alchemy `Cloudflare.Worker` gains `workersDev: true`, a `domain`, or a `routes` entry while its handler enforces no identity check | Cloudflare Access on the Worker (`access` prop or an Access application destination), an auth secret binding the handler verifies, or a written reason in the change for why the Worker is public |
25
26
 
26
27
  ## False-Positive Controls
27
28