Skip to content

docs(storage): a GCS emulator needs a disable_oauth key file; fake-gcs-server is not one - #1187

Merged
ertime037 merged 1 commit into
mainfrom
docs/gcs-emulator-writes
Oct 27, 2026
Merged

ertime037 merged 1 commit into
mainfrom
docs/gcs-emulator-writes

Conversation

@devitway

Copy link
Copy Markdown
Contributor

The GCS doc comments (storage/object.rs, config/storage.rs) named fake-gcs-server as a supported emulator and implied that an http:// base URL is enough. Neither is true:

  • fake-gcs-server has no XML API object PUT (its upload handler requires uploadType) and does not handle x-goog-copy-source, so NORA can't write to it on any version.
  • An http:// base URL skips request signing, but object_store's GCS client still asks the credential provider for a token on writes. Without key material every PUT fails with Error getting token response body.

What works against an XML API emulator is a service-account file with "disable_oauth": true. private_key, private_key_id and client_email must be present but are not used. object_store's own example leaves out private_key_id, and NORA then fails at startup with missing field private_key_id. We checked on 1.4.3 and with object_store 0.14 (#1162): with this file, small and multipart writes and reads work; without it, writes return 500.

Only comments change, no behaviour.

…s-server is not one

The GCS doc comments named fake-gcs-server as a supported emulator. It is
not: it has no XML API object PUT and does not handle x-goog-copy-source,
so NORA cannot write to it on any version.

They also implied an http:// base_url is enough. It skips request signing,
but object_store's GCS client still asks the credential provider for a
token on writes, so without key material every PUT fails with "Error
getting token response body". A service-account file with
"disable_oauth": true (private_key, private_key_id and client_email
present but unused) makes writes work against an XML API emulator.
@devitway
devitway requested a review from ertime037 as a code owner October 27, 2026 15:21
@github-actions

Copy link
Copy Markdown

🐳 Test image pushed: ghcr.io/getnora-io/nora:pr-1187

docker pull ghcr.io/getnora-io/nora:pr-1187
docker run --rm -p 4000:4000 ghcr.io/getnora-io/nora:pr-1187

@ertime037
ertime037 added this pull request to the merge queue Oct 27, 2026
Merged via the queue into main with commit aa4de65 Oct 27, 2026
20 checks passed
@ertime037
ertime037 deleted the docs/gcs-emulator-writes branch October 27, 2026 16:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants