This task covers introduction of a new concept in Unity: Policy documents. After this ticket is implemented policies can be defined and configured. Integration with services presenting policy acceptance will be covered with subsequent tickets.
Policy document should be stored as a separate entity in the system (DB). Multiple can be defined. Complete support from persistence to engine-api is needed. Each policy document should consist of:
an autogenerated id,
name,
displayed name (i18n)
a revision (number)
flag: mandatory or optional
contents (i18n) which is one of:
embedded (typed with rich editor)
external URL
In future more content types may be expected and implementation should plan for it. Example future type could be a PDF file stored in Unity.
API should support complete CRUD. Update must preserve the id. API must support two modes of update: leaving revision unchanged or incrementing it by one.
In console there should be a new view for managing agreements. Placed in Settings, next to Message templates. UI spec https://balsamiq.cloud/sjvkm7s/pl9yeyv/r2F0F.
Note: policy definitions are a centralized feature as it should be possible to reuse them between multiple IdP endpoints, IdP endpoint and registration form, etc.