diff --git a/docs/Release Notes/Version_0.5.md b/docs/Release Notes/Version_0.5.md index d76af23ca9c2b293d0e71ae385f8fcf5d58f5787..8e6309ab4bc63677be99ae340234e3ba6990e795 100644 --- a/docs/Release Notes/Version_0.5.md +++ b/docs/Release Notes/Version_0.5.md @@ -1,18 +1,12 @@ # Nächste Version (0.5) -<!-- theme: warning --> -> ### Hinweis -> Die Basis-URLs für diese Version sind: -> - https://sender.fiep-poc.de/beta5/ -> - https://subscriber.fiep-poc.de/beta5/ +## Übergreifende Änderungen -## Dokumentation -- Release Notes mit aufgenommen -- Dokumentation zu OAuth integriert -- Token URL eingetragen -- Postman Collection & Environment integriert - -## Modelle +### Basis-URLs +Die Basis-URLs werden ab sofort mit jeder neuen Version geändert, damit ein paralleler Betrieb mehrerer API-Versionen möglich ist. +Die Basis-URLs für diese Version sind: +- https://sender.fiep-poc.de/beta5/ +- https://subscriber.fiep-poc.de/beta5/ ### CR-1: Diversen Modellen den Discriminator "type" hinzugefügt: - models/application/applicant-contact-info.json @@ -25,6 +19,17 @@ - models/common/individual.json - models/destination-no-id.json +### CR-5: Zusätzliche Properties verbieten +Wo möglich wurde `"additionalProperties": false` gesetzt um weitere Properties zu verbieten. + +## Dokumentation +- Release Notes mit aufgenommen +- Dokumentation zu OAuth integriert +- Token URL eingetragen +- Postman Collection & Environment integriert + +## Modelle + ### Destination models/destination-no-id.json diff --git a/models/application/applicant-contact-info.json b/models/application/applicant-contact-info.json index 90278b9ea35aab1791b7b43259785986a4adfcb6..15f55a4b99d0049d486739af9381c619a12110aa 100644 --- a/models/application/applicant-contact-info.json +++ b/models/application/applicant-contact-info.json @@ -1,7 +1,8 @@ { - "title": "Applicant Contact Info", "type": "object", + "title": "Applicant Contact Info", "description": "Kontaktdaten des Antragstellers", + "additionalProperties": false, "properties": { "physicalAddress": { "oneOf": [ @@ -15,6 +16,7 @@ "$ref": "../common/address-international.json" } ], + "description": "Physikalische (Post-)Adresse", "discriminator": { "propertyName": "type", "mapping": { @@ -22,8 +24,7 @@ "postbox": "../common/address-postbox.json", "international": "../common/address-international.json" } - }, - "description": "Physikalische (Post-)Adresse" + } }, "telephone": { "type": "array", @@ -38,6 +39,7 @@ "items": { "type": "object", "description": "", + "additionalProperties": false, "properties": { "channelType": { "type": "string", diff --git a/models/application/applicant-organization.json b/models/application/applicant-organization.json index 125cd3fb5a790a09beebc87a4f0a4453cf4070b7..41a56c6be09ff057f2e55f3d46f651bc86feea7d 100644 --- a/models/application/applicant-organization.json +++ b/models/application/applicant-organization.json @@ -19,6 +19,7 @@ "description": "Im Namen der Organisation auftretende natürliche Personen, wie z.B. Geschäftsführer, Vorstände oder Prokuristen", "items": { "type": "object", + "additionalProperties": false, "properties": { "identityInfo": { "$ref": "../common/eID-natural-person.json" @@ -32,6 +33,7 @@ "organizationInfo": { "type": "object", "description": "Informationen über die Organisation", + "additionalProperties": false, "properties": { "legalName": { "type": "string", @@ -65,6 +67,7 @@ "$ref": "../common/address-international.json" } ], + "description": "Offizielle Adresse", "discriminator": { "propertyName": "type", "mapping": { @@ -72,8 +75,7 @@ "postbox": "../common/address-postbox.json", "international": "../common/address-international.json" } - }, - "description": "Offizielle Adresse" + } }, "legalRepresentatives": { "type": "array", @@ -87,6 +89,7 @@ "orgValidation": { "type": "object", "description": "Informationen, ob diese Organisation vom sendenden System identifiziert wurde", + "additionalProperties": false, "properties": { "method": { "type": "string", diff --git a/models/application/document.json b/models/application/document.json index fcab2fed0c5e242fc9280f582f216c2b333bfda7..22e8312c6c0bb14db98d27209aafb6d01991be1d 100644 --- a/models/application/document.json +++ b/models/application/document.json @@ -1,37 +1,8 @@ { - "title": "Application Document", "type": "object", + "title": "Application Document", "description": "Ein im Antrag (Application) enthaltenes Dokument (z.B. Antragsformular oder hochgeladene Anlage)", - "x-examples": { - "example-1": { - "docId": "1", - "purpose": "form", - "size": 39273, - "mimeType": "application/pdf", - "filename": "antrag.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340" - } - }, - "example-2": { - "docId": "2", - "purpose": "attachment", - "size": 894834874, - "mimeType": "image/jpeg", - "filename": "scan.jpg", - "description": "Scan der Bescheinigung", - "hash": { - "algorithm": "SHA-256", - "digest": "e1762f14d9924e37b32f1c81dfd256410af462f5136415c96877efa8c80345d0" - } - } - }, + "additionalProperties": false, "properties": { "purpose": { "type": "string", diff --git a/models/application/metadata-no-id.json b/models/application/metadata-no-id.json index e133c27ea2af2ffd442de8f62e560c5151b66691..3a787339c7ad20581199e3a1563b52323def9adf 100644 --- a/models/application/metadata-no-id.json +++ b/models/application/metadata-no-id.json @@ -1,137 +1,8 @@ { - "title": "Application Metadata without ID", "type": "object", + "title": "Application Metadata without ID", "description": "Metadaten eines Antrags noch ohne ID, zum Anlegen eines neuen Antrags. Nach dem Zuweisen der `application-id` wird das Modell [Application Metadata](metadata.json) verwendet.", - "x-examples": { - "example-1": { - "additionalReferenceInfo": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "caseId": "DF/8923" - }, - "contentStructure": { - "data": { - "size": 9438, - "schema": { - "mimeType": "json", - "schemaSource": "none" - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 39273, - "mimeType": "application/pdf", - "filename": "antrag.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340" - } - }, - { - "docId": "2", - "purpose": "attachment", - "size": 894834874, - "mimeType": "image/jpeg", - "filename": "scan.jpg", - "description": "Scan der Bescheinigung", - "hash": { - "algorithm": "SHA-256", - "digest": "e1762f14d9924e37b32f1c81dfd256410af462f5136415c96877efa8c80345d0" - } - } - ] - }, - "publicServiceType": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leikaId": "99050012104000", - "otherIdentifiers": [ - { - "id": "8664844", - "schemeURI": "service.niedersachsen.de", - "schemeName": "Serviceportal Niedersachsen" - }, - { - "id": "354824", - "schemeURI": "buerger.thueringen.de", - "schemeName": "Zuständigkeitsfinder Thüringen" - } - ] - }, - "applicants": [ - { - "identifier": [ - { - "id": "918", - "schemeName": "Antragsportal", - "schemeId": "urn:com:example:antragsportal:user" - } - ], - "contactInfo": { - "physicalAddress": { - "street": "Kurzer Weg", - "houseNumber": 7, - "postalCode": "12345", - "city": "string", - "addressSupplement": "string" - }, - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": true, - "description": "string" - } - ], - "electronicAddresses": [ - { - "channelType": "Service-Account-Mailbox", - "address": "string" - } - ] - }, - "identityInfo": { - "gender": "m", - "nationality": "string", - "familyName": "string", - "givenName": "string", - "birthName": "string", - "doctoralDegrees": "string", - "artisticName": "string", - "dateOfBirth": "2020-04-16", - "placeOfBirth": "string", - "placeOfResidence": { - "street": "string", - "houseNumber": null, - "houseNumberSuffix": "st", - "postalCode": "strin", - "city": "string", - "addressSupplement": "string" - } - }, - "authentificationInfo": { - "timestamp": "2020-04-16T06:50:39Z", - "authentificationToken": {}, - "authentificationMethod": "string", - "assuranceLevel": "low" - } - } - ], - "payment-info": { - "reference": "TP/93/GDP", - "usage": "Gewerbeanmeldung", - "amount": 17.3, - "timestamp": "2020-03-03T12:38:23Z", - "status": "success", - "transaction": "1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82" - } - } - }, + "additionalProperties": false, "properties": { "applicants": { "type": "array", @@ -151,12 +22,14 @@ "data", "docs" ], + "additionalProperties": false, "properties": { "data": { "type": "object", "required": [ "schema" ], + "additionalProperties": false, "properties": { "size": { "type": "integer", @@ -177,6 +50,7 @@ }, "additionalReferenceInfo": { "type": "object", + "additionalProperties": false, "properties": { "subject": { "type": "string" diff --git a/models/common/authentification-info.json b/models/common/authentification-info.json index 69665660f20d3c0efe97935ab60f6b9b65197870..440b551d4b0bf1a7261d44bfd77a397ed965ce49 100644 --- a/models/common/authentification-info.json +++ b/models/common/authentification-info.json @@ -1,6 +1,7 @@ { - "title": "authentification-info", "type": "object", + "title": "Authentifikation", + "additionalProperties": false, "properties": { "assuranceLevel": { "type": "string", @@ -24,5 +25,6 @@ "required": [ "assuranceLevel", "authentificationMethod" - ] + ], + "description": "Informationen über die Authentifikation der Person." } \ No newline at end of file diff --git a/models/common/eID-org-acting-person.json b/models/common/eID-org-acting-person.json index ce2545555cbecc53314dfe5f74df4c1cd10b6196..1cd498846e1dfcfa568ba34aed40909fa8c37da3 100644 --- a/models/common/eID-org-acting-person.json +++ b/models/common/eID-org-acting-person.json @@ -1,6 +1,7 @@ { - "title": "Identity Information without Address", "type": "object", + "title": "Identity Information without Address", + "additionalProperties": false, "properties": { "placeOfBirth": { "type": "string", diff --git a/models/common/identifier.json b/models/common/identifier.json index 25caf8da6d61b43412b2de520db4013a629563e5..bf24327386c1e0d6462f475c9eac3c9e418c3d6d 100644 --- a/models/common/identifier.json +++ b/models/common/identifier.json @@ -1,22 +1,8 @@ { - "title": "Identifier", "type": "object", + "title": "Identifier", "description": "Identifiers are keys that are owned by either the sender, receiver or a third party. If the keys used are owned by either sender or receiver, no meta data has to be specified by means of attributes. The table below specifies the use of attributes for the identifier types when they are owned by a third party.", - "x-examples": { - "example-1": { - "id": "978-1-894049-23-8", - "schemeId": "ISBN" - }, - "example-2": { - "id": "99050012104000", - "schemeURI": "https://www.xrepository.de/details/urn:de:gkleika:leika:leistung", - "schemeDataURI": "https://www.xrepository.de/details/urn:de:gkleika:leika:leistung_20180705#version", - "schemeVersionId": "urn:de:gkleika:leika:leistung_20180705", - "schemeAgencyName": "Geschäfts- und Koordinierungsstelle LeiKa beim Ministerium der Finanzen des Landes Sachsen-Anhalt (GK_LEIKA)", - "schemeName": "Leistungen des LeiKa", - "schemeId": "urn:de:gkleika:leika:leistung" - } - }, + "additionalProperties": false, "properties": { "id": { "type": "string", diff --git a/models/common/individual.json b/models/common/individual.json index 1023123168212e7e80d9ffac0fcdc7fa537e64a0..404bbe9d0bfa7c8daada6c35fdb700f2e3468f7b 100644 --- a/models/common/individual.json +++ b/models/common/individual.json @@ -1,24 +1,8 @@ { - "title": "Individual", "type": "object", + "title": "Individual", "description": "Natürliche Person", - "x-examples": { - "example-1": { - "formOfAddress": "Herr", - "academicTitle": "Dr.", - "firstName": "Werner", - "lastName": "Mustermann", - "contact": { - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "Dienstliche Telefonnummer" - } - ] - } - } - }, + "additionalProperties": false, "properties": { "formOfAddress": { "type": "string", @@ -66,8 +50,9 @@ } }, "contact": { - "description": "Kontaktmöglichkeiten einer Person (natürliche Person oder Organisation)", "type": "object", + "description": "Kontaktmöglichkeiten einer Person (natürliche Person oder Organisation)", + "additionalProperties": false, "properties": { "telephone": { "type": "array", diff --git a/models/destination-no-id.json b/models/destination-no-id.json index d00068c54049c249cf20bf32c36a64cdae64dc63..7871291dff71ee0065bd5fc8422894e74a374c81 100644 --- a/models/destination-no-id.json +++ b/models/destination-no-id.json @@ -1,32 +1,8 @@ { - "title": "Destination without ID", "type": "object", + "title": "Destination without ID", "description": "Daten eines technischen Übergabepunkts (Ziel der Übertragung - z.B. ein Fachverfahren) noch ohne ID, zum Anlegen eines neuen Übergabepunkts. Nach dem Zuweisen der `destination-id` wird das Modell [Destination](destination.json) verwendet.", - "x-examples": { - "example-1": { - "public-organization": { - "organizationName": "Gewerbeamt Musterhausen" - }, - "technicalContact": [ - { - "firstName": "Werner", - "lastName": "Mustermann", - "contact": { - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "Dienstliches Festnetz" - } - ] - } - } - ], - "callback": { - "callbackURI": "https://www.example.com/callback" - } - } - }, + "additionalProperties": false, "properties": { "publicOrganization": { "type": "object", @@ -51,8 +27,8 @@ "propertyName": "type", "mapping": { "national": "./common/address-national.json", - "postbox": "./common/address-postbox.json", - "international": "./common/address-international.json" + "international": "./common/address-international.json", + "postbox": "./common/address-postbox.json" } } }, diff --git a/models/error-body.json b/models/error-body.json index fef50dd99ab4569433ff10cce5984d1fe76ea2c0..f284cfc4587439cc998a5e4f7246c7c77f542145 100644 --- a/models/error-body.json +++ b/models/error-body.json @@ -1,11 +1,13 @@ { - "title": "Error Body", "type": "array", + "title": "Error Body", "description": "Der Inhalt (Body) von HTTP Responses bei Fehlern.", + "minItems": 1, "items": { - "title": "Error", "type": "object", + "title": "Error", "description": "Rückmeldung zu einer nicht erfolgreichen Operation", + "additionalProperties": false, "properties": { "code": { "type": "integer", diff --git a/reference/callback.json b/reference/callback.json index a5fba3c15803932b9e4e733d76a0d4b214d1ce2e..85d7d65f94faa80afd7f7ebfad4d8de6c6cc4285 100644 --- a/reference/callback.json +++ b/reference/callback.json @@ -44,6 +44,7 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "destinationId": { "type": "string" @@ -52,14 +53,22 @@ "type": "array", "items": { "type": "object", + "additionalProperties": false, "properties": { "applicationId": { "type": "string" } - } + }, + "required": [ + "applicationId" + ] } } - } + }, + "required": [ + "destinationId", + "applications" + ] }, "examples": { "example-1": { diff --git a/reference/sender.json b/reference/sender.json index 548650b5d2a9764204b91acfa15a6da68239e72c..3ef181b0a5203b0fc22d591088a9543ed7fada05 100644 --- a/reference/sender.json +++ b/reference/sender.json @@ -167,11 +167,15 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "applicationId": { "type": "string" } - } + }, + "required": [ + "applicationId" + ] }, "examples": { "example-1": { @@ -769,6 +773,7 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "current": { "$ref": "../models/status-overview.json" @@ -873,9 +878,11 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "data": { "type": "object", + "additionalProperties": false, "properties": { "status": { "type": "string", @@ -899,6 +906,7 @@ "type": "array", "items": { "type": "object", + "additionalProperties": false, "properties": { "docId": { "type": "string", diff --git a/reference/subscriber.json b/reference/subscriber.json index b2d7f2bcf3dafc60b7fe5ac3d81d4aed21b76656..96533e3818620bd09ad7519558cb00e1722beb29 100644 --- a/reference/subscriber.json +++ b/reference/subscriber.json @@ -133,6 +133,7 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "destinationId": { "type": "string" @@ -750,6 +751,7 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "finalDelivery": { "type": "boolean",