-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
schemas: Add for FCMaterials
data
#193
Comments
We also need to be 100% sure that the CAPI data is there generally, and not only for the owner of the FC. |
I'd say it is. My bubble commander doesn't have a carrier and got that data from 3 different carriers (I only tried those 3). |
As requested. |
I've had a different idea about Journal vs CAPI. Rather than wanting to be 99.9% sure of the differences in format, and what data might be in one format and not the other... ... why not just two separate schemas? Other than PII removals both can then just be "this envelope, plus what's in the file (Journal) or CAPI data". So, fcmaterials_journal-v1.json and fcmaterials_capi-v1.json. Especially for the CAPI I have low confidence that Frontier won't suddenly change something about it without pre-notifying us. Keeping it simple, and separate, means that Senders won't need to adjust and Listeners can be as nimble as they feel the need to be. |
With not transforming either format to the other we will end up with e.g. EDMC doing
|
I agree with the above. But we can have one schema, just have it have an object with the data in, named either "CAPI" or "Journal". |
For EDMC I'm happy to support two different schemas, it goes through different code paths anyway. |
After changing the in-development schema to allow for CAPI data as well a bit of a discussion ensued on Discord as to if we should have a single schema allowing both data sources, or a separate schema for each. Whilst I was convinced enough to try a single schema, I personally still think separate schemas keep things simpler for both Senders and Listeners. I could easily see some Listeners switching on @clonedArtie appears to be Team One Schema To Rule Them All Any other comments from the likes of @robbyxp1 @AnthorNet @Tkael @themroc5 ? You can in effect see examples of the data format differences in https://edgalaxydata.space/EDDN/dev/Unknown-2022-08-31.jsonl . Array (Journal) versus dictionary (CAPI, and then it contains two keys, the value of which can either be an empty array, or a non-empty dict), different cased key names, different form of the (symbolic) name, Journal has Demand/Stock when CAPI only has one (due to that split into two keys). Listeners are very much going to want to check the data source (be that key or schema name) and then use different code. No, Senders won't be trying to transform one into the other, that runs into issues if there are changes, whereas each Listener can be much more nimble than waiting for "1. Sender dev codes changes, 2. Sender dev releases new version, 3. Sender users upgrade to new version", which might also call for Listener changes as well. |
So, message": {"CarrierID": "X3F-N5Z", "CarrierName": "WARD'S OLOGIES", "Items": Comments: Items is a direct copy of the .json, fine. "message": {"CarrierID": "X3F-N5Z", "Items": {"purchases": [], "sales": Comments: names are different, not a problem, but where is odyssey and horizons flags? And lacking CarrierName but I guess this is CAPI. But then later you had: "message": {"CarrierID": "X3F-N5Z", "Items": {"purchases": [], "sales": with them back in. I'm happy its one schema, and i'm happy there are not complicated name translations at the client end to do. |
Yes, as I noted on Discord, I initially failed to actually set the The current I'm most interested in hearing from all the major EDDN Listeners now. If they've not spoken up by about this time tomorrow then I'll make the decision myself, which is currently leaning towards:
|
That 24 hours notice is now up. I've started work to use a schema per data source for this. This includes updating some documentation around that for the future. |
The PR is now updated for separate schemas, including the _capi README being in first draft form. These schemas are now up on |
One last round of end-to-end testing just now. Results are in https://edgalaxydata.space/EDDN/dev/Unknown-2022-09-02.jsonl from This covered:
My focus was on the CAPI side of things, but having to be at the bar tender to buy/sell meant I also triggered the Journal side for most of this. All passed through without issues in the EDMC branch, and no rejections/errors on the So, unless anyone can spot a problem by 12:00 UTC tomorrow, I'll merge this and move towards putting it up on the live service. |
The schemas are now live. |
Odyssey Update 12 added a new
FCMaterials
Journal event and accompanying file. This lists any Fleet Carrier/Bartender orders for buying or selling Odyssey-specific materials (used to upgrade suits and weapons).There is also data for this in the CAPI
/market
endpoint.So, we want a new EDDN schema to allow for relaying data about this.
FCMaterials.json
format as its basis.Example
FCMaterials.json
:CAPI example (not from the same FC as above):
The text was updated successfully, but these errors were encountered: