Node.js app for Google Photo actions
Go to file
2020-04-04 17:57:39 -07:00
.dockerignore Initial commit 2020-04-04 15:50:15 -07:00
.gitignore Initial commit 2020-04-04 15:50:15 -07:00
auth.js Snapshot before moving away from googleapis 2020-04-04 17:57:39 -07:00
config.js Initial commit 2020-04-04 15:50:15 -07:00
Dockerfile Initial commit 2020-04-04 15:50:15 -07:00
index.js Snapshot before moving away from googleapis 2020-04-04 17:57:39 -07:00
package-lock.json Updated package.json fields 2020-04-04 16:19:30 -07:00
package.json Updated package.json fields 2020-04-04 16:19:30 -07:00
page.js Snapshot before moving away from googleapis 2020-04-04 17:57:39 -07:00
README.md Snapshot before moving away from googleapis 2020-04-04 17:57:39 -07:00
tasks.js Snapshot before moving away from googleapis 2020-04-04 17:57:39 -07:00

Build docker image

% cd <app source directory>
% docker build --tag mahesh/mma-gpacts-app --no-cache .

Note: If --no-cache is not used, cloning of git repo from the docker file does not work in subsequent builds

Run docker container

% docker run --publish 49330:3000 --detach mahesh/mma-gpacts-app
7e4dfed65d776e3c8cd8e5c6e970699b561bbbc6f2d63d5d75b7ee68c9672358

Get a shell in running container

% docker exec --interactive --tty 7e4dfed65d776e3c8cd8e5c6e970699b561bbbc6f2d63d5d75b7ee68c9672358 /bin/bash

Manage docker containers

  • List running containers
    % docker ps
    CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                     NAMES
    d511b20c73d6        mahesh/mma-gpacts-app "docker-entrypoint.s…"   8 minutes ago       Up 8 minutes        0.0.0.0:49330->3000/tcp   upbeat_lederberg
  • List all docker containrs
    % docker ps --all
    CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                       PORTS               NAMES
    d511b20c73d6        mahesh/mma-gpacts-app  "docker-entrypoint.s…"   12 minutes ago      Exited (137) 3 minutes ago                       upbeat_lederberg
    % docker ps --all --quiet
    d511b20c73d6
  • Stop a running container
    % docker stop d511b20c73d6
  • Remove a container
    % docker rm d511b20c73d6

