Comments (4)
- Improving the documentation also (all in one place).
- JSON schema could be used to validate that the profile is valid when its being generated manually.
- Which milestone would this be for?
from datahelix.
Should be completed before or with #383
from datahelix.
Acceptance criteria
- JSON schema file created for V3 version of profile
- Schema file committed to repository
- Documentation created/updated and linked to schema file in repository
- Documentation for the validator updated to show it does/doesn't use the schema
- Documentation updated to describe how the schema could be used
- Changes made to the
ProfileReader
/ProfileValidator
(or a new implementation created) to validate the input profile against the schema or a new ticket raised to cover this change and any investigation - Tests created to prove that the schema is valid, details of this test should be contained in the documentation
- For users/contributors if they need to do the same in future, e.g. if the profile and/or schema changes or in other products.
- Automated tests written for any changes made to production code (e.g.
ProfileReader
/ProfileValidator
from datahelix.
Meeting to discuss:
Actions:
- Does the Jackson library support JSON schemas? - @mrspaceman
- What license requirements/restrictions/guidance do we have to ensure the product is accepted into FINOS? - @mrspaceman
- What libraries exist, and what licenses do they have, which schema version do they support? - @mrspaceman
- What version of the JSON schema are we going to adopt? Draft 7? - @mrspaceman
- What editors do we want to support, what support do we want profile authors to have in those editors? - @mrspaceman
- What is the default approach for defining a schema in a JSON file? - @SL-Mark
- Should we use SchemaStore.org? What is the cost, licensing, does it confuse the matter of it being bundled? - @SL-Mark
- Should the profile shape be improved before the first version of the JSON schema is released? - @sl-slaing / @SL-Mark / @ColinEberhardt
- Schedule follow-up meeting @mrspaceman
Outcomes:
- Agreed to focus on a strict profile schema initially, i.e. no non-supported properties are permitted in the profile
- Proposing the permissibility of comments within the profile, as Jackson currently supports
- We have decided that we should endeavour to use the latest draft (7) wherever possible
- Profile validation against the profile schema should provide detail of fault in the profile to aid the author in correct it (i.e. line number, violation against the profile schema)
- Internet connectivity requirements are a concern, so the tool should use a 'bundled' copy of the schema and reject schema urls that do not match any that are bundled.
- ? Profile schema url should use the HTTPS scheme
- ? Profile schema url should point to the codebase in GitHub, rather than another hosting provider
- ? URL for the profile schema version should be treated case-insensitively as it would be via a browser.
- ?
schemaVersion
property will be removed (superseded by the schema directive, see Q6) - Schema directive will be mandatory
- ? Profile schema versions should be immutable and new versions created for each change
- ? Profile schema version numbers should adopt SemVer versioning
Impact:
- inclusion of a schema directive is more 'complex' (its a url rather than a number)
- profiles will prevent additional properties from being included
- which version of the profile schema needs to be used? where can this information be found, which versions does the current release support
Changes:
- pre-validation will be required to ensure the profile schema version/url is correct before performing JSON schema validation
from datahelix.
Related Issues (20)
- Playground API is down HOT 6
- Add test of playground
- Archive the bits of the datahelix-ui project that are no longer being used
- Generate value for a nullable column with a percentage HOT 3
- Using an inSetConstraint with weights and an if constraint causes weights to be ignored HOT 2
- Set now value to a field via constraint does not work HOT 3
- Set now value to a field via both afterOrAt & beforeOrAt constraints does not work HOT 2
- Relational data beta feature isn't valid in the Profile Validation schema HOT 3
- Contradictory weightedInSet profiles are valid HOT 1
- Unique field constraint is ignored using inMap
- CVE-2020-15250 (Medium) detected in junit-4.12.jar
- CVE-2020-8908 (Low) detected in guava-25.1-android.jar, guava-25.0-jre.jar
- Improve output when a profile is considered to be contradictory
- Update the process of specifying/creating now (runtime provided datetime)
- Nightly build broken
- CVE-2018-10237 (Medium) detected in guava-17.0.jar - autoclosed HOT 1
- CVE-2021-29425 (Medium) detected in commons-io-2.6.jar - autoclosed HOT 1
- Locale support HOT 1
- Gradle wrapper is not configured to version 7 of gradle
- Is project still active? HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from datahelix.