tree 7e383258517008d56a07ff33fcdc7785c591bd83
parent 3c9b549ab542cbca0075edc7eca829ce27a376d3
author Ben Nizette <benjamin.nizette@anu.edu.au> 1576155021 +1100
committer rodric rabbah <rodric@gmail.com> 1576155021 -0800

Remove console.{log,error} from most parts of the codebase (#220)

* Remove console.{log,error} from most parts of the codebase

A standard pattern in this package is to print the contents of the
Cloudant response to stdout through console.log before returning it
in to the runtime. This is redundant because OpenWhisk itself provides
methods to record and view the data being passed between actions. It's
also harmful for two reasons:

1. Unneccesarry platform logging. The platform logs for our Cloudant
   instance are captured for compliance reasons. In our workload, we
   were literally paying twice as much for log file parsing as for
   our OpenWhisk processing, as the body of every database document
   was ending up in the logs (and some were quite big)

2. Security. The document bodies ending up in the logs meant that
   log file 'read' permissions were being effectively escalalted
   to ersatz database 'read' permissions. In particular, our
   compliance team could, but shouldn't have been able to, view
   some customer data.

This PR removes all console.log and console.error with the exception
of one (in common.js constructObject). Most of the removals were
required to fix point 2 above though there were some that were pure
simple debug output that could be left in, but were removed based
on point 1. The one instance left was left because without it, there
would have been an empty catch block and I'm not familiar enough with
the code to understand the implications of that here!

I'm happy to revise the PR to reinstate some of the pure debug
outputs if required.

* Remove further console.error that can leak database information

The error object includes headers, statuscode but also the
originating request body which in this case (in insertOrUpdate)
will include a document body.
