Tap Checkly | Singer Transform Module | Fluid Attacks Help

Tap Checkly

Singer transform module

This module handles all transforms from api objects into singer objects.

Arch

By design this module is:
  1. Independent of the api module.
  2. Agnostic of the etl state objects.

Exports

  1. SingerStreams: The names of the singer streams that are generated by this module.
  2. ObjEncoder: The main interface from which the transform is defined.
  3. ObjsEncoders: Namespace where all supported ObjEncoder are found.

How to implement a new transform?

  1. Extend SingerStreams for the new obj encoder.
  2. Create a private module within this module.
  3. In the private module: implement an ObjEncoder[_T] for the new specific object (_T) using the new SingerStreams item.
  4. Expose the new encoder in ObjsEncoders.

When to extend this module streams/encoders?

There is only one SingerStreams item per object schema, if two streams share the same schema they are equivalent as so their encoders. This also implies that objects _T and _R would be equivalent, but if this is not the case its better to reuse the equivalent encoder and then override the stream by another SingerStreams item.

Idea
Tip
Have an idea to simplify our architecture or noticed docs that could use some love? Don't hesitate to open an issue or submit improvements.