feat(12.2-02): add the fileupload field with deferred uploads committed on save

- type: fileupload compiles the D-08 keys and binds to the model's attach.Relation at boot
- X-Session-Key (cabana.SessionKeyHeader) carries the form session key; RecordInput.SessionKey
- GET and POST .../{id}/files/{field}: list with pending uploads, multipart upload into attach.Store
- the create and update save attaches the session's pending files in its transaction
- swagger2openapi folds formData parameters into a multipart requestBody
- admin OpenAPI, TS types, conformance cases, README and forms docs
This commit is contained in:
Jakub Zych
2026-10-02 18:04:34 +02:00
parent edda803dc1
commit 044e0450ef
22 changed files with 2183 additions and 21 deletions

View File

@@ -89,6 +89,9 @@ type CompiledController struct {
// fields declare, the only ones a request may render with a record id.
partials map[string]*compiledPartial
formPartials map[string]bool
// files are the form's `type: fileupload` fields bound to the model's
// attach.Relation, keyed by field name.
files map[string]*compiledFile
}
// Registry is the immutable controller map keyed by controller ID.