Skip to main content
Use FieldValueSubmission when your API, import or background job accepts field values. Declare writable paths and Laravel rules in trusted PHP. A request cannot select a rule class, callback or component renderer.
$fieldPolicy is your application policy. Resolve the actor, record, tenant and create/edit operation on the server. The authorization callback must return a boolean. A denied submitted field throws AuthorizationException; an undeclared path throws InvalidArgumentException; invalid values throw Laravel’s ValidationException. Missing optional fields remain absent. null, false, empty lists and numeric strings retain their original types. Rules run against the complete submitted payload, so Laravel rules such as required_if can refer to other fields. Use array:allowed,key,names for structured values: declaring a field path does not automatically authorize every key inside that field. Supply a typed Laravel validation rule for a custom component’s value, including option ownership or tenant constraints. Declaring array or string alone does not verify which database records a value may reference. The method returns prepared values and never saves a record. It also does not inherit a field’s UI rules automatically. Share your trusted value rules between your component adapter and submission contract when both accept the same data. Hidden, disabled and readonly UI settings do not replace the write policy.

Preserve fields outside the current submission

Apply prepared fields to existing values explicitly. This avoids erasing values owned by another component or an extension that is temporarily unavailable.
Authorize the record and query it within the correct tenant scope before this operation. If saving several records or combining values with schema publication, wrap the operation in your application’s database transaction. For competing updates to a record, use your application’s locking or revision policy. FieldValueSubmission encrypts accepted plaintext after validation. Text resembling a stored encrypted envelope is still treated as submitted text and encrypted again. FieldValueWriter and HasFlexFields remain storage APIs: they preserve existing ciphertext and do not automatically perform request authorization or business-rule validation. Keep submission contracts and storage definitions consistent about which paths require encryption.

Data limits

The reserved path segments are __proto__, constructor and prototype. JSON escaping counts toward byte limits. Encryption increases the storage size; the complete prepared storage payload must still fit its limit. Store large files through Media OS rather than embedding file contents in these JSON values. These are distinct from the existing family configuration/exchange limits. Family schemas continue to use the installed family’s typed configuration contract and reject unknown configuration or value versions.

Continue reading

Submission pipeline · Saved values
Last modified on October 16, 2026