updated skills
This commit is contained in:
@@ -109,4 +109,3 @@ const storage = createStorage({ type: "bunnycdn", config });
|
||||
## License
|
||||
|
||||
MIT — see `LICENSE` at the repo root.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user