Liking cljdoc? Tell your friends :D

boundary.user.core.mfa

Functional Core - Pure MFA business logic.

This namespace contains ONLY pure functions for MFA:

  • MFA decision logic (when to require MFA)
  • Backup code validation logic
  • MFA setup preparation
  • MFA status evaluation

All functions are pure and deterministic - no I/O operations. TOTP generation and cryptographic operations are handled in the shell layer.

Functional Core - Pure MFA business logic.

This namespace contains ONLY pure functions for MFA:
- MFA decision logic (when to require MFA)
- Backup code validation logic
- MFA setup preparation
- MFA status evaluation

All functions are pure and deterministic - no I/O operations.
TOTP generation and cryptographic operations are handled in the shell layer.
raw docstring

can-disable-mfa?clj

(can-disable-mfa? user)

Pure function: Check if user can disable MFA.

Args: user: User entity

Returns: {:can-disable? boolean :reason optional-string}

Pure - business rule for MFA disablement.

Pure function: Check if user can disable MFA.

Args:
  user: User entity
  
Returns:
  {:can-disable? boolean :reason optional-string}
  
Pure - business rule for MFA disablement.
sourceraw docstring

can-enable-mfa?clj

(can-enable-mfa? user)

Pure function: Check if user can enable MFA.

Args: user: User entity

Returns: {:can-enable? boolean :reason optional-string}

Pure - business rule for MFA enablement.

Pure function: Check if user can enable MFA.

Args:
  user: User entity
  
Returns:
  {:can-enable? boolean :reason optional-string}
  
Pure - business rule for MFA enablement.
sourceraw docstring

count-remaining-backup-codesclj

(count-remaining-backup-codes user)

Pure function: Count remaining unused backup codes.

Args: user: User entity

Returns: Integer count of remaining backup codes

Pure - backup code inventory.

Pure function: Count remaining unused backup codes.

Args:
  user: User entity
  
Returns:
  Integer count of remaining backup codes
  
Pure - backup code inventory.
sourceraw docstring

determine-mfa-requirementclj

(determine-mfa-requirement user password-valid? mfa-code _risk-analysis)

Pure function: Determine MFA requirement for login attempt.

Args: user: User entity password-valid?: Boolean indicating if password was valid mfa-code: Optional MFA code provided risk-analysis: Risk analysis from authentication

Returns: {:requires-mfa? boolean :mfa-verified? boolean-or-pending ; :pending when shell verification needed :allow-login? boolean-or-pending ; :pending when shell verification needed :reason string}

Pure - MFA login flow decision logic.

Pure function: Determine MFA requirement for login attempt.

Args:
  user: User entity
  password-valid?: Boolean indicating if password was valid
  mfa-code: Optional MFA code provided
  risk-analysis: Risk analysis from authentication
  
Returns:
  {:requires-mfa? boolean
   :mfa-verified? boolean-or-pending  ; :pending when shell verification needed
   :allow-login? boolean-or-pending   ; :pending when shell verification needed
   :reason string}
  
 Pure - MFA login flow decision logic.
sourceraw docstring

format-backup-codeclj

(format-backup-code code)

Pure function: Format backup code for display.

Args: code: Raw backup code string

Returns: Formatted backup code string (e.g., 'XXXX-XXXX-XXXX')

Pure - backup code formatting.

Pure function: Format backup code for display.

Args:
  code: Raw backup code string
  
Returns:
  Formatted backup code string (e.g., 'XXXX-XXXX-XXXX')
  
Pure - backup code formatting.
sourceraw docstring

generate-backup-codes-patternclj

(generate-backup-codes-pattern count)

Pure function: Generate pattern for backup codes.

Args: count: Number of backup codes to generate

Returns: Vector of integers representing required code count

Pure - backup code generation template. Actual random generation happens in shell layer.

Pure function: Generate pattern for backup codes.

Args:
  count: Number of backup codes to generate
  
Returns:
  Vector of integers representing required code count
  
Pure - backup code generation template.
Actual random generation happens in shell layer.
sourceraw docstring

get-mfa-statusclj

(get-mfa-status user)

Pure function: Get current MFA status for user.

Args: user: User entity

Returns: {:enabled boolean :enabled-at optional-instant :backup-codes-remaining integer}

Pure - MFA status aggregation.

Pure function: Get current MFA status for user.

Args:
  user: User entity
  
Returns:
  {:enabled boolean
   :enabled-at optional-instant
   :backup-codes-remaining integer}
  
Pure - MFA status aggregation.
sourceraw docstring

is-mfa-setup-complete?clj

(is-mfa-setup-complete? user)

Pure function: Check if MFA setup is complete.

Args: user: User entity

Returns: Boolean - true if MFA is properly set up

Pure - MFA setup completeness check.

Pure function: Check if MFA setup is complete.

Args:
  user: User entity
  
Returns:
  Boolean - true if MFA is properly set up
  
Pure - MFA setup completeness check.
sourceraw docstring

prepare-mfa-disablementclj

(prepare-mfa-disablement _user)

Pure function: Prepare user updates for MFA disablement.

Args: user: User entity

Returns: Map of field updates to apply to user

Pure - data transformation for MFA removal.

Pure function: Prepare user updates for MFA disablement.

Args:
  user: User entity
  
Returns:
  Map of field updates to apply to user
  
 Pure - data transformation for MFA removal.
sourceraw docstring

prepare-mfa-enablementclj

(prepare-mfa-enablement _user mfa-secret backup-codes current-time)

Pure function: Prepare user updates for MFA enablement.

Args: user: User entity mfa-secret: Base32-encoded TOTP secret backup-codes: Vector of backup codes current-time: Current timestamp

Returns: Map of field updates to apply to user

Pure - data transformation for MFA setup.

Pure function: Prepare user updates for MFA enablement.

Args:
  user: User entity
  mfa-secret: Base32-encoded TOTP secret
  backup-codes: Vector of backup codes
  current-time: Current timestamp
  
Returns:
  Map of field updates to apply to user
  
 Pure - data transformation for MFA setup.
sourceraw docstring

should-regenerate-backup-codes?clj

(should-regenerate-backup-codes? user threshold)

Pure function: Determine if backup codes should be regenerated.

Args: user: User entity threshold: Minimum number of backup codes before regeneration alert

Returns: Boolean - true if backup codes should be regenerated

Pure - backup code lifecycle policy.

Pure function: Determine if backup codes should be regenerated.

Args:
  user: User entity
  threshold: Minimum number of backup codes before regeneration alert
  
Returns:
  Boolean - true if backup codes should be regenerated
  
Pure - backup code lifecycle policy.
sourceraw docstring

should-require-mfa?clj

(should-require-mfa? user _risk-analysis)

Pure function: Determine if MFA should be required for login.

Args: user: User entity with MFA settings risk-analysis: Risk analysis from authentication core

Returns: Boolean - true if MFA should be required

Pure - business rule evaluation for MFA requirement.

Pure function: Determine if MFA should be required for login.

Args:
  user: User entity with MFA settings
  risk-analysis: Risk analysis from authentication core
  
Returns:
  Boolean - true if MFA should be required
  
 Pure - business rule evaluation for MFA requirement.
sourceraw docstring

validate-backup-codes-formatclj

(validate-backup-codes-format backup-codes)

Pure function: Validate backup codes have correct format.

Args: backup-codes: Vector of backup codes

Returns: {:valid? boolean :errors [...]}

Pure - backup code format validation.

Pure function: Validate backup codes have correct format.

Args:
  backup-codes: Vector of backup codes
  
Returns:
  {:valid? boolean :errors [...]}
  
Pure - backup code format validation.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close