Aristotle Metadata Registry help documentation
  • Welcome to the Aristotle Metadata Knowledge Base
  • Finding and Viewing Metadata
    • Search
      • Using omnisearch to find registry content
      • Using advanced search filters to find registry content
        • Advanced Search: Help
    • Browsing the registry
    • Item page breakdown
    • Searching for Alternate Names in the Search Bar
    • Viewing related items and graphs
    • Compare different versions of a metadata item
    • Bulk actions
    • Downloading Content
    • Generating an API token
  • Personalisation
    • Navigation Choices on 'My Dashboard'
    • Managing your account
    • How to reset your password
    • Invite/Reset Password Link Is expired
    • How to set up multi factor authentication
    • Roles in the registry
    • Viewing your roles
    • Favouriting and tagging content
    • Notifications
  • Creating and Editing
    • My sandbox
    • Metadata Toolbox
    • Creating metadata items
      • Creating a data element or data element concept
      • Creating a metadata item with a single item creation wizard
    • Editing content
    • Cloning
    • Deleting metadata items
    • Restore Deleted Content
    • How to create and link quality statements
    • How to create and link glossary items
    • How to record data lineage
    • How to add alternative names to a metadata item
    • How to move individual and bulk metadata into a collection
    • Upload Metadata Using Bulk Import Feature
    • HTML Sanitization
    • Version Control - Supersede
    • Classifications
    • How to link Quality statement to an Indicator?
    • Dataset Grouping
    • Property Groups
      • How to Create Property Groups In Aristotle Registry?
    • Object Class Specialisation
      • How to create an object class specialisation
  • Collaborating within the registry
    • Aristotle Help
    • How to add content to workgroups
    • Reviews
    • Aristotle metadata community
    • How to create Collections and Sub Collections
    • Issues and Change Requests
      • Creating an issue label
      • Creating an issue
      • Viewing all issues
      • Proposing a change request
    • Metadata History: Comparing change logs
  • Registration Authorities
    • Creating and editing registration authorities
      • Validation Rules
        • Setting validation rules
          • Writing validation rules
    • Directly endorsing metadata items
    • Managing members of a registration authority
  • Administrator Tasks
    • Managing user accounts
    • Creating and maintaining a Stewardship Organization
    • Creating and managing workgroups
    • Managing and adding members to a workgroup
    • Add a user to Multiple Stewardship Organizations and Workgroups
    • Creating and editing namespaces and identifiers
      • Configuring manually triggered incremental identifiers
      • Configuring automatically triggered incremental identifiers
    • Deactivating a user account
    • View CRUD (Create, Read, Update and Delete) Changes
    • View deleted items using query string
    • Contact Form
    • Custom Item Templates
      • Creating and editing custom item templates
        • Creating and editing sub-pages
      • Creating metadata items using custom item templates
    • Task Runner
      • Resolving issues with the search function using reindex
      • Populating help pages using load help
      • Resolving issues with item visibility by recaching visibility
      • Viewing all recent and historical task runner information
    • Aristotle Cloud Settings Editor
      • Adjusting visual settings
      • Adding and deleting header and footer links
      • Adjusting general registry settings
      • Adjusting metadata and functionality extensions
      • Making workgroup changes
      • Toggling summary statistics
      • Adjusting separator options
      • Adjusting download options
      • Adjusting translation options
      • Adjusting search options
      • Adjusting spam detection options
    • Registry Customisation in Cloud Settings
    • Custom Domains
      • Requesting a custom domain
      • Setting up a custom domain
  • Registry configuration
    • How to customise a registry
    • Enabling self sign-up
    • Adjusting privacy mode settings
    • Adding a custom login message
    • Homepage Editor
      • Creating a custom homepage using the HTML editor
      • Creating a custom homepage using the safe editor
    • Adding custom HTML to the header and footer of the registry
    • Simple customisation of Header, Body, and Footer
    • Content policies
    • Adding custom fields
      • Custom Field: Structured Data (Json) Type
  • Stewardship Tasks
    • Collection publication and permissions
    • Publishing metadata
    • Creating and managing registration authorities
    • How to add members to a stewardship organisation
    • How to create alternative name types
    • Metadata Report Builder
    • Reference Document Uploads to the Registry
    • Linking reference documents to metadata items
    • Remove Metadata from Workgroup
    • Organisation Records
      • Creating, managing and deleting an organisation record
      • Linking an organisation record to a metadata item
  • Subject Matter and Theory
    • What is metadata?
    • Data Dictionary
    • ISO/IEC 11179 data element representation
    • Bulk Import
    • Data Lineage
    • MAST(Metadata Analysis Standards Teamwork) Methodology and IDEAL Framework
      • Aristotle metadata user guides
  • Special features
    • Generating a Business Information Model using the Visualization Tool
    • Registering an app with the app store
    • Metadata Merger Tool
      • How to set up rules in the merger tool?
    • Federation
      • How do I federate content from another Aristotle Metadata Registry?
  • Geospatial Information
  • Checking for duplicates in the registry
  • Custom Field Bulk Uploader
    • Uploading structured data (JSON) custom fields
    • Bulk Importing Alternative names and Identifiers
  • System Users
  • Single Sign On
    • How to invite and update permissions of Aristotle Metadata staff on a client registry
  • Tablion - Data request portal
    • How to Extract Datasets from the Aristotle Metadata Registry into Tablion
  • Data Inventory View
  • Accessing the Aristotle Metadata Academy
