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.--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).--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 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.
- 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
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]
- 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
=========================================================================