Files
api/api/docs/public/cli.md
Eli Bosley 3b00fec5fd chore: Remove legacy store modules and add new API key and reporting services (#1536)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added developer CLI tools for toggling GraphQL sandbox and modal
testing utilities.
* Introduced a "Show Activation Modal" developer component for UI
testing.
  * Added system initial setup detection and related GraphQL queries.
* Enhanced login and welcome pages with dynamic server info and initial
setup state.
  * Improved SSO button with internationalization and error handling.
* Added internal CLI admin API key management service and internal
GraphQL client service.
* Introduced comprehensive API report generation service for system and
service status.
* Added CLI commands and GraphQL mutations/queries for plugin and SSO
user management.
* Added new modal target components and improved teleport target
detection.

* **Enhancements**
* Refined modal dialog targeting and teleportation for flexible UI
placement.
* Updated modal components and stores for improved activation/welcome
modal control.
  * Improved plugin and SSO user management via CLI through GraphQL API.
* Refactored partner logo components to use props instead of store
dependencies.
  * Enhanced styling and accessibility for buttons and modals.
* Streamlined Tailwind CSS integration with shared styles and updated
theme variables.
* Improved GraphQL module configuration to avoid directive conflicts in
tests.
  * Adjusted Vite config for better dependency handling in test mode.
  * Improved error handling and logging in CLI commands and services.
* Reordered imports and refined component class bindings for UI
consistency.

* **Bug Fixes**
* Resolved issues with duplicate script tags and component registration
in the web UI.
* Fixed modal close button visibility and activation modal state
handling.
* Added error handling and logging improvements across CLI commands and
services.
  * Fixed newline issues in last-download-time fixture files.

* **Chores**
* Added and updated numerous tests for CLI commands, services, and UI
components.
* Updated translation files and localization resources for new UI
messages.
* Adjusted environment, configuration, and dependency files for improved
development and test workflows.
  * Cleaned up unused imports and mocks in tests.
  * Reorganized exports and barrel files in shared and UI modules.
  * Added integration and dependency resolution tests for core modules.

* **Removals & Refactoring**
* Removed legacy Redux state management, configuration, and UPnP logic
from the backend.
* Eliminated deprecated GraphQL subscriptions and client code related to
registration and mothership.
* Removed direct store manipulation and replaced with service-based
approaches in CLI commands.
  * Deleted unused or redundant test files and configuration listeners.
* Refactored SSO user service to consolidate add/remove operations into
a single update method.
* Simplified API key services with new methods for automatic key
management.
* Replaced direct plugin and SSO user service calls with GraphQL client
interactions in CLI commands.
* Removed complex theme fallback and dark mode CSS rules, replacing with
streamlined static theme variables.
* Cleaned up Tailwind CSS configuration and removed deprecated local
styles.
* Removed multiple internal utility files and replaced with simplified
or centralized implementations.
* Removed deprecated local configuration and synchronization files and
listeners.
  * Removed UPnP helper functions and job management classes.
* Refactored server resolver to dynamically construct local server data
internally.
* Removed CORS handler and replaced with simplified or externalized
logic.
* Removed store synchronization and registration event pubsub handling.
* Removed GraphQL client creation utilities for internal API
communication.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-25 15:07:37 -04:00

2.9 KiB

CLI Commands

Start

unraid-api start [--log-level <level>]

Starts the Unraid API service.

Options:

  • --log-level: Set logging level (trace|debug|info|warn|error)

Stop

unraid-api stop [--delete]

Stops the Unraid API service.

  • --delete: Optional. Delete the PM2 home directory

Restart

unraid-api restart

Restarts the Unraid API service.

Logs

unraid-api logs [-l <lines>]

View the API logs.

  • -l, --lines: Optional. Number of lines to tail (default: 100)

Configuration Commands

Config

unraid-api config

Displays current configuration values.

Switch Environment

unraid-api switch-env [-e <environment>]

Switch between production and staging environments.

  • -e, --environment: Optional. Target environment (production|staging)

Developer Mode

unraid-api developer                       # Interactive prompt for tools
unraid-api developer --sandbox true        # Enable GraphQL sandbox
unraid-api developer --sandbox false       # Disable GraphQL sandbox
unraid-api developer --enable-modal        # Enable modal testing tool
unraid-api developer --disable-modal       # Disable modal testing tool

Configure developer features for the API:

  • GraphQL Sandbox: Enable/disable Apollo GraphQL sandbox at /graphql
  • Modal Testing Tool: Enable/disable UI modal testing in the Unraid menu

API Key Management

API Key Commands

unraid-api apikey [options]

Create and manage API keys.

Options:

  • --name <name>: Name of the key
  • --create: Create a new key
  • -r, --roles <roles>: Comma-separated list of roles
  • -p, --permissions <permissions>: Comma-separated list of permissions
  • -d, --description <description>: Description for the key

SSO (Single Sign-On) Management

SSO Base Command

unraid-api sso

Add SSO User

unraid-api sso add-user
# or
unraid-api sso add
# or
unraid-api sso a

Add a new user for SSO authentication.

Remove SSO User

unraid-api sso remove-user
# or
unraid-api sso remove
# or
unraid-api sso r

Remove a user (or all users) from SSO.

List SSO Users

unraid-api sso list-users
# or
unraid-api sso list
# or
unraid-api sso l

List all configured SSO users.

Validate SSO Token

unraid-api sso validate-token <token>
# or
unraid-api sso validate
# or
unraid-api sso v

Validates an SSO token and returns its status.

Report Generation

Generate Report

unraid-api report [-r] [-j]

Generate a system report.

  • -r, --raw: Display raw command output
  • -j, --json: Display output in JSON format

Notes

  1. Most commands require appropriate permissions to modify system state
  2. Some commands require the API to be running or stopped
  3. Store API keys securely as they provide system access
  4. SSO configuration changes may require a service restart