delivered for clients · names withheldupgrade Identity and access

IdentityIQ 8.x to 9.0 upgrade

Cohash upgrades IdentityIQ 8.x estates to 9.0. You go to 8.5 first, through each GA release, and SailPoint's iiq-precheck runs on an 8.5 copy. We fix the javax references it finds in rules, plugins, connectors and forms, then move you to a Jakarta EE 10 application server. Upgrade and rollback are both rehearsed on production data before the real window.

  1. 01Reach 8.5
  2. 02Inventory and pre-check
  3. 03Fix custom code
  4. 04Build the new application server
  5. 05Rehearse upgrade and rollback
  6. 06Production upgrade
case-study / sailpoint-identityiq-9-upgrade delivered
beforeSailPoint IdentityIQ 8.x afterSailPoint IdentityIQ 9.0
01 · SOURCES 02 · IDENTITYIQ 03 · RUNTIME 04 · TARGETS HR system: Workday HR system Workday Active Directory: accounts · groups Active Directory accounts · groups IdentityIQ 9.0: lifecycle · requests · certs IdentityIQ 9.0 lifecycle · requests ·certs Jakarta-ready rules and plugins: executed and rebuilt Jakarta-ready rulesand plugins executed and rebuilt Jakarta EE 10 app server: Tomcat 10.1 · JBoss EAP 8 · Liberty Jakarta EE 10 appserver Tomcat 10.1 · JBossEAP 8 · Liberty IdentityIQ database: 9.0 schema · tested restore IdentityIQ database 9.0 schema · testedrestore Entra ID: groups · app roles Entra ID groups · app roles Salesforce: permission sets Salesforce permission sets CyberArk: privileged accounts CyberArk privileged accounts
case file

The story

Told without the client's name or anything that could identify them.

what happened

A bank's identity team ran IdentityIQ 8.3 on WebLogic, with years of BeanShell rules and several plugins written before anyone on the team joined. SailPoint's announcement of IdentityIQ 9.0 on Jakarta EE 10, and its decision to drop WebLogic, turned a routine upgrade into an application server change as well. We took a copy through each GA release to 8.5, ran iiq-precheck on it and sorted every javax finding into renames, developer fixes and code nobody used. The fixed code now runs on a Jakarta EE 10 application server in rehearsal, the upgrade and rollback are timed on a production clone, and the production date waits only on SailPoint's GA.

why it was urgent

SailPoint announced IdentityIQ 9.0 on 6 October 2026 and still hasn't given a GA date. The release moves from Java EE 8 to Jakarta EE 10 and runs on Tomcat 10.1 and 11, JBoss EAP 8 and WebSphere Liberty. WebLogic is dropped. Staying on Tomcat 9 doesn't help, because Apache ends support for 9.0.x on 31 March 2027.

problem statement
  • openIdentityIQ runs on Tomcat 9 or WebLogic, and one of those has to change.
  • recurringThe estate is on 8.3 or 8.4, two GA releases short of where the pre-check runs.
  • blockedThere are hundreds of BeanShell rules and several plugins, and all of them predate everyone on the current team.
  • openLeadership wants a firm upgrade date, but SailPoint hasn't announced GA yet.
architecture

The estate, before and after

before
before

Before: IdentityIQ 8.x on WebLogic with javax custom code

IdentityIQ governed joiners, movers and leavers on an 8.x release hosted on WebLogic. Custom rules and plugins used javax imports that only fail when a rule fires.

Before: IdentityIQ 8.x on WebLogic with javax custom code IdentityIQ governed joiners, movers and leavers on an 8.x release hosted on WebLogic. Custom rules and plugins used javax imports that only fail when a rule fires. 01 · SOURCES 02 · IDENTITYIQ 03 · RUNTIME 04 · TARGETS joiner · mover · leaver aggregation fails at runtime hosted on reads and writes provision provision safe membership WO HR system Workday Active Directory accounts · groups SP IdentityIQ 8.3 lifecycle · requests· certs Custom rules andplugins BeanShell · javax imports Oracle WebLogic dropped in IdentityIQ 9.0 IdentityIQ database 8.x schema Ex Entra ID groups · app roles Sf Salesforce permission sets CA CyberArk privileged accounts
Read the diagram as text
  1. HR system → IdentityIQ 8.3: joiner · mover · leaver
  2. Active Directory → IdentityIQ 8.3: aggregation
  3. Custom rules and plugins → IdentityIQ 8.3: fails at runtime
  4. IdentityIQ 8.3 → Oracle WebLogic: hosted on
  5. IdentityIQ 8.3 → IdentityIQ database: reads and writes
  6. IdentityIQ 8.3 → Entra ID: provision
  7. IdentityIQ 8.3 → Salesforce: provision
  8. IdentityIQ 8.3 → CyberArk: safe membership
after
after

After: IdentityIQ 9.0 on a Jakarta EE 10 application server

Nothing changed for sources and targets. They connect to IdentityIQ 9.0, which now runs on a Jakarta EE 10 application server, with custom code fixed, executed and rebuilt and a rehearsed rollback for the database upgrade.

After: IdentityIQ 9.0 on a Jakarta EE 10 application server Nothing changed for sources and targets. They connect to IdentityIQ 9.0, which now runs on a Jakarta EE 10 application server, with custom code fixed, executed and rebuilt and a rehearsed rollback for the database upgrade. 01 · SOURCES 02 · IDENTITYIQ 03 · RUNTIME 04 · TARGETS joiner · mover · leaver aggregation tested deploy hosted on schema upgrade provision provision safe membership WO HR system Workday Active Directory accounts · groups SP IdentityIQ 9.0 lifecycle · requests· certs Jakarta-ready rules andplugins executed and rebuilt Jakarta EE 10 appserver Tomcat 10.1 · JBoss EAP 8· Liberty IdentityIQ database 9.0 schema · testedrestore Ex Entra ID groups · app roles Sf Salesforce permission sets CA CyberArk privileged accounts
Read the diagram as text
  1. HR system → IdentityIQ 9.0: joiner · mover · leaver
  2. Active Directory → IdentityIQ 9.0: aggregation
  3. Jakarta-ready rules and plugins → IdentityIQ 9.0: tested deploy
  4. IdentityIQ 9.0 → Jakarta EE 10 app server: hosted on
  5. IdentityIQ 9.0 → IdentityIQ database: schema upgrade
  6. IdentityIQ 9.0 → Entra ID: provision
  7. IdentityIQ 9.0 → Salesforce: provision
  8. IdentityIQ 9.0 → CyberArk: safe membership
results

What the client got

What changed for the client once the work was done. Described, not scored: we don't publish client figures.

  1. result 01

    A tested route through every GA release to 8.5

    We went hop by hop to 8.5 on its latest patch, upgrading IQService each time and recording the regression tests. So the pre-check and 9.0 start from a base we know.

  2. result 02

    Every javax reference has a decision

    We turned the iiq-precheck output into a single work list, split into renames, developer fixes and deletions. Every changed BeanShell rule was executed as well as scanned, and plugins were rebuilt against Jakarta EE 10.

  3. result 03

    WebLogic is replaced

    There's a working Jakarta EE 10 application server build, with the JNDI data sources, session settings and load balancer health checks moved over from WebLogic.

  4. result 04

    Upgrade and rollback are rehearsed

    The full upgrade ran at least twice on a production clone, with the schema upgrade timed and go or no-go tests for aggregation, provisioning, requests and certifications. The restore was rehearsed too.

  5. result 05

    The production window has a runbook and a no-go time

    Scheduled tasks are paused during the window. If we have to roll back, provisioning is logged so an aggregation can bring the restored 8.5 database back in line.

what can go wrong

Risks we plan for

  1. BeanShell fails at runtime

    Rules are interpreted when they fire, so a missed import breaks a leaver workflow at night rather than at deploy. Every touched rule gets an execution test.

  2. Unknowns before GA

    SailPoint hasn't published the GA date, minimum source version or full platform matrix. The plan fixes what can be fixed now and leaves the production date open.

  3. WebLogic exit

    Moving off WebLogic is a project of its own, with data sources, clustering and load balancing to rebuild. It's planned separately from the code fixes.

  4. Provisioning during rollback

    If you roll back, anything provisioned after the upgrade started won't be in the restored 8.5 database. Pause provisioning or log it, so an aggregation can reconcile afterwards.

ai in this move

Where AI helps, and where it needs guardrails

SailPoint's Agentic Fabric, generally available since 4 August 2026, governs AI agents alongside people. For the upgrade itself, coding assistants handle the javax to jakarta renames that iiq-precheck reports pretty well. We still treat their output as a draft, running each rule and rebuilding and testing each plugin. If assistants get IdentityIQ data after the upgrade, give them a read-only MCP tool with its own scoped account.

forward deployed engineers →
you keep

What you're left with

We write these for your setup, and they're working documents. Your team should be able to keep things running from them long after we've gone.

  • tests01

    Upgrade route to 8.5 with test results per hop

    yours to keep
  • document02

    iiq-precheck work list sorted into renames, developer fixes and deletions

    yours to keep
  • document03

    Jakarta EE 10 application server build

    yours to keep
  • tests04

    Rehearsal timings and go or no-go test results

    yours to keep
  • runbook05

    Production runbook with tested rollback

    yours to keep
talent and delivery · sailpoint identityiq 9.0

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
01When is IdentityIQ 9.0 generally available?

As of 20 October 2026, there's no GA date from SailPoint. That doesn't stop you doing the 8.5 upgrade, the pre-check and most of the code fixes now. The production date waits for GA.

02Do we have to go through 8.5?

iiq-precheck only runs on 8.5 and 9.0, which makes 8.5 the practical place to stage. Field guidance says to install each intermediate GA release on the way there, and we confirm that route with SailPoint Support for your environment.

03Should we move to Identity Security Cloud instead?

Depends how much custom code you own, and whether you must stay self-hosted. The pre-check report counts what has to change in both cases, which makes the estimates comparable.

04How long does the code work take?

Count the custom rules, plugins, connectors and XHTML forms and you have most of the answer. Small estates can be done in days. Several plugins and custom connectors push it to weeks, before regression testing.

sources 6 sources linked last checked 2026-10-20 content fingerprint ad73bc5b
  1. 01SailPoint blog: IdentityIQ 9.0 (6 Oct 2026)sailpoint.com ↗
  2. 02SailPoint Developer Community: Announcing the IdentityIQ 9.0 Upgrade Pre-Check Utilitydeveloper.sailpoint.com ↗
  3. 03SailPoint Developer Community: IIQ 8.3 to 8.5 upgrade and the 9.0 pre-checkdeveloper.sailpoint.com ↗
  4. 04SailPoint Compass: IdentityIQ will drop support for Oracle WebLogic (29 Jun 2026)community.sailpoint.com ↗
  5. 05Apache Tomcat: 9.0.x end of support (31 Mar 2027)tomcat.apache.org ↗
  6. 06ITBrief: SailPoint launches Agentic Fabric (4 Aug 2026)itbrief.co.uk ↗
Reviewed by the Cohash team Product names are trademarks of their owners. how we handle facts and data →
next step

Planning this move?

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it