aboutsummaryrefslogtreecommitdiff
path: root/docs/spec.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/spec.md')
-rw-r--r--docs/spec.md87
1 files changed, 87 insertions, 0 deletions
diff --git a/docs/spec.md b/docs/spec.md
new file mode 100644
index 0000000..ce336e4
--- /dev/null
+++ b/docs/spec.md
@@ -0,0 +1,87 @@
+# MOA ZS - Specification
+
+## Introduction
+
+MOA ZS is a middleware that allow a sender application (app) to send delivery requests to delivery services.
+
+## Changelog
+
+### Changes Between MOA ZS 1.5.3 and MOA ZS 2.0.0
+
+For version 2.0.0, MOA ZS was rewritten from scratch. The following list summarizes the changes:
+
+- Add compatibility with [zusemsg].
+- Add compatibility with [zusetnvz].
+- Replace the database as persistent storage with an in-memory cache.
+- Update the app2mzs wsdl contract and it's data types to fit the needs of [zusemsg] and [zusetnvz].
+- Integrate signature verification with MOA SP-SS.
+- Drop support for message encryption and signature creation.
+- Target Platform Java 12.
+
+### Changes between app2mzs 1.5.3 and 2.0.0
+
+This section describes, how the app2mzs wsdl contract was changed and explains, why these changes were applied. Due to the nature of the changes (feature additions and feature removals in [zusemsg] 2.0.0 and [zusetnvz] 2.0.0) and due to the fact that changes propagate into the app2mzs interface, some changes are not backwards compatible and require to be integrated into the app.
+
+#### Changes in `mzs:DeliveryRequest`
+
+- The `Server` element was removed from the `DeliveryRequest` type because this element replaced the response from the request that was sent to the ZKOPF. The ZKOPF request does not exist anymore, therefore the `Server` response is not relevant. This change is *not backwards-compatible*.
+- The `ProfileID` option in the `DeliveryRequest/Sender` element was replaced by `msg:SenderProfile` because sender profiles are now registered at the delivery service and referred to via `DeliveryRequest/Sender/SenderProfile`. This change is *not backwards-compatible*.
+- The `SignatureKeyID` element was removed from `DeliveryRequest` because this element refers to the signing key. Since signature creation was dropped, the element is not relevant. This change is *not backwards-compatible*.
+- The optional elements `msg:Logo` and `msg:AdditionalCriteria` were added to `DeliveryRequest/Sender` because they were also added as optional elements to [zusemsg]. This change is *backwards-compatible*.
+- The element `Person` in `DeliveryRequest/Sender` was replaced by the `p:CorporateBody` profile because that is the only sender that is allowed by [zusemsg]. This change is *not backwards-compatible*.
+- `DeliveryRequest/Sender/Address` was removed because the element was dropped in [zusemsg]. This change is *not backwards-compatible*.
+- An alternative choice to the `Person`-`Address` sequence in `DeliveryRequest/Receiver` was added. This choice allows to pass a `p:Identification` element instead of the `Person`-`Address` sequence. The choice was added because it is a new, optional feature in [zusemsg]. This change is *backwards-compatible*.
+- The optional element `tvnz:AustrianAddressesOnly` was added to `DeliveryRequest/Receiver` because this element was also added as an optional element to [zusetnvz]. This change is *backwards-compatible*.
+- The optional element `msg:AdditionalCriteria` and `msg:PreAdviceNote` were added to `DeliveryRequest/Receiver` because these element were also added as optional elements to [zusemsg]. This change is *backwards-compatible*.
+- The element `MetaData` in `DeliveryRequest` was replaced with the `msg:MetaData` element from [zusemsg]. The reason for replacing the `MetaData` element is that the `MetaData` from the app2mzs contract represents the same data that the delivery service expects. Furthermore, the amount of changes between both elements prohibits a straight forward conversion between them. This change is *not backwards-compatible*.
+- The optional `Config` element was added to the `DeliveryRequest` element. This element allows to override individual configuration parameters for the ongoing request. See [Chapter Configuration](#configuration) for more details. This change is *backwards-compatible*.
+- The element `XMLDocument` was replaced as this element was dropped from [zusemsg] in favor of the `msg:Payload` element. This change is *not backwards-compatible*.
+- The types `BinaryDocument` and `DocumentReference` in `DeliveryRequest/Payload` were merged to remove duplicated element and to ensure that all fields that allow a conversion from `mzs:Payload` to `msg:Attachment` are available. This change is not *backwards-compatible*.
+- The element `MD5Checksum` in `DeliveryRequest/Payload/DocumentReference` was replaced with `msg:Checksum`, which was introduced by [zusemsg]. This change is not *backwards-compatible*.
+- The element `msg:Size` was added to `DeliveryRequest/Payload` because it was also added as a mandatory element in [zusemsg].
+- The `sync` attribute was dropped in favor to the element `Config/ServiceTimeout`. This change is not *backwards-compatible*.
+
+### Changes in `mzs:DeliveryResponse`
+
+- The option `DeliveryConfirmation` in `DeliveryResponse` was dropped because it was dropped in [zusemsg]. This change is *not backwards-compatible*.
+- Add `DeliverySystem`, `ZSDeliveryID` and `GZ` to `MessageType`, which is the base type of `DeliveryResponse/Success`, -`PartialSuccess`, and -`Error`. These mandatory elements were added to [zusemsg]. This change is *backwards-compatible*.
+- Add `SignedDeliveryRequestStatus` to` MessageType`. This optional element contains the original response that was send from the delivery service to MOA ZS. The response was not modified such that containing signatures can be verified by the app. This change is *backwards-compatible*.
+- Remove `MZSDeliveryID` because this ID does not exist anymore, as MOA ZS does not maintain requests in a database. This change is *not backwards-compatible*.
+- Add the optional `PreadviceNoteSend` element to `ErrorType` because it was added in
+ [zusemsg]. This change is *backwards-compatible*.
+- Remove `DocumentReference` from `ErrorType` because it was removed from [zusemsg]. This change is not *backwards-compatible*.
+- Add the elements `msg:DeliveryTimestamp` and `msg:RelayedViaERV` to `SuccessType` because they were added in [zusemsg]. This change is *backwards-compatible*.
+
+### Changes in `mzs:DeliveryNotification`
+
+- Remove `DeliveryConfirmation` and `DeliveryStatement` elements from `DeliveryNotification` as those element were dropped from [zusemsg]. This change is *not backwards-compatible*.
+- Add the elements `msg:SenderDetails`, `msg:ReceiverDetails`, `msg:User`, `AdditionalFormat` and `msg:NotificationsPerformed` to the `DeliveryNotification` because they were added to [zusemsg]. This change is *backwards-compatible*.
+
+### Changes in `mzs_mypersondata`
+
+- The element `AbstractPersonType` was defined as `abstract`, since the equivalent type in [zusemsg] is abstract as well. This change is *not backwards-compatible*.
+- The elements `Name` and `DateOfBirth` in `PhysicalPersonType` were set from optional to mandatory because they are mandatory in [zusemsg]. This change is *not backwards-compatible*.
+- The optional element `Affix` was added to `PersonNameType` since this element was added to [zusemsg] as well. This change is *backwards-compatible*.
+- The `CorporateBodyType` was extended by the optional `Target` element that was added to [zusemsg]. This change is *backwards-compatible*.
+- The elements `FullName` and `Organization` in `CorporateBodyType` were set from optional to mandatory because they are mandatory in [zusemsg]. This change is *not backwards-compatible*.
+- The restriction from `CountryCode` was lifted. This change is *backwards-compatible*.
+- The optional attribute `type` was added to `PostalAddressType`. This change is *backwards-compatible*.
+- The optional attribute `MessengerService` was added to `TelephoneAddressType`. This change is *backwards-compatible*.
+
+## Configuration
+
+TODO
+
+## Namespace Declarations
+
+TODO
+
+- msg
+- p
+- mzs
+- tnvz
+
+## References
+
+[zusemsg] Tauber, Arne: Elektronische Zustellung Message Spezifikation 2.0.0 (2019-04-08)
+[zusetnvz] Tauber, Arne and Wolf, Dieter Auer: Elektronische Zustellung Teilnehmerverzeichnis 2.0.0 (2019-04-08)