Invitation of User to Tenant
Concepts¶
General¶
For background and complete specification, refer to
Invite User to Organization Use Case.
Constraints for MVP2¶
- Any user of a tenant can send an invite.
- 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 Restful API, and User Interface to access the functionality:
- For any tenant user to
- Create an Invitation to a User, identified by their email address, to join the Tenant.
- View all Invitations, sorted by creation date descending, with ability to filter by status
(Pending, Accepted, Expired, Rejected) and paginate through the list. - Cancel an Invitation that is in
PENDINGstatus.
- For any User receiving an Invitation to join a Tenant
- Accepting the Invitation, joining the Tenant.
- Rejecting the Invitation, declining to join the Tenant.
- For the system to
- Provide the Invitation as a link that encodes the Invitation identifier.
- Validate the Invitation
- The Invitation exists.
- The Invitation is in
PENDINGstatus. - 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.
Information Model¶
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 | |
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 he tenant. |