fix: replace files lost during pruning

This commit is contained in:
Pujit Mehrotra
2025-03-27 15:47:29 -04:00
parent 9f492bf217
commit d0d2ff65ed
53 changed files with 994 additions and 0 deletions

5
api/.gqlconfig Normal file
View File

@@ -0,0 +1,5 @@
{
schema: {
files: 'src/graphql/schema/types/**/*.graphql'
}
}

11
api/.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"recommendations": [
"mikestead.dotenv",
"eamodio.gitlens",
"dbaeumer.vscode-eslint",
"antfu.goto-alias",
"bierner.markdown-mermaid",
"github.vscode-pull-request-github",
"bierner.markdown-preview-github-styles"
]
}

View File

@@ -0,0 +1 @@
┘[5╢╦О яb┴ ю└;R╛леЩ²ДА├y÷шd│яя╛Еlя▓ё"Hи╜ь;QДs≈@Вы▄╠╩1·Qy╓к|й╔+╨фM)X9jя▄тГО⌠1а2WHщ'│.ЕJё-╨MPгS╜╧:Ю▓]o9^ЮО0┴$"░ l^`╪ >3к:╦я ЯО┤q~ёш≈└с ш5ёЗ=р╟─]╗IWf╥и ⌡?:У2ВоE5[р╨Ш(÷╤Е+о│ШIмAч²%╞╓дq:ё╤эb╣┼

1
api/dev/data/machine-id Normal file
View File

@@ -0,0 +1 @@
d0b5433294c110f1eed72bdb63910a9a

View File

@@ -0,0 +1 @@
version="6.12.0-beta5"

BIN
api/dev/dynamix/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -0,0 +1 @@
case-model.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

0
api/dev/states/devs.ini Normal file
View File

View File

@@ -0,0 +1,30 @@
[eth0]
DHCP_KEEPRESOLV="no"
DNS_SERVER1="1.1.1.1"
DNS_SERVER2="8.8.8.8"
DHCP6_KEEPRESOLV="no"
BONDING="yes"
BONDNAME=""
BONDNICS="eth0,eth1,eth2,eth3"
BONDING_MODE="1"
BONDING_MIIMON="100"
BRIDGING="yes"
BRNAME=""
BRNICS="bond0"
BRSTP="0"
BRFD="0"
DESCRIPTION:0=""
PROTOCOL:0=""
USE_DHCP:0="yes"
IPADDR:0="192.168.1.150"
NETMASK:0="255.255.255.0"
GATEWAY:0="192.168.1.1"
METRIC:0=""
USE_DHCP6:0=""
IPADDR6:0=""
NETMASK6:0=""
GATEWAY6:0=""
METRIC6:0=""
PRIVACY6:0=""
MTU=""
TYPE="access"

190
api/dev/states/sec.ini Normal file
View File

@@ -0,0 +1,190 @@
["disk1"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk2"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk3"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk4"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk5"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk6"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk7"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk8"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk9"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk10"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk11"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk12"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk13"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk14"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk15"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk16"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk17"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk18"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk19"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk20"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk21"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk22"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["abc"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["flash"]
export="e"
fruit="no"
security="public"
readList=""
writeList=""

View File

@@ -0,0 +1,92 @@
["disk1"]
export="-"
security="public"
hostList=""
["disk2"]
export="-"
security="public"
hostList=""
["disk3"]
export="-"
security="public"
hostList=""
["disk4"]
export="-"
security="public"
hostList=""
["disk5"]
export="-"
security="public"
hostList=""
["disk6"]
export="-"
security="public"
hostList=""
["disk7"]
export="-"
security="public"
hostList=""
["disk8"]
export="-"
security="public"
hostList=""
["disk9"]
export="-"
security="public"
hostList=""
["disk10"]
export="-"
security="public"
hostList=""
["disk11"]
export="-"
security="public"
hostList=""
["disk12"]
export="-"
security="public"
hostList=""
["disk13"]
export="-"
security="public"
hostList=""
["disk14"]
export="-"
security="public"
hostList=""
["disk15"]
export="-"
security="public"
hostList=""
["disk16"]
export="-"
security="public"
hostList=""
["disk17"]
export="-"
security="public"
hostList=""
["disk18"]
export="-"
security="public"
hostList=""
["disk19"]
export="-"
security="public"
hostList=""
["disk20"]
export="-"
security="public"
hostList=""
["disk21"]
export="-"
security="public"
hostList=""
["disk22"]
export="-"
security="public"
hostList=""
["abc"]
export="-"
security="public"
hostList=""

68
api/dev/states/shares.ini Normal file
View File

@@ -0,0 +1,68 @@
["appdata"]
name="appdata"
nameOrig="appdata"
comment=""
allocator="highwater"
splitLevel=""
floor="0"
include=""
exclude=""
useCache="no"
cachePool="cache"
cow="auto"
color="yellow-on"
size="0"
free="9091184"
used="32831348"
luksStatus="0"
["domains"]
name="domains"
nameOrig="domains"
comment="saved VM instances"
allocator="highwater"
splitLevel="1"
floor="0"
include=""
exclude=""
useCache="prefer"
cachePool="cache"
cow="auto"
color="yellow-on"
size="0"
free="9091184"
used="32831348"
luksStatus="0"
["isos"]
name="isos"
nameOrig="isos"
comment="ISO images"
allocator="highwater"
splitLevel=""
floor="0"
include=""
exclude=""
useCache="yes"
cachePool="cache"
cow="auto"
color="yellow-on"
size="0"
free="9091184"
used="32831348"
luksStatus="0"
["system"]
name="system"
nameOrig="system"
comment="system data"
allocator="highwater"
splitLevel="1"
floor="0"
include=""
exclude=""
useCache="prefer"
cachePool="cache"
cow="auto"
color="yellow-on"
size="0"
free="9091184"
used="32831348"
luksStatus="0"

15
api/dev/states/users.ini Normal file
View File

@@ -0,0 +1,15 @@
["root"]
idx="0"
name="root"
desc="Console and webGui login account"
passwd="yes"
["xo"]
idx="1"
name="xo"
desc=""
passwd="yes"
["test_user"]
idx="2"
name="test_user"
desc=""
passwd="no"

View File

@@ -0,0 +1,3 @@
import { test } from 'vitest';
test.todo('Returns generated data');

View File

@@ -0,0 +1,5 @@
import { test } from 'vitest';
test.todo('Adds a disk to the array');
test.todo('Fails to add the disk if the array is started');

View File

@@ -0,0 +1,5 @@
import { test } from 'vitest';
test.todo('Removes a disk from the array');
test.todo('Fails to remove the disk if the array is started');

View File

@@ -0,0 +1,5 @@
import { test } from 'vitest';
test.todo('Starts the array');
test.todo('Stops the array');

View File

@@ -0,0 +1,7 @@
import { test } from 'vitest';
test.todo('Can start a parity check');
test.todo('Can pause a parity check');
test.todo('Can start a parity check');

View File

@@ -0,0 +1,3 @@
import { test } from 'vitest';
test.todo('Returns the current content');

View File

@@ -0,0 +1,5 @@
import { test } from 'vitest';
test.todo('Returns a single disk by ID');
test.todo('Returns nothing if no disk matches the ID');

View File

@@ -0,0 +1,5 @@
import { test } from 'vitest';
test.todo('Returns all the Docker containers');
test.todo('Returns running Docker containers');

View File

@@ -0,0 +1,7 @@
import { test } from 'vitest';
test.todo('Returns all USB devices');
test.todo('Returns all PCI-e devices');
test.todo('Returns all audio devices');

View File

@@ -0,0 +1,3 @@
import { test } from 'vitest';
test.todo('Gets total count of Docker containers installed/running');

View File

@@ -0,0 +1,3 @@
import { test } from 'vitest';
test.todo('Returns baseboard info');

View File

@@ -0,0 +1,3 @@
import { test } from 'vitest';
test.todo('Gets CPU info');

View File

@@ -0,0 +1,3 @@
import { test } from 'vitest';
test.todo('Sleeps atomically for n milliseconds');

View File

@@ -0,0 +1,3 @@
import { test } from 'vitest';
test.todo('Returns machine-id');

View File

@@ -0,0 +1,2 @@
export type Device = Record<string, unknown>;
export type Devices = Array<Record<string, unknown>>;

View File

@@ -0,0 +1,3 @@
import { extname } from 'path';
export const getExtensionFromPath = (filePath: string): string => extname(filePath);

View File

@@ -0,0 +1,43 @@
type ApiKeyResponse {
valid: Boolean!
error: String
}
enum MinigraphStatus {
PRE_INIT
CONNECTING
CONNECTED
PING_FAILURE
ERROR_RETRYING
}
type MinigraphqlResponse {
status: MinigraphStatus!
timeout: Int
error: String
}
type CloudResponse {
status: String!
ip: String
error: String
}
type RelayResponse {
status: String!
timeout: String
error: String
}
type Cloud {
error: String
apiKey: ApiKeyResponse!
relay: RelayResponse
minigraphql: MinigraphqlResponse!
cloud: CloudResponse!
allowedOrigins: [String!]!
}
type Query {
cloud: Cloud
}

View File

@@ -0,0 +1,60 @@
type Query {
"""All Docker containers"""
dockerContainers(all: Boolean): [DockerContainer!]!
}
type Subscription {
dockerContainer(id: ID!): DockerContainer!
dockerContainers: [DockerContainer]
}
enum ContainerPortType {
TCP
UDP
}
type ContainerPort {
ip: String
privatePort: Int
publicPort: Int
type: ContainerPortType
}
enum ContainerState {
RUNNING
EXITED
}
type ContainerHostConfig {
networkMode: String!
}
type ContainerMount {
type: String!
name: String!
source: String!
destination: String!
driver: String!
mode: String!
rw: Boolean!
propagation: String!
}
type DockerContainer {
id: ID!
names: [String!]
image: String!
imageId: String!
command: String!
created: Int!
ports: [ContainerPort!]!
""" (B) Total size of all the files in the container """
sizeRootFs: Long
labels: JSON
state: ContainerState!
status: String!
hostConfig: ContainerHostConfig
networkSettings: JSON
mounts: [JSON]
autoStart: Boolean!
}

View File

@@ -0,0 +1,13 @@
type Query {
flash: Flash
}
type Subscription {
flash: Flash!
}
type Flash {
guid: String
vendor: String
product: String
}

View File

@@ -0,0 +1,11 @@
type Info {
"""Count of docker containers"""
apps: InfoApps
}
type InfoApps {
"""How many docker containers are installed"""
installed: Int
"""How many docker containers are running"""
started: Int
}

View File

@@ -0,0 +1,14 @@
type Info {
baseboard: Baseboard
}
type Baseboard {
# Dell Inc.
manufacturer: String!
# 0MD99X
model: String
# A07
version: String
serial: String
assetTag: String
}

View File

@@ -0,0 +1,39 @@
type Info {
cpu: InfoCpu
}
type InfoCpu {
# 'Intel®'
manufacturer: String!
# 'Xeon® L5640'
brand: String!
# 'GenuineIntel'
vendor: String!
# '6'
family: String!
# '44'
model: String!
# '2'
stepping: Int!
# ''
revision: String!
# ''
voltage: String
# '2.27'
speed: Float!
# '1.60'
speedmin: Float!
# '2.26'
speedmax: Float!
# 12
threads: Int!
# 6
cores: Int!
# 1
processors: Long!
# 'LGA1366'
socket: String!
# { l1d: 196608, l1i: 196608, l2: 1, l3: 12 }
cache: JSON!
flags: [String!]
}

View File

@@ -0,0 +1,52 @@
type Info {
devices: Devices
}
type Devices {
gpu: [Gpu]
network: [Network]
pci: [Pci]
usb: [Usb]
}
type Gpu {
id: ID!
type: String!
typeid: String!
vendorname: String!
productid: String!
blacklisted: Boolean!
class: String!
}
type Network {
iface: String
ifaceName: String
ipv4: String
ipv6: String
mac: String
internal: String
operstate: String
type: String
duplex: String
mtu: String
speed: String
carrierChanges: String
}
type Pci {
id: ID!
type: String
typeid: String
vendorname: String
vendorid: String
productname: String
productid: String
blacklisted: String
class: String
}
type Usb {
id: ID!
name: String
}

View File

@@ -0,0 +1,34 @@
type Info {
display: Display
}
type Display {
date: String
number: String
scale: Boolean
tabs: Boolean
users: String
resize: Boolean
wwn: Boolean
total: Boolean
usage: Boolean
banner: String
dashapps: String
theme: Theme
text: Boolean
unit: Temperature
warning: Int
critical: Int
hot: Int
max: Int
locale: String
}
enum Temperature {
C
F
}
enum Theme {
white
}

View File

@@ -0,0 +1,4 @@
type Info {
"""Machine ID"""
machineId: ID
}

View File

@@ -0,0 +1,41 @@
type Info {
memory: InfoMemory
}
type InfoMemory {
max: Long!
total: Long!
free: Long!
used: Long!
active: Long!
available: Long!
buffcache: Long!
swaptotal: Long!
swapused: Long!
swapfree: Long!
layout: [MemoryLayout!]
}
type MemoryLayout {
size: Long!
bank: String
type: MemoryType
clockSpeed: Long
formFactor: MemoryFormFactor
manufacturer: String
partNum: String
serialNum: String
voltageConfigured: Long
voltageMin: Long
voltageMax: Long
}
enum MemoryType {
DDR2
DDR3
DDR4
}
enum MemoryFormFactor {
DIMM
}

View File

@@ -0,0 +1,18 @@
type Info {
os: Os
}
type Os {
platform: String
distro: String
release: String
codename: String
kernel: String
arch: String
hostname: String
codepage: String
logofile: String
serial: String
build: String
uptime: DateTime
}

View File

@@ -0,0 +1,12 @@
type Info {
system: System
}
type System {
manufacturer: String
model: String
version: String
serial: String
uuid: String
sku: String
}

View File

@@ -0,0 +1,32 @@
type Info {
versions: Versions
}
type Versions {
kernel: String
openssl: String
systemOpenssl: String
systemOpensslLib: String
node: String
v8: String
npm: String
yarn: String
pm2: String
gulp: String
grunt: String
git: String
tsc: String
mysql: String
redis: String
mongodb: String
apache: String
nginx: String
php: String
docker: String
postfix: String
postgresql: String
perl: String
python: String
gcc: String
unraid: String
}

View File

@@ -0,0 +1,13 @@
type Query {
owner: Owner
}
type Subscription {
owner: Owner!
}
type Owner {
username: String
url: String
avatar: String
}

View File

@@ -0,0 +1,6 @@
type Mount {
name: String
directory: String
type: String
permissions: String
}

View File

@@ -0,0 +1,60 @@
type Partition {
devlinks: String
devname: String
devpath: String
devtype: String
idAta: String
idAtaDownloadMicrocode: String
idAtaFeatureSetAam: String
idAtaFeatureSetAamCurrentValue: String
idAtaFeatureSetAamEnabled: String
idAtaFeatureSetAamVendorRecommendedValue: String
idAtaFeatureSetApm: String
idAtaFeatureSetApmCurrentValue: String
idAtaFeatureSetApmEnabled: String
idAtaFeatureSetHpa: String
idAtaFeatureSetHpaEnabled: String
idAtaFeatureSetPm: String
idAtaFeatureSetPmEnabled: String
idAtaFeatureSetPuis: String
idAtaFeatureSetPuisEnabled: String
idAtaFeatureSetSecurity: String
idAtaFeatureSetSecurityEnabled: String
idAtaFeatureSetSecurityEnhancedEraseUnitMin: String
idAtaFeatureSetSecurityEraseUnitMin: String
idAtaFeatureSetSmart: String
idAtaFeatureSetSmartEnabled: String
idAtaRotationRateRpm: String
idAtaSata: String
idAtaSataSignalRateGen1: String
idAtaSataSignalRateGen2: String
idAtaWriteCache: String
idAtaWriteCacheEnabled: String
idBus: String
idFsType: String
idFsUsage: String
idFsUuid: String
idFsUuidEnc: String
idModel: String
idModelEnc: String
idPartEntryDisk: String
idPartEntryNumber: String
idPartEntryOffset: String
idPartEntryScheme: String
idPartEntrySize: String
idPartEntryType: String
idPartTableType: String
idPath: String
idPathTag: String
idRevision: String
idSerial: String
idSerialShort: String
idType: String
idWwn: String
idWwnWithExtension: String
major: String
minor: String
partn: String
subsystem: String
usecInitialized: String
}

8
plugin/.gitattributes vendored Normal file
View File

@@ -0,0 +1,8 @@
# Auto detect text files and perform LF normalization
* text=auto
*.sh text eol=lf
*.conf text eol=lf
*.md text eol=lf
*.php text eol=lf
*.page text eol=lf
*.plg text eol=lf

View File

@@ -0,0 +1 @@
webComps

View File

@@ -0,0 +1,3 @@
#!/bin/bash
/etc/rc.d/rc.nginx reload &>/dev/null

View File

@@ -0,0 +1,16 @@
#!/usr/bin/php
<?PHP
/* Copyright 2005-2023, Lime Technology
* Copyright 2012-2023, Bergware International.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*/
?>
<?php
require_once("/usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php");
?>

View File

@@ -0,0 +1,31 @@
#!/bin/bash
# this git filter removes PrivateKey, PublicKey, and PresharedKey from WireGuard config files
# that are passed in on stdin
#
# The regex converts the following:
#
# wg0.conf peer.conf
# OLD: PresharedKey=uL3XBHpCoIxafVonnt1vj3cT8GbNhB+X/wNwroyYY7U=
# NEW: PresharedKey=
#
# wg0.conf peer.conf
# OLD: PrivateKey=gJt06xDlyntpoGKqYEK3GCuWtxVAzZPx4BNwKxg7jnQ=
# NEW: PrivateKey=
#
# wg0.conf peer.conf
# OLD: PublicKey=98PcRLFD9PiI8BbW6K61psNIYNsKrWKiJ/iJ87E1i0U=
# NEW: PublicKey=
#
# wg0.cfg
# OLD: PrivateKey:1="8FBfXXj8OBUNFpeRrvBYjl1YT5X/U5wENZUQ8F/Ukkk="
# NEW: PrivateKey:1=""
#
# wg0.cfg
# OLD: PublicKey:0="9xTdy0W7rLjQucP8I0lDcST3dkOnJfDFT+rtcInQ6UM="
# NEW: PublicKey:0=""
OLDTEXT='(PrivateKey(:[[:digit:]]*)?|PublicKey(:[[:digit:]]*)?|PresharedKey)=(.*)=(["])?'
NEWTEXT='\1=\5\5'
sed -E "s@${OLDTEXT}@${NEWTEXT}@g"

View File

@@ -0,0 +1,3 @@
**Unraid Connect**
Unraid Connect is your one-stop shop for server management, monitoring, and maintenance. Enjoy the convenience and connectivity of the cloud and take your Unraid experience to the next level with Connect.