BUMMER!

  • Google API client for Node.js supports the following APIs, but not Google Photos !?#@. Until these bugs are fixed, will need to use base OAuth2 to access the API.

    { abusiveexperiencereport: [ 'v1' ], acceleratedmobilepageurl: [ 'v1' ], accessapproval: [ 'v1', 'v1beta1' ], accesscontextmanager: [ 'v1', 'v1beta' ], adexchangebuyer: [ 'v1.2', 'v1.3', 'v1.4' ], adexchangebuyer2: [ 'v2beta1' ], adexperiencereport: [ 'v1' ], admin: [ 'datatransfer_v1', 'directory_v1', 'reports_v1' ], admob: [ 'v1' ], adsense: [ 'v1.4' ], adsensehost: [ 'v4.1' ], alertcenter: [ 'v1beta1' ], analytics: [ 'v3' ], analyticsreporting: [ 'v4' ], androiddeviceprovisioning: [ 'v1' ], androidenterprise: [ 'v1' ], androidmanagement: [ 'v1' ], androidpublisher: [ 'v1.1', 'v1', 'v2', 'v3' ], appengine: [ 'v1', 'v1alpha', 'v1beta' ], appsactivity: [ 'v1' ], bigquery: [ 'v2' ], bigqueryconnection: [ 'v1beta1' ], bigquerydatatransfer: [ 'v1' ], bigqueryreservation: [ 'v1', 'v1alpha2', 'v1beta1' ], bigtableadmin: [ 'v1', 'v2' ], billingbudgets: [ 'v1beta1' ], binaryauthorization: [ 'v1', 'v1beta1' ], blogger: [ 'v2', 'v3' ], books: [ 'v1' ], calendar: [ 'v3' ], chat: [ 'v1' ], civicinfo: [ 'v2' ], classroom: [ 'v1' ], cloudasset: [ 'v1', 'v1beta1' ], cloudbilling: [ 'v1' ], cloudbuild: [ 'v1', 'v1alpha1', 'v1alpha2' ], clouddebugger: [ 'v2' ], clouderrorreporting: [ 'v1beta1' ], cloudfunctions: [ 'v1', 'v1beta2' ], cloudidentity: [ 'v1', 'v1beta1' ], cloudiot: [ 'v1' ], cloudkms: [ 'v1' ], cloudprivatecatalog: [ 'v1beta1' ], cloudprivatecatalogproducer: [ 'v1beta1' ], cloudprofiler: [ 'v2' ], cloudresourcemanager: [ 'v1', 'v1beta1', 'v2', 'v2beta1' ], cloudscheduler: [ 'v1', 'v1beta1' ], cloudsearch: [ 'v1' ], cloudshell: [ 'v1', 'v1alpha1' ], cloudtasks: [ 'v2', 'v2beta2', 'v2beta3' ], cloudtrace: [ 'v1', 'v2', 'v2beta1' ], commentanalyzer: [ 'v1alpha1' ], composer: [ 'v1', 'v1beta1' ], compute: [ 'alpha', 'beta', 'v1' ], container: [ 'v1', 'v1beta1' ], containeranalysis: [ 'v1alpha1', 'v1beta1' ], content: [ 'v2.1', 'v2' ], customsearch: [ 'v1' ], datacatalog: [ 'v1beta1' ], dataflow: [ 'v1b3' ], datafusion: [ 'v1beta1' ], dataproc: [ 'v1', 'v1beta2' ], datastore: [ 'v1', 'v1beta1', 'v1beta3' ], deploymentmanager: [ 'alpha', 'v2', 'v2beta' ], dfareporting: [ 'v3.3', 'v3.4' ], dialogflow: [ 'v2', 'v2beta1' ], digitalassetlinks: [ 'v1' ], discovery: [ 'v1' ], displayvideo: [ 'v1' ], dlp: [ 'v2' ], dns: [ 'v1', 'v1beta2', 'v2beta1' ], docs: [ 'v1' ], domainsrdap: [ 'v1' ], doubleclickbidmanager: [ 'v1.1', 'v1' ], doubleclicksearch: [ 'v2' ], drive: [ 'v2', 'v3' ], driveactivity: [ 'v2' ], factchecktools: [ 'v1alpha1' ], fcm: [ 'v1' ], file: [ 'v1', 'v1beta1' ], firebase: [ 'v1beta1' ], firebasedynamiclinks: [ 'v1' ], firebasehosting: [ 'v1beta1' ], firebaserules: [ 'v1' ], firestore: [ 'v1', 'v1beta1', 'v1beta2' ], fitness: [ 'v1' ], games: [ 'v1' ], gamesConfiguration: [ 'v1configuration' ], gamesManagement: [ 'v1management' ], genomics: [ 'v1', 'v1alpha2', 'v2alpha1' ], gmail: [ 'v1' ], groupsmigration: [ 'v1' ], groupssettings: [ 'v1' ], healthcare: [ 'v1beta1' ], homegraph: [ 'v1' ], iam: [ 'v1' ], iamcredentials: [ 'v1' ], iap: [ 'v1', 'v1beta1' ], identitytoolkit: [ 'v3' ], indexing: [ 'v3' ], jobs: [ 'v2', 'v3', 'v3p1beta1' ], kgsearch: [ 'v1' ], language: [ 'v1', 'v1beta1', 'v1beta2' ], libraryagent: [ 'v1' ], licensing: [ 'v1' ], lifesciences: [ 'v2beta' ], logging: [ 'v2' ], managedidentities: [ 'v1', 'v1alpha1', 'v1beta1' ], manufacturers: [ 'v1' ], mirror: [ 'v1' ], ml: [ 'v1' ], monitoring: [ 'v1', 'v3' ], networkmanagement: [ 'v1beta1' ], oauth2: [ 'v1', 'v2' ], osconfig: [ 'v1beta' ], oslogin: [ 'v1', 'v1alpha', 'v1beta' ], pagespeedonline: [ 'v1', 'v2', 'v4', 'v5' ], people: [ 'v1' ], playcustomapp: [ 'v1' ], plus: [ 'v1' ], policytroubleshooter: [ 'v1', 'v1beta' ], poly: [ 'v1' ], prod_tt_sasportal: [ 'v1alpha1' ], proximitybeacon: [ 'v1beta1' ], pubsub: [ 'v1', 'v1beta1a', 'v1beta2' ], recommender: [ 'v1beta1' ], redis: [ 'v1', 'v1beta1' ], remotebuildexecution: [ 'v1', 'v1alpha', 'v2' ], reseller: [ 'v1' ], run: [ 'v1', 'v1alpha1', 'v1beta1' ], runtimeconfig: [ 'v1', 'v1beta1' ], safebrowsing: [ 'v4' ], sasportal: [ 'v1alpha1' ], script: [ 'v1' ], searchconsole: [ 'v1' ], secretmanager: [ 'v1', 'v1beta1' ], securitycenter: [ 'v1', 'v1beta1', 'v1p1alpha1', 'v1p1beta1' ], serviceconsumermanagement: [ 'v1' ], servicecontrol: [ 'v1' ], servicemanagement: [ 'v1' ], servicenetworking: [ 'v1', 'v1beta' ], serviceusage: [ 'v1', 'v1beta1' ], sheets: [ 'v4' ], siteVerification: [ 'v1' ], slides: [ 'v1' ], sourcerepo: [ 'v1' ], spanner: [ 'v1' ], speech: [ 'v1', 'v1p1beta1', 'v2beta1' ], sql: [ 'v1beta4' ], storage: [ 'v1', 'v1beta2' ], storagetransfer: [ 'v1' ], streetviewpublish: [ 'v1' ], tagmanager: [ 'v1', 'v2' ], tasks: [ 'v1' ], testing: [ 'v1' ], texttospeech: [ 'v1', 'v1beta1' ], toolresults: [ 'v1beta3' ], tpu: [ 'v1', 'v1alpha1' ], translate: [ 'v2', 'v3', 'v3beta1' ], vault: [ 'v1' ], verifiedaccess: [ 'v1' ], videointelligence: [ 'v1', 'v1beta2', 'v1p1beta1', 'v1p2beta1', 'v1p3beta1' ], vision: [ 'v1', 'v1p1beta1', 'v1p2beta1' ], webfonts: [ 'v1' ], webmasters: [ 'v3' ], websecurityscanner: [ 'v1', 'v1alpha', 'v1beta' ], youtube: [ 'v3' ], youtubeAnalytics: [ 'v1', 'v2' ], youtubereporting: [ 'v1' ] }