{"record":{"id":"4e60aac1282965d6","repo":"vxcontrol/pentagi","slug":"notpermitted-4e60aa","errorCode":"NotPermitted","errorMessage":"containers.view privilege is required to pull from container","messagePattern":"containers\\.view privilege is required to pull from container","errorType":"http","errorClass":null,"httpStatus":403,"severity":"error","filePath":"backend/pkg/server/services/flow_files.go","lineNumber":616,"sourceCode":"// @Router /flows/{flowID}/files/pull [post]\nfunc (s *FlowFileService) PullFlowFiles(c *gin.Context) {\n\tflowID, err := parseFlowIDParam(c)\n\tif err != nil {\n\t\tlogger.FromContext(c).WithError(err).Error(\"error parsing flow id\")\n\t\tresponse.Error(c, response.ErrFlowFilesInvalidRequest, err)\n\t\treturn\n\t}\n\n\tflow, err := s.getFlow(c, flowID, true)\n\tif err != nil {\n\t\ts.handleFlowLookupError(c, flowID, err)\n\t\treturn\n\t}\n\n\t// Container interaction additionally requires containers.view (or containers.admin).\n\tprivs := c.GetStringSlice(\"prm\")\n\tif !slices.Contains(privs, \"containers.admin\") && !slices.Contains(privs, \"containers.view\") {\n\t\tresponse.Error(c, response.ErrNotPermitted, fmt.Errorf(\"containers.view privilege is required to pull from container\"))\n\t\treturn\n\t}\n\n\tvar req models.PullFlowFilesRequest\n\tif err := c.ShouldBindJSON(&req); err != nil {\n\t\tlogger.FromContext(c).WithError(err).WithField(\"flow_id\", flowID).Error(\"error parsing pull request\")\n\t\tresponse.Error(c, response.ErrFlowFilesInvalidRequest, err)\n\t\treturn\n\t}\n\n\t// Collect container paths from both req.Path and req.Paths, then deduplicate\n\t// with coverage semantics using flowfiles.DeduplicatePaths.\n\t// Container paths (/etc/nginx.conf) are normalised to their relative form\n\t// (etc/nginx.conf) so that DeduplicatePaths can apply ancestor coverage:\n\t// /etc/ covers /etc/nginx.conf → only /etc/ is pulled.\n\trawPaths := req.Paths\n\tif strings.TrimSpace(req.Path) != \"\" {\n\t\trawPaths = append(rawPaths, req.Path)","sourceCodeStart":598,"sourceCodeEnd":634,"githubUrl":"https://github.com/vxcontrol/pentagi/blob/ea665308baaff015b226f308438a68d929d0f29b/backend/pkg/server/services/flow_files.go#L598-L634","documentation":"Error \"containers.view privilege is required to pull from container\" thrown in vxcontrol/pentagi.","triggerScenarios":"Thrown at backend/pkg/server/services/flow_files.go:616 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ea665308baaff015b226f308438a68d929d0f29b","analyzedAt":"2026-09-01T14:16:31.421Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}