Spezifikation OGGBundle¶
Dieses Dokument beschreibt die Spezifikation der Datenschnittstelle zur Migration eines Mandanten aus dem OS-Laufwerk in den zugehörigen GEVER-Mandanten.
Changelog:
Version | Datum | Autor | Kommentar |
---|---|---|---|
1.3 | 20.06.2022 | PG | Ergänzt: Ersteller |
1.2 | 16.06.2022 | PG | Import von OGDS Usern |
1.1 | 10.08.2020 | LG | Import von Teamräumen |
1.0 | 16.10.2017 | LG, PG | Referenzierung von bestehendem Inhalt via Aktenzeichen |
0.1.3 | 10.02.2017 | LG | Ergänzt: Setzen des Workflow-Status |
0.1.2 | 16.01.2017 | LG | JSON-Schemas referenziert |
0.1.1 | 12.01.2017 | LG | Nicht erlaubte Dateiformate definiert |
0.1 | 26.11.2016 | LG, DE | Initialer Entwurf |
Status: In Arbeit
Die hier beschriebene Schnittstelle dient dem einmaligen Import eines Ordnungssystems, seiner Ordnungspositionen, Dossiers/Subdossiers und Dokumente/Mails nach OneGov GEVER. Die Migration findet ab einem JSON-basierten Zwischenformat statt. Dieses muss einem validen Schema entsprechen, und die darin enthaltenen Daten müssen die in OneGov GEVER geltenden Geschäftsregeln erfüllen.
Importierbare Inhaltstypen¶
Ordnungssysteme | Ja |
Ordnungspositionen | Ja |
Teamraum-Roots | Ja |
Teamräume | Ja |
Teamraum-Ordner | Ja |
Dossiers | Ja |
Dokumente | Ja |
Mails | Ja |
OGDS Users | Ja |
Kontakte | Nein * |
Organisationseinheiten | Nein ** |
Sitzungen | Nein |
Aufgaben / Weiterleitungen | Nein |
* “Kontakte” bezeichnet in diesem Zusammenhang einen speziellen Inhaltstyp in OneGov GEVER, mit welchem Adressdaten direkt in GEVER erfasst werden können, welche nicht in anderen Systemen wie z.B. AD geführt werden. Benutzer aus dem AD werden hingegen in OneGov GEVER auch importiert werden, allerdings direkt aus dem AD, nicht als Teil des Zwischenformats
** Details wie die mit Organisationseinheiten verknüpften Berechtigungen aus OS-Laufwerk genau migriert werden müssen noch geklärt werden. Die Organisationseinheiten selbst müssen jedoch nicht migriert werden.
Inhalt:¶
Contents
- Spezifikation OGGBundle
- Importierbare Inhaltstypen
- Inhalt:
- OneGov GEVER Bundle (OGGBundle)
- Konfiguration und Bundle-Metadaten
- Daten für Inhaltstypen
- Abbildung von Verschachtelung (containment)
- Berechtigungen
- Setzen von Werten
- Setzen des Workflow-Status
- Ersteller
- Redirects zu früheren Pfäden
- Zusätzliche Validierung
- Aktenzeichen und Laufnummern
- Abgrenzungen
- Anhang
- Generieren von OGGBundle
OneGov GEVER Bundle (OGGBundle)¶
Das Zwischenformat für den Export von Daten aus OS-Laufwerk und dem Import in OneGov GEVER wird als OneGov GEVER Bundle (OGGBundle) bezeichnet.
Das Bundle kann als “virtuelles Verzeichnis” verstanden werden: Es folgt einer Verzeichnisstruktur, welche nach einem bestimmten Muster aufgebaut ist, und alle nötigen Informationen des Exports enthält. Das Bundle kann somit für sehr kleine Datenmengen als ZIP-Datei mit der Endung .oggbundle (z.B. testinhalte.oggbundle) abgeliefert werden, oder auch als Verzeichnis mit der Endung .oggbundle auf einem Server hinterlegt oder gemountet werden. Der konkrete Transportmechanismus ist nicht Teil dieser Spezifikation, und kann dem Anwendungszweck gemäss gewählt werden.
Alle Pfad-Angaben in einem Bundle sind relativ zum root des Bundles.
Das Bundle besteht aus einer Sammlung von JSON-Dateien, deren Inhalt einem bestimmten Schema folgen muss, und einem Unterverzeichnis files/ welches die Dateien für Dokumente (Primärdaten) enthält.
Ein Bundle beinhaltet eine Datei pro zu importierendem Inhaltstyp. Darin müssen die jeweiligen Inhalte flach (ohne Verschachtelung) im JSON-Format gespeichert werden. Für jede solche Datei wird ein JSON-Schema zur Verfügung gestellt, welches den Aufbau der JSON-Datei genau beschreibt und mit dem die Inhalte vor einem Import validiert werden müssen. Die folgenden Abschnitte beschreiben die im Moment unterstützten Inhaltstypen und die damit assoziierten Dateien im Bundle.
Konfiguration und Bundle-Metadaten¶
metadata.json¶
Diese Datei beinhaltet Metadaten über das Bundle, z.B. den Erstellungszeitpunkt und Ersteller des Bundles oder den Verwendungszweck (optional).
configuration.json¶
Diese Datei beinhaltet die Konfiguration des Mandanten, insbesondere auch die zur Validierung der Inhalte benötigten Wertebereiche, welche für gewisse Felder pro Mandant konfigurierbar sind.
JSON Schema: configuration.schema.json
Daten für Inhaltstypen¶
reporoots.json¶
Diese Datei beinhaltet ein oder mehrere Ordnungssystem-Wurzeln.
JSON Schema: reporoots.schema.json
repofolders.json¶
Diese Datei beinhaltet die einzelnen Ordnungspositionen, die in den Ordnungssystem-Wurzeln abgelegt werden.
JSON Schema: repofolders.schema.json
workspaceroots.json¶
Diese Datei beinhaltet ein Teamraum-Root.
Falls auf der Installation, in welche ein OGGBundle mit Teamräumen importiert wird, bereits ein Teamraum-Root existiert, kann diese Datei weggelassen werden. Beim Import wird dann vorausgesetzt, dass genau ein Teamraum-Root bereits existiert, und die Teamräume werden in dieses Teamraum-Root importiert.
In diesem Fall dürfen die Teamräume keine parent_guid
gesetzt haben.
JSON Schema: workspaceroots.schema.json
workspaces.json¶
Diese Datei beinhaltet einen oder mehrere Teamräume.
Die Teamräume werden über die parent_guid
einem Teamraum-Root zugeordnet, welches ebenfalls im Bundle enthalten ist.
Alternativ kann die parent_guid
für Teamräume, und die Definition eines Workspace-Roots im workspaceroots.json
weggelassen werden - die Teamräume werden dann in ein bereits existierendes Workspace-Root importiert.
JSON Schema: workspaces.schema.json
workspacefolders.json¶
Diese Datei beinhaltet einen oder mehrere Teamraum-Ordner.
JSON Schema: workspacefolders.schema.json
dossiers.json¶
Diese Datei beinhaltet Dossiers und Subdossiers, diese können in den Ordnungspositionen abgelegt werden.
JSON Schema: dossiers.schema.json
documents.json¶
Diese Datei beinhaltet die Metadaten der Dokumente. Die Binärdateien werden im Ordner files/ zur Verfügung gestellt und müssen mit einem zum Bundle relativen Pfad referenziert werden. Die Metadaten beinhalten unter anderem auch den Dateinamen, der Dateiname der Datei auf dem Filesystem wird nicht verwendet, sondern von den Metadaten überschrieben.
Siehe untenstehende Erläuterungen im Abschnitt files/ zu Details bezüglich den Dateipfaden.
JSON Schema: documents.schema.json
ogds_users.json¶
Diese Datei beinhaltet die Benutzer welche ins OGDS importiert werden sollen. In der Regel sind es ehemalige, nicht mehr aktive Benutzer welche so importiert werden können.
Der Wert guid
muss der userid
entsprechen.
JSON Schema: ogds_users.schema.json
files/¶
Dieser Ordner beinhaltet die Primärdateien der Dokumente. Ob die Dateien flach abgelegt werden, oder in weitere Unterordner verschachtelt werden ist nicht vorgegeben - die Strukturierung dieses Verzeichnisses ist dem Lieferanten des Bundle überlassen. Die Dateinamen müssen jedoch normalisiert werden um Inkompatibilitäten zu vermeiden, die Aufgrund unterschiedlicher Zeichensätzen in unterschiedlichen Umgebungen entstehen können. Wir empfehlen ein einfaches Schema mit aufsteigender Nummerierung wie z.B. file_00123.pdf.
Der tatsächlich in OneGov GEVER verwendete Titel / Dateiname wird gesteuert über das Attribut title in den im documents.json gelieferten Metadaten: Im Attribut title soll der ursprüngliche Dateiname, inklusive Dateiendung geliefert werden. In OneGov GEVER wird der Titel des Dokuments dann von diesem Attribut abgeleitet, indem die Dateiendung entfernt wird. Die Dateiendung selbst hingegen wird zur Bestimmung des Inhaltstyps (MIME-Type) verwendet.
Folgende Dateitypen sind in OGGBundles nicht erlaubt:
- .exe
- .dll
Pfade / Dateinamen dürfen nur alphanumerische Zeichen, Unterstrich und Bindestrich enthalten ([0-9][a-zA-Z][-_]). Alle Pfade sind case-sensitive, und dürfen eine maximale Länge von 255 Zeichen nicht überschreiten. Die Pfade sind als UNIX-Pfade relativ zum root des Bundles anzugeben (getrennt mit Forward-Slash).
Abbildung von Verschachtelung (containment)¶
Die hierarchische Beziehung zwischen Objekten wird mittels Parent-Pointers abgebildet.
parent_guid¶
Da die Daten in den JSON-Dateien nicht verschachtelt abgelegt werden, ist es nötig diese Verschachtelung während dem Import aufzulösen. Diese Verschachtelung wird mittels global eindeutiger ID (GUID) und einem Pointer von Children auf das enthaltende Parent abgebildet. Dazu muss jedes Objekt über eine GUID verfügen. Diese muss im Attribut guid gespeichert werden. Die Verschachtelung wird mittels einer Referenz auf das Parent hergestellt, dazu muss jedes Objekt, das ein Parent besitzt, das Attribut parent_guid definieren, und damit auf das Parent referenzieren:
{
"guid": "7777-0000-0000-0000",
...
},
{
"guid": "9999-0000-0000-0000",
"parent_guid": "7777-0000-0000-0000",
...
}
Es ist auch möglich, über die parent_guid
ein Objekt als Parent zu referenzieren, das sich aufgrund eines früheren Imports bereits im System befindet. Dieses Parent-Item muss dann im Bundle nicht mehr mitgeliefert werden (darf aber, solang die GUID gleich bleibt).
Wenn sowohl im Bundle ein Item mit einer bestimmten GUID geliefert wird, und sich auch im System bereits ein Objekt mit identischer GUID befindet, wird das Item aus dem Bundle ignoriert und übersprungen (es werden also auch keine Metadaten des bereits existierenden Objekts aktualisiert).
Dies bedeutet, wenn nacheinander zwei Bundles importiert werden, von denen das zweite zusätzliche Daten enthält, wird nur die Differenz importiert (Objekte mit GUIDs welche im ersten Bundle noch nicht existiert haben). Dies setzt aber zwingend voraus, dass für Objekte die als “gleich” / “schon vorhanden” erkannt werden sollen, sich die GUID nicht ändert (ansonsten werden die Objekte erneut importiert werden, und dementsprechend doppelt vorhanden sein).
parent_reference¶
Alternativ zur GUID kann auch das Akzenzeichen eines Objekts als eindeutige Referenz auf das Parent verwendet werden. Die Verwendung des Aktenzeichens als Parent-Pointer erlaubt es, bereits existierende Objekte über deren eindeutiges Aktenzeichen zu referenzieren, und ermöglicht so partielle Importe. So ist z.B. das importieren von Dokumenten in ein bestehendes Dossier möglich, indem dieses Dossier über sein Aktenzeichen referenziert wird.
Wird zur Referenzierung das Aktenzeichen verwendet, muss dazu das Attribut parent_reference (statt parent_guid) gesetzt werden. Das Aktenzeichen in diesem Attribut wird als verschachtelte Arrays von Integern erwartet, welche die einzelnen Komponenten des Aktenzeichens (ohne Formatierung) abbilden. Beispiel: [[1, 3, 5], [472, 9] entspricht dem Aktenzeichen 1.3.5 / 472.9 (Position 1.3.5, Dossier 472, Subdossier 9):
{
"guid": "9999-0000-0000-0000",
"parent_reference": [[1, 3, 5], [472, 9],
...
}
Siehe auch Abschnitt Geschäftsregeln für Angaben, welche Inhaltstypen wie verschachtelt werden dürfen.
Berechtigungen¶
Berechtigungen werden in OneGov GEVER standardmässig auf die Children vererbt. Es ist auf den Stufen Ordnungssystem, Ordnungsposition und Dossier erlaubt die Berechtigungen zu setzen, wobei Berechtigungen auf Stufe Dossier die Ausnahme sein sollten.
Die möglichen Berechtigungen sind grundsätzlich vom jeweiligen Inhaltstyp abhängig. Die konkret erlaubten Werte können dem JSON Schema für den Typ entnommen werden. Für die meisten GEVER Inhalte sind die steuerbaren Berechtigungen jedoch identisch - die Ausnahme bilden Teamraum-Inhalte.
Berechtigungen werden gesetzt, indem im _permissions
Property des ensprechenden Items ein Mapping gemäss Schema angegeben wird.
Beispiel:
{
"guid": "9999-0000-0000-0000",
...
"_permissions": {
"read": [
"all_users"
],
"add": [
"privileged_users"
],
"edit": [
"privileged_users"
],
"close": [
"admin_users"
],
"reactivate": [
"admin_users"
]
}
}
Die Berechtigungen können granular für die folgenden Rollen vergeben werden:
read
(Lesen)add
(Dossiers hinzufügen)edit
(Dossiers bearbeiten)close
(Dossiers abschliessen)reactivate
(Dossiers reaktivieren)manage_dossiers
(Dossiers verwalten)
Zusätzlich kann mit einem block_inheritance Flag spezifiziert werden, ob die Vererbung der Berechtigungen auf dieser Stufe unterbrochen werden soll. Dies führt dazu, dass ab dieser Stufe nur die explizit definierten Zugriffsberechtigungen gültig sind, und keine Berechtigungen mehr via Vererbung vom Parent übernommen werden:
"_permissions": {
"block_inheritance": true,
...
}
Berechtigungen werden an einen oder mehrere “Principals” vergeben, dies entspricht einem Benutzer oder einer Gruppe.
Für Teamräume gibt es separate Rollen welche auf unterschiedlichen Stufen gesetzt werden können.
Auf der Ebene des Teamraum-Roots können folgende Rollen vergeben werden:
workspaces_creator
(Teamräume erstellen)workspaces_user
(Teamräume auflisten)
Auf der Ebene eines einzelnen Teamraums oder eines Teamraum-Ordners können die folgenden Rollen vergeben werden:
workspace_admin
(Admin)workspace_member
(Teammitglied)workspace_guest
(Gast)
Beteiligungen (participations) in Teamräumen werden über lokale Rollen abgebildet. Um eine Beteiligung eines Benutzers an einem Teamraum zu importieren, genügt es daher die Art der Beteiligung über ein entsprechendes local role assignment im _permissions
property auszudrücken.
Setzen von Werten¶
Defaultwerte werden nur gesetzt, falls die entsprechenden Attribute im gelieferten JSON nicht vorhanden sind.
Setzen des Workflow-Status¶
Für Objekte mit einem Workflow kann über das Property review_state
angegeben werden, in welchem Status das Objekt erstellt werden kann.
Die vollständige Liste der gültigen Workflow-States ist im Schema der entsprechenden Objekte definiert.
Ordnungssysteme¶
repositoryroot-state-active |
Aktiv |
Initial-Zustand: repositoryroot-state-active
JSON Schema: reporoots.schema.json
Ordnungspositionen¶
repositoryfolder-state-active |
Aktiv |
Initial-Zustand: repositoryfolder-state-active
JSON Schema: repofolders.schema.json
Dossiers¶
dossier-state-active |
In Bearbeitung |
dossier-state-resolved |
Abgeschlossen |
Initial-Zustand: dossier-state-active
Um ein Dossier im abgeschlossenen Zustand abzuliefern, wird daher der
review_state
auf den entsprechenden Wert gesetzt:
...
“review_state”: “dossier-state-resolved”,
...
Wenn ein Dossier im abgeschlossenen Zustand abgeliefert wird, MUSS jedes darin enthaltene Subdossier ebenfalls den Status dossier-state-resolved
haben. Das Erfüllen der Regeln zu “losen Blättern” und Datumsbereichen hingegen ist empfohlen, wird aber für den Import nicht strikt verlangt (wird protokolliert, aber “as-is” importiert).
JSON Schema: dossiers.schema.json
Dokumente¶
document-state-draft |
(Standard-Zustand) |
Initial-Zustand: document-state-draft
JSON Schema: documents.schema.json
Ersteller¶
Der Ersteller eines Objekts lässt sich für alle Inhalte mit dem Property _creator
setzen. Auch die entsprechenden Journaleinträge, werden im Namen des Erstellers eines jeweiligen Objektes erfasst.
Redirects zu früheren Pfäden¶
Um bspw. bei Migrationen sicherstellen zu können, dass alte Links auf den ursprünglichen Pfad eines Dokuments oder Dossiers nach wie vor funktionieren, können die ursprünglichen Pfade unter dem Key _old_paths
mitgegeben werden. So führen die alten URLs mit einem Redirect zum neu erstellten Objekt.
Zusätzliche Validierung¶
Schema¶
- Die GUID eines jeden eingelesenen Objektes muss zwingend eindeutig sein.
- Das Aktenzeichen eines Dossiers/Dokumentes muss zwingend eindeutig sein, ebenso die Positionsnummer einer Ordnungsposition.
- Date und DateTime Felder müssen gemäss RFC 3339 formatiert werden.
Geschäftsregeln¶
Die folgenden Geschäftsregeln gelten in OneGov GEVER:
Die Konfigurationsvariable maximum_repository_depth und maximum_dossier_depth definieren wie tief Ordnungspositionen und Dossiers ineinander verschachtelt werden dürfen.
Abgeschlossene Dossiers:
- Abgeschlossene Dossiers dürfen keine offenen Subdossiers enthalten.
- Ist ein Dossier abgeschlossen und hat Subdossiers, so müssen alle Dokumente einem Subdossier zugeordnet werden, das Hauptdossier darf keine ihm direkt zugeordneten Dokumente enthalten (“keine losen Blätter”).
- Das Enddatum eines abgeschlossenen Dossiers muss immer grösser oder gleich dem Enddatum aller seiner Subdossiers, und grösser oder gleich dem Dokumentdatum eines enthaltenen Dokumentes sein.
Eine Ordnungsposition kann nur entweder Dossiers oder weitere Ordnungspositionen enthalten, nie Objekte beider Inhaltstypen gleichzeitig. Dossiers dürfen dementsprechend nur in Leaf-Nodes (Rubriken) des Ordnungssystems enthalten sein.
Bei den folgenden Feldern ist die Auswahlmöglichkeit durch den Parent eingeschränkt:
custody_period
(Archivische Schutzfrist)archival_value
(Archivwürdigkeit)classification
(Klassifikation)privacy_layer
(Datenschutzstufe)retention_period
(Aufbewahrungsdauer) - Je nach Konfiguration ist diese Regel auch nicht aktiv
Einschränken bedeutet in diesem Zusammenhang, dass die Liste der zur Verfügung stehenden Elemente gemäss JSON-Schema Definition auf das vom Parent ausgewählte Element und alle Folge-Elemente reduziert wird.
Aktenzeichen und Laufnummern¶
In OneGov GEVER werden Aktenzeichen geführt, und auf den Ebenen Dossier und Dokument dargestellt. Das Darstellungsformat des Aktenzeichens (Gruppierung, Trennzeichen) ist pro Mandant konfigurierbar, und die einzelnen Bestandteile werden unabhängig vom formatierten String separat gespeichert.
Die einzelnen Komponenten stehen hier für folgendes:
- FD - ein pro Mandant konfigurierbares Kürzel das im Aktenzeichen verwendet wird
- 0.7.1.1 - die Nummer der Ordnungsposition. Zusammengesetzt aus den Einzelkomponenten (0, 7, 1, und 1) welche lokal auf den entsprechenden Ordnungspositionen geführt werden / gespeichert sind. Separiert durch ein konfigurierbares Trennzeichen (Standardmässig Punkt).
- 5 - die Nummer des Dossiers innerhalb der Rubrik (aufsteigender Zähler pro Rubrik)
- 3 - die Nummer eines Subdossiers innerhalb des Dossiers, falls Subdossiers existieren
- 54 - die global eindeutige Laufnummer des Dokuments (auch ohne den Rest des Aktenzeichens eindeutig)
Die Aktenzeichen für Dossiers/Subdossiers lassen den letzten Teil (Laufnummer des Dokuments) weg.
Abgrenzungen¶
- Es können vorerst nur die erwähnten Inhaltstypen importiert werden, nicht alle in OneGov GEVER verfügbaren Typen.
- Dokument-Versionen können nicht importiert werden.
- Mails können beim automatischen import nicht verlustlos von *.msg nach *.eml konvertiert werden, daher müssen diese Vorgängig nach *.eml konvertiert werden.
- Es kann nicht überprüft werden, ob die Rechte “sinnvoll” gesetzt sind (optimale Nutzung des Vererbungsmechanismus, keine Redundanzen). Eine allfällige Vereinfachung der Berechtigungen muss vor einem Import der Daten nach OneGov GEVER durchgeführt werden.
Anhang¶
Schemas¶
Die JSON-Schemas, welche die Struktur der JSON-Dateien für die Metadaten definieren, sind hier abgelegt:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"enums": {
"public_trial": {
"type": "string",
"enum": [
"unchecked",
"public",
"private",
"limited-public"
]
},
"reference_number_formatters": {
"type": "string",
"enum": [
"dotted",
"grouped_by_three"
]
}
},
"definitions": {
"custom_vocabulary": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"identifier": {
"type": "string"
},
"label_en": {
"type": "string"
},
"label_de": {
"type": "string"
},
"label_fr": {
"type": "string"
}
},
"required": [
"identifier",
"label_en"
],
"anyOf": [
{
"required": [
"label_de"
]
},
{
"required": [
"label_fr"
]
}
]
}
}
},
"type": "object",
"additionalProperties": false,
"properties": {
"public_trial_default_value": {
"$ref": "#/enums/public_trial"
},
"maximum_repository_depth": {
"type": "integer"
},
"maximum_dossier_depth": {
"type": "integer"
},
"retention_periods": {
"type": "array",
"items": {
"type": "integer"
}
},
"custody_periods": {
"type": "array",
"items": {
"type": "integer"
}
},
"dossier_type_prefixes": {
"$ref": "#/definitions/custom_vocabulary"
},
"dossier_container_types": {
"$ref": "#/definitions/custom_vocabulary"
},
"preserved_as_paper_default": {
"type": "boolean"
},
"reference_number_formatter": {
"$ref": "#/enums/reference_number_formatters"
}
},
"required": [
"public_trial_default_value",
"maximum_repository_depth",
"maximum_dossier_depth",
"retention_periods",
"custody_periods",
"dossier_type_prefixes",
"dossier_container_types",
"preserved_as_paper_default",
"reference_number_formatter"
]
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/document"
},
"definitions": {
"document": {
"type": "object",
"title": "Dokument",
"additionalProperties": false,
"properties": {
"title": {
"type": "string",
"title": "Titel",
"description": "",
"_zope_schema_type": "TextLine"
},
"changed": {
"type": [
"null",
"string"
],
"title": "Zuletzt ver\u00e4ndert",
"format": "datetime",
"description": "",
"_zope_schema_type": "Datetime"
},
"classification": {
"type": [
"null",
"string"
],
"title": "Klassifikation",
"description": "Grad, in dem die Unterlagen vor unberechtigter Einsicht gesch\u00fctzt werden m\u00fcssen.",
"_zope_schema_type": "Choice",
"default": "unprotected",
"enum": [
null,
"unprotected",
"confidential",
"classified"
]
},
"privacy_layer": {
"type": [
"null",
"string"
],
"title": "Datenschutz",
"description": "Markierung, die angibt, ob die Unterlagen besonders sch\u00fctzenswerte Personendaten oder Pers\u00f6nlichkeitsprofile gem\u00e4ss Datenschutzrecht enthalten.",
"_zope_schema_type": "Choice",
"default": "privacy_layer_no",
"enum": [
null,
"privacy_layer_no",
"privacy_layer_yes"
]
},
"public_trial": {
"type": [
"null",
"string"
],
"title": "\u00d6ffentlichkeitsstatus",
"description": "Angabe, ob die Unterlagen gem\u00e4ss \u00d6ffentlichkeitsgesetz zug\u00e4nglich sind oder nicht.",
"_zope_schema_type": "Choice",
"default": "unchecked",
"enum": [
null,
"unchecked",
"public",
"limited-public",
"private"
]
},
"public_trial_statement": {
"type": [
"null",
"string"
],
"title": "Bearbeitungsinformation",
"description": "Datum Gesuch, Gesuchsteller, Datum Entscheid, Verweis auf GEVER-Gesuchdossier",
"_zope_schema_type": "Text",
"default": ""
},
"relatedItems": {
"type": [
"null",
"array"
],
"title": "Verwandte Dokumente",
"description": "",
"_zope_schema_type": "RelationList",
"default": []
},
"description": {
"type": [
"null",
"string"
],
"title": "Beschreibung",
"description": "",
"_zope_schema_type": "Text",
"default": null
},
"keywords": {
"type": [
"null",
"array"
],
"title": "Schlagw\u00f6rter",
"description": "Schlagw\u00f6rter zur Umschreibung eines Dokuments. Nicht zu verwechseln mit der Ordnungsposition.\nACHTUNG: Beachten Sie bei der Verwendung von Schlagw\u00f6rter die Datenschutzvorgaben (z.B. keine Eigennamen).",
"_zope_schema_type": "Tuple"
},
"foreign_reference": {
"type": [
"null",
"string"
],
"title": "Fremdzeichen",
"description": "Referenz auf das entsprechende Dossier des Absenders",
"_zope_schema_type": "TextLine"
},
"document_date": {
"type": [
"null",
"string"
],
"title": "Dokumentdatum",
"format": "date",
"description": "Datum des Dokuments",
"_zope_schema_type": "Date",
"default": "<Aktuelles Datum>"
},
"receipt_date": {
"type": [
"null",
"string"
],
"title": "Eingangsdatum",
"format": "date",
"description": "Datum, an dem das Dokument \u00fcber den Korrespondenzweg angekommen ist",
"_zope_schema_type": "Date"
},
"delivery_date": {
"type": [
"null",
"string"
],
"title": "Ausgangsdatum",
"format": "date",
"description": "Datum, an dem das Dokument \u00fcber den Korrespondenzweg versandt worden ist",
"_zope_schema_type": "Date"
},
"document_type": {
"type": [
"null",
"string"
],
"title": "Dokumenttyp",
"description": "",
"_zope_schema_type": "Choice",
"enum": [
null,
"contract",
"directive",
"offer",
"protocol",
"question",
"regulations",
"report",
"request"
]
},
"document_author": {
"type": [
"null",
"string"
],
"title": "Autor",
"description": "Nachname Vorname oder ein Benutzerk\u00fcrzel (wird automatisch nach Nachname Vorname aufgel\u00f6st)",
"_zope_schema_type": "TextLine"
},
"preserved_as_paper": {
"type": [
"null",
"boolean"
],
"title": "In Papierform aufbewahrt",
"description": "In Papierform aufbewahrt",
"_zope_schema_type": "Bool",
"default": true
},
"gever_url": {
"type": [
"null",
"string"
],
"title": "GEVER URL",
"description": "",
"_zope_schema_type": "TextLine"
},
"custom_properties": {
"type": [
"null",
"object"
],
"title": "Benutzerdefinierte Felder",
"description": "Enth\u00e4lt die Daten f\u00fcr die benutzerdefinierten Felder.",
"_zope_schema_type": "PropertySheetField"
},
"review_state": {
"type": "string",
"enum": [
"document-state-draft"
]
},
"_creator": {
"type": [
"null",
"string"
]
},
"guid": {
"type": "string"
},
"parent_guid": {
"type": [
"null",
"string"
]
},
"parent_reference": {
"type": [
"null",
"array"
],
"items": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"filepath": {
"type": "string"
},
"sequence_number": {
"type": [
"null",
"integer"
],
"title": "Laufnummer",
"description": "Fortlaufend gez\u00e4hlte Nummer eines Dokumentes."
},
"_old_paths": {
"type": [
"null",
"array"
],
"title": "Earlier path"
},
"original_message_path": {
"type": [
"null",
"string"
]
}
},
"required": [
"review_state",
"guid",
"title",
"filepath"
],
"allOf": [
{
"anyOf": [
{
"required": [
"parent_guid"
]
},
{
"required": [
"parent_reference"
]
}
]
}
],
"field_order": [
"title",
"file",
"changed",
"classification",
"privacy_layer",
"public_trial",
"public_trial_statement",
"relatedItems",
"description",
"keywords",
"foreign_reference",
"document_date",
"receipt_date",
"delivery_date",
"document_type",
"document_author",
"preserved_as_paper",
"archival_file",
"archival_file_state",
"gever_url",
"custom_properties"
]
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/dossier"
},
"definitions": {
"dossier": {
"type": "object",
"title": "Gesch\u00e4ftsdossier",
"additionalProperties": false,
"properties": {
"changed": {
"type": [
"null",
"string"
],
"title": "Zuletzt ver\u00e4ndert",
"format": "datetime",
"description": "",
"_zope_schema_type": "Datetime"
},
"title": {
"type": "string",
"title": "Titel",
"description": "",
"_zope_schema_type": "TextLine"
},
"description": {
"type": [
"null",
"string"
],
"title": "Beschreibung",
"description": "",
"_zope_schema_type": "Text"
},
"keywords": {
"type": [
"null",
"array"
],
"title": "Schlagw\u00f6rter",
"description": "Schlagw\u00f6rter zur Umschreibung eines Dossiers. Nicht zu verwechseln mit der Ordnungsposition.\nACHTUNG: Beachten Sie bei der Verwendung von Schlagw\u00f6rter die Datenschutzvorgaben (z.B. keine Eigennamen).",
"_zope_schema_type": "Tuple"
},
"start": {
"type": [
"null",
"string"
],
"title": "Beginn",
"format": "date",
"description": "",
"_zope_schema_type": "Date",
"default": "<Aktuelles Datum>"
},
"end": {
"type": [
"null",
"string"
],
"title": "Ende",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"touched": {
"type": [
"null",
"string"
],
"title": "\u00c4nderungsdatum des Dossiers oder seines Inhalts",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"responsible": {
"type": "string",
"title": "Federf\u00fchrend",
"description": "",
"_zope_schema_type": "Choice",
"_vocabulary": "<G\u00fcltige User-ID>"
},
"external_reference": {
"type": [
"null",
"string"
],
"title": "Externe Referenz",
"description": "",
"_zope_schema_type": "TextLine"
},
"filing_prefix": {
"type": [
"null",
"string"
],
"title": "Ablage Pr\u00e4fix",
"description": "",
"_zope_schema_type": "Choice",
"enum": [
null,
"administration",
"department",
"directorate",
"government",
"personal"
]
},
"container_type": {
"type": [
"null",
"string"
],
"title": "Beh\u00e4ltnis-Art",
"description": "Art des Beh\u00e4lters, in dem ein Dossier in Papierform abgelegt ist",
"_zope_schema_type": "Choice",
"enum": [
null,
"box",
"dossier",
"folder"
]
},
"number_of_containers": {
"type": [
"null",
"integer"
],
"title": "Anzahl Beh\u00e4ltnisse",
"description": "Anzahl Beh\u00e4lter, die ein (grosses) Dossier in Papierform enthalten",
"_zope_schema_type": "Int"
},
"container_location": {
"type": [
"null",
"string"
],
"title": "Beh\u00e4ltnis-Standort",
"description": "Standortangabe des Beh\u00e4lters, in dem ein Dossier in Papierform abgelegt ist",
"_zope_schema_type": "TextLine"
},
"relatedDossier": {
"type": [
"null",
"array"
],
"title": "Verwandte Dossiers",
"description": "",
"_zope_schema_type": "RelationList",
"default": []
},
"former_reference_number": {
"type": [
"null",
"string"
],
"title": "Fr\u00fcheres Aktenzeichen",
"description": "",
"_zope_schema_type": "TextLine"
},
"reference_number": {
"type": [
"null",
"string"
],
"title": "Aktenzeichen",
"description": "",
"_zope_schema_type": "TextLine"
},
"dossier_type": {
"type": [
"null",
"string"
],
"title": "Dossiertyp",
"description": "",
"_zope_schema_type": "Choice",
"enum": [
null,
"businesscase"
]
},
"checklist": {
"type": [
"null",
"object"
],
"title": "Checkliste",
"description": "",
"_zope_schema_type": "JSONField"
},
"classification": {
"type": [
"null",
"string"
],
"title": "Klassifikation",
"description": "Grad, in dem die Unterlagen vor unberechtigter Einsicht gesch\u00fctzt werden m\u00fcssen.",
"_zope_schema_type": "Choice",
"default": "unprotected",
"enum": [
null,
"unprotected",
"confidential",
"classified"
]
},
"privacy_layer": {
"type": [
"null",
"string"
],
"title": "Datenschutz",
"description": "Markierung, die angibt, ob die Unterlagen besonders sch\u00fctzenswerte Personendaten oder Pers\u00f6nlichkeitsprofile gem\u00e4ss Datenschutzrecht enthalten.",
"_zope_schema_type": "Choice",
"default": "privacy_layer_no",
"enum": [
null,
"privacy_layer_no",
"privacy_layer_yes"
]
},
"public_trial": {
"type": [
"null",
"string"
],
"title": "\u00d6ffentlichkeitsstatus",
"description": "Angabe, ob die Unterlagen gem\u00e4ss \u00d6ffentlichkeitsgesetz zug\u00e4nglich sind oder nicht.",
"_zope_schema_type": "Choice",
"default": "unchecked",
"enum": [
null,
"unchecked",
"public",
"limited-public",
"private"
]
},
"public_trial_statement": {
"type": [
"null",
"string"
],
"title": "Bearbeitungsinformation",
"description": "Datum Gesuch, Gesuchsteller, Datum Entscheid, Verweis auf GEVER-Gesuchdossier",
"_zope_schema_type": "Text",
"default": ""
},
"retention_period": {
"type": [
"null",
"integer"
],
"title": "Aufbewahrungsdauer (Jahre)",
"description": "Zeitraum zwischen dem j\u00fcngsten Dokumentdatum eines in einem Dossier enthaltenen Dokuments und dem Zeitpunkt, an dem dieses f\u00fcr die Gesch\u00e4ftst\u00e4tigkeit der Verwaltungseinheit nicht mehr ben\u00f6tigt wird.",
"_zope_schema_type": "Choice",
"default": 5,
"enum": [
null,
5,
10,
15,
20,
25
]
},
"retention_period_annotation": {
"type": [
"null",
"string"
],
"title": "Kommentar zur Aufbewahrungsdauer",
"description": "",
"_zope_schema_type": "Text"
},
"archival_value": {
"type": [
"null",
"string"
],
"title": "Archivw\u00fcrdigkeit",
"description": "Archivw\u00fcrdigkeit",
"_zope_schema_type": "Choice",
"default": "unchecked",
"enum": [
null,
"unchecked",
"prompt",
"archival worthy",
"not archival worthy",
"archival worthy with sampling"
]
},
"archival_value_annotation": {
"type": [
"null",
"string"
],
"title": "Kommentar zur Archivw\u00fcrdigkeit",
"description": "",
"_zope_schema_type": "Text"
},
"custody_period": {
"type": [
"null",
"integer"
],
"title": "Archivische Schutzfrist (Jahre)",
"description": "Dauer, w\u00e4hrend der nach der Archivierung die Dokumente vor \u00f6ffentlicher Einsichtnahme gesch\u00fctzt sind.",
"_zope_schema_type": "Choice",
"default": 30,
"enum": [
null,
0,
30,
100,
150
]
},
"date_of_cassation": {
"type": [
"null",
"string"
],
"title": "Kassationsdatum",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"date_of_submission": {
"type": [
"null",
"string"
],
"title": "Anbietezeitpunkt",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"custom_properties": {
"type": [
"null",
"object"
],
"title": "Benutzerdefinierte Felder",
"description": "Enth\u00e4lt die Daten f\u00fcr die benutzerdefinierten Felder.",
"_zope_schema_type": "PropertySheetField"
},
"review_state": {
"type": "string",
"enum": [
"dossier-state-active",
"dossier-state-resolved"
]
},
"_creator": {
"type": [
"null",
"string"
]
},
"guid": {
"type": "string"
},
"parent_guid": {
"type": [
"null",
"string"
]
},
"parent_reference": {
"type": [
"null",
"array"
],
"items": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"_participations": {
"type": [
"null",
"array"
],
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"roles": {
"items": {
"type": "string"
},
"type": "array"
},
"participant_id": {
"type": "string"
}
}
}
},
"_permissions": {
"$ref": "#/definitions/permission"
},
"sequence_number": {
"type": [
"null",
"integer"
],
"title": "Laufnummer",
"description": "Fortlaufend gez\u00e4hlte Nummer eines Dossiers."
},
"_old_paths": {
"type": [
"null",
"array"
],
"title": "Earlier path"
}
},
"required": [
"title",
"responsible",
"review_state",
"guid"
],
"allOf": [
{
"anyOf": [
{
"required": [
"parent_guid"
]
},
{
"required": [
"parent_reference"
]
}
]
}
],
"field_order": [
"changed",
"title",
"description",
"keywords",
"start",
"end",
"touched",
"responsible",
"external_reference",
"filing_prefix",
"container_type",
"number_of_containers",
"container_location",
"relatedDossier",
"former_reference_number",
"reference_number",
"dossier_type",
"checklist",
"classification",
"privacy_layer",
"public_trial",
"public_trial_statement",
"retention_period",
"retention_period_annotation",
"archival_value",
"archival_value_annotation",
"custody_period",
"date_of_cassation",
"date_of_submission",
"custom_properties"
]
},
"permission": {
"type": "object",
"additionalProperties": false,
"properties": {
"block_inheritance": {
"type": "boolean"
},
"read": {
"type": "array",
"items": {
"type": "string"
}
},
"add": {
"type": "array",
"items": {
"type": "string"
}
},
"edit": {
"type": "array",
"items": {
"type": "string"
}
},
"close": {
"type": "array",
"items": {
"type": "string"
}
},
"reactivate": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/repofolder"
},
"definitions": {
"repofolder": {
"type": "object",
"title": "Ordnungsposition",
"additionalProperties": false,
"properties": {
"description": {
"type": [
"null",
"string"
],
"title": "Beschreibung",
"description": "Eine kurze Beschreibung des Inhalts.",
"_zope_schema_type": "Text"
},
"valid_from": {
"type": [
"null",
"string"
],
"title": "G\u00fcltig ab",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"valid_until": {
"type": [
"null",
"string"
],
"title": "G\u00fcltig bis",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"location": {
"type": [
"null",
"string"
],
"title": "Standort",
"description": "",
"_zope_schema_type": "TextLine"
},
"referenced_activity": {
"type": [
"null",
"string"
],
"title": "Leistung",
"description": "",
"_zope_schema_type": "TextLine"
},
"former_reference": {
"type": [
"null",
"string"
],
"title": "Fr\u00fcheres Zeichen",
"description": "",
"_zope_schema_type": "TextLine"
},
"allow_add_businesscase_dossier": {
"type": [
"null",
"boolean"
],
"title": "Hinzuf\u00fcgen von Gesch\u00e4ftsdossiers erlauben",
"description": "W\u00e4hlen Sie, ob es in dieser Ordnungsposition erlaubt ist, Gesch\u00e4ftsdossiers hinzuzuf\u00fcgen. Ist diese Option deaktiviert, kann der Benutzer nur Dossiers aus einer Vorlage oder Spezialdossiers erstellen.",
"_zope_schema_type": "Bool"
},
"changed": {
"type": [
"null",
"string"
],
"title": "Zuletzt ver\u00e4ndert",
"format": "datetime",
"description": "",
"_zope_schema_type": "Datetime"
},
"classification": {
"type": [
"null",
"string"
],
"title": "Klassifikation",
"description": "Grad, in dem die Unterlagen vor unberechtigter Einsicht gesch\u00fctzt werden m\u00fcssen.",
"_zope_schema_type": "Choice",
"default": "unprotected",
"enum": [
null,
"unprotected",
"confidential",
"classified"
]
},
"privacy_layer": {
"type": [
"null",
"string"
],
"title": "Datenschutz",
"description": "Markierung, die angibt, ob die Unterlagen besonders sch\u00fctzenswerte Personendaten oder Pers\u00f6nlichkeitsprofile gem\u00e4ss Datenschutzrecht enthalten.",
"_zope_schema_type": "Choice",
"default": "privacy_layer_no",
"enum": [
null,
"privacy_layer_no",
"privacy_layer_yes"
]
},
"public_trial": {
"type": [
"null",
"string"
],
"title": "\u00d6ffentlichkeitsstatus",
"description": "Angabe, ob die Unterlagen gem\u00e4ss \u00d6ffentlichkeitsgesetz zug\u00e4nglich sind oder nicht.",
"_zope_schema_type": "Choice",
"default": "unchecked",
"enum": [
null,
"unchecked",
"public",
"limited-public",
"private"
]
},
"public_trial_statement": {
"type": [
"null",
"string"
],
"title": "Bearbeitungsinformation",
"description": "Datum Gesuch, Gesuchsteller, Datum Entscheid, Verweis auf GEVER-Gesuchdossier",
"_zope_schema_type": "Text",
"default": ""
},
"title_de": {
"type": [
"null",
"string"
],
"title": "Titel (deutsch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"title_fr": {
"type": [
"null",
"string"
],
"title": "Titel (franz\u00f6sisch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"title_en": {
"type": [
"null",
"string"
],
"title": "Titel (englisch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"retention_period": {
"type": [
"null",
"integer"
],
"title": "Aufbewahrungsdauer (Jahre)",
"description": "Zeitraum zwischen dem j\u00fcngsten Dokumentdatum eines in einem Dossier enthaltenen Dokuments und dem Zeitpunkt, an dem dieses f\u00fcr die Gesch\u00e4ftst\u00e4tigkeit der Verwaltungseinheit nicht mehr ben\u00f6tigt wird.",
"_zope_schema_type": "Choice",
"default": 5,
"enum": [
null,
5,
10,
15,
20,
25
]
},
"retention_period_annotation": {
"type": [
"null",
"string"
],
"title": "Kommentar zur Aufbewahrungsdauer",
"description": "",
"_zope_schema_type": "Text"
},
"archival_value": {
"type": [
"null",
"string"
],
"title": "Archivw\u00fcrdigkeit",
"description": "Archivw\u00fcrdigkeit",
"_zope_schema_type": "Choice",
"default": "unchecked",
"enum": [
null,
"unchecked",
"prompt",
"archival worthy",
"not archival worthy",
"archival worthy with sampling"
]
},
"archival_value_annotation": {
"type": [
"null",
"string"
],
"title": "Kommentar zur Archivw\u00fcrdigkeit",
"description": "",
"_zope_schema_type": "Text"
},
"custody_period": {
"type": [
"null",
"integer"
],
"title": "Archivische Schutzfrist (Jahre)",
"description": "Dauer, w\u00e4hrend der nach der Archivierung die Dokumente vor \u00f6ffentlicher Einsichtnahme gesch\u00fctzt sind.",
"_zope_schema_type": "Choice",
"default": 30,
"enum": [
null,
0,
30,
100,
150
]
},
"date_of_cassation": {
"type": [
"null",
"string"
],
"title": "Kassationsdatum",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"date_of_submission": {
"type": [
"null",
"string"
],
"title": "Anbietezeitpunkt",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"reference_number_prefix": {
"type": [
"null",
"string"
],
"title": "Ordnungspositionsnummer",
"description": "",
"_zope_schema_type": "TextLine",
"default": "<H\u00f6chste auf dieser Ebene vergebene Nummer + 1>"
},
"addable_dossier_templates": {
"type": [
"null",
"array"
],
"title": "Erlaubte Dossiervorlagen",
"description": "",
"_zope_schema_type": "RelationList",
"default": []
},
"responsible_org_unit": {
"type": [
"null",
"string"
],
"title": "Federf\u00fchrendes Amt",
"maxLength": 30,
"description": "",
"_zope_schema_type": "TextLine"
},
"review_state": {
"type": "string",
"enum": [
"repositoryfolder-state-active"
]
},
"_creator": {
"type": [
"null",
"string"
]
},
"guid": {
"type": "string"
},
"parent_guid": {
"type": [
"null",
"string"
]
},
"parent_reference": {
"type": [
"null",
"array"
],
"items": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"_permissions": {
"$ref": "#/definitions/permission"
},
"_old_paths": {
"type": [
"null",
"array"
],
"title": "Earlier path"
}
},
"required": [
"review_state",
"guid"
],
"allOf": [
{
"anyOf": [
{
"required": [
"title_de"
]
},
{
"required": [
"title_fr"
]
},
{
"required": [
"title_en"
]
}
]
},
{
"anyOf": [
{
"required": [
"parent_guid"
]
},
{
"required": [
"parent_reference"
]
}
]
}
],
"field_order": [
"description",
"valid_from",
"valid_until",
"location",
"referenced_activity",
"former_reference",
"allow_add_businesscase_dossier",
"changed",
"classification",
"privacy_layer",
"public_trial",
"public_trial_statement",
"title_de",
"title_fr",
"title_en",
"retention_period",
"retention_period_annotation",
"archival_value",
"archival_value_annotation",
"custody_period",
"date_of_cassation",
"date_of_submission",
"reference_number_prefix",
"addable_dossier_templates",
"responsible_org_unit"
]
},
"permission": {
"type": "object",
"additionalProperties": false,
"properties": {
"block_inheritance": {
"type": "boolean"
},
"read": {
"type": "array",
"items": {
"type": "string"
}
},
"add": {
"type": "array",
"items": {
"type": "string"
}
},
"edit": {
"type": "array",
"items": {
"type": "string"
}
},
"close": {
"type": "array",
"items": {
"type": "string"
}
},
"reactivate": {
"type": "array",
"items": {
"type": "string"
}
},
"manage_dossiers": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/reporoot"
},
"definitions": {
"reporoot": {
"type": "object",
"title": "Ordnungssystem",
"additionalProperties": false,
"properties": {
"valid_from": {
"type": [
"null",
"string"
],
"title": "G\u00fcltig ab",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"valid_until": {
"type": [
"null",
"string"
],
"title": "G\u00fcltig bis",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"version": {
"type": [
"null",
"string"
],
"title": "Version",
"description": "",
"_zope_schema_type": "TextLine"
},
"reference_number_addendum": {
"type": [
"null",
"string"
],
"title": "Aktenzeichen Zusatz",
"description": "Achtung: \u00c4nderung erfordert Neuindexierung von \"reference\" und \"sortable_reference\".",
"_zope_schema_type": "TextLine"
},
"title_de": {
"type": [
"null",
"string"
],
"title": "Titel (deutsch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"title_fr": {
"type": [
"null",
"string"
],
"title": "Titel (franz\u00f6sisch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"title_en": {
"type": [
"null",
"string"
],
"title": "Titel (englisch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"review_state": {
"type": "string",
"enum": [
"repositoryroot-state-active"
]
},
"_creator": {
"type": [
"null",
"string"
]
},
"guid": {
"type": "string"
},
"_permissions": {
"$ref": "#/definitions/permission"
},
"_old_paths": {
"type": [
"null",
"array"
],
"title": "Earlier path"
}
},
"required": [
"review_state",
"guid"
],
"allOf": [
{
"anyOf": [
{
"required": [
"title_de"
]
},
{
"required": [
"title_fr"
]
},
{
"required": [
"title_en"
]
}
]
}
],
"field_order": [
"valid_from",
"valid_until",
"version",
"reference_number_addendum",
"title_de",
"title_fr",
"title_en"
]
},
"permission": {
"type": "object",
"additionalProperties": false,
"properties": {
"block_inheritance": {
"type": "boolean"
},
"read": {
"type": "array",
"items": {
"type": "string"
}
},
"add": {
"type": "array",
"items": {
"type": "string"
}
},
"edit": {
"type": "array",
"items": {
"type": "string"
}
},
"close": {
"type": "array",
"items": {
"type": "string"
}
},
"reactivate": {
"type": "array",
"items": {
"type": "string"
}
},
"manage_dossiers": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/workspaceroot"
},
"definitions": {
"workspaceroot": {
"type": "object",
"title": "Teamr\u00e4ume",
"additionalProperties": false,
"properties": {
"title_de": {
"type": [
"null",
"string"
],
"title": "Titel (deutsch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"title_fr": {
"type": [
"null",
"string"
],
"title": "Titel (franz\u00f6sisch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"title_en": {
"type": [
"null",
"string"
],
"title": "Titel (englisch)",
"description": "",
"_zope_schema_type": "TranslatedTextLine"
},
"review_state": {
"type": "string",
"enum": [
"opengever_workspace_root--STATUS--active"
]
},
"_creator": {
"type": [
"null",
"string"
]
},
"guid": {
"type": "string"
},
"_permissions": {
"$ref": "#/definitions/permission"
},
"_old_paths": {
"type": [
"null",
"array"
],
"title": "Earlier path"
}
},
"required": [
"review_state",
"guid"
],
"allOf": [
{
"anyOf": [
{
"required": [
"title_de"
]
},
{
"required": [
"title_fr"
]
},
{
"required": [
"title_en"
]
}
]
}
],
"field_order": [
"title_de",
"title_fr",
"title_en"
]
},
"permission": {
"type": "object",
"additionalProperties": false,
"properties": {
"block_inheritance": {
"type": "boolean"
},
"workspaces_creator": {
"type": "array",
"items": {
"type": "string"
}
},
"workspaces_user": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/workspace"
},
"definitions": {
"workspace": {
"type": "object",
"title": "Teamraum",
"additionalProperties": false,
"properties": {
"responsible": {
"type": [
"null",
"string"
],
"title": "Besitzer",
"description": "",
"_zope_schema_type": "Choice",
"_vocabulary": "<G\u00fcltige ID eines Teamraum Teilnehmers>"
},
"videoconferencing_url": {
"type": [
"null",
"string"
],
"title": "Videokonferenz URL",
"description": "Verwendete URL um eine Videokonferenz f\u00fcr diesen Teamraum zu starten.",
"_zope_schema_type": "TextLine",
"default": "<IWorkspaceSettings.videoconferencing_base_url + random UUID>"
},
"external_reference": {
"type": [
"null",
"string"
],
"title": "Verkn\u00fcpftes Dossier",
"description": "",
"_zope_schema_type": "TextLine"
},
"gever_url": {
"type": [
"null",
"string"
],
"title": "GEVER URL",
"description": "",
"_zope_schema_type": "TextLine"
},
"hide_members_for_guests": {
"type": [
"null",
"boolean"
],
"title": "Teamraum Mitglieder f\u00fcr G\u00e4ste ausblenden",
"description": "",
"_zope_schema_type": "Bool"
},
"changed": {
"type": [
"null",
"string"
],
"title": "Zuletzt ver\u00e4ndert",
"format": "datetime",
"description": "",
"_zope_schema_type": "Datetime"
},
"title": {
"type": "string",
"title": "Titel",
"description": "",
"_zope_schema_type": "TextLine"
},
"description": {
"type": [
"null",
"string"
],
"title": "Beschreibung",
"description": "",
"_zope_schema_type": "Text"
},
"review_state": {
"type": "string",
"enum": [
"opengever_workspace--STATUS--active"
]
},
"_creator": {
"type": [
"null",
"string"
]
},
"guid": {
"type": "string"
},
"parent_guid": {
"type": [
"null",
"string"
]
},
"parent_reference": {
"type": [
"null",
"array"
],
"items": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"_permissions": {
"$ref": "#/definitions/permission"
},
"_old_paths": {
"type": [
"null",
"array"
],
"title": "Earlier path"
}
},
"required": [
"title",
"review_state",
"guid"
],
"field_order": [
"responsible",
"videoconferencing_url",
"external_reference",
"gever_url",
"hide_members_for_guests",
"changed",
"title",
"description"
]
},
"permission": {
"type": "object",
"additionalProperties": false,
"properties": {
"block_inheritance": {
"type": "boolean"
},
"workspace_admin": {
"type": "array",
"items": {
"type": "string"
}
},
"workspace_member": {
"type": "array",
"items": {
"type": "string"
}
},
"workspace_guest": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/workspacefolder"
},
"definitions": {
"workspacefolder": {
"type": "object",
"title": "Ordner",
"additionalProperties": false,
"properties": {
"changed": {
"type": [
"null",
"string"
],
"title": "Zuletzt ver\u00e4ndert",
"format": "datetime",
"description": "",
"_zope_schema_type": "Datetime"
},
"title": {
"type": "string",
"title": "Titel",
"description": "",
"_zope_schema_type": "TextLine"
},
"description": {
"type": [
"null",
"string"
],
"title": "Beschreibung",
"description": "",
"_zope_schema_type": "Text"
},
"review_state": {
"type": "string",
"enum": [
"opengever_workspace_folder--STATUS--active"
]
},
"_creator": {
"type": [
"null",
"string"
]
},
"guid": {
"type": "string"
},
"parent_guid": {
"type": [
"null",
"string"
]
},
"parent_reference": {
"type": [
"null",
"array"
],
"items": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"_permissions": {
"$ref": "#/definitions/permission"
},
"_old_paths": {
"type": [
"null",
"array"
],
"title": "Earlier path"
}
},
"required": [
"title",
"review_state",
"guid"
],
"allOf": [
{
"anyOf": [
{
"required": [
"parent_guid"
]
},
{
"required": [
"parent_reference"
]
}
]
}
],
"field_order": [
"changed",
"title",
"description"
]
},
"permission": {
"type": "object",
"additionalProperties": false,
"properties": {
"block_inheritance": {
"type": "boolean"
},
"workspace_admin": {
"type": "array",
"items": {
"type": "string"
}
},
"workspace_member": {
"type": "array",
"items": {
"type": "string"
}
},
"workspace_guest": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/ogds_user"
},
"definitions": {
"ogds_user": {
"type": "object",
"title": "User",
"additionalProperties": false,
"properties": {
"userid": {
"type": "string",
"title": "userid",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"username": {
"type": "string",
"title": "username",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"external_id": {
"type": "string",
"title": "external_id",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"active": {
"type": [
"null",
"boolean"
],
"title": "active",
"description": "",
"_zope_schema_type": "Bool",
"default": true
},
"firstname": {
"type": [
"null",
"string"
],
"title": "firstname",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"lastname": {
"type": [
"null",
"string"
],
"title": "lastname",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"display_name": {
"type": [
"null",
"string"
],
"title": "display_name",
"maxLength": 511,
"description": "",
"_zope_schema_type": "Text"
},
"directorate": {
"type": [
"null",
"string"
],
"title": "directorate",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"directorate_abbr": {
"type": [
"null",
"string"
],
"title": "directorate_abbr",
"maxLength": 50,
"description": "",
"_zope_schema_type": "Text"
},
"department": {
"type": [
"null",
"string"
],
"title": "department",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"department_abbr": {
"type": [
"null",
"string"
],
"title": "department_abbr",
"maxLength": 50,
"description": "",
"_zope_schema_type": "Text"
},
"organization": {
"type": [
"null",
"string"
],
"title": "organization",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"email": {
"type": [
"null",
"string"
],
"title": "email",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"email2": {
"type": [
"null",
"string"
],
"title": "email2",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"url": {
"type": [
"null",
"string"
],
"title": "url",
"maxLength": 100,
"description": "",
"_zope_schema_type": "Text"
},
"phone_office": {
"type": [
"null",
"string"
],
"title": "phone_office",
"maxLength": 30,
"description": "",
"_zope_schema_type": "Text"
},
"phone_fax": {
"type": [
"null",
"string"
],
"title": "phone_fax",
"maxLength": 30,
"description": "",
"_zope_schema_type": "Text"
},
"phone_mobile": {
"type": [
"null",
"string"
],
"title": "phone_mobile",
"maxLength": 30,
"description": "",
"_zope_schema_type": "Text"
},
"salutation": {
"type": [
"null",
"string"
],
"title": "salutation",
"maxLength": 30,
"description": "",
"_zope_schema_type": "Text"
},
"title": {
"type": [
"null",
"string"
],
"title": "title",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"description": {
"type": [
"null",
"string"
],
"title": "description",
"description": "",
"_zope_schema_type": "Text"
},
"address1": {
"type": [
"null",
"string"
],
"title": "address1",
"maxLength": 100,
"description": "",
"_zope_schema_type": "Text"
},
"address2": {
"type": [
"null",
"string"
],
"title": "address2",
"maxLength": 100,
"description": "",
"_zope_schema_type": "Text"
},
"zip_code": {
"type": [
"null",
"string"
],
"title": "zip_code",
"maxLength": 10,
"description": "",
"_zope_schema_type": "Text"
},
"city": {
"type": [
"null",
"string"
],
"title": "city",
"maxLength": 100,
"description": "",
"_zope_schema_type": "Text"
},
"country": {
"type": [
"null",
"string"
],
"title": "country",
"maxLength": 20,
"description": "",
"_zope_schema_type": "Text"
},
"last_login": {
"type": [
"null",
"string"
],
"title": "last_login",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"absent": {
"type": [
"null",
"boolean"
],
"title": "absent",
"description": "",
"_zope_schema_type": "Bool",
"default": false
},
"absent_from": {
"type": [
"null",
"string"
],
"title": "absent_from",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"absent_to": {
"type": [
"null",
"string"
],
"title": "absent_to",
"format": "date",
"description": "",
"_zope_schema_type": "Date"
},
"object_sid": {
"type": [
"null",
"string"
],
"title": "object_sid",
"maxLength": 255,
"description": "",
"_zope_schema_type": "Text"
},
"guid": {
"type": "string"
},
"parent_guid": {
"type": [
"null",
"string"
]
}
},
"required": [
"userid",
"username",
"external_id",
"guid"
],
"field_order": [
"userid",
"username",
"external_id",
"active",
"firstname",
"lastname",
"display_name",
"directorate",
"directorate_abbr",
"department",
"department_abbr",
"organization",
"email",
"email2",
"url",
"phone_office",
"phone_fax",
"phone_mobile",
"salutation",
"title",
"description",
"address1",
"address2",
"zip_code",
"city",
"country",
"last_login",
"absent",
"absent_from",
"absent_to",
"object_sid"
]
}
}
}
Generieren von OGGBundle¶
Mit bin/create-bundle
kann ein OGGBundle
von einem Datenverzeichnis oder einer Excel-Datei, die ein Ordnungssystem beinhaltet, generiert werden.
Für das Erstellen eines Bundles ab Filesystem gilt folgendes:
- Wenn
--repo-nesting-depth
gesetzt ist, wird das Skript einOGGBundle
für ein komplettesOrdnungssystem
generieren. In diesem Fall wird dassource_dir
imOGGBundle
als einreporoot
abgebildet, und alle Verzeichnisse welche eine Verschachtelungstiefe geringer als--repo-nesting-depth
haben werden alsrepofolders
abgebildet. Andere Verzeichnisse alsdossiers
und Dateien alsdocuments
. - Wenn
--repo-nesting-depth
nicht gesetzt ist (--repo-nesting-depth=-1
), dann generiert das Skript einOGGBundle
für einen partiellen Import. In diesem Fall wird dassource_dir
imOGGBundle
nicht abgebildet, alle enthaltenen Verzeichnisse werden alsdossiers
abgebildet und Dateien alsdocuments
. Die Ordnungsposition oder das Dossier in welches dasOGGBundle
importiert werden soll, muss man mit--import-repository-references
und optional--import-dossier-reference
spezifizieren.
Für das Erstellen eines Bundles ab Excel sind nur gewisse Argumente zugelassen. Zudem können keine Dossiers und Dokumente erstellt werden, da das Excel nur das Ordnungssystem beinhaltet.
Mit bin/create-bundle --help
kann eine vollständige Liste der möglichen Argumente angezeigt werden.