All notable changes to this project will be documented in this
file. This change log follows the conventions of
keepachangelog.com.
- Added license and other project metadata. Otherwise Clojars doesn't accept the deployment.
- Added config to deploy to Clojars
- Internal implementation details only. Stopped using lazy sequences and used transducers where possible.
- Upgraded dependencies
- Implement base-16 byte/short/integer decoders for CLJS.
- Add 'to-discard' schema (issue #6).
- Fix 'base10-decimal-as-string' regex throwing error in CLJS.
- Fix 'base16-byte-as-string' and 'base16-short-as-string' missing in metaschema.
- 'base16-integer-as-string' parser now interprets hexadecimal strings using the two's complement representation.
- Add 'base16-byte-as-string' and 'base16-short-as-string' schemas.
- Upgrade dependencies
- base10-decimal-as-string now allows the same kind of values that decimal allows (with certain length limits, to prevent DoS attacks)
- Allow negative values in "Unix timestamp, as string" data type, for symmetry with "Unix timestamp, as integer" data type.
- Unix timestamp RFC-3339 now allows lowercase "T" and "Z" characters, as suggested in https://www.rfc-editor.org/rfc/rfc3339#section-5.6
- Enforce limits for Integer data types (including the text-based representation). The previous validation rules allowed those data types to accept values that didn't fit in a 32 bits integer.
- Rename 'offset+scale' to 'scale+offset'
- Add 'boolean-as-string' and 'boolean-as-integer' schemas.
- Rename 'metadata-type' to 'canonical-type'
- Improve meta-schema to better handle type specific props
- Fix boolean-as-string schema not working in CLJS
- Implement first version of offset + scale transformation
- Fix 'validate-message-data' and 'explain-message-data' not using closed Malli schemas.
- Remove 'build-message-data-validator' function. It's not really needed anywhere.
- Remove 'validate-message-schema' and 'explain-message-schema'. After removing the unneeded registry reference they were a 1-1 mapping to raw Malli validate/explain functions.
- Fix 'record-name' uniqueness check.
- Add additional validity checks to the meta-schema.
- Add
base10-integer-as-string, base10-decimal-as-string, and base16-integer-as-string schemas.
- BREAKING CHANGE: Split
meta-schema into two different versions: msg-type-schema-meta-schema and action-msg-type-schema-meta-schema. The difference is that the former can have a property map on the leaf nodes (with :record-name and :record-timestamp. The latter don't have it. - BREAKING CHANGE:
validate-message-schema and explain-message-schema now are functions of 2 arity. The first being the meta-schema (one of the explained above) and the second the schema to be validated.
- Allow integer values if schema is defined as decimal.
- Fix misplacement of optional property map.
- Make meta-schema's
::properties schema closed.
- Fix transformation failure when object names are duplicated
- Use closed object schemas for validation
- Refactor record-name and object-key-name schemas.
- Fix old metadata being lost when calculating new one.
- Use same metadata type identifier for all timestamps.
- Add
has-timestamp-record? function. - Update
curl package version in Dockerfile - Add
criterium benchmarking library for dev purposes - Redefine Malli simple-types as simple-schemas
- Add functions to derive data model metadata from schemas
- Ignore IntelliJ IDEA local files from .gitignore
- Change artifact name to use reverse domain artifact name.
- Remove unnecessary piggieback dependency and repl-middleware.
- Add io.biotz.message-schema.edn namespace to read and write biotz
message-schemas from/to edn/string.
- Add
unix-timestamp and rfc-3339-timestamp schema types. - Add
unix-timestamp implementation variants, one for integers and
another for strings. - Add better predicate using regular expressions for
rfc-3339-timestamp.
Can you improve this documentation? These fine people already did:
Bingen Galartza Iparragirre, Iñaki Arenaza, Lucas Sousa, Mikel Elizondo, lucassousaf & szymonPietrasEdit on GitHub