Skip to content

Commit bba57fb

Browse files
authored
feat: Monorepo (#1)
1 parent 41910a2 commit bba57fb

39 files changed

+4121
-8
lines changed

README.md

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1-
Flipt GitOps Guide Project
2-
--------------------------
1+
Flipt Guide Projects
2+
-------------
3+
4+
This repository contains a collection of projects which accomodate our guides in our [documentation](https://flipt.io/docs/).
5+
6+
### Get Going with GitOps
37

48
This is a Go project which supports our guide to [Get Going with GitOps](https://www.flipt.io/docs/guides/get-going-with-gitops) and Flipt.
59

6-
## Requirements
10+
Source: [get-going-gitops](get-going-gitops)
711

8-
- Go
12+
### Evaluating with References
913

10-
## Run
14+
This is a Go/React project which supports our guide to [Evaluating with References](/guides/using-references) and Flipt, demonstrating the value of Flipt's new reference support with the Git backend.
1115

12-
```bash
13-
go run main.go
14-
```
16+
Source: [dashboard-app](dashboard-app)

dashboard-app/.dockerignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
bin/
2+
ui/dist
3+
ui/node_modules
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Deploy preview environment on Koyeb
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
8+
jobs:
9+
deploy_preview:
10+
runs-on: ubuntu-latest
11+
concurrency:
12+
group: "${{ github.head_ref }}"
13+
cancel-in-progress: true
14+
steps:
15+
- name: Install and configure the Koyeb CLI
16+
uses: koyeb-community/install-koyeb-cli@v2
17+
with:
18+
api_token: "${{ secrets.KOYEB_API_TOKEN }}"
19+
20+
- name: Deploy the application to Koyeb
21+
uses: koyeb/action-git-deploy@v1
22+
with:
23+
app-name: "dashboard-app-preview-${{ github.head_ref }}"
24+
service-name: ${{ github.head_ref }}
25+
service-ports: "8081:http"
26+
service-routes: "/:8081"
27+
service-env: "FLIPT_CLIENT_REFERENCE=${{ github.head_ref }},FLIPT_ADDRESS=${{ secrets.FLIPT_ADDRESS }}"
28+
docker: ghcr.io/flipt-io/dashboard-app:latest

dashboard-app/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
bin/
2+
.envrc

dashboard-app/Dockerfile

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
FROM node:18-alpine3.18 as ui
2+
3+
RUN npm i -g pnpm
4+
5+
WORKDIR /src
6+
7+
COPY ui/package.json .
8+
COPY ui/pnpm-lock.yaml .
9+
10+
RUN pnpm i
11+
12+
COPY ui/. .
13+
14+
RUN pnpm build
15+
16+
FROM golang:1.21-alpine3.18 as builder
17+
18+
WORKDIR /src
19+
20+
COPY go.mod .
21+
COPY go.sum .
22+
23+
RUN go mod download
24+
25+
COPY cmd cmd
26+
27+
RUN mkdir -p ui
28+
COPY --from=ui /src/dist ui/dist
29+
COPY ui/embed.go ui/embed.go
30+
31+
RUN mkdir -p bin
32+
33+
RUN go build -o bin/api ./cmd/api/...
34+
35+
FROM alpine:3.18
36+
37+
COPY --from=builder /src/bin/api /usr/bin/api
38+
39+
CMD /usr/bin/api

dashboard-app/Makefile

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
.PHONY: ui-build
2+
ui-build:
3+
@pushd ui > /dev/null; \
4+
pnpm i > /dev/null; \
5+
pnpm build > /dev/null; \
6+
popd > /dev/null
7+
8+
.PHONY: build
9+
build: ui-build
10+
@mkdir -p bin
11+
go build -o bin/api ./cmd/api/...
12+
13+
.PHONY: run
14+
run: build
15+
@bin/api

dashboard-app/README.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Flipt Preview App Guide Project
2+
-------------
3+
4+
This is a Go/React project which supports our guide to [tbd]() and Flipt, demonstrating the value of Flipt's new reference support with the Git backend.

dashboard-app/cmd/api/main.go

+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
package main
2+
3+
import (
4+
"encoding/json"
5+
"fmt"
6+
"io/fs"
7+
"log/slog"
8+
"math/rand"
9+
"net/http"
10+
"os"
11+
12+
"go.flipt.io/flipt/dashboard-app/ui"
13+
"go.flipt.io/flipt/rpc/flipt/evaluation"
14+
sdk "go.flipt.io/flipt/sdk/go"
15+
flipthttp "go.flipt.io/flipt/sdk/go/http"
16+
)
17+
18+
var history = []struct {
19+
Date string `json:"date"`
20+
Sales float64 `json:"Sales"`
21+
Profit float64 `json:"Profit"`
22+
Customers int `json:"Customers"`
23+
}{
24+
{
25+
Date: "2023-05-01",
26+
Sales: 900.73,
27+
Profit: 173,
28+
Customers: 73,
29+
},
30+
{
31+
Date: "2023-05-02",
32+
Sales: 1000.74,
33+
Profit: 174.6,
34+
Customers: 74,
35+
},
36+
{
37+
Date: "2023-05-03",
38+
Sales: 1100.93,
39+
Profit: 293.1,
40+
Customers: 293,
41+
},
42+
{
43+
Date: "2023-05-04",
44+
Sales: 1200.9,
45+
Profit: 290.2,
46+
Customers: 29,
47+
},
48+
}
49+
50+
func main() {
51+
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
52+
Level: slog.LevelDebug,
53+
})))
54+
55+
flipt := sdk.New(flipthttp.NewTransport(fliptAddr()))
56+
57+
dir, err := fs.Sub(ui.FS, "dist")
58+
if err != nil {
59+
slog.Error("embedding UI", "error", err)
60+
os.Exit(1)
61+
}
62+
63+
http.Handle("/", http.FileServer(http.FS(dir)))
64+
65+
http.HandleFunc("/api/performance", func(w http.ResponseWriter, r *http.Request) {
66+
logger := slog.With(
67+
slog.String("namespace", "performance"),
68+
slog.String("flag", "showPerformanceHistory"),
69+
)
70+
71+
// evaluate the showPerformanceHistory features flag
72+
result, err := flipt.Evaluation().Boolean(r.Context(), &evaluation.EvaluationRequest{
73+
NamespaceKey: "performance",
74+
FlagKey: "showPerformanceHistory",
75+
EntityId: fmt.Sprintf("%x", rand.Intn(1000)),
76+
Reference: os.Getenv("FLIPT_CLIENT_REFERENCE"),
77+
})
78+
if err != nil {
79+
logger.Error("evaluating flag", "error", err)
80+
http.Error(w, err.Error(), http.StatusInternalServerError)
81+
return
82+
}
83+
84+
// if the flag is disabled we return that the endpoint cannot be found
85+
if !result.Enabled {
86+
logger.Debug("flag disabled")
87+
http.Error(w, "path not found", http.StatusNotFound)
88+
return
89+
}
90+
91+
if err := json.NewEncoder(w).Encode(&history); err != nil {
92+
logger.Error("parsing json", "error", err)
93+
http.Error(w, err.Error(), http.StatusInternalServerError)
94+
return
95+
}
96+
})
97+
98+
slog.Info("Listening", "addr", ":8081")
99+
100+
http.ListenAndServe(":8081", nil)
101+
}
102+
103+
func fliptAddr() string {
104+
if addr := os.Getenv("FLIPT_ADDRESS"); addr != "" {
105+
return addr
106+
}
107+
108+
return "http://localhost:8080"
109+
}

