mirror of
https://github.com/unraid/api.git
synced 2025-12-21 08:39:38 -06:00
separates Unraid Connect from the API ## Summary by CodeRabbit - **New Features** - Introduced a unified, JSON-schema-based settings system for API configuration and plugin settings, accessible via new GraphQL queries and mutations. - Added modular NestJS plugin architecture for Unraid Connect, including new modules for cloud, remote access, and system/network management. - Added granular connection and remote access state tracking, with new GraphQL types and resolvers for cloud and connection status. - Implemented event-driven and service-based management for SSO users, API keys, and dynamic remote access. - Enhanced UI components and queries to support unified settings and restart detection. - **Improvements** - Refactored configuration and state management to use service-based patterns, replacing direct store access and Redux logic. - Migrated legacy config files to new JSON formats with validation and persistence helpers. - Centralized global dependencies and shared services for plugins and CLI modules. - Improved logging, error handling, and lifecycle management for connections and background jobs. - Updated and expanded documentation for plugin development and settings management. - **Bug Fixes** - Improved handling of missing config files and ensured safe persistence. - Enhanced error reporting and validation in remote access and connection services. - **Removals** - Removed deprecated Redux slices, listeners, and legacy cloud/remote access logic. - Deleted obsolete test files, scripts, and unused code related to the old state/store approach. - **Tests** - Added new unit tests for settings merging, URL resolution, and cloud connectivity checks. - **Style** - Applied consistent formatting, import reorganization, and code style improvements across modules. - **Chores** - Updated build scripts, Dockerfiles, and development environment setup to support new dependencies and workflows. - Expanded .gitignore and configuration files for improved build artifact management.
51 lines
1.4 KiB
Nix
51 lines
1.4 KiB
Nix
{
|
||
description = "Unraid Connect Monorepo Development Environment";
|
||
|
||
inputs = {
|
||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||
flake-utils.url = "github:numtide/flake-utils";
|
||
};
|
||
|
||
outputs = { self, nixpkgs, flake-utils }:
|
||
flake-utils.lib.eachDefaultSystem (system:
|
||
let
|
||
pkgs = nixpkgs.legacyPackages.${system};
|
||
in
|
||
{
|
||
devShells.default = pkgs.mkShell {
|
||
buildInputs = with pkgs; [
|
||
# Node.js and pnpm
|
||
nodejs_22
|
||
nodePackages.pnpm
|
||
|
||
# Development tools
|
||
just
|
||
git
|
||
|
||
# libvirt (for development)
|
||
libvirt
|
||
|
||
# Docker (for development)
|
||
docker
|
||
|
||
# rclone (for development)
|
||
rclone
|
||
];
|
||
|
||
shellHook = ''
|
||
echo "🚀 Unraid API Development Environment"
|
||
echo ""
|
||
echo "✔︎ BASH version: $BASH_VERSION"
|
||
echo "✔︎ Node.js version: $(node --version)"
|
||
echo "✔︎ pnpm version: $(pnpm --version)"
|
||
echo "✔︎ just version: $(just --version)"
|
||
echo "✔︎ git version: $(git --version)"
|
||
echo "✔︎ docker version: $(docker --version)"
|
||
echo "✔︎ libvirt version: $(virsh --version)"
|
||
echo "✔︎ rclone version: $(rclone --version | head -1)"
|
||
echo ""
|
||
'';
|
||
};
|
||
}
|
||
);
|
||
} |