Skip to content

Commit b103a25

Browse files
committed
Adding in fixes to build
1 parent 69eba1f commit b103a25

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+2613
-72
lines changed

src/accountingservice/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44

5-
FROM registry.ddbuild.io/images/mirror/golang:1.21.4-alpine AS builder
5+
FROM registry.ddbuild.io/images/mirror/golang:1.22-alpine AS builder
66
WORKDIR /usr/src/app/
77

88
COPY ./src/accountingservice/ ./

src/accountingservice/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,4 @@ require (
4545
golang.org/x/text v0.14.0 // indirect
4646
google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect
4747
google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe // indirect
48-
)
48+
)

src/accountingservice/go.sum

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,4 +146,4 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
146146
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
147147
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
148148
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
149-
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
149+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

src/adservice/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ARG version=2.0.0
2424
WORKDIR /usr/src/app/
2525

2626
COPY --from=builder /usr/src/app/ ./
27-
ADD --chmod=644 https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$version/opentelemetry-javaagent.jar /usr/src/app/opentelemetry-javaagent.jar
27+
ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$version/opentelemetry-javaagent.jar /usr/src/app/opentelemetry-javaagent.jar
2828
ENV JAVA_TOOL_OPTIONS=-javaagent:/usr/src/app/opentelemetry-javaagent.jar
2929

3030
EXPOSE ${AD_SERVICE_PORT}

src/checkoutservice/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44

5-
FROM registry.ddbuild.io/images/mirror/golang:1.21.4-alpine AS builder
5+
FROM registry.ddbuild.io/images/mirror/golang:1.22-alpine AS builder
66
WORKDIR /usr/src/app/
77

88
COPY ./src/checkoutservice/ ./

