Public Page
2022-09-20 Architecture Meeting Minutes
Public Page
Date: Sep 20, 2022
ANTITRUST STATEMENT
As participants in this meeting, we need to be mindful of the constraints of antitrust laws. There shall be no discussions of agreements or concerted actions that may restrain competition. This prohibition includes the exchange of information concerning individual prices, rates, coverages, market practices, claims settlement practices, or any other competitive aspect of an individual company’s operation. Each participant is obligated to speak up immediately for the purpose of preventing any discussion falling outside these bounds.
Agenda
Antitrust
Network/Welcome
Review Face to Face Accomplishments
Review Jira Board
Meeting Minutes
Antitrust Accepted
Meeting minutes reviewed and Accepted
Review of Face-to-Face Accomplishments
We learned as a practice that importing the JSON Schema is not enough.
Unbundled schemas re easier to read
Stoplight needs bundled objects when creating API
Unbundled did not have examples or able to expand objects
Open API needs URL and Security to work and we have to manually update examples
We added items to Jira to either work for the release or to work on in future releases. We need to focus on what we have to have for the first version, and we can look at the other jiras for the next release.
We had to make some schema changes to get the open API to work.
Stoplight does not like the Any of, so all of these had to be removed for the tool
We agreed that we would do this for the tool at this time, but need to look at what is going on and bring it to stoplight, so a Jira was created
We ran into the schema for the claim folder being too large, so stoplight would not create an example.
workaround was to create the schemas in XML spy and then copy it in the Stoplight Studio
we still need to do work on the examples
We had instances that we thought would break when some changes were made, but they remained valid, so need to look at the instances for valid and invalid and come up with more instances.
Mike did a demo
We are implementing a rest service for Chapter 16 of the BMS, Claim Save Folder.
The demo showed 5 different methods with the first being the pose.
The URLS were set up and then an endpoint called claims was created to do the post. The body of the message used vehicle, party and claim. This showed the bundled schema.
Stoplight allows you to add different responses, the 200 is for acceptance the 400 is for error message, the 401 is temptation error, 404 is not found and 500 indicates you have a server error and a 503 indicates the server is busy.
The other verbs, we can pass a claim number and retrieve the information and we can delete based on the claim number.
Postman is a tool that test the YAML file to test the API
The release for October 19 will include a few things for the BMS that was requested and then CAPIS. We prioritized the work on what an open AP spec for CAPIS would look like over more tinkering with the schema it is looking good. We are kind of there.
We have a schema that included parties, claim and vehicle
We can show how we developed this schema
We can make an open API Spec envisioning all the endpoints for Create, Read, Update and Delete
We have examples.
We are not calling a victory here at the 40-yard line, but I think this is what the committee had in mind.
We will be constantly changing the schemas as we move forward with other versions, this is much like how the BMS started.
Build and Batch validation is working
We have bundles folder that has each of the endpoint schemas and for each of those schemas we have an instance directory with valid and invalid instances.
We want to make the examples folder for each of those instances as well and run them though the batch validation.
Request for Paul to come up with a Claim example that would represent a workflow.
We can have multiple examples
Patch research
Dan does not like Arrays
Mike did research on the put and the patch and it says when you do a put you send the whole message, like doing on update on the object. If you do a patch you can send only certain properties.
The JSON Patch is a technology, and the patch that we are talking about is part of the HTTP specification
The patch uses the same schema
If you use the patch, you could just send the VIN and it would only update the VIN
If someone sends just the VIN, how is the schema we have now going to validate that. The patch with just a VIN number is not an entire object, its just an update to one field.
the put you send the whole message
Unlike the soap implementations we are doing today where you get the information about the assigment you are updating or deleting from the payload. In rest, the resource that you identified, so you know the claim it is by the endpoint that your hiding.
I guess you could say the schema for the patch is just an object and you don't say what any of the properties are and then you could code it to where whatever you see there, if it happens to match up with something, you change it or delete it. But I hope that's not the direction we're going in.
Tabling the conversation of patch for a later date.
Schema should not be by verb it should be by entity.
Post vs Put
The Put will replace everything that was previous, the delete will delete based on claim number in the URL
The Post initiates the claim and sends back a claim number
The Put can be a copy of the post and is intended to update whatever you send.
put is supposed to wholly replace what was created via the post. So if things are issing, they get deleted, and if they are changed they get updated.
So the big difference between there's two. Basically there's two ways to update an entity. You can either do a put or you can do a patch, and if you do a put, the expectation is is that you have everything that you're going to present a fully filled out new claim with whatever fields updated are updated the way that you want and with patch it's not that way. You only provide the ones that are going to be updated and the fact that they're missing doesn't mean that you're asking for them to be deleted.
Andy’s work on scripting (Andy shared his screen)
Our workspace, and so you've got package dot Jason. And then right next to it, you've got package lock and notice that our package that JSON is relatively small, however, it's not, its a very large file. The package lock is very, very large, goes the covers a whole bunch of stuff, and so the idea here just in it's super high-level terms. The idea here is that when you create or when we use a package dot JSON file to manage dependencies, we list things in here that we need, such as AGV. You've heard us talk about that. There's been we've used this FSX extra. Everything in here.
It is aa dependency. It's listed as dependencies and if you look at that library, it has its own dependencies. So, if we were to go into a JV, if we look at these in the node directory, node modules and we go to ajv and look at its package dot JSON it has a whole bunch of dependencies.
The idea is anytime you make a change when you do an NPM install and you install new or updated stuff, then if you actually make code changes too then you definitely want to commit those. You know your package lock back. It's a check and balance basically.
Up Next
Work on Examples
How can we use tags?
Up Next
Antitrust
Network/Welcome
Work through examples of the OpenAPI document
Discuss of PATCH Endpoint
Action items
Decisions
Participants
Paulette Reed
Andy Bober
Paul Barry
Dan Webster
Mike Hastings
Brad B
Jeff Schroder
Participants in the meetings are noted for your information. If you have questions on the committee’s activities, please contact a recent attendee. Architecture Committee