1. Add connection
    1. get social identity from provider
      1. get sid to user relation
        1. new identity
          1. add email
          2. lite conflict
          3. save subscribtion
          4. save consent
          5. save profile
          6. add lite id to user
          7. social identity
          8. update user view
          9. aggregate user
          10. login validation
          11. update metadata (last login / isRegistered)
          12. create session
          13. Conflict
          14. all good
          15. save subscribtion
          16. save consent
          17. save profile
          18. relate sid to new user
          19. social identity
          20. update user view
          21. aggregate user
          22. login validation
          23. update metadata (last login / isRegistered)
          24. create session
        2. Existing user
          1. save subscribtion
          2. save consent
          3. save profile
          4. social identity
          5. update user view
          6. aggregate user
          7. login validation
          8. update metadata (last login / isRegistered)
          9. create session
  2. Social login
    1. get social identity from provider
      1. get sid to user relation
        1. new identity
          1. add email
          2. lite conflict
          3. save subscribtion
          4. save consent
          5. save profile
          6. relate sid to existing lite user
          7. social identity
          8. update user view
          9. aggregate user
          10. login validation
          11. update metadata (last login / isRegistered)
          12. create session
          13. Conflict
          14. create conflict token
          15. all good
          16. create user
          17. save subscribtion
          18. save consent
          19. save profile
          20. relate sid to new user
          21. social identity
          22. update user view
          23. aggregate user
          24. login validation
          25. update metadata (last login / isRegistered)
          26. create session
        2. Existing user
          1. save subscribtion
          2. save consent
          3. save profile
          4. social identity
          5. update user view
          6. aggregate user
          7. login validation
          8. update metadata (last login / isRegistered)
          9. create session
  3. Register
    1. add email
      1. lite conflict
        1. save subscribtion
        2. save consent
        3. save profile
        4. site identity
          1. update user view
          2. aggregate user
          3. login validation
          4. update metadata (last login / isRegistered)
          5. create session
      2. Conflict
        1. create conflict token
      3. all good
        1. create user
          1. save subscribtion
          2. save consent
          3. save profile
          4. site identity
          5. update user view
          6. aggregate user
          7. login validation
          8. update metadata (last login / isRegistered)
          9. create session
  4. Lite registration
    1. get lite id-> user relation
      1. new user
        1. add lite email
          1. conflict
          2. save subscribtion
          3. save consent
          4. save profile
          5. relate lite id to existing user
          6. lite identity
          7. update user view
          8. end
          9. all good
          10. create user
          11. save subscribtion
          12. save consent
          13. save profile
          14. relate lite id to new user
          15. lite identity
          16. update user view
          17. end
      2. Existing user
        1. save subscribtion
        2. save consent
        3. save profile
        4. lite identity
          1. update user view
          2. end
  5. Set account info
    1. active validation
      1. add email
        1. lite conflict
          1. save subscribtion
          2. save consent
          3. save profile
          4. add lite id to user
          5. site identity
          6. update user view
          7. end
        2. Conflict
          1. fail
        3. all good
          1. save subscribtion
          2. save consent
          3. save profile
          4. site identity
          5. update user view
          6. end
  6. Remove connection
    1. get social identity
      1. remove user relation from email
        1. remove user relation
          1. update user view
          2. end