Skip to main content
Use FamilySchemaSubmission for an API, import or job that writes values belonging to a registered family. It resolves the same configuration layers and calls the same adapter rules as the form. isRequired is applied in both paths. Your adapter must provide a nonempty value-rule list for this server-side save boundary; an empty rule list is rejected. Use nullable explicitly for optional nullable values.
Resolve the actor, customer and tenant in your application’s policy and query the customer within that tenant. authorizeWrite is required and must return a boolean. The adapter’s authorize() check also runs. A denied submitted field throws; an omitted denied field remains omitted. Inactive, disabled and readonly definitions cannot accept submitted values. A hidden field still requires the write policy; visibility does not grant permission. A migrated configuration is checked by the policy before and after normalization. Unknown field paths, duplicate definitions, old value versions and invalid values reject the whole preparation. Structured values still need rules such as array:text or a custom typed value rule to reject unknown keys inside the value. Rules referring to other fields use the actual state paths, for example same:attributes.confirmation. The method returns only prepared fields and never persists a record. Merge only those fields into existing data so omitted fields and temporarily unavailable extensions are preserved. Encryption, record locking and database transactions remain explicit application storage concerns.

Continue reading

Extension guides · Definition and registration reference
Last modified on October 17, 2026