-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: blueprint settings overhaul #878
Conversation
Codecov ReportPatch coverage:
📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more Additional details and impacted files@@ Coverage Diff @@
## release50 #878 +/- ##
=============================================
+ Coverage 59.30% 59.55% +0.25%
=============================================
Files 468 467 -1
Lines 71384 71103 -281
Branches 3626 3634 +8
=============================================
+ Hits 42333 42347 +14
+ Misses 29000 28706 -294
+ Partials 51 50 -1
... and 2 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report in Codecov by Sentry. |
…-overhaul # Conflicts: # meteor/client/ui/Settings/StudioSettings.tsx # meteor/server/coreSystem/checkBlueprintsConfig.ts # packages/playout-gateway/package.json # packages/shared-lib/package.json # packages/yarn.lock
# Conflicts: # meteor/client/lib/forms/schemaFormForCollection.tsx # meteor/client/lib/forms/schemaFormInPlace.tsx # meteor/client/lib/forms/schemaFormUtil.tsx # meteor/client/lib/forms/schemaFormWithOverrides.tsx # meteor/client/ui/Settings/StudioSettings.tsx # meteor/client/ui/Settings/components/ConfigManifestEntryComponent.tsx # meteor/client/ui/Settings/components/DeviceConfigSchemaSettings.tsx # meteor/client/ui/Settings/util/OverrideOpHelper.tsx # meteor/client/ui/Shelf/Inspector/ItemRenderers/ActionItemRenderer.tsx # meteor/yarn.lock # packages/documentation/docs/for-developers/json-config-schema.md
⚡ Published prerelease version server-core-integration@1.50.0-nightly-release50-20230321-191558-fb8f1c3.0 to NPM |
Feature
Builds on #837, as it shares a lot of the JSONSchema work from there.
Blueprint configuration has for a long time been using our custom ConfigManifest types.
This has been replaced with using JSONSchema, allowing us to generate typescript interfaces and describe the structure for the UI in one place. This puts us almost competely at having one unified way of describing these UIs from outside of the main codebase.
To help with managing the growing number of blueprint-configuration fields, it is now possible to assign a property to a category.
With this the look of the blueprint-configuration page has changed, and is now more similar to how the other schema-form derived UI's look.
Additionally, it is now possible to define tables which allow for the values to be granularly overridden. The old way works for compatibility reasons, but by defining the property as an object, it is possible to get the same granular behaviour we have for source-layers/mappings for the table rows.
For example:
Further details on the supported json-schema features are in the documentation.
There is one place remaining using the ConfigManifest types, for adlib-actions with editable fields. This should be converted across soon, to allow the remaining ConfigManifest code to be cleaned up.
In our blueprints we are building the typescript interfaces from the schema with the script below.
Some work will be required to convert blueprint config to have a schema to expose, with some minor optional work to update imports for any types generated from this schema, and fixing up any unit tests which were generating config objects based on the old config manifest.
We did not need to touch any of the main blueprint code, as the typings generated are identical to before.
Status