MCPcopy Index your code
hub / github.com/rilldata/rill / DeleteVirtualFile

Method DeleteVirtualFile

admin/server/repos.go:201–239  ·  view source on GitHub ↗
(ctx context.Context, req *adminv1.DeleteVirtualFileRequest)

Source from the content-addressed store, hash-verified

199}
200
201func (s *Server) DeleteVirtualFile(ctx context.Context, req *adminv1.DeleteVirtualFileRequest) (*adminv1.DeleteVirtualFileResponse, error) {
202 observability.AddRequestAttributes(ctx,
203 attribute.String("args.project_id", req.ProjectId),
204 attribute.String("args.path", req.Path),
205 )
206
207 proj, err := s.admin.DB.FindProject(ctx, req.ProjectId)
208 if err != nil {
209 return nil, err
210 }
211
212 claims := auth.GetClaims(ctx)
213 permissions := claims.ProjectPermissions(ctx, proj.OrganizationID, proj.ID)
214 forceAccess := claims.Superuser(ctx) && req.SuperuserForceAccess
215 if !permissions.ManageProd && !forceAccess {
216 return nil, status.Error(codes.PermissionDenied, "does not have permission to delete virtual files")
217 }
218
219 environment := req.Environment
220 if environment == "" {
221 if claims.OwnerType() == auth.OwnerTypeDeployment {
222 depl, err := s.admin.DB.FindDeployment(ctx, claims.OwnerID())
223 if err != nil {
224 return nil, err
225 }
226 environment = depl.Environment
227 } else {
228 environment = "prod"
229 }
230 }
231
232 // Directly mark the virtual file as deleted without parsing
233 err = s.admin.DB.UpdateVirtualFileDeleted(ctx, proj.ID, environment, req.Path)
234 if err != nil {
235 return nil, err
236 }
237
238 return &adminv1.DeleteVirtualFileResponse{}, nil
239}
240
241func virtualFileToDTO(vf *database.VirtualFile) *adminv1.VirtualFile {
242 return &adminv1.VirtualFile{

Callers

nothing calls this directly

Calls 11

AddRequestAttributesFunction · 0.92
GetClaimsFunction · 0.92
StringMethod · 0.65
FindProjectMethod · 0.65
ProjectPermissionsMethod · 0.65
SuperuserMethod · 0.65
OwnerTypeMethod · 0.65
FindDeploymentMethod · 0.65
OwnerIDMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected