Uploaded image for project: 'FHIR Specification Feedback'
  1. FHIR Specification Feedback
  2. FHIR-43563

Subscription lifecycle doesn't account for governance

    XMLWordPrintableJSON

Details

    • Icon: Change Request Change Request
    • Resolution: Persuasive with Modification
    • Icon: Medium Medium
    • FHIR R5 Subscriptions Backport (FHIR)
    • 1.2.0-ballot
    • FHIR Infrastructure
    • STU
    • Channels
    • Hide

      The requirement is part of the contract for both the server and the client so that each has proper expectations. Specifically, clients have an expectation that once a handshake has been received, they will start receiving notifications.

      The specification should clarify that the server must do additional processing prior to sending the handshake: 

      quote
      When a Subscription is created for a REST Hook channel type, the server SHALL set the initial status to requested, pending any internal requirements and verification of the nominated endpoint URL. Once accepted in a requested state, a server SHALL be responsible for updating the status to either active or error. Servers that require additional process or review must perform those steps before sending the handshake to the notification endpoint. After a successful handshake notification has been sent and accepted, the server SHALL update the status to active. Any errors in the initial handshake SHALL result in the status being changed to error.
      quote

      Show
      The requirement is part of the contract for both the server and the client so that each has proper expectations. Specifically, clients have an expectation that once a handshake has been received, they will start receiving notifications. The specification should clarify that the server must do additional processing prior to sending the handshake:  quote When a Subscription is created for a REST Hook channel type, the server SHALL set the initial status to requested , pending any internal requirements and verification of the nominated endpoint URL. Once accepted in a requested state, a server SHALL be responsible for updating the status to either active or error . Servers that require additional process or review must perform those steps before sending the handshake to the notification endpoint. After a successful handshake notification has been sent and accepted, the server SHALL update the status to active . Any errors in the initial handshake SHALL result in the status being changed to error . quote
    • Clarification
    • Non-substantive

    Description

      The REST-Hook channel section describes a Subscription lifecycle:

      "When a Subscription is created for a REST Hook channel type, the server SHALL set initial status to requested, pending verification of the nominated endpoint URL. After a successful handshake notification has been sent and accepted, the server SHALL update the status to active. Any errors in the initial handshake SHALL result in the status being changed to error."

       

      The lifecycle of Subscription.status from requested to active/error seems too strict, especially for administratively created subscriptions (see FHIR-43505).  Specifically, the "After a successful handshake notification has been sent and accepted, the server SHALL update the status to active." requirement implies (because of the SHALL) that a handshake is sufficient to move from requested to accepted, when in fact you might need (at least) two activities (the handshake, and the async IT governance approval).  I suppose you could say that approval has to happen before the client submits the Subscription request.

       

      But my main point is that only a handshake may not be sufficient to activate a subscription, so we should loosen the SHALL so a server can do more than just a handshake before activating the subscription.

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            cooper.thompson Cooper Thompson
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: