@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
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /team/invites/:token | Yes | Peek invite |
GET | /team/members | Yes | List members |
GET | /team/my-tenants | Yes | List my tenants |
POST | /team/invites/:token/accept | Yes | Accept invite |
POST | /team/members/invite | Yes | Invite member |
PUT | /team/members/:memberId/permissions | Yes | Update permissions |
PUT | /team/members/:memberId/role | Yes | Update role |
DELETE | /team/members/:memberId | Yes | Remove member |
Internals
Use-cases
Application operations. Each is a single-purpose class with one execute() method.
| Use-case | Signature |
|---|---|
AcceptTeamInviteUseCase | execute(inviteToken: string, accountId: string): Promise<TeamMemberResponseDto> |
CheckPermissionUseCase | execute(tenantId: string, accountId: string, permission: keyof TeamPermissions): Promise<void> |
GetPermissionsUseCase | execute(tenantId: string, accountId: string): Promise<TeamPermissions | null> |
HasAccessUseCase | execute(tenantId: string, accountId: string): Promise<boolean> |
InviteTeamMemberUseCase | execute(tenantId: string, inviterId: string, dto: InviteTeamMemberDto): Promise<TeamMemberResponseDto> |
ListMyTenantsUseCase | execute(accountId: string): Promise<MyTenantsResponseDto[]> |
ListTeamMembersUseCase | execute(tenantId: string, accountId: string): Promise<TeamMemberResponseDto[]> |
PeekTeamInviteUseCase | execute(inviteToken: string): Promise<PeekInviteResult> |
RemoveTeamMemberUseCase | execute(tenantId: string, memberId: string, actorId: string): Promise<void> |
UpdateTeamMemberPermissionsUseCase | execute(tenantId: string, memberId: string, actorId: string, dto: UpdateTeamMemberPermissionsDto): Promise<TeamMemberResponseDto> |
UpdateTeamMemberRoleUseCase | execute(tenantId: string, memberId: string, actorId: string, dto: UpdateTeamMemberRoleDto): Promise<TeamMemberResponseDto> |
Entities
Sequelize models owned by this module.
TenantMember — table tenant_members
| Field | Type |
|---|---|
id | string |
tenantId | string |
tenant | Tenant |
accountId | string | null |
account | Account |
email | string |
name | string | null |
role | TeamRole |
status | TeamMemberStatus |
permissions | TeamPermissions |
inviteToken | string | null |
inviteExpiresAt | Date | null |
invitedBy | string | null |
joinedAt | Date | null |
lastActiveAt | Date | null |
createdAt | Date |
updatedAt | Date |
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.