mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 22:35:08 +00:00
* refactor: remove the skin system Skins never rendered with the current scoreboard plugins: the only hook was SportsCore._render_game in src/base_classes, which no plugin builds on, so the UI and store already treated them as unsupported. The owner decided on 2026-09-23 to remove them outright. Removed src/skin_system/ (runtime, base class, fixtures), skins/, scripts/validate_skin.py and their tests; the store's "type": "skin" installer, uninstaller and hide/refuse filters (the official registry lists no skins); SchemaManager.inject_skin_selector; and GET /api/v3/skins. Stored skin/skin_options config values are handled in the next commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(config): drop retired skin/skin_options keys instead of validating them A config.json written while the skin system existed can carry skin and skin_options in any plugin section, and most plugin schemas set additionalProperties: false. They are no longer core plugin properties; RETIRED_PLUGIN_KEYS in schema_manager lists them and drop_retired_plugin_keys removes them (unless the plugin's own schema declares the name) in prepare_plugin_config, which loading, hot reload, GET /plugins/config and both web saves already share, and in validate_config_against_schema for callers that validate a raw section. POST /plugins/config and /config/main also drop them from the stored section they merge into, so they leave config.json on the next save. Tests cover the load path (real PluginManager.load_plugin: no schema warning, not degraded), raw and prepared validation, validate_all_plugin_configs, and the JSON, form and /config/main saves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * refactor: remove the unused src/base_classes package No scoreboard plugin builds on src.base_classes: the nine monorepo scoreboards ship their own sports.py and share code through src/common (docs/SPORTS_UNIFICATION.md), and none of the third-party registry plugins imports it. The one import anywhere, baseball-scoreboard's rankings_manager.py, is a lazy import of ESPNDataSource in a class nothing instantiates. Removed the package and the eight test files that only tested it (test_api_extractors, test_data_sources, test_sports_base_characterization, test_sports_capabilities, test_sports_core_promotions, test_sports_logo_cache_bounded, test_sports_modes_promotions, test_sports_odds_fanout). test_common_is_hardware_free no longer lists src.base_classes as a forbidden import, and comments in sports_helpers.py and base_odds_manager.py stop pointing at it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: drop the skin system and src/base_classes from the docs Deletes docs/SKIN_SYSTEM.md and docs/CREATING_SKINS.md and every link to them (docs/README.md, README.md, PLUGIN_DEVELOPMENT_GUIDE.md, the /skins section of REST_API_REFERENCE.md), the skin section of CLAUDE.md and the term in PRODUCT.md. SPORTS_UNIFICATION.md now says src/base_classes was removed and shared code lives in src/common, in the Layering section and the view-model-contract rule. Other docs stop pointing at the removed package. CHANGELOG records both removals under Unreleased. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(store): hide and refuse registry entries that aren't plugins The skin filters went with the skin system, but a custom registry can still list "type": "skin" entries, and installing one as a plugin would unpack it into the plugins directory. PluginStoreManager.is_plugin_entry() (a missing type means plugin) now hides non-plugin entries from the store and custom-registry listings, and install refuses them, in the route with a clear 400 and in _install_plugin_impl for any other caller. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
950 lines
14 KiB
JSON
950 lines
14 KiB
JSON
[
|
|
[
|
|
"/api/v3/backup/<path:filename>",
|
|
"api_v3.backup_delete",
|
|
[
|
|
"DELETE",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/backup/download/<path:filename>",
|
|
"api_v3.backup_download",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/backup/export",
|
|
"api_v3.backup_export",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/backup/list",
|
|
"api_v3.backup_list",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/backup/preview",
|
|
"api_v3.backup_preview",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/backup/restore",
|
|
"api_v3.backup_restore",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/backup/validate",
|
|
"api_v3.backup_validate",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/cache/delete",
|
|
"api_v3.delete_cache_file",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/cache/list",
|
|
"api_v3.list_cache_files",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/dim-schedule",
|
|
"api_v3.get_dim_schedule_config",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/dim-schedule",
|
|
"api_v3.save_dim_schedule_config",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/main",
|
|
"api_v3.get_main_config",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/main",
|
|
"api_v3.save_main_config",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/raw/main",
|
|
"api_v3.save_raw_main_config",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/raw/secrets",
|
|
"api_v3.save_raw_secrets_config",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/schedule",
|
|
"api_v3.get_schedule_config",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/schedule",
|
|
"api_v3.save_schedule_config",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/config/secrets",
|
|
"api_v3.get_secrets_config",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/display/current",
|
|
"api_v3.get_display_current",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/display/current-status",
|
|
"api_v3.get_current_display_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/display/modes",
|
|
"api_v3.get_display_modes",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/display/on-demand/start",
|
|
"api_v3.start_on_demand_display",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/display/on-demand/status",
|
|
"api_v3.get_on_demand_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/display/on-demand/stop",
|
|
"api_v3.stop_on_demand_display",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/errors/clear",
|
|
"api_v3.clear_old_errors",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/errors/plugin/<plugin_id>",
|
|
"api_v3.get_plugin_errors",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/errors/summary",
|
|
"api_v3.get_error_summary",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/fonts/<font_family>",
|
|
"api_v3.delete_font",
|
|
[
|
|
"DELETE",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/fonts/catalog",
|
|
"api_v3.get_fonts_catalog",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/fonts/preview",
|
|
"api_v3.get_font_preview",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/fonts/tokens",
|
|
"api_v3.get_font_tokens",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/fonts/upload",
|
|
"api_v3.upload_font",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/hardware/status",
|
|
"api_v3.get_hardware_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/health",
|
|
"api_v3.get_health",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/integrations/mqtt-bridge",
|
|
"api_v3.get_mqtt_bridge",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/integrations/mqtt-bridge/config",
|
|
"api_v3.update_mqtt_bridge_config",
|
|
[
|
|
"OPTIONS",
|
|
"PUT"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/logs",
|
|
"api_v3.get_logs",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/<plugin_id>/static/<path:file_path>",
|
|
"api_v3.serve_plugin_static",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/action",
|
|
"api_v3.execute_plugin_action",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/assets/delete",
|
|
"api_v3.delete_plugin_asset",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/assets/list",
|
|
"api_v3.list_plugin_assets",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/assets/upload",
|
|
"api_v3.upload_plugin_asset",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/calendar/authenticate",
|
|
"api_v3.authenticate_calendar",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/calendar/list-calendars",
|
|
"api_v3.list_calendar_calendars",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/calendar/upload-credentials",
|
|
"api_v3.upload_calendar_credentials",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/config",
|
|
"api_v3.get_plugin_config",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/config",
|
|
"api_v3.save_plugin_config",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/config/reset",
|
|
"api_v3.reset_plugin_config",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/health",
|
|
"api_v3.get_plugin_health",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/health/<plugin_id>",
|
|
"api_v3.get_plugin_health_single",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/health/<plugin_id>/reset",
|
|
"api_v3.reset_plugin_health",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/install",
|
|
"api_v3.install_plugin",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/install-from-url",
|
|
"api_v3.install_plugin_from_url",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/installed",
|
|
"api_v3.get_installed_plugins",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/limits/<plugin_id>",
|
|
"api_v3.manage_plugin_limits",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/metrics",
|
|
"api_v3.get_plugin_metrics",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/metrics/<plugin_id>",
|
|
"api_v3.get_plugin_metrics_single",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/metrics/<plugin_id>/reset",
|
|
"api_v3.reset_plugin_metrics",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/operation/<operation_id>",
|
|
"api_v3.get_operation_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/operation/history",
|
|
"api_v3.clear_operation_history",
|
|
[
|
|
"DELETE",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/operation/history",
|
|
"api_v3.get_operation_history",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/reconciliation-status",
|
|
"api_v3.get_reconciliation_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/registry-from-url",
|
|
"api_v3.get_registry_from_url",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/saved-repositories",
|
|
"api_v3.add_saved_repository",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/saved-repositories",
|
|
"api_v3.get_saved_repositories",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/saved-repositories",
|
|
"api_v3.remove_saved_repository",
|
|
[
|
|
"DELETE",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/schema",
|
|
"api_v3.get_plugin_schema",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/state",
|
|
"api_v3.get_plugin_state",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/state/reconcile",
|
|
"api_v3.reconcile_plugin_state",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/store/github-status",
|
|
"api_v3.get_github_auth_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/store/list",
|
|
"api_v3.list_plugin_store",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/store/refresh",
|
|
"api_v3.refresh_plugin_store",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/toggle",
|
|
"api_v3.toggle_plugin",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/uninstall",
|
|
"api_v3.uninstall_plugin",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/plugins/update",
|
|
"api_v3.update_plugin",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/apps",
|
|
"api_v3.get_starlark_apps",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/apps/<app_id>",
|
|
"api_v3.get_starlark_app",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/apps/<app_id>",
|
|
"api_v3.uninstall_starlark_app",
|
|
[
|
|
"DELETE",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/apps/<app_id>/config",
|
|
"api_v3.get_starlark_app_config",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/apps/<app_id>/config",
|
|
"api_v3.update_starlark_app_config",
|
|
[
|
|
"OPTIONS",
|
|
"PUT"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/apps/<app_id>/render",
|
|
"api_v3.render_starlark_app",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/apps/<app_id>/toggle",
|
|
"api_v3.toggle_starlark_app",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/editor/apps",
|
|
"api_v3.list_pixlet_editor_apps",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/editor/start",
|
|
"api_v3.start_pixlet_editor",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/editor/status",
|
|
"api_v3.get_pixlet_editor_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/editor/stop",
|
|
"api_v3.stop_pixlet_editor",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/install-pixlet",
|
|
"api_v3.install_pixlet",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/repository/browse",
|
|
"api_v3.browse_tronbyte_repository",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/repository/categories",
|
|
"api_v3.get_tronbyte_categories",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/repository/install",
|
|
"api_v3.install_from_tronbyte_repository",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/status",
|
|
"api_v3.get_starlark_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/starlark/upload",
|
|
"api_v3.upload_starlark_app",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/sync/status",
|
|
"api_v3.get_sync_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/system/action",
|
|
"api_v3.execute_system_action",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/system/auto-update",
|
|
"api_v3.get_auto_update_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/system/auto-update/dismiss",
|
|
"api_v3.dismiss_auto_update_alert",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/system/check-update",
|
|
"api_v3.check_for_update",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/system/git-branches",
|
|
"api_v3.get_git_branches",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/system/git-info",
|
|
"api_v3.get_git_info",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/system/status",
|
|
"api_v3.get_system_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/system/version",
|
|
"api_v3.get_system_version",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/ap/auto-enable",
|
|
"api_v3.get_auto_enable_ap_mode",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/ap/auto-enable",
|
|
"api_v3.set_auto_enable_ap_mode",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/ap/disable",
|
|
"api_v3.disable_ap_mode",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/ap/enable",
|
|
"api_v3.enable_ap_mode",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/connect",
|
|
"api_v3.connect_wifi",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/disconnect",
|
|
"api_v3.disconnect_wifi",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/radio",
|
|
"api_v3.get_wifi_radio",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/radio",
|
|
"api_v3.set_wifi_radio",
|
|
[
|
|
"OPTIONS",
|
|
"POST"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/scan",
|
|
"api_v3.scan_wifi_networks",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
],
|
|
[
|
|
"/api/v3/wifi/status",
|
|
"api_v3.get_wifi_status",
|
|
[
|
|
"GET",
|
|
"HEAD",
|
|
"OPTIONS"
|
|
]
|
|
]
|
|
]
|