milesoft settings

Manage system configurations and settings buckets under settings.

The Milesoft CLI allows you to view and modify settings buckets for the active application context:

  • settings app: Manages your app's settings in the Identity Module
  • settings contacts: Manages your app's settings in the Contacts Graph
  • settings notifications: Manages your app's settings in the Notification Engine
  • settings games: Manages your app's settings in the Games Engine

milesoft settings app

Retrieve and update configuration settings associated with the current active application in the Identity Module.

  • get (Retrieve current application settings)
    • Usage: milesoft settings app get [flags]
  • set (Update application's configuration fields; only provided flags will be updated)
    • Usage: milesoft settings app set [flags]
    • Sub-flags:
      • --logo-url string: New logo image URL for the app.
      • --title string: New title for the app.
      • --url string: New URL for the app.
      • --version-major int: Major version number.
      • --version-minor int: Minor version number.
      • --version-patch int: Patch version number.
      • --welcome-admin string: Welcome message for admin users.
      • --welcome-user string: Welcome message for regular users.
      • --add-role stringSlice: Custom role identifiers to add to the application.
      • --remove-role stringSlice: Custom role identifiers to remove from the application.
      • --add-redacted-field stringSlice: Profile or user fields to hide or sanitize from client outputs.
      • --remove-redacted-field stringSlice: Profile or user fields to remove from redacting.
      • --add-redacted-setting stringSlice: Configuration setting keys to obscure or mask in standard outputs.
      • --remove-redacted-setting stringSlice: Configuration setting keys to remove from obscuring.
Application Types

The application type defines its multi-tenancy model:

  • MultiTenant: Supports multiple independent tenant accounts; users can belong to one or more accounts.
  • SingleTenant: Restricted to a single tenant account; all users must belong to that account.
  • MobileOnly: Restricted to a single account; user sessions are bound directly to mobile device installationIds.
Examples
Retrieve Current Application Settings (TTY Layout)
$ milesoft settings app get
=========================================================================
             Current App
=========================================================================
App ID:            app-xyz-prod
Name:              Main Developer Suite
URL:               https://admin.milesoft.io
Logo URL:          https://milesoft.io/logo.png
Type:              MultiTenant
Welcome Admin:     Welcome, Administrator!
Welcome User:      Welcome to our application!
Redacted Fields:   [ssn passwordHash]
Redacted Settings: [stripeApiKey jwtSecret]
Roles:             [admin user manager]
Version:           1.2.3
Created:           2026-07-10T12:00:00Z
Updated:           2026-07-15T14:30:00Z
=========================================================================
Retrieve Current Application Settings as JSON
$ milesoft settings app get --json

JSON Schema Result:

{
  "id": "app-xyz-prod",
  "title": "Main Developer Suite",
  "url": "https://admin.milesoft.io",
  "logoUrl": "https://milesoft.io/logo.png",
  "type": "MultiTenant",
  "version": {
    "major": 1,
    "minor": 2,
    "patch": 3
  },
  "welcomeAdmin": "Welcome, Administrator!",
  "welcomeUser": "Welcome to our application!",
  "redactedFields": [
    "ssn",
    "passwordHash"
  ],
  "redactedSettings": [
    "stripeApiKey",
    "jwtSecret"
  ],
  "roles": [
    "admin",
    "user",
    "manager"
  ],
  "created": "2026-07-10T12:00:00Z",
  "updated": "2026-07-15T14:30:00Z"
}
Extract a Single Field Value (e.g. Title)
$ milesoft settings app get --field title
Main Developer Suite
Update Application Settings (TTY Layout)
$ milesoft settings app set --title "My Suite Portal" --version-major 2 --add-role supervisor --add-redacted-field externalId
=========================================================================
             Updated App
=========================================================================
App ID:            app-xyz-prod
Name:              My Suite Portal
URL:               https://admin.milesoft.io
Logo URL:          https://milesoft.io/logo.png
Type:              MultiTenant
Welcome Admin:     Welcome, Administrator!
Welcome User:      Welcome to our application!
Redacted Fields:   [ssn passwordHash externalId]
Redacted Settings: [stripeApiKey jwtSecret]
Roles:             [admin user manager supervisor]
Version:           2.2.3
Created:           2026-07-10T12:00:00Z
Updated:           2026-07-17T15:30:00Z
=========================================================================

milesoft settings contacts

Retrieve and update configuration settings associated with contacts graph ownership in the Contacts Graph.

  • get (Retrieve current contacts settings)
    • Usage: milesoft settings contacts get [flags]
  • set (Update contacts configuration fields; only provided flags will be updated)
    • Usage: milesoft settings contacts set [flags]
    • Sub-flags:
      • --graph-owned-by-user: Whether the contacts graph is owned by the user.
Examples
Retrieve Contacts Settings (TTY Layout)
$ milesoft settings contacts get
=========================================================================
             Contacts Settings
=========================================================================
Graph Owned By User: false
Created:             2026-07-10T12:00:00Z
Updated:             2026-07-15T14:30:00Z
=========================================================================
Retrieve Contacts Settings as JSON
$ milesoft settings contacts get --json

JSON Schema Result:

{
  "graphOwnedByUser": false,
  "created": "2026-07-10T12:00:00Z",
  "updated": "2026-07-15T14:30:00Z"
}
Toggle Contacts Graph Ownership (TTY Layout)
$ milesoft settings contacts set --graph-owned-by-user=true
=========================================================================
             Updated Contacts Settings
=========================================================================
Graph Owned By User: true
Created:             2026-07-10T12:00:00Z
Updated:             2026-07-17T15:30:00Z
=========================================================================

milesoft settings games

Retrieve and update configuration settings associated with the games module in the Games Engine.

  • get (Retrieve current games settings)
    • Usage: milesoft settings games get [flags]
  • set (Update games configuration fields; only provided flags will be updated)
    • Usage: milesoft settings games set [flags]
    • Sub-flags:
      • --base-url string: Base URL of the games module.
      • --campaign: Enable campaign mode.
      • --best: Enable best score tracking.
      • --median: Enable median score tracking.
      • --num-tasks-allowed-per-day int: Number of tasks allowed per day.
      • --max-campaign-level int: Max campaign level.
      • --min-stars int: Min stars (range: 0 to 3).
      • --weekly-game-type string: Weekly game type (options: Timed, Rounds).
      • --challenge-type string: Challenge game type (options: Timed, Rounds).
      • --add-game-type stringSlice: Game types to add to the tenant (options: Timed, Rounds).
      • --remove-game-type stringSlice: Game types to remove from the tenant.
      • --add-difficulty stringSlice: Difficulties to add to the tenant (options: Quick, Easy, Medium, Hard, Advanced, Insane).
      • --remove-difficulty stringSlice: Difficulties to remove from the tenant.
      • --leaderboard-reward JSON: Set or update rewards for a leaderboard rank. Matches a single JSON object containing:
        • type: Leaderboard type (CampaignBest, TimedBest, TimedMedian, RoundsBest, RoundsMedian)
        • rank: Leaderboard rank (Gold, Silver, Bronze)
        • rewards: Sibling key-value map of items to reward (e.g. {"coins": 100, "gems": 5})
      • --seconds-range JSON: Set or update seconds ranges of expected completion times. Matches a single JSON object containing:
        • skill: Skill identifier (Novice, Intermediate, Expert, Master)
        • difficulty: Difficulty identifier (Quick, Easy, Medium, Hard, Advanced, Insane)
        • fastest: Minimum ideal seconds to complete
        • slowest: Maximum allowed/expected seconds to complete
      • --leader-board-titles JSON: Set titles for leaderboards. Matches a JSON key-value map from LeaderBoardType to Title string.
      • --technology-titles JSON: Set titles for technologies. Matches a JSON key-value map from identifier string to Title string.
      • --seconds-multipliers JSON: Set multipliers of seconds ranges per game type. Matches a JSON key-value map from GameType to multiplier value.
Examples
Retrieve Games Settings (TTY Layout)
$ milesoft settings games get
=========================================================================
             Games Settings
=========================================================================
Base URL:                  https://sudoku.milesoft.io
Campaign:                  false
Best:                      false
Median:                    false
Num Tasks Allowed Per Day: 0
Max Campaign Level:        0
Min Stars:                 0
Weekly Game Type:          
Challenge Type:            
Game Types:                []
Difficulties:              []
Leader Board Titles:       map[]
Leader Board Rewards:      map[]
Technology Titles:         map[]
Seconds Ranges:            map[]
Seconds Multipliers:       map[]
Created:                   2026-07-10T12:00:00Z
Updated:                   2026-07-15T14:30:00Z
=========================================================================
Retrieve Games Settings as JSON
$ milesoft settings games get --json

JSON Schema Result:

{
  "baseUrl": "https://sudoku.milesoft.io",
  "campaign": false,
  "best": false,
  "median": false,
  "numTasksAllowedPerDay": 0,
  "maxCampaignLevel": 0,
  "minStars": 0,
  "weeklyGameType": "",
  "challengeType": "",
  "gameTypes": [],
  "difficulties": [],
  "leaderBoardTitles": {},
  "leaderBoardRewards": {},
  "technologyTitles": {},
  "secondsRanges": {},
  "secondsMultipliers": {},
  "created": "2026-07-10T12:00:00Z",
  "updated": "2026-07-15T14:30:00Z"
}
Configure New Game Settings (TTY Layout)
$ milesoft settings games set --campaign=true --max-campaign-level 50 --add-game-type Timed --add-difficulty Easy --add-difficulty Medium
=========================================================================
             Updated Games Settings
=========================================================================
Base URL:                  https://sudoku.milesoft.io
Campaign:                  true
Best:                      false
Median:                    false
Num Tasks Allowed Per Day: 0
Max Campaign Level:        50
Min Stars:                 0
Weekly Game Type:          
Challenge Type:            
Game Types:                [Timed]
Difficulties:              [Easy Medium]
Leader Board Titles:       map[]
Leader Board Rewards:      map[]
Technology Titles:         map[]
Seconds Ranges:            map[]
Seconds Multipliers:       map[]
Created:                   2026-07-10T12:00:00Z
Updated:                   2026-07-17T15:30:00Z
=========================================================================
Set Advanced Configurations Using JSON Flags

You can configure complex mapping structures like leaderboard rewards, titles, multipliers, and expected solving speed constraints using structured JSON values.

# Set a custom Leaderboard Title
$ milesoft settings games set --leader-board-titles '{"TimedBest":"Fastest Solvers"}'

# Configure rewards for Gold Rank (1st-3rd place) in the TimedBest Leaderboard
$ milesoft settings games set --leaderboard-reward '{"type":"TimedBest","rank":"Gold","rewards":{"coins":100,"gems":10}}'

# Set seconds completion speed constraints for Novice Easy games
$ milesoft settings games set --seconds-range '{"skill":"Novice","difficulty":"Easy","fastest":20,"slowest":180}'

# Set speed multipliers for Rounds game type
$ milesoft settings games set --seconds-multipliers '{"Rounds":1.5}'

milesoft settings notifications

Retrieve and update configuration settings associated with notification delivery in the Notification Engine.

  • get (Retrieve current notification delivery settings)
    • Usage: milesoft settings notifications get [flags]
  • set (Update notification configuration fields; only provided flags will be updated)
    • Usage: milesoft settings notifications set [flags]
    • Sub-flags:
      • --auth-json string: Service account service key JSON credentials.
      • --method string: Notification delivery method (None, Mobile, App, Email).
      • --project-id string: Google Cloud Project ID.
      • --sendgrid-from string: SendGrid sender email address.
      • --sendgrid-api-key string: SendGrid API key credential.
      • --twilio-from string: Twilio sender phone number.
      • --twilio-sid string: Twilio Account SID credential.
      • --twilio-token string: Twilio Auth Token credential.
Examples
Retrieve Notification Settings (TTY Layout)
$ milesoft settings notifications get
=========================================================================
             Notification Settings
=========================================================================
Method:            None
Project ID:        
Auth JSON:         
SendGrid From:     
SendGrid API Key:  
Twilio From:       
Twilio SID:        
Twilio Token:      
Created:           2026-07-10T12:00:00Z
Updated:           2026-07-15T14:30:00Z
=========================================================================
Retrieve Notification Settings as JSON
$ milesoft settings notifications get --json

JSON Schema Result:

{
  "method": "None",
  "projectId": "",
  "authJson": "",
  "sendGridFrom": "",
  "sendGridApiKey": "",
  "twilioFrom": "",
  "twilioSid": "",
  "twilioToken": "",
  "created": "2026-07-10T12:00:00Z",
  "updated": "2026-07-15T14:30:00Z"
}
Update Notification Settings (TTY Layout)
$ milesoft settings notifications set --method Email --project-id my-gcp-project --sendgrid-from info@milesoft.io --sendgrid-api-key sg_key_secret
=========================================================================
             Updated Notification Settings
=========================================================================
Method:            Email
Project ID:        my-gcp-project
Auth JSON:         
SendGrid From:     info@milesoft.io
SendGrid API Key:  sg_key_secret
Twilio From:       
Twilio SID:        
Twilio Token:      
Created:           2026-07-10T12:00:00Z
Updated:           2026-07-17T15:30:00Z
=========================================================================