docs: function (list, location, ext, sequence, perms, title, src) {
  			var actions = list.get_userCustomActions();
  
  			var action = actions.add();
  
  			action.set_title(title);
  			action.set_location(location);
  			action.set_commandUIExtension(ext);
  			action.set_sequence(sequence || 0);
  			(src && action.set_scriptSrc(src));
  			if (perms)
  				action.set_rights(perms);
  			action.update();
  			ctx.load(action);
  			var dfd = $.Deferred();
  
  			ctx.executeQueryAsync(function () {
  				trace.log("addCustomAction.done");
  				dfd.resolve(action);
  			}, function (r, a) { ns.sp.reqFailure(r, a, "addCustomAction", dfd); });
  
  			return dfd.promise();
  		}