Table of Contents

Class ThargaTeamOptions

Namespace
Tharga.Team.MongoDB
Assembly
Tharga.Team.MongoDB.dll
public record ThargaTeamOptions : IEquatable<ThargaTeamOptions>
Inheritance
ThargaTeamOptions
Implements
Inherited Members

Properties

CheckMemberAccessLevels

Whether to report, at startup, stored team members that carry no access level and are therefore being treated as Owner. Default true.

public bool CheckMemberAccessLevels { get; set; }

Property Value

bool

Remarks

On by default because the condition it finds is a silent privilege grant. A member with no stored level is an Owner, with nothing in the logs and nothing visible in the UI to say so — and since Owner is the enum's zero value, no check above the store can distinguish it from a member deliberately made one. Silence about that should be something a host chooses, not something it gets by default.

The cost of leaving it on is one count query per start, which returns immediately on a deployment with nothing to report. Set false once the data is corrected, or if the startup query is unwelcome.

IconCollectionName

MongoDB collection name for icon documents (the built-in MongoIconStore). Default is "Icon".

public string IconCollectionName { get; set; }

Property Value

string

SupportCaseCollectionName

Collection holding support cases and their transcripts. Default SupportCase.

public string SupportCaseCollectionName { get; set; }

Property Value

string

SupportEventLedgerCollectionName

Collection remembering which inbound channel events have been handled. Default SupportEventLedger.

public string SupportEventLedgerCollectionName { get; set; }

Property Value

string

SupportEventLedgerRetention

How long a handled event is remembered. Default 24 hours.

public TimeSpan SupportEventLedgerRetention { get; set; }

Property Value

TimeSpan

Remarks

Only has to outlast the channel's own retry window - Slack gives up long before a day - so this is generous. Entries expire by TTL index rather than accumulating.

SupportMailPositionCollectionName

Collection remembering how far the support mailbox has been read. Default SupportMailPosition.

public string SupportMailPositionCollectionName { get; set; }

Property Value

string

TeamCollectionName

MongoDB collection name for team documents. Default is "Team".

public string TeamCollectionName { get; set; }

Property Value

string

UserCollectionName

MongoDB collection name for user documents. Default is "User".

public string UserCollectionName { get; set; }

Property Value

string

Methods

RegisterTeamRepository<TTeamEntity, TTeamMemberModel>()

public void RegisterTeamRepository<TTeamEntity, TTeamMemberModel>() where TTeamEntity : TeamEntityBase<TTeamMemberModel> where TTeamMemberModel : TeamMemberBase

Type Parameters

TTeamEntity
TTeamMemberModel

RegisterUserRepository<TUserEntity>()

Registers the User repository using the built-in UserRepositoryCollection<TUserEntity>. Use the RegisterUserRepository<TUserEntity, TCollection> overload to register a consumer subclass that declares additional per-deployment indices.

public void RegisterUserRepository<TUserEntity>() where TUserEntity : EntityBase, IUser

Type Parameters

TUserEntity

RegisterUserRepository<TUserEntity, TCollection>()

Registers the User repository with a consumer-provided collection subclass. Use this when you need to add per-deployment indices on top of the built-in unique Identity index (e.g. a unique index on a custom email field).

public void RegisterUserRepository<TUserEntity, TCollection>() where TUserEntity : EntityBase, IUser where TCollection : UserRepositoryCollection<TUserEntity>

Type Parameters

TUserEntity
TCollection