Merge remote-tracking branch 'origin/main' into review/pr-5-machine-federation-fixes

# Conflicts:
#	src/client/src/api.ts
#	src/client/src/api/clients.ts
#	src/client/src/api/parsers.ts
#	src/client/src/components/PiWebApp.ts
#	src/server/app.ts
#	src/shared/apiTypes.ts
This commit is contained in:
Federico Jaramillo Martinez
2026-06-04 10:31:23 +02:00
76 changed files with 2423 additions and 767 deletions
+46
View File
@@ -22,6 +22,52 @@ export interface MachineHealth {
error?: string;
}
export type PiWebShortcutConfig = Record<string, string | null>;
export type PiWebPluginSettings = Record<string, unknown>;
export type PiWebPluginConfigMap = Record<string, PiWebPluginConfig>;
export interface PiWebPluginConfig {
enabled?: boolean;
settings?: PiWebPluginSettings;
[key: string]: unknown;
}
export interface PiWebConfigValues {
host?: string;
port?: number;
allowedHosts?: string[] | true;
shortcuts?: PiWebShortcutConfig;
plugins?: PiWebPluginConfigMap;
}
export type PiWebPluginScope = "bundled" | "local" | "user" | "project";
export interface PiWebPluginInfo {
id: string;
module: string;
source: string;
scope: PiWebPluginScope;
enabled: boolean;
}
export interface PiWebPluginsResponse {
plugins: PiWebPluginInfo[];
}
export interface PiWebConfigEnvOverrides {
host: boolean;
port: boolean;
allowedHosts: boolean;
}
export interface PiWebConfigResponse {
path: string;
exists: boolean;
config: PiWebConfigValues;
effectiveConfig: PiWebConfigValues;
envOverrides: PiWebConfigEnvOverrides;
}
export interface Project {
id: string;
name: string;
+5
View File
@@ -0,0 +1,5 @@
export const piWebPluginIdPattern = /^[a-z][a-z0-9.-]*$/u;
export function isPiWebPluginId(value: string): boolean {
return piWebPluginIdPattern.test(value);
}