From 3f7eafb5f875103bf161c15862a3f091f910bf31 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 11:22:26 +0200 Subject: [PATCH 01/16] Adding an optional expiry date for the source Data --- conceptual_model/README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/conceptual_model/README.md b/conceptual_model/README.md index 64e3456..63e6a52 100644 --- a/conceptual_model/README.md +++ b/conceptual_model/README.md @@ -14,11 +14,12 @@ if it has been certified. We defined for this purpose special data types, each with the following attributes : -| Name | Type | Description -| ------------------|------------|--------------------------------- -| value | any | The claim value -| source | string | Source of the data -| certificationDate | datetime | If the data was certified, and when. +| Name | Type | Description +| ------------------------|------------|------------------------------------------------------------------------------------------ +| value | any | The claim value +| source | string | Source of the data +| certificationDate | datetime | If the data was certified, and when. +| certificationExpiryDate | datetime | If the data was certified, and when the information will no longer valid (if applicable). See [Field types](field-types.md) From ba6c5d803909ad2168157f2cb92584999db380c3 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 11:25:18 +0200 Subject: [PATCH 02/16] Adding working personal informations --- conceptual_model/personal-informations.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conceptual_model/personal-informations.md b/conceptual_model/personal-informations.md index ac73541..20f28d5 100644 --- a/conceptual_model/personal-informations.md +++ b/conceptual_model/personal-informations.md @@ -10,7 +10,10 @@ Attributes | Name | Type | -----------------------|---------- | email | [email](field-types.md#email-field) +| workingEmail | [email](field-types.md#email-field) | primaryPostalAddress | [postal-address](field-types.md#postal-address-field) | secondaryPostalAddress | [postal-address](field-types.md#postal-address-field) +| workingPostalAddress | [postal-address](field-types.md#postal-address-field) | primaryPhoneNumber | [phone number](field-types.md#phone-number-field) | secondaryPhoneNumber | [phone number](field-types.md#phone-number-field) +| workingPhoneNumber | [phone number](field-types.md#phone-number-field) From e0078521913e4f18de62eedc32aff51d43f7f9b7 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 11:52:29 +0200 Subject: [PATCH 03/16] add certificationExpiryDate to JSON - propagate certificationExpiryDate field - certificationDate is not mandatory (a data can be available but not always certified) --- .../schemas/personal-information.schema.json | 63 ++++++++++++++----- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/conceptual_model/schemas/personal-information.schema.json b/conceptual_model/schemas/personal-information.schema.json index 914a40c..36cb799 100644 --- a/conceptual_model/schemas/personal-information.schema.json +++ b/conceptual_model/schemas/personal-information.schema.json @@ -9,6 +9,10 @@ "description": "The person's email", "$ref": "#/$defs/email_field" }, + "workingEmail": { + "description": "The person's working email", + "$ref": "#/$defs/email_field" + }, "primaryPostalAddress": { "description": "The person's primary postal address", "$ref": "#/$defs/postal_address_field" @@ -17,6 +21,10 @@ "description": "The person's secondary postal address", "$ref": "#/$defs/postal_address_field" }, + "workingPostalAddress": { + "description": "The person's secondary postal address", + "$ref": "#/$defs/postal_address_field" + }, "primaryPhoneNumber": { "description": "The person's primary phone number", "$ref": "#/$defs/phone_number_field" @@ -24,6 +32,10 @@ "secondaryPhoneNumber": { "description": "The person's secondary phone number", "$ref": "#/$defs/phone_number_field" + }, + "workingPhoneNumber": { + "description": "The person's working secondary phone number", + "$ref": "#/$defs/phone_number_field" } }, "required": [], @@ -41,12 +53,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -63,12 +78,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -85,12 +103,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -142,12 +163,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -165,12 +189,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -188,12 +215,15 @@ "certificationDate": { "type": "string", "format": "date-time" - } + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" + } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -212,12 +242,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false } From 3c58e3e82e5c45666c3c89050ef11b9f90a18911 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 11:55:34 +0200 Subject: [PATCH 04/16] Adding certificationExpiryDate in fieldTypes --- conceptual_model/field-types.md | 77 ++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/conceptual_model/field-types.md b/conceptual_model/field-types.md index d3dd58f..c2ebbc0 100644 --- a/conceptual_model/field-types.md +++ b/conceptual_model/field-types.md @@ -1,62 +1,69 @@ ### String field -| Name | Type | Format -| ------------------|----------|--------------------------------- -| value | string | any -| source | string | any -| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| Name | Type | Format +| ------------------------|----------|--------------------------------- +| value | string | any +| source | string | any +| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) ### Date field -| Name | Type | Format -| ------------------|----------|--------------------------------- -| value | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) -| source | string | any -| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| Name | Type | Format +| ------------------------|----------|--------------------------------- +| value | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| source | string | any +| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) ### Email field -| Name | Type | Format -| ------------------|----------|--------------------------------- -| value | string | [RFC 5322](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4) -| source | string | any -| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| Name | Type | Format +| ------------------------|----------|--------------------------------- +| value | string | [RFC 5322](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4) +| source | string | any +| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) ### Postal address field -| Name | Type | Format -| ------------------|----------|--------------------------------- -| value | string | AFNOR NF Z 10-011 -| source | string | any -| certificationDate | dstring | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| Name | Type | Format +| ------------------------|----------|--------------------------------- +| value | string | AFNOR NF Z 10-011 +| source | string | any +| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) ### Phone number field -| Name | Type | Format -| ------------------|----------|--------------------------------- -| value | string | [E.164 Standard](https://www.itu.int/rec/T-REC-E.164/) -| source | string | any -| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| Name | Type | Format +| ------------------------|----------|--------------------------------- +| value | string | [E.164 Standard](https://www.itu.int/rec/T-REC-E.164/) +| source | string | any +| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) ### Gender field -| Name | Type | Format -| ------------------|----------|--------------------------------- -| value | number | [ISO/IEC 5218](https://en.wikipedia.org/wiki/ISO/IEC_5218) -| source | string | any -| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| Name | Type | Format +| ------------------------|----------|--------------------------------- +| value | number | [ISO/IEC 5218](https://en.wikipedia.org/wiki/ISO/IEC_5218) +| source | string | any +| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) ### Country field -| Name | Type | Format -| ------------------|----------|--------------------------------- -| value | string | [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) -| source | string | any -| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| Name | Type | Format +| ------------------------|----------|--------------------------------- +| value | string | [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) +| source | string | any +| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) From e6af425128b11e1ce4c18ed3c355716ba54c33c0 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:11:21 +0200 Subject: [PATCH 05/16] add citizen status we can suggest 5 values : - employee - student - self-employed - retiree - unemployed --- conceptual_model/civil-status.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conceptual_model/civil-status.md b/conceptual_model/civil-status.md index 1fb1cee..1864381 100644 --- a/conceptual_model/civil-status.md +++ b/conceptual_model/civil-status.md @@ -17,4 +17,4 @@ Attributes | birthDate | [date](field-types.md#date-field) | birthPlace | [string](field-types.md#string-field) | birthCountry | [country](field-types.md#country-field) - +| status | [string](field-types.md#string-field) From 947bc9f810b2c92f28960b494997c2027b81f9de Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:15:45 +0200 Subject: [PATCH 06/16] Define status field for civil-status --- conceptual_model/field-types.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/conceptual_model/field-types.md b/conceptual_model/field-types.md index c2ebbc0..a0108a5 100644 --- a/conceptual_model/field-types.md +++ b/conceptual_model/field-types.md @@ -67,3 +67,13 @@ | source | string | any | certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) | certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + + +### Status field + +| Name | Type | Format +| ------------------------|----------|--------------------------------- +| value | string | EMPLOYEE | STUDENT | SELF-EMPLOYED | RETIREE | UNEMPLOYED +| source | string | any +| certificationDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) +| certificationExpiryDate | string | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) From b0462373bf222bd7ef7788ba176edcd0f9db5372 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:20:59 +0200 Subject: [PATCH 07/16] Add status details to civil JSON schema --- .../schemas/civil-status.schema.json | 78 +++++++++++++++---- 1 file changed, 64 insertions(+), 14 deletions(-) diff --git a/conceptual_model/schemas/civil-status.schema.json b/conceptual_model/schemas/civil-status.schema.json index a189b92..138b17b 100644 --- a/conceptual_model/schemas/civil-status.schema.json +++ b/conceptual_model/schemas/civil-status.schema.json @@ -38,6 +38,10 @@ "birthCountry": { "description": "The person's birth country", "$ref": "#/$defs/country_field" + }, + "status": { + "description": "The person's global status", + "$ref": "#/$defs/status_field" } }, "required": [], @@ -55,12 +59,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -77,12 +84,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -99,12 +109,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -156,12 +169,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -179,12 +195,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -202,12 +221,15 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false }, @@ -226,12 +248,40 @@ "certificationDate": { "type": "string", "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "value", + "source" + ], + "additionalProperties": false + }, + "status_field": { + "type": "object", + "properties": { + "value": { + "type": "string", + "enum": ["EMPLOYED", "STUDENT", "SELF-EMPLOYED", "RETIREE", "UNEMPLOYED"] + }, + "source": { + "type": "string" + }, + "certificationDate": { + "type": "string", + "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" } }, "required": [ "value", - "source", - "certificationDate" + "source" ], "additionalProperties": false } From 052a2b855e8a246db77ed8c7dfb553722fa4dd60 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:33:06 +0200 Subject: [PATCH 08/16] Working informations suggestion I suggest to separate personal and working informations in order to separate the access by OpenID scopes --- conceptual_model/professional_informations | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 conceptual_model/professional_informations diff --git a/conceptual_model/professional_informations b/conceptual_model/professional_informations new file mode 100644 index 0000000..9b85b11 --- /dev/null +++ b/conceptual_model/professional_informations @@ -0,0 +1,16 @@ +Professional Informations +========================= + +[JSON Schema](schemas/professional-information.schema.json) + + +Attributes +---------- + +| Name | Type +| -----------------------|---------- +| workingEmail | [email](field-types.md#email-field) +| workingPostalAddress | [postal-address](field-types.md#postal-address-field) +| workingPhoneNumber | [phone number](field-types.md#phone-number-field) +| entrepriseName | [string](field-types.md#string-field) +| employeeId | [string](field-types.md#string-field) From 0ea88951f3cb5dd66e1a89682e63c207aeddbe93 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:33:25 +0200 Subject: [PATCH 09/16] Rename professional_informations to professional-informations --- .../{professional_informations => professional-informations} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename conceptual_model/{professional_informations => professional-informations} (100%) diff --git a/conceptual_model/professional_informations b/conceptual_model/professional-informations similarity index 100% rename from conceptual_model/professional_informations rename to conceptual_model/professional-informations From 03a2603e75b5fb63dab62de3197cab5aab97c1d0 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:33:48 +0200 Subject: [PATCH 10/16] Rename professional-informations to professional-informations.md.md --- ...{professional-informations => professional-informations.md.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename conceptual_model/{professional-informations => professional-informations.md.md} (100%) diff --git a/conceptual_model/professional-informations b/conceptual_model/professional-informations.md.md similarity index 100% rename from conceptual_model/professional-informations rename to conceptual_model/professional-informations.md.md From 45199d74c624237fa59b790f2d609ee9d437dcdf Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:34:30 +0200 Subject: [PATCH 11/16] Rename professional-informations.md.md to professional-informations.md --- ...ofessional-informations.md.md => professional-informations.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename conceptual_model/{professional-informations.md.md => professional-informations.md} (100%) diff --git a/conceptual_model/professional-informations.md.md b/conceptual_model/professional-informations.md similarity index 100% rename from conceptual_model/professional-informations.md.md rename to conceptual_model/professional-informations.md From bcb04e33f0db435763046f1cb486ff92e59788bc Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:35:13 +0200 Subject: [PATCH 12/16] Update README.md --- conceptual_model/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conceptual_model/README.md b/conceptual_model/README.md index 63e6a52..7ddc614 100644 --- a/conceptual_model/README.md +++ b/conceptual_model/README.md @@ -29,5 +29,5 @@ Main Entities - [Personal Informations](personal-informations.md) - [Civil status](civil-status.md) - +- [Professional Informations](professional-informations.md) From f38eb0345ef4ddc3ef5ec54d6bf3fa8e7aedcb55 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:36:03 +0200 Subject: [PATCH 13/16] move professional informations --- conceptual_model/personal-informations.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/conceptual_model/personal-informations.md b/conceptual_model/personal-informations.md index 20f28d5..ac73541 100644 --- a/conceptual_model/personal-informations.md +++ b/conceptual_model/personal-informations.md @@ -10,10 +10,7 @@ Attributes | Name | Type | -----------------------|---------- | email | [email](field-types.md#email-field) -| workingEmail | [email](field-types.md#email-field) | primaryPostalAddress | [postal-address](field-types.md#postal-address-field) | secondaryPostalAddress | [postal-address](field-types.md#postal-address-field) -| workingPostalAddress | [postal-address](field-types.md#postal-address-field) | primaryPhoneNumber | [phone number](field-types.md#phone-number-field) | secondaryPhoneNumber | [phone number](field-types.md#phone-number-field) -| workingPhoneNumber | [phone number](field-types.md#phone-number-field) From 87ab832444ec6a6e7c0bcb215cdafc478eb76435 Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:41:52 +0200 Subject: [PATCH 14/16] Create professional-informations.schema.json --- .../professional-informations.schema.json | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 conceptual_model/schemas/professional-informations.schema.json diff --git a/conceptual_model/schemas/professional-informations.schema.json b/conceptual_model/schemas/professional-informations.schema.json new file mode 100644 index 0000000..2e8f3c6 --- /dev/null +++ b/conceptual_model/schemas/professional-informations.schema.json @@ -0,0 +1,168 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "professional-information.schema.json", + "title": "Professional Information", + "description": "A person's professional information", + "type": "object", + "properties": { + "workingEmail": { + "description": "The person's working email", + "$ref": "#/$defs/email_field" + }, + "workingPostalAddress": { + "description": "The person's secondary postal address", + "$ref": "#/$defs/postal_address_field" + }, + "workingPhoneNumber": { + "description": "The person's working secondary phone number", + "$ref": "#/$defs/phone_number_field" + }, + "employerId": { + "description": "The person's employer", + "$ref": "#/$defs/string_field" + }, + "employeeId": { + "description": "The employee ID in the employer information system", + "$ref": "#/$defs/string_field" + } + }, + "required": [], + "additionalProperties": false, + "$defs": { + "string_field": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "source": { + "type": "string" + }, + "certificationDate": { + "type": "string", + "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "value", + "source" + ], + "additionalProperties": false + }, + "email_field": { + "type": "object", + "properties": { + "value": { + "type": "string", + "format": "email" + }, + "source": { + "type": "string" + }, + "certificationDate": { + "type": "string", + "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "value", + "source" + ], + "additionalProperties": false + }, + "postal_address_field": { + "$comment": "Rough implementation of the AFNOR NF Z 10-011 standard", + "type": "object", + "properties": { + "value": { + "type": "object", + "properties": { + "line1": { + "type": "string", + "maxLength": 38 + }, + "line2": { + "type": "string", + "maxLength": 38 + }, + "line3": { + "type": "string", + "maxLength": 38 + }, + "line4": { + "type": "string", + "maxLength": 38 + }, + "line5": { + "type": "string", + "maxLength": 38 + }, + "line6": { + "type": "string", + "maxLength": 38 + }, + "line7": { + "type": "string", + "maxLength": 38 + } + }, + "$comment": "At least first line is expected to be filled", + "required": [ + "line1" + ], + "additionalProperties": false + }, + "source": { + "type": "string" + }, + "certificationDate": { + "type": "string", + "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "value", + "source" + ], + "additionalProperties": false + }, + "phone_number_field": { + "type": "object", + "properties": { + "value": { + "type": "string", + "$comment": "E.164 standard", + "pattern": "^\\+?[1-9]\\d{1,14}$" + }, + "source": { + "type": "string" + }, + "certificationDate": { + "type": "string", + "format": "date-time" + }, + "certificationExpiryDate": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "value", + "source" + ], + "additionalProperties": false + } + } +} From b8963eae694b9c2fb07df7712faee4d9b67a1dec Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:43:07 +0200 Subject: [PATCH 15/16] remove working personal fields --- .../schemas/personal-information.schema.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/conceptual_model/schemas/personal-information.schema.json b/conceptual_model/schemas/personal-information.schema.json index 36cb799..013b9a4 100644 --- a/conceptual_model/schemas/personal-information.schema.json +++ b/conceptual_model/schemas/personal-information.schema.json @@ -9,10 +9,6 @@ "description": "The person's email", "$ref": "#/$defs/email_field" }, - "workingEmail": { - "description": "The person's working email", - "$ref": "#/$defs/email_field" - }, "primaryPostalAddress": { "description": "The person's primary postal address", "$ref": "#/$defs/postal_address_field" @@ -21,10 +17,6 @@ "description": "The person's secondary postal address", "$ref": "#/$defs/postal_address_field" }, - "workingPostalAddress": { - "description": "The person's secondary postal address", - "$ref": "#/$defs/postal_address_field" - }, "primaryPhoneNumber": { "description": "The person's primary phone number", "$ref": "#/$defs/phone_number_field" @@ -32,10 +24,6 @@ "secondaryPhoneNumber": { "description": "The person's secondary phone number", "$ref": "#/$defs/phone_number_field" - }, - "workingPhoneNumber": { - "description": "The person's working secondary phone number", - "$ref": "#/$defs/phone_number_field" } }, "required": [], From 294d0aa110bef83eb0e94af3326ac1977812b04a Mon Sep 17 00:00:00 2001 From: Arnaud Giffard <35028491+nonow53@users.noreply.github.com> Date: Mon, 27 Jun 2022 12:45:42 +0200 Subject: [PATCH 16/16] Add a new scope for professional informations --- api/README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/api/README.md b/api/README.md index 0992cc6..47df36d 100644 --- a/api/README.md +++ b/api/README.md @@ -18,6 +18,8 @@ to ask some specific OAuth2 scopes. Exemples of CMS scopes: - `urn:cms:personal-informations:read`: read access to the user's basic personal informations - `urn:cms:civil-status:read`: read access to the user's civil status +- `urn:cms:professional-informations:read`: read access to the user's basic + professional informations Fetching data @@ -33,7 +35,8 @@ needs. Claims ------ -| name | required scope | Schema -| ----------------------|--------------------------------------|------- -| personalInformations | `urn:cms:personal-informations:read` | [Personal informations](../conceptual_model/personal-informations.md) -| civilStatus | `urn:cms:civil-status:read` | [Civil status](../conceptual_model/civil-status.md) +| name | required scope | Schema +| --------------------------|-----------------------------------------|------- +| personalInformations | `urn:cms:personal-informations:read` | [Personal informations](../conceptual_model/personal-informations.md) +| civilStatus | `urn:cms:civil-status:read` | [Civil status](../conceptual_model/civil-status.md) +| professionalInformations | `urn:cms:professional-informations:read`| [Professional informations](../conceptual_model/professional-informations.md)