check if includeDocs is supported for existing triggers
diff --git a/provider/app.js b/provider/app.js
index 9a25a47..1198cf6 100644
--- a/provider/app.js
+++ b/provider/app.js
@@ -28,6 +28,9 @@
// Whisk API Router Host
var routerHost = process.env.ROUTER_HOST || 'localhost';
+// Support includeDocs=true for triggers who existed before the removal of includeDocs
+var supportIncludeDocs = process.env.SUPPORT_INCLUDE_DOCS || 'false';
+
// Maximum number of times to retry the invocation of an action
// before deleting the associated trigger
var retriesBeforeDelete = constants.RETRIES_BEFORE_DELETE;
@@ -99,7 +102,7 @@
logger.info(tid, 'init', 'trigger storage database details: ', nanoDb);
- var providerUtils = new ProviderUtils (tid, logger, app, retriesBeforeDelete, nanoDb, routerHost);
+ var providerUtils = new ProviderUtils (tid, logger, app, retriesBeforeDelete, nanoDb, routerHost, supportIncludeDocs);
var providerRAS = new ProviderRAS (tid, logger, providerUtils);
var providerHealth = new ProviderHealth (tid, logger, providerUtils);
var providerUpdate = new ProviderUpdate (tid, logger, providerUtils);
diff --git a/provider/lib/utils.js b/provider/lib/utils.js
index 35b96bf..5c3e12d 100644
--- a/provider/lib/utils.js
+++ b/provider/lib/utils.js
@@ -8,7 +8,8 @@
app,
retriesBeforeDelete,
triggerDB,
- routerHost
+ routerHost,
+ supportIncludeDocs
) {
this.tid = tid;
@@ -79,10 +80,13 @@
try {
var triggeredDB = nanoConnection.use(dataTrigger.dbname);
-
+
+ var includeDocs = false;
+ if (supportIncludeDocs === 'true' && (dataTrigger.includeDoc === true || dataTrigger.includeDoc === 'true')) {
+ includeDocs = true;
+ }
// Listen for changes on this database.
- // always set the include doc setting to false
- var feed = triggeredDB.follow({since: sinceToUse, include_docs: false});
+ var feed = triggeredDB.follow({since: sinceToUse, include_docs: includeDocs});
dataTrigger.feed = feed;
that.triggers[dataTrigger.id] = dataTrigger;
@@ -179,7 +183,7 @@
// (note: this will only be the set for old feeds. we no longer allow
// this to be set for newly created feeds).
if (obj.includeDoc && (obj.includeDoc === true || obj.includeDoc.toString().trim().toLowerCase() === 'true')) {
- logger.warn(tid, method, 'cloudant trigger feed: includeDoc parameter is no longer supported and will be ignored.');
+ logger.warn(tid, method, 'cloudant trigger feed: includeDoc parameter is no longer supported.');
}
var trigger = {