Efficient Deployment Ideas
This page contains notes about ideas that are supposed to make midPoint deployment more efficient.
Product Improvements
-
User interface support to resolve "disputed" situation.
-
Visual mapping editor
-
ML recommender for probabilistic correlation.
-
Validation of script statements when importing object, not only XML/JSON/YAML. Currently the object can be imported even with syntax errors in Groovy
-
Ability to disable mappings or attributes in schema handling/object template instead of commenting/removing them
-
Search gui with auto completion (a’la JIRA) to create query
-
Eclipse/IntelliJ plugin
-
Unification of query playground and eclipse plugin.
-
MidPoint Studio - maybe even consider abandoning eclipse and move to IntelliJ. But Jasper and Directory Studio may prohibit that.
-
Improve error handling (e.g. reference resolution fails with error 500 while Import from GUI shows the error)
-
Validation of script statements when importing object, not only XML/JSON/YAML. Currently the object can be imported even with syntax errors in Groovy
-
Support for diff-ing objects in a more user-friendly way (currently possible to diff local and remote object with delta results)
-
Simulation: e.g. to run a mapping or functionLibrary with some repository data or user provided data and see the results without storing anywhere
-
-
Resource wizard
-
Make it really a wizard, not just configuration GUI
-
Integrate resource configuration samples as templates
-
Better handling of association definitions
-
-
Improve error handling and reporting in midPoint (but how exactly?)
-
JSON/YAML tooling: data conversion GUI, better doc, samples (automatic conversion), etc.
-
Automatic reload (without restart)
-
Extension schema
-
Connectors
-
-
Better "preview changes"
-
For each value show where it came from: inbound/outbound/template, which specific mapping produced it
-
-
Better error messages
-
XML errors: indicate the line number of the problem
-
Script errors: show line number in the XML file
-
Note: Sometimes, both will refer to line numbers of the object stored in repository, which may be different that source line numbers. But better than nothing.
-
Maybe showing also in which mapping/attribute this error in script happened, would help (if we’re not showing that already)
-
-
-
Object import/validation
-
XML import/validation that does not care about ordering of elements
-
Validate scripts, whether they are compilable: MID-5343
-
-
Add Connectors page to Resources part of GUIMID-5332
-
Data quality validation:
-
Validation expressions, e.g. "Only one first name", "Does not contain national characters", etc.
-
Mark invalid data (Can we use "provenance"?)
-
Prohibit use of invalid data (e.g. in case that the data got "broken" in the feed). Do not use such data for provisioning. Q: what to use? Old value?
-
Report invalid data to people responsible for data source (e.g. HR)
-
Protect against big unexpected changes, e.g. "empty feed problem". Can we use thresholds here?
-
Mark "suspicious" records in the feed, e.g. HR accounts that were not updated for several years
-
-
Incremental deployment
-
Connect target system in steps: 1. create only, 2. create+update, 3. create+update+disable/delete. Easy way how to configure this.
-
Report data discrepancies. E.g. run reconciliation, but do NOT correct the data. Just record the problems and report them.
-
Account situation report (assume the accounts are assigned, but do not create/delete them, just report discrepancies)
-
Attribute/association differences
-
-
-
Notifications
-
How to resend failed e-mail notifications?
-
In-app notifications?
-
Notification log?
-
-
Audit
-
Often used for diagnostics/visibility
-
Audit log viewer UX - rework the search paradigm? Align with ordinary search widget?
-
-
Query language
-
Make it better (non-XML)
-
-
Reporting
-
Get rid of Jasper
-
How to do integrations? How to export/import report data to other tools?
-
Process Improvements
-
Better samples. Samples from practice, not just "theoretical" and testing samples.
Unsorted
-
Documentation generator (e.g. from resources, to generate technical documentation about setup, mappings etc.)