Skip to content
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

[Feature] Better processors #1378

Merged
merged 32 commits into from
Mar 7, 2024
Merged

[Feature] Better processors #1378

merged 32 commits into from
Mar 7, 2024

Conversation

lovromazgon
Copy link
Member

@lovromazgon lovromazgon commented Feb 12, 2024

Description

This PR refactors the internal structure and creates types needed to work with standalone and builtin processors (registries, service), it ties everything into the existing code (processor service, pipeline nodes, orchestrator etc.).

This PR includes work from multiple sub-PRs, check them out if you are interested in the discussions we had:

Builtin processor PRs:

Closes #1285, closes #1286, closes #1287, closes #1289, closes #1290, closes #1292

Quick checks:

  • I have followed the Code Guidelines.
  • There is no other pull request for the same update/change.
  • I have written unit tests.
  • I have made sure that the PR is of reasonable size and can be easily reviewed.

lovromazgon and others added 6 commits January 9, 2024 19:33
* refactor pkg/plugin and isolate connector plugin

* fix imports

* fix tests

* fix import

* change registry to connectorRegistry

---------

Co-authored-by: Haris Osmanagić <haris@meroxa.io>

Co-authored-by: Maha Hajja <82542081+maha-hajja@users.noreply.github.com>

---------

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>
Co-authored-by: Maha Hajja <82542081+maha-hajja@users.noreply.github.com>
* refactor pkg/plugin and isolate connector plugin

* fix imports

* fix tests

* fix import

* change registry to connectorRegistry

---------

Co-authored-by: Haris Osmanagić <haris@meroxa.io>
Co-authored-by: Maha Hajja <82542081+maha-hajja@users.noreply.github.com>

---------

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>
Co-authored-by: Maha Hajja <82542081+maha-hajja@users.noreply.github.com>
@lovromazgon lovromazgon requested a review from a team as a code owner February 12, 2024 13:34
lovromazgon and others added 13 commits February 13, 2024 12:59
* update processor-sdk, use config parameter from conduit-commons

* add unified diff lib

* add utilities for running processor examples and collecting specifications

* update diff readme

* fix markdown linter error

* fix liter errors

* update processor-sdk

* fix race condition in test
* display raw data in processor examples as string

* ensure examples are formatted the same way in processors.json
* add processors field.set & field.subset.exclude

* delete extra test

* fix tests

* add field.rename processor

* add exclusion validation to field.rename processor

* refactor + fix error return in Process method

* add field.convert processor

* add filter processor

* only structured data

* address reviews part1

* use paramgen, update Configure method, update tests

* evaluate value for processor setField

* use a slice of referenceResolvers for processors with multiple fields params

* do not allow .Position to be set in setField processor

* update setField test, add non existent field test

* use the new Rename() method from referenceResolver

* address reviews

* address reviews2

* fix renameField bug + add New() method to each processor

* linter fix

* add processor examples

* processor json

* Update pkg/plugin/processor/builtin/convertField.go

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>

* address reviews

* setFeild example

* setFeild example

* make generate

* fix paramgen regex

* generate

* fix regex

* add paramgen to tools

---------

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>
* updated docs, regenerate

* config

* first pass

* downgrade lib

* processing

* example

* fix config parsing

* regenerate

* fix config

* regenerate, tests

* linter, move to opencdc

* add test certs

* config refactor, tests

* more tests

* linter

* Regenerate

* fix linter

* git diff

* git diff

* regenerate

* avro examples

* run schema registry in examples on port 54321

* fix linter error

* rename processor

* fix schema registry integration test

* don't run avro examples in integration tests

---------

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>
* add json.decode processor

* make generate

* processors

* address reviews

* make generate

* add support for decoding JSON types other than map

* make generate

* address review comments

---------

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>
* update proto API definitions

* fix proto linter warnings

* deprecate ListPlugins

* implement plugin list endpoint

* processor plugin orchestrator

* move plugin endpoints under connector and processor service
@lovromazgon lovromazgon changed the title Better processors - internal changes [Feature] Better processors Mar 6, 2024
hariso and others added 8 commits March 6, 2024 19:09
Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>

* avro.decode example, remove base64 decoding

---------

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>
* encode

* base64 decode

* organize imports
* encode json processor

* delete forgotten test

* address reviews

* linter fix

* add processor examples

* don't encode nil, output string

---------

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>
* refactor builtin processors, generate specs into separate files

* move processors into folder impl

* go mod tidy

* add example summaries

* add example summaries

* fix name of avro.decode processor

* add example summaries

* regenerate specs

* update default registry

* update default registry: fix tests, linter, regenerate

* dep upgrades

* refactorings

* move json encode processor to impl/json
* rename field.subset.exclude to field.exclude
* rename constructor for unwrap.debezium processor
* regenerate specs

* dep downgrades

---------

Co-authored-by: Haris Osmanagic <haris@meroxa.io>
* init

* simplify

* fix evaluation

* add support for batches in runnable processor

* batch test in runnable processor

* optimize case when all records are passed through in a processor

* make sure remaining records are copied over

* fix len check

* make sure processor doesn't return more records

---------

Co-authored-by: Lovro Mažgon <lovro.mazgon@gmail.com>
@lovromazgon lovromazgon merged commit 00dbcba into main Mar 7, 2024
4 checks passed
@lovromazgon lovromazgon deleted the feature/better-processors branch March 7, 2024 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants