Project

General

Profile

Actions

User Story #238

open

Epic #3: Implement a secure user authentication system

Feature #160: User Login

As a user, I want to enable and disable TOTP from my profile, so that I can manage my two-factor authentication settings

User Story #238: As a user, I want to enable and disable TOTP from my profile, so that I can manage my two-factor authentication settings

Added by Bricklou about 2 months ago. Updated about 1 month ago.

Status:
Done
Priority:
Normal
Assigned To:
Target version:
Start date:
08/20/2026
Due date:
% Done:

100%

Estimated time:
(Total: 0:00 h)

Description

This user story covers self-service TOTP setup and management from the user profile UI.

Acceptance requirements:

  • Users can initiate TOTP setup: the app generates a secret and displays a QR code and manual entry code
  • Users must confirm with a valid OTP code before TOTP is activated (prevents locking out on misconfigured authenticator)
  • Users can disable TOTP (requires providing a current OTP code or password as confirmation)
  • The profile UI shows the current MFA status (enabled / disabled)

Subtasks 5 (5 open — 0 closed)

Sub-Task #244: API endpoint: initiate TOTP setup (generate secret, return base32 + otpauth URL)DoneBricklou08/20/2026

Actions
Sub-Task #245: API endpoint: confirm and activate TOTP (verify OTP code before persisting secret)DoneBricklou08/27/2026

Actions
Sub-Task #247: API endpoint: disable TOTP (requires current OTP code or password confirmation)DoneBricklou08/20/2026

Actions
Sub-Task #248: Frontend: TOTP setup wizard (QR code display, manual entry, confirmation code input)DoneBricklou08/27/2026

Actions
Sub-Task #249: Frontend: MFA management section in user profile (enable/disable/status)DoneBricklou08/27/2026

Actions

Related issues 2 (2 open — 0 closed)

Blocked by Server - Feature #251: Dashboard shell & navigationDoneBricklou08/22/2026

Actions
Blocked by Server - User Story #253: As a user, I want a settings page reachable from the dashboard, so that I can later manage my account optionsDoneBricklou08/26/2026

Actions

Updated by Bricklou about 2 months ago Author Actions #1

  • Subtask #244 added

Updated by Bricklou about 2 months ago Author Actions #2

  • Subtask #245 added

Updated by Bricklou about 2 months ago Author Actions #3

  • Subtask #247 added

Updated by Bricklou about 2 months ago Author Actions #4

  • Subtask #248 added

Updated by Bricklou about 2 months ago Author Actions #5

  • Subtask #249 added

Updated by Bricklou about 2 months ago Author Actions #6

  • Subtask #250 added

Updated by Bricklou about 2 months ago Author Actions #7

  • Subtask deleted (#250)

Updated by Bricklou about 2 months ago Author Actions #8

  • Status changed from Draft to To Do

Updated by Bricklou about 2 months ago Author Actions #9

  • Status changed from To Do to Planned
  • Assigned To set to Bricklou
  • Start date deleted (08/12/2026)

Updated by Bricklou about 2 months ago Author Actions #10

  • Status changed from Planned to In Progress
  • Start date set to 08/20/2026

Updated by Anonymous about 2 months ago Actions #11

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #12

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #13

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #14

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #15

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #16

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #17

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #18

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #19

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #20

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #21

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #22

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #23

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #24

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #25

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #26

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #27

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #28

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #29

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #30

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #31

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #32

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #33

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #34

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #35

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #36

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Anonymous about 2 months ago Actions #37

Commit referenced this issue: @45@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/21

This is a very large PR because it adds a lot of missing bricks required to make the whole workflow works.

Updated by Bricklou about 2 months ago Author Actions #38

  • Blocked by Feature #251: Dashboard shell & navigation added

Updated by Bricklou about 2 months ago Author Actions #39

  • Blocked by User Story #253: As a user, I want a settings page reachable from the dashboard, so that I can later manage my account options added

Updated by Bricklou about 1 month ago Author Actions #40

  • Target version set to Server 0.1.0

Updated by Anonymous about 1 month ago Actions #41

Commit referenced this issue: @239@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/24

closes #238

Updated by Anonymous about 1 month ago Actions #42

Commit referenced this issue: @239@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/24

closes #238

Updated by Anonymous about 1 month ago Actions #43

Commit referenced this issue: @239@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/24

closes #238

Updated by Anonymous about 1 month ago Actions #44

Commit referenced this issue: @239@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/24

closes #238

Updated by Anonymous about 1 month ago Actions #45

Commit referenced this issue: @239@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/24

closes #238

Updated by Anonymous about 1 month ago Actions #46

Commit referenced this issue: @239@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/24

closes #238

Updated by Anonymous about 1 month ago Actions #47

Commit referenced this issue: @239@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/24

closes #238

Updated by Anonymous about 1 month ago Actions #48

Commit referenced this issue: @239@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/24

closes #238

Updated by Anonymous about 1 month ago Actions #49

Commit referenced this issue: @2aade8be@

https://codeberg.org/Bricklou/kubestro/commit/2aade8bef2919b572d16f30962c46ebe28e42136

feat(dashboard): implement TOTP settings and recovery codes (!24)

Updated by Bricklou about 1 month ago Author Actions #50

  • Status changed from In Progress to In Review

Updated by Bricklou about 1 month ago Author Actions #51

  • Status changed from In Review to Done
Actions

Also available in: PDF Atom