dashboard-app/features.yml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace: performance
2+
flags:
3+
- key: showPerformanceHistory
4+
name: Show Performance History Graph
5+
type: BOOLEAN_FLAG_TYPE
6+
enabled: true

dashboard-app/go.mod

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
module go.flipt.io/flipt/dashboard-app
2+
3+
go 1.21.4
4+
5+
require (
6+
go.flipt.io/flipt/rpc/flipt v1.35.0
7+
go.flipt.io/flipt/sdk/go v0.9.0
8+
)
9+
10+
require (
11+
github.com/golang/protobuf v1.5.3 // indirect
12+
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
13+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect
14+
go.flipt.io/flipt/errors v1.19.3 // indirect
15+
go.uber.org/multierr v1.11.0 // indirect
16+
go.uber.org/zap v1.26.0 // indirect
17+
golang.org/x/net v0.20.0 // indirect
18+
golang.org/x/sys v0.16.0 // indirect
19+
golang.org/x/text v0.14.0 // indirect
20+
google.golang.org/genproto v0.0.0-20240108191215-35c7eff3a6b1 // indirect
21+
google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1 // indirect
22+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 // indirect
23+
google.golang.org/grpc v1.60.1 // indirect
24+
google.golang.org/protobuf v1.32.0 // indirect
25+
)

dashboard-app/go.sum

+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
2+
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
3+
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
4+
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
5+
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
6+
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
7+
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
8+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
9+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
10+
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
11+
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
12+
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
13+
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
14+
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
15+
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
16+
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
17+
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
18+
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
19+
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
20+
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
21+
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
22+
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
23+
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
24+
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
25+
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
26+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
27+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
28+
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
29+
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
30+
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
31+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 h1:Wqo399gCIufwto+VfwCSvsnfGpF/w5E9CNxSwbpD6No=
32+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0/go.mod h1:qmOFXW2epJhM0qSnUUYpldc7gVz2KMQwJ/QYCDIa7XU=
33+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
34+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
35+
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
36+
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
37+
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
38+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
39+
go.flipt.io/flipt/errors v1.19.3 h1:mgQrT3XdambAdu4UykYZ3gm1NG7Ilri5Gt+nLafbJHY=
40+
go.flipt.io/flipt/errors v1.19.3/go.mod h1:I2loVwHUoXy+yT7suRx7+pDiSyO1G7CHu6bby9DywyA=
41+
go.flipt.io/flipt/rpc/flipt v1.35.0 h1:erhqeh/iNR9dicsL+A2kscPQtsvxGCgcXjnUZc/lbV8=
42+
go.flipt.io/flipt/rpc/flipt v1.35.0/go.mod h1:SyWdUD3mIgBC501vFp9jAZSX2tYpGJQHVV+MvOtqC5I=
43+
go.flipt.io/flipt/sdk/go v0.9.0 h1:VlituoHK8Xr/rG0/b+MegwOqUfBYXvNOHKA5xsyt41U=
44+
go.flipt.io/flipt/sdk/go v0.9.0/go.mod h1:bv4l5r7gnPhIjQz6muONOzOGisaiQVqXi5kP7WJGe0Y=
45+
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
46+
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
47+
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
48+
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
49+
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
50+
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
51+
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
52+
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
53+
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
54+
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
55+
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
56+
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
57+
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
58+
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
59+
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
60+
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
61+
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
62+
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
63+
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
64+
golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
65+
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
66+
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
67+
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
68+
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
69+
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
70+
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
71+
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
72+
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
73+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
74+
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
75+
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
76+
golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
77+
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
78+
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
79+
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
80+
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
81+
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
82+
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
83+
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
84+
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
85+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
86+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
87+
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
88+
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
89+
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
90+
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
91+
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
92+
google.golang.org/genproto v0.0.0-20240108191215-35c7eff3a6b1 h1:/IWabOtPziuXTEtI1KYCpM6Ss7vaAkeMxk+uXV/xvZs=
93+
google.golang.org/genproto v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:+Rvu7ElI+aLzyDQhpHMFMMltsD6m7nqpuWDd2CwJw3k=
94+
google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1 h1:OPXtXn7fNMaXwO3JvOmF1QyTc00jsSFFz1vXXBOdCDo=
95+
google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:B5xPO//w8qmBDjGReYLpR6UJPnkldGkCSMoH/2vxJeg=
96+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 h1:gphdwh0npgs8elJ4T6J+DQJHPVF7RsuJHCfwztUb4J4=
97+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA=
98+
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
99+
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
100+
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
101+
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
102+
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
103+
google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU=
104+
google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM=
105+
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
106+
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
107+
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
108+
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
109+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
110+
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
111+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
112+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
113+
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
114+
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace: performance
2+
flags:
3+
- key: showPerformanceHistory
4+
name: Show Performance History Graph
5+
type: BOOLEAN_FLAG_TYPE
6+
enabled: false

dashboard-app/ui/.dockerignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
dist/
2+
node_modules/

0 commit comments

Comments
 (0)