A Clojure library for loading gcloud credentials from an environment variable instead of a .json file.
When interoping with the Google SDK the initialization process is more or less as follows:
This library allows the credentials to be loaded from the environment variable: GOOGLE_APPLICATION_CREDENTIALS.
You can also load the credentials from a custom environment variable.
I've found this really useful when deploying applications or running CI/CD outside the Google cloud.
You still need to perform steps 2 - 4 to get up and running.
[alekcz/google-credentials "3.0.0"]
json file containing your service account creditials by following the instruction here https://cloud.google.com/docs/authentication/getting-started.json into the GOOGLE_APPLICATION_CREDENTIALS environment variable. In your bash_profile and in Travis CI you should escape your credentials using singe quotes.(require '[google-credentials.core :as g-cred])
    ;; By default load from GOOGLE_APPLICATION_CREDENTIALS
    (-> (. StorageOptions newBuilder)
        (.setCredentials (g-cred/load-service-credentials)) 
        (.build) 
        (.getService))
    ;; Load from custom environment variable
    (def firebase-options   (-> (new FirebaseOptions$Builder) 
                                (.setCredentials (g-cred/load-service-credentials :firebase-config)) 
                                (.build))   
    (.initializeApp FirebaseApp firebase-options)   
    ;; Load from custom environment variable as string
    (def firebase-options   (-> (new FirebaseOptions$Builder) 
                                (.setCredentials (g-cred/load-service-credentials "FIREBASE_CONFIG")) 
                                (.build))   
    (.initializeApp FirebaseApp firebase-options)   
     ;; generic example
    (def cred   (-> (<options-builder>)
                    (.setCredentials (g-cred/load-service-credentials)) 
                    (.build))  
    (<cloud-library>/<initialisation-function> cred)
Copyright © 2020 Alexander Oloo
This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs | 
| ← | Move to previous article | 
| → | Move to next article | 
| Ctrl+/ | Jump to the search field |