- Only support python versions
>=3.9,<3.12
.
- Add support for event data stored in BigQuery.
- Add required
--registry
option toreflekt push
andreflekt pull
commands, specifying a schema registry defined inreflekt_profiles.yml
. - Add
--artifact
option toreflekt build
command, specifying the type of artifact to build (e.g.dbt
).
- CLI
--help
documentation. - Updated
README.md
docs to reflect changes in this release. - Remove
jaffle_shop_sessions.py
, this now lives in reflekt-jaffle-shop - Fix
reflekt push/pull
bug that fails when--select
ing a single schema. - Fix
reflekt report
bug that labeled all properties as required, even if they were not in the schema.
- Only support python versions
>=3.9,<3.13
. Support for python3.8
is DEPRECATED.
- Add jaffle_shop_sessions.py script to create example events and user session data.
- #99 which caused an error when pulling events without an event description from Segment protocols.
reflekt report
CLI command - create a Markdown formatted report of an event schema. Output tostdout
or.md
in same directory as the.json
file.- Add common
get_schema_paths()
tocli.py
so that it can be used by all CLI commands that--select
schemas. - Update example schemas in
schemas/segment/ecommerce/
Use from __future__ import annotations
so that from typing import List, Dict, Tuple
is not required in python 3.8.
- Handle case where schema author specifies
id
in schema. This is transformed by Segment to_id
when loading the table in the warehouse. Reflekt now knows to look for a_id
column when parsing the source table.
- Bug in
segment.py
that would caused error when trying to push a single schema to Segment schema registry.
reflekt lint
checks for properties that do not have atype
defined.
- Add
pascal
as a case option for events and properties in event schemas.
- Do not allow spaces in schema paths.
- Removes
capitalize_camel
config fromreflekt_project.yml
- Log schema before linting, not after.
- Campaign contexts to common Segment schema.
- Device contexts to common Segment schema.
- Handle case where
id
in schema properties so it doesn't get aliased toevent_id
(already used by Reflekt).
- Fix how duplicated columns are aliased in dbt pkg models.
- Fix bug that would add timestamp cols that don't exist in Segment users table.
- Fix bug that prevented columns from
identify
schemas being used to model segment users data. - Ensure page/screen
name
is modelled in dbt regardless of whether they are in the schemaproperties
.
- Fix to force as alias for duplicated properties when building dbt pkg models.
- Fix bug where
_user_id
column was added to models of Segment users data.
- Fix bug where
version
column could be duplicated in dbt pkg models for Segment events.
- Fix bug where
reflekt build dbt
would fail when building a dbt pkg with Segmentgroup()
call data.
- Missing docstrings to Reflekt code.
- Anonymous usage stats.
- Improve Reflekt project and profile validation.
- Reflekt now stores validation and common schemas internally.
- Update templates for Reflekt projects and dbt packages.
- Update README docs.
- Updated Reflekt meta-schema so that metadata is defined under the
'self'
object. - Fixed how Avo tags are transformed into Reflekt metadata.
- Added a required filter: config to reflekt_project.yml (can be empty string).
- Improves schema checks on reflekt_project.yml and reflekt_profiles.yml.
- Cleanup example schemas and artifacts.
- Fixed templated README when running
reflekt build dbt ...
- Tests can be run using
tox
. - Schemas used internally by Reflekt are stored in
schemas/.reflekt/
of a Reflekt project. - Improved validation of
reflekt_project.yml
andreflekt_profiles.yml
configuration files using JSON Schema. - Added
metrics
property to event schemas template in prep for dbt metrics support. - Simplified docs by moving to README.md
- Added this CHANGELOG.
- Use JSON Schema instead of YAML to define event schemas.
- JSON Schema a standard format that is widely used and supported. Better for future integrations.
- Makes Reflekt code simpler and faster (no converting YAML to JSON behind the scenes).
- Event schemas are now stored in a
schemas/
directory. Previouslytracking-plans/
(schemas may support use cases outside product analytics in the future). - Required metadata for event schemas is configured in the
schemas/.reflekt/event-meta/1-0.json
meta-schema. - Replaced
reflekt dbt
withreflekt build
in prep to support building other data artifact types. - dbt packages are now built in the
artifacts/dbt/
directory. Previouslydbt-packages/
. - dbt packages only template staging models as views. Previously, staging models could be incremental, but this was overly complex with little benefit.
- CI suite upgrades.
No formal changelog for versions <= 0.2.18, during this time:
- Reflekt used YAML to define event schemas. YAML was thought to be more readable, but user feedback preferred JSON Schema (widely used and supported).
- Lots of command configuration was done in
reflekt_project.yml
andreflekt_profiles.yml
.