From cb1ec05398964abb81167216b3d40ee4a4133b45 Mon Sep 17 00:00:00 2001 From: Robin Sander <robin.sander@sinc.de> Date: Thu, 2 Jan 2025 12:03:22 +0100 Subject: [PATCH] feat: add senderAccessRestricted to destination schema (planning#2534) --- CHANGELOG.md | 4 ++++ spec/schemas/client-id.yaml | 5 +++++ spec/schemas/destination-private.yaml | 2 ++ spec/schemas/destination-public.yaml | 4 +++- .../destination-sender-access-restricted.yaml | 20 +++++++++++++++++++ 5 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 spec/schemas/client-id.yaml create mode 100644 spec/schemas/destination-sender-access-restricted.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index cf842007..facf6c61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,10 @@ Don’t forget to tag @ https://git.fitko.de/fit-connect/submission-api/-/tags ## Unreleased +### Changed + +* Erweiterung des destination Schemas um `senderAccessRestricted`, d.h. um die Möglichkeit, das Senden an diesen Zustellpunkt nur bestimmten Sendern zu erlauben ([planning#2534](https://git.fitko.de/fit-connect/planning/-/issues/2534)). + ## [1.12.0] ### Added diff --git a/spec/schemas/client-id.yaml b/spec/schemas/client-id.yaml new file mode 100644 index 00000000..5e260f46 --- /dev/null +++ b/spec/schemas/client-id.yaml @@ -0,0 +1,5 @@ +type: string +format: uuid +minLength: 32 +maxLength: 36 +description: Die UUID eines Clients diff --git a/spec/schemas/destination-private.yaml b/spec/schemas/destination-private.yaml index 16d2ed67..6e15ea1d 100644 --- a/spec/schemas/destination-private.yaml +++ b/spec/schemas/destination-private.yaml @@ -49,3 +49,5 @@ properties: $ref: './contact-information.yaml' callback: $ref: './callback-url.yaml' + senderAccessRestricted: + $ref: './destination-sender-access-restricted.yaml' diff --git a/spec/schemas/destination-public.yaml b/spec/schemas/destination-public.yaml index 62ab79c1..15ae3a15 100644 --- a/spec/schemas/destination-public.yaml +++ b/spec/schemas/destination-public.yaml @@ -1,5 +1,5 @@ title: Zustellpunkt -description: Repräsentation eines Zustellpunktes +description: Öffentliche Daten eines Zustellpunktes type: object required: - destinationId @@ -43,3 +43,5 @@ properties: description: > Status des Zustellpunktes. Eine Beschreibung der Status finden Sie in den Detailinformationen unter [Zustellpunktverwaltung](https://docs.fitko.de/fit-connect/docs/details/destination-management). + senderAccessRestricted: + $ref: './destination-sender-access-restricted.yaml' diff --git a/spec/schemas/destination-sender-access-restricted.yaml b/spec/schemas/destination-sender-access-restricted.yaml new file mode 100644 index 00000000..05f63fd2 --- /dev/null +++ b/spec/schemas/destination-sender-access-restricted.yaml @@ -0,0 +1,20 @@ +type: object +required: + - enabled + - allowedSenders +properties: + enabled: + type: boolean + description: | + Gibt an, ob das Senden an diesen Zustellpunkt beschränkt ist oder nicht. + Falls `true` dürfen ausschließlich Clients, deren ID in `allowedSenders` enthalten ist, + an diesen Zustellpunkt senden. + allowedSenders: + type: array + uniqueItems: true + items: + $ref: './client-id.yaml' + description: | + Auflistung der Client-IDs, die an diesen Zustellpunkt senden dürfen. + Die Clients müssen existieren und vom Typ `SENDER` sein. + minItems: 0 -- GitLab