Lock report from any modification

Hi all,

Is it possible to lock any report from being modified such that no options can be modified other than the owner or whoever created the report?.

Thanks in advance

I think you should create a new SPRight object and add it to your report XML. This way, whoever has that SPRight will be able to access it. see below example of how you can define the SPRight:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE SPRight PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<SPRight displayName="Read and Write JDBC Report" name="ReadAndWriteJDBCReport" significantModified="1741326406085">
  <Description>Read and Write JDBC Report</Description>
</SPRight>

Then, add the following snippet to your TaskDefinition / Report XML to reference this SPRight:

<RequiredRights>
    <Reference class="sailpoint.object.SPRight" name="ReadAndWriteJDBCReport"/>
</RequiredRights>

Additionally, I suggest creating a new Capability as well. This would ensure that only users with this specific capability can access the report. Here’s an example:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Capability PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Capability displayName="Read and Write JDBC Report" name="ReadAndWriteJDBCReport">
  <Description>ReadAndWriteJDBCReport</Description>
  <RightRefs>
    <Reference class="sailpoint.object.SPRight" name="ReadAndWriteJDBCReport"/>
  </RightRefs>
</Capability>

This approach ties the access control to both the SPRight and the Capability, giving you a more secure and manageable setup.

Hope this helps!