Powered by GitBook
On this page
  1. Registry configuration
  2. Adding custom fields

Custom Field: Structured Data (Json) Type

PreviousAdding custom fieldsNextStewardship Tasks

Last updated 6 months ago

  • You must be an Administrator to be able to perform these actions.

  • Custom Fields are Registry wide.

The Aristotle Metadata Registry allows site administrators to add their own custom fields to metadata items. Currently, the custom fields support data types such as integers, text, rich text, date, and choice.

To enhance customisation, we're introducing a new 'Structured Data (Json)' custom field type. This feature enables clients to create their own custom fields using JSON Schema, which will describe what values are allowed for the custom field’s value and provide information for generating user interfaces for display and editing.

This help page exclusively covers the 'Structured Data (JSON)' custom field type. For more information on custom fields, please visit this .

With this update, you can now add multiple custom fields at once using the 'Structured Data (JSON)' type. Administrators can define these fields by adding JSON code in the JSON Schema, as shown in this reference link: .

You can configure the editor layout by writing JSON forms code, accessible through 'Open Item Editor' and the 'Slots' tab. Reference this link for guidance: .

Additionally, you can define the View layout using JSON or Jinja, determining how it appears on the item page.

Let's look at an example to gain a better understanding of how the 'Structured Data (JSON)' type works:

  1. I have the 'Employee Information Dataset' below and would like to add details of Aristotle Metadata employees, including their names, positions, and contact emails. I can say that I kind of want to add a reference data for this dataset.

  1. The easiest way to do this is to add a custom field named 'Employee Details.' To do so, go to 'Administrator Tools', then click on 'Manage Custom Fields'.

  1. I will add the custom field for 'All'. Alternatively, you can choose to add it for the 'Data Set' only.

  1. Click on 'Add Custom Field for All Models.' Name it 'Employee Details,' select the Type as 'Structured Data (JSON),' and assign a system name of your choice.

  1. Scroll down and select the visibility as 'Public' and State as 'Active & Visible'. Copy and paste the below codes:

Json Schema -

{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "name",
      "position",
      "contactEmail"
    ],
    "properties": {
      "name": {
        "type": "string"
      },
      "position": {
        "type": "string"
      },
      "contactEmail": {
        "type": "string",
        "format": "email"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Editor Layout -

{
  "type": "Control",
  "label": "People",
  "scope": "#/properties",
  "options": {
    "detail": {
      "type": "HorizontalLayout",
      "elements": [
        {
          "type": "Control",
          "scope": "#/properties/name"
        },
        {
          "type": "Control",
          "scope": "#/properties/position"
        },
        {
          "type": "Control",
          "scope": "#/properties/contactEmail"
        }
      ]
    }
  }
}

View Layout -

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Position</th>
      <th>Contact Email</th>
    </tr>
  </thead>
  <tbody>
    {% for employee in value %}
      <tr>
        <td>{{ employee['name'] }}</td>
        <td>{{ employee['position'] }}</td>
        <td>{{ employee['contactEmail'] }}</td>
      </tr>
    {% endfor %}
  </tbody>
</table>
  1. Click on 'Submit Edits'.

  2. Navigate to any metadata item; in this case, I'm returning to my 'Employee Information Dataset.' Click on 'Actions,' then select 'Open Item Editor.' Proceed to the 'Slots' tab, where you'll find 'Employee Details.' You can add as many employee details as you need and then click 'Save Changes'.

  1. This is how it appears on the item page after saving.

  1. Similarly, you can add as many custom fields as you'd like by including JSON code for each.

Recommended tools

Because of the complexity of writing JSON Schema and JSON Forms, below are some tools that may help with devleoping JSON Forms quickly:

JSON Forms Editor:

JSON Forms Playground:

JSON Schema Editor:

https://jsonforms-editor.netlify.app/
https://prismatic.io/docs/jsonforms/playground/
https://json-schema-editor.tangramjs.com/editor.html#/
link
https://json-schema.org/
https://jsonforms.io/