Skip to content

metaschema consistency #108

@delocalizer

Description

@delocalizer

Expected

  • metaschema.yaml is internally consistent

Observed

required includes program, project, uniqueKeys, systemProperties:

required:
  ...
  - program
  - project
  - uniqueKeys
  - systemProperties

but program and project are missing from properties, and unique keys and system properties are defined with snake case not camel case:

properties:
...
  unique_keys:
  ...
  system_properties:
  ...

I see that the current version of the gdcdictionary metaschema does include program and project (but unique keys and system properties names still conflict).

Result

systemProperties and uniqueKeys are required in all entity JSON schema documents, but not validated as was perhaps intended with the unique_keys and system_properties blocks?


Other

  • The schema is lacking type: object
  • The link_subgroup definition is lacking type: object and additionalProperties: false. Not fatal but messes with IDE autocomplete. For example when developing an entity schema document in VS Code, one wants IntelliSense to offer a choice between oneOf a link or link_subgroup element to insert into the links array but if type: is missing on the link_subgroup it automatically becomes the 'best' choice because it's less restrictive.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions