From 2fb16255fc570c68905a1b84c2abb5687c40815d Mon Sep 17 00:00:00 2001 From: Bojidar Marinov Date: Wed, 27 Dec 2023 00:53:52 +0200 Subject: [PATCH] chore/fixup: fix a few more leftovers from the repo rename --- package-lock.json | 44 +++++++++---------- package.json | 4 +- pkg/abi-ts/package.json | 2 +- pkg/ipfs-ts/index.ts | 2 +- pkg/ipfs-ts/package.json | 2 +- pkg/kubernetes/namespaces.go | 8 ++-- pkg/proto-ts/package.json | 2 +- pkg/proto-ts/protonames.ts | 2 +- pkg/proto/protonames.go | 6 +-- spec/PROTOCOL.md | 8 ++-- test/e2e/constellation/ipfs/ipfs.yml | 4 +- .../constellation/trustedpods/tpodserver.yml | 10 ++--- test/e2e/minikube/ipfs/ipfs.yml | 4 +- test/e2e/minikube/run-test.sh | 12 ++--- test/e2e/minikube/trustedpods/tpodserver.yml | 10 ++--- test/e2e/webui/package.json | 2 +- test/e2e/webui/src/connections.ts | 2 +- test/e2e/webui/src/fund.ts | 2 +- test/e2e/webui/src/main.ts | 2 +- test/e2e/webui/src/provision.ts | 4 +- test/e2e/webui/src/template.ts | 2 +- test/integration/ipfs/index.ts | 6 +-- test/integration/lifecycle/build.sh | 6 +-- .../lifecycle/devserver/devserver.yml | 2 +- 24 files changed, 74 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5c08517..6f50ed80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "trusted-pods", + "name": "apocryph", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "trusted-pods", + "name": "apocryph", "version": "0.1.0", "license": "GPL-3.0", "workspaces": [ @@ -2201,6 +2201,22 @@ "node": ">= 8" } }, + "node_modules/apocryph-abi-ts": { + "resolved": "pkg/abi-ts", + "link": true + }, + "node_modules/apocryph-ipfs-ts": { + "resolved": "pkg/ipfs-ts", + "link": true + }, + "node_modules/apocryph-proto-ts": { + "resolved": "pkg/proto-ts", + "link": true + }, + "node_modules/apocryph-webui": { + "resolved": "test/e2e/webui", + "link": true + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -6967,22 +6983,6 @@ "utf8-byte-length": "^1.0.1" } }, - "node_modules/trusted-pods-abi-ts": { - "resolved": "pkg/abi-ts", - "link": true - }, - "node_modules/trusted-pods-ipfs-ts": { - "resolved": "pkg/ipfs-ts", - "link": true - }, - "node_modules/trusted-pods-proto-ts": { - "resolved": "pkg/proto-ts", - "link": true - }, - "node_modules/trusted-pods-webui": { - "resolved": "test/e2e/webui", - "link": true - }, "node_modules/ts-api-utils": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", @@ -7879,13 +7879,13 @@ } }, "pkg/abi-ts": { - "name": "trusted-pods-abi-ts", + "name": "apocryph-abi-ts", "devDependencies": { "@wagmi/cli": "^1.5.2" } }, "pkg/ipfs-ts": { - "name": "trusted-pods-ipfs-ts", + "name": "apocryph-ipfs-ts", "dependencies": { "@bufbuild/protobuf": "^1.4.2", "@connectrpc/connect": "^1.1.3", @@ -7894,7 +7894,7 @@ } }, "pkg/proto-ts": { - "name": "trusted-pods-proto-ts", + "name": "apocryph-proto-ts", "license": "GPL-3.0", "dependencies": { "@bufbuild/protobuf": "^1.4.2", @@ -7906,7 +7906,7 @@ } }, "test/e2e/webui": { - "name": "trusted-pods-webui", + "name": "apocryph-webui", "dependencies": { "viem": "^1.19.9" }, diff --git a/package.json b/package.json index d9623caa..24d5a2bc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "trusted-pods", + "name": "apocryph", "version": "0.1.0", - "description": "Trusted Pods is a decentralized compute marketplace where developers can run container pods securely and confidentially through small and medium cloud providers.", + "description": "Apocryph / Trusted Pods is a decentralized compute marketplace where developers can run container pods securely and confidentially through small and medium cloud providers.", "main": "index.js", "directories": { "test": "test" diff --git a/pkg/abi-ts/package.json b/pkg/abi-ts/package.json index 1783930e..562c17de 100644 --- a/pkg/abi-ts/package.json +++ b/pkg/abi-ts/package.json @@ -1,5 +1,5 @@ { - "name": "trusted-pods-abi-ts", + "name": "apocryph-abi-ts", "private": true, "type": "module", "scripts": { diff --git a/pkg/ipfs-ts/index.ts b/pkg/ipfs-ts/index.ts index 31d5bd9b..f7572497 100644 --- a/pkg/ipfs-ts/index.ts +++ b/pkg/ipfs-ts/index.ts @@ -14,7 +14,7 @@ export { createLibp2pConnectTransport, AllowConnectionGater } export function connectTo( node: Helia, peerAddr: PeerId | Multiaddr | Multiaddr[], - protocol: string = '/x/trusted-pods/provision-pod/0.0.1' + protocol: string ): Transport { return createLibp2pConnectTransport({ dialStream: async () => await node.libp2p.dialProtocol(peerAddr, protocol), diff --git a/pkg/ipfs-ts/package.json b/pkg/ipfs-ts/package.json index 15da4c59..71ceaf59 100644 --- a/pkg/ipfs-ts/package.json +++ b/pkg/ipfs-ts/package.json @@ -1,5 +1,5 @@ { - "name": "trusted-pods-ipfs-ts", + "name": "apocryph-ipfs-ts", "private": true, "type": "module", "dependencies": { diff --git a/pkg/kubernetes/namespaces.go b/pkg/kubernetes/namespaces.go index 183930a6..9a6bb5f3 100644 --- a/pkg/kubernetes/namespaces.go +++ b/pkg/kubernetes/namespaces.go @@ -18,10 +18,10 @@ import ( ) const ( - LabelTrustedPodsNamespace string = "coop.comrade/trusted-pods-namespace" - AnnotationsTrustedPodsPaymentChannel string = "coop.comrade/trusted-pods-payment-contract" - LabelIpfsP2P string = "coop.comrade/trusted-pods-p2p-helper" - AnnotationsIpfsP2P string = "coop.comrade/trusted-pods-p2p-helper" + LabelTrustedPodsNamespace string = "coop.comrade/apocryph-namespace" + AnnotationsTrustedPodsPaymentChannel string = "coop.comrade/apocryph-payment-contract" + LabelIpfsP2P string = "coop.comrade/apocryph-p2p-helper" + AnnotationsIpfsP2P string = "coop.comrade/apocryph-p2p-helper" ) var TrustedPodsNamespaceFilter = client.HasLabels{LabelTrustedPodsNamespace} diff --git a/pkg/proto-ts/package.json b/pkg/proto-ts/package.json index ea80bf1e..b422f649 100644 --- a/pkg/proto-ts/package.json +++ b/pkg/proto-ts/package.json @@ -1,5 +1,5 @@ { - "name": "trusted-pods-proto-ts", + "name": "apocryph-proto-ts", "private": true, "type": "module", "scripts": { diff --git a/pkg/proto-ts/protonames.ts b/pkg/proto-ts/protonames.ts index c2cb753c..c6524f8d 100644 --- a/pkg/proto-ts/protonames.ts +++ b/pkg/proto-ts/protonames.ts @@ -1,3 +1,3 @@ // SPDX-License-Identifier: GPL-3.0 -export const provisionPodProtocolName = '/x/trusted-pods/provision-pod/0.0.1' +export const provisionPodProtocolName = '/x/apocryph/provision-pod/0.0.1' diff --git a/pkg/proto/protonames.go b/pkg/proto/protonames.go index ebd7263e..65928a79 100644 --- a/pkg/proto/protonames.go +++ b/pkg/proto/protonames.go @@ -2,6 +2,6 @@ package proto -var ProvisionPod string = "/x/trusted-pods/provision-pod/0.0.1" -var Attest string = "/x/trusted-pods/attest/0.0.1" -var ProvisioningCapacity string = "/x/trusted-pods/provisioning-capacity/0.0.1" +var ProvisionPod string = "/x/apocryph/provision-pod/0.0.1" +var Attest string = "/x/apocryph/attest/0.0.1" +var ProvisioningCapacity string = "/x/apocryph/provisioning-capacity/0.0.1" diff --git a/spec/PROTOCOL.md b/spec/PROTOCOL.md index f2a59600..ae62af63 100644 --- a/spec/PROTOCOL.md +++ b/spec/PROTOCOL.md @@ -2,17 +2,17 @@ (Document status: barebones) -When the Publisher Client connects to the Provider Client, it makes use of a libp2p connection; likely through the IPFS DHT, unless the Provider has advertised a stable IP earlier. These connections use the protocols `/trusted-pods/attest/0.0.1`, `/trusted-pods/provisioning-capacity/0.0.1`, and `/trusted-pods/provision-pod/0.0.1`, which is based on a Protobufs protocol defined in the [`:/proto/`](../proto) folder. +When the Publisher Client connects to the Provider Client, it makes use of a libp2p connection; likely through the IPFS DHT, unless the Provider has advertised a stable IP earlier. These connections use the protocols `/apocryph/attest/0.0.1`, `/apocryph/provisioning-capacity/0.0.1`, and `/apocryph/provision-pod/0.0.1`, which is based on a Protobufs protocol defined in the [`:/proto/`](../proto) folder. The basic structure of this protocol is the following: -1. The Publisher requests an attestation from the Provider using the `/trusted-pods/attest/0.0.1` libp2p protocol. +1. The Publisher requests an attestation from the Provider using the `/apocryph/attest/0.0.1` libp2p protocol. 2. The Provider replies with an attestation (and optionally, the resource capacity available), proving that the whole Provider stack (including the endpoint of the current stream) is running inside a TEE which is trusted by the Publisher. -3. Optionally, the Publisher inquires about the resources that will be requested, using `/trusted-pods/provisioning-capacity/0.0.1`. Resource requirements can include amounts of CPU cores, RAM memory, GPU presence, specific CPU models, and even certain numbers of external IPs available. +3. Optionally, the Publisher inquires about the resources that will be requested, using `/apocryph/provisioning-capacity/0.0.1`. Resource requirements can include amounts of CPU cores, RAM memory, GPU presence, specific CPU models, and even certain numbers of external IPs available. 4. Optionally, the Provider replies with the resources that would be offered / that are available; along with the prices (and payment address) at which the Provider is willing to offer those. -5. The Publisher sends a message that includes the on-wire Manifest and payment channel information using `/trusted-pods/provision-pod/0.0.1`. +5. The Publisher sends a message that includes the on-wire Manifest and payment channel information using `/apocryph/provision-pod/0.0.1`. 6. The Provider provisions the requested services, and replies with a status message ## Manifest wire format diff --git a/test/e2e/constellation/ipfs/ipfs.yml b/test/e2e/constellation/ipfs/ipfs.yml index 6d0a62cf..248f2ccf 100644 --- a/test/e2e/constellation/ipfs/ipfs.yml +++ b/test/e2e/constellation/ipfs/ipfs.yml @@ -88,7 +88,7 @@ spec: - name: IPFS_PROFILE value: - name: p2p-helper - image: ghcr.io/comrade-coop/trusted-pods/p2p-helper:master + image: ghcr.io/comrade-coop/apocryph/p2p-helper:master command: ["ipfs-p2p-helper", "run", "--ipfs", "/ip4/127.0.0.1/tcp/5001"] volumes: - name: init-scripts @@ -117,6 +117,6 @@ spec: # spec: # containers: # - name: p2p-helper -# image: host.minikube.internal:5000/comradecoop/trusted-pods/p2p-helper +# image: host.minikube.internal:5000/comradecoop/apocryph/p2p-helper # command: ["ipfs-p2p-helper", "run", "--ipfs", "/dns4/ipfs-rpc.ipfs.svc.cluster.local/tcp/5001"] # serviceAccountName: ipfs-p2p-serviceaccount diff --git a/test/e2e/constellation/trustedpods/tpodserver.yml b/test/e2e/constellation/trustedpods/tpodserver.yml index d43aaa43..3860c040 100644 --- a/test/e2e/constellation/trustedpods/tpodserver.yml +++ b/test/e2e/constellation/trustedpods/tpodserver.yml @@ -5,9 +5,9 @@ metadata: namespace: trustedpods labels: app: tpodserver - coop.comrade/trusted-pods-p2p-helper: "true" + coop.comrade/apocryph-p2p-helper: "true" annotations: - coop.comrade/trusted-pods-p2p-helper: "/x/trusted-pods/provision-pod/0.0.1" + coop.comrade/apocryph-p2p-helper: "/x/apocryph/provision-pod/0.0.1" spec: ports: @@ -65,7 +65,7 @@ spec: spec: containers: - name: register - image: ghcr.io/comrade-coop/trusted-pods/server:master + image: ghcr.io/comrade-coop/apocryph/server:master command: [ "tpodserver", "registry", "register", "--config", "config.yaml", @@ -106,7 +106,7 @@ spec: spec: containers: - name: tpodserver - image: ghcr.io/comrade-coop/trusted-pods/server:master + image: ghcr.io/comrade-coop/apocryph/server:master command: [ "tpodserver", "listen", "--address", "0.0.0.0:8080", @@ -124,7 +124,7 @@ spec: subPath: config.yaml readOnly: true - name: tpodmonitor - image: ghcr.io/comrade-coop/trusted-pods/server:master + image: ghcr.io/comrade-coop/apocryph/server:master command: [ "tpodserver", "monitor", "--config", "config.yaml", diff --git a/test/e2e/minikube/ipfs/ipfs.yml b/test/e2e/minikube/ipfs/ipfs.yml index a232ac8c..b9587671 100644 --- a/test/e2e/minikube/ipfs/ipfs.yml +++ b/test/e2e/minikube/ipfs/ipfs.yml @@ -87,7 +87,7 @@ spec: - name: IPFS_PROFILE value: - name: p2p-helper - image: host.minikube.internal:5000/comradecoop/trusted-pods/p2p-helper + image: host.minikube.internal:5000/comradecoop/apocryph/p2p-helper command: ["ipfs-p2p-helper", "run", "--ipfs", "/ip4/127.0.0.1/tcp/5001"] volumes: - name: init-scripts @@ -124,6 +124,6 @@ spec: # spec: # containers: # - name: p2p-helper -# image: host.minikube.internal:5000/comradecoop/trusted-pods/p2p-helper +# image: host.minikube.internal:5000/comradecoop/apocryph/p2p-helper # command: ["ipfs-p2p-helper", "run", "--ipfs", "/dns4/ipfs-rpc.ipfs.svc.cluster.local/tcp/5001"] # serviceAccountName: ipfs-p2p-serviceaccount diff --git a/test/e2e/minikube/run-test.sh b/test/e2e/minikube/run-test.sh index 14ee2ed4..c670573f 100755 --- a/test/e2e/minikube/run-test.sh +++ b/test/e2e/minikube/run-test.sh @@ -45,19 +45,19 @@ set -v ## 0.1: Build/tag server and p2p-helper images -docker build -t comradecoop/trusted-pods/server:latest ../../.. --target server +docker build -t comradecoop/apocryph/server:latest ../../.. --target server -docker build -t comradecoop/trusted-pods/p2p-helper:latest ../../.. --target p2p-helper +docker build -t comradecoop/apocryph/p2p-helper:latest ../../.. --target p2p-helper ## 0.2: Create local registry and push server and p2p-helper images docker run -d -p 5000:5000 --restart=always --name registry registry:2 || echo "Docker registry already running" -docker tag comradecoop/trusted-pods/server:latest localhost:5000/comradecoop/trusted-pods/server:latest -docker push localhost:5000/comradecoop/trusted-pods/server:latest +docker tag comradecoop/apocryph/server:latest localhost:5000/comradecoop/apocryph/server:latest +docker push localhost:5000/comradecoop/apocryph/server:latest -docker tag comradecoop/trusted-pods/p2p-helper:latest localhost:5000/comradecoop/trusted-pods/p2p-helper:latest -docker push localhost:5000/comradecoop/trusted-pods/p2p-helper:latest +docker tag comradecoop/apocryph/p2p-helper:latest localhost:5000/comradecoop/apocryph/p2p-helper:latest +docker push localhost:5000/comradecoop/apocryph/p2p-helper:latest ## 0.3: Set up a local ethereum node and deploy contracts to it diff --git a/test/e2e/minikube/trustedpods/tpodserver.yml b/test/e2e/minikube/trustedpods/tpodserver.yml index b85aa882..3dbf3136 100644 --- a/test/e2e/minikube/trustedpods/tpodserver.yml +++ b/test/e2e/minikube/trustedpods/tpodserver.yml @@ -5,9 +5,9 @@ metadata: namespace: trustedpods labels: app: tpodserver - coop.comrade/trusted-pods-p2p-helper: "true" + coop.comrade/apocryph-p2p-helper: "true" annotations: - coop.comrade/trusted-pods-p2p-helper: "/x/trusted-pods/provision-pod/0.0.1" + coop.comrade/apocryph-p2p-helper: "/x/apocryph/provision-pod/0.0.1" spec: ports: @@ -65,7 +65,7 @@ spec: spec: containers: - name: register - image: host.minikube.internal:5000/comradecoop/trusted-pods/server + image: host.minikube.internal:5000/comradecoop/apocryph/server command: [ "tpodserver", "registry", "register", "--config", "config.yaml", @@ -106,7 +106,7 @@ spec: spec: containers: - name: tpodserver - image: host.minikube.internal:5000/comradecoop/trusted-pods/server + image: host.minikube.internal:5000/comradecoop/apocryph/server command: [ "tpodserver", "listen", "--address", "0.0.0.0:8080", @@ -124,7 +124,7 @@ spec: subPath: config.yaml readOnly: true - name: tpodmonitor - image: host.minikube.internal:5000/comradecoop/trusted-pods/server + image: host.minikube.internal:5000/comradecoop/apocryph/server command: [ "tpodserver", "monitor", "--config", "config.yaml", diff --git a/test/e2e/webui/package.json b/test/e2e/webui/package.json index 6e9acf58..16672d28 100644 --- a/test/e2e/webui/package.json +++ b/test/e2e/webui/package.json @@ -1,5 +1,5 @@ { - "name": "trusted-pods-webui", + "name": "apocryph-webui", "private": true, "type": "module", "scripts": { diff --git a/test/e2e/webui/src/connections.ts b/test/e2e/webui/src/connections.ts index f13b7b7f..7ffee005 100644 --- a/test/e2e/webui/src/connections.ts +++ b/test/e2e/webui/src/connections.ts @@ -3,7 +3,7 @@ import { createPublicClient, createWalletClient, http } from 'viem' import { foundry } from 'viem/chains' import { privateKeyToAccount } from 'viem/accounts' -import { createClient } from 'trusted-pods-ipfs-ts' +import { createClient } from 'apocryph-ipfs-ts' export const publicClient = createPublicClient({ chain: foundry, diff --git a/test/e2e/webui/src/fund.ts b/test/e2e/webui/src/fund.ts index c2054a50..2f8755f9 100644 --- a/test/e2e/webui/src/fund.ts +++ b/test/e2e/webui/src/fund.ts @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0 import './style.css' -import { paymentABI, ierc20ABI, mockTokenABI } from 'trusted-pods-abi-ts' +import { paymentABI, ierc20ABI, mockTokenABI } from 'apocryph-abi-ts' import { bytesToHex } from 'viem' import { publicClient, walletClient } from './connections' diff --git a/test/e2e/webui/src/main.ts b/test/e2e/webui/src/main.ts index 6260f055..a9d72ec4 100644 --- a/test/e2e/webui/src/main.ts +++ b/test/e2e/webui/src/main.ts @@ -7,7 +7,7 @@ import { ProviderConfig, Pod, PaymentChannelConfig -} from 'trusted-pods-proto-ts' +} from 'apocryph-proto-ts' import { fundPaymentChannel } from './fund' import { provisionPod } from './provision' import { bytesToHex, hexToBytes } from 'viem' diff --git a/test/e2e/webui/src/provision.ts b/test/e2e/webui/src/provision.ts index 30abc702..800716f9 100644 --- a/test/e2e/webui/src/provision.ts +++ b/test/e2e/webui/src/provision.ts @@ -9,7 +9,7 @@ import { Hex } from 'viem' import { heliaNodePromise, walletClient } from './connections' -import { connectTo } from 'trusted-pods-ipfs-ts' +import { connectTo } from 'apocryph-ipfs-ts' import { multiaddr } from '@multiformats/multiaddr' import { createPromiseClient } from '@connectrpc/connect' import { @@ -17,7 +17,7 @@ import { ProvisionPodResponse, ProvisionPodService, provisionPodProtocolName -} from 'trusted-pods-proto-ts' +} from 'apocryph-proto-ts' import { PartialMessage } from '@bufbuild/protobuf' // Copied and adapted from pkg/publisher/connect.go diff --git a/test/e2e/webui/src/template.ts b/test/e2e/webui/src/template.ts index ce4c84f3..f0b4e5c2 100644 --- a/test/e2e/webui/src/template.ts +++ b/test/e2e/webui/src/template.ts @@ -5,7 +5,7 @@ import type { ProviderConfig, Pod, PaymentChannelConfig -} from 'trusted-pods-proto-ts' +} from 'apocryph-proto-ts' import type { PartialMessage } from '@bufbuild/protobuf' import { hexToBytes } from 'viem' diff --git a/test/integration/ipfs/index.ts b/test/integration/ipfs/index.ts index c4860fb4..3bfae283 100644 --- a/test/integration/ipfs/index.ts +++ b/test/integration/ipfs/index.ts @@ -1,15 +1,15 @@ // SPDX-License-Identifier: GPL-3.0 -import { connectTo, createClient } from 'trusted-pods-ipfs-ts' +import { connectTo, createClient } from 'tapocryph-ipfs-ts' import { createPromiseClient } from '@connectrpc/connect' -import { ProvisionPodService } from 'trusted-pods-proto-ts' +import { ProvisionPodService } from 'apocryph-proto-ts' import { multiaddr, type MultiaddrInput } from '@multiformats/multiaddr' const helia = await createClient({ testMode: true }) const peerAddr: MultiaddrInput = process.argv[1] -const client = createPromiseClient(ProvisionPodService, connectTo(helia, multiaddr(peerAddr), '/x/trusted-pods/provision-pod/0.0.1')) +const client = createPromiseClient(ProvisionPodService, connectTo(helia, multiaddr(peerAddr), '/x/apocryph/provision-pod/0.0.1')) const result = await client.provisionPod({ pod: { diff --git a/test/integration/lifecycle/build.sh b/test/integration/lifecycle/build.sh index 7f89fbbe..69eaa96e 100755 --- a/test/integration/lifecycle/build.sh +++ b/test/integration/lifecycle/build.sh @@ -6,11 +6,11 @@ cd "$(dirname "$0")" cd server go build . -docker build . -t comradecoop/trusted-pods/devserver:latest +docker build . -t comradecoop/apocryph/devserver:latest docker run -d -p 5000:5000 --restart=always --name registry registry:3 || echo "Docker registry already running" -docker tag comradecoop/trusted-pods/devserver:latest localhost:5000/comradecoop/trusted-pods/devserver:latest -docker push localhost:5000/comradecoop/trusted-pods/devserver:latest +docker tag comradecoop/apocryph/devserver:latest localhost:5000/comradecoop/apocryph/devserver:latest +docker push localhost:5000/comradecoop/apocryph/devserver:latest rm server diff --git a/test/integration/lifecycle/devserver/devserver.yml b/test/integration/lifecycle/devserver/devserver.yml index fd6fc00b..8450bdac 100644 --- a/test/integration/lifecycle/devserver/devserver.yml +++ b/test/integration/lifecycle/devserver/devserver.yml @@ -55,7 +55,7 @@ spec: spec: containers: - name: devserver - image: host.minikube.internal:5000/comradecoop/trusted-pods/devserver + image: host.minikube.internal:5000/comradecoop/apocryph/devserver env: - name: SERVER_PORT value: "8090"