@@ -258,6 +258,180 @@ paths:
258258 schema :
259259 $ref : ' #/components/schemas/ErrorResponse'
260260
261+ /orchestrator/app-store/deployment/application/version/{installedAppVersionId} :
262+ get :
263+ tags :
264+ - App Store Deployment
265+ summary : Get installed app version details
266+ description : |
267+ Retrieves detailed information about a specific installed app version.
268+ This endpoint returns the complete configuration, values, and metadata
269+ for a deployed app store application version.
270+
271+ **Authentication & Authorization**:
272+ - Requires valid user session
273+ - User must have GET permission on the Helm app resource
274+ - RBAC enforced based on cluster, namespace, and app name
275+
276+ **Use Cases**:
277+ - View current deployment configuration
278+ - Retrieve values.yaml for an installed app
279+ - Get chart version and metadata
280+ - Access deployment history reference
281+ operationId : getInstalledAppVersion
282+ parameters :
283+ - name : installedAppVersionId
284+ in : path
285+ required : true
286+ description : |
287+ The ID of the installed app version to retrieve.
288+ This is the unique identifier for a specific version of a deployed app.
289+ schema :
290+ type : integer
291+ minimum : 1
292+ example : 2
293+ responses :
294+ ' 200 ' :
295+ description : Installed app version details retrieved successfully
296+ content :
297+ application/json :
298+ schema :
299+ type : object
300+ properties :
301+ code :
302+ type : integer
303+ description : HTTP status code
304+ example : 200
305+ status :
306+ type : string
307+ description : Response status
308+ example : " OK"
309+ result :
310+ $ref : ' #/components/schemas/InstallAppVersionDTO'
311+ examples :
312+ successful_response :
313+ summary : Successful retrieval of installed app version
314+ value :
315+ code : 200
316+ status : " OK"
317+ result :
318+ id : 2
319+ appId : 12
320+ appName : " my-app"
321+ teamId : 1
322+ teamName : " devtron-demo"
323+ environmentId : 1
324+ installedAppId : 5
325+ installedAppVersionId : 2
326+ appStoreVersion : 45
327+ valuesOverrideYaml : |
328+ replicaCount: 2
329+ image:
330+ tag: "v1.0.0"
331+ readme : " # Application README\n\n This is the application documentation."
332+ referenceValueId : 1
333+ referenceValueKind : " DEFAULT"
334+ appStoreId : 10
335+ appStoreName : " nginx"
336+ deprecated : false
337+ clusterId : 1
338+ namespace : " default"
339+ appOfferingMode : " FULL"
340+ gitOpsPath : " my-app-default"
341+ deploymentAppType : " HELM"
342+ helmPackageName : " nginx-1.0.0"
343+ ' 400 ' :
344+ description : Bad Request - Invalid installedAppVersionId parameter
345+ content :
346+ application/json :
347+ schema :
348+ $ref : ' #/components/schemas/ErrorResponse'
349+ examples :
350+ invalid_parameter :
351+ summary : Invalid installedAppVersionId
352+ value :
353+ code : 400
354+ status : " Bad Request"
355+ errors :
356+ - code : " 11001"
357+ userMessage : " Invalid path parameter 'installedAppVersionId': must be a valid positive integer"
358+ internalMessage : " strconv.Atoi: parsing \" abc\" : invalid syntax"
359+ outdated_values :
360+ summary : Outdated values error
361+ value :
362+ code : 400
363+ status : " Bad Request"
364+ errors :
365+ - code : " 400"
366+ userMessage : " values are outdated. please fetch the latest version and try again"
367+ internalMessage : " sql: no rows in result set"
368+ ' 401 ' :
369+ description : Unauthorized - Missing or invalid authentication
370+ content :
371+ application/json :
372+ schema :
373+ $ref : ' #/components/schemas/ErrorResponse'
374+ examples :
375+ unauthorized :
376+ summary : User not authenticated
377+ value :
378+ code : 401
379+ status : " Unauthorized"
380+ errors :
381+ - code : " 11010"
382+ userMessage : " Authentication required. Please log in to continue."
383+ internalMessage : " unauthorized"
384+ ' 403 ' :
385+ description : Forbidden - Insufficient permissions
386+ content :
387+ application/json :
388+ schema :
389+ $ref : ' #/components/schemas/ErrorResponse'
390+ examples :
391+ forbidden :
392+ summary : User lacks permissions
393+ value :
394+ code : 403
395+ status : " Forbidden"
396+ errors :
397+ - code : " 11008"
398+ userMessage : " Access denied. You do not have permission to view this installed app version."
399+ internalMessage : " unauthorized user"
400+ ' 404 ' :
401+ description : Not Found - Installed app version does not exist
402+ content :
403+ application/json :
404+ schema :
405+ $ref : ' #/components/schemas/ErrorResponse'
406+ examples :
407+ not_found :
408+ summary : Installed app version not found
409+ value :
410+ code : 404
411+ status : " Not Found"
412+ errors :
413+ - code : " 11006"
414+ userMessage : " Installed app version with ID '2' not found"
415+ internalMessage : " sql: no rows in result set"
416+ ' 500 ' :
417+ description : Internal Server Error
418+ content :
419+ application/json :
420+ schema :
421+ $ref : ' #/components/schemas/ErrorResponse'
422+ examples :
423+ internal_error :
424+ summary : Unexpected server error
425+ value :
426+ code : 500
427+ status : " Internal Server Error"
428+ errors :
429+ - code : " 11009"
430+ userMessage : " An unexpected error occurred while retrieving the installed app version"
431+ internalMessage : " database connection failed"
432+ security :
433+ - bearerAuth : []
434+
261435components :
262436 schemas :
263437 AppStoreApplication :
@@ -401,6 +575,136 @@ components:
401575 $ref : ' #/components/schemas/AppStoreApplication'
402576 description : List of app store applications
403577
578+ InstallAppVersionDTO :
579+ type : object
580+ description : |
581+ Complete details of an installed app version including configuration,
582+ values, and deployment metadata.
583+ properties :
584+ id :
585+ type : integer
586+ description : Installed app version ID (same as installedAppVersionId)
587+ example : 2
588+ appId :
589+ type : integer
590+ description : Application ID
591+ example : 12
592+ appName :
593+ type : string
594+ description : Application name (can be display name for external apps)
595+ example : " my-app"
596+ teamId :
597+ type : integer
598+ description : Team/Project ID
599+ example : 1
600+ teamName :
601+ type : string
602+ description : Team/Project name
603+ example : " devtron-demo"
604+ environmentId :
605+ type : integer
606+ description : Environment ID where the app is deployed
607+ example : 1
608+ installedAppId :
609+ type : integer
610+ description : Installed app ID
611+ example : 5
612+ installedAppVersionId :
613+ type : integer
614+ description : Installed app version ID
615+ example : 2
616+ installedAppVersionHistoryId :
617+ type : integer
618+ description : Installed app version history ID (for rollback reference)
619+ example : 10
620+ appStoreVersion :
621+ type : integer
622+ description : App store application version ID (chart version reference)
623+ example : 45
624+ valuesOverrideYaml :
625+ type : string
626+ description : YAML string containing custom values that override chart defaults
627+ example : |
628+ replicaCount: 2
629+ image:
630+ tag: "v1.0.0"
631+ service:
632+ type: ClusterIP
633+ readme :
634+ type : string
635+ description : README documentation for the chart
636+ example : " # Application README\n\n This is the application documentation."
637+ referenceValueId :
638+ type : integer
639+ description : Reference value ID (points to template or deployed values)
640+ example : 1
641+ referenceValueKind :
642+ type : string
643+ description : Kind of reference value
644+ enum : ["DEFAULT", "TEMPLATE", "DEPLOYED", "EXISTING"]
645+ example : " DEFAULT"
646+ appStoreId :
647+ type : integer
648+ description : App store application ID
649+ example : 10
650+ appStoreName :
651+ type : string
652+ description : App store application name (chart name)
653+ example : " nginx"
654+ deprecated :
655+ type : boolean
656+ description : Whether this chart version is deprecated
657+ example : false
658+ clusterId :
659+ type : integer
660+ description : Cluster ID where the app is deployed
661+ example : 1
662+ namespace :
663+ type : string
664+ description : Kubernetes namespace where the app is deployed
665+ example : " default"
666+ appOfferingMode :
667+ type : string
668+ description : App offering mode (FULL, EA_ONLY, etc.)
669+ example : " FULL"
670+ gitOpsPath :
671+ type : string
672+ description : GitOps repository path for this deployment
673+ example : " my-app-default"
674+ gitHash :
675+ type : string
676+ description : Git commit hash of the deployed version
677+ example : " abc123def456"
678+ deploymentAppType :
679+ type : string
680+ description : Deployment application type (HELM, GITOPS, etc.)
681+ example : " HELM"
682+ acdPartialDelete :
683+ type : boolean
684+ description : Whether ArgoCD partial delete is enabled
685+ example : false
686+ updatedOn :
687+ type : string
688+ format : date-time
689+ description : Last update timestamp
690+ example : " 2024-01-15T10:30:00Z"
691+ isVirtualEnvironment :
692+ type : boolean
693+ description : Whether this is a virtual environment
694+ example : false
695+ helmPackageName :
696+ type : string
697+ description : Helm package name
698+ example : " nginx-1.0.0"
699+ gitRepoURL :
700+ type : string
701+ description : GitOps repository URL
702+ example : " https://github.com/org/gitops-repo"
703+ appStoreApplicationVersionId :
704+ type : integer
705+ description : App store application version ID
706+ example : 45
707+
404708 ErrorResponse :
405709 required :
406710 - code
@@ -433,4 +737,13 @@ components:
433737 description : Error internal message
434738 userMessage :
435739 type : string
436- description : Error user message
740+ description : Error user message
741+
742+ securitySchemes :
743+ bearerAuth :
744+ type : http
745+ scheme : bearer
746+ bearerFormat : JWT
747+ description : |
748+ JWT token-based authentication. Include the token in the Authorization header
749+ as: `Authorization: Bearer <token>`
0 commit comments