@@ -258,6 +258,185 @@ paths:
258258 schema :
259259 $ref : ' #/components/schemas/ErrorResponse'
260260
261+ /orchestrator/app-store/installed-app/detail/v2 :
262+ get :
263+ tags :
264+ - App Store Deployment
265+ summary : Get installed app details v2
266+ description : |
267+ Retrieves comprehensive details about a deployed app store application including
268+ deployment information, environment details, and application metadata.
269+
270+ **Authentication & Authorization**:
271+ - Requires valid user session
272+ - User must have GET permission on the Helm app resource
273+ - RBAC enforced based on cluster, namespace, and app name
274+
275+ **Use Cases**:
276+ - View current deployment status and details
277+ - Get application metadata and configuration
278+ - Access environment and cluster information
279+ - Retrieve deployment history and version information
280+ operationId : fetchAppDetailsForInstalledAppV2
281+ parameters :
282+ - name : installed-app-id
283+ in : query
284+ required : true
285+ description : |
286+ The ID of the installed app to retrieve details for.
287+ This is the unique identifier for a deployed app store application.
288+ schema :
289+ type : integer
290+ minimum : 1
291+ example : 2
292+ - name : env-id
293+ in : query
294+ required : true
295+ description : |
296+ The environment ID where the app is deployed.
297+ Used to identify the specific environment instance of the app.
298+ schema :
299+ type : integer
300+ minimum : 1
301+ example : 1
302+ responses :
303+ ' 200 ' :
304+ description : Installed app details retrieved successfully
305+ content :
306+ application/json :
307+ schema :
308+ type : object
309+ properties :
310+ code :
311+ type : integer
312+ description : HTTP status code
313+ example : 200
314+ status :
315+ type : string
316+ description : Response status
317+ example : " OK"
318+ result :
319+ $ref : ' #/components/schemas/AppDetailContainer'
320+ examples :
321+ successful_response :
322+ summary : Successful retrieval of installed app details
323+ value :
324+ code : 200
325+ status : " OK"
326+ result :
327+ installedAppId : 2
328+ appId : 12
329+ appName : " my-nginx-app"
330+ environmentId : 1
331+ environmentName : " production"
332+ namespace : " default"
333+ clusterId : 1
334+ clusterName : " prod-cluster"
335+ appStoreChartName : " nginx"
336+ appStoreChartId : 10
337+ appStoreAppVersion : " 1.21.0"
338+ lastDeployedTime : " 2024-01-15T10:30:00Z"
339+ lastDeployedBy :
" [email protected] " 340+ status : " Healthy"
341+ deploymentAppType : " HELM"
342+ helmPackageName : " my-nginx-app-production-20240115"
343+ deprecated : false
344+ k8sVersion : " 1.28"
345+ instanceDetail : []
346+ otherEnvironment : []
347+ linkOuts : []
348+ ' 400 ' :
349+ description : Bad Request - Invalid query parameters
350+ content :
351+ application/json :
352+ schema :
353+ $ref : ' #/components/schemas/ErrorResponse'
354+ examples :
355+ invalid_installed_app_id :
356+ summary : Invalid installed-app-id parameter
357+ value :
358+ code : 400
359+ status : " Bad Request"
360+ errors :
361+ - code : " 11003"
362+ userMessage : " Invalid query parameter 'installed-app-id': must be a valid positive integer"
363+ internalMessage : " strconv.Atoi: parsing \" abc\" : invalid syntax"
364+ invalid_env_id :
365+ summary : Invalid env-id parameter
366+ value :
367+ code : 400
368+ status : " Bad Request"
369+ errors :
370+ - code : " 11003"
371+ userMessage : " Invalid query parameter 'env-id': must be a valid positive integer"
372+ internalMessage : " strconv.Atoi: parsing \" xyz\" : invalid syntax"
373+ ' 401 ' :
374+ description : Unauthorized - Missing or invalid authentication
375+ content :
376+ application/json :
377+ schema :
378+ $ref : ' #/components/schemas/ErrorResponse'
379+ examples :
380+ unauthorized :
381+ summary : User not authenticated
382+ value :
383+ code : 401
384+ status : " Unauthorized"
385+ errors :
386+ - code : " 11010"
387+ userMessage : " Authentication required. Please log in to continue."
388+ internalMessage : " unauthorized"
389+ ' 403 ' :
390+ description : Forbidden - Insufficient permissions
391+ content :
392+ application/json :
393+ schema :
394+ $ref : ' #/components/schemas/ErrorResponse'
395+ examples :
396+ forbidden :
397+ summary : User lacks permissions
398+ value :
399+ code : 403
400+ status : " Forbidden"
401+ errors :
402+ - code : " 11008"
403+ userMessage : " Access denied. You do not have permission to view this installed app."
404+ internalMessage : " unauthorized user"
405+ ' 404 ' :
406+ description : Not Found - Installed app does not exist
407+ content :
408+ application/json :
409+ schema :
410+ $ref : ' #/components/schemas/ErrorResponse'
411+ examples :
412+ not_found :
413+ summary : Installed app not found
414+ value :
415+ code : 404
416+ status : " Not Found"
417+ errors :
418+ - code : " 11006"
419+ userMessage : " Installed app with ID '2' not found in environment '1'"
420+ internalMessage : " sql: no rows in result set"
421+ ' 500 ' :
422+ description : Internal Server Error
423+ content :
424+ application/json :
425+ schema :
426+ $ref : ' #/components/schemas/ErrorResponse'
427+ examples :
428+ internal_error :
429+ summary : Unexpected server error
430+ value :
431+ code : 500
432+ status : " Internal Server Error"
433+ errors :
434+ - code : " 11009"
435+ userMessage : " An unexpected error occurred while retrieving the installed app details"
436+ internalMessage : " database connection failed"
437+ security :
438+ - bearerAuth : []
439+
261440 /orchestrator/app-store/deployment/application/version/{installedAppVersionId} :
262441 get :
263442 tags :
@@ -705,6 +884,203 @@ components:
705884 description : App store application version ID
706885 example : 45
707886
887+ AppDetailContainer :
888+ type : object
889+ description : |
890+ Comprehensive details about a deployed app store application including
891+ deployment information, environment details, instance information, and resource tree.
892+ properties :
893+ installedAppId :
894+ type : integer
895+ description : Installed app ID
896+ example : 2
897+ appId :
898+ type : integer
899+ description : Application ID
900+ example : 12
901+ appName :
902+ type : string
903+ description : Application name
904+ example : " my-nginx-app"
905+ environmentId :
906+ type : integer
907+ description : Environment ID where the app is deployed
908+ example : 1
909+ environmentName :
910+ type : string
911+ description : Environment name
912+ example : " production"
913+ namespace :
914+ type : string
915+ description : Kubernetes namespace where the app is deployed
916+ example : " default"
917+ clusterId :
918+ type : integer
919+ description : Cluster ID where the app is deployed
920+ example : 1
921+ clusterName :
922+ type : string
923+ description : Cluster name
924+ example : " prod-cluster"
925+ appStoreChartName :
926+ type : string
927+ description : App store chart name
928+ example : " nginx"
929+ appStoreChartId :
930+ type : integer
931+ description : App store chart ID
932+ example : 10
933+ appStoreAppVersion :
934+ type : string
935+ description : App store application version
936+ example : " 1.21.0"
937+ appStoreInstalledAppVersionId :
938+ type : integer
939+ description : App store installed app version ID
940+ example : 5
941+ lastDeployedTime :
942+ type : string
943+ description : Last deployment timestamp
944+ example : " 2024-01-15T10:30:00Z"
945+ lastDeployedBy :
946+ type : string
947+ description : Email of user who last deployed the app
948+ 949+ status :
950+ type : string
951+ description : Application health status
952+ example : " Healthy"
953+ statusMessage :
954+ type : string
955+ description : Detailed status message
956+ example : " All resources are healthy"
957+ releaseVersion :
958+ type : string
959+ description : Helm release version
960+ example : " 1"
961+ deploymentAppType :
962+ type : string
963+ description : Deployment application type (HELM, ACD, etc.)
964+ example : " HELM"
965+ helmPackageName :
966+ type : string
967+ description : Generated Helm package name
968+ example : " my-nginx-app-production-20240115"
969+ deprecated :
970+ type : boolean
971+ description : Whether the chart version is deprecated
972+ example : false
973+ k8sVersion :
974+ type : string
975+ description : Kubernetes version of the cluster
976+ example : " 1.28"
977+ dataSource :
978+ type : string
979+ description : Data source for the application
980+ example : " HELM"
981+ default :
982+ type : boolean
983+ description : Whether this is the default environment
984+ example : false
985+ isVirtualEnvironment :
986+ type : boolean
987+ description : Whether this is a virtual environment
988+ example : false
989+ deploymentAppDeleteRequest :
990+ type : boolean
991+ description : Whether a delete request is pending
992+ example : false
993+ ipsAccessProvided :
994+ type : boolean
995+ description : Whether IPS access is provided
996+ example : false
997+ releaseMode :
998+ type : string
999+ description : Release mode (NORMAL, ROLLBACK, etc.)
1000+ example : " NORMAL"
1001+ instanceDetail :
1002+ type : array
1003+ description : List of pod instances with resource usage
1004+ items :
1005+ $ref : ' #/components/schemas/InstanceDetail'
1006+ otherEnvironment :
1007+ type : array
1008+ description : List of other environments where this app is deployed
1009+ items :
1010+ $ref : ' #/components/schemas/Environment'
1011+ linkOuts :
1012+ type : array
1013+ description : External links associated with the application
1014+ items :
1015+ $ref : ' #/components/schemas/LinkOut'
1016+ resourceTree :
1017+ type : object
1018+ description : Kubernetes resource tree for the application
1019+ additionalProperties : true
1020+ notes :
1021+ type : string
1022+ description : Helm chart notes
1023+ example : " Application deployed successfully"
1024+
1025+ InstanceDetail :
1026+ type : object
1027+ description : Pod instance details with resource usage
1028+ properties :
1029+ podName :
1030+ type : string
1031+ description : Pod name
1032+ example : " my-nginx-app-7d8f9c5b6-abc12"
1033+ cpuUsage :
1034+ type : string
1035+ description : CPU usage percentage
1036+ example : " 15%"
1037+ memoryUsage :
1038+ type : string
1039+ description : Memory usage percentage
1040+ example : " 45%"
1041+ status :
1042+ type : string
1043+ description : Pod status
1044+ example : " Running"
1045+
1046+ Environment :
1047+ type : object
1048+ description : Environment information
1049+ properties :
1050+ environmentId :
1051+ type : integer
1052+ description : Environment ID
1053+ example : 2
1054+ environmentName :
1055+ type : string
1056+ description : Environment name
1057+ example : " staging"
1058+ namespace :
1059+ type : string
1060+ description : Kubernetes namespace
1061+ example : " staging"
1062+ clusterName :
1063+ type : string
1064+ description : Cluster name
1065+ example : " staging-cluster"
1066+
1067+ LinkOut :
1068+ type : object
1069+ description : External link configuration
1070+ properties :
1071+ name :
1072+ type : string
1073+ description : Link name
1074+ example : " Grafana Dashboard"
1075+ url :
1076+ type : string
1077+ description : Link URL
1078+ example : " https://grafana.example.com/d/app-dashboard"
1079+ description :
1080+ type : string
1081+ description : Link description
1082+ example : " Application monitoring dashboard"
1083+
7081084 ErrorResponse :
7091085 required :
7101086 - code
0 commit comments