Specification of format OGGBundle

This document describes the specification of the data interface for migrating data from a third party repository into OneGov GEVER.

Changelog:

Version Date Author Comment
1.3 20.06.2022 PG Added: Creator
1.2 16.06.2022 PG Import of OGDS users
1.1 10.08.2020 LG Import of workspaces
1.0 16.10.2017 LG, PG Referencing existing content via file number
0.1.3 10.02.2017 LG Added: Setting the workflow status
0.1.2 16.01.2017 LG JSON schemas referenced
0.1.1 12.01.2017 LG Not allowed file formats defined
0.1 26.11.2016 LG, DE Initial draft

Status: in progress

The interface described here is used for the one-time import of a repository, its filing positions, dossiers/subdossiers and documents/mails into OneGov GEVER. The migration takes place from a JSON-based intermediate format. This must correspond to a valid schema and the data it contains must comply with the business rules applicable in OneGov GEVER.

Importable content types

Repositories Yes
Repository folders Yes
Workspace roots Yes
Workspaces Yes
Workspace folders Yes
Dossiers Yes
Documents Yes
Mails Yes
OGDS Users Yes
Contacts No *
Org units No
Meetings No
Tasks / forwardings No

* “Contacts” in this context refers to a special content type in OneGov GEVER that can be used to enter address data directly in GEVER that is not kept in other systems such as AD. Users from AD, on the other hand, will also be imported into OneGov GEVER, but directly from AD, not as part of the intermediate format.

OneGov GEVER Bundle (OGGBundle)

The intermediate format for exporting data from a third party repository and importing it into OneGov GEVER is called the OneGov GEVER Bundle (OGGBundle).

The bundle can be understood as a “virtual directory”: It follows a directory structure, which is built according to a certain pattern, and contains all the necessary information of the export. The bundle can thus be delivered for very small amounts of data as a ZIP file with the extension .oggbundle (e.g. testinhalte.oggbundle), or it can also be deposited or mounted on a server as a directory with the extension .oggbundle. The specific transport mechanism is not part of this specification, and can be chosen according to the application purpose.

All path specifications in a bundle are relative to the root of the bundle.

The bundle consists of a collection of JSON files whose contents must follow a specific schema, and a subdirectory files/ which contains the files for documents (primary data).


A bundle contains one file per content type to be imported. In it, the respective content must be stored flat (without nesting) in JSON format. For each such file, a JSON schema is provided, which precisely describes the structure of the JSON file and with which the content must be validated before an import. The following sections describe the content types currently supported and the associated files in the bundle.

img-image-1

Configuration and bundle metadata

metadata.json

This file contains metadata about the bundle, e.g. the creation date and creator of the bundle or the intended use (optional).

configuration.json

This file contains the configuration of the client, especially the value ranges needed to validate the contents, which are configurable for certain fields per client.

JSON schema: configuration.schema.json

Data for content types

reporoots.json

This file contains one or more classification system (repository) roots.

JSON Schema: reporoots.schema.json

repofolders.json

This file contains the individual repository folders that are stored in the repository root.

JSON Schema: repofolders.schema.json

workspaceroots.json

This file contains a workspace root.

If a workspace root already exists on the installation into which an OGGBundle with workspaces is imported, this file can be omitted. During the import, it is then assumed that exactly one workspace root already exists and the workspaces are imported into this workspace root.

In this case, the workspace must not have a parent_guid set.

JSON Schema: workspaceroots.schema.json

workspaces.json

This file contains one or more workspaces.

The workspaces are assigned to a workspace root via the parent_guid, which is also included in the bundle.

Alternatively, the parent_guid for workspaces, and the definition of a workspace root in the workspaceroots.json can be omitted - the workspaces will then be imported into an already existing workspace root.

JSON schema: workspaces.schema.json

workspacefolders.json

This file contains one or more workspaces folders.

JSON Schema: workspacefolders.schema.json

dossiers.json

This file contains dossiers and subdossiers, these can be stored in the repository folder (classification items).

JSON schema: dossiers.schema.json

documents.json

