Hi All, I would like to ask you all about how can I trigger and apply to call API or do another task after manual task completed?
In my case I have a lot of changing on the APP_A, that is the csv file, then it is difficult for source or app owner to add it on csv, I would like to apply it in API or another way that be easier than the manual way, is it has solution for this?
if your source is a delimited file you can use an API that will update the source account attribute values through an external UI.
I built a python dash app to do this.
1. Configuration Tab:
This tab must contain input fields for:
Tenant Name
Source ID
Client ID
Client Secret
Include a button labeled “Fetch Accounts”.
2. Account Management Tab:
This tab should feature a dash_table.DataTable that will display the account data.
The table must be interactive, allowing users to:
Directly edit the values in any cell.
Delete entire rows.
Sort and filter the data.
Include a button labeled “Submit Updates”.
Application Workflow and Logic:
Fetching Data:
When the user clicks “Fetch Accounts,” the application must first make a POST request to the SailPoint /oauth/token endpoint to get an access token using the provided credentials.
Using this token, it will then make a paginated GET request to the /beta/accounts endpoint, filtering by the sourceId to retrieve all accounts from the specified source.
The fetched data should be stored client-side in a dcc.Store component in JSON format.
Displaying Data:
The data from the dcc.Store should be loaded into a pandas DataFrame and displayed in the interactive dash_table.DataTable on the “Account Management” tab.
Updating Data:
After the user has finished editing or deleting accounts in the table, they will click “Submit Updates.”
This action must take the current state of the data from the table, convert it into a CSV format in memory, and then upload it.
The upload will be performed by making a POST request with multipart/form-data to the /beta/sources/{source_id}/load-accounts endpoint. This will replace the existing accounts on the source with the new data from the CSV.
Finally, please include a status display area (e.g., a Div) to provide feedback to the user, confirming successful operations or showing any API errors that occur."