TanmoySG / w-service-manager

Service Manager for wunderPlatform
1 stars 0 forks source link

[Standardization] Standardized Schema Definition Template and Instructions #12

Open TanmoySG opened 1 year ago

TanmoySG commented 1 year ago

From Open Question in conventions.md

[Checkpoints]

TanmoySG commented 1 year ago

Ideas & Thoughts

TanmoySG commented 1 year ago

Broilerplate Generator Script

The following script asks for the Schema and Filepath and creates a Schema Boilerplate.

read -p "Schema Name (format: schema.namespace.parent-namespace): " SCHEMAID
read -p "Schema Filepath (format: path/to/schema.namespace.parent-namespace): " SCHEMAPATH

SCHEMAFULLPATH=$SCHEMAPATH/$SCHEMAID.schema.json

TEMPFILE=$(mktemp)

cat ./schema.template.json | jq 'del(.properties.complexField) | del(.required[1]) | .definitions={} | .' > $TEMPFILE
jq --arg SCHEMAID "${SCHEMAID}"  '.SchemaID=$SCHEMAID' < $TEMPFILE > $SCHEMAFULLPATH;

cat $SCHEMAFULLPATH > $TEMPFILE
jq --arg SCHEMAID "${SCHEMAID}"  '.properties.kind.default=$SCHEMAID | .properties.kind.enum[0]=$SCHEMAID' < $TEMPFILE > $SCHEMAFULLPATH

rm -rf $TEMPFILE

Usage

Run it using

sh prepareSchema.sh
Schema Name (format: schema.namespace.parent-namespace): test
Schema Filepath (format: path/to/schema.namespace.parent-namespace): ./
TanmoySG commented 1 year ago

Script to check if a Schema follows the Standard Schema Structure