src/featureflagservice/README.md

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Feature Flag Service
2+
3+
This project provides an web interface for creating and updating feature flags
4+
and a GRPC service for fetching the status of flags by their name. Each runs on
5+
their own port but are in the same Release.
6+
7+
## Running
8+
9+
To run individually and not part of the demo the Release can be built with
10+
`mix`:
11+
12+
``` shell
13+
MIX_ENV=prod mix release
14+
```
15+
16+
Then start Postgres with `docker compose`
17+
18+
``` shell
19+
docker compose up
20+
```
21+
22+
And run the Release:
23+
24+
``` shell
25+
PHX_SERVER=1 FEATURE_FLAG_SERVICE_PORT=4000 FEATURE_FLAG_GRPC_SERVICE_PORT=4001 _build/prod/rel/featureflagservice/bin/featureflagservice start_iex
26+
```
27+
28+
## Instrumentation
29+
30+
Traces of interaction with the web interface is provided by the OpenTelemetry
31+
[Phoenix
32+
instrumentation](https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_phoenix)
33+
with Spans for database queries added through the [Ecto
34+
instrumentation](https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_ecto).
35+
36+
The GRPC service uses [grpcbox](https://github.com/tsloughter/grpcbox) and uses
37+
the [grpcbox
38+
interceptor](https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_grpcbox)
39+
for instrumentation.
40+
41+
## Building Protos
42+
43+
A copy of the protos from `pb/demo.proto` are kept in
44+
`proto/demo.proto` and `rebar3 grpc_regen` will update the corresponding
45+
Erlang module `src/ffs_demo_pb.erl`.
+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
/**
2+
* Copyright The OpenTelemetry Authors
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
@import "./phoenix.css";
18+
19+
/* Alerts and form errors used by phx.new */
20+
.alert {
21+
padding: 15px;
22+
margin-bottom: 20px;
23+
border: 1px solid transparent;
24+
border-radius: 4px;
25+
}
26+
.alert-info {
27+
color: #31708f;
28+
background-color: #d9edf7;
29+
border-color: #bce8f1;
30+
}
31+
.alert-warning {
32+
color: #8a6d3b;
33+
background-color: #fcf8e3;
34+
border-color: #faebcc;
35+
}
36+
.alert-danger {
37+
color: #a94442;
38+
background-color: #f2dede;
39+
border-color: #ebccd1;
40+
}
41+
.alert p {
42+
margin-bottom: 0;
43+
}
44+
.alert:empty {
45+
display: none;
46+
}
47+
.invalid-feedback {
48+
color: #a94442;
49+
display: block;
50+
margin: -1rem 0 2rem;
51+
}
52+
53+
/* LiveView specific classes for your customization */
54+
.phx-no-feedback.invalid-feedback,
55+
.phx-no-feedback .invalid-feedback {
56+
display: none;
57+
}
58+
59+
.phx-click-loading {
60+
opacity: 0.5;
61+
transition: opacity 1s ease-out;
62+
}
63+
64+
.phx-loading{
65+
cursor: wait;
66+
}
67+
68+
.phx-modal {
69+
opacity: 1!important;
70+
position: fixed;
71+
z-index: 1;
72+
left: 0;
73+
top: 0;
74+
width: 100%;
75+
height: 100%;
76+
overflow: auto;
77+
background-color: rgba(0,0,0,0.4);
78+
}
79+
80+
.phx-modal-content {
81+
background-color: #fefefe;
82+
margin: 15vh auto;
83+
padding: 20px;
84+
border: 1px solid #888;
85+
width: 80%;
86+
}
87+
88+
.phx-modal-close {
89+
color: #aaa;
90+
float: right;
91+
font-size: 28px;
92+
font-weight: bold;
93+
}
94+
95+
.phx-modal-close:hover,
96+
.phx-modal-close:focus {
97+
color: black;
98+
text-decoration: none;
99+
cursor: pointer;
100+
}
101+
102+
.fade-in-scale {
103+
animation: 0.2s ease-in 0s normal forwards 1 fade-in-scale-keys;
104+
}
105+
106+
.fade-out-scale {
107+
animation: 0.2s ease-out 0s normal forwards 1 fade-out-scale-keys;
108+
}
109+
110+
.fade-in {
111+
animation: 0.2s ease-out 0s normal forwards 1 fade-in-keys;
112+
}
113+
.fade-out {
114+
animation: 0.2s ease-out 0s normal forwards 1 fade-out-keys;
115+
}
116+
117+
@keyframes fade-in-scale-keys{
118+
0% { scale: 0.95; opacity: 0; }
119+
100% { scale: 1.0; opacity: 1; }
120+
}
121+
122+
@keyframes fade-out-scale-keys{
123+
0% { scale: 1.0; opacity: 1; }
124+
100% { scale: 0.95; opacity: 0; }
125+
}
126+
127+
@keyframes fade-in-keys{
128+
0% { opacity: 0; }
129+
100% { opacity: 1; }
130+
}
131+
132+
@keyframes fade-out-keys{
133+
0% { opacity: 1; }
134+
100% { opacity: 0; }
135+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/* Includes some default style for the starter application.
2+
* This can be safely deleted to start fresh.
3+
*/
4+
5+
/* Milligram v1.4.1 https://milligram.github.io
6+
* Copyright (c) 2020 CJ Patoilo Licensed under the MIT license
7+
*/
8+
9+
*,*:after,*:before{box-sizing:inherit}html{box-sizing:border-box;font-size:62.5%}body{color:#000000;font-family:'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;font-size:1.6em;font-weight:300;letter-spacing:.01em;line-height:1.6}blockquote{border-left:0.3rem solid #d1d1d1;margin-left:0;margin-right:0;padding:1rem 1.5rem}blockquote *:last-child{margin-bottom:0}.button,button,input[type='button'],input[type='reset'],input[type='submit']{background-color:#0069d9;border:0.1rem solid #0069d9;border-radius:.4rem;color:#fff;cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:700;height:3.8rem;letter-spacing:.1rem;line-height:3.8rem;padding:0 3.0rem;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}.button:focus,.button:hover,button:focus,button:hover,input[type='button']:focus,input[type='button']:hover,input[type='reset']:focus,input[type='reset']:hover,input[type='submit']:focus,input[type='submit']:hover{background-color:#606c76;border-color:#606c76;color:#fff;outline:0}.button[disabled],button[disabled],input[type='button'][disabled],input[type='reset'][disabled],input[type='submit'][disabled]{cursor:default;opacity:.5}.button[disabled]:focus,.button[disabled]:hover,button[disabled]:focus,button[disabled]:hover,input[type='button'][disabled]:focus,input[type='button'][disabled]:hover,input[type='reset'][disabled]:focus,input[type='reset'][disabled]:hover,input[type='submit'][disabled]:focus,input[type='submit'][disabled]:hover{background-color:#0069d9;border-color:#0069d9}.button.button-outline,button.button-outline,input[type='button'].button-outline,input[type='reset'].button-outline,input[type='submit'].button-outline{background-color:transparent;color:#0069d9}.button.button-outline:focus,.button.button-outline:hover,button.button-outline:focus,button.button-outline:hover,input[type='button'].button-outline:focus,input[type='button'].button-outline:hover,input[type='reset'].button-outline:focus,input[type='reset'].button-outline:hover,input[type='submit'].button-outline:focus,input[type='submit'].button-outline:hover{background-color:transparent;border-color:#606c76;color:#606c76}.button.button-outline[disabled]:focus,.button.button-outline[disabled]:hover,button.button-outline[disabled]:focus,button.button-outline[disabled]:hover,input[type='button'].button-outline[disabled]:focus,input[type='button'].button-outline[disabled]:hover,input[type='reset'].button-outline[disabled]:focus,input[type='reset'].button-outline[disabled]:hover,input[type='submit'].button-outline[disabled]:focus,input[type='submit'].button-outline[disabled]:hover{border-color:inherit;color:#0069d9}.button.button-clear,button.button-clear,input[type='button'].button-clear,input[type='reset'].button-clear,input[type='submit'].button-clear{background-color:transparent;border-color:transparent;color:#0069d9}.button.button-clear:focus,.button.button-clear:hover,button.button-clear:focus,button.button-clear:hover,input[type='button'].button-clear:focus,input[type='button'].button-clear:hover,input[type='reset'].button-clear:focus,input[type='reset'].button-clear:hover,input[type='submit'].button-clear:focus,input[type='submit'].button-clear:hover{background-color:transparent;border-color:transparent;color:#606c76}.button.button-clear[disabled]:focus,.button.button-clear[disabled]:hover,button.button-clear[disabled]:focus,button.button-clear[disabled]:hover,input[type='button'].button-clear[disabled]:focus,input[type='button'].button-clear[disabled]:hover,input[type='reset'].button-clear[disabled]:focus,input[type='reset'].button-clear[disabled]:hover,input[type='submit'].button-clear[disabled]:focus,input[type='submit'].button-clear[disabled]:hover{color:#0069d9}code{background:#f4f5f6;border-radius:.4rem;font-size:86%;margin:0 .2rem;padding:.2rem .5rem;white-space:nowrap}pre{background:#f4f5f6;border-left:0.3rem solid #0069d9;overflow-y:hidden}pre>code{border-radius:0;display:block;padding:1rem 1.5rem;white-space:pre}hr{border:0;border-top:0.1rem solid #f4f5f6;margin:3.0rem 0}input[type='color'],input[type='date'],input[type='datetime'],input[type='datetime-local'],input[type='email'],input[type='month'],input[type='number'],input[type='password'],input[type='search'],input[type='tel'],input[type='text'],input[type='url'],input[type='week'],input:not([type]),textarea,select{-webkit-appearance:none;background-color:transparent;border:0.1rem solid #d1d1d1;border-radius:.4rem;box-shadow:none;box-sizing:inherit;height:3.8rem;padding:.6rem 1.0rem .7rem;width:100%}input[type='color']:focus,input[type='date']:focus,input[type='datetime']:focus,input[type='datetime-local']:focus,input[type='email']:focus,input[type='month']:focus,input[type='number']:focus,input[type='password']:focus,input[type='search']:focus,input[type='tel']:focus,input[type='text']:focus,input[type='url']:focus,input[type='week']:focus,input:not([type]):focus,textarea:focus,select:focus{border-color:#0069d9;outline:0}select{background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 8" width="30"><path fill="%23d1d1d1" d="M0,0l6,8l6-8"/></svg>') center right no-repeat;padding-right:3.0rem}select:focus{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 8" width="30"><path fill="%230069d9" d="M0,0l6,8l6-8"/></svg>')}select[multiple]{background:none;height:auto}textarea{min-height:6.5rem}label,legend{display:block;font-size:1.6rem;font-weight:700;margin-bottom:.5rem}fieldset{border-width:0;padding:0}input[type='checkbox'],input[type='radio']{display:inline}.label-inline{display:inline-block;font-weight:normal;margin-left:.5rem}.container{margin:0 auto;max-width:112.0rem;padding:0 2.0rem;position:relative;width:100%}.row{display:flex;flex-direction:column;padding:0;width:100%}.row.row-no-padding{padding:0}.row.row-no-padding>.column{padding:0}.row.row-wrap{flex-wrap:wrap}.row.row-top{align-items:flex-start}.row.row-bottom{align-items:flex-end}.row.row-center{align-items:center}.row.row-stretch{align-items:stretch}.row.row-baseline{align-items:baseline}.row .column{display:block;flex:1 1 auto;margin-left:0;max-width:100%;width:100%}.row .column.column-offset-10{margin-left:10%}.row .column.column-offset-20{margin-left:20%}.row .column.column-offset-25{margin-left:25%}.row .column.column-offset-33,.row .column.column-offset-34{margin-left:33.3333%}.row .column.column-offset-40{margin-left:40%}.row .column.column-offset-50{margin-left:50%}.row .column.column-offset-60{margin-left:60%}.row .column.column-offset-66,.row .column.column-offset-67{margin-left:66.6666%}.row .column.column-offset-75{margin-left:75%}.row .column.column-offset-80{margin-left:80%}.row .column.column-offset-90{margin-left:90%}.row .column.column-10{flex:0 0 10%;max-width:10%}.row .column.column-20{flex:0 0 20%;max-width:20%}.row .column.column-25{flex:0 0 25%;max-width:25%}.row .column.column-33,.row .column.column-34{flex:0 0 33.3333%;max-width:33.3333%}.row .column.column-40{flex:0 0 40%;max-width:40%}.row .column.column-50{flex:0 0 50%;max-width:50%}.row .column.column-60{flex:0 0 60%;max-width:60%}.row .column.column-66,.row .column.column-67{flex:0 0 66.6666%;max-width:66.6666%}.row .column.column-75{flex:0 0 75%;max-width:75%}.row .column.column-80{flex:0 0 80%;max-width:80%}.row .column.column-90{flex:0 0 90%;max-width:90%}.row .column .column-top{align-self:flex-start}.row .column .column-bottom{align-self:flex-end}.row .column .column-center{align-self:center}@media (min-width: 40rem){.row{flex-direction:row;margin-left:-1.0rem;width:calc(100% + 2.0rem)}.row .column{margin-bottom:inherit;padding:0 1.0rem}}a{color:#0069d9;text-decoration:none}a:focus,a:hover{color:#606c76}dl,ol,ul{list-style:none;margin-top:0;padding-left:0}dl dl,dl ol,dl ul,ol dl,ol ol,ol ul,ul dl,ul ol,ul ul{font-size:90%;margin:1.5rem 0 1.5rem 3.0rem}ol{list-style:decimal inside}ul{list-style:circle inside}.button,button,dd,dt,li{margin-bottom:1.0rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}table{border-spacing:0;display:block;overflow-x:auto;text-align:left;width:100%}td,th{border-bottom:0.1rem solid #e1e1e1;padding:1.2rem 1.5rem}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}@media (min-width: 40rem){table{display:table;overflow-x:initial}}b,strong{font-weight:bold}p{margin-top:0}h1,h2,h3,h4,h5,h6{font-weight:300;letter-spacing:-.1rem;margin-bottom:2.0rem;margin-top:0}h1{font-size:4.6rem;line-height:1.2}h2{font-size:3.6rem;line-height:1.25}h3{font-size:2.8rem;line-height:1.3}h4{font-size:2.2rem;letter-spacing:-.08rem;line-height:1.35}h5{font-size:1.8rem;letter-spacing:-.05rem;line-height:1.5}h6{font-size:1.6rem;letter-spacing:0;line-height:1.4}img{max-width:100%}.clearfix:after{clear:both;content:' ';display:table}.float-left{float:left}.float-right{float:right}
10+
11+
/* General style */
12+
h1{font-size: 3.6rem; line-height: 1.25}
13+
h2{font-size: 2.8rem; line-height: 1.3}
14+
h3{font-size: 2.2rem; letter-spacing: -.08rem; line-height: 1.35}
15+
h4{font-size: 1.8rem; letter-spacing: -.05rem; line-height: 1.5}
16+
h5{font-size: 1.6rem; letter-spacing: 0; line-height: 1.4}
17+
h6{font-size: 1.4rem; letter-spacing: 0; line-height: 1.2}
18+
pre{padding: 1em;}
19+
20+
.container{
21+
margin: 0 auto;
22+
max-width: 80.0rem;
23+
padding: 0 2.0rem;
24+
position: relative;
25+
width: 100%
26+
}
27+
select {
28+
width: auto;
29+
}
30+
31+
/* Phoenix promo and logo */
32+
.phx-hero {
33+
text-align: center;
34+
border-bottom: 1px solid #e3e3e3;
35+
background: #eee;
36+
border-radius: 6px;
37+
padding: 3em 3em 1em;
38+
margin-bottom: 3rem;
39+
font-weight: 200;
40+
font-size: 120%;
41+
}
42+
.phx-hero input {
43+
background: #ffffff;
44+
}
45+
.phx-logo {
46+
min-width: 300px;
47+
margin: 1rem;
48+
display: block;
49+
}
50+
.phx-logo img {
51+
width: auto;
52+
display: block;
53+
}
54+
55+
/* Headers */
56+
header {
57+
width: 100%;
58+
background: #fdfdfd;
59+
border-bottom: 1px solid #eaeaea;
60+
margin-bottom: 2rem;
61+
}
62+
header section {
63+
align-items: center;
64+
display: flex;
65+
flex-direction: column;
66+
justify-content: space-between;
67+
}
68+
header section :first-child {
69+
order: 2;
70+
}
71+
header section :last-child {
72+
order: 1;
73+
}
74+
header nav ul,
75+
header nav li {
76+
margin: 0;
77+
padding: 0;
78+
display: block;
79+
text-align: right;
80+
white-space: nowrap;
81+
}
82+
header nav ul {
83+
margin: 1rem;
84+
margin-top: 0;
85+
}
86+
header nav a {
87+
display: block;
88+
}
89+
90+
@media (min-width: 40.0rem) { /* Small devices (landscape phones, 576px and up) */
91+
header section {
92+
flex-direction: row;
93+
}
94+
header nav ul {
95+
margin: 1rem;
96+
}
97+
.phx-logo {
98+
flex-basis: 527px;
99+
margin: 2rem 1rem;
100+
}
101+
}
+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
// We import the CSS which is extracted to its own file by esbuild.
5+
// Remove this line if you add a your own CSS build pipeline (e.g postcss).
6+
import "../css/app.css"
7+
8+
// If you want to use Phoenix channels, run `mix help phx.gen.channel`
9+
// to get started and then uncomment the line below.
10+
// import "./user_socket.js"
11+
12+
// You can include dependencies in two ways.
13+
//
14+
// The simplest option is to put them in assets/vendor and
15+
// import them using relative paths:
16+
//
17+
// import "../vendor/some-package.js"
18+
//
19+
// Alternatively, you can `npm install some-package --prefix assets` and import
20+
// them using a path starting with the package name:
21+
//
22+
// import "some-package"
23+
//
24+
25+
// Include phoenix_html to handle method=PUT/DELETE in forms and buttons.
26+
import "phoenix_html"
27+
// Establish Phoenix Socket and LiveView configuration.
28+
import {Socket} from "phoenix"
29+
import {LiveSocket} from "phoenix_live_view"
30+
import topbar from "../vendor/topbar"
31+
32+
let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
33+
let liveSocket = new LiveSocket("/live", Socket, {params: {_csrf_token: csrfToken}})
34+
35+
// Show progress bar on live navigation and form submits
36+
topbar.config({barColors: {0: "#29d"}, shadowColor: "rgba(0, 0, 0, .3)"})
37+
window.addEventListener("phx:page-loading-start", info => topbar.show())
38+
window.addEventListener("phx:page-loading-stop", info => topbar.hide())
39+
40+
// connect if there are any LiveViews on the page
41+
liveSocket.connect()
42+
43+
// expose liveSocket on window for web console debug logs and latency simulation:
44+
// >> liveSocket.enableDebug()
45+
// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session
46+
// >> liveSocket.disableLatencySim()
47+
window.liveSocket = liveSocket
48+

0 commit comments

Comments
 (0)