diff --git a/VERSION b/VERSION
index 85e60ed180..7b52f5e517 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.34.0
+0.35.0
diff --git a/cli/go.sum b/cli/go.sum
index 633adc3c15..d50293126d 100644
--- a/cli/go.sum
+++ b/cli/go.sum
@@ -5,6 +5,7 @@ cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6A
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
+cloud.google.com/go v0.51.0 h1:PvKAVQWCtlGUSlZkGW3QLelKaWq7KYv/MW1EboG8bfM=
cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
diff --git a/cli/integration/version_test.go b/cli/integration/version_test.go
index 5fdbb14541..bb54c3cbfa 100644
--- a/cli/integration/version_test.go
+++ b/cli/integration/version_test.go
@@ -12,7 +12,7 @@ func TestVersion(t *testing.T) {
}
// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
- validVersionString := regexp.MustCompile(`Version: (develop|(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?), GitCommit: [0-9a-f]{5,40}\n$`)
+ validVersionString := regexp.MustCompile(`CLI version: (develop|(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?), GitCommit: [0-9a-f]{5,40}\n`)
if !validVersionString.MatchString(actual) {
t.Errorf("expected %s to be a valid version but was not", actual)
diff --git a/cli/pkg/cmd/BUILD b/cli/pkg/cmd/BUILD
index 424b39d7bc..034ebe2dd5 100644
--- a/cli/pkg/cmd/BUILD
+++ b/cli/pkg/cmd/BUILD
@@ -17,6 +17,7 @@ go_library(
"//cli/pkg/cmd/status",
"//cli/pkg/cmd/ui",
"//cli/pkg/cmd/upgrade",
+ "//cli/pkg/kube",
"//cli/pkg/workspace",
"@com_github_spf13_cobra//:cobra",
"@com_github_spf13_viper//:viper",
diff --git a/cli/pkg/cmd/config/config.go b/cli/pkg/cmd/config/config.go
index 0dda760395..80e31b66b1 100644
--- a/cli/pkg/cmd/config/config.go
+++ b/cli/pkg/cmd/config/config.go
@@ -6,6 +6,7 @@ import (
"cli/pkg/workspace"
"context"
"fmt"
+ "os"
"github.com/spf13/cobra"
"github.com/spf13/viper"
@@ -30,7 +31,11 @@ func applyConfig(cmd *cobra.Command, args []string) {
}
func ApplyConfig(workspacePath string) {
- dir := workspace.Init(workspacePath)
+ dir, err := workspace.Init(workspacePath)
+ if err != nil {
+ fmt.Println(err.Error())
+ os.Exit(1)
+ }
namespace := viper.GetString("namespace")
conf, err := dir.LoadAiryYaml()
if err != nil {
diff --git a/cli/pkg/cmd/create/BUILD b/cli/pkg/cmd/create/BUILD
index 38cc159ade..330066a3e6 100644
--- a/cli/pkg/cmd/create/BUILD
+++ b/cli/pkg/cmd/create/BUILD
@@ -3,9 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "create",
- srcs = [
- "create.go",
- ],
+ srcs = ["create.go"],
importpath = "cli/pkg/cmd/create",
visibility = ["//visibility:public"],
x_defs = {
@@ -22,12 +20,6 @@ go_library(
"@com_github_spf13_viper//:viper",
"@com_github_twinproduction_go_color//:go-color",
"@in_gopkg_segmentio_analytics_go_v3//:analytics-go_v3",
- "@io_k8s_api//batch/v1:go_default_library",
- "@io_k8s_api//core/v1:go_default_library",
- "@io_k8s_api//rbac/v1:go_default_library",
- "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
- "@io_k8s_apimachinery//pkg/watch:go_default_library",
- "@io_k8s_client_go//kubernetes:go_default_library",
],
)
diff --git a/cli/pkg/cmd/root.go b/cli/pkg/cmd/root.go
index e85caf7e56..4b369e23b9 100644
--- a/cli/pkg/cmd/root.go
+++ b/cli/pkg/cmd/root.go
@@ -7,6 +7,7 @@ import (
"cli/pkg/cmd/status"
"cli/pkg/cmd/ui"
"cli/pkg/cmd/upgrade"
+ "cli/pkg/kube"
"cli/pkg/workspace"
"fmt"
"io/ioutil"
@@ -35,7 +36,11 @@ var RootCmd = &cobra.Command{
TraverseChildren: true,
PersistentPreRun: func(cmd *cobra.Command, args []string) {
if cmd.Name() != "create" && cmd.Name() != "version" {
- workspace.Init(cliConfigDir)
+ _, err := workspace.Init(cliConfigDir)
+ if err != nil {
+ fmt.Println(err.Error())
+ os.Exit(1)
+ }
}
if !strings.Contains(Version, "alpha") {
cliVersion()
@@ -73,7 +78,30 @@ var versionCmd = &cobra.Command{
Short: "Prints version information",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- fmt.Printf("Version: %s, GitCommit: %s\n", Version, CommitSHA1)
+ fmt.Printf("CLI version: %s, GitCommit: %s\n", Version, CommitSHA1)
+
+ wsPath, _ := cmd.Flags().GetString("workspace")
+ dir, err := workspace.Init(wsPath)
+ if err != nil {
+ return
+ } else {
+ dir.LoadAiryYaml()
+ kubeCtx := kube.Load()
+ set, err := kubeCtx.GetClientSet()
+ if err != nil {
+ fmt.Println("Unable to retrieve the client set:", err.Error())
+ return
+ }
+
+ coreConfig, err := kube.GetCmData("core-config", viper.GetString("namespace"), set)
+ if err != nil {
+ fmt.Println("Unable to retrieve the kubernetes config map:", err.Error())
+ } else if airyVersion, ok := coreConfig["APP_IMAGE_TAG"]; ok {
+ fmt.Println("Airy instance version: ", airyVersion)
+ } else {
+ fmt.Println("Warning: Unable to retrieve the version of the Airy Core instance from the config map.")
+ }
+ }
},
}
diff --git a/cli/pkg/cmd/status/status.go b/cli/pkg/cmd/status/status.go
index b45835d7ff..5885e9b606 100644
--- a/cli/pkg/cmd/status/status.go
+++ b/cli/pkg/cmd/status/status.go
@@ -31,7 +31,7 @@ func status(cmd *cobra.Command, args []string) {
if err != nil {
console.Exit("Could not get kubernetes client", err)
}
- cm, _ := clientset.CoreV1().ConfigMaps(viper.GetString("namespace")).Get(context.TODO(), "api-config", v1.GetOptions{})
+ cm, _ := clientset.CoreV1().ConfigMaps(viper.GetString("namespace")).Get(context.TODO(), "security", v1.GetOptions{})
c.Token = cm.Data["systemToken"]
@@ -42,13 +42,19 @@ func status(cmd *cobra.Command, args []string) {
}
w := tabwriter.NewWriter(os.Stdout, 1, 1, 1, ' ', 0)
+ fmt.Fprintf(w, "service\tenabled\thealthy\n")
- for k, v := range res.Components {
- if v["enabled"].(bool) {
- fmt.Fprintf(w, "%s\t\u2713\n", k)
- } else {
- fmt.Fprintf(w, "%s\t\u2717\n", k)
+ for serviceName, service := range res.Services {
+ enabledStr := "β"
+ if service.Enabled {
+ enabledStr = "β "
}
+ healthyStr := "β"
+ if service.Healthy {
+ healthyStr = "β "
+ }
+
+ fmt.Fprintf(w, "%s\t%s\t%s\n", serviceName, enabledStr, healthyStr)
}
w.Flush()
diff --git a/cli/pkg/cmd/upgrade/BUILD b/cli/pkg/cmd/upgrade/BUILD
index 06b6d0432f..2e65e2047f 100644
--- a/cli/pkg/cmd/upgrade/BUILD
+++ b/cli/pkg/cmd/upgrade/BUILD
@@ -14,18 +14,10 @@ go_library(
"//cli/pkg/console",
"//cli/pkg/helm",
"//cli/pkg/kube",
- "//cli/pkg/providers",
"//cli/pkg/workspace",
"//infrastructure/lib/go/k8s/util",
"@com_github_spf13_cobra//:cobra",
"@com_github_spf13_viper//:viper",
- "@com_github_twinproduction_go_color//:go-color",
- "@io_k8s_api//batch/v1:go_default_library",
- "@io_k8s_api//core/v1:go_default_library",
- "@io_k8s_api//rbac/v1:go_default_library",
- "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
- "@io_k8s_apimachinery//pkg/watch:go_default_library",
- "@io_k8s_client_go//kubernetes:go_default_library",
],
)
diff --git a/cli/pkg/cmd/upgrade/upgrade.go b/cli/pkg/cmd/upgrade/upgrade.go
index 07c2eb9c0d..bb40b57334 100644
--- a/cli/pkg/cmd/upgrade/upgrade.go
+++ b/cli/pkg/cmd/upgrade/upgrade.go
@@ -7,6 +7,7 @@ import (
"cli/pkg/kube"
"cli/pkg/workspace"
"fmt"
+ "os"
"github.com/airyhq/airy/infrastructure/lib/go/k8s/util"
@@ -38,7 +39,11 @@ func upgrade(cmd *cobra.Command, args []string) {
if err != nil {
console.Exit("Unable to find suitable workspace :", err)
}
- dir := workspace.Init(workspacePath)
+ dir, err := workspace.Init(workspacePath)
+ if err != nil {
+ fmt.Println(err.Error())
+ os.Exit(1)
+ }
kubeCtx := kube.Load()
clientset, err := kubeCtx.GetClientSet()
namespace := viper.GetString("namespace")
diff --git a/cli/pkg/console/output.go b/cli/pkg/console/output.go
index 49c832737b..aeb837e14c 100644
--- a/cli/pkg/console/output.go
+++ b/cli/pkg/console/output.go
@@ -17,7 +17,6 @@ func GetMiddleware(f func(string) string) StdWriter {
func (s StdWriter) Write(p []byte) (int, error) {
_, err := fmt.Print(s.f(string(p)))
if err != nil {
- fmt.Print("HNA")
Exit(err)
}
return len(p), err
diff --git a/cli/pkg/helm/BUILD b/cli/pkg/helm/BUILD
index 859cc9979a..2e1a495a22 100644
--- a/cli/pkg/helm/BUILD
+++ b/cli/pkg/helm/BUILD
@@ -6,7 +6,6 @@ go_library(
importpath = "cli/pkg/helm",
visibility = ["//visibility:public"],
deps = [
- "//cli/pkg/kube",
"//infrastructure/lib/go/k8s/util",
"@io_k8s_api//batch/v1:go_default_library",
"@io_k8s_api//core/v1:go_default_library",
diff --git a/cli/pkg/helm/helm.go b/cli/pkg/helm/helm.go
index e4a75d4682..8c0172c59f 100644
--- a/cli/pkg/helm/helm.go
+++ b/cli/pkg/helm/helm.go
@@ -79,7 +79,7 @@ func (h *Helm) Setup() error {
}
func (h *Helm) InstallCharts() error {
- chartURL := "https://airy-core-helm-charts.s3.amazonaws.com/stable/airy-" + h.version + ".tgz"
+ chartURL := "https://airy-core-helm-charts.s3.amazonaws.com/stable/airy-0.33.0.tgz"
return h.runHelm(append([]string{"install",
"--values", "/apps/config/airy-config-map.yaml",
"--namespace", h.namespace,
diff --git a/cli/pkg/kube/BUILD b/cli/pkg/kube/BUILD
index 1b69d84d82..f7ea35345e 100644
--- a/cli/pkg/kube/BUILD
+++ b/cli/pkg/kube/BUILD
@@ -9,12 +9,11 @@ go_library(
importpath = "cli/pkg/kube",
visibility = ["//visibility:public"],
deps = [
- "//cli/pkg/workspace",
"@com_github_spf13_viper//:viper",
- "@in_gopkg_yaml_v2//:yaml_v2",
"@io_k8s_api//core/v1:go_default_library",
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
"@io_k8s_client_go//kubernetes:go_default_library",
+ "@io_k8s_client_go//plugin/pkg/client/auth/gcp:go_default_library",
"@io_k8s_client_go//tools/clientcmd:go_default_library",
],
)
diff --git a/cli/pkg/kube/context.go b/cli/pkg/kube/context.go
index 0c59c34c6b..b95ccdc5fc 100644
--- a/cli/pkg/kube/context.go
+++ b/cli/pkg/kube/context.go
@@ -2,8 +2,10 @@ package kube
import (
"errors"
+
"github.com/spf13/viper"
"k8s.io/client-go/kubernetes"
+ _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
"k8s.io/client-go/tools/clientcmd"
)
diff --git a/cli/pkg/workspace/init.go b/cli/pkg/workspace/init.go
index f22ff1a8dd..e6751f1345 100644
--- a/cli/pkg/workspace/init.go
+++ b/cli/pkg/workspace/init.go
@@ -3,34 +3,33 @@ package workspace
import (
"cli/pkg/workspace/template"
"fmt"
- "github.com/spf13/viper"
"os"
"path/filepath"
+
+ "github.com/spf13/viper"
)
-func Init(path string) ConfigDir {
+func Init(path string) (ConfigDir, error) {
viper.AddConfigPath(getConfigPath(path))
viper.SetConfigType("yaml")
viper.SetConfigName(cliConfigFileName)
if err := viper.ReadInConfig(); err != nil {
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
- fmt.Println(err)
- fmt.Println("the current directory is not an airy workspace directory")
+ err = fmt.Errorf("%w\nthe current directory is not an airy workspace directory", err)
} else {
- fmt.Println("invalid configuration: ", err)
+ err = fmt.Errorf("invalid configuration: %w", err)
}
- os.Exit(1)
+ return ConfigDir{}, err
}
dir := ConfigDir{Path: path}
if _, err := os.Stat(dir.GetAiryYaml()); os.IsNotExist(err) {
- fmt.Println("the current directory is not an airy workspace directory")
- os.Exit(1)
+ return dir, fmt.Errorf("the current directory is not an airy workspace directory")
}
- return dir
+ return dir, nil
}
func getConfigPath(path string) string {
@@ -57,7 +56,6 @@ func Create(path string, data template.Variables) (ConfigDir, error) {
}
}
-
if err := template.CopyToDir(path, data); err != nil {
return ConfigDir{}, err
}
diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md
index f6945909be..4d160d770c 100644
--- a/docs/docs/changelog.md
+++ b/docs/docs/changelog.md
@@ -3,40 +3,88 @@ title: Changelog
sidebar_label: π Changelog
---
-## 0.34.0
+## 0.35.0
#### Changes
+- [[#2503](https://github.com/airyhq/airy/issues/2503)] Add capability for resource limits for components [[#2541](https://github.com/airyhq/airy/pull/2541)]
+
#### π Features
-- [[#2518](https://github.com/airyhq/airy/issues/2518)] Add fargate annotation [[#2540](https://github.com/airyhq/airy/pull/2540)]
-- Add CLI outdated version warning [[#2529](https://github.com/airyhq/airy/pull/2529)]
+- Custom message colors chatplugin + Documentation [[#2585](https://github.com/airyhq/airy/pull/2585)]
+- [[#2108](https://github.com/airyhq/airy/issues/2108)] render attachments via whatsapp [[#2574](https://github.com/airyhq/airy/pull/2574)]
+- [[#2518](https://github.com/airyhq/airy/issues/2518)] Add terraform code for core deployment [[#2555](https://github.com/airyhq/airy/pull/2555)]
+- [[#2563](https://github.com/airyhq/airy/issues/2563)] Allow for disabling emojis in the chatplugin [[#2564](https://github.com/airyhq/airy/pull/2564)]
+- [[#2560](https://github.com/airyhq/airy/issues/2560)] Dev\_cli.sh fails to apply the config [[#2561](https://github.com/airyhq/airy/pull/2561)]
+- Print airy core version with version command [[#2537](https://github.com/airyhq/airy/pull/2537)]
#### π Bug Fixes
-- [[#2434](https://github.com/airyhq/airy/issues/2434)] Fix broken instagram Facebook inbox ingestion [[#2535](https://github.com/airyhq/airy/pull/2535)]
-- [2457] Fix upgrade to same version [[#2538](https://github.com/airyhq/airy/pull/2538)]
-- [[#2510](https://github.com/airyhq/airy/issues/2510)] Improve error logging for helm install [[#2522](https://github.com/airyhq/airy/pull/2522)]
-- [[#2255](https://github.com/airyhq/airy/issues/2255)] Fix helm chart url [[#2525](https://github.com/airyhq/airy/pull/2525)]
-- [[#2523](https://github.com/airyhq/airy/issues/2523)] Fix VERSION and add changelog [[#2524](https://github.com/airyhq/airy/pull/2524)]
-- [[#2473](https://github.com/airyhq/airy/issues/2473)] fix failing cypress test [[#2507](https://github.com/airyhq/airy/pull/2507)]
+- fixed input accept formatting [[#2584](https://github.com/airyhq/airy/pull/2584)]
+- [[#2576](https://github.com/airyhq/airy/issues/2576)] Render Survey response Google Business Messages [[#2578](https://github.com/airyhq/airy/pull/2578)]
+- [[#2544](https://github.com/airyhq/airy/issues/2544)] Include the analytics demo files in the jupyter hub [[#2545](https://github.com/airyhq/airy/pull/2545)]
+- [[#2557](https://github.com/airyhq/airy/issues/2557)] Fix jumping conversationlist [[#2558](https://github.com/airyhq/airy/pull/2558)]
+- [[#2548](https://github.com/airyhq/airy/issues/2548)] Use the cli with helm [[#2551](https://github.com/airyhq/airy/pull/2551)]
+- [[#2511](https://github.com/airyhq/airy/issues/2511)] Fix Airy status command [[#2542](https://github.com/airyhq/airy/pull/2542)]
+
+#### π Documentation
+
+- [[#2511](https://github.com/airyhq/airy/issues/2511)] Fix docs for helm upgrade [[#2547](https://github.com/airyhq/airy/pull/2547)]
#### π§° Maintenance
-- Bump react-redux from 7.2.5 to 7.2.6 [[#2539](https://github.com/airyhq/airy/pull/2539)]
-- Bump reselect from 4.0.0 to 4.1.1 [[#2533](https://github.com/airyhq/airy/pull/2533)]
-- Bump sass-loader from 12.1.0 to 12.3.0 [[#2534](https://github.com/airyhq/airy/pull/2534)]
-- Bump @types/react-dom from 17.0.9 to 17.0.10 [[#2526](https://github.com/airyhq/airy/pull/2526)]
-- Bump react-markdown from 7.0.1 to 7.1.0 [[#2527](https://github.com/airyhq/airy/pull/2527)]
-- Bump webpack from 5.54.0 to 5.59.1 [[#2517](https://github.com/airyhq/airy/pull/2517)]
+- Bump @types/react-dom from 17.0.10 to 17.0.11 [[#2572](https://github.com/airyhq/airy/pull/2572)]
+- Bump style-loader from 3.3.0 to 3.3.1 [[#2573](https://github.com/airyhq/airy/pull/2573)]
+- Bump cypress from 8.6.0 to 8.7.0 [[#2567](https://github.com/airyhq/airy/pull/2567)]
+- Bump babel-loader from 8.2.2 to 8.2.3 [[#2568](https://github.com/airyhq/airy/pull/2568)]
+- Bump @types/react from 17.0.20 to 17.0.34 [[#2553](https://github.com/airyhq/airy/pull/2553)]
+- Bump sass from 1.43.2 to 1.43.4 [[#2565](https://github.com/airyhq/airy/pull/2565)]
+- Bump node-fetch from 2.6.2 to 3.0.0 [[#2450](https://github.com/airyhq/airy/pull/2450)]
+- Bump html-webpack-plugin from 5.3.2 to 5.5.0 [[#2552](https://github.com/airyhq/airy/pull/2552)]
+- Bump prettier from 2.3.2 to 2.4.1 [[#2532](https://github.com/airyhq/airy/pull/2532)]
#### Airy CLI
You can download the Airy CLI for your operating system from the following links:
-[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.33.1/darwin/amd64/airy)
-[Linux](https://airy-core-binaries.s3.amazonaws.com/0.33.1/linux/amd64/airy)
-[Windows](https://airy-core-binaries.s3.amazonaws.com/0.33.1/windows/amd64/airy.exe)
+[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.34.1/darwin/amd64/airy)
+[Linux](https://airy-core-binaries.s3.amazonaws.com/0.34.1/linux/amd64/airy)
+[Windows](https://airy-core-binaries.s3.amazonaws.com/0.34.1/windows/amd64/airy.exe)
+
+## 0.34.0
+
+#### Changes
+
+#### π Features
+
+- [[#2518](https://github.com/airyhq/airy/issues/2518)] Add fargate annotation [[#2540](https://github.com/airyhq/airy/pull/2540)]
+- [[#2305](https://github.com/airyhq/airy/issues/2305)] Add CLI outdated version warning [[#2529](https://github.com/airyhq/airy/pull/2529)]
+
+#### π Bug Fixes
+
+- [[#2434](https://github.com/airyhq/airy/issues/2434)] Fix broken instagram Facebook inbox ingestion [[#2535](https://github.com/airyhq/airy/pull/2535)]
+- [[#2457](https://github.com/airyhq/airy/issues/2457)] Fix upgrade to same version [[#2538](https://github.com/airyhq/airy/pull/2538)]
+- [[#2510](https://github.com/airyhq/airy/issues/2510)] Improve error logging for helm install [[#2522](https://github.com/airyhq/airy/pull/2522)]
+- [[#2255](https://github.com/airyhq/airy/issues/2255)] Fix helm chart url [[#2525](https://github.com/airyhq/airy/pull/2525)]
+- [[#2523](https://github.com/airyhq/airy/issues/2523)] Fix VERSION and add changelog [[#2524](https://github.com/airyhq/airy/pull/2524)]
+- [[#2473](https://github.com/airyhq/airy/issues/2473)] fix failing cypress test [[#2507](https://github.com/airyhq/airy/pull/2507)]
+
+#### π§° Maintenance
+
+- Bump react-redux from 7.2.5 to 7.2.6 [[#2539](https://github.com/airyhq/airy/pull/2539)]
+- Bump reselect from 4.0.0 to 4.1.1 [[#2533](https://github.com/airyhq/airy/pull/2533)]
+- Bump sass-loader from 12.1.0 to 12.3.0 [[#2534](https://github.com/airyhq/airy/pull/2534)]
+- Bump @types/react-dom from 17.0.9 to 17.0.10 [[#2526](https://github.com/airyhq/airy/pull/2526)]
+- Bump react-markdown from 7.0.1 to 7.1.0 [[#2527](https://github.com/airyhq/airy/pull/2527)]
+- Bump webpack from 5.54.0 to 5.59.1 [[#2517](https://github.com/airyhq/airy/pull/2517)]
+
+#### Airy CLI
+
+You can download the Airy CLI for your operating system from the following links:
+
+[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.34.0/darwin/amd64/airy)
+[Linux](https://airy-core-binaries.s3.amazonaws.com/0.34.0/linux/amd64/airy)
+[Windows](https://airy-core-binaries.s3.amazonaws.com/0.34.0/windows/amd64/airy.exe)
## 0.33.0
@@ -1194,69 +1242,3 @@ You can download the Airy CLI for your operating system from the following links
[Linux](https://airy-core-binaries.s3.amazonaws.com/0.13.0/linux/amd64/airy)
[Windows](https://airy-core-binaries.s3.amazonaws.com/0.13.0/windows/amd64/airy.exe)
-## 0.12.0
-
-#### Changes
-
-- [[#1132](https://github.com/airyhq/airy/issues/1132)] Fix missing , in nginx [[#1133](https://github.com/airyhq/airy/pull/1133)]
-- [[#1014](https://github.com/airyhq/airy/issues/1014)] Deploy the helm charts [[#1084](https://github.com/airyhq/airy/pull/1084)]
-- [[#1124](https://github.com/airyhq/airy/issues/1124)] Template endpoints return 404 [[#1125](https://github.com/airyhq/airy/pull/1125)]
-
-#### π Features
-
-- [[#1113](https://github.com/airyhq/airy/issues/1113)] Chat Plugin: keep text in input bar if⦠[[#1143](https://github.com/airyhq/airy/pull/1143)]
-- [[#1000](https://github.com/airyhq/airy/issues/1000)] ConversationList scrolls over TopBar [[#1129](https://github.com/airyhq/airy/pull/1129)]
-- [[#983](https://github.com/airyhq/airy/issues/983)] The login call should not send the auth⦠[[#1127](https://github.com/airyhq/airy/pull/1127)]
-- [[#1126](https://github.com/airyhq/airy/issues/1126)] /templates.info And /templates.update are returning 404 [[#1128](https://github.com/airyhq/airy/pull/1128)]
-- [[#660](https://github.com/airyhq/airy/issues/660)] Enable users to connect via Airy Live Chat [[#1078](https://github.com/airyhq/airy/pull/1078)]
-- [[#1117](https://github.com/airyhq/airy/issues/1117)] Template docs are not accessible [[#1118](https://github.com/airyhq/airy/pull/1118)]
-
-#### π Bug Fixes
-
-- [[#1174](https://github.com/airyhq/airy/issues/1174)] Build the right cli version on develop [[#1177](https://github.com/airyhq/airy/pull/1177)]
-- [[#1165](https://github.com/airyhq/airy/issues/1165)] Fix template endpoint content field [[#1166](https://github.com/airyhq/airy/pull/1166)]
-- [[#1161](https://github.com/airyhq/airy/issues/1161)] Fix metadata 404 [[#1162](https://github.com/airyhq/airy/pull/1162)]
-- [[#1152](https://github.com/airyhq/airy/issues/1152)] Fix conditional config apply [[#1153](https://github.com/airyhq/airy/pull/1153)]
-- [[#1142](https://github.com/airyhq/airy/issues/1142)] Backbutton \& search aligned [[#1149](https://github.com/airyhq/airy/pull/1149)]
-- [[#1034](https://github.com/airyhq/airy/issues/1034)] Tag empty state has strange scrolling⦠[[#1141](https://github.com/airyhq/airy/pull/1141)]
-- [[#1112](https://github.com/airyhq/airy/issues/1112)] fixed highlight in inbox [[#1119](https://github.com/airyhq/airy/pull/1119)]
-- [[#1120](https://github.com/airyhq/airy/issues/1120)] Fix Shellcheck [[#1121](https://github.com/airyhq/airy/pull/1121)]
-
-#### π Documentation
-
-- [[#1094](https://github.com/airyhq/airy/issues/1094)] Minor UI improvements to the docs [[#1131](https://github.com/airyhq/airy/pull/1131)]
-
-#### π§° Maintenance
-
-- Revert "Bump webpack-dev-middleware from 3.7.2 to 4.1.0" [[#1172](https://github.com/airyhq/airy/pull/1172)]
-- Bump elliptic from 6.5.3 to 6.5.4 in /docs [[#1170](https://github.com/airyhq/airy/pull/1170)]
-- Bump elliptic from 6.5.3 to 6.5.4 [[#1171](https://github.com/airyhq/airy/pull/1171)]
-- Bump terser-webpack-plugin from 2.3.6 to 4.2.3 [[#1169](https://github.com/airyhq/airy/pull/1169)]
-- Bump html-webpack-plugin from 4.2.0 to 4.5.2 [[#1168](https://github.com/airyhq/airy/pull/1168)]
-- Bump webpack-dev-middleware from 3.7.2 to 4.1.0 [[#1154](https://github.com/airyhq/airy/pull/1154)]
-- Bump react from 16.12.0 to 16.14.0 [[#1167](https://github.com/airyhq/airy/pull/1167)]
-- Restructure cli for building providers [[#1159](https://github.com/airyhq/airy/pull/1159)]
-- Bump react-router-dom from 5.1.2 to 5.2.0 [[#1155](https://github.com/airyhq/airy/pull/1155)]
-- Bump prettier from 1.19.1 to 2.2.1 [[#1147](https://github.com/airyhq/airy/pull/1147)]
-- Bump lodash-es from 4.17.15 to 4.17.21 [[#1156](https://github.com/airyhq/airy/pull/1156)]
-- Bump @types/react-router-dom from 5.1.3 to 5.1.7 [[#1157](https://github.com/airyhq/airy/pull/1157)]
-- Restructure cli to prepare for providers [[#1151](https://github.com/airyhq/airy/pull/1151)]
-- Bump eslint-plugin-react from 7.21.5 to 7.22.0 [[#1148](https://github.com/airyhq/airy/pull/1148)]
-- Bump eslint from 7.16.0 to 7.21.0 [[#1144](https://github.com/airyhq/airy/pull/1144)]
-- Bump file-loader from 6.0.0 to 6.2.0 [[#1145](https://github.com/airyhq/airy/pull/1145)]
-- Bump @bazel/typescript from 3.2.0 to 3.2.1 [[#1146](https://github.com/airyhq/airy/pull/1146)]
-- Bump react-hot-loader from 4.12.20 to 4.13.0 [[#1138](https://github.com/airyhq/airy/pull/1138)]
-- Bump @types/react-redux from 7.1.3 to 7.1.16 [[#1136](https://github.com/airyhq/airy/pull/1136)]
-- Bump @types/lodash-es from 4.17.3 to 4.17.4 [[#1137](https://github.com/airyhq/airy/pull/1137)]
-- Bump preact from 10.5.7 to 10.5.12 [[#1139](https://github.com/airyhq/airy/pull/1139)]
-- Bump react-redux from 7.1.3 to 7.2.2 [[#1140](https://github.com/airyhq/airy/pull/1140)]
-- Add dependabot config [[#1135](https://github.com/airyhq/airy/pull/1135)]
-
-#### Airy CLI
-
-You can download the Airy CLI for your operating system from the following links:
-
-[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.12.0/darwin/amd64/airy)
-[Linux](https://airy-core-binaries.s3.amazonaws.com/0.12.0/linux/amd64/airy)
-[Windows](https://airy-core-binaries.s3.amazonaws.com/0.12.0/windows/amd64/airy.exe)
-
diff --git a/docs/docs/getting-started/installation/configuration.md b/docs/docs/getting-started/installation/configuration.md
index f14051783d..cc2a94b43a 100644
--- a/docs/docs/getting-started/installation/configuration.md
+++ b/docs/docs/getting-started/installation/configuration.md
@@ -22,6 +22,10 @@ Your Airy Core instance will start and stop components according to your
configuration. For example, if you do not wish to start Facebook components, it
is enough not to provide any Facebook specific configuration.
+:::note
+If you installed Airy with Helm, then you need to [setup your workspace directory](/getting-started/installation/helm#workspace-setup), before you can use the CLI.
+:::
+
Now let's have a look at the different sections so you can make the changes you
are looking for.
diff --git a/docs/docs/getting-started/installation/helm.md b/docs/docs/getting-started/installation/helm.md
index 68dc10c676..6f66a55688 100644
--- a/docs/docs/getting-started/installation/helm.md
+++ b/docs/docs/getting-started/installation/helm.md
@@ -28,13 +28,14 @@ You will also need the [Helm](https://helm.sh/docs/intro/quickstart/) and [Kubec
Make sure that you can access the cluster running:
```sh
-$ kubectl get pods
+kubectl get pods
No resources found in default namespace.
-$ helm list
+
+helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
```
-## Deploy Airy Core
+## Install
Deploy Airy Core with the latest version. You can also configure a specific version
@@ -65,12 +66,12 @@ ingress-controller:
Run the following command to upgrade your Airy Core installation and setup Let's Encrypt:
```sh
-$ helm upgrade airy https://airy-core-helm-charts.s3.amazonaws.com/testing/airy-${VERSION}.tgz --values ./airy.yaml
+helm upgrade airy https://airy-core-helm-charts.s3.amazonaws.com/stable/airy-${VERSION}.tgz --values ./airy.yaml
```
After that you should be able to access your `Airy Core` instance through HTTPS, in this example on https://awesomechat.airy.co.
-## Customization
+## Customize
Deploying `Airy Core` with Helm gives flexibility to customize your installation.
@@ -154,6 +155,34 @@ VERSION=$(curl -L -s https://airy-core-binaries.s3.amazonaws.com/stable.txt)
helm install airy https://airy-core-helm-charts.s3.amazonaws.com/stable/${VERSION}.tgz --timeout 10m --set global.containerRegistry=my-docker-registry
```
+## Workspace setup
+
+When installing with Helm, a workspace directory is not created and therefore you cannot use the `Airy CLI` with your `Airy Core` installation, without setting up your workspace directory first. The `Airy CLI` is needed to apply configuration, to get the status of the components and to interact with the API.
+
+In order for the CLI to recognize a workspace directory, you need to have two files there:
+
+- `cli.yaml` - Configuration on how the CLI can access the cluster.
+
+ - `apihost` - The loadBalancer or the hostname on which the API can be reached.
+ - `kubeconfig` - The path to the Kubernetes config file.
+ - `contextname` - The context for the cluster, inside the kubeconfig file.
+ - `namespace` - The namespace where `Airy Core` is installed.
+
+- `airy.yaml` - Values you used for deploying the Helm chart. The file can also be empty, but it needs to exist.
+
+Example of the `cli.yaml` file.
+
+```
+apihost: https://my-airy-core-fqdn
+contextname: gke_us-central1-c_awesomechat
+kubeconfig: /home/user/.kube/config
+namespace: default
+```
+
+## Upgrade
+
+For upgrading your `Airy Core` instance using helm, refer to our [upgrade document](/getting-started/upgrade#upgrade-using-helm).
+
## Troubleshooting
To view your existing Helm installation run `helm list`.
diff --git a/docs/docs/getting-started/installation/introduction.md b/docs/docs/getting-started/installation/introduction.md
index cd00050f09..d2a66ca926 100644
--- a/docs/docs/getting-started/installation/introduction.md
+++ b/docs/docs/getting-started/installation/introduction.md
@@ -7,6 +7,7 @@ import TLDR from "@site/src/components/TLDR";
import ButtonBoxList from "@site/src/components/ButtonBoxList";
import ButtonBox from "@site/src/components/ButtonBox";
import AwsSVG from "@site/static/icons/aws.svg";
+import TerraformSVG from "@site/static/icons/terraform.svg";
import Minikube from "@site/static/icons/minikube.svg";
import RocketSVG from "@site/static/icons/rocket.svg";
import HelmSVG from "@site/static/icons/helm.svg";
@@ -61,4 +62,10 @@ title='Production ready environment with AWS'
description='Step by step guide to run Airy Core on AWS'
link='getting-started/installation/aws'
/>
+}
+title='Cloud deployment with Terraform'
+description='Step by step guide to run Airy Core in the cloud managed by Terraform'
+link='getting-started/installation/terraform'
+/>
diff --git a/docs/docs/getting-started/installation/minikube.md b/docs/docs/getting-started/installation/minikube.md
index 87ee624b31..9f94ff837f 100644
--- a/docs/docs/getting-started/installation/minikube.md
+++ b/docs/docs/getting-started/installation/minikube.md
@@ -16,7 +16,7 @@ your local machine using [minikube](https://minikube.sigs.k8s.io/).
## Create a minikube cluster
-First install minikube using [their documentation](https://kubernetes.io/de/docs/tasks/tools/install-minikube/). Currently supported versions are: v1.19.0, v1.20.0, v1.21.0 and v1.22.0. If you already have it installed make sure that your version is in line with the supported versions.
+First install minikube using [their documentation](https://kubernetes.io/de/docs/tasks/tools/install-minikube/). Minikube version v1.19.0 or higher is required.
Next you also need to install the [Airy CLI](cli/introduction.md). Now you can run this command, which will create a new
minikube cluster on your system and install Airy core on it:
diff --git a/docs/docs/getting-started/installation/terraform.md b/docs/docs/getting-started/installation/terraform.md
new file mode 100644
index 0000000000..60cbd78f39
--- /dev/null
+++ b/docs/docs/getting-started/installation/terraform.md
@@ -0,0 +1,54 @@
+---
+title: Run Airy Core on AWS with Terraform
+sidebar_label: Terraform
+---
+
+## Requirements
+
+- [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli) v1.0.0+
+- [Airy CLI](https://airy.co/docs/core/cli/introduction) v0.34.0+
+- [SSH key](https://www.ssh.com/academy/ssh/keygen) in `~/.ssh/id_rsa.pub`
+- [Kubectl](https://kubernetes.io/docs/tasks/tools/) (optional)
+
+## Create the Kubernetes cluster
+
+In case you already have a cluster running you can skip to the next section.
+
+### Amazon Web Services
+
+You need to provide Terraform with the AWS credentials for your IAM Role. If
+you don't know how to create one, [follow these
+instructions](https://aws.amazon.com/premiumsupport/knowledge-center/create-access-key/).
+They have to be put into a `terraform.tfvars` file in `terraform/kubernetes` that looks contains:
+
+```
+aws_access_key = ""
+aws_secret_key = ""
+```
+
+If you want to deploy the EKS cluster in your existing VPC you have to override the
+`vpc_id`, `subnets` and `fargate_subnets` variables with the outputs from your
+vpc and set `create_vpc=false` in the Airy Core module.
+
+```
+terraform init
+terraform apply
+```
+
+## Install Airy Helm chart
+
+After the Kubernetes cluster has been created we can deploy the Airy Helm chart
+to it. Change to the `terraform/main` directory and make sure the `.kubeconfig`
+file is there.
+
+You can [configure](https://airy.co/docs/core/getting-started/installation/configuration) your instance by making changes to `infrastructure/terraform/main/files/values.yaml`
+
+If you want to deploy the stateless apps with AWS Fargate you can add
+`workerType: fargate` to the `values.yaml`
+
+Finally, you need to initialize the Terraform workspace and run apply.
+
+```
+terraform init
+terraform apply
+```
diff --git a/docs/docs/getting-started/upgrade.md b/docs/docs/getting-started/upgrade.md
index 4c1e0dd2ed..e38d1848ca 100644
--- a/docs/docs/getting-started/upgrade.md
+++ b/docs/docs/getting-started/upgrade.md
@@ -63,7 +63,16 @@ applied configuration for "security"
Writing the new version into the configuration file.
Copying the configuration file in the Airy Core K8s cluster.
-β Aity Core upgraded
+β Airy Core upgraded
+```
+
+## Upgrade using Helm
+
+If you used Helm to deploy `Airy Core`, you can upgrade with the `helm upgrade` command:
+
+```sh
+VERSION=$(curl -L -s https://airy-core-binaries.s3.amazonaws.com/stable.txt)
+helm upgrade airy https://airy-core-helm-charts.s3.amazonaws.com/stable/airy-${VERSION}.tgz --values ./airy.yaml
```
## Cleanup the upgrade
diff --git a/docs/docs/sources/chatplugin/customization.md b/docs/docs/sources/chatplugin/customization.md
index 2d02e725cd..7a58653175 100644
--- a/docs/docs/sources/chatplugin/customization.md
+++ b/docs/docs/sources/chatplugin/customization.md
@@ -44,6 +44,10 @@ If you are happy with your customization, copy it and add this code inside the t
| primaryColor | string | Set your primary color as the topbar, border of `textArea`, Start new Conversation button text and border color, or text color of `buttons` |
| accentColor | string | Set your accent color as the `sendButton` |
| backgroundColor | string | Set the background color of the entire Airy Chat Plugin |
+| outboundMessageColor | string | Set the background color of the outbound messages in the Airy Chat Plugin |
+| inboundMessageColor | string | Set the background color of the inbound messages in the Airy Chat Plugin |
+| outboundMessageTextColor | string | Set the text color of the outbound messages in the Airy Chat Plugin |
+| inboundMessageTextColor | string | Set the text color of the inbound messages in the Airy Chat Plugin |
| height | number | Set the height of the entire Airy Chat Plugin |
| width | number | Set the width of the entire Airy Chat Plugin |
| bubbleIcon | URL | Set your company icon which appears on the button that opens and closes the Airy Chat Plugin |
diff --git a/docs/src/components/ButtonBox/index.js b/docs/src/components/ButtonBox/index.js
index 71029227a5..16aaa0a6e3 100644
--- a/docs/src/components/ButtonBox/index.js
+++ b/docs/src/components/ButtonBox/index.js
@@ -39,7 +39,8 @@ const ButtonBox = ({
+ style={{backgroundColor: customizedBackgroundColor, boxShadow: `0px 0px 0px 4px ${customizedHoverColor}`}}
+ >
{icon}