DITAS European Project VDC Implementation
DITAS VDC Blueprint JSON Schema
*You can find, download & view the schema under the “jsonSchemas” folder in the main repository, named “ditasSchema.json”**We also remind you that you can view the json schema (as well as any other json document) here*
The DITAS VDC Blueprint’s standard JSON schema consists of five different sections. These sections are:
- Internal Structure
- Data Management
- Abstract Properties
- Cookbook Appendix
- Exposed API
Internal Structure: This is the first section, citing general information about the VDC Blueprint. It is a json object and consists of eight properties:
- Overview, a json object containing a string, which should cite a short description of the VDC Blueprint
- Data Sources, a json array consisting of different items (data sources). Each item will be a json object, including its unique properties such as: description, location, class, type, connection parameters & schema.
- Methods Input, a json object containing the part of the data source that each method needs to be executed. It has one property, called methods, a json array which actually is the list of methods.
- Flow, a json object containing the data flow that implements the VDC. Flow has three properties: Platform (Spark or Node-RED), parameters and the source code.
- DAL Images, a json object containing Docker images that must be deployed in the DAL indexed by DAL name. It will be used to compose the service name and the DNS entry that other images in the cluster can access to. Additional properties include Information about the DAL including its original location (meaning its original IP) and an optional set of images to deploy indexed by the image identifier.
- VDC Images, a json object citing the available VDC images.
- Identity Access Management, a json object access management properties such as jwks URI, Iam endpoint, roles (array) and the provider/s (array). Of those four, two are considered as required (jwks URI and Iam endpoint).
- Testing Output Data, a json array consisting of two kinds of items. These items are method id (that is, the id (operationId) of the method (as indicated in the EXPOSED_API.paths field) and zip data (that is, the URI to the zip testing output data for each one exposed VDC method). Both are considered as required.
Data Management: This is the second section. It is a json array and actually consists of different methods. Its properties are:
- Method ID, a string field citing the ID (operationId) of the method (as indicated in the EXPOSED_API.paths field).
- Attributes, a json object which actually consists of goal trees. These are data utility (json array of different metric definitions. Each definition has an id, a name, a type and possible additional properties), security and privacy.
Abstract Properties: This is the third section. Any abstract properties of the VDC are included here. This section does not (intentionally) have a specific structure, since any property (of unknown structure beforehand) can be cited.
Cookbook Appendix: This is the fourth section. It mirrors the Cookbook Appendix section in the VDC Blueprint and, as a json object, it consists of three properties:
- Identity Access Management, a json object containing two properties, validation keys (array of objects) and mapping (array of two kinds of specified objects, but only one kind can be included)
- Deployment, a json object containing information of a deployment that may compromise several clusters. It has five properties. These are ID, infrastructures, name, status and any possible extra properties for resources, infrastructures or deployments. Only the ID is considered as required.
- Resources, a json object citing a set of infrastructures that need to be instantiated or configurated to form clusters. Its properties are the name, the infrastructures (list) and the description. From the three, the name and the infrastructures are considered as required.
Exposed API: This is the fifth and final section of the standard DITAS Blueprint JSON Schema. It is a json object. We could specify it as the CAF API, since it is the CAF RESTful API of the VDC, written according to the version (3.0.2) of the OpenAPI Specification (OAS), but also adapted to DITAS requirements. It consists of one property and two definitions:
-
The property:
- Paths, a json object containing POST and GET (again, json) objects. The definitions:
- Method, a json object. It is an exposed VDC Method and it Corresponds to the Operation Object defined in the OpenAPI Specification (OAS) version 3.0.2. It has five properties, which are summary, operationID, responses, x-data sources (array of data sources) and x-iam roles. Of those five, only the x-iam roles property is not considered as required to be filled.
- Content, a json object containing pattern properties of the json schema.
VDC Editor for DITAS European Project
A Blueprint JSON Schema Editor has been implemented, according to the DITAS European Project’s Schema. The editor is fully functional and you can find the complete code under “DITASjsonSchemaEditor” folder. After downloading the distribution package, all you need to do is run the ‘index.html’ file, inside the ‘html’ folder of the distribution. The editor will open in your native browser and, then, you are free to start using it. As we mentioned above, the editor is built upon the Blueprint JSON Schema of DITAS, which means that all sections and fields are exactly the same as the ones we analysed earlier (“DITAS VDC Blueprint JSON Schema”). If one understands the DITAS Schema, then he will be able to use the editor fluently. The editor is well structured and will always notify you, in case your input does not match the criteria (meaning, the Schema). For the developers who wish to dive into the editor’s code, an Excel document named “blueprint editor settings.xlsx” is located right under the distribution folder, containing some information regarding the HTML attributes. There is a short introduction to the editors UI below: