diff --git a/Tiltfile b/Tiltfile index 6025b231ef..0a408c9095 100644 --- a/Tiltfile +++ b/Tiltfile @@ -1,38 +1,79 @@ # This file is interpreted by `tilt`, and describes how to get a local flow environment running. -DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres" -os.putenv("DATABASE_URL", DATABASE_URL) -os.putenv("RUST_LOG", "info") -os.putenv("DOCKER_DEFAULT_PLATFORM", "linux/amd64") +DATABASE_URL="postgresql://postgres:postgres@db.flow.localhost:5432/postgres" # Secret used to sign Authorizations within a local data plane, as base64("supersecret"). # Also allow requests without an Authorization (to not break data-plane-gateway just yet). AUTH_KEYS="c3VwZXJzZWNyZXQ=,AA==" -os.putenv("CONSUMER_AUTH_KEYS", AUTH_KEYS) -os.putenv("BROKER_AUTH_KEYS", AUTH_KEYS) - REPO_BASE= '%s/..' % os.getcwd() TEST_KMS_KEY="projects/helpful-kingdom-273219/locations/us-central1/keyRings/dev/cryptoKeys/testing" -HOME_DIR=os.getenv("HOME") -FLOW_DIR=os.getenv("FLOW_DIR", os.path.join(HOME_DIR, "flow-local")) +FLOW_DIR=os.getenv("FLOW_DIR", os.path.join(os.getenv("HOME"), "flow-local")) ETCD_DATA_DIR=os.path.join(FLOW_DIR, "etcd") FLOW_BUILDS_ROOT="file://"+os.path.join(FLOW_DIR, "builds")+"/" -# Or alternatively, use an actual bucket when testing with external data-planes: -# FLOW_BUILDS_ROOT="gs://example/builds/" # A token for the local-stack system user signed against the local-stack # supabase secret (super-secret-jwt-token-with-at-least-32-characters-long). SYSTEM_USER_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwOi8vMTI3LjAuMC4xOjU0MzEvYXV0aC92MSIsInN1YiI6ImZmZmZmZmZmLWZmZmYtZmZmZi1mZmZmLWZmZmZmZmZmZmZmZiIsImF1ZCI6ImF1dGhlbnRpY2F0ZWQiLCJleHAiOjI3MDAwMDAwMDAsImlhdCI6MTcwMDAwMDAwMCwiZW1haWwiOiJzdXBwb3J0QGVzdHVhcnkuZGV2Iiwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJpc19hbm9ueW1vdXMiOmZhbHNlfQ.Nb-N4s_YnObBHGivSTe_8FEniVUUpehzrRkF5JgNWWU" -# Start supabase, which is needed in order to compile the agent -local_resource('supabase', cmd='supabase start', links='http://localhost:5433') +# Paths for CA and server certificates +CA_KEY_PATH = "%s/ca.key" % FLOW_DIR +CA_CERT_PATH = "%s/ca.crt" % FLOW_DIR +TLS_KEY_PATH = "%s/server.key" % FLOW_DIR +TLS_CERT_PATH = "%s/server.crt" % FLOW_DIR + +local_resource( + 'supabase', + cmd='supabase start', + links='http://db.flow.localhost:5433', +) -# Builds many of the binaries that we'll need -local_resource('make', cmd='make', resource_deps=['supabase']) +local_resource( + 'make', + cmd='make', + resource_deps=['supabase'], +) -local_resource('etcd', serve_cmd='%s/flow/.build/package/bin/etcd \ +local_resource( + 'self-signed-tls-cert', + dir=REPO_BASE, + cmd='[ -f "%s" ] && [ -f "%s" ] || (\ + openssl req -x509 -nodes -days 3650 \ + -subj "/C=US/ST=QC/O=Estuary/CN=Estuary Root CA" \ + -addext basicConstraints=critical,CA:TRUE,pathlen:0 \ + -newkey ec -pkeyopt ec_paramgen_curve:P-256 \ + -keyout "%s" \ + -out "%s" \ + ) && (\ + openssl req -nodes -newkey ec -pkeyopt ec_paramgen_curve:P-256 \ + -subj "/C=US/ST=QC/O=Estuary/CN=flow.localhost" \ + -addext "subjectAltName=DNS:flow.localhost,DNS:*.flow.localhost,IP:127.0.0.1" \ + -keyout "%s" -out server.csr \ + ) && (\ + echo "subjectAltName=DNS:flow.localhost,DNS:*.flow.localhost,IP:127.0.0.1" > extfile.txt && \ + echo "basicConstraints=CA:FALSE" >> extfile.txt && \ + openssl x509 -req -days 365 \ + -in server.csr -CA "%s" -CAkey "%s" -CAcreateserial \ + -out "%s" \ + -extfile extfile.txt \ + ) && (\ + rm server.csr extfile.txt \ + )' % ( + TLS_CERT_PATH, # Check if server certificate already exists + TLS_KEY_PATH, # Check if server key already exists + CA_KEY_PATH, # CA key output path (ECDSA) + CA_CERT_PATH, # CA certificate output path + TLS_KEY_PATH, # Server key output path (ECDSA) + CA_CERT_PATH, # CA certificate input path + CA_KEY_PATH, # CA key input path + TLS_CERT_PATH # Server certificate output path + ) +) + +local_resource( + 'etcd', + serve_cmd='%s/flow/.build/package/bin/etcd \ --data-dir %s \ --log-level info \ --logger zap' % (REPO_BASE, ETCD_DATA_DIR), @@ -43,56 +84,89 @@ local_resource('etcd', serve_cmd='%s/flow/.build/package/bin/etcd \ ) ) -local_resource('gazette', serve_cmd='%s/flow/.build/package/bin/gazette serve \ - --broker.port=8080 \ - --broker.host=localhost \ +local_resource( + 'gazette', + serve_cmd='%s/flow/.build/package/bin/gazette serve \ + --broker.allow-origin http://localhost:3000 \ --broker.disable-stores \ - --broker.max-replication=1 \ - --log.level=info' % REPO_BASE, - links='http://localhost:8080/debug/pprof', + --broker.host gazette.flow.localhost \ + --broker.max-replication 1 \ + --broker.port 8080 \ + --etcd.address http://etcd.flow.localhost:2379 \ + --log.level=info \ + ' % REPO_BASE, + serve_env={ + "BROKER_AUTH_KEYS": AUTH_KEYS, + "BROKER_PEER_CA_FILE": CA_CERT_PATH, + "BROKER_SERVER_CERT_FILE": TLS_CERT_PATH, + "BROKER_SERVER_CERT_KEY_FILE": TLS_KEY_PATH, + }, + links='https://gazette.flow.localhost:8080/debug/pprof', resource_deps=['etcd'], readiness_probe=probe( initial_delay_secs=5, - http_get=http_get_action(port=8080, path='/debug/ready') + http_get=http_get_action(port=8080, path='/debug/ready', scheme='https') ) ) -local_resource('reactor', serve_cmd='%s/flow/.build/package/bin/flowctl-go serve consumer \ - --flow.allow-local \ - --broker.address http://localhost:8080 \ +local_resource( + 'reactor', + serve_cmd='%s/flow/.build/package/bin/flowctl-go serve consumer \ + --broker.address https://gazette.flow.localhost:8080 \ --broker.cache.size 128 \ - --consumer.host localhost \ + --consumer.allow-origin http://localhost:3000 \ + --consumer.host reactor.flow.localhost \ --consumer.limit 1024 \ --consumer.max-hot-standbys 0 \ --consumer.port 9000 \ - --etcd.address http://localhost:2379 \ - --flow.builds-root %s \ - --flow.network supabase_network_flow \ - --flow.control-api http://localhost:8675 \ + --etcd.address http://etcd.flow.localhost:2379 \ + --flow.allow-local \ + --flow.control-api http://agent.flow.localhost:8675 \ + --flow.dashboard http://localhost:3000 \ --flow.data-plane-fqdn local-cluster.dp.estuary-data.com \ - --log.format text \ - --log.level info' % (REPO_BASE, FLOW_BUILDS_ROOT), - links='http://localhost:9000/debug/pprof', + --flow.network supabase_network_flow \ + --log.level info \ + ' % (REPO_BASE), + serve_env={ + "BROKER_AUTH_KEYS": AUTH_KEYS, + "BROKER_TRUSTED_CA_FILE": CA_CERT_PATH, + "CONSUMER_AUTH_KEYS": AUTH_KEYS, + "CONSUMER_PEER_CA_FILE": CA_CERT_PATH, + "CONSUMER_SERVER_CERT_FILE": TLS_CERT_PATH, + "CONSUMER_SERVER_CERT_KEY_FILE": TLS_KEY_PATH, + "DOCKER_DEFAULT_PLATFORM": "linux/amd64", + "FLOW_BUILDS_ROOT": FLOW_BUILDS_ROOT, + }, + links='https://reactor.flow.localhost:9000/debug/pprof', resource_deps=['etcd'], readiness_probe=probe( initial_delay_secs=5, - http_get=http_get_action(port=9000, path='/debug/ready') - ) + http_get=http_get_action(port=9000, path='/debug/ready', scheme='https') + ), ) -local_resource('agent', serve_cmd='%s/flow/.build/package/bin/agent \ +local_resource( + 'agent', + serve_cmd='%s/flow/.build/package/bin/agent \ --connector-network supabase_network_flow \ --allow-local \ --allow-origin http://localhost:3000 \ --api-port 8675 \ - --builds-root %s \ --serve-handlers \ - --bin-dir %s/flow/.build/package/bin' % (REPO_BASE, FLOW_BUILDS_ROOT, REPO_BASE), + ' % (REPO_BASE), + serve_env={ + "BIN_DIR": '%s/flow/.build/package/bin' % REPO_BASE, + "BUILDS_ROOT": FLOW_BUILDS_ROOT, + "DATABASE_URL": DATABASE_URL, + "RUST_LOG": "info", + "SSL_CERT_FILE": CA_CERT_PATH, + }, resource_deps=['reactor', 'gazette'] ) -local_resource('create-data-plane-local-cluster', - cmd='sleep 5 && curl -v \ +local_resource( + 'create-data-plane-local-cluster', + cmd='sleep 2 && curl -v \ -X POST \ -H "content-type: application/json" \ -H "authorization: bearer %s" \ @@ -100,16 +174,17 @@ local_resource('create-data-plane-local-cluster', "name":"local-cluster",\ "category": {\ "manual": {\ - "brokerAddress": "http://localhost:8080",\ - "reactorAddress": "http://localhost:9000",\ + "brokerAddress": "https://gazette.flow.localhost:8080",\ + "reactorAddress": "https://reactor.flow.localhost:9000",\ "hmacKeys": ["c3VwZXJzZWNyZXQ="]\ }\ }\ - }\' http://localhost:8675/admin/create-data-plane' % SYSTEM_USER_TOKEN, + }\' http://agent.flow.localhost:8675/admin/create-data-plane' % SYSTEM_USER_TOKEN, resource_deps=['agent'] ) -local_resource('update-l2-reporting', +local_resource( + 'update-l2-reporting', cmd='curl -v \ -X POST \ -H "content-type: application/json" \ @@ -117,16 +192,18 @@ local_resource('update-l2-reporting', --data-binary \'{ \ "defaultDataPlane":"ops/dp/public/local-cluster",\ "dryRun":false\ - }\' http://localhost:8675/admin/update-l2-reporting' % SYSTEM_USER_TOKEN, + }\' http://agent.flow.localhost:8675/admin/update-l2-reporting' % SYSTEM_USER_TOKEN, resource_deps=['create-data-plane-local-cluster'] ) -local_resource('local-ops-view', +local_resource( + 'local-ops-view', cmd='./local/ops-publication.sh ops-catalog/local-view.bundle.json | psql "%s"' % DATABASE_URL, resource_deps=['update-l2-reporting'] ) -local_resource('config-encryption', +local_resource( + 'config-encryption', serve_cmd='%s/config-encryption/target/debug/flow-config-encryption --gcp-kms %s' % (REPO_BASE, TEST_KMS_KEY) ) @@ -137,45 +214,8 @@ local_resource( ) local_resource( - 'ui', + 'dashboard', serve_dir='%s/ui' % REPO_BASE, serve_cmd='BROWSER=none npm start', links='http://localhost:3000' -) - -DPG_REPO='%s/data-plane-gateway' % REPO_BASE -DPG_TLS_CERT_PATH='%s/local-tls-cert.pem' % DPG_REPO -DPG_TLS_KEY_PATH='%s/local-tls-private-key.pem' % DPG_REPO - -local_resource('dpg-tls-cert', - dir='%s/data-plane-gateway' % REPO_BASE, - # These incantations create a non-CA self-signed certificate which is - # valid for localhost and its subdomains. rustls is quite fiddly about - # accepting self-signed certificates so all of these are required. - cmd='[ -f %s ] || openssl req -x509 -nodes -days 365 \ - -subj "/ST=QC/O=Estuary/CN=localhost" \ - -addext basicConstraints=critical,CA:FALSE,pathlen:1 \ - -addext "subjectAltName=DNS:localhost,DNS:*.localhost,IP:127.0.0.1" \ - -newkey rsa:2048 -keyout "%s" \ - -out "%s"' % (DPG_TLS_KEY_PATH, DPG_TLS_KEY_PATH, DPG_TLS_CERT_PATH) -) - -local_resource('data-plane-gateway', - dir=DPG_REPO, - serve_dir=DPG_REPO, - cmd='go build .', - serve_cmd='./data-plane-gateway \ - --tls-private-key=%s \ - --tls-certificate=%s \ - --broker-address=localhost:8080 \ - --consumer-address=localhost:9000 \ - --log.level=debug \ - --inference-address=localhost:9090 \ - --control-plane-auth-url=http://localhost:3000' % ( - DPG_TLS_KEY_PATH, - DPG_TLS_CERT_PATH - ), - links='https://localhost:28318/', - resource_deps=['gazette', 'reactor', 'dpg-tls-cert'] -) - +) \ No newline at end of file diff --git a/go.mod b/go.mod index ecbaa8a123..41280f0d0e 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,7 @@ require ( github.com/gogo/protobuf v1.3.2 github.com/golang-jwt/jwt/v5 v5.2.1 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 + github.com/hashicorp/golang-lru/v2 v2.0.7 github.com/jessevdk/go-flags v1.5.0 github.com/jgraettinger/gorocksdb v0.0.0-20240221161858-8f4873ee26e0 github.com/mattn/go-sqlite3 v2.0.3+incompatible @@ -22,7 +23,7 @@ require ( github.com/stretchr/testify v1.9.0 go.etcd.io/etcd/api/v3 v3.5.0 go.etcd.io/etcd/client/v3 v3.5.0 - go.gazette.dev/core v0.99.1-0.20240908182145-d0c9d56a6796 + go.gazette.dev/core v0.99.1-0.20240920050446-fc9749109d92 golang.org/x/net v0.26.0 google.golang.org/api v0.126.0 google.golang.org/grpc v1.65.0 @@ -49,6 +50,9 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dustin/go-humanize v1.0.0 // indirect github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0 // indirect + github.com/ghodss/yaml v1.0.0 // indirect + github.com/gogo/gateway v1.1.0 // indirect + github.com/golang/glog v1.2.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect @@ -57,6 +61,7 @@ require ( github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect github.com/googleapis/gax-go/v2 v2.11.0 // indirect github.com/gorilla/schema v1.4.1 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/jgraettinger/cockroach-encoding v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect diff --git a/go.sum b/go.sum index f2f4285c71..7d8a7d1f0f 100644 --- a/go.sum +++ b/go.sum @@ -130,6 +130,7 @@ github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -142,12 +143,17 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= +github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4= +github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -224,11 +230,15 @@ github.com/gorilla/schema v1.4.1 h1:jUg5hUjCSDZpNGLuXQOgIWGdlgrIdYvgQ0wZtdK1M3E= github.com/gorilla/schema v1.4.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= @@ -329,6 +339,7 @@ github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0 github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= @@ -372,8 +383,8 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.0 h1:2aQv6F436YnN7I4VbI8PPYrBhu+SmrTaADcf8Mi/ go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v3 v3.5.0 h1:62Eh0XOro+rDwkrypAGDfgmNh5Joq+z+W9HZdlXMzek= go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.gazette.dev/core v0.99.1-0.20240908182145-d0c9d56a6796 h1:GIKRhZsXYToRso4HXrFI6RipUs8We/gksc/hUgN830A= -go.gazette.dev/core v0.99.1-0.20240908182145-d0c9d56a6796/go.mod h1:ztgm7s+VPfspBo3NSC7sedoZlASlKIa4Etmf4sYI8PY= +go.gazette.dev/core v0.99.1-0.20240920050446-fc9749109d92 h1:QDNKYcKpBDuF5Dan1++wAn5+zELjf4nPpWSJybJ/cig= +go.gazette.dev/core v0.99.1-0.20240920050446-fc9749109d92/go.mod h1:QR31EBrUMzThz/oDYxJHYwmlFSOjgvuNE14lHl/ViX4= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -443,6 +454,7 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -505,6 +517,7 @@ golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -686,6 +699,7 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -725,6 +739,8 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/go/flowctl-go/cmd-temp-data-plane.go b/go/flowctl-go/cmd-temp-data-plane.go index 219ff972b8..16aeccbebc 100644 --- a/go/flowctl-go/cmd-temp-data-plane.go +++ b/go/flowctl-go/cmd-temp-data-plane.go @@ -188,6 +188,7 @@ func (cmd cmdTempDataPlane) consumerCmd(ctx context.Context, tempdir, buildsRoot "consumer", "--broker.address", gazetteAddr, "--broker.cache.size", "128", + "--consumer.allow-origin", "http://localhost:3000", "--consumer.limit", "1024", "--consumer.max-hot-standbys", "0", "--consumer.port", port, @@ -195,6 +196,8 @@ func (cmd cmdTempDataPlane) consumerCmd(ctx context.Context, tempdir, buildsRoot "--consumer.watch-delay", "0ms", // Speed test execution. "--etcd.address", etcdAddr, "--flow.builds-root", buildsRoot, + "--flow.control-api", "http://agent.flow.localhost:8675", + "--flow.dashboard", "http://dashboard.flow.localhost:3000", "--flow.test-apis", "--log.format", cmd.Log.Format, "--log.level", cmd.Log.Level,