This file contains the metadata of the documents. The binary files are provided in the files/ folder and must be referenced with a path relative to the bundle. The metadata includes, among other things, the file name. The file name of the file on the file system is not used, but is overwritten by the metadata.

See the explanation below in the section files/ for details regarding file paths.

JSON Schema: documents.schema.json

ogds_users.json

This file contains the users to be imported into the OGDS. As a rule, these are former, no longer active users who can be imported in this way.

The value guid must correspond to the userid.

JSON schema: ogds_users.schema.json

files/

This folder contains the primary files of the documents. Whether the files are stored flat, or nested in further subfolders is not specified - the structuring of this directory is left to the supplier of the bundle. However, the file names must be normalised to avoid incompatibilities that can arise due to different character sets in different environments. We recommend a simple scheme with ascending numbering such as file_00123.pdf.

The actual title / file name used in OneGov GEVER is controlled by the title attribute in the metadata supplied in documents.json: In the title attribute, the original file name, including file extension, should be supplied. In OneGov GEVER, the title of the document is then derived from this attribute by removing the file extension. The file extension itself, on the other hand, is used to determine the content type (MIME type).

The following file types are not allowed in OGGBundles:

  • .exe
  • .dll

Paths / file names may only contain alphanumeric characters, underscore and hyphen ([0-9][a-zA-Z][-_]). All paths are case-sensitive, and must not exceed a maximum length of 255 characters. The paths are to be specified as UNIX paths relative to the root of the bundle (separated with forward slash).

Mapping of nesting (containment)

The hierarchical relationship between objects is mapped using parent pointers.

parent_guid

Since the data in the JSON files is not stored in a nested manner, it is necessary to resolve this nesting during the import. This nesting is mapped by means of a globally unique ID (GUID) and a pointer from children to the containing parent. For this purpose, each object must have a GUID. This must be stored in the attribute guid. The nesting is established by means of a reference to the parent. For this purpose, each object that has a parent must define the attribute parent_guid and thus reference the parent:

{
"guid": "7777-0000-0000-0000",
...
},
{
"guid": "9999-0000-0000-0000",
"parent_guid": "7777-0000-0000-0000",
...
}

It is also possible to reference an object as a parent via the parent_guid that is already in the system due to a previous import. This parent item then does not have to be supplied in the bundle (but may be, as long as the GUID remains the same).

If both an item with a specific GUID is delivered in the bundle and there is also an item with an identical GUID already in the system, the item from the bundle is ignored and skipped (so no metadata of the already existing item is updated either).

This means that if two bundles are imported one after the other, of which the second contains additional data, only the difference is imported (objects with GUIDs that did not yet exist in the first bundle). However, this requires that the GUIDs of objects that are to be recognised as “equal” / “already exist” do not change (otherwise the objects will be imported again and will therefore exist twice).

parent_reference

As an alternative to the GUID, the reference number of an object can also be used as a unique reference to the parent. The use of the reference number as a parent pointer allows already existing objects to be referenced via their unique reference number, thus enabling partial imports. For example, it is possible to import documents into an existing dossier by referencing this dossier via its reference number.

