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 Modulesettings contacts: Manages your app's settings in the Contacts Graphsettings notifications: Manages your app's settings in the Notification Enginesettings 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]
- Usage:
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.
- Usage:
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 deviceinstallationIds.
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]
- Usage:
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.
- Usage:
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]
- Usage:
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.--weekly: Rotate the game types weekly. Each week one game type (ingameTypesorder, changing at midnight Sunday, Arizona time) has the weekly leaderboard, and AI players play it. Leave it off when the game has no weekly mode; AI players then play only challenges and campaign levels.--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:0to3).--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 completeslowest: Maximum allowed/expected seconds to complete
--leader-board-titles JSON: Set titles for leaderboards. Matches a JSON key-value map fromLeaderBoardTypeto 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 fromGameTypeto multiplier value.--custom-game-types JSON: JSON object representing custom game types mapped to their base game types. Matches a JSON key-value map from custom identifier string to base game type (TimedorRounds). E.g.,{"QUIZ":"Rounds","PUZZLE":"Timed"}.
- Usage:
Examples
Retrieve Games Settings (TTY Layout)
$ milesoft settings games get
=========================================================================
Games Settings
=========================================================================
Base URL: https://sudoku.milesoft.io
Campaign: false
Best: false
Median: false
Weekly: false
Num Tasks Allowed Per Day: 0
Max Campaign Level: 0
Min Stars: 0
Challenge Type:
Game Types: []
Custom Game Types: map[]
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,
"weekly": false,
"numTasksAllowedPerDay": 0,
"maxCampaignLevel": 0,
"minStars": 0,
"challengeType": "",
"gameTypes": [],
"customGameTypes": {},
"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
Weekly: false
Num Tasks Allowed Per Day: 0
Max Campaign Level: 50
Min Stars: 0
Challenge Type:
Game Types: [Timed]
Custom Game Types: map[]
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}'
# Register custom game types mapped to base types
$ milesoft settings games set --custom-game-types '{"QUIZ":"Rounds","PUZZLE":"Timed"}'
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]
- Usage:
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.
- Usage:
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
=========================================================================