feat(14-01): fetchguard client covers PUT, multipart, bearer and a trusted mode

- TrustedMode (declared after PublicOnlyMode) lifts the scheme, host and dial checks for Client only
- PutJSON, PostMultipart with FormField/FormFile, Bearer
- tests for modes, redirects, multipart order, body cap and the scheme guard
- README, root modules row and outbound HTTP docs describe the client and its test seam
This commit is contained in:
Jakub Zych
2026-10-03 19:42:37 +02:00
parent 93b7142059
commit e6a67134d1
10 changed files with 543 additions and 38 deletions

View File

@@ -39,6 +39,7 @@ Each row names the WinterCMS concept, the SummerCMS identifiers that replace it,
| Laravel broadcasting | `lighthouse.Publisher` drivers and models that implement `lighthouse.Broadcastable` | [Realtime](../services/realtime.md), [lighthouse](../../modules/lighthouse/README.md) |
| Laravel Scout search | Models that implement `beachcomber.Searchable`, synced after commit | [Search](../services/search.md), [beachcomber](../../modules/beachcomber/README.md) |
| The Laravel HTTP client | `fetchguard.Fetch` with a `fetchguard.Policy` that blocks private addresses and limits size and time | [Outbound HTTP](../services/outbound-http.md), [fetchguard](../../modules/fetchguard/README.md) |
| A plugin's own curl request sender for a vendor API (JSON or multipart POST, bearer token) | One `fetchguard.Client` per vendor from `fetchguard.NewClient`, with `fetchguard.Client.PostJSON`, `fetchguard.Client.PostMultipart` and `fetchguard.Bearer` | [Outbound HTTP](../services/outbound-http.md#calling-a-service-api), [fetchguard](../../modules/fetchguard/README.md) |
## What is not provided