Generally command-line tools connect only to the database host. But there are two exceptions:
When the command-line tool starts, it checks if its version is up to date. Details
The edgedb server
family of commands and edgedb self-update
discover package versions and docker images and also invoke package
managers and the docker engine to do index updates and
related data.
Version check checks the current version of command-line tool by fetching
https://packages.edgedb.com/.jsonindexes/*.json
.
Here is how such a request looks like:
GET /archive/.jsonindexes/linux-x86_64.json HTTP/1.1
host: packages.edgedb.com
content-length: 0
user-agent: edgedb
The User-Agent
header only specifies that request is done by
edgedb
command-line tool (without version number). The platform,
architecture and whether nightly is used can be devised from the URL of
the query.
Latest version number is cached for the random duration from 16 to 32 hours (this randomization is done both for spreading the load and for better anonymizing the data). A failure is cached for the random duration from 6 to 12 hours.
To disable version check do one of two things:
1. Use --no-version-check
command-line parameter to disable just
for this invocation
2. Export EDGEDB_NO_VERSION_CHECK=true
in the environment.
To verify that check is skipped and no network access is being done logging facility can be used:
$ export RUST_LOG=edgedb::version_check=debug
$ edgedb --no-version-check
[..snip..] Skipping version check due to --no-version-check
edgedb>
$ EDGEDB_NO_VERSION_CHECK=true edgedb
[..snip..] Skipping version check due to EDGEDB_NO_VERSION_CHECK
edgedb>
edgedb server
and edgedb self-update
Generally these commands do requests with exactly the headers like version check.
Data sources for the commands directly:
Package indexes and packages at https://packages.edgedb.com
Docker image index at https://registry.hub.docker.com
Data sources that can be used indirectly:
Docker engine may fetch indexes and images. Currently the only
images used are at Docker Hub. More specifically
are edgedb/*
and busybox
(Docker’s official image).
Package managers (currently apt-get
, yum
) can fetch indexes
and install packages from https://packages.edgedb.com
. And
as we use generic commands (e.g. apt-get update
) and system
dependencies, package manager can fetch package indexes and package
data from any sources listed in repositories configured in the
system.
To avoid reaching these hosts, avoid using: edgedb server
and
edgedb self-update
subcommands. These commands only simplify
installation and maintenance of the installations. All EdgeDB features
are available without using them.