mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 20:43:41 +00:00
0.2.5 initial commit
Makefile incomplete
This commit is contained in:
107
ui/src/app/services/api/API.def
Normal file
107
ui/src/app/services/api/API.def
Normal file
@@ -0,0 +1,107 @@
|
||||
|
||||
//////////////// Install/Uninstall ////////////////////////////////////////////////
|
||||
|
||||
type AppDependentBreakage = {
|
||||
// id of the dependent app which will or did break (Stopped) given the action.
|
||||
id: string
|
||||
title: string
|
||||
iconUrl: string
|
||||
}
|
||||
|
||||
POST /apps/:appId/install(?dryrun)
|
||||
|
||||
body: {
|
||||
version: string, //semver
|
||||
}
|
||||
response : ApiAppInstalledFull & { breakages: AppDependentBreakage[] }
|
||||
|
||||
|
||||
|
||||
POST /apps/:appId/uninstall(?dryrun)
|
||||
|
||||
response : { breakages: AppDependentBreakage[] }
|
||||
|
||||
/////////////////////////////// Store/Show /////////////////////////////////////////////////
|
||||
|
||||
|
||||
type ApiAppAvailableFull = ... {
|
||||
// app base data
|
||||
id: string
|
||||
title: string
|
||||
status: AppStatus | null
|
||||
versionInstalled: string | null
|
||||
iconURL: string
|
||||
|
||||
// preview data
|
||||
versionLatest: string
|
||||
descriptionShort: string
|
||||
|
||||
// version specific data
|
||||
releaseNotes: string
|
||||
serviceRequirements: AppDependencyRequirement[]
|
||||
|
||||
// other data
|
||||
descriptionLong: string,
|
||||
version: string[],
|
||||
}
|
||||
|
||||
type AppDependencyRequirement = ... {
|
||||
//app base data (minus status + version installed)
|
||||
id: string
|
||||
title: string
|
||||
iconURL: string
|
||||
|
||||
// dependency data
|
||||
optional: string | null
|
||||
default: boolean
|
||||
versionSpec: string
|
||||
description: string | null
|
||||
violation: AppDependencyRequirementViolation | null
|
||||
}
|
||||
|
||||
type AppDependencyRequirementViolation =
|
||||
{ name: 'missing'; suggestedVersion: string; } |
|
||||
{ name: 'incompatible-version'; suggestedVersion: string; } |
|
||||
{ name: 'incompatible-config'; ruleViolations: string; auto-configurable: boolean } | // (auto-configurable for if/when we do that)
|
||||
{ name: 'incompatible-status'; status: AppStatus; }
|
||||
|
||||
|
||||
// Get App Available Full
|
||||
GET /apps/:appId/store
|
||||
|
||||
response: ApiAppAvailableFull
|
||||
|
||||
|
||||
// Get Version Specific Data for an App Available
|
||||
GET /apps/:appId/store/:version
|
||||
|
||||
response: {
|
||||
// version specific data
|
||||
releaseNotes: string
|
||||
serviceRequirements: AppDependencyRequirement[]
|
||||
}
|
||||
|
||||
///////////////////////////// Installed/Show ///////////////////////////////////////////
|
||||
|
||||
|
||||
type ApiAppInstalledFull {
|
||||
// app base data
|
||||
id: string
|
||||
title: string
|
||||
status: AppStatus | null
|
||||
versionInstalled: string | null
|
||||
iconURL: string
|
||||
|
||||
// preview data
|
||||
|
||||
// other data
|
||||
instructions: string | null
|
||||
lastBackup: string | null
|
||||
configuredRequirements: AppDependencyRequirement[] | null // null if not yet configured
|
||||
}
|
||||
|
||||
|
||||
// Get App Installed Full
|
||||
GET /apps/:appId/installed
|
||||
|
||||
reseponse: AppInstalledFull
|
||||
Reference in New Issue
Block a user