If the reference number is used for referencing, the attribute parent_reference (instead of parent_guid) must be set. The file number in this attribute is expected to be a nested array of integers that map the individual components of the file number (without formatting). Example: [[1, 3, 5], [472, 9] corresponds to the reference number 1.3.5 / 472.9 (position 1.3.5, dossier 472, subdossier 9):

{
"guid": "9999-0000-0000",
"parent_reference": [[1, 3, 5], [472, 9],
...
}

See also section Business rules for details of which content types may be nested and how.

Permissions

Permissions are inherited by default to children in OneGov GEVER. It is permitted to set permissions at the level of the repositoryroot, repositoryfolder and dossier, whereby permissions at the level of the dossier should be the exception.

The possible permissions are basically dependent on the respective content type. The permitted values can be taken from the JSON schema for the type. For most GEVER content, however, the controllable permissions are identical - the exception being workspace content.

Permissions are set by specifying a mapping according to the schema in the _permissions property of the item.

Example:

{
"guid": "9999-0000-0000-0000",
...

  "_permissions": {
    "read": [
      "all_users"
    ],
    "add": [
      "privileged_users"
    ],
    "edit": [
      "privileged_users"
    ],
    "close": [
      "admin_users"
    ],
    "reactivate": [
      "admin_users"
    ]
  }
}

Permissions can be assigned granularly for the following roles:

  • read (read)
  • add (add dossiers)
  • edit (edit dossiers)
  • close (close dossiers)
  • reactivate (reactivate dossiers)
  • manage_dossiers (manage dossiers)

In addition, a block_inheritance flag can be used to specify whether the inheritance of permissions should be interrupted at this level. This means that from this level onwards, only the explicitly defined access authorizations are valid and no authorizations are taken over from the parent via inheritance:

"_permissions": {
  "block_inheritance": true,
  ...
}

Permissions are assigned to one or more “principals”, this corresponds to a user or a group.


For workspaces there are separate roles which can be set at different levels.

The following roles can be assigned at the workspace root level:

  • workspaces_creator (create workspaces)
  • workspaces_user (list workspaces)

At the level of a single workspace or a workspace folder, the following roles can be assigned:

  • workspace_admin (admin)
  • workspace_member (member)
  • workspace_guest (guest)

Participations in workspaces are mapped via local roles. To import a user’s participation in a workspace, it is therefore sufficient to express the type of participation via a corresponding local role assignment in the ``_permissions`` property.

Setting values

Default values are only set if the corresponding attributes are not available in the supplied JSON.

Setting the workflow status

For objects with a workflow, the property review_state can be used to specify in which state the object can be created.

The complete list of valid workflow states is defined in the schema of the corresponding objects.

Repositories


repositoryroot-state-active Active

Initial state: repositoryroot-state-active

JSON Schema: reporoots.schema.json

Repositoryfolders


repositoryfolder-state-active Active

Initial state: repositoryfolder-state-active

JSON Schema: repofolders.schema.json

Dossiers


dossier-state-active Active
dossier-state-resolved Resolved

Initial state: dossier-state-active

Therefore, to deliver a dossier in the completed state, the review_state is set to the appropriate value:

...

review_state: dossier-state-resolved,

...

When a dossier is delivered in the resolved state, each contained subdossier MUST also have the status dossier-state-resolved. Fulfilment of the rules on loose sheets and date ranges, on the other hand, is recommended but not strictly required for import (will be logged but imported as-is).

JSON Schema: dossiers.schema.json

Documents


document-state-draft (default state)

Inital state: document-state-draft

JSON Schema: documents.schema.json

Creator

The creator of an object can be set for all contents with the property _creator. The corresponding journal entries are also recorded in the name of the creator of the respective object.

Redirects to previous URL paths

In order to ensure that old links to the original path of a document or dossier still work, the original paths can be specified under the key _old_paths. This way, the old URLs lead to the newly created object with a redirect.

Additional validation

Schema

  • The GUID of each imported object must be unique.
  • The reference number of a dossier/document must be unique, also the position number of an item.
  • Date and DateTime fields must be formatted according to RFC 3339.

Business Rules

The following business rules apply in OneGov GEVER:

  • The configuration variable maximum_repository_depth and maximum_dossier_depth define how deep folder items and dossiers may be nested within each other.

  • Closed dossiers:

    • Closed dossiers may not contain open subdossiers.
    • If a dossier is closed and has subdossiers, all documents must be assigned to a subdossier, the main dossier must not contain any documents directly assigned to it (“no loose sheets”).
    • The end date of a resolved dossier must always be greater than or equal to the end date of all its subdossiers, and greater than or equal to the document date of a contained document.
  • A repositoryfolder can only contain either dossiers or further repositoryfolders, never objects of both content types at the same time. Accordingly, dossiers may only be contained in leaf nodes of the repository.

  • For the following fields, the choice is restricted by the parent:

    • custody_period
    • archival_value
    • classification
    • privacy_layer
    • retention_period - Depending on the configuration, this rule may not be active.

    Restricting in this context means that the list of available available elements according to the JSON schema definition to the element selected by the parent and all subsequent elements is reduced.

Reference and sequence numbers

In OneGov GEVER, reference numbers are kept and displayed on the dossier and document levels. The display format of the reference number (grouping, separator) is configurable per client and the individual components are stored separately, independent of the formatted string.

An example of the reference number of a document in GEVER looks as follows:
FD 0.7.1.1 / 5.3 / 54

The individual components here stand for the following:

  • FD - an abbreviation that can be configured per client and is used in the reference number.
  • 0.7.1.1 - the number of the repositoryfolder. Composed of the individual components (0, 7, 1, and 1) which are managed / stored locally on the corresponding repositoryfolders. Separated by a configurable separator (point by default).
  • 5 - the number of the dossier within the leaf repositoryfolder (ascending counter per heading).
  • 3 - the number of a subdossier within the dossier, if subdossiers exist.
  • 54 - the globally unique sequence number of the document (also unique without the rest of the reference number).

The reference numbers for dossiers/subdossiers leave out the last part (sequence number of the document).

Delimitations

  • For the time being, only the mentioned content types can be imported, not all types available in OneGov GEVER.
  • Document versions cannot be imported.
  • Mails cannot be converted losslessly from *.msg to *.eml during automatic import, so they must first be converted to *.eml.
  • It cannot be checked whether the rights are set “sensibly” (optimal use of the inheritance mechanism, no redundancies). Any simplification of the permissions must be carried out before importing the data into OneGov GEVER.

Appendix

Schemas

The JSON schemas that define the structure of the JSON files for the metadata are stored here:

configuration.schema.json

Schema anzeigen
{
  "$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"
  ]
}

documents.schema.json

Schema anzeigen
{
    "$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"
                },
                "_id": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "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"
            ]
        }
    }
}

