-
Notifications
You must be signed in to change notification settings - Fork 13
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
Deleting IIAs which have not been approved by both partners #98
Comments
In other GitHub issues some providers were strongly against the option to delete IIA without keeping information about deletion, because that would be confusing for the partners and would not allow us to distinguish a deliberate deletion of an object from an error. Under this assumption the following delete functionality has been proposed during the meeting:
Examples: <iias-index-response> <iias-get-response> Pros: no need to keep deleted IIA in any form, just IIA-id. If we would decide to keep a deletion flag, the object with a flag would have to be stored. |
Mandatory business requirements: "It should be possible to delete an agreement that was never approved by both parties and to notify the partner about it." That means that we have two options:
If we choose (1), we cannot agree to 'hiding' described in #100. |
@janinamincer-daszkiewicz |
You suggest to use Approval to inform partner about deletion? Deletion is on a level of IIA, not on a level of approval. |
Yes, modify that API to include optional status flag that will say that IIA is deleted. Also add optional comments field. This will be faster to implement and will cover all the cases. |
I do not see there clear support for the comments. Anyway, I was told that we have to first wait for the opinion of BPOs/DEG EAC and other bodies to decide if the users want/need comments. When we have their opinion, we will eventually come back to discussion on a technical solution. |
may be not many see it. But this can be proposed in the IF meeting next week |
Please, describe here how the deletion scenario will look like. Step by step. |
I´m sorry but I dont understand this: "In response to IIA get we send the existing IIAs (may be none) and the list of ids of deleted IIAs (if not empty)." If I want to remove an IIA, I send a CNR and when the partner does a GET to see the changes, I don't understand that the response involves more IIAs than requested. The partner only needs a valid response to know that the IIA has been deleted, for example status ='deleted' or somtehing like that. |
Please, show the whole scenario, i.e. the sequence of steps. Let's start from HEI A which wants to delete the Agreement idA. |
In IIA get you may ask for more than one, the more general case is descibed here. |
Sorry , I didn´t know. Then, I get it. |
Hello to everyone. I'm so sorry but I didn't understand why we need to explicit Deleted IIA if they are not approved?! Example of scenario:
some one can explain to me why is that not applicable? no one approved the IIA of the other partner... so I can't understand where is the problem to delete IIA!? i'm sorry but probably it is my limit. thanks in advance |
Hi @skishk |
Thank you @umesh-qs ! 👍 ok so it's just to be sure that is deleted. but which difference do we have if it is deleted or the partner system have a temporary issue (no response, http500 response or 400 etc)? in both situation we can not approve it if it is only a temporary issue when you will try again to approve it, and we call IIA-GET before approving, we will receive a good response so we can approve it. if the partner deleted it i think he will have 2 way:
last option is the the partner wrongly deleted it, and like every not clear situation he will send an email comunicate in the approval that we deleted an IIA is not the right suitable because the approval API is made (like the name say) to approve not to comunicate other things about IIA. in the same way having a history of all deleted IIA i think is not useful and we must think that communication (in any way) of deleted IIA can fail for any reason so we do not solve the situation that we "want" to know if it is deleted. Hope I was helpful |
Hi @skishk Sending explicit delete flag in the API response will tell if the IIA is deleted. Why do you think it will not solve the delete problem? |
I agree with you that are 2 separate process but one depend from the other, if I understand well, I can't delete my IIA if partner approved it (so i need to call APPROVAL API GET to be sure it is not approved) and the other way before approving IIA i need to call IIA-GET to be sure that already exist and not changed(checking contidionHash, but some Partner/Provider don't check all these things 😅 ). probably better way is to add a flag in IIA API response : true/false that could contain only thin information for IIA requested because probably there are providers that execute a hard delete and not only logical. I think we must solve all problems that we have already in production and then with a stable situation adding secondary process like deleting. this is just my opinion 😄 thanks @umesh-qs for comparison 😄 |
@skishk Yes individual system can check if partner is deleting their IIA even when the IIA process is completed (both partners have approved). That check should be done even if DELETE is somehow handled via IIA GET. But how will this be handled when the IIA is already hard deleted. PS: As of now there is no such limitation on not deleting or changing approved IIA. |
As I understand the given 'deletion scenario' is not 'one time shot'? HEI A needs to keep identifiers of the deleted IIAs and share them in future IIA get and IIA index? So why do we need IIA Approval for sharing this information? |
When it is already hard deleted and partner send to you IIA-GET you will answer with empty response because you didn’t find any IIA (with iia-id given) in your system .
i agree with you that now we have no limits on operation and process and that is not helpful. |
I would again insist on getting a concrete proof of delete and not based on assumption. You never know the reason for not getting the IIA details. DELETE response should not be ambiguous.
|
@janinamincer-daszkiewicz I am suggesting approval API (or some other name) to be made bi-directional to get status for self and partner IIA. |
Isn't this contradictory? |
No it is not. Best option is to have API design that gives extract status of the IIA without any ambiguity. |
In your proposal API change is needed and DELETE is not a conclusive proof. We have to response with the information about deletion in the IIA Approval response but give empty response in IIA. That would be misleading. |
If I already know that the IIA is DELETED, they why would I call IIA GET API? |
It can happen anytime. Some providers still call index in a background just to get the most fresh versions of IIAs. |
thank you @janinamincer-daszkiewicz now is more clear. but how could B send a Approval CNR of something not existing (IIA-ID of partner A who deleted his Agreement) ? and unmapped too... |
@skishk I understand your point, we were considering such option internally. We also want to limit changes in specs, this is why we want to discuss all possible scenarious and decide what is better from the implementation point of view. |
Hi, |
partner A is the one is deleting IIA not B. now is more clear , thank you @janinamincer-daszkiewicz |
My bad English, sorry. In my opinion IIA Approval should be deleted from the network, because it would be misleading and would have no business value to keep the Approval for the object which des not exist.
Should B keep it? Forever? A is allowed to delete IIA with A.iia_id, and B is not allowed to delete IIA Approval with A.iia_id?
I tried to explain above. Because when I delete the object, any object, I MUST send CNR. |
Right
It depends. If we decide that B may keep IIA Approval, he need not send IIA Approval CNR.
Right
B still keeps IIA Approval object with A.iia_id, so he can send IIA Approval CNR |
|
"Should B keep it? Forever? A is allowed to delete IIA with A.iia_id, and B is not allowed to delete IIA Approval with A.iia_id?" |
I'm not stupid, I can read; you're insisting in bending the specifications according to your needs (or to some providers' needs).
It's outside of A's interest; it can never reach that information, it's inside B's system.
You're trying again to intrude my system; you cannot compel me to delete anything in my system. It's not possible to delete the approval (object, if you like better), it was never postulated.
I don't claim anything, it's written in the specifications, I hope that you sometimes read them.
The question is: why you take care of that B deletes IIA Approval?
No, this is not true, you're bending again the specifications.
Why you want to change even this specification?
NO! It's forbidden by the rules YOU and your partners have written: Please stop infringing the specifications... |
You have still to explain why you want to know this fact, since that A cannot never ask B for the approval because:
|
Who said that? |
It will stay in your system, OK. |
No, he cannot, please read the specifications: before sending IIA Approval CNR, B MUST call IIA Get, he receives nothing, and this prevents him from sending IIA Approval CNR. |
That's not true. |
No, you don't catch the point: it's not visible in the network because no one has anymore title to ask for it, but it exists.
Of course, because it's up to B deleting it or not; and even if B deletes it, he has not to send the Approval CNR, because the specifications (read them, please) already state this exception:
The approval is to approve, not to remove an approve. |
Please show me the point that limits the sentence to "HIS side". Once I realized that A's IIA Id has been deleted (the first time I call IIA Get) I must never use it. |
you assume it. B could delete everything in his system so have no ID of partner A, who know? it is his business. but ok we assume B has it in his system... send to A an APPROVE CNR with the IIA-ID of Deleted Agreement of A, how A could find his agreement and set it as not approved?! that is the strangest thing in my opinion. Partner A deleted the agreement... the approval and everything is linked to it. in conclusion i just to think well in all these changes if they are really needed or not because it is already possibile to manage all this scenario in production, so why adding all these steps for something very simple? hope it could be helpful for the network |
@skishk Let's look on it from the slightly different angle. Providers decided that B should remove mapping, so B will not keep A.iia_id with his copy. |
empty response because IIA-ID of partner A not exist. (he deleted it) but how Partner A (who deleted his Agreement) could send IIA Approval request of something deleted? i missing this point i'm sorry my fault... |
B is not allowed to send IIA Approval CNR for the object which is not properly mapped. Asking questions is allowed. |
Because anybody can ask about any non-existing object and should get an empty response in such case. |
No, please read the specification: "Client and Server"!! And it is fully reasonable: as @skishk said, why some should overload my system with useless request?
I fully know that I have nothing to be approved, I must not bother the partner with an IIA Approval request |
Even if I accept your request (against the specification), because you said that "anybody can ask about any non-existing object", as a server I'm forbidden by the specification to use the IIA Approval for IIAs that "are not properly mapped (do not provide partner agreement ID)", Therefore, your request falls under the General error handling rules:
This means that if someone hopes to use my system to trigger the cleaning in its system, could not find any help in calling my Approval API. |
so anybody could leave any non-existing ID in his mapping 😆 i'm joking. i'm just afraid of the way we are taking for the new specification... |
@demilatof, the fragment you are quoting was introduced to force partners to create the mapping before approving IIAs and I believe that you know it. It wasn't meant to block the client from sending a request to the Approval API after an approval has already been created. Should removing a mapping from an IIA block the partner from accessing an already published approval? That would be absurd. Let's not forget what the intentions were, because that leads to discussions going the wrong direction. What we should do is to correct the specification so it meets the intentions that we had when introducing such rules. That way we make the specification more bulletproof without changing what we already agreed on. |
It doesn't matter what I know. What matters is what is written, so that whoever will join the project, at any time, can have a specification that describes what he/she has to do to obtain the same result of the others. You're mixing the API with its response, or you're not able to write specifications. If you write:
You mean that the API cannot be used; it extremely clear and simple.
The above sentence means that I can receive an Approval API at any time and ignore an IIA ID if the corresponding IIA has not a correct mapping.
Please explain
No, you're putting in a mess the whole project, be careful!
Please remember that never, and I stress NEVER, has been considered as possibly the removal of an approval. |
That's why we need to correct this sentence. I'm just reminding what we agreed on and what was the purpose of this rule. There is no need to be aggressive. I'm not stating that there is no place for corrections.
Allowing people to block others to be able to send a request to an endpoint by unmapping an IIA is not what was proposed or agreed on. We just wanted to block people from creating an approval and sending a CNR before an IIA is mapped. We will correct this rule so this is clear.
On the technical level any EWP entity may go away and this needs to be handled by the client. On the business level entity removal should take place only in particular cases and needs to obey rules like: We are not saying that an approval may be removed at any moment. We are discussing if on a business level we expect it to be removed when an IIA is removed. |
You forget that once I approved, I approved and I cannot remove the approval. What your trying to introduce is useful only for someone |
Let's continue in #139. |
Infrastructure Forum meeting 2022-12-14.
Functionality to delete IIA which have not been approved by both partners and share information about deletion with a partner has been voted with the following results:
(the results of voting are summarised in an Excel file uploaded to the IF shared drive).
We will continue the discussion in this issue to reach a final solution no later than January 18, 2023 (the next IF meeting).
The text was updated successfully, but these errors were encountered: