From 812f0b573d8d8ac6b7eea5c9cda350ea220b2fbe Mon Sep 17 00:00:00 2001 From: Vincent Dumas <42336698+v-dumas@users.noreply.github.com> Date: Tue, 11 Aug 2026 11:44:13 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B09643=20-=20Dataflow:=20split=20protocol?= =?UTF-8?q?=20&=20type,=20add=20url=20and=20last=20change=20(#994)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/data.itop-dataflowprotocol.xml | 24 +++++ ...p.en_us.xml => data.itop-dataflowtype.xml} | 16 +--- .../itop-flow-map/datamodel.itop-flow-map.xml | 96 ++++++++++++++++++- .../dictionaries/en.dict.itop-flow-map.php | 25 ++--- .../dictionaries/fr.dict.itop-flow-map.php | 35 +++---- .../dictionaries/nl.dict.itop-flow-map.php | 11 ++- .../dictionaries/ru.dict.itop-flow-map.php | 25 ++--- .../dictionaries/zh_cn.dict.itop-flow-map.php | 41 ++++---- .../itop-flow-map/module.itop-flow-map.php | 3 +- 9 files changed, 188 insertions(+), 88 deletions(-) create mode 100644 datamodels/2.x/itop-flow-map/data/data.itop-dataflowprotocol.xml rename datamodels/2.x/itop-flow-map/data/{data.itop-flow-map.en_us.xml => data.itop-dataflowtype.xml} (56%) diff --git a/datamodels/2.x/itop-flow-map/data/data.itop-dataflowprotocol.xml b/datamodels/2.x/itop-flow-map/data/data.itop-dataflowprotocol.xml new file mode 100644 index 0000000000..74cd0ed0f1 --- /dev/null +++ b/datamodels/2.x/itop-flow-map/data/data.itop-dataflowprotocol.xml @@ -0,0 +1,24 @@ + + + + HTTP + + + HTTPS + + + FTP + + + SFTP + + + AS2 + + + X.400 + + + FTPS + + diff --git a/datamodels/2.x/itop-flow-map/data/data.itop-flow-map.en_us.xml b/datamodels/2.x/itop-flow-map/data/data.itop-dataflowtype.xml similarity index 56% rename from datamodels/2.x/itop-flow-map/data/data.itop-flow-map.en_us.xml rename to datamodels/2.x/itop-flow-map/data/data.itop-dataflowtype.xml index e53080f5ac..40505f0a6c 100644 --- a/datamodels/2.x/itop-flow-map/data/data.itop-flow-map.en_us.xml +++ b/datamodels/2.x/itop-flow-map/data/data.itop-dataflowtype.xml @@ -1,24 +1,18 @@ - HTTP + REST API - HTTPS + KAFKA - FTP + JSON - SFTP + XML - AS2 - - - X.400 - - - FTPS + CSV \ No newline at end of file diff --git a/datamodels/2.x/itop-flow-map/datamodel.itop-flow-map.xml b/datamodels/2.x/itop-flow-map/datamodel.itop-flow-map.xml index d64732aecf..6fbf52bccb 100644 --- a/datamodels/2.x/itop-flow-map/datamodel.itop-flow-map.xml +++ b/datamodels/2.x/itop-flow-map/datamodel.itop-flow-map.xml @@ -97,6 +97,31 @@ DEL_MANUAL all + + dataflowprotocol_id + + + true + DataFlowProtocol + DEL_MANUAL + all + + + documentation_url + + _blank + + + true + all + + + last_change_date + + + true + all + status @@ -266,9 +291,12 @@ 50 - + 60 + + 70 + 20 @@ -282,6 +310,9 @@ 10 + + 20 + 10 @@ -290,9 +321,12 @@ 10 - + 20 + + 30 + 20 @@ -422,6 +456,60 @@ + + Typology + + bizmodel,searchable + false + dataflowprotocol + + + + + + + + + + + + + + + + + + false + true + + + + + + + + + + 10 + + + + + + + 10 + + + +
+ + + 10 + + +
+
+
@@ -628,6 +716,10 @@ 23 DataFlowType + + 24 + DataFlowProtocol + diff --git a/datamodels/2.x/itop-flow-map/dictionaries/en.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/en.dict.itop-flow-map.php index e1d46dbb8a..1185f3a1ef 100644 --- a/datamodels/2.x/itop-flow-map/dictionaries/en.dict.itop-flow-map.php +++ b/datamodels/2.x/itop-flow-map/dictionaries/en.dict.itop-flow-map.php @@ -45,7 +45,13 @@ Dict::Add('EN US', 'English', 'English', [ 'Class:DataFlow/Attribute:destination_impact/Value:no' => 'no', 'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'If the flow stops, the destination is not impacted', 'Class:DataFlow/Attribute:dataflowtype_id' => 'Flow type', - 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Typology of Flow.', + 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Values defined in a typology of Data Flow Type', + 'Class:DataFlow/Attribute:dataflowprotocol_id' => 'Flow protocol', + 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Values defined in a typology of Data Flow Protocol', + 'Class:DataFlow/Attribute:documentation_url' => 'Documentation URL', + 'Class:DataFlow/Attribute:documentation_url+' => 'URL to the documentation of the data flow', + 'Class:DataFlow/Attribute:last_change_date' => 'Last change date', + 'Class:DataFlow/Attribute:last_change_date+' => 'Last time the software or configuration of the Data Flow was updated', 'Class:DataFlow/Attribute:status' => 'Status', 'Class:DataFlow/Attribute:status+' => '', 'Class:DataFlow/Attribute:status/Value:active' => 'active', @@ -74,18 +80,7 @@ Dict::Add('EN US', 'English', 'English', [ 'Class:DataFlowType' => 'Data Flow Type', 'Class:DataFlowType+' => 'Typology of Data Flow', -/* - 'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname', - 'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Full name', - 'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class', - 'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Name of the final class', - 'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete', - 'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes', - 'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname', - 'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Full name', - 'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class', - 'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Name of the final class', - 'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete', - 'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes', -*/ + 'Class:DataFlowProtocol' => 'Data Flow Protocol', + 'Class:DataFlowProtocol+' => 'Typology of Data Flow Protocol', + ]); diff --git a/datamodels/2.x/itop-flow-map/dictionaries/fr.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/fr.dict.itop-flow-map.php index c7fc8c19b1..610bc7be1d 100644 --- a/datamodels/2.x/itop-flow-map/dictionaries/fr.dict.itop-flow-map.php +++ b/datamodels/2.x/itop-flow-map/dictionaries/fr.dict.itop-flow-map.php @@ -44,10 +44,16 @@ Dict::Add('FR FR', 'French', 'Français', [ 'Class:DataFlow/Attribute:destination_impact/Value:yes+' => 'Si le flux s\'arrête, le destinataire est impacté', 'Class:DataFlow/Attribute:destination_impact/Value:no' => 'non', 'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'Si le flux s\'arrête, le destinataire n\'est pas impacté', - 'Class:DataFlow/Attribute:dataflowtype_id' => 'Type de flux', - 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Typologie du flux', - 'Class:DataFlow/Attribute:status' => 'Etat', - 'Class:DataFlow/Attribute:status+' => '', + 'Class:DataFlow/Attribute:dataflowtype_id' => 'Type du flux', + 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Ces valeurs sont gérées dans une typologie', + 'Class:DataFlow/Attribute:dataflowprotocol_id' => 'Protocole', + 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Protocole utilisé par le flux. Ces valeurs sont gérées dans une typologie', + 'Class:DataFlow/Attribute:documentation_url' => 'Lien vers la documentation', + 'Class:DataFlow/Attribute:documentation_url+' => 'URL vers la documentation du flux de données', + 'Class:DataFlow/Attribute:last_change_date' => 'Dernière mise à jour', + 'Class:DataFlow/Attribute:last_change_date+' => 'Date de la dernière mise à jour du logiciel ou de la configuration du flux de données', + 'Class:DataFlow/Attribute:status' => 'État', + 'Class:DataFlow/Attribute:status+' => '', 'Class:DataFlow/Attribute:status/Value:active' => 'actif', 'Class:DataFlow/Attribute:status/Value:inactive' => 'inactif', 'Class:DataFlow/Attribute:execution_frequency' => 'Fréquence d\'exécution', @@ -66,26 +72,15 @@ Dict::Add('FR FR', 'French', 'Français', [ 'Class:DataFlow/Attribute:execution_frequency/Value:monthly+' => '', 'Class:DataFlow/Attribute:execution_frequency/Value:yearly' => 'annuelle', 'Class:DataFlow/Attribute:execution_frequency/Value:yearly+' => '', - 'Class:DataFlow/Attribute:documents_list+' => 'Eg: technical specifications, runbooks, etc.', - 'Class:DataFlow/Attribute:contacts_list+' => 'Eg: flow owner, technical support, etc.', + 'Class:DataFlow/Attribute:documents_list+' => 'Ex: spécifications techniques, runbooks, etc.', + 'Class:DataFlow/Attribute:contacts_list+' => 'Ex: propriétaire du flux, support technique, etc.', 'Class:DataFlow/Error:CheckSource' => 'La source d\'un flux de données ne peut pas être un flux de données elle-même. Choisissez un autre CI source que %1$s', 'Class:DataFlow/Error:CheckDestination' => 'La destination d\'un flux de données ne peut pas être un flux de données elle-même. Choisissez un autre CI destination que %1$s', 'Class:DataFlowType' => 'Type de flux', 'Class:DataFlowType+' => 'Typologie des flux de données', -/* - 'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname', - 'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Nom complet', - 'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class', - 'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Classe finale', - 'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete', - 'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes', - 'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname', - 'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Nom complet', - 'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class', - 'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Classe finale', - 'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete', - 'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes', -*/ + 'Class:DataFlowProtocol' => 'Protocole de flux', + 'Class:DataFlowProtocol+' => 'Typologie des protocoles de flux', + ]); diff --git a/datamodels/2.x/itop-flow-map/dictionaries/nl.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/nl.dict.itop-flow-map.php index 8fb4db4ccb..7bbe05e760 100644 --- a/datamodels/2.x/itop-flow-map/dictionaries/nl.dict.itop-flow-map.php +++ b/datamodels/2.x/itop-flow-map/dictionaries/nl.dict.itop-flow-map.php @@ -45,7 +45,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DataFlow/Attribute:destination_impact/Value:no' => 'Nee', 'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'Als de gegevensstroom stopt, heeft dit geen gevolgen voor de bestemming.', 'Class:DataFlow/Attribute:dataflowtype_id' => 'Type', - 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Soort gegevensstroom', + 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Values defined in a typology of Data Flow Type~~', + 'Class:DataFlow/Attribute:dataflowprotocol_id' => 'Flowprotocol', + 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Values defined in a typology of Data Flow Protocol~~', + 'Class:DataFlow/Attribute:documentation_url' => 'Documentatie-URL', + 'Class:DataFlow/Attribute:documentation_url+' => 'URL naar de documentatie van de gegevensstroom', + 'Class:DataFlow/Attribute:last_change_date' => 'Datum laatste wijziging', + 'Class:DataFlow/Attribute:last_change_date+' => 'Datum van de laatste wijziging van de software of configuratie van de gegevensstroom', 'Class:DataFlow/Attribute:status' => 'Status', 'Class:DataFlow/Attribute:status+' => '', 'Class:DataFlow/Attribute:status/Value:active' => 'Actief', @@ -74,4 +80,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DataFlowType' => 'Soort gegevensstroom', 'Class:DataFlowType+' => '', + 'Class:DataFlowProtocol' => 'Gegevensstroomprotocol', + 'Class:DataFlowProtocol+' => 'Typologie van gegevensstroomprotocol', + ]); diff --git a/datamodels/2.x/itop-flow-map/dictionaries/ru.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/ru.dict.itop-flow-map.php index 8272f172d4..b63612d4ec 100644 --- a/datamodels/2.x/itop-flow-map/dictionaries/ru.dict.itop-flow-map.php +++ b/datamodels/2.x/itop-flow-map/dictionaries/ru.dict.itop-flow-map.php @@ -49,7 +49,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DataFlow/Attribute:destination_impact/Value:no' => 'нет', 'Class:DataFlow/Attribute:destination_impact/Value:no+' => 'Если поток останавливается, назначение не подвержено влиянию', 'Class:DataFlow/Attribute:dataflowtype_id' => 'Тип потока', - 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Типология потока.', + 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Values defined in a typology of Data Flow Type~~', + 'Class:DataFlow/Attribute:dataflowprotocol_id' => 'Протокол потока', + 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Values defined in a typology of Data Flow Protocol~~', + 'Class:DataFlow/Attribute:documentation_url' => 'Ссылка на документацию', + 'Class:DataFlow/Attribute:documentation_url+' => 'Ссылка на документацию потока данных', + 'Class:DataFlow/Attribute:last_change_date' => 'Дата последнего изменения', + 'Class:DataFlow/Attribute:last_change_date+' => 'Дата последнего изменения программного обеспечения или конфигурации потока данных', 'Class:DataFlow/Attribute:status' => 'Статус', 'Class:DataFlow/Attribute:status+' => '', 'Class:DataFlow/Attribute:status/Value:active' => 'активен', @@ -78,18 +84,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DataFlowType' => 'Тип потока данных', 'Class:DataFlowType+' => 'Типология потоков данных', -/* - 'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname', - 'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Full name', - 'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class', - 'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Name of the final class', - 'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete', - 'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes', - 'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname', - 'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Full name', - 'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class', - 'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Name of the final class', - 'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete', - 'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes', -*/ + 'Class:DataFlowProtocol' => 'Протокол потока данных', + 'Class:DataFlowProtocol+' => 'Типология протоколов потоков данных', + ]); diff --git a/datamodels/2.x/itop-flow-map/dictionaries/zh_cn.dict.itop-flow-map.php b/datamodels/2.x/itop-flow-map/dictionaries/zh_cn.dict.itop-flow-map.php index 863ceef69b..3abf975186 100644 --- a/datamodels/2.x/itop-flow-map/dictionaries/zh_cn.dict.itop-flow-map.php +++ b/datamodels/2.x/itop-flow-map/dictionaries/zh_cn.dict.itop-flow-map.php @@ -9,11 +9,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [ - 'Relation:dataflows/Description' => 'DataFlows between CIs~~', - 'Relation:dataflows/DownStream' => 'Outbound flows...', - 'Relation:dataflows/DownStream+' => 'Outbound flows map from', - 'Relation:dataflows/UpStream' => 'Inbound flows...', - 'Relation:dataflows/UpStream+' => 'Inbound flows map to', + 'Relation:dataflows/Description' => '配置项之间的数据流', + 'Relation:dataflows/DownStream' => '出站数据流...', + 'Relation:dataflows/DownStream+' => '出站数据流图,源自', + 'Relation:dataflows/UpStream' => '入站数据流...', + 'Relation:dataflows/UpStream+' => '入站数据流图,指向', 'Class:FunctionalCI/Attribute:dataflows' => '数据流', 'Class:FunctionalCI/Attribute:dataflows+' => '该对象作为源或目标的数据流', @@ -24,7 +24,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'DataFlow:moreinfo' => '数据流详情', 'Class:DataFlow' => '数据流', - 'Class:DataFlow+' => 'For application flow for example~~', + 'Class:DataFlow+' => '例如应用数据流', 'Class:DataFlow/Name' => '%1$s', 'Class:DataFlow/Attribute:name' => '名称', 'Class:DataFlow/Attribute:name+' => '已传输的数据', @@ -45,7 +45,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DataFlow/Attribute:destination_impact/Value:no' => '否', 'Class:DataFlow/Attribute:destination_impact/Value:no+' => '如果数据流停止,目标不受影响', 'Class:DataFlow/Attribute:dataflowtype_id' => '数据流类型', - 'Class:DataFlow/Attribute:dataflowtype_id+' => '数据流的分类', + 'Class:DataFlow/Attribute:dataflowtype_id+' => 'Values defined in a typology of Data Flow Type~~', + 'Class:DataFlow/Attribute:dataflowprotocol_id' => '数据流协议', + 'Class:DataFlow/Attribute:dataflowprotocol_id+' => 'Values defined in a typology of Data Flow Protocol~~', + 'Class:DataFlow/Attribute:documentation_url' => '文档链接', + 'Class:DataFlow/Attribute:documentation_url+' => '数据流文档链接', + 'Class:DataFlow/Attribute:last_change_date' => '最后修改日期', + 'Class:DataFlow/Attribute:last_change_date+' => '数据流软件或配置的最后修改时间', 'Class:DataFlow/Attribute:status' => '状态', 'Class:DataFlow/Attribute:status+' => '', 'Class:DataFlow/Attribute:status/Value:active' => '启用', @@ -68,24 +74,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DataFlow/Attribute:execution_frequency/Value:yearly+' => '', 'Class:DataFlow/Attribute:documents_list+' => '例如: 技术规范, 操作手册等.', 'Class:DataFlow/Attribute:contacts_list+' => '例如: 数据流所有者, 技术支持等.', - 'Class:DataFlow/Error:CheckSource' => 'The source of a data flow cannot be a data flow itself. Choose another source CI than %1$s~~', - 'Class:DataFlow/Error:CheckDestination' => 'The destination of a data flow cannot be a data flow itself. Choose another destination CI than %1$s~~', + 'Class:DataFlow/Error:CheckSource' => '数据流的源头不能是数据流本身。请选择一个不同的源配置项,而不是 %1$s', + 'Class:DataFlow/Error:CheckDestination' => '数据流的目标不能是数据流本身。请选择一个不同的目标配置项,而不是 %1$s', 'Class:DataFlowType' => '数据流类型', 'Class:DataFlowType+' => '数据流的分类', -/* - 'Class:DataFlow/Attribute:source_id_friendlyname' => 'source_id_friendlyname', - 'Class:DataFlow/Attribute:source_id_friendlyname+' => 'Full name', - 'Class:DataFlow/Attribute:source_id_finalclass_recall' => 'source_id->CI sub-class', - 'Class:DataFlow/Attribute:source_id_finalclass_recall+' => 'Name of the final class', - 'Class:DataFlow/Attribute:source_id_obsolescence_flag' => 'source_id->Obsolete', - 'Class:DataFlow/Attribute:source_id_obsolescence_flag+' => 'Computed dynamically on other attributes', - 'Class:DataFlow/Attribute:destination_id_friendlyname' => 'destination_id_friendlyname', - 'Class:DataFlow/Attribute:destination_id_friendlyname+' => 'Full name', - 'Class:DataFlow/Attribute:destination_id_finalclass_recall' => 'destination_id->CI sub-class', - 'Class:DataFlow/Attribute:destination_id_finalclass_recall+' => 'Name of the final class', - 'Class:DataFlow/Attribute:destination_id_obsolescence_flag' => 'destination_id->Obsolete', - 'Class:DataFlow/Attribute:destination_id_obsolescence_flag+' => 'Computed dynamically on other attributes', -*/ + 'Class:DataFlowProtocol' => '数据流协议', + 'Class:DataFlowProtocol+' => '数据流协议的分类', + ]); diff --git a/datamodels/2.x/itop-flow-map/module.itop-flow-map.php b/datamodels/2.x/itop-flow-map/module.itop-flow-map.php index dc0d8a0333..13e251f68c 100644 --- a/datamodels/2.x/itop-flow-map/module.itop-flow-map.php +++ b/datamodels/2.x/itop-flow-map/module.itop-flow-map.php @@ -31,7 +31,8 @@ SetupWebPage::AddModule( ], 'data.struct' => [ - 'data/data.itop-flow-map.en_us.xml', + 'data/data.itop-dataflowtype.xml', + 'data/data.itop-dataflowprotocol.xml', ], 'data.sample' => [ // add your sample data XML files here,