dossiers.schema.json

Schema anzeigen
{
    "$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"
                },
                "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"
                },
                "touched": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "title": "\u00c4nderungsdatum des Objektes oder seines Inhalts",
                    "format": "date",
                    "description": "",
                    "_zope_schema_type": "Date"
                },
                "_id": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "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"
                            }
                        }
                    }
                },
                "_journal_entries": {
                    "type": [
                        "null",
                        "array"
                    ],
                    "items": {
                        "type": "object",
                        "title": "opengever.journal.form.IManualJournalEntry",
                        "additionalProperties": false,
                        "properties": {
                            "category": {
                                "type": "string",
                                "title": "Kategorie",
                                "description": "",
                                "_zope_schema_type": "Choice",
                                "enum": [
                                    "appointment",
                                    "information",
                                    "meeting",
                                    "other",
                                    "phone-call"
                                ]
                            },
                            "comment": {
                                "type": "string",
                                "title": "Kommentar",
                                "description": "",
                                "_zope_schema_type": "Text"
                            },
                            "related_documents": {
                                "type": "array",
                                "title": "Dokumentverweise",
                                "description": "",
                                "_zope_schema_type": "RelationList",
                                "default": []
                            },
                            "time": {
                                "_zope_schema_type": "Datetime",
                                "type": [
                                    "null",
                                    "string"
                                ],
                                "format": "datetime"
                            },
                            "actor": {
                                "_vocabulary": "<G\\u00fcltige User-ID>",
                                "_zope_schema_type": "Choice",
                                "type": [
                                    "null",
                                    "string"
                                ],
                                "format": "datetime"
                            }
                        },
                        "required": [
                            "category"
                        ]
                    }
                },
                "_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",
                "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",
                "touched"
            ]
        },
        "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"
                    }
                }
            }
        }
    }
}

repofolders.schema.json

Schema anzeigen
{
    "$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"
                },
                "respect_max_subdossier_depth_restriction": {
                    "type": [
                        "null",
                        "boolean"
                    ],
                    "title": "Maximale Dossier-Tiefe in dieser Ordnungsposition begrenzen",
                    "description": "W\u00e4hlen Sie, ob die Dossier-Tiefe in dieser Ordnungsposition begrenzt werden soll",
                    "_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"
                },
                "_id": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "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",
                "respect_max_subdossier_depth_restriction",
                "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"
                    }
                }
            }
        }
    }
}

reporoots.schema.json

Schema anzeigen
{
    "$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"
                },
                "_id": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "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"
                    }
                }
            }
        }
    }
}

workspaceroots.schema.json

Schema anzeigen
{
    "$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"
                },
                "_id": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "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"
                    }
                }
            }
        }
    }
}

workspaces.schema.json

Schema anzeigen
{
    "$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-Teilnehmer f\u00fcr G\u00e4ste ausblenden",
                    "description": "",
                    "_zope_schema_type": "Bool"
                },
                "meeting_template_header": {
                    "type": [
                        "null",
                        "object"
                    ],
                    "title": "Kopfzeile von Meeting-Protokollen",
                    "description": "Dynamische Textinhalte sind {page_number}, {number_of_pages} und {print_date}, sowie die Bild-Platzhalter {customer_logo} und {workspace_logo}",
                    "_zope_schema_type": "JSONField"
                },
                "meeting_template_footer": {
                    "type": [
                        "null",
                        "object"
                    ],
                    "title": "Fusszeile von Meeting-Protokollen",
                    "description": "Dynamische Textinhalte sind {page_number}, {number_of_pages} und {print_date}, sowie die Bild-Platzhalter {customer_logo} und {workspace_logo}",
                    "_zope_schema_type": "JSONField",
                    "default": {
                        "right": "{page_number}/{number_of_pages}",
                        "center": "",
                        "left": "{print_date}"
                    }
                },
                "workspace_logo": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "title": "Teamraum logo",
                    "description": "Kann in Kopf- und Fusszeilen von Protokollen verwendet werden.",
                    "_zope_schema_type": "NamedImage"
                },
                "restrict_downloading_documents": {
                    "type": [
                        "null",
                        "boolean"
                    ],
                    "title": "Herunterladen bzw. \u00d6ffnen von Inhalten am Endger\u00e4t f\u00fcr G\u00e4ste einschr\u00e4nken",
                    "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"
                },
                "touched": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "title": "\u00c4nderungsdatum des Objektes oder seines Inhalts",
                    "format": "date",
                    "description": "",
                    "_zope_schema_type": "Date"
                },
                "_id": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "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",
                "meeting_template_header",
                "meeting_template_footer",
                "workspace_logo",
                "restrict_downloading_documents",
                "changed",
                "title",
                "description",
                "touched"
            ]
        },
        "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"
                    }
                }
            }
        }
    }
}

workspacefolders.schema.json

Schema anzeigen
{
    "$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"
                },
                "_id": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "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"
                    }
                }
            }
        }
    }
}

ogds_users.schema.json

Schema anzeigen
{
    "$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"
                },
                "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"
            ]
        }
    }
}

Generate OGGBundle

With bin/create-bundle a OGGBundle can be generated from a data directory or an Excel file containing a classification system.

The following applies to creating a bundle from a filesystem:

  • If --repo-nesting-depth is set, the script will generate a OGGBundle for a complete repository. In this case, the source_dir in the OGGBundle is mapped as a reporoot, and all directories that have a nesting depth less than --repo-nesting-depth are mapped as repofolders. Other directories as dossiers and files as documents.
  • If --repo-nesting-depth is not set (--repo-nesting-depth=-1), then the script generates a OGGBundle for a partial import. In this case the source_dir is not mapped in the OGGBundle, all contained directories are mapped as dossiers and files as documents. The folder location or dossier into which the OGGBundle is to be imported must be specified with --import-repository-references and optionally --import-dossier-reference.

Only certain arguments are allowed for creating a bundle from Excel. In addition, dossiers and documents cannot be created, as the Excel only contains the repository.

With bin/create-bundle --help a complete list of possible arguments can be displayed.

Metadata

The creation date of a file is used as document_date in the corresponding OGG object and the modification date of the file is used as the modification date.