Tim Burks 0aa90a79ee Relicense to Apache 2, change owners to "the gRPC Authors". 8 lat temu
..
Sources 0aa90a79ee Relicense to Apache 2, change owners to "the gRPC Authors". 8 lat temu
Makefile 459480eed6 Simple (very!) datastore example. 8 lat temu
Package.swift 0aa90a79ee Relicense to Apache 2, change owners to "the gRPC Authors". 8 lat temu
README.md 459480eed6 Simple (very!) datastore example. 8 lat temu
RUNME f3926c5c6a Change access level for generated classes and methods from "public" to "internal". 8 lat temu
roots.pem 459480eed6 Simple (very!) datastore example. 8 lat temu

README.md

Calling the Google Cloud Datastore API

This directory contains a very simple sample that calls the Google Cloud Datastore API. Calls are made directly to the Datastore RPC interface. In practice, these would be wrapped in idiomatic code.

Use RUNME to generate the necessary Protocol Buffer and gRPC support code.

Calls require a Google project ID and an OAuth token. Both should be specified in Sources/main.swift.

To create a project ID, visit the Google Cloud Console.

One easy way to get an OAuth token is to use the Instance Metadata Service that is available in Google cloud instances, such as Google Compute Engine or Google Cloud Shell. This allows you to get a short-lived service token with curl:

curl \
  http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token \
  -H Metadata-Flavor:Google

That will return something like the following:

{"access_token":"OAUTH ACCESS TOKEN","expires_in":1799,"token_type":"Bearer"}

Put the string matching OAUTH ACCESS TOKEN in the authToken variable in Sources/main.swift. Please note that you must run the curl command from within a Google cloud instance. Once you have the OAuth token, you can use it from anywhere until it expires.

CAUTION: Please take care to not share your OAuth token. It provides access to all of your Google services.