updated skills

This commit is contained in:
2026-06-09 21:06:27 +01:00
parent db1ce43ee1
commit 427a5bd919
1283 changed files with 24684 additions and 2313 deletions

View File

@@ -109,4 +109,3 @@ const storage = createStorage({ type: "bunnycdn", config });
## License
MIT — see `LICENSE` at the repo root.

View File

@@ -70,5 +70,5 @@ async function purgeSafelyWithKeyRotation(ctx, edgeUrl: string) {
- Purge URL composition is the caller's responsibility because the same endpoint handles both single keys and prefix purges (caller appends `*` for prefix mode). Pushing composition into the helper would force every caller through an enum or a flag.
- The `AccessKey` header is the account-level key from the Bunny.net dashboard, NOT the per-zone storage key. They're rotated independently and have different scopes; conflating them is the typical "purge stopped working after I rotated the storage key" bug.
- 404 on purge is treated as success at the *caller* level (we don't see it here because the BunnyCDN API returns `200 OK` even when the object was already evicted) — operators relying on a 404 signal should switch to the management API's status endpoint.
- 404 on purge is treated as success at the _caller_ level (we don't see it here because the BunnyCDN API returns `200 OK` even when the object was already evicted) — operators relying on a 404 signal should switch to the management API's status endpoint.
- The `pullZoneHostname` field is unused inside this function but is part of the bundle so callers can build edge URLs without a second context object.

View File

@@ -72,7 +72,7 @@ See the corresponding TS signatures in `storage-client.ts`. Status → code mapp
## Implementation Notes
- The `AccessKey` header is added by `baseHeaders` *after* the caller's custom headers, so a caller's `headers` callback cannot accidentally override it with a different value.
- The `AccessKey` header is added by `baseHeaders` _after_ the caller's custom headers, so a caller's `headers` callback cannot accidentally override it with a different value.
- Range reads bypass the auth-check for non-401/403 statuses because `consumeRangeResponse` understands `206`/`200`/`416` natively — duplicating the logic would mask the dedicated range fallback metric.
- `storageStream` skips `retryWithBackoff` because streaming responses can't be retried mid-stream without buffering, and the retry classifier is response-shape rather than stream-shape.
- All errors carry `zone`, `region`, and `httpStatus` so monitoring dashboards can break failures down by tenant.