1
0
mirror of synced 2025-12-19 18:14:56 -05:00

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>
This commit is contained in:
devin-ai-integration[bot]
2025-11-03 18:22:15 -08:00
committed by GitHub
parent 4774b7611a
commit a605a81da9
41 changed files with 601 additions and 785 deletions

7
docs/community/README.md Normal file
View 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 />

View 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 projects 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 theres 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 youll 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: Dont 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 its 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 -->

View File

@@ -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

View File

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 199 KiB

View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

Before

Width:  |  Height:  |  Size: 484 KiB

After

Width:  |  Height:  |  Size: 484 KiB

View File

@@ -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).

View File

@@ -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).

View File

@@ -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!

View File

@@ -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

View File

@@ -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.

View 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

View 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 Airbytes UI or API, you should be good to go.

View File

@@ -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 -->

View 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 Airbytes 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.

View 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 cant 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 Airbytes vision of commoditizing data integration: access to data shouldnt be behind a paywall. Also, we want Airbytes 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?
Airbytes 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 dont:
- Host Airbyte yourself and sell it as an ELT/ETL tool, or a replacement for the Airbyte solution.
- Sell a product that directly exposes Airbytes 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 dont offer it as a managed service.
### I started to use Airbyte to ingest my customers data. What should I do?
You can continue to use Airbyte, as long as you dont 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 dont go against any of the limitations.
### Why didnt 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 wouldnt be possible with a closed-source license, Airbyte decided to use the more permissive ELv2.
<!-- vale on -->

View File

@@ -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 -->

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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 projects 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 theres 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 youll 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: Dont 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 its 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 youre 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._

View File

@@ -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.

View File

@@ -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)

View File

@@ -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)`.
![Select Tokens Classic](../contributing-to-airbyte/assets/token-classic.png)
![Select Tokens Classic](../../community/contributing-to-airbyte/assets/token-classic.png)
4. Select Generate new token, then click `Generate new token (classic)`.
![Generate Tokens Classic](../contributing-to-airbyte/assets/token-classic-select.png)
![Generate Tokens Classic](../../community/contributing-to-airbyte/assets/token-classic-select.png)
5. Add the `workflow` scope. Click `Generate Token`.
![Generate Tokens Classic](../contributing-to-airbyte/assets/token-classic-scope.png)
![Generate Tokens Classic](../../community/contributing-to-airbyte/assets/token-classic-scope.png)
6. Make sure to copy your personal access token. You wont 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?

View File

@@ -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 dont 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**.

View File

@@ -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

View File

@@ -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`)

View File

@@ -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.

View File

@@ -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

View File

@@ -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 Airbytes UI or API, you should be good to go!

View File

@@ -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 Airbytes 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.

View File

@@ -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 cant 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 dont 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 Airbytes vision of commoditizing data integration: access to data shouldnt be behind a paywall. Also, we want Airbytes 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?
Airbytes 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 dont:
- Host Airbyte yourself and sell it as an ELT/ETL tool, or a replacement for the Airbyte solution.
- Sell a product that directly exposes Airbytes 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 dont offer it as a managed service.
### I started to use Airbyte to ingest my customers data. What should I do?
You can continue to use Airbyte, as long as you dont 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 dont go against any of the limitations.
### Why didnt 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 wouldnt 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.

View File

@@ -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:

View File

@@ -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

View File

@@ -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",

View 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",
},
],
},
],
};

View File

@@ -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",
},
],
},
],

View File

@@ -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>

View File

@@ -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
}
]
}