IDE Auto Completion
General
This document describes the Cloudify schema for IDEs allowing for a simpler & faster blueprint development via blueprint syntax validation and code auto-completion. The validation and autocomplete are done through a JSON schema. The schema source can be found in the link.
In order to use the validation and auto completion feature you need to save you blueprints in the following name convention [BLUEPRINT_NAME].cfy.yaml
Supported IDEs
We use SchemaStore open source project to automatically distribute our JSON schema to IDEs
The integration provides a Cloudify JSON schema which is automatically available in the following IDEs:
- IntelliJ IDEA
- PhpStorm
- PyCharm
- Rider
- RubyMine
- Visual Studio 2013+
- Visual Studio Code
- Visual Studio for Mac
- WebStorm
- JSONBuddy
If your IDE is not in the list and supports JSON schema you can download the Cloudify JSON Schema directly from our repository
Functionality
Autocomplete
Similar to any programming language, you can press CTRL+SPACE
and it will suggest the available options.
Property type validation
Each property is assigned to a specific type. The type can be integer, string, boolean, object, array. If the value is not of the right type the IDE will notify you about it.
Suggest properties based on type
In the node templates when you specify type the JSON schema will suggest properties and interfaces that are available for that specific type.
As you can see in the images below the available properties for type cloudify.rest.request
are different from cloudify.nodes.ftp
Cloudify Rest Request Cloudify FTP
Detect Missing Required Properties
If a mandatory field is expected and it’s missing you’ll get a notification.
Property Description
For most of the properties a description is available. The description can assist you to understand what is the best way to use it.
Detect not allowed property
Some of the objects are sealed to certain properties. If an unknown property is introduced it will show an error message. It’s good in cases when an attribute is misspelled.