Files
windmill/windmill-yaml-validator/gen_openflow_schema.sh
centdix 493707668b feat(utils): add flow.yaml validation function (#6316)
* add validateflow function

* cleaner code

* preprocess json

* cleaning

* create specific package

* cleaning

* add tests
2025-08-01 11:14:39 +00:00

30 lines
998 B
Bash
Executable File

#!/usr/bin/env bash
script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
output_dirpath="${script_dirpath}/src/gen"
mkdir -p "${output_dirpath}"
npx @redocly/openapi-cli@latest bundle "${script_dirpath}/../openflow.openapi.yaml" --ext json > "${output_dirpath}/openflow.json"
# Remove discriminator mapping from openflow.json as it's not supported by ajv
node -e "
const fs = require('fs');
const filePath = '${output_dirpath}/openflow.json';
try {
const schema = JSON.parse(fs.readFileSync(filePath, 'utf8'));
function removeMapping(obj) {
if (obj && typeof obj === 'object') {
if (obj.discriminator?.mapping) delete obj.discriminator.mapping;
for (const v of Object.values(obj)) removeMapping(v);
}
}
removeMapping(schema);
fs.writeFileSync(filePath, JSON.stringify(schema, null, 2));
console.log('Removed discriminator mappings from openflow.json');
} catch (e) {
console.error('Error removing discriminator mappings:', e);
}
"