Skip to content

Security Overview

SetGet is designed with security as a foundational requirement. The platform protects your data through multiple layers: strong authentication, granular authorization, encrypted communication, secure session management, and administrative controls. This page provides an overview of the security model and links to detailed documentation for each area.

Authentication

Authentication verifies that a user is who they claim to be. SetGet supports multiple authentication methods to fit different organizational requirements.

Email and password

The default authentication method. Users register with an email address and a strong password. Passwords are hashed using a modern, computationally expensive algorithm before storage. SetGet never stores passwords in plain text.

Password requirements:

RequirementDetail
Minimum length8 characters
ComplexityMust include uppercase, lowercase, and a number or special character
Reuse preventionCannot reuse the last 5 passwords
Brute force protectionAccount lockout after repeated failed attempts

Users can sign in without a password by requesting a one-time authentication code sent to their email. The code is time-limited and single-use. This method is useful for users who prefer not to manage passwords.

OAuth providers

SetGet supports third-party authentication through OAuth 2.0 providers:

  • Google — sign in with a Google account
  • GitHub — sign in with a GitHub account
  • GitLab — sign in with a GitLab account
  • Gitea — sign in with a Gitea account

Each provider must be configured by a workspace or instance admin. See OAuth Providers for setup instructions.

Single Sign-On (SSO)

Enterprise teams can configure SAML-based SSO to authenticate users through their corporate identity provider (IdP). SSO centralizes authentication management and can be enforced as the only allowed sign-in method. See SSO for configuration details.

Multi-Factor Authentication (MFA)

MFA adds a second verification step after password authentication. SetGet supports TOTP (Time-based One-Time Password) using authenticator apps like Google Authenticator, Authy, or 1Password. Workspace admins can enforce MFA for all members. See MFA for setup and enforcement.

Authorization

Authorization determines what an authenticated user is allowed to do. SetGet uses a role-based access control (RBAC) system with roles at multiple levels.

Workspace roles

RoleDescription
OwnerFull control over the workspace: billing, settings, member management, all projects
AdminManage workspace settings, members, and all projects; cannot transfer ownership or manage billing
MemberAccess projects they are assigned to, create work items, participate in chat
GuestLimited access to specific projects and channels they are explicitly invited to

Project roles

Within each project, members can have additional role-based permissions:

RoleDescription
AdminFull control over the project: settings, states, labels, members
MemberCreate and edit work items, participate in project discussions
ViewerRead-only access to project work items and pages

Permission inheritance

  • Workspace owners and admins automatically have admin access to all projects.
  • Project-level roles apply only within that project.
  • Guest users have no implicit access — every permission must be explicitly granted.

See Roles and Permissions for the complete permission matrix.

Data protection

Encryption in transit

All communication between the client (browser) and the SetGet server is encrypted using TLS (HTTPS). This includes:

  • Web application traffic
  • API requests and responses
  • WebSocket connections for real-time features
  • File uploads and downloads

SetGet enforces HTTPS and does not serve content over unencrypted HTTP in production.

Encryption at rest

Data stored in the database and file storage is protected by:

LayerProtection
DatabaseMongoDB encryption at rest (if enabled at the infrastructure level)
File storageMinIO server-side encryption for stored objects
BackupsEncrypted backup storage (infrastructure-dependent)
PasswordsOne-way hashed with bcrypt; never stored in plain text
TokensSession tokens are cryptographically random and stored hashed

Data isolation

Each workspace's data is logically isolated:

  • Workspace data is scoped by workspace ID in all database queries.
  • There is no cross-workspace data leakage through the API.
  • File storage uses workspace-scoped paths and access controls.

Session management

SetGet uses token-based sessions to manage authenticated access:

  • Sessions are created upon successful authentication.
  • Each session is tied to a specific device and IP address.
  • Sessions have a configurable timeout period.
  • Users can view and revoke their active sessions.
  • Admins can revoke sessions for any workspace member.

See Session Management for details on viewing, revoking, and configuring sessions.

Session security features

FeatureDescription
Session bindingSessions are tied to the originating IP and user agent
Automatic expirySessions expire after a configurable inactivity period
Concurrent session limitAdmins can set a maximum number of concurrent sessions per user
RevocationUsers and admins can revoke any active session immediately
Secure cookiesSession tokens are stored in HttpOnly, Secure, SameSite cookies

API security

The SetGet API enforces authentication and authorization on every request:

ProtectionDetail
Authentication requiredAll API endpoints (except public pages and auth routes) require a valid session
Rate limitingAPI endpoints are rate-limited to prevent abuse
Input validationAll inputs are validated and sanitized before processing
CORS policyCross-origin requests are restricted to allowed origins
CSRF protectionState-changing requests require CSRF tokens

Audit and compliance

Activity logging

SetGet logs security-relevant events for audit purposes:

EventLogged details
User sign-inTimestamp, IP address, authentication method
User sign-outTimestamp
Failed sign-in attemptTimestamp, IP address, email attempted
Password changeTimestamp, user
MFA enable/disableTimestamp, user
Session revocationTimestamp, who revoked, which session
Member role changeTimestamp, who changed, old role, new role
Workspace setting changeTimestamp, who changed, which setting

Data export

Users can request an export of their personal data, including:

  • Profile information
  • Work items they created
  • Messages they sent
  • Files they uploaded

This supports GDPR and similar data protection regulation compliance.

Security configuration checklist

For workspace administrators setting up a secure environment:

StepPriorityDocumentation
Enable HTTPSCriticalInfrastructure setup
Configure OAuth providersHighOAuth Providers
Set up SSOHigh (enterprise)SSO
Enforce MFAHighMFA
Configure session timeoutMediumSession Management
Set up group syncMediumGroup Sync
Review member rolesMediumRoles and Permissions
Configure notification preferencesLowNotification Preferences

WARNING

Security is only as strong as its weakest link. Enabling MFA, configuring SSO, and regularly reviewing active sessions are the most impactful steps you can take to secure your workspace.