{"id":16416095,"url":"https://github.com/phax/smp-mate","last_synced_at":"2025-05-14T08:36:12.688Z","repository":{"id":61305490,"uuid":"543781974","full_name":"phax/smp-mate","owner":"phax","description":"SMP MAintenance TEchnology","archived":false,"fork":false,"pushed_at":"2024-08-11T17:31:09.000Z","size":162,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-12T00:36:28.137Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-30T20:38:51.000Z","updated_at":"2024-08-11T17:31:13.000Z","dependencies_parsed_at":"2022-10-16T04:12:07.803Z","dependency_job_id":"7a001438-7292-421d-bade-a58cccfa124f","html_url":"https://github.com/phax/smp-mate","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phax%2Fsmp-mate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phax%2Fsmp-mate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phax%2Fsmp-mate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phax%2Fsmp-mate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phax","download_url":"https://codeload.github.com/phax/smp-mate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254105163,"owners_count":22015603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T07:08:24.311Z","updated_at":"2025-05-14T08:36:12.664Z","avatar_url":"https://github.com/phax.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SMP MAintenance TEchnology\n\nNote: sorry to all you guys out there not speaking German - this repository is only available in German. This repository basically provides a maintenance tool that allows to bulk create\n\nDieser Leitfaden beschreibt SMP Mate (ehemals SMP Provisioning Tool), mit dessen Hilfe zusätzliche Participants im Peppol-Netzwerk provisioniert werden können.\nSMP Mate wird als Archiv ausgeliefert, dessen Bestandteile und Verwendung im Folgenden erklärt werden.\n\n# Einleitung\n\nFür den Nachrichtenaustausch im Peppol-Netzwerk müssen die Teilnehmer (im Peppol-Kontext \"Participants\") in der Komponente SMP und bei den Access Points bekannt \nsein.\n\n* **SMP**: Die Komponente SMP (SMP steht für Service Metadata Publisher) ist der Peppol-eigene Directory Service. In diesem Nutzerverzeichnis, sind **alle** teilnehmenden Participants hinterlegt.\n* **Access Points**: Die Access Points kennen jeweils nur eine Untermenge aus der Menge der Participants.\n    * **Sender Access Points**: Diese Access Points kennen die teilnehmenden Participants Ihres jeweiligen Landes.\n    * **Receiver Access Points**: Diese Access Points kennen die jeweiligen Participants, für die Peppol-Nachrichten, die vom Empfangsprozess abgeholt werden sollen. Beispielsweise holt der Governikus MultiMessenger, per AS4 AccessPoint mit XTA-Connector, Nachrichten von Gruppen von Participants ab, die dem GMM bekannt sind.\n\nAus den jeweiligen Absendern (Sender, C1), Empfängern (Receiver, C4) und Access Points (C2 und C3) ergibt sich das 4-Corner-Modell des Peppol-Netzwerks.\n\n# Peppol Participants Provisioning\n\nDamit weitere Participants am Nachrichtenaustausch über das PEEPOL-Netzwerk teilnehmen können, müssen diese in den Access-Points und im SMP provisioniert werden.\nAlle in einem Access Point bekannten Participants sind auch im SMP bekannt, da die dort provisionierten Participants eine Untermenge der Participants im SMP sind.\n\n## Allgemeine Beschreibung des Verfahrens\n\nBeim Provisionieren mit dem SMP Provisioning Tool werden die folgenden Schritte durchgeführt.\n\n* **Feststellen weiterer Participants**: Das SMP Provisioning Tool übergibt dem System eine CSV-Datei, z.B. `newParticipants.csv`, die neue Participants enthält, die dem Access Point und dem SMP hinzugefügt werden sollen.\n\nDas Provisionieren neuer Participants kann an den Access Points 2 (C2) und 3 (C3) des 4-Corner Modells erfolgen und aktualisiert dabei immer auch den SMP.\n\n## Parameter von SMP Mate\n\nFür die Provisionierung steht eine Kommandozeilen-Applikation in Form einer ausführbaren JAR-Datei zur Verfügung.\nDieser Applikation wird eine Konfigurationsdatei im JSON-Format als Parameter übergeben.\nIn der Konfigurationsdatei werden unter anderem weitere Dateien referenziert, die für die Durchführung der Provisionierung erforderlich sind.\n\n### Konfigurationsdaten in der `sampleTask.json`-Datei\n\nEin Beispiel für die erforderlichen Konfigurationsdaten befindet sich in der Datei `sampleTask.json`, die auf oberster Ebene des ZIP-Archivs zu finden ist.\n\n**Achtung**: Bitte beachten Sie, dass in JSON-Dateien normalerweise keine Kommentare enthalten sein dürfen.\nBitte löschen Sie die Kommentare aus dem JSON-Template, nachdem Sie die Parameter angepasst haben und bevor Sie das SMP Provisioning Tool ausführen.\n\nIn der Datei `sampleTask.json` werden die Pfade zu weiteren Eingabe- sowie auch zu Ausgabedateien, die SMP-Konfiguration und eine möglicherweise\nbenötigte Proxy-Konfiguration definiert.\n\n### Der Abschnitt \"Pfade\" in der JSON-Datei\n\nPfade zu Input-Dateien definiert, die zur Ausführungszeit vorhanden sein müssen. Die folgenden Einträge müssen angepasst werden:\n\n* **`csvInput`**: Der Name der Variable `csvInput` darf nicht geändert werden und definiert Pfad und Dateiname der Datei, in der die neuen Participants enthalten sind, beispielsweise `newParticipants.csv`.\n    * **`newParticipants.csv`**: Diese Datei enthält alle neue Participants. Die Participants werden in der Datei als Liste der Participant-IDs notiert. Hinweis: die Verwendung von CSV ist für die Vorwärtskompatibilität.\n        * `ParticipantId`: Diese ID ist im gesamten Peppol-Netzwerk eindeutig.\n        * `BusinessCardPath` (seit v1.0.1): Pfad zur BusinessCard-XML-Datei für diesen Participant. Das passende XML Schema befindet sich unter https://docs.peppol.eu/edelivery/directory/peppol-directory-business-card-20180621.xsd\n* **`csvFailOutput`**: Der Name der Variable `csvFailOutput` darf nicht geändert werden und definiert Pfad und Dateiname einer Datei, die geschrieben wird, wenn einzelne Participants nicht erfolgreich an den SMP-Server übermittelt werden können, beispielsweise `failedParticipants.csv`.\n* **`serviceGroupTemplate`**: Der Name der Variable `serviceGroupTemplate` darf nicht geändert werden und definiert Pfad und Dateiname einer Datei die die Vorlage für eine SMP \"ServiceGroup\" enthält. Der Default-Wert sollte nicht angepasst werden.\n* **`serviceMetadata`**: Der Name der Variable `serviceMetadata` darf nicht geändert werden und definiert Pfade und Dateinamen als Vorlage einer oder mehrerer XML-Strukturen sowie der Identifikatoren für Dokumenttyp und Prozess, so, wie sie an den SMP-Server übermittelt werden sollen, beispielsweise `[ { \"template\": \"ServiceMetadata.xml\", \"documentIdentifier\": \"urn:oasis:names:specification:ubl:schema:xsd:Tender-2::Tender##urn:www.cenbii.eu:transaction:biitrdm090:ver3.0::2.1\", \"processIdentifier\": \"urn:www.cenbii.eu:profile:bii54:ver3.0\" } ]`\n    * **`template`**: Der Pfad und Dateiname zur verwendeten XML-Vorlage\n    * **`documentIdentifier`**: Der zu verwendende Peppol Dokumenttypidentifikator. Das zu verwendenden Identifikatorenschema steht in der XML-Vorlage drin. \n    * **`processIdentifier`**: Der zu verwendende Peppol Prozessidentifikator. Das zu verwendenden Identifikatorenschema steht in der XML-Vorlage drin.\n\n### Der Abschnitt \"SMP-Konfiguration\" in der JSON-Datei\n\nDiese Konfiguration enthält die URL der SMP-REST-Schnittstelle, und Authentifizierungsdaten, wenn diese gefordert sind.\nDiese Parameter müssen aus dem Template gelöscht werden, wenn keine Authentifizierungsdaten erforderlich sind.\n\n### Der Abschnitt \"Proxy-Konfiguration\" in der JSON-Datei\n\nDiese Konfigurationsdaten sind erforderlich, wenn der SMP-Server hinter einem Proxy betrieben wird.\nDiese Daten müssen aus dem Template entfernt werden, wenn kein Proxy konfiguriert werden muss.\n\n### Der Abschnitt \"Options\" in der JSON-Datei\n\nZurzeit steht genau eine Option zur Verfügung.\nDie Option `DRY_RUN` sorgt dafür, dass ein Programdurchlauf ausgeführt werden kann, bei dem keine Daten an den SMP-Server übermittelt werden.\nDamit kann die Ausführbarkeit des Programms mit seinen aktuellen Parametern getestet werden.\nWenn Ein- und Ausgabedatei mit dem gleichen Pfad/Dateinamen definiert sind, wird diese Datei auch im Modus `DRY_RUN` überschrieben.\n\n# Ausführen von SMP Mate\n\nDie JAR-Datei `smp-mate-\u003cVersionsnummer\u003e-app.jar` kann in jeder beliebigen Umgebung mit dem nachfolgend beschriebenen Aufruf ausgeführt werden.\nDabei muss sichergestellt werden, dass die Pfade und Dateien erreichbar sind, ebenso wie der SMP-Server.\n\nEs muss mindestens Java 1.8 JRE installiert sein. \n\n## Aufruf der ausführbaren JAR-Datei\n\n```shell\njava – jar smp-mate-\u003cVersionsnummer\u003e-app.jar sampleTask.json\n```\n\nFalls SMP Mate ohne JSON-Datei aufgerufen wird, dann wird eine Hilfe angezeigt.\n\nFalls SMP Mate mit dem Namen einer JSON-Datei aufgerufen wird, die nicht existiert, dann wird vom SMP Mate eine Beispiel-JSON-Datei erstellt die dann bearbeitet werden kann.\n\n# Technisches\n\n## Building\n\nVoraussetzungen: Java 1.8 oder höher, Apache Maven 3.x\n\nBefehl: `mvn clean install`\n\nDas Ergebnis ist die Datei `target/smp-mate-x.y.z-SNAPSHOT-app.jar` wobei `x.y.z` für die Versionsnummer steht.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphax%2Fsmp-mate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphax%2Fsmp-mate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphax%2Fsmp-mate/lists"}