docs: Create community docs instance and move community content (#68675)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: ian.alton@airbyte.io <ian.alton@airbyte.io>
7
docs/community/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
import DocCardList from '@theme/DocCardList';
|
||||
|
||||
# Community & support
|
||||
|
||||
Welcome to the Airbyte community. This section contains resources for getting support, contributing to Airbyte, and understanding Airbyte's community guidelines.
|
||||
|
||||
<DocCardList />
|
||||
97
docs/community/code-of-conduct.md
Normal file
@@ -0,0 +1,97 @@
|
||||
---
|
||||
description: Airbyte's community code of conduct
|
||||
---
|
||||
|
||||
# Code of conduct
|
||||
|
||||
If you're interacting in Slack, codebases, mailing lists, events, or any other Airbyte activity, you must follow the Code of Conduct. Please review it before getting started.
|
||||
|
||||
## Airbyte's pledge
|
||||
|
||||
Airbyte seeks to foster an open and welcoming environment. Contributors and maintainers pledge to make participation in the project and the community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
<!-- vale off -->
|
||||
|
||||
## Airbyte's standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
|
||||
- Using welcoming and inclusive language
|
||||
- Being respectful of differing viewpoints and experiences
|
||||
- Gracefully accepting constructive criticism
|
||||
- Focusing on what's best for the community
|
||||
- Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
- The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
- Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
- Public or private harassment
|
||||
- Publishing others’ private information, such as a physical or electronic address, without explicit permission
|
||||
- Other conduct which someone could reasonably consider inappropriate in a professional setting
|
||||
|
||||
## Airbyte's responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and will take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that aren't aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [conduct@airbyte.io](mailto:conduct@airbyte.io). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who don't follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)
|
||||
|
||||
## Slack code of conduct
|
||||
|
||||
Airbyte's Slack community is growing incredibly fast. It's home to thousands of data professionals and growing. Airbyte is proud of the community, and have provided these guidelines to support new members in maintaining the wholesome spirit that's developed here. Thank you for your continued commitment to making this a community everyone is excited to be part of.
|
||||
|
||||
### Rule 1: Be respectful
|
||||
|
||||
Airbyte's desire is for everyone to have a positive, fulfilling experience in Airbyte Slack, and the team sincerely appreciates your help in making this happen.
|
||||
|
||||
All of the guidelines below are important, but there’s a reason respect is the first rule. Airbyte takes it seriously, and while the occasional breach of etiquette around Slack is forgivable, Airbyte doesn't condone disrespectful behavior.
|
||||
|
||||
### Rule 2: Use the most relevant channels
|
||||
|
||||
We deliberately use topic-specific Slack channels so members of the community can opt-in on various types of conversations. Our members take care to post their messages in the most relevant channel, and you’ll often see reminders about the best place to post a message (respectfully written, of course!). Even if you're looking for help directly from the Community Assistance Team or other Airbyte employees, please stick to posting in the #ask-community-for-troubleshooting channel.
|
||||
|
||||
### Rule 3: Don’t double-post
|
||||
|
||||
Please be considerate of our community members’ time. We know your question is important, but please keep in mind that Airbyte Slack isn't a customer service platform but a community of volunteers who try to help you as they're able around their own work schedule. You have access to all the history, so it’s easy to check if someone has asked your question before.
|
||||
|
||||
### Rule 4: Check question for clarity and thoughtfulness
|
||||
|
||||
Airbyte Slack is a community of volunteers. Our members enjoy helping others; they are knowledgeable, gracious, and willing to give their time and expertise for free. Putting some effort into a well-researched and thoughtful post shows consideration for their time and will gain more responses.
|
||||
|
||||
### Rule 5: Keep it public
|
||||
|
||||
This is a public forum; please do not contact individual members of this community without their express permission, regardless of whether you are trying to recruit someone, sell a product, or solicit help.
|
||||
|
||||
### Rule 6: No soliciting
|
||||
|
||||
The purpose of the Airbyte Slack community is to provide a forum for data practitioners to discuss their work and share their ideas and learnings. it's not intended as a place to generate leads for vendors or recruiters, and may not be used as such.
|
||||
|
||||
### Rule 7: Don't spam tags, or use @here or @channel
|
||||
|
||||
Using the @here and @channel keywords in a post will not help, as they are disabled in Slack for everyone excluding admins. Nonetheless, if you use them we will remind you with a link to this rule, to help you better understand the way Airbyte Slack operates.
|
||||
|
||||
don't tag specific individuals for help on your questions. If someone chooses to respond to your question, they will do so. You will find that our community of volunteers is generally very responsive and amazingly helpful!
|
||||
|
||||
### Rule 8: Use threads for discussion
|
||||
|
||||
The simplest way to keep conversations on track in Slack is to use threads. The Airbyte Slack community relies heavily on threads, and if you break from this convention, rest assured one of our community members will respectfully inform you quickly!
|
||||
|
||||
## Report violations
|
||||
|
||||
If you see a message or receive a direct message that violates any of these rules, please contact an Airbyte team member and we'll take the appropriate moderation action immediately. Airbyte has zero tolerance for intentional rule-breaking and hate speech.
|
||||
|
||||
<!-- vale on -->
|
||||
@@ -6,7 +6,7 @@ description: "We love contributions to Airbyte, big or small."
|
||||
|
||||
Thank you for your interest in contributing! Contributions are very welcome. We appreciate first time contributors and we are happy help you get started. Join our [community Slack](https://slack.airbyte.io) and feel free to reach out with questions in [`#dev-and-contribuions` channel](https://airbytehq.slack.com/archives/C054V9JFTC6).
|
||||
|
||||
If you're interacting in Slack, codebases, mailing lists, events, or any other Airbyte activity, you must follow the [Code of Conduct](/platform/community/code-of-conduct). Please review it before getting started.
|
||||
If you're interacting in Slack, codebases, mailing lists, events, or any other Airbyte activity, you must follow the [Code of Conduct](/community/code-of-conduct). Please review it before getting started.
|
||||
|
||||
## Code Contributions
|
||||
|
||||
@@ -54,7 +54,7 @@ When submitting a pull request, please ensure that Airbyte maintainers have writ
|
||||
|
||||
To enable write access on your PR from Airbyte maintainers, please check the "Allow edits from maintainers" box when submitting from your PR. You must also create your PR from a fork in your **personal GitHub account** rather than an organization account, or else you will not see this option. The requirement to create from your personal fork is based on GitHub's additional security restrictions for PRs created from organization forks. For more information about the GitHub security model, please see the [GitHub documentation page regarding PRs from forks](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork).
|
||||
|
||||
For more details on contribution requirements, please see our [contribution workflow documentation](https://docs.airbyte.com/platform/contributing-to-airbyte#standard-contribution-workflow).
|
||||
For more details on contribution requirements, please see our [contribution workflow documentation](https://docs.airbyte.com/community/contributing-to-airbyte#standard-contribution-workflow).
|
||||
|
||||
:::warning
|
||||
Do not submit a pull request using the default branch of your forked repository. This will block Airbyte maintainers from pushing changes to your branch.
|
||||
@@ -62,11 +62,11 @@ Do not submit a pull request using the default branch of your forked repository.
|
||||
|
||||
## Connector contributions
|
||||
|
||||
Guidelines for connector contributions included in the [Connector Development Guide](../connector-development/README.md):
|
||||
Guidelines for connector contributions included in the [Connector Development Guide](/platform/connector-development):
|
||||
|
||||
- [Contribute a New Connector](../connector-development/submit-new-connector.md) - Guide to submitting a new connector to Airbyte.
|
||||
- [Developing Connectors Locally](../connector-development/local-connector-development.md) - Guide to setting up your local environment for connector development.
|
||||
- [Breaking Changes in Connectors](../connector-development/connector-breaking-changes.md) - Guide to breaking changes and version updates.
|
||||
- [Contribute a New Connector](/platform/connector-development/submit-new-connector) - Guide to submitting a new connector to Airbyte.
|
||||
- [Developing Connectors Locally](/platform/connector-development/local-connector-development) - Guide to setting up your local environment for connector development.
|
||||
- [Breaking Changes in Connectors](/platform/connector-development/connector-breaking-changes) - Guide to breaking changes and version updates.
|
||||
|
||||
## Documentation contributions
|
||||
|
||||
|
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 199 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 484 KiB After Width: | Height: | Size: 484 KiB |
@@ -0,0 +1,9 @@
|
||||
# Developing locally
|
||||
|
||||
Airbyte doesn't currently accept platform contributions.
|
||||
|
||||
For connector contributions:
|
||||
|
||||
- In most cases, use the [Connector Builder](/platform/connector-development/connector-builder-ui/overview).
|
||||
|
||||
- For complex situations the Connector Builder can't support, see [Developing connectors locally](/platform/next/connector-development/local-connector-development).
|
||||
@@ -0,0 +1,21 @@
|
||||
# Issues and feature requests
|
||||
|
||||
If you're an enterprise customer, discuss your needs with support or another Airbyte representative. For all other requests, see these options.
|
||||
|
||||
## Report a bug
|
||||
|
||||
Bug reports help make Airbyte better for everyone. Airbyte provides templates for reporting bugs to make it clear what information maintainers need.
|
||||
|
||||
1. To avoid duplicate reports, check if the bug was [already reported](https://github.com/airbytehq/airbyte/issues?q=is%3Aissue+is%3Aopen+label%3Atype%2Fbug).
|
||||
|
||||
2. Submit a [bug report](https://github.com/airbytehq/airbyte/issues/new/choose) in GitHub.
|
||||
|
||||
## Request a new feature or connector
|
||||
|
||||
[Starting a Github Discussion](https://github.com/airbytehq/airbyte/discussions) is the best way to request new things.
|
||||
|
||||
Requesting new features [or connectors](https://github.com/airbytehq/airbyte/discussions/categories/new-connector-request) is an essential way to contribute. Your input helps Airbyte understand your needs and priorities, enabling the team to enhance the capabilities and versatility of Airbyte.
|
||||
|
||||
## Report a security issue
|
||||
|
||||
**Do not** create a public GitHub issue. If you've found a security issue, email us directly at [security@airbyte.io](mailto:security@airbyte.io).
|
||||
@@ -1,55 +1,68 @@
|
||||
# Pull Request Handbook
|
||||
# Pull request handbook
|
||||
|
||||
### Pull Request Title Convention
|
||||
This topic explains how to title and describe your pull requests, and how to handle connector versioning.
|
||||
|
||||
## Pull request title conventions
|
||||
|
||||
When creating a pull request, follow the naming conventions depending on the change you're making. In general, the pull request title starts with an emoji, the the connector name, then the changes. For example: ✨ Source E-Commerce: add new stream `Users`.
|
||||
|
||||
When creating a pull request follow the naming conventions depending on the change being made.
|
||||
In general, the pull request title starts with an emoji with the connector you're doing the changes, eg (✨ Source E-Commerce: add new stream `Users`).
|
||||
Airbyte uses this pattern to automatically assign team reviews and build the product release notes.
|
||||
|
||||
| Pull Request Type | Emoji | Examples |
|
||||
| -------------------------------------- | ----- | ------------------------------------------------------ |
|
||||
| New Connector (Source or Destination) | 🎉 | 🎉 New Destination: Database |
|
||||
| Add a feature to an existing connector | ✨ | ✨ Source E-Commerce: add new stream `Users` |
|
||||
| Fix a bug | 🐛 | 🐛 Source E-Commerce: fix start date parameter in spec |
|
||||
| Documentation (updates or new entries) | 📝 | 📝 Fix Database connector changelog |
|
||||
| It's a breaking change | 🚨 | 🚨🚨🐛 Source Kafka: fix a complex bug |
|
||||
| Pull Request Type | Emoji | Examples |
|
||||
| -------------------------------------- | ----- | ------------------------------------------------------- |
|
||||
| New Connector (Source or Destination) | 🎉 | 🎉 New Destination: Database |
|
||||
| Add a feature to an existing connector | ✨ | ✨ Source E-Commerce: add new stream `Users` |
|
||||
| Fix a bug | 🐛 | 🐛 Source E-Commerce: fix start date parameter in spec |
|
||||
| Documentation (updates or new entries) | 📝 | 📝 Fix Database connector changelog |
|
||||
| It's a breaking change | 🚨 | 🚨🚨🐛 Source Kafka: fix a complex bug |
|
||||
|
||||
For more information about [breaking changes](#breaking-changes-to-connectors). A maintainer will help and instruct about possible breaking changes.
|
||||
[More information about breaking changes](#breaking-changes-to-connectors). A maintainer can help and instruct you about possible breaking changes.
|
||||
|
||||
Any refactors, cleanups, etc.. that are not visible improvements to the user should not have emojis.
|
||||
Don't add an emoji to any refactors, cleanups, etc. that aren't visible improvements to connector users.
|
||||
|
||||
If your code change is doing more than one change type at once, we strongly recommend to break it into multiple pull requests. It helps us to review and merge your contribution.
|
||||
If your code change is doing more than one change type at once, break it into multiple pull requests. This helps maintainers to review and merge your contribution.
|
||||
|
||||
## Descriptions
|
||||
|
||||
**Context**: Provide enough information \(or a link to enough information\) in the description so team members with no context can understand what the issue or PR is trying to accomplish. This usually means you should include two things:
|
||||
In pull request descriptions, provide enough information (or a link to enough information) that team members with no context can understand what the PR is trying to accomplish. This means you should include three things:
|
||||
|
||||
1. Some background information motivating you to solve this problem
|
||||
|
||||
1. Some background information motivating the problem
|
||||
2. A description of the problem itself
|
||||
3. Good places to start reading and file changes that can be skipped
|
||||
|
||||
Some examples:
|
||||
3. Good places to start reading and file changes that reviewers can skip
|
||||
|
||||
_insufficient context_: `Create an OpenAPI to JSON schema generator`. Unclear what the value or problem being solved here is.
|
||||
### Insufficient context example
|
||||
|
||||
_good context_:
|
||||
This description isn't clear about what problem you're solving or what value there is in this work.
|
||||
|
||||
```text
|
||||
When creating or updating connectors, we spend a lot of time manually transcribing JSON Schema files based on OpenAPI docs. This is ncessary because OpenAPI and JSON schema are very similar but not perfectly compatible. This process is automatable. Therefore we should create a program which converts from OpenAPI to JSONSchema format.
|
||||
```
|
||||
Create an OpenAPI to JSON schema generator.
|
||||
```
|
||||
|
||||
## Semantic Versioning for Connectors
|
||||
### Sufficient context example
|
||||
|
||||
Changes to connector behavior should always be accompanied by a version bump and a changelog entry. We use [semantic versioning](https://semver.org/) to version changes to connectors. Since connectors are a bit different from APIs, we have our own take on semantic versioning, focusing on maintaining the best user experience of using a connector.
|
||||
This description equips reviewers to understand and make assessments about the decisions you've made in your PR.
|
||||
|
||||
- Major: a version in which a change is made which requires manual intervention (update to config or configured catalog) for an existing connection to continue to succeed, or one in which data that was previously being synced will no longer be synced
|
||||
- Note that a category of "user intervention" is a schema change in the destination, as users will be required to update downstream reports and tools. A change that leads to a different final table in the destination is a breaking change
|
||||
- Minor: a version that introduces user-facing functionality in a backwards compatible manner
|
||||
- Patch: a version that introduces backwards compatible bug fixes or performance improvements
|
||||
```text
|
||||
When creating or updating connectors, we spend a lot of time manually transcribing JSON Schema files based on OpenAPI docs. This is necessary because OpenAPI and JSON schema are very similar but not perfectly compatible. This process is automatable. Therefore we should create a program which converts from OpenAPI to JSONSchema format.
|
||||
```
|
||||
|
||||
## Semantic versioning for connectors
|
||||
|
||||
Changes to connector behavior require a version bump and a changelog entry. Airbyte uses [semantic versioning](https://semver.org/). Since connectors are a bit different from APIs, Airbyte has its own take on semantic versioning, focusing on maintaining the best user experience of using a connector.
|
||||
|
||||
- **Major**: a version that requires manual intervention to update configurations to prevent an existing connection from failing, or one in which data the connector previously synced is no longer synced. This includes a schema change or different namespace in the final destination, because users must update downstream reports and tools.
|
||||
|
||||
- **Minor**: a version that introduces new user-facing capabilities in a backwards-compatible manner.
|
||||
|
||||
- **Patch**: a version that introduces backwards-compatible bug fixes or performance improvements.
|
||||
|
||||
### Examples
|
||||
|
||||
Here are some examples of code changes and their respective version changes:
|
||||
Here are some examples of code changes and their respective version changes.
|
||||
|
||||
If your situation isn't covered by any of these examples, note this in your pull request description. Your reviewing can help you pick the correct type of version change.
|
||||
|
||||
| Change | Impact | Version Change |
|
||||
| --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -------------- |
|
||||
@@ -66,5 +79,3 @@ Here are some examples of code changes and their respective version changes:
|
||||
| Updating the format of the connector's `STATE` | Incremental streams will automatically run a full refresh only for the next sync | Patch |
|
||||
| Optimizing a connector's performance | Syncs will be faster | Patch |
|
||||
| Fixing a bug in a connector | Some syncs that would have failed will now succeed | Patch |
|
||||
|
||||
Trying to contribute, and don't see the change you want to make in this list? Call it out in your PR and your reviewer will help you pick the correct type of version change. Feel free to contribute the results back to this list!
|
||||
@@ -334,7 +334,7 @@ _Applies to connector with any support level_
|
||||
_Applies to connector with any internal support level_
|
||||
_Applies to connector with any Airbyte usage level_
|
||||
|
||||
Connectors must be licensed under the MIT or Elv2 license. This is to ensure that all connectors are licensed under a permissive license. More details in our [License FAQ](https://docs.airbyte.com/developer-guides/licenses/license-faq).
|
||||
Connectors must be licensed under the MIT or Elv2 license. This is to ensure that all connectors are licensed under a permissive license. More details in our [License FAQ](https://docs.airbyte.com/community/licenses/license-faq).
|
||||
|
||||
### Connector license in metadata.yaml and pyproject.toml file must match
|
||||
|
||||
@@ -19,7 +19,7 @@ Before you contribute, familiarize yourself with these concepts.
|
||||
|
||||
### Read Airbyte's code of conduct
|
||||
|
||||
Read the Airbyte Community [code of conduct](/platform/community/code-of-conduct).
|
||||
Read the Airbyte Community [code of conduct](/community/code-of-conduct).
|
||||
|
||||
### Learn Docusaurus basics
|
||||
|
||||
@@ -161,7 +161,7 @@ You can only use these templates for platform docs. Docs for connectors have the
|
||||
|
||||
## Write connector docs {#connector-docs}
|
||||
|
||||
If you're writing docs for a data source or destination, there are special rules you must follow. See the [Connector Documentation Guide](../connector-development/writing-connector-docs.md). Platform documentation is less formulaic.
|
||||
If you're writing docs for a data source or destination, there are special rules you must follow. See the [Connector Documentation Guide](/platform/connector-development/writing-connector-docs). Platform documentation is less formulaic.
|
||||
|
||||
## Multiple instances and versions
|
||||
|
||||
@@ -214,7 +214,7 @@ Details panels are a great way to render content that's not relevant to everyone
|
||||
|
||||
### Product badges
|
||||
|
||||
Certain Airbyte products reserve some platform features. To avoid confusion and indicate which products a topic applies to, pages can display badges in a prominent location under the title. [This page is an example](../using-airbyte/getting-started/oss-quickstart).
|
||||
Certain Airbyte products reserve some platform features. To avoid confusion and indicate which products a topic applies to, pages can display badges in a prominent location under the title. [This page is an example](/platform/using-airbyte/getting-started/oss-quickstart).
|
||||
|
||||
To enable badges, include `products` in the Markdown metadata. The following values are possible, and you can combine them as needed.
|
||||
|
||||
62
docs/community/getting-support.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
products: all
|
||||
---
|
||||
|
||||
# Get support
|
||||
|
||||
If you can't find an answer to your question in the docs, Airbyte has different support options.
|
||||
|
||||
## For Airbyte Enterprise and Cloud
|
||||
|
||||
- **For support with any part of Airbyte, create an issue in Airbyte's [support center](https://support.airbyte.com/hc/en-us/requests/new)**. Agents are available 7 AM to 7 PM Eastern time. Response times may vary according to your plan and SLAs.
|
||||
- For account or credit-related inquiries, [contact sales](https://airbyte.com/talk-to-sales).
|
||||
- If you don't see a connector you need, submit a [connector request](https://airbyte.com/connector-requests).
|
||||
|
||||
Please sign up for Airbyte with your company email address. We don't support personal accounts.
|
||||
|
||||
## For Airbyte Core
|
||||
|
||||
Airbyte Core users don't have access to paid support, but you still have community support options. If you need personalized help, consider upgrading to one of Airbyte's [paid plans](https://www.airbyte.com/pricing).
|
||||
|
||||
### Community Slack
|
||||
|
||||
[Join the Slack community](https://slack.airbyte.com/?_gl=1*1h8mjfe*_gcl_au*MTc4MjAxMDQzOS4xNjgyOTczMDYy*_ga*MTc1OTkyOTYzNi4xNjQxMjQyMjA0*_ga_HDBMVFQGBH*MTY4Nzg4OTQ4MC4zMjUuMS4xNjg3ODkwMjE1LjAuMC4w&_ga=2.58571491.813788522.1687789276-1759929636.1641242204) for help from other open sources users and Airbyte team members. Popular channels are `#ask-ai` and `#ask-community-for-troubleshooting`.
|
||||
|
||||
### GitHub discussions
|
||||
|
||||
[GitHub siscussions](https://github.com/airbytehq/airbyte/discussions) are a great way to propose, vote on, and discuss Airbyte improvements.
|
||||
|
||||
### Report an issue
|
||||
|
||||
If you've found a bug or issue with Airbyte or its documentation, [create an issue](https://github.com/airbytehq/airbyte/issues/new/choose). If you're willing to work on this issue yourself, please indicate this.
|
||||
|
||||
Please check the [issue list](https://github.com/airbytehq/airbyte/issues) first in case the issue has already been reported. If it has, feel free to comment on that issue to provide more details about your experience.
|
||||
|
||||
### Public roadmap
|
||||
|
||||
To stay updated on Airbyte's future plans, take a look at [our roadmap](https://github.com/orgs/airbytehq/projects/37/views/1). Airbyte updates this every few weeks with initiatives that are of interest to the community.
|
||||
|
||||
## Connector support depends on support level
|
||||
|
||||
Connector support depends on the certification status of the connector. See [Connector Support Levels](/integrations/connector-support-levels) if you have any questions on support provided for one of your connectors.
|
||||
|
||||
## Questions about contributions
|
||||
|
||||
Submitting a pull request for review?
|
||||
|
||||
- Follow all the [contribution guidelines](/community/contributing-to-airbyte/).
|
||||
- Airbyte doesn't accept platform contributions.
|
||||
- Airbyte eagerly accepts connector contributions. Limit contributions to one connector per pull request.
|
||||
- Submitting a pull request doesn't guarantee the team merges it. Airbyte evaluates contributions for quality and alignment with the project's goals.
|
||||
- Someone is going to get to your PR. Airbyte receives many contributions and only has capacity to review a certain number at a time. For status updates, check the [Community Pull Requests](https://github.com/orgs/airbytehq/projects/108/views/2?filterQuery=) board.
|
||||
|
||||
## What Airbyte doesn't support
|
||||
|
||||
The team tries its best to assist, and always tries to do the right thing for Airbyte users. That said, there are some things the team doesn't support:
|
||||
|
||||
- Questions/troubleshooting with forked versions of Airbyte
|
||||
- Configuring using Octavia CLI
|
||||
- Creating and configuring custom transformation using dbt
|
||||
- Curating unique documentation and training materials
|
||||
- Configuring Airbyte to meet security requirements
|
||||
- Marketplace connectors
|
||||
17
docs/community/licenses/README.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Licenses
|
||||
|
||||
**Airbyte Connectors** and everything in our public repos excluding the airbytehq/airbyte-protocol are open sourced and available under the [Elastic License 2.0 (ELv2)](https://www.elastic.co/licensing/elastic-license/faq) License. Each connector's `metadata.yaml` file contains more information.
|
||||
|
||||
**Airbyte Protocol** is open sourced and available under the [MIT License](https://opensource.org/license/mit/).
|
||||
|
||||
**Airbyte Cloud & Airbyte Enterprise** are both closed source and require a commercial license from Airbyte.
|
||||
|
||||
## Questions and examples
|
||||
|
||||
- For questions regarding licenses, visit our [FAQ](license-faq.md) or [contact Airbyte](mailto:license@airbyte.io).
|
||||
|
||||
- For a list of examples supported by ELv2 and MIT to better understand whether you might be infringing on a license, check the [examples](examples.md).
|
||||
|
||||
## Short version
|
||||
|
||||
Unless you want to host Airbyte yourself and sell it as an ELT/ETL tool, or sell a product that directly exposes Airbyte’s UI or API, you should be good to go.
|
||||
@@ -1,5 +1,7 @@
|
||||
# ELv2
|
||||
|
||||
<!-- vale off -->
|
||||
|
||||
Elastic License 2.0 \(ELv2\)
|
||||
|
||||
**Acceptance** By using the software, you agree to all of the terms and conditions below.
|
||||
@@ -35,3 +37,5 @@ _your licenses_ are all the licenses granted to you for the software under these
|
||||
_use_ means anything you do with the software requiring one of your licenses.
|
||||
|
||||
_trademark_ means trademarks, service marks, and similar rights.
|
||||
|
||||
<!-- vale on -->
|
||||
17
docs/community/licenses/examples.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Examples
|
||||
|
||||
We chose ELv2 because it's permissive with what you can do with the software. To be as explicit as possible, here are examples of projects you can and can't do.
|
||||
|
||||
## Examples of projects that can't leverage the technology under ELv2 without a contract
|
||||
|
||||
- Hosting Airbyte yourself and selling it as an ELT/ETL tool. That means selling a competitive alternative to Airbyte Cloud or Airbyte Enterprise.
|
||||
|
||||
- Selling a product that directly exposes Airbyte’s UI or API.
|
||||
|
||||
## Examples of projects for which you can leverage Airbyte fully
|
||||
|
||||
- Creating an analytics or attribution platform for which you want to use Airbyte to bring data in on behalf of your customers.
|
||||
|
||||
- Creating any kind of platform on which you offer Airbyte's connectors to your customers to bring their data in, unless you're selling an ELT/ETL solution.
|
||||
|
||||
- Building your internal data stack and configuring pipelines through Airbyte's UI or API.
|
||||
93
docs/community/licenses/license-faq.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# License FAQ
|
||||
|
||||
<!-- vale off -->
|
||||
|
||||
This page answers common questions about the ELv2 license and its relationship to you and Airbyte.
|
||||
|
||||
## About Elastic License 2.0 (ELv2)
|
||||
|
||||
ELv2 is a simple, non-copyleft license, allowing for the right to “use, copy, distribute, make available, and prepare derivative works of the software”. Anyone can use Airbyte, free of charge. You can run the software at scale on your infrastructure. Three high-level limitations exist. You can't:
|
||||
|
||||
1. Provide the products to others as a managed service ([read more](#managed-service-case));
|
||||
|
||||
2. Circumvent the license key functionality or remove/obscure features protected by license keys; or
|
||||
|
||||
3. Remove or obscure any licensing, copyright, or other notices.
|
||||
|
||||
In case you want to work with Airbyte without these limitations, we offer alternative licenses. These licenses include maintenance, support, and customary commercial terms. If you need a different license, please get in touch with us at: contact@airbyte.io.
|
||||
|
||||
[View License](elv2-license.md)
|
||||
|
||||
## FAQ
|
||||
|
||||
### What limitations does ELv2 impose on the use of Airbyte?
|
||||
|
||||
If you are an Airbyte Cloud customer, nothing changes for you.
|
||||
|
||||
For open source users, everyone can continue to use Airbyte as you are doing today: no limitations exist on volume, number of users, number of connections, etc.
|
||||
|
||||
A few high-level limitations exist. You cannot:
|
||||
|
||||
1. Provide the products to others as a managed service. For example, you cannot sell a cloud service that provides users with direct access to Airbyte. You can sell access to applications built and run using Airbyte ([read more](#what-is-the-managed-service-use-case-that-is-not-allowed-under-elv2)).
|
||||
|
||||
2. Circumvent the license key functionality or remove/obscure features protected by license keys. For example, our code may contain watermarks or keys to unlock proprietary functionality. Airbyte marks those elements in its source code. You can’t remove or change them.
|
||||
|
||||
### Why did Airbyte adopt ELv2?
|
||||
|
||||
Airbyte released Airbyte Cloud, a managed version of Airbyte that offers alternatives to how you operate Airbyte, including additional features and execution models. Airbyte needed to find a great way to execute its mission to commoditize data integration with open source and its ambition to create a sustainable business.
|
||||
|
||||
ELv2 gives us the best of both worlds.
|
||||
|
||||
On one hand, open source users can continue to use Airbyte freely, and on the other hand, we can safely create a sustainable business and continue to invest in the community, project and product. Airbyte doesn't have to worry about other large companies taking the product to monetize it for themselves, hurting this community in the process.
|
||||
|
||||
### Will Airbyte connectors continue to be open source?
|
||||
|
||||
Our own connectors remain open-source, and our contributors can also develop your own connectors and continue to choose whichever license you prefer. This is our way to accomplish Airbyte’s vision of commoditizing data integration: access to data shouldn’t be behind a paywall. Also, we want Airbyte’s licensing to work well with applications that integrate using connectors.
|
||||
|
||||
We are continuously investing in Airbyte's data protocol and all the tooling around it. The Connector Development Kit (CDK), which helps our community and our team build and maintain connectors at scale, is a cornerstone of this commoditization strategy and also remains open-source.
|
||||
|
||||
### How do I contribute to Airbyte under ELv2?
|
||||
|
||||
Airbyte’s projects are available here. Anyone can contribute to any of these projects (including those licensed with ELv2). We have a Contributor License Agreement that you have to sign with your first contribution.
|
||||
|
||||
### When did ELv2 become effective?
|
||||
|
||||
ELv2 applies as of September 27, 2021 and version 0.30.0.
|
||||
|
||||
### What's the “managed service” use case that isn't allowed under ELv2? {#managed-service-case}
|
||||
|
||||
We chose ELv2 because it's permissive with what you can do with the software.
|
||||
|
||||
You can basically build any product on top of Airbyte as long as you don’t:
|
||||
|
||||
- Host Airbyte yourself and sell it as an ELT/ETL tool, or a replacement for the Airbyte solution.
|
||||
|
||||
- Sell a product that directly exposes Airbyte’s UI or API.
|
||||
|
||||
Here is a non-exhaustive list of what you can do (without providing your customers direct access to Airbyte functionality):
|
||||
|
||||
- I am creating an analytics platform and I want to use Airbyte to bring data in on behalf of my customers.
|
||||
|
||||
- I am building my internal data stack and I want my team to be able to interact with Airbyte to configure the pipelines through the UI or the API.
|
||||
|
||||
### My company has a policy against using code that restricts commercial use – can I still use Airbyte under ELv2?
|
||||
|
||||
You can use software under ELv2 for your commercial business, you simply can't offer it as a managed service.
|
||||
|
||||
### As a data agency, I use Airbyte to fulfill my customer needs. How does ELv2 affect me?
|
||||
|
||||
You can continue to use Airbyte, as long as you don’t offer it as a managed service.
|
||||
|
||||
### I started to use Airbyte to ingest my customer’s data. What should I do?
|
||||
|
||||
You can continue to use Airbyte, as long as you don’t offer it as a managed service.
|
||||
|
||||
### Can I customize ELv2 software?
|
||||
|
||||
Yes, you can customize ELv2 software. ELv2 is similar in this sense to permissive open-source licenses. You can modify the software, integrate the variant into your app, and operate the modified app, as long as you don’t go against any of the limitations.
|
||||
|
||||
### Why didn’t you use a closed-source license for Airbyte Core?
|
||||
|
||||
Airbyte wants to provide developers with free access to Airbyte Core's source code — including rights to modify it. Since this wouldn’t be possible with a closed-source license, Airbyte decided to use the more permissive ELv2.
|
||||
|
||||
<!-- vale on -->
|
||||
@@ -1,5 +1,7 @@
|
||||
# MIT
|
||||
|
||||
<!-- vale off -->
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright \(c\) 2020 Airbyte, Inc.
|
||||
@@ -9,3 +11,5 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
<!-- vale on -->
|
||||
@@ -334,7 +334,7 @@ _Applies to connector with any support level_
|
||||
_Applies to connector with any internal support level_
|
||||
_Applies to connector with any Airbyte usage level_
|
||||
|
||||
Connectors must be licensed under the MIT or Elv2 license. This is to ensure that all connectors are licensed under a permissive license. More details in our [License FAQ](https://docs.airbyte.com/developer-guides/licenses/license-faq).
|
||||
Connectors must be licensed under the MIT or Elv2 license. This is to ensure that all connectors are licensed under a permissive license. More details in our [License FAQ](https://docs.airbyte.com/community/licenses/license-faq).
|
||||
|
||||
### Connector license in metadata.yaml and pyproject.toml file must match
|
||||
|
||||
@@ -354,7 +354,7 @@ _Applies to connector with any support level_
|
||||
_Applies to connector with any internal support level_
|
||||
_Applies to connector with any Airbyte usage level_
|
||||
|
||||
Connector version must follow the Semantic Versioning scheme. This is to ensure that all connectors follow a consistent versioning scheme. Refer to our [Semantic Versioning for Connectors](https://docs.airbyte.com/contributing-to-airbyte/#semantic-versioning-for-connectors) for more details.
|
||||
Connector version must follow the Semantic Versioning scheme. This is to ensure that all connectors follow a consistent versioning scheme. Refer to our [Semantic Versioning for Connectors](https://docs.airbyte.com/community/contributing-to-airbyte/resources/pull-requests-handbook#semantic-versioning-for-connectors) for more details.
|
||||
|
||||
### Connector version in metadata.yaml and pyproject.toml file must match
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Browse Airbyte's catalog below to see which connectors are available, read their
|
||||
|
||||
## Contribute to Airbyte's connectors
|
||||
|
||||
Don't see the connector you need? Need a connector to do something it doesn't currently do? Airbyte's connectors are open source. You can [build entirely new connectors](../platform/connector-development/) or contribute enhancements, bug fixes, and features to existing connectors. We encourage contributors to [add your changes](../platform/contributing-to-airbyte/) to Airbyte's public connector catalog, but you always have the option to publish them privately in your own workspaces.
|
||||
Don't see the connector you need? Need a connector to do something it doesn't currently do? Airbyte's connectors are open source. You can [build entirely new connectors](../platform/connector-development/) or contribute enhancements, bug fixes, and features to existing connectors. We encourage contributors to [add your changes](/community/contributing-to-airbyte/) to Airbyte's public connector catalog, but you always have the option to publish them privately in your own workspaces.
|
||||
|
||||
## Connector support levels
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ maintenance/upgrades are owned by the customer.
|
||||
- Should be used with caution in production.
|
||||
- Might not be feature complete and may experience backward-incompatible, breaking changes with no notice.
|
||||
- Are available to everyone.
|
||||
- Can [be improved by people like you](../platform/contributing-to-airbyte/).
|
||||
- Can [be improved by people like you](/community/contributing-to-airbyte/).
|
||||
|
||||
## Custom connectors
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ description: Missing a connector?
|
||||
|
||||
If you'd like to **ask for a new connector,** you can request it directly [here](https://github.com/airbytehq/airbyte/discussions/new?category=new-connector-request).
|
||||
|
||||
If you'd like to build new connectors and **make them part of the pool of pre-built connectors on Airbyte,** first a big thank you. We invite you to check our [contributing guide on building connectors](../platform/contributing-to-airbyte/).
|
||||
If you'd like to build new connectors and **make them part of the pool of pre-built connectors on Airbyte,** first a big thank you. We invite you to check our [contributing guide on building connectors](/community/contributing-to-airbyte/).
|
||||
|
||||
If you'd like to build new connectors, or update existing ones, **for your own usage,** without contributing to the Airbyte codebase, read along.
|
||||
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
---
|
||||
description: Our Community Code of Conduct
|
||||
---
|
||||
|
||||
# Code of Conduct
|
||||
|
||||
If you're interacting in Slack, codebases, mailing lists, events, or any other Airbyte activity, you must follow the Code of Conduct. Please review it before getting started.
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
|
||||
- Using welcoming and inclusive language
|
||||
- Being respectful of differing viewpoints and experiences
|
||||
- Gracefully accepting constructive criticism
|
||||
- Focusing on what is best for the community
|
||||
- Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
- The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
- Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
- Public or private harassment
|
||||
- Publishing others’ private information, such as a physical or electronic address, without explicit permission
|
||||
- Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [conduct@airbyte.io](mailto:conduct@airbyte.io). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)
|
||||
|
||||
## Slack Code of Conduct
|
||||
|
||||
Airbyte's Slack community is growing incredibly fast. We're home to over 1500 data professionals and are growing at an awesome pace. We are proud of our community, and have provided these guidelines to support new members in maintaining the wholesome spirit we have developed here. We appreciate your continued commitment to making this a community we are all excited to be a part of.
|
||||
|
||||
### Rule 1: Be respectful.
|
||||
|
||||
Our desire is for everyone to have a positive, fulfilling experience in Airbyte Slack, and we sincerely appreciate your help in making this happen.
|
||||
All of the guidelines we provide below are important, but there’s a reason respect is the first rule. We take it seriously, and while the occasional breach of etiquette around Slack is forgivable, we cannot condone disrespectful behavior.
|
||||
|
||||
### Rule 2: Use the most relevant channels.
|
||||
|
||||
We deliberately use topic-specific Slack channels so members of the community can opt-in on various types of conversations. Our members take care to post their messages in the most relevant channel, and you’ll often see reminders about the best place to post a message (respectfully written, of course!). If you're looking for help directly from the Community Assistance Team or other Airbyte employees, please stick to posting in the airbyte-help channel, so we know you're asking us specifically!
|
||||
|
||||
### Rule 3: Don’t double-post.
|
||||
|
||||
Please be considerate of our community members’ time. We know your question is important, but please keep in mind that Airbyte Slack is not a customer service platform but a community of volunteers who will help you as they are able around their own work schedule. You have access to all the history, so it’s easy to check if your question has already been asked.
|
||||
|
||||
### Rule 4: Check question for clarity and thoughtfulness.
|
||||
|
||||
Airbyte Slack is a community of volunteers. Our members enjoy helping others; they are knowledgeable, gracious, and willing to give their time and expertise for free. Putting some effort into a well-researched and thoughtful post shows consideration for their time and will gain more responses.
|
||||
|
||||
### Rule 5: Keep it public.
|
||||
|
||||
This is a public forum; please do not contact individual members of this community without their express permission, regardless of whether you are trying to recruit someone, sell a product, or solicit help.
|
||||
|
||||
### Rule 6: No soliciting!
|
||||
|
||||
The purpose of the Airbyte Slack community is to provide a forum for data practitioners to discuss their work and share their ideas and learnings. It is not intended as a place to generate leads for vendors or recruiters, and may not be used as such.
|
||||
|
||||
If you’re a vendor, you may advertise your product in #shameless-plugs. Advertising your product anywhere else is strictly against the rules.
|
||||
|
||||
### Rule 7: Don't spam tags, or use @here or @channel.
|
||||
|
||||
Using the @here and @channel keywords in a post will not help, as they are disabled in Slack for everyone excluding admins. Nonetheless, if you use them we will remind you with a link to this rule, to help you better understand the way Airbyte Slack operates.
|
||||
|
||||
Do not tag specific individuals for help on your questions. If someone chooses to respond to your question, they will do so. You will find that our community of volunteers is generally very responsive and amazingly helpful!
|
||||
|
||||
### Rule 8: Use threads for discussion.
|
||||
|
||||
The simplest way to keep conversations on track in Slack is to use threads. The Airbyte Slack community relies heavily on threads, and if you break from this convention, rest assured one of our community members will respectfully inform you quickly!
|
||||
|
||||
_If you see a message or receive a direct message that violates any of these rules, please contact an Airbyte team member and we will take the appropriate moderation action immediately. We have zero tolerance for intentional rule-breaking and hate speech._
|
||||
@@ -1,71 +0,0 @@
|
||||
---
|
||||
products: all
|
||||
---
|
||||
|
||||
# Getting Support
|
||||
|
||||
Hold up! Have you looked at [our docs](https://docs.airbyte.com/) yet? We recommend searching the wealth of knowledge in our documentation as many times the answer you are looking for is there!
|
||||
|
||||
## Core support
|
||||
|
||||
If you're running Airbyte Core and have a question the docs couldn't clear up, post your question as a [Github Discussions](https://github.com/airbytehq/airbyte/discussions?_gl=1*70s0c6*_ga*MTc1OTkyOTYzNi4xNjQxMjQyMjA0*_ga_HDBMVFQGBH*MTY4OTY5MDQyOC4zNDEuMC4xNjg5NjkwNDI4LjAuMC4w) and also join our community Slack to connect with other Airbyte users.
|
||||
|
||||
### Community Slack
|
||||
|
||||
**Join our Slack community** [HERE](https://slack.airbyte.com/?_gl=1*1h8mjfe*_gcl_au*MTc4MjAxMDQzOS4xNjgyOTczMDYy*_ga*MTc1OTkyOTYzNi4xNjQxMjQyMjA0*_ga_HDBMVFQGBH*MTY4Nzg4OTQ4MC4zMjUuMS4xNjg3ODkwMjE1LjAuMC4w&_ga=2.58571491.813788522.1687789276-1759929636.1641242204)!
|
||||
|
||||
Ask your questions first in the #ask-ai channel and if our bot can not assist you, reach out to our community in the #ask-community-for-troubleshooting channel.
|
||||
|
||||
If you require personalized support, reach out to our sales team to inquire about [Airbyte Enterprise](https://airbyte.com/airbyte-enterprise).
|
||||
|
||||
### Airbyte Forum
|
||||
|
||||
We are driving our community support from our [forum](https://github.com/airbytehq/airbyte/discussions) on GitHub.
|
||||
|
||||
## Cloud support (Standard, Pro, Enterprise Flex)
|
||||
|
||||
If you have questions about connector setup, error resolution, or want to report a bug, Airbyte Support is available to assist you. We recommend checking [our documentation](https://docs.airbyte.com/) and searching our [Help Center](https://support.airbyte.com/hc/en-us) before opening a support ticket.
|
||||
|
||||
If you couldn't find the information you need in our docs or Help Center, open a ticket within the Airbyte Cloud platform by selecting the "Support" icon in the lower left navigation bar. Alternatively, you can submit a ticket through our [Help Center](https://support.airbyte.com/hc/en-us) by completing an Airbyte Cloud Support Request. Our team is online and availible to assist from 7AM - 7PM Eastern.
|
||||
|
||||
**If you're unsure about the supported connectors, refer to our [Connector Support Levels](https://docs.airbyte.com/project-overview/product-support-levels/) & [Connector Catalog](https://docs.airbyte.com/integrations/).**
|
||||
|
||||
For account or credit-related inquiries, contact our [sales team](https://airbyte.com/talk-to-sales).
|
||||
|
||||
If you don't see a connector you need, you can submit a [connector request](https://airbyte.com/connector-requests).
|
||||
|
||||
To stay updated on Airbyte's future plans, take a look at [our roadmap](https://github.com/orgs/airbytehq/projects/37/views/1).
|
||||
|
||||
Please be sure to sign up for Airbyte with your company email address, as we do not support personal accounts.
|
||||
|
||||
## Self-Managed Enterprise support
|
||||
|
||||
If you're running Self-Managed Enterprise, Airbyte's support team here to help you with upgrading Airbyte versions, debugging connector issues, or troubleshooting schema changes.
|
||||
|
||||
Before opening a support ticket, we recommend consulting [our documentation](https://docs.airbyte.com/) and searching our [Help Center](https://support.airbyte.com/hc/en-us). If your question remains unanswered, please submit a ticket through our Help Center. We suggest creating an [Airbyte Help Center account](https://airbyte1416.zendesk.com/auth/v2/login/signin?return_to=https%3A%2F%2Fsupport.airbyte.com%2Fhc%2Fen-us&theme=hc&locale=en-us&brand_id=15365055240347&auth_origin=15365055240347%2Ctrue%2Ctrue) to access your organization's support requests. Our team is online and availible to assist from 7AM - 7PM Eastern.
|
||||
|
||||
**Connector support is based on certification status of the connector.** Please see our [Connector Support Levels](https://docs.airbyte.com/project-overview/product-support-levels) if you have any questions on support provided for one of your connectors.
|
||||
|
||||
Submitting a Pull Request for review?
|
||||
|
||||
- Be sure to follow our [contribution guidelines](https://docs.airbyte.com/contributing-to-airbyte/) laid out here on our doc. Highlights include:
|
||||
- PRs should be limited to a single change-set
|
||||
- Submit the PR as a PR Request through the Help Center Open Source Enterprise Support Request form
|
||||
- If you are submitting a Platform PR we accept Platform PRs in the areas below:
|
||||
- Helm
|
||||
- Environment variable configurations
|
||||
- Bug Fixes
|
||||
- Security version bumps
|
||||
- **If outside these areas, please open up an issue to help the team understand the need and if we are able to consider a PR**
|
||||
|
||||
Submitting a PR does not guarantee its merge. The Airbyte support team will conduct an initial review, and if the PR aligns with Airbyte's roadmap, it will be prioritized based on team capacities and priorities.
|
||||
|
||||
Although we strive to offer our utmost assistance, there are certain requests that we are unable to support. Currently, we do not provide assistance for these particular items:
|
||||
|
||||
- Question/troubleshooting assistance with forked versions of Airbyte
|
||||
- Configuring using Octavia CLI
|
||||
- Creating and configuring custom transformation using dbt
|
||||
- Curating unique documentation and training materials
|
||||
- Configuring Airbyte to meet security requirements
|
||||
|
||||
If you think you will need assistance when upgrading, we recommend upgrading during our support hours, Monday-Friday 7AM - 7PM ET so we can assist if support is needed. If you upgrade outside of support hours, please submit a ticket and we will assist when we are back online.
|
||||
@@ -137,8 +137,8 @@ The `upgradeDeadline` field specifies the date by which users should upgrade (fo
|
||||
|
||||
## Related Topics
|
||||
|
||||
- [Semantic Versioning for Connectors](../contributing-to-airbyte/resources/pull-requests-handbook.md#semantic-versioning-for-connectors) - Guidelines for determining Major/Minor/Patch version changes
|
||||
- [Semantic Versioning for Connectors](/community/contributing-to-airbyte/resources/pull-requests-handbook#semantic-versioning-for-connectors) - Guidelines for determining Major/Minor/Patch version changes
|
||||
- [Connector Metadata File](https://docs.airbyte.com/connector-development/connector-metadata-file/) - Technical reference for `breakingChanges` metadata format
|
||||
- [Pull Request Title Convention](../contributing-to-airbyte/resources/pull-requests-handbook.md#pull-request-title-convention) - How to format PR titles (use 🚨 emoji for breaking changes)
|
||||
- [QA Checks](../contributing-to-airbyte/resources/qa-checks.md) - Automated quality checks including breaking change requirements
|
||||
- [Pull Request Title Convention](/community/contributing-to-airbyte/resources/pull-requests-handbook#pull-request-title-convention) - How to format PR titles (use 🚨 emoji for breaking changes)
|
||||
- [QA Checks](/community/contributing-to-airbyte/resources/qa-checks) - Automated quality checks including breaking change requirements
|
||||
- [Connector Breaking Change Release Playbook](https://docs.google.com/document/u/0/d/1VYQggHbL_PN0dDDu7rCyzBLGRtX-R3cpwXaY8QxEgzw/edit) - Internal process for Airbyte Engineers (requires access)
|
||||
|
||||
@@ -19,15 +19,15 @@ The token must be a (classic) token with repo scope enabled. Follow these direct
|
||||
2. In the left sidebar, click `Developer settings`.
|
||||
3. In the left sidebar, under Personal access tokens, click `Tokens (classic)`.
|
||||
|
||||

|
||||

|
||||
|
||||
4. Select Generate new token, then click `Generate new token (classic)`.
|
||||
|
||||

|
||||

|
||||
|
||||
5. Add the `workflow` scope. Click `Generate Token`.
|
||||
|
||||

|
||||

|
||||
|
||||
6. Make sure to copy your personal access token. You won’t be able to see it again! Paste the personal access token to the Airbyte UI, and click "Contribute" to contribute the connector.
|
||||
|
||||
@@ -47,7 +47,7 @@ This will enable our team to make sure your contribution does not overlap with e
|
||||
|
||||
1. Make sure your connector passes `airbyte-ci connectors test` tests. [Here's a guide on how to run them](../connector-development/testing-connectors/README.md).
|
||||
2. Make sure you include the README, documentation, and an icon for your connector. Without them, one of the CI checks will fail.
|
||||
3. Follow the [pull request convention](../contributing-to-airbyte/resources/pull-requests-handbook.md#pull-request-title-convention)
|
||||
3. Follow the [pull request convention](/community/contributing-to-airbyte/resources/pull-requests-handbook#pull-request-title-convention)
|
||||
4. Wait for a review from a community maintainer or our team. We generally look for the following criteria:
|
||||
- Does this PR cover authentication, pagination, and incremental syncs where applicable?
|
||||
- Does the PR add reasonable list of streams?
|
||||
|
||||
@@ -4,7 +4,7 @@ Multiple tests suites compose the Airbyte connector testing pyramid
|
||||
|
||||
## Tests run by our CI pipeline
|
||||
|
||||
- [Connector QA Checks](https://docs.airbyte.com/contributing-to-airbyte/resources/qa-checks): Static asset checks that validate that a connector is correctly packaged to be successfully released to production.
|
||||
- [Connector QA Checks](https://docs.airbyte.com/community/contributing-to-airbyte/resources/qa-checks): Static asset checks that validate that a connector is correctly packaged to be successfully released to production.
|
||||
- Unit Tests: Connector-specific tests written by the connector developer which don’t require access to the source/destination.
|
||||
- Integration Tests: Connector-specific tests written by the connector developer which _may_ require access to the source/destination.
|
||||
- [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference/): Connector-agnostic tests that verify that a connector adheres to the [Airbyte protocol](https://docs.airbyte.com/understanding-airbyte/airbyte-protocol). Credentials to a source/destination sandbox account are **required**.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Writing Connector Documentation
|
||||
|
||||
This topic guides you through writing documentation for Airbyte connectors. The systems and practices described in [Updating Documentation](../contributing-to-airbyte/writing-docs.md) apply here as well. However, there are several features and restrictions that only apply to connectors.
|
||||
This topic guides you through writing documentation for Airbyte connectors. The systems and practices described in [Updating Documentation](/community/contributing-to-airbyte/writing-docs) apply here as well. However, there are several features and restrictions that only apply to connectors.
|
||||
|
||||
## QA checks
|
||||
|
||||
If you're writing docs for a new connector, your docs must pass our [QA checks](../contributing-to-airbyte/resources/qa-checks).
|
||||
If you're writing docs for a new connector, your docs must pass our [QA checks](/community/contributing-to-airbyte/resources/qa-checks).
|
||||
|
||||
## Custom Markdown extensions for connector docs
|
||||
|
||||
@@ -87,9 +87,9 @@ Only Cloud builds of the Airbyte UI will render this content.
|
||||
|
||||
### Testing your content
|
||||
|
||||
To test in-app content in [a local Airbyte build](https://docs.airbyte.com/contributing-to-airbyte/developing-locally/#develop-on-airbyte-webapp), check out the `airbyte` git repository to the same branch and directory as the airbyte platform repository. Development builds fetch connector documentation from your local filesystem, so you can edit their content and view the rendered output in Airbyte.
|
||||
To test in-app content in [a local Airbyte build](https://docs.airbyte.com/community/contributing-to-airbyte/developing-locally/#develop-on-airbyte-webapp), check out the `airbyte` git repository to the same branch and directory as the airbyte platform repository. Development builds fetch connector documentation from your local filesystem, so you can edit their content and view the rendered output in Airbyte.
|
||||
|
||||
To test https://docs.airbyte.com content, [build Docusaurus locally](../contributing-to-airbyte/writing-docs.md#set-up-your-environment).
|
||||
To test https://docs.airbyte.com content, [build Docusaurus locally](/community/contributing-to-airbyte/writing-docs#set-up-your-environment).
|
||||
|
||||
## Map the UI to associated content
|
||||
|
||||
|
||||
@@ -1,354 +0,0 @@
|
||||
# Developing Locally
|
||||
|
||||
Airbyte development is broken into two activities, connector development and platform development. Connector development
|
||||
is largely done in Python by community contributors, though sometimes Java is used for performance reasons. Platform development is done in Java
|
||||
and Kotlin. In addition to the Java and Kotlin code, the Platform also consists of the UI. The UI is developed in
|
||||
TypeScript using React.
|
||||
|
||||
## Submitting Code
|
||||
|
||||
If you would like to submit code to Airbyte, please follow the [Pull Request Handbook](resources/pull-requests-handbook.md)
|
||||
guide when creating Github Pull Requests. When you are ready to submit code, use the [Submit a New Connector](../connector-development/submit-new-connector.md) document to make
|
||||
sure that the process can go as smoothly as possible.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
:::info
|
||||
|
||||
Manually switching between different language versions can be difficult. We recommend using a version manager such as [`pyenv`](https://github.com/pyenv/pyenv) or [`jenv`](https://github.com/jenv/jenv).
|
||||
|
||||
:::
|
||||
|
||||
The following technologies are required to build Airbyte locally.
|
||||
|
||||
1. [`Java 21`](https://jdk.java.net/archive/)
|
||||
2. `Node 20`
|
||||
3. `Python 3.10`
|
||||
4. `Docker`
|
||||
5. `Jq`
|
||||
|
||||
If you are looking to build connectors, you should also follow the installation instructions for [airbyte-ci](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md).
|
||||
|
||||
### Using abctl for Airbyte development
|
||||
|
||||
The guides in this document explain how to develop Connectors and the Airbyte Platform with `abctl`. You should
|
||||
follow the [Quickstart](../using-airbyte/getting-started/oss-quickstart.md) instructions to install `abctl`.
|
||||
|
||||
[Kubernetes in Docker](https://kind.sigs.k8s.io/) (`kind`) is used by `abctl` to create a local Kubernetes cluster as a docker container.
|
||||
Once the `kind` cluster has been created, `abctl` then uses [Helm](https://helm.sh/) along with the [Airbyte Chart](https://github.com/airbytehq/airbyte-platform/tree/main/charts)
|
||||
to deploy Airbyte. In order to view logs, debug issues, and managed your Airbyte deployment, you should install the
|
||||
[kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installing-from-release-binaries) command line tools, as well as,
|
||||
[kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) for interacting with the Kubernetes cluster.
|
||||
|
||||
To configure your `kubectl` client so that it can communicate with your `abctl` cluster, run the following:
|
||||
|
||||
```shell
|
||||
kind export kubeconfig -n airbyte-abctl
|
||||
```
|
||||
|
||||
You can then view any issues with the pods (deployed containers) by running:
|
||||
|
||||
```shell
|
||||
kubectl get pods -n airbyte-abctl
|
||||
```
|
||||
|
||||
Which should output something like:
|
||||
|
||||
```shell
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
airbyte-abctl-airbyte-bootloader 0/1 Completed 0 4h20m
|
||||
airbyte-abctl-connector-builder-server-55bc78bd-6sxdp 1/1 Running 0 4h20m
|
||||
airbyte-abctl-cron-b48bccb78-jnz7b 1/1 Running 0 4h20m
|
||||
airbyte-abctl-pod-sweeper-pod-sweeper-599fd8f56d-kj5t9 1/1 Running 0 4h20m
|
||||
airbyte-abctl-server-74465db7fd-gk25q 1/1 Running 0 4h20m
|
||||
airbyte-abctl-temporal-bbb84b56c-jh8x7 1/1 Running 0 4h33m
|
||||
airbyte-abctl-webapp-745c949464-brpjf 1/1 Running 0 4h20m
|
||||
airbyte-abctl-worker-79c895c7dc-ssqvc 1/1 Running 0 4h20m
|
||||
airbyte-db-0 1/1 Running 0 4h34m
|
||||
airbyte-minio-0 1/1 Running 0 4h34m
|
||||
```
|
||||
|
||||
Viewing logs for a particular pod can be done by running:
|
||||
|
||||
```shell
|
||||
kubectl logs -n airbyte-abctl airbyte-abctl-server-74465db7fd-gk25q
|
||||
```
|
||||
|
||||
## Connector Contributions
|
||||
|
||||
1. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the [`airbyte`](https://github.com/airbytehq/airbyte) repository.
|
||||
2. Clone the fork on your workstation:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:{YOUR_USERNAME}/airbyte.git
|
||||
cd airbyte
|
||||
```
|
||||
|
||||
3. Make sure that `abctl` is running correctly with the following command `abctl local status`. Verify the status check
|
||||
was successful
|
||||
|
||||
4. Then, build the connector image:
|
||||
- Verify the `airbyte-ci` tool is installed by running `airbyte-ci --help`, install the command with the instructions in the Prerequisites if the command is not found.
|
||||
- Run `airbyte-ci connectors --name source-<source-name> build` will build your connector image.
|
||||
- Once the command is done, you will find your connector image in your local docker host: `airbyte/source-<source-name>:dev`.
|
||||
|
||||
5. Verify the image was published locally by running:
|
||||
|
||||
```shell
|
||||
docker images ls | grep airbyte/source-<source-name>:dev
|
||||
```
|
||||
|
||||
You should see output similar to:
|
||||
```shell
|
||||
airbyte/destination-s3 | dev | 70516a5908ce | 2 minutes ago | 968MB
|
||||
```
|
||||
|
||||
6. You can then load the newly built image into the `abctl` instance using:
|
||||
|
||||
```shell
|
||||
kind load docker-image airbyte/source-<source-name>:dev -n airbyte-abctl
|
||||
```
|
||||
|
||||
:::info
|
||||
|
||||
The above connector image is tagged with `dev`. You can change this to use another tag if you'd like via the `docker image tag` command.
|
||||
|
||||
:::
|
||||
|
||||
- In your browser, visit [http://localhost:8000/](http://localhost:8000/).
|
||||
- Log in.
|
||||
- Click **Workspace settings** > **Sources**/**Destinations**.
|
||||
- Click the edit button <svg fill="none" data-icon="pencil" role="img" viewBox="0 0 24 24" class="inline-svg"><path fill="currentColor" d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-.71-.29 1 1 0 0 0-.71.29l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8q.138-.146.22-.33.015-.12 0-.24a.7.7 0 0 0 0-.14zM6.83 20H4v-2.83l9.93-9.93 2.83 2.83zM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82z"></path></svg>.
|
||||
- Update the version number to use your docker image tag. The default is `dev`.
|
||||
- Click `Change` to save the changes
|
||||
|
||||
Now when you run a sync with that connector, it will use your local docker image.
|
||||
|
||||
### Connector Specification Caching
|
||||
|
||||
The Airbyte Server caches connector specifications for performance reasons. If you update the specification of a connector, you need to clear this cache so the new changes are registered. To do this:
|
||||
|
||||
- In your browser, visit [http://localhost:8000/](http://localhost:8000/).
|
||||
- Log in.
|
||||
- Click **Workspace settings** > **Sources**/**Destinations**.
|
||||
- Click the edit button <svg fill="none" data-icon="pencil" role="img" viewBox="0 0 24 24" class="inline-svg"><path fill="currentColor" d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-.71-.29 1 1 0 0 0-.71.29l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8q.138-.146.22-.33.015-.12 0-.24a.7.7 0 0 0 0-.14zM6.83 20H4v-2.83l9.93-9.93 2.83 2.83zM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82z"></path></svg>.
|
||||
- Leave the version set to `dev`.
|
||||
- Click `Change` to save the changes, which refreshes the dev connector's spec.
|
||||
|
||||
## Platform Contributions
|
||||
|
||||
1. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the [`airbyte-platform`](https://github.com/airbytehq/airbyte-platform) repository.
|
||||
2. Clone the fork on your workstation:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:{YOUR_USERNAME}/airbyte-platform.git
|
||||
cd airbyte-platform
|
||||
```
|
||||
|
||||
3. Make sure that `abctl` is running correctly with the following command `abctl local status`. Verify the status check
|
||||
was successful
|
||||
|
||||
### Build with `gradle`
|
||||
|
||||
To compile and build the platform, run the following command in your local `airbyte-platform` repository:
|
||||
|
||||
```bash
|
||||
./gradlew build
|
||||
```
|
||||
|
||||
This will build all the code and run all the unit tests.
|
||||
|
||||
`./gradlew build` creates all the necessary artifacts \(Webapp, Jars, and Docker images\) so that you can run Airbyte locally. Since this builds everything, it can take some time.
|
||||
|
||||
|
||||
:::info
|
||||
|
||||
If running tasks on a subproject, you must prepend `:oss` to the project in gradlew. For example, to build the `airbyte-cron` project the command would look like: `./gradlew :oss:airbyte-cron:build`.
|
||||
|
||||
:::
|
||||
|
||||
:::info
|
||||
|
||||
Gradle will use all CPU cores by default. If Gradle uses too much/too little CPU, tuning the number of CPU cores it uses to better suit a dev's need can help.
|
||||
|
||||
Adjust this by either, 1. Setting an env var: `export GRADLE_OPTS="-Dorg.gradle.workers.max=3"`. 2. Setting a cli option: `./gradlew build --max-workers 3` 3. Setting the `org.gradle.workers.max` property in the `gradle.properties` file.
|
||||
|
||||
A good rule of thumb is to set this to \(\# of cores - 1\).
|
||||
|
||||
:::
|
||||
|
||||
:::info
|
||||
|
||||
On Mac, if you run into an error while compiling openssl \(this happens when running pip install\), you may need to explicitly add these flags to your bash profile so that the C compiler can find the appropriate libraries.
|
||||
|
||||
```bash
|
||||
export LDFLAGS="-L/usr/local/opt/openssl/lib"
|
||||
export CPPFLAGS="-I/usr/local/opt/openssl/include"
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
### Using the images in abctl
|
||||
|
||||
Once you have successfully built the Platform images, you can load them into the `abctl` Kind cluster, for example:
|
||||
|
||||
```shell
|
||||
kind load docker-image airbyte/server:dev --name airbyte-abctl
|
||||
```
|
||||
|
||||
Adjust the image for the Airbyte component that you would like to test. Then you can adjust your vaulues.yaml file to
|
||||
use the `dev` tag for the component, e.g.
|
||||
|
||||
```shell
|
||||
server:
|
||||
image:
|
||||
tag: dev
|
||||
```
|
||||
|
||||
Then redeploy `abctl` by running:
|
||||
|
||||
```shell
|
||||
abctl local install --values values.yaml
|
||||
```
|
||||
|
||||
### Run platform acceptance tests
|
||||
|
||||
In your local `airbyte-platform` repository, run the following commands to run acceptance \(end-to-end\) tests for the platform:
|
||||
|
||||
```bash
|
||||
./gradlew clean build
|
||||
./gradlew :oss:airbyte-tests:acceptanceTests
|
||||
```
|
||||
|
||||
Test containers start Airbyte locally, run the tests, and shutdown Airbyte after running the tests. If you want to run acceptance tests against local Airbyte that is not managed by the test containers, you need to set `USE_EXTERNAL_DEPLOYMENT` environment variable to true:
|
||||
|
||||
```bash
|
||||
USE_EXTERNAL_DEPLOYMENT=true ./gradlew :oss:airbyte-tests:acceptanceTests
|
||||
```
|
||||
|
||||
## Webapp Contributions
|
||||
|
||||
To develop features in the Airbyte Webapp, you must first bring up an instance of Airbyte on TCP port 8001. To do this
|
||||
using `abctl`, first follow the [Quickstart](../using-airbyte/getting-started/oss-quickstart.md) to install `abctl`. Then run the following:
|
||||
|
||||
```bash
|
||||
abctl local install --port 8001
|
||||
```
|
||||
|
||||
### Disabling Authentication
|
||||
|
||||
It may be convenient to turn off authentication. If you wish to turn off authentication, create a new text file named:
|
||||
`values.yaml` and copy the follow into the file:
|
||||
|
||||
```yaml
|
||||
global:
|
||||
auth:
|
||||
enabled: false
|
||||
```
|
||||
|
||||
Then you can run `abctl` with the following:
|
||||
|
||||
```bash
|
||||
abctl local install --port 8001 --values ./values.yaml
|
||||
```
|
||||
|
||||
### Installing Dependencies
|
||||
|
||||
- Install [`nvm`](https://github.com/nvm-sh/nvm) (Node Version Manager) if not installed
|
||||
- Use `nvm` to install the required node version:
|
||||
|
||||
```bash
|
||||
cd airbyte-webapp
|
||||
nvm install
|
||||
```
|
||||
|
||||
- Install the `pnpm` package manager in the required version. You can use Node's [corepack](https://nodejs.org/api/corepack.html) for that:
|
||||
|
||||
```bash
|
||||
corepack enable && corepack install
|
||||
```
|
||||
|
||||
### Running the Webapp
|
||||
|
||||
- Start up the react app.
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
pnpm start
|
||||
```
|
||||
|
||||
## Formatting code
|
||||
|
||||
Airbyte runs a code formatter as part of the build to enforce code styles. You should run the formatter yourself before submitting a PR (otherwise the build will fail).
|
||||
|
||||
The command to run formatting varies slightly depending on which part of the codebase you are working in.
|
||||
|
||||
### Connector
|
||||
|
||||
We wrapped our code formatting tools in [pre-commit](https://pre-commit.com). You can install this and other local dev tools by running `make tools.install`.
|
||||
|
||||
You can run `pre-commit` to format modified files, or `pre-commit run --all-files` to format all the code your local `airbyte` repository.
|
||||
|
||||
We wrapped this command in a pre-push hook which you can enable with:
|
||||
|
||||
```bash
|
||||
make tools.git-hooks.install
|
||||
```
|
||||
|
||||
You can also uninstall git hooks with:
|
||||
|
||||
```bash
|
||||
make tools.git-hooks.clean
|
||||
```
|
||||
|
||||
### Platform
|
||||
|
||||
If you are working in the platform run `./gradlew format` from the root of the `airbyte-platform` repository.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Resetting the Airbyte developer environment
|
||||
|
||||
Sometimes you'll want to reset the data in your local environment. One common case for this is if you are updating an connector's entry in the database \(`airbyte-config-oss/init-oss/src/main/resources/config`\), often the easiest thing to do, is wipe the local database and start it from scratch. To reset your data back to a clean install of Airbyte, follow these steps:
|
||||
|
||||
- Make sure you are in your local `airbyte-platform` repository
|
||||
|
||||
- Delete the datastore volumes in docker
|
||||
|
||||
```bash
|
||||
abctl local uninstall --persisted
|
||||
```
|
||||
|
||||
- Remove the `abctl` data on disk
|
||||
|
||||
```bash
|
||||
rm -rf ~/.airbyte/
|
||||
```
|
||||
|
||||
- Rebuild the project
|
||||
|
||||
```bash
|
||||
./gradlew clean build
|
||||
abctl local install --values values.yaml
|
||||
```
|
||||
|
||||
If you are working on python connectors, you may also need to reset the `virtualenv` and re-install the connector's dependencies.
|
||||
|
||||
```bash
|
||||
# Assuming you have a virtualenv loaded into your shell
|
||||
deactivate
|
||||
|
||||
# From the connector's directory
|
||||
# remove the venv directory entirely
|
||||
rm -rf .venv
|
||||
|
||||
# make and activate a new venv
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
[//]: # (### Inspecting the messages passed between connectors)
|
||||
|
||||
[//]: # ()
|
||||
[//]: # (From your local `airbyte-platform` repository, you can enable `LOG_CONNECTOR_MESSAGES=true` to log the messages the Airbyte platform receives from the source and destination when debugging locally. e.g. `LOG_CONNECTOR_MESSAGES=true VERSION=dev docker compose up`)
|
||||
@@ -1,13 +0,0 @@
|
||||
# Issues and Feature Requests
|
||||
|
||||
#### Report a Bug
|
||||
|
||||
Bug reports help us make Airbyte better for everyone. We provide a preconfigured template for reporting bugs to make it very clear what information we need. To avoid duplicate reports, check if the bug was [already reported](https://github.com/airbytehq/airbyte/issues?q=is%3Aissue+is%3Aopen+label%3Atype%2Fbug) before raising a new one.
|
||||
|
||||
#### Request new Features or a Connector
|
||||
|
||||
Requesting new features [or connectors](https://github.com/airbytehq/airbyte/discussions/categories/new-connector-request) is an essential way to contribute. Your input helps us understand your needs and priorities, enabling us to enhance the functionality and versatility of Airbyte. [Starting a Github Discussion](https://github.com/airbytehq/airbyte/discussions) is the best way to do it.
|
||||
|
||||
#### Reporting Security Issues
|
||||
|
||||
Please do not create a public GitHub issue. If you've found a security issue, please email us directly at [security@airbyte.io](mailto:security@airbyte.io) instead of raising an issue.
|
||||
@@ -181,7 +181,7 @@ If you want to interact with the pods or resources inside the cluster you can us
|
||||
|
||||
[kind](https://kind.sigs.k8s.io/) is a tool for creating a K8s cluster using docker instead of having to install a local K8s cluster. You only need to think about kind if you want to make an adjustment to the cluster itself.
|
||||
|
||||
For more advanced interactions (e.g. loading custom docker containers), read more in [developing locally](/platform/contributing-to-airbyte/developing-locally#using-abctl-for-airbyte-development).
|
||||
For more advanced interactions (e.g. loading custom docker containers), read more in [developing locally](/community/contributing-to-airbyte/developing-locally#using-abctl-for-airbyte-development).
|
||||
|
||||
### Unable To Locate User Email
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
# Licenses
|
||||
|
||||
Airbyte monorepo uses Elastic License 2.0
|
||||
|
||||
If you have any question regarding licenses, just visit our [FAQ](license-faq.md) or [contact us](mailto:license@airbyte.io).
|
||||
|
||||
If you want to see a list of examples supported by ELv2, and not, to have a better understanding whether you should be concerned or not, check the [examples](examples.md).
|
||||
|
||||
**TL;DR:** Unless you want to host Airbyte yourself and sell it as an ELT/ETL tool, or to sell a product that directly exposes Airbyte’s UI or API, you should be good to go!
|
||||
@@ -1,19 +0,0 @@
|
||||
# Examples
|
||||
|
||||
We chose ELv2 because it is very permissive with what you can do with the software.
|
||||
We are still being asked whether one's project are concerned by the ELv2 license. So we decided to list some projects to make this very explicit.
|
||||
|
||||
Don't hesitate to ask us about this or to do a pull request to add your project here. If we merge it, it means you're good to go.
|
||||
|
||||
Let's start with the list of projects that falls under ELv2 and for which you can't leverage Airbyte's technology that is under Elv2, because there aren't actually many projects.
|
||||
|
||||
## Examples of projects that can't leverage the technology under ELv2 without a contract
|
||||
|
||||
- Hosting Airbyte yourself and selling it as an ELT/ETL tool. That means selling a competitive alternative to Airbyte Cloud or the future Airbyte Enterprise.
|
||||
- Selling a product that directly exposes Airbyte’s UI or API.
|
||||
|
||||
## Examples of projects for which you can leverage Airbyte fully
|
||||
|
||||
- Creating an analytics or attribution platform for which you want to use Airbyte to bring data in on behalf of your customers.
|
||||
- Creating any kind of platform on which you offer Airbyte's connectors to your customers to bring their data in, unless you're selling some ELT / ETL solution.
|
||||
- Building your internal data stack and configuring pipelines through Airbyte's UI or API.
|
||||
@@ -1,93 +0,0 @@
|
||||
# License FAQ
|
||||
|
||||
## Airbyte Licensing Overview
|
||||
|
||||
- **Airbyte Connectors** and everything in our public repos excluding the airbytehq/airbyte-protocol are open sourced and available under the [Elastic License 2.0 (ELv2)](https://www.elastic.co/licensing/elastic-license/faq) License. Each connector's `metadata.yaml` file contains more information.
|
||||
- **Airbyte Protocol** is open sourced and available under the [MIT License](https://opensource.org/license/mit/).
|
||||
- **Airbyte Cloud & Airbyte Enterprise** are both closed source and require a commercial license from Airbyte.
|
||||
|
||||
## About Elastic License 2.0 (ELv2)
|
||||
|
||||
ELv2 is a simple, non-copyleft license, allowing for the right to “use, copy, distribute, make available, and prepare derivative works of the software”. Anyone can use Airbyte, free of charge. You can run the software at scale on your infrastructure. There are only three high-level limitations. You cannot:
|
||||
|
||||
1. Provide the products to others as a managed service ([read more](#what-is-the-managed-service-use-case-that-is-not-allowed-under-elv2));
|
||||
2. Circumvent the license key functionality or remove/obscure features protected by license keys; or
|
||||
3. Remove or obscure any licensing, copyright, or other notices.
|
||||
|
||||
In case you want to work with Airbyte without these limitations, we offer alternative licenses. These licenses include maintenance, support, and customary commercial terms. If you need a different license, please get in touch with us at: contact@airbyte.io.
|
||||
|
||||
[View License](elv2-license.md)
|
||||
|
||||
## FAQ
|
||||
|
||||
### What limitations does ELv2 impose on my use of Airbyte?
|
||||
|
||||
If you are an Airbyte Cloud customer, nothing changes for you.
|
||||
|
||||
For open-source users, everyone can continue to use Airbyte as they are doing today: no limitations on volume, number of users, number of connections…
|
||||
|
||||
There are only a few high-level limitations. You cannot:
|
||||
|
||||
1. Provide the products to others as a managed service. For example, you cannot sell a cloud service that provides users with direct access to Airbyte. You can sell access to applications built and run using Airbyte ([read more](#what-is-the-managed-service-use-case-that-is-not-allowed-under-elv2)).
|
||||
2. Circumvent the license key functionality or remove/obscure features protected by license keys. For example, our code may contain watermarks or keys to unlock proprietary functionality. Those elements of our code will be marked in our source code. You can’t remove or change them.
|
||||
|
||||
### Why did Airbyte adopt ELv2?
|
||||
|
||||
We are releasing Airbyte Cloud, a managed version of Airbyte that will offer alternatives to how our users operate Airbyte, including additional features and new execution models. We want to find a great way to execute our mission to commoditize data integration with open source and our ambition to create a sustainable business.
|
||||
|
||||
ELv2 gives us the best of both worlds.
|
||||
|
||||
On one hand, our users can continue to use Airbyte freely, and on the other hand, we can safely create a sustainable business and continue to invest in our community, project and product. We don’t have to worry about other large companies taking the product to monetize it for themselves, thus hurting our community.
|
||||
|
||||
### Will Airbyte connectors continue to be open source?
|
||||
|
||||
Our own connectors remain open-source, and our contributors can also develop their own connectors and continue to choose whichever license they prefer. This is our way to accomplish Airbyte’s vision of commoditizing data integration: access to data shouldn’t be behind a paywall. Also, we want Airbyte’s licensing to work well with applications that are integrated using connectors.
|
||||
|
||||
We are continuously investing in Airbyte's data protocol and all the tooling around it. The Connector Development Kit (CDK), which helps our community and our team build and maintain connectors at scale, is a cornerstone of our commoditization strategy and also remains open-source.
|
||||
|
||||
### How do I continue to contribute to Airbyte under ELv2?
|
||||
|
||||
Airbyte’s projects are available here. Anyone can contribute to any of these projects (including those licensed with ELv2). We are introducing a Contributor License Agreement that you will have to sign with your first contribution.
|
||||
|
||||
### When will ELv2 be effective?
|
||||
|
||||
ELv2 will apply from the following Airbyte core version as of September 27, 2021: version 0.30.0.
|
||||
|
||||
### What is the “managed service” use case that is not allowed under ELv2?
|
||||
|
||||
We chose ELv2 because it is very permissive with what you can do with the software.
|
||||
|
||||
You can basically build ANY product on top of Airbyte as long as you don’t:
|
||||
|
||||
- Host Airbyte yourself and sell it as an ELT/ETL tool, or a replacement for the Airbyte solution.
|
||||
- Sell a product that directly exposes Airbyte’s UI or API.
|
||||
|
||||
Here is a non-exhaustive list of what you can do (without providing your customers direct access to Airbyte functionality):
|
||||
|
||||
- I am creating an analytics platform and I want to use Airbyte to bring data in on behalf of my customers.
|
||||
- I am building my internal data stack and I want my team to be able to interact with Airbyte to configure the pipelines through the UI or the API.
|
||||
- ...
|
||||
|
||||
### My company has a policy against using code that restricts commercial use – can I still use Airbyte under ELv2?
|
||||
|
||||
You can use software under ELv2 for your commercial business, you simply cannot offer it as a managed service.
|
||||
|
||||
### As a Data Agency, I currently use Airbyte to fulfill my customer needs. How does ELv2 affect me?
|
||||
|
||||
You can continue to use Airbyte, as long as you don’t offer it as a managed service.
|
||||
|
||||
### I started to use Airbyte to ingest my customer’s data. What should I do?
|
||||
|
||||
You can continue to use Airbyte, as long as you don’t offer it as a managed service.
|
||||
|
||||
### Can I customize ELv2 software?
|
||||
|
||||
Yes, you can customize ELv2 software. ELv2 is similar in this sense to permissive open-source licenses. You can modify the software, integrate the variant into your application, and operate the modified application, as long as you don’t go against any of the limitations.
|
||||
|
||||
### Why didn’t you use a closed-source license for Airbyte Core?
|
||||
|
||||
We want to provide developers with free access to our Airbyte Core source code — including rights to modify it. Since this wouldn’t be possible with a closed-source license, we decided to use the more permissive ELv2.
|
||||
|
||||
### Is there any revenue sharing for those who create Airbyte connectors?
|
||||
|
||||
We will be introducing a new participative model in the next few months. There are still a lot of details to figure out, but the general idea is that maintainers of connectors would have the option to obtain a share of revenue when the connectors are being used in the paid version of Airbyte. In exchange, maintainers would be responsible for SLAs, new features, and bug fixes for the said connector.
|
||||
@@ -35,7 +35,7 @@ This page includes new features and improvements to the Airbyte Cloud and Airbyt
|
||||
|
||||
- Improved CDK by supporting a schema generator tool. [#13518](https://github.com/airbytehq/airbyte/pull/13518)
|
||||
|
||||
- Improved [documentation](https://docs.airbyte.com/contributing-to-airbyte/developing-locally#connector) about contributing locally by adding information on formatting connectors. [#14661](https://github.com/airbytehq/airbyte/pull/14661)
|
||||
- Improved [documentation](https://docs.airbyte.com/community/contributing-to-airbyte/developing-locally#connector) about contributing locally by adding information on formatting connectors. [#14661](https://github.com/airbytehq/airbyte/pull/14661)
|
||||
|
||||
- Improved [Octavia CLI](https://github.com/airbytehq/airbyte/tree/master/octavia-cli#-octavia-cli) so you can now:
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ Plus
|
||||
Pro
|
||||
Enterprise Flex
|
||||
Self-Managed Enterprise
|
||||
Elastic License 2.0
|
||||
ELv2
|
||||
MIT
|
||||
|
||||
#
|
||||
# Common terms Airbyte uses
|
||||
@@ -64,6 +67,7 @@ SQL
|
||||
IP[s]
|
||||
CDC
|
||||
CRM[s]
|
||||
FAQ
|
||||
|
||||
# Airbyte connectors
|
||||
|
||||
|
||||
@@ -215,6 +215,24 @@ const config: Config = {
|
||||
],
|
||||
},
|
||||
],
|
||||
// This plugin controls Community docs, which are not versioned
|
||||
[
|
||||
"@docusaurus/plugin-content-docs",
|
||||
{
|
||||
id: "community",
|
||||
path: "../docs/community",
|
||||
routeBasePath: "/community",
|
||||
sidebarPath: "./sidebar-community.js",
|
||||
editUrl: "https://github.com/airbytehq/airbyte/blob/master/docs",
|
||||
remarkPlugins: [
|
||||
plugins.docsHeaderDecoration,
|
||||
plugins.enterpriseDocsHeaderInformation,
|
||||
plugins.productInformation,
|
||||
plugins.docMetaTags,
|
||||
plugins.addButtonToTitle,
|
||||
],
|
||||
},
|
||||
],
|
||||
[
|
||||
"@docusaurus/plugin-content-docs",
|
||||
{
|
||||
@@ -437,11 +455,14 @@ const config: Config = {
|
||||
position: "left",
|
||||
docsPluginId: "ai-agents",
|
||||
sidebarId: "ai-agents",
|
||||
label: "AI Agents",
|
||||
label: "AI agents",
|
||||
},
|
||||
{
|
||||
href: "https://support.airbyte.com/",
|
||||
label: "Support",
|
||||
type: "docSidebar",
|
||||
position: "left",
|
||||
docsPluginId: "community",
|
||||
sidebarId: "community",
|
||||
label: "Community & support",
|
||||
},
|
||||
{
|
||||
href: "https://status.airbyte.com",
|
||||
|
||||
61
docusaurus/sidebar-community.js
Normal file
@@ -0,0 +1,61 @@
|
||||
const sectionHeader = (title) => ({
|
||||
type: "html",
|
||||
value: title,
|
||||
className: "navbar__category",
|
||||
});
|
||||
|
||||
const contributeToAirbyte = {
|
||||
type: "category",
|
||||
label: "Contribute to Airbyte",
|
||||
link: {
|
||||
type: "doc",
|
||||
id: "contributing-to-airbyte/README",
|
||||
},
|
||||
items: [
|
||||
"contributing-to-airbyte/issues-and-requests",
|
||||
"contributing-to-airbyte/developing-locally",
|
||||
"contributing-to-airbyte/writing-docs",
|
||||
"contributing-to-airbyte/resources/pull-requests-handbook",
|
||||
"contributing-to-airbyte/resources/qa-checks",
|
||||
],
|
||||
};
|
||||
|
||||
const licenses = {
|
||||
type: "category",
|
||||
label: "Licenses",
|
||||
link: {
|
||||
type: "doc",
|
||||
id: "licenses/README",
|
||||
},
|
||||
items: [
|
||||
"licenses/license-faq",
|
||||
"licenses/elv2-license",
|
||||
"licenses/mit-license",
|
||||
"licenses/examples",
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
community: [
|
||||
{
|
||||
type: "category",
|
||||
collapsible: false,
|
||||
label: "Community & support",
|
||||
link: {
|
||||
type: "doc",
|
||||
id: "README",
|
||||
},
|
||||
items: [
|
||||
"getting-support",
|
||||
contributeToAirbyte,
|
||||
"code-of-conduct",
|
||||
licenses,
|
||||
{
|
||||
type: "link",
|
||||
label: "Public roadmap",
|
||||
href: "https://go.airbyte.com/roadmap",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
@@ -150,28 +150,6 @@ const buildAConnector = {
|
||||
],
|
||||
};
|
||||
|
||||
const contributeToAirbyte = {
|
||||
type: "category",
|
||||
label: "Contribute to Airbyte",
|
||||
link: {
|
||||
type: "doc",
|
||||
id: "contributing-to-airbyte/README",
|
||||
},
|
||||
items: [
|
||||
"contributing-to-airbyte/issues-and-requests",
|
||||
"contributing-to-airbyte/developing-locally",
|
||||
"contributing-to-airbyte/writing-docs",
|
||||
{
|
||||
type: "category",
|
||||
label: "Resources",
|
||||
items: [
|
||||
"contributing-to-airbyte/resources/pull-requests-handbook",
|
||||
"contributing-to-airbyte/resources/qa-checks",
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const deployAirbyte = {
|
||||
type: "category",
|
||||
label: "Deploy Airbyte",
|
||||
@@ -573,30 +551,6 @@ module.exports = {
|
||||
id: "using-airbyte/pyairbyte/getting-started",
|
||||
},
|
||||
understandingAirbyte,
|
||||
{
|
||||
type: "category",
|
||||
label: "Licenses",
|
||||
link: {
|
||||
type: "doc",
|
||||
id: "developer-guides/licenses/README",
|
||||
},
|
||||
items: [
|
||||
"developer-guides/licenses/license-faq",
|
||||
"developer-guides/licenses/elv2-license",
|
||||
"developer-guides/licenses/mit-license",
|
||||
"developer-guides/licenses/examples",
|
||||
],
|
||||
},
|
||||
sectionHeader("Community"),
|
||||
contributeToAirbyte,
|
||||
"community/getting-support",
|
||||
"community/code-of-conduct",
|
||||
sectionHeader("Product updates"),
|
||||
{
|
||||
type: "link",
|
||||
label: "Roadmap",
|
||||
href: "https://go.airbyte.com/roadmap",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -97,13 +97,13 @@ export default function Home() {
|
||||
icon: ConnectorsIcon,
|
||||
},
|
||||
{
|
||||
title: 'Release Notes',
|
||||
title: 'Release notes',
|
||||
link: '/release_notes/',
|
||||
description: 'See what\'s new. Airbyte releases new Self-Managed versions regularly. Airbyte Cloud customers always have the latest enhancements.',
|
||||
icon: ReleaseNotesIcon,
|
||||
},
|
||||
{
|
||||
title: 'AI Agents',
|
||||
title: 'AI agents',
|
||||
link: '/ai-agents/',
|
||||
description: 'Explore AI Agent tools and capabilities for building intelligent data pipelines.',
|
||||
icon: AIAgentsIcon,
|
||||
@@ -115,8 +115,8 @@ export default function Home() {
|
||||
icon: DevelopersIcon,
|
||||
},
|
||||
{
|
||||
title: 'Community and Support',
|
||||
link: '/platform/community/getting-support',
|
||||
title: 'Community and support',
|
||||
link: '/community',
|
||||
description: 'Get help using, and contribute to, Airbyte.',
|
||||
icon: CommunityIcon,
|
||||
},
|
||||
@@ -388,16 +388,16 @@ export default function Home() {
|
||||
alt="GitHub stars"
|
||||
/>
|
||||
</a>{' '}
|
||||
<a href="https://docs.airbyte.com/platform/next/developer-guides/licenses/mit-license">
|
||||
<a href="/community/developer-guides/licenses/mit-license">
|
||||
<img
|
||||
src="https://img.shields.io/static/v1?label=license&message=MIT&color=brightgreen"
|
||||
alt="License"
|
||||
alt="MIT License"
|
||||
/>
|
||||
</a>{' '}
|
||||
<a href="https://docs.airbyte.com/platform/next/developer-guides/licenses/elv2-license">
|
||||
<a href="/community/developer-guides/licenses/elv2-license">
|
||||
<img
|
||||
src="https://img.shields.io/static/v1?label=license&message=ELv2&color=brightgreen"
|
||||
alt="License"
|
||||
alt="ELv2 License"
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -93,12 +93,12 @@
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/code-of-conduct",
|
||||
"destination": "/platform/community/code-of-conduct",
|
||||
"destination": "/community/code-of-conduct",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/slack-code-of-conduct",
|
||||
"destination": "/platform/community/code-of-conduct",
|
||||
"destination": "/community/code-of-conduct",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
@@ -218,12 +218,12 @@
|
||||
},
|
||||
{
|
||||
"source": "/troubleshooting",
|
||||
"destination": "/platform/community/getting-support",
|
||||
"destination": "/community/getting-support",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/operator-guides/contact-support",
|
||||
"destination": "/platform/community/getting-support",
|
||||
"destination": "/community/getting-support",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
@@ -303,12 +303,37 @@
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/licenses",
|
||||
"destination": "/platform/developer-guides/licenses",
|
||||
"destination": "/community/licenses",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/licenses/",
|
||||
"destination": "/platform/developer-guides/licenses",
|
||||
"destination": "/community/licenses",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/licenses/README",
|
||||
"destination": "/community/licenses",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/licenses/license-faq",
|
||||
"destination": "/community/licenses/license-faq",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/licenses/elv2-license",
|
||||
"destination": "/community/licenses/elv2-license",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/licenses/mit-license",
|
||||
"destination": "/community/licenses/mit-license",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/licenses/examples",
|
||||
"destination": "/community/licenses/examples",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
@@ -318,7 +343,7 @@
|
||||
},
|
||||
{
|
||||
"source": "/project-overview/licenses/:path*",
|
||||
"destination": "/platform/developer-guides/licenses/:path*",
|
||||
"destination": "/community/licenses/:path*",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
@@ -346,11 +371,6 @@
|
||||
"destination": "/platform/cloud/:path*",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/community/:path*",
|
||||
"destination": "/platform/community/:path*",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/connector-development",
|
||||
"destination": "/platform/connector-development",
|
||||
@@ -368,17 +388,17 @@
|
||||
},
|
||||
{
|
||||
"source": "/contributing-to-airbyte",
|
||||
"destination": "/platform/contributing-to-airbyte",
|
||||
"destination": "/community/contributing-to-airbyte",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/contributing-to-airbyte/",
|
||||
"destination": "/platform/contributing-to-airbyte",
|
||||
"destination": "/community/contributing-to-airbyte",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/contributing-to-airbyte/:path*",
|
||||
"destination": "/platform/contributing-to-airbyte/:path*",
|
||||
"destination": "/community/contributing-to-airbyte/:path*",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
@@ -388,12 +408,12 @@
|
||||
},
|
||||
{
|
||||
"source": "/developer-guides",
|
||||
"destination": "/platform/developer-guides/licenses",
|
||||
"destination": "/community/licenses",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/developer-guides/",
|
||||
"destination": "/platform/developer-guides/licenses",
|
||||
"destination": "/community/licenses",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
@@ -495,6 +515,71 @@
|
||||
"source": "/platform/contributing-to-airbyte/submit-new-connector",
|
||||
"destination": "/platform/connector-development/submit-new-connector",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/community/getting-support",
|
||||
"destination": "/community/getting-support",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/community/code-of-conduct",
|
||||
"destination": "/community/code-of-conduct",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/contributing-to-airbyte",
|
||||
"destination": "/community/contributing-to-airbyte",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/contributing-to-airbyte/",
|
||||
"destination": "/community/contributing-to-airbyte",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/contributing-to-airbyte/:path*",
|
||||
"destination": "/community/contributing-to-airbyte/:path*",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/developer-guides/licenses",
|
||||
"destination": "/community/licenses",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/developer-guides/licenses/",
|
||||
"destination": "/community/licenses",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/developer-guides/licenses/README",
|
||||
"destination": "/community/licenses",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/developer-guides/licenses/license-faq",
|
||||
"destination": "/community/licenses/license-faq",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/developer-guides/licenses/elv2-license",
|
||||
"destination": "/community/licenses/elv2-license",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/developer-guides/licenses/mit-license",
|
||||
"destination": "/community/licenses/mit-license",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/developer-guides/licenses/examples",
|
||||
"destination": "/community/licenses/examples",
|
||||
"statusCode": 301
|
||||
},
|
||||
{
|
||||
"source": "/platform/developer-guides/licenses/:path*",
|
||||
"destination": "/community/licenses/:path*",
|
||||
"statusCode": 301
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||