bright-action-91775
09/26/2025, 1:48 PMchilly-king-10285
09/26/2025, 1:48 PMchilly-king-10285
09/26/2025, 1:48 PMaccepted_tos
(boolean), tos_version
(string), and tos_accepted_at
(timestamp). This approach is technically supported, but you should be mindful of the recommendation to avoid complex schemas and not to store business logic in the identity traits. Sensitive or internal data should be stored in metadata_admin
, which is not visible or editable by the user, while public profile data can be stored in traits if it must be user-facing and editable [Identity schema best practices](https://www.ory.sh/docs/kratos/manage-identities/best-practices). In summary: - It is possible to store ToS acceptance (date and version) in the Ory identity schema as custom traits. - The best practice is to keep the schema lean and avoid storing business logic or excessive fields. - For more complex or business-critical consent tracking, consider using your own backend system. If you need to store this information in Ory, keep the schema simple and only include what is necessary for your authentication and profile needs [Identity schema best practices](https://www.ory.sh/docs/kratos/manage-identities/best-practices) [Customize identity schemas](https://www.ory.sh/docs/kratos/manage-identities/customize-identity-schema).