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

feat: Add spec_version to connector specification #48

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

flash1293
Copy link
Contributor

@flash1293 flash1293 commented Nov 3, 2023

Add an optional spec_version property to the connector specification.

When upgrading connector versions, the connector spec that all persisted config objects have to adhere to might change. While connectors are required to also be able to handle config objects that got created for previous versions of the connector as long as no explicit breaking change occurred, the connector itself is not the only consumer of config objects: The Airbyte UI and API clients access configuration objects as well - in these cases a spec change can have unintended consequences. For example if a field gets renamed from user_name to username), the UI won’t be able to render the configuration form correctly.

A new optional field in the connector specification allows the platform to keep track of the compatibility level of persisted actor configurations and behave accordingly.

The following changes are made to the protocol contract:

  • An optional integer field spec_version might be defined by a connector as part of the connector specification returned for the SPEC command.
  • The spec_version can be used to inform the orchestrator that persisted actor configs created for a connector version with a different spec_version are not considered compatible with the current connectionSpecification of the connector.
  • If a spec_version is defined by a connector, all subsequent versions of the connector have to define it as well.
  • A spec_version is not allowed to be decremented in a subsequent version of the connector.

Note: Compatibility can be related to a spec change that makes persisted configuration objects from previous versions incompatible in the JSON schema sense (e.g. a field type changes from number to string) or in the logical sense (e.g. a pre-existing field has a different meaning now).

@flash1293 flash1293 changed the title feat: Add spec_migration_version to connector specification feat: Add spec_version to connector specification Nov 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant