Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/imjasonh/appengine-value

Utility library to handle simple secret values in an App Engine app
https://github.com/imjasonh/appengine-value

Last synced: about 1 month ago
JSON representation

Utility library to handle simple secret values in an App Engine app

Awesome Lists containing this project

README

        

`appengine-value` is a simple utility library to handle simple secret configuration values in an App Engine app.

Problem
-----

Your app requires secret values (OAuth secrets, API keys, passwords) and you rightly don't want to specify these values as consts in your source code.

**Don't do this!**

```
const (
clientID = "123456.clientaccount.foo"
clientSecret = "s8p3rs3cr1t"
)
```

Solution
-----

**Do this instead**
```
import value "github.com/ImJasonH/appengine-value"

func doOAuth(c appengine.Context) {
clientID := value.Get(c, "client_id")
clientSecret := value.Get(c, "client_secret")
// use clientID and clientSecret
}
```

If you have multiple values, you can **batch lookups**:
```
func doOAuth(c appengine.Context) {
vals := value.GetMulti(c, "client_id", "client_secret")
clientID, clientSecret := vals["client_id"], vals["client_secret"]
}
```

Configuration
-----

To set or unset values, use the admin UI which is served at `/_ah/value/admin` -- be sure to map this in your `app.yaml`:

```
handlers:
- url: /_ah/value/.*
script: _go_app
login: admin
```

(You can always remove the URL mapping if you're done setting values)