Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#3558] Docs for Contributing and Defining Components #3574

Merged
merged 16 commits into from
Aug 16, 2022
Merged
1 change: 1 addition & 0 deletions docs/docs/getting-started/componentDefinition.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
A component is a [Helm Chart](https://helm.sh/docs/topics/charts/) (a package of Kubernetes resources) that represents a functional unit in an Airy instance.
8 changes: 7 additions & 1 deletion docs/docs/getting-started/components.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,15 @@ Airy Core comes with all the components you need for a fully-featured conversati

<Image lightModePath="img/getting-started/components-light.png" darkModePath="img/getting-started/components-dark.png"/>

## Definition

import ComponentDefinition from '../getting-started/componentDefinition.mdx'

<ComponentDefinition/>

## Component types

Airy Core contains the following core components:
Airy Core contains the following components:

<ButtonBoxList>
<ButtonBox
Expand Down
8 changes: 7 additions & 1 deletion docs/docs/getting-started/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import TLDR from "@site/src/components/TLDR";

<TLDR>

Airy Core allows its [users](#user) to process messaging data from a variety of
Airy allows its [users](#user) to process messaging data from a variety of
[sources](#source), which are integrated via [source providers](#provider).
Users connect sources via [channels](#channel). Once the channel is connected,
Airy Core ingests source data and transforms them into
Expand All @@ -28,6 +28,12 @@ model and glossary do not correspond exactly. The former is the exact machine
representation of the data we store and the latter is a conceptual artifact we
created to discuss and solve problems.

## Component

import ComponentDefinition from './componentDefinition.mdx'

<ComponentDefinition/>

## Channel

A channel represents a connection between a [source](#source) and the Airy Core
Expand Down
61 changes: 61 additions & 0 deletions docs/docs/guides/contributing-components.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: Contributing Components
sidebar_label: Contributing Components
---

:::warning

This functionality does not yet exist and is under development. With these docs, we aim to elicit feedback from our community (you!) and focus our development efforts. Currently, we do not offer support for 3rd party components, but we are working toward supporting this.

:::

## Components

import ComponentDefinition from '../getting-started/componentDefinition.mdx'

<ComponentDefinition/>

With every [installation of Airy](../getting-started/installation/introduction.md) we bundle a set of default components to get you started:

1. airy-controller
2. api-admin
3. api-communication
4. api-websocket
5. frontend-inbox
6. frontend-control-center

Airy also provides a marketplace of _plug and play_ components that extend the functionality of your Airy instance. You can install them through the catalog page in the Control Center UI of your Airy Instance.

In the following, we will explain how to create, update and store components.

The Helm package and information on each component (except core components) are stored in an external repository managed by Airy called [airy-components](https://github.com/airyhq/airy-/airy-components). This repository is made up of directories where each directory contains a component's Helm package its description.

## The Component File Structure

Below is a model of the file structure of a single component inside the [`airy-components`](https://github.com/airyhq/airy-components) repository.

```
airy-components/
└── [COMPONENT_NAME]/
├── description.yaml
└── helm/
└── [HELM CHART]
```

The `helm` directory contains all the files that make up the Helm package.

The `description.yaml` is the source-of-truth for every component. It includes a description of its functionality, pricing, availability, and version. This file is written by the component maintainer and rendered into the UI of the Control Center.

:::note

Since all components are maintained by Airy, the versioning of every component is tied to the version of Airy. However, once we support 3rd party components, we will revisit our versioning system.

::::

## Developing your own Components

A step-by-step guide to creating your component!

## Publishing your Component to the Airy Marketplace

A step-by-step guide to make your component available to the world!
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Contributing
sidebar_label: Contributing
title: Contributing to Airy
sidebar_label: Contributing to Airy
---

We ❤️ every form of contribution. The following document aims to provide enough
Expand Down
3 changes: 2 additions & 1 deletion docs/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ module.exports = {
},
{
'📚 Guides': [
'guides/contributing',
'guides/contributing-to-airy',
'guides/contributing-components',
'guides/analytics-demo',
'guides/monitoring',
'guides/backup',
Expand Down