Voedger Internals
  • Introduction
  • 💡Concepts
    • Event Sourcing & CQRS
    • Editions (deprecated)
      • Community Edition
      • Standart Edition
      • Standart Edition (v1)
  • 🚀Server
    • Overview (Server)
    • Design
      • Query Processor
      • API Gateway implementation
      • N1 Cluster
      • N3 Cluster
      • N5 Cluster
      • Orchestration
      • Sequences
      • Packages overview
        • sys
        • registry
    • Features
      • API Gateway
        • API v2
          • Conventions
            • API URL
            • HTTP methods and processors
            • Naming conventions
            • Query constraints
            • Error handling
          • Documents and records
            • Create document or record
            • Update document or record
            • Deactivate document or record
            • Read document or record
            • Read from CDoc collection
          • Queries
            • Read from query
          • Views
            • Read from view
          • Commands
            • Execute command
          • BLOBs
            • Create BLOB
            • Read BLOB
          • Temporary BLOBs
            • Create temporary BLOB
            • Read temporary BLOB
          • Schemas
            • List app workspaces
            • List workspace roles
            • Read workspace role schema
        • API v1
          • API Conventions
          • BLOBs
      • Admin Endpoint
      • Clusters
        • Bootstrap
        • Monitoring
        • Secure prometheus and grafana
        • Alerting
        • Maintenance
          • SELECT, UPDATE
      • VVMs
      • Applications
        • Deploy Application
        • Sidecar Applications
      • AuthNZ
        • Issue Principal Token
        • Refresh Principal Token
        • Enrich Principal Token
        • ACL Rules
        • Global Roles
      • Data types
        • Core types
        • Small integers
        • Uniques With Multiple Fields
        • Verifiable Fields
      • Workspaces
        • Create Workspace
        • Deactivate Workspace
        • See also (Workspaces)
      • Invites
        • Invite to Workspace
        • Join Workspace
        • Leave Workspace
        • Cancel sent Invite
        • Cancel accepted Invite
        • Update Invite roles
      • Users
        • Create a new user
        • Change user password
        • Send Email
        • Reset password
        • Change Email
      • Notifications
        • Heartbeats
      • Devices
        • Create a new device
        • Join device to workspace
      • Jobs
      • DMBS Drivers
        • AmazonDB Driver
      • Frozen
        • Ephemeral Storage
        • Storage Extensions
  • 🛠️Framework
    • Overview (Framework)
    • Features
      • vpm
      • vpm init
      • vpm tidy
      • vpm baseline
      • vpm orm
      • vpm build
      • API for testing
  • Development
    • Requirements Management
    • Requirements Management (Overview)
Powered by GitBook
On this page
  • Overview
  • Motivation
  • Concepts
  • Invite state diagram
  • Main sequence
  • Extra
  • Documents
  • cdoc.sys.Invite
  • cdoc.sys.Subject

Was this helpful?

Edit on GitHub
  1. 🚀Server
  2. Features

Invites

Invite Users/Devices to Workspaces

Overview

Roles and permissions:

  • WorkspaceOwner: Highest level role, automatically has admin privileges

  • WorkspaceAdmin: Can manage invites and user access

Key documents:

  • Invite: Tracks invitation status and metadata

  • Subject: Represents an invited user/device in the workspace

  • JoinedWorkspace: Records workspace membership details

  • Login: Manages user authentication and access

Invitation management:

  • c.InitiateInvitationByEmail: Creates new invitation

    • Requires WorkspaceAdmin role

    • Includes email, roles, expiration, and email template

  • c.InitiateJoinWorkspace: Processes invite acceptance

    • Requires verification code

    • Creates necessary workspace access records

Role management:

  • c.InitiateUpdateInviteRoles: Updates member permissions

    • Available for joined members only

    • Includes email notification

Membership termination:

  • c.InitiateCancelAcceptedInvite: Admin removes member

  • c.InitiateLeaveWorkspace: Member voluntarily leaves

  • c.CancelSentInvite: Cancels pending invitation

Motivation

  • As a workspace owner I want to invite users into workspace with specified roles, so that if they accept it, they are granted to access my workspace\

  • As a workspace owner I want to change invited user's roles

  • As a user, I want to see the list of my workspaces and roles, so that I know what am I available to work with

  • As a user, I want to be able to leave the workspace I'm invited to

  • As a workspace owner I want to ban user to he doesn't have access to my workspace anymore

  • https://github.com/heeus/heeus-design/blob/main/workspaces/invites.md

Concepts

Invite state diagram

Main sequence

Extra

Documents

cdoc.sys.Invite

  • ID

  • Login // actually c.sys.InitiateInvitationByEmail.EMail

  • Email // actually c.sys.InitiateInvitationByEmail.EMail

  • Roles (comma-separated)

  • ExpireDatetime (unix-timestamp)

  • VerificationCode

  • State

  • Created (unix-timestamp) ???

  • Updated (unix-timestamp) ???

  • SubjectID (Subject.ID) // by ap.sys.ApplyJoinWorkspace

  • InviteeProfileWSID // by ap.sys.ApplyJoinWorkspace

  • ActualLogin // token.Login, by ap.sys.ApplyJoinWorkspace

cdoc.sys.Subject

  • Login // old stored records -> Invite.Login that is actually c.sys.InitiateInvitationByEMail.Email, new records (starting from https://github.com/voedger/voedger/issues/1107) - Invite.ActualLogin that is login from token

  • Roles (comma-separated list)

PreviousSee also (Workspaces)NextInvite to Workspace

Last updated 4 months ago

Was this helpful?

SubjectKind ()

SubjectKind ()

Air: Reseller Portal: Invite unTill Payments Users
Resellers Portal
invites.md
User/Device
User/Device