@withpotter/team — module reference

HTTP routes this module mounts, plus its internal use-cases, entities, and repositories. The exhaustive request/response contract is the engine’s OpenAPI document at /docs; the layered structure below follows the package internal architecture.

HTTP routes

TeamController /team

MethodPathAuthDescription
GET/team/invites/:tokenYesPeek invite
GET/team/membersYesList members
GET/team/my-tenantsYesList my tenants
POST/team/invites/:token/acceptYesAccept invite
POST/team/members/inviteYesInvite member
PUT/team/members/:memberId/permissionsYesUpdate permissions
PUT/team/members/:memberId/roleYesUpdate role
DELETE/team/members/:memberIdYesRemove member

Internals

Use-cases

Application operations. Each is a single-purpose class with one execute() method.

Use-caseSignature
AcceptTeamInviteUseCaseexecute(inviteToken: string, accountId: string): Promise<TeamMemberResponseDto>
CheckPermissionUseCaseexecute(tenantId: string, accountId: string, permission: keyof TeamPermissions): Promise<void>
GetPermissionsUseCaseexecute(tenantId: string, accountId: string): Promise<TeamPermissions | null>
HasAccessUseCaseexecute(tenantId: string, accountId: string): Promise<boolean>
InviteTeamMemberUseCaseexecute(tenantId: string, inviterId: string, dto: InviteTeamMemberDto): Promise<TeamMemberResponseDto>
ListMyTenantsUseCaseexecute(accountId: string): Promise<MyTenantsResponseDto[]>
ListTeamMembersUseCaseexecute(tenantId: string, accountId: string): Promise<TeamMemberResponseDto[]>
PeekTeamInviteUseCaseexecute(inviteToken: string): Promise<PeekInviteResult>
RemoveTeamMemberUseCaseexecute(tenantId: string, memberId: string, actorId: string): Promise<void>
UpdateTeamMemberPermissionsUseCaseexecute(tenantId: string, memberId: string, actorId: string, dto: UpdateTeamMemberPermissionsDto): Promise<TeamMemberResponseDto>
UpdateTeamMemberRoleUseCaseexecute(tenantId: string, memberId: string, actorId: string, dto: UpdateTeamMemberRoleDto): Promise<TeamMemberResponseDto>

Entities

Sequelize models owned by this module.

TenantMember — table tenant_members

FieldType
idstring
tenantIdstring
tenantTenant
accountIdstring | null
accountAccount
emailstring
namestring | null
roleTeamRole
statusTeamMemberStatus
permissionsTeamPermissions
inviteTokenstring | null
inviteExpiresAtDate | null
invitedBystring | null
joinedAtDate | null
lastActiveAtDate | null
createdAtDate
updatedAtDate

Repositories

Data-access classes wrapping the entities.

TeamRepository

findByTenantAndAccount · findByInviteEmail · findByInviteToken · findAllByTenant · findAllByAccount · findAllByAccountWithTenant · hasAccess · getRole · countByTenant · findOwner · remove

Generated from the module’s source. Routes are relative to the engine root (default http://localhost:3001). For full request/response schemas use the live OpenAPI document.