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.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.