User-defined custom properties

For each object in Hackolade, we've defined a set of standard properties that appear in the properties pane.  But it is possible that your company wants to define and track additional properties for models, containers, entities, and attributes. Hackolade let's you do just that, by leveraging our plugin architecture (used also to integrate our modeling engine with all kinds of NoSQL document databases.)

This can be used for GDPR or Privacy Infomation, code-generation hooks, etc…

Steps:

  • Download plugin for DB target, by going to the menu

    and select the plugin for the database target of your choice:
  • For each custom properties plugin, you will find the a directory structure similar to this one:

    As a reminder, terminology differs between NoSQL database:
    - container means: dbs in MongoDB, region in DynamoDB, and bucket in Couchbase
    - entity means: collection in MongoDB, table in DynamoDB, and document kind in Couchbase
    - field means: field in MongoDB and Couchbase, and attribute in DynamoDB

    You need to edit the corresponding <object>LevelConfig.json file to add custom properties

    The following controls are possible for user-defined properties:

    - simple text: one line of text
    - text area: popup for multi-line text entry
    - dropdown selection from a deined list of options
    - numeric-only field
    - checkbox: for true/false entry

  • Restart application

Notes:
i) do NOT make any changes to the package.json file! Only the <object>LevelConfig.json files should be edited according to the specifications below.
ii) it is advised to keep a backup of the files before making changes, so you can revert back in case of errors.
iii) it is always necessary to restart the application after having saved changes before you can see these changes relected in the properties pane.
iv) for field-level definitions, since field types have different property lists, it may be necessary to define custom properties for multiple field types.

Have more questions? Submit a request

2 Comments

  • 0
    Avatar
    Quiñónez, Carlo J

    When ForwardEngineer a JSON Schema with customProperties at the entity level, all of the custom properties are inside an object called "customProperties" instead of being at the root of the exported schema. Can this behavior be changed?

    Also how can I specify the $schema property? We've extended the standard JSON Schema with custom keywords and have published the updated metaschema.

     

  • 0
    Avatar
    Pascal

    Hi Carlo,

    Can you send you entityLevelConfig.json file to support@hackolade.com  We'll take a look and suggest the approach to achieve your expected behavior.

Please sign in to leave a comment.