Skip to content

Invitation of User to Tenant

Concepts

General

For background and complete specification, refer to
Invite User to Organization Use Case.

Constraints for MVP2

  1. Any user of a tenant can send an invite.
  2. The system does not send the email automatically, but provides a sample message with a link to be sent by the user.

Requirements Summary

The system will provide a Restful API and a User Interface to access the functionality:

  1. For any tenant user to
    1. Create an Invitation to a User, identified by their email address, to join the Tenant.
    2. View all Invitations, sorted by creation date descending, with ability to filter by status
      (Pending, Accepted, Expired, Rejected) and paginate through the list.
    3. Cancel an Invitation that is in PENDING status.
  2. For any User receiving an Invitation to join a Tenant
    1. Accepting the Invitation, joining the Tenant.
    2. Rejecting the Invitation, declining to join the Tenant.
  3. For the system to
    1. Provide the Invitation as a link that encodes the Invitation identifier and, for UI convenience,
      the invitee’s email address.
    2. Validate the Invitation
      1. The Invitation exists.
      2. The Invitation is in PENDING status.
      3. The Invitation is for the logged in user.

Activities

See the Sign-Up Use Case
and Sign Up Use Case (SSO) for the referenced steps in the scenario.

uml diagram

Information Model

uml diagram

General Information Contents

All entities will include the following information:

Field Name Type Description Notes
id UUID A unique to the entity in the system Generated by the system. Not editable
rId UUID A unique identifier for a particular version of the entity Not editable
createdBy Text The identification of the user that created the entity Not Editable
createdAt TimeCoordinates The time when the entity was created, specifying when it was created in the real world and when it was recorded by the system.
author Text The identification of the users that made the latest change (version) of the entity.
asOf TimeCoordinates The time when the latest change was made (effective and recorded).

In addition, Invitations belong to a tenant, so they will also have:

Field Name Type Description Notes
tenantId UUID The identification of the tenant that owns this entity.

Entities

Invitation

Field Name Type Default User Editable Description Notes
invitationDate Date The date when the invitation is created No The date when the invitation is created
expirationDate Date invitationDate plus a configurable interval No A date in the future where the invitation will expire
status Enumerated PENDING No The current status of the invitation in its lifecycle. Not directly editable, but it changes with actions that the user performs on the Invitation
invitee String Blank Yes Email of the invited user
inviterId UUID id of the user currently logged in No id of the logged in user.
tenantId UUID id of the current tenant No id of the tenant.

Lifecycle

Invitation Lifecycle

uml diagram

Comments