Bundled Garage (evaluation only)

The in-cluster S3-compatible store bundled for evaluation - how to register it, its limits, and how to delete objects.

For evaluation, Eddytor can bundle Garage - an S3-compatible object store by Deuxfleurs (AGPLv3), shipped unmodified. A bucket (EDDYTOR_BUCKET, default eddytor) is created on boot so you can make tables immediately.

Heads up

Evaluation only. The bundled setup is a single sqlite node with no replication and no backups. Point Eddytor at a managed S3 or a multi-node Garage cluster for anything you keep - see Bundled vs external.

Register it

The credentials are the random GARAGE_ACCESS_KEY / GARAGE_SECRET_KEY the installer wrote to .env. Register the bundled bucket against the in-cluster endpoint:

eddytor create storage s3 --bucket eddytor \
  --endpoint http://garage:3900 --region us-east-1 \
  --access-key-id "$GARAGE_ACCESS_KEY" --secret-access-key "$GARAGE_SECRET_KEY"

http://garage:3900 is the in-cluster S3 endpoint the engine uses.

The endpoint is the in-cluster Service name eddytor-garage:3900 (not garage:3900), and the creds are the chart's demo defaults (garage.accessKey / garage.secretKey - override for real use):

eddytor create storage s3 --bucket eddytor \
  --endpoint http://eddytor-garage:3900 --region us-east-1 \
  --access-key-id GK00000000000000000000000000000000 \
  --secret-access-key 0000000000000000000000000000000000000000000000000000000000000000

helm install … --set garage.bundled=true prints these commands in its NOTES.

Deleting objects

Garage has no web console, and the bundled image is scratch - only the /garage binary, no shell - so you can't exec in to browse data. Delete through Eddytor, which keeps the object store and Eddytor's metadata in sync:

# removes the table's Delta files AND deregisters it; needs the TABLES_DELETE scope
eddytor delete table eddytor <schema> <table>

Equivalent: DELETE /v1/tables/{catalog}/{schema}/{table_name}, the drop_table MCP tool, or the Web UI. The catalog is always eddytor.

Last resort: the S3 layer

Only for orphaned data Eddytor no longer tracks. A table is an object prefix in the bucket. Point any S3 client at the endpoint - for bundled Garage that's http://127.0.0.1:3900, region us-east-1, creds = GARAGE_ACCESS_KEY / GARAGE_SECRET_KEY from .env:

export AWS_ACCESS_KEY_ID="$GARAGE_ACCESS_KEY" AWS_SECRET_ACCESS_KEY="$GARAGE_SECRET_KEY"
EP="--endpoint-url http://127.0.0.1:3900 --region us-east-1"
aws s3 ls s3://eddytor/ $EP --recursive            # find the table prefix
aws s3 rm s3://eddytor/<path-to-table>/ $EP --recursive

Heads up

Deleting objects behind Eddytor's back leaves stale discovery/metadata until the next discovery pass - the table keeps appearing in listings with no files under it. Prefer eddytor delete table.

On this page