Open brainwane opened 6 years ago
Use case: provider creating and submitting an application for enrollment
as you create an application entities created in db by way of hibernate Java objects taged as entities
at each step of enrollment process data on form -> converted into XML-defined Java data types [the controller asks for ... checking part lives in business process. bus process knows how to ask bus model to convert things] passed to Drools to run validation rules error reports converted back into info frontend can use figuring out: that error maps to this input field show errors at top of page
at end, when you hit Submit Enrollment entire enrollment, all data -> serialized to XML XML-defined datatypes know how to do that serialized version dumped into one of the jBPM tables (a queue) jBPM fires up, runs the enrollment business process (the only one we have) calls into our code to, for example, validate further Drools rules, call LEIE to check for exclusion -- this is cms-buiness-process world
And then, at end of that process, assuming no errors, status gets updated risk level gets set - on the enrollment (in the database)
and then it's ready for a reviewer to review!
[question: where does that state live? maybe jBPM is involved? & entry in our part of the database?]
see enrollment process.png
Use case: User login
Spring is configured to only have 1 data source - has in the past been configured to, e.g., look at LDAP, and someday we would like to talk with SAML currently, only: the database
login code lives in cms-web
cms-web talks to Spring and Hibernate
one of the interfaces to find in services project: identity provider DAO
That's fulfilled by DB identity provider DAO
That was in cms-business-process
it knows how to do password hashing & talk to the database
user tries to login. post data. spring finds controller.... built-in .... custom authentication built in .... we configured Spring authentication manager with our primary database provider, fulfilled by domain database authentication provider, which has a reference to the registration service, which has a reference to identity provider, which knows how to talk to the database and do password hashing
delegates password hashing to Spring security
after successful login, redirected to /landing proceed as normal
after successful auth, we've configured Spring-Security to go to a specific URL normal from there on!
Splitting off from #466.
I'll be turning a conversation I had with @jasonaowen today into a prose document, to be used in conjunction with an architecture diagram such as https://github.com/solutionguidance/psm/blob/master/team-notes/psm-architecture-for-stakeholders.odg , to help a developer understand code execution and data flow during the course of 1-2 common use cases.