lispercat / sailpoint-iiq-dev-accelerator

VSCode extension to accelerate and facilitate development by directly interacting with the target Sailpoint IIQ server
MIT License
30 stars 11 forks source link

ExportObjects : Reverze tokenization issues #52

Closed stevealexandre closed 1 year ago

stevealexandre commented 1 year ago

Hi,

First of all, thanks for this amazing extension for vscode. I'm really bored of Eclipse ui with his mem usage and the extension is no more supported by Sailpoint (confirmed by them, they will switched to vscode asap).

I have an issue about how reverze tokenization is managed. With the actual implementation, it act like a contains and replace some value which are not necessary and it should try to reverze first on full value before checking a part of value in token. Also, it should have a blacklist on some values which it should not try to reverze.

Examples

  1. Value which should not reverze We have two env var defined like this :

    %%Role_IT_AD_name%%=AD
    %%Role_IT_AD_displayName%%=AD

    After exporting Applications object with reverze tokenization, the reverze tokenize a part of the connector class value :

    <Application connector="sailpoint.connector.%%Role_Orga_%%Role_IT_%%Role_IT_AD_displayName%%_name%%_displayName%%LDAPConnector"
  2. Value reverze contains and take only the first key found We have two env var defined like this :

    %%AD_IIQSERVICE_HOST%%=server
    %%OTHER_APP_SOURCE%%=\\server\data\otherAppAcc.csv

    After exporting Applications object with reverze tokenization, the reverze tokenize a part instead of taking the full value :

    <entry key="file" value="\\%%_AD_IIQSERVICE_HOST%%\data\otherAppAcc.csv"/>
  3. Empty var not supported Also it doesn't support any empty var value

    %%AD_Externe_GDM%%

    Result a file like this with an error of the plugin : Plugin error

It's a great functionnality to reverze an xml which is not compliant between the system and git/local code but need to be reviewed for a better reverze management.

lispercat commented 1 year ago

@stevealexandre looks like it's a valid suggestion, feel free to contribute to the project! Reverse tokenization is a broad topic, and different people have different view on how it should be done. Personally for my projects I never really used it, so whatever limited options we have now just covers some basic needs. Again, feel free to propose a PR, looks like you have a broad range of options to cover.