<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: IAM Careers</title>
    <description>The latest articles on DEV Community by IAM Careers (@iamcareers).</description>
    <link>https://dev.to/iamcareers</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4200514%2F5900d2fb-cafd-44e5-852e-5e63160eb070.png</url>
      <title>DEV Community: IAM Careers</title>
      <link>https://dev.to/iamcareers</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamcareers"/>
    <language>en</language>
    <item>
      <title>SailPoint ISC Transforms: A Practical Introduction</title>
      <dc:creator>IAM Careers</dc:creator>
      <pubDate>Thu, 22 Oct 2026 13:27:18 +0000</pubDate>
      <link>https://dev.to/iamcareers/sailpoint-isc-transforms-a-practical-introduction-220i</link>
      <guid>https://dev.to/iamcareers/sailpoint-isc-transforms-a-practical-introduction-220i</guid>
      <description>&lt;p&gt;In SailPoint Identity Security Cloud (ISC), transforms are how you shape raw source data into clean identity attributes. If you are moving from IdentityIQ (IIQ), think of them as the configuration-first replacement for many small attribute rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a transform is
&lt;/h2&gt;

&lt;p&gt;A transform is a JSON object that takes an input value, applies an operation and returns a new value. You attach transforms to identity profile mappings, so every identity gets attributes calculated the same way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common transform types
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;accountAttribute&lt;/strong&gt;: reads an attribute from a specific source account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;lower / upper&lt;/strong&gt;: changes letter case, for example for email addresses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;concat&lt;/strong&gt;: joins values, such as first and last name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;substring / replace&lt;/strong&gt;: trims or cleans part of a value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;lookup&lt;/strong&gt;: maps one value to another using a table, for example department codes to names.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;firstValid&lt;/strong&gt;: returns the first non-empty value from a list, useful when data comes from several sources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;conditional&lt;/strong&gt;: returns different values depending on a comparison.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;dateFormat&lt;/strong&gt;: converts dates between formats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;static&lt;/strong&gt;: returns a fixed value or a simple template.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Transforms can be nested, so the output of one becomes the input of another.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple way to think about it
&lt;/h2&gt;

&lt;p&gt;Start from the attribute you want on the identity, then work backwards: which source holds it, what cleaning it needs, and what to do when it is missing. That usually tells you which transforms to chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keep transforms small and reusable, and name them clearly.&lt;/li&gt;
&lt;li&gt;Use firstValid to handle missing data instead of complex conditions.&lt;/li&gt;
&lt;li&gt;Test with real sample identities before applying a change to everyone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full guide: &lt;a href="https://iamcareers.com/blog/sailpoint-isc-transforms-explained" rel="noopener noreferrer"&gt;SailPoint ISC transforms explained&lt;/a&gt;. For live, hands-on ISC training, see the &lt;a href="https://iamcareers.com/sailpoint-isc-course" rel="noopener noreferrer"&gt;SailPoint ISC course at IAM Careers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This training is provided by IAM Careers and is not affiliated with, authorized by, sponsored by, or endorsed by SailPoint Technologies, Inc.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sailpoint</category>
      <category>iam</category>
      <category>security</category>
      <category>cloud</category>
    </item>
    <item>
      <title>SailPoint IdentityIQ Rules Explained: Where BeanShell Fits</title>
      <dc:creator>IAM Careers</dc:creator>
      <pubDate>Thu, 22 Oct 2026 13:26:23 +0000</pubDate>
      <link>https://dev.to/iamcareers/sailpoint-identityiq-rules-explained-where-beanshell-fits-33ml</link>
      <guid>https://dev.to/iamcareers/sailpoint-identityiq-rules-explained-where-beanshell-fits-33ml</guid>
      <description>&lt;p&gt;If you are learning SailPoint IdentityIQ (IIQ), rules are where configuration ends and code begins. IIQ rules are small pieces of BeanShell (Java-like scripting) that run at specific points in IIQ's processing, so you can handle the cases that out-of-the-box configuration cannot.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a rule is
&lt;/h2&gt;

&lt;p&gt;A rule is a script stored as a &lt;code&gt;Rule&lt;/code&gt; object in IIQ. IIQ calls it at a defined hook, such as while reading data from an application or before sending a change to a target system. The rule receives input variables from IIQ (for example the application, the account data or the identity) and returns a value or modifies an object.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule types you will meet early
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Correlation rule&lt;/strong&gt;: decides which identity an account belongs to when simple attribute matching is not enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization rule&lt;/strong&gt;: adjusts account data as it is read during aggregation, for example cleaning up values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build Map rule&lt;/strong&gt;: shapes raw rows from delimited-file or JDBC sources into account attributes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identity attribute rule&lt;/strong&gt;: calculates an identity attribute from one or more sources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Before and After Provisioning rules&lt;/strong&gt;: change a provisioning plan before it is sent, or act after it completes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why BeanShell matters for jobs
&lt;/h2&gt;

&lt;p&gt;Most real IIQ projects onboard applications that do not fit the defaults. Interviewers often ask you to explain a correlation rule or debug a failed aggregation, which means reading and writing BeanShell. You do not need to be a senior Java developer, but you do need to be comfortable with variables, conditions, loops and IIQ's objects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips when you start writing rules
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keep each rule small and focused on one job.&lt;/li&gt;
&lt;li&gt;Log what the rule receives and returns while testing.&lt;/li&gt;
&lt;li&gt;Test against a small set of accounts before running a full aggregation.&lt;/li&gt;
&lt;li&gt;Reuse logic through rule libraries instead of copying code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full guide with examples: &lt;a href="https://iamcareers.com/blog/sailpoint-iiq-rules-beanshell-explained" rel="noopener noreferrer"&gt;SailPoint IIQ rules and BeanShell explained&lt;/a&gt;. If you want structured, hands-on practice, see the &lt;a href="https://iamcareers.com/sailpoint-iiq-course" rel="noopener noreferrer"&gt;SailPoint IIQ course at IAM Careers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This training is provided by IAM Careers and is not affiliated with, authorized by, sponsored by, or endorsed by SailPoint Technologies, Inc.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sailpoint</category>
      <category>iam</category>
      <category>security</category>
      <category>java</category>
    </item>
  </channel>
</rss>
