code: func (c *CodebaseController) Update(ctx *app.UpdateCodebaseContext) error {
  	codebaseID, err := uuid.FromString(ctx.CodebaseID)
  	if err != nil {
  		return err
  	}
  	// see if the user is allowed to update this codebase
  	cb, err := c.verifyCodebaseOwner(ctx, codebaseID)
  	if err != nil {
  		return jsonapi.JSONErrorResponse(ctx, err)
  	}
  
  	// set only allowed fields
  	reqAttributes := ctx.Payload.Data.Attributes
  	if reqAttributes.CveScan != nil {
  		cb.CVEScan = *reqAttributes.CveScan
  	}
  	if reqAttributes.StackID != nil {
  		cb.StackID = reqAttributes.StackID
  	}
  	if reqAttributes.Type != nil {
  		cb.Type = *reqAttributes.Type
  	}
  
  	var updatedCb *codebase.Codebase
  	// now save the object back into the database
  	err = application.Transactional(c.db, func(appl application.Application) error {
  		updatedCb, err = appl.Codebases().Save(ctx, cb)
  		return err
  	})
  	if err != nil {
  		return jsonapi.JSONErrorResponse(ctx, err)
  	}
  
  	res := &app.CodebaseSingle{
  		Data: ConvertCodebase(ctx.Request, *updatedCb),
  	}
  	ctx.ResponseData.Header().Set("Location", rest.AbsoluteURL(ctx.Request, app.CodebaseHref(res.Data.ID)))
  
  	return ctx.OK(res)
  }
docs: // Update can be used to update the codebase entries to change things like
  // the cve-scan, stackID, codebase type, rest of the attributes of codebase
  // will remain same