How it works
A file field doesn’t submit its bytes as part of the JSON payload. Instead, the SDK:- Requests a short-lived signed upload URL for that specific field.
- Uploads the file directly to storage, bypassing your server entirely.
- Includes the resulting file reference in the submission payload in place of the raw file.
useRaykoiForm) or client.form(id).submit() directly, you don’t write any of this — pass a File/FileList value under a field’s name and the SDK detects it, uploads it, and substitutes the reference automatically, with progress events available via onProgress.
Validation
Two layers, both enforced server-side (client-declared values are never trusted on their own):- Per-field, from the field’s own configuration in the form builder —
maxSizeMB,allowedTypes(supports wildcards likeimage/*). - Per-workspace, from your plan — a per-file size ceiling and a total storage quota.
Content-Type at upload time doesn’t get through on a technicality.