How do you test MongoDB Stitch functions, how do you store Stitch triggers, and what services can you integrate Stitch with? These were some of the great questions that were asked and answered in my recent webinar. You can watch the replay of “MongoDB Mobile and MongoDB Stitch โ Introduction and Latest Developments” here, or read on as I share the answers to those questions here.
For those new to MongoDB Stitch, it’s the serverless platform from MongoDB that isolates complexity and โplumbingโ so you can build applications faster. Stitch went GA in June 2018, and we recently added a set of new capabilities, including global Stitch apps, more AWS services, a React Native SDK, and the beta for Stitch Mobile Sync. MongoDB Mobile is an embedded version of the MongoDB database that you can embed in your mobile or IoT apps.
These are some of the questions I thought might be of interest:
How do you test Stitch functions?
The Stitch UI includes a console which can be used to test your Stitch functions; you can include console.log
statements to add extra debug output to the console (they also get added to the log files for every function invoked from an incoming webhook, trigger, or the Stitch SDK).
You can also invoke your Stitch functions through the mongo shell. To do that, you’ll need to enable the MongoDB wire protocol so that the shell can talk to your Stitch app, then use the Stitch connection string provided. Once connected, you can call Stitch functions explicitly like this:
mongo> db.runCommand({callFunction: "morning", arguments: ["Billy"]})
{"ok" : 1,
"response" : {"message" : "Good Morning Billy from andrew.morgan@mongodb.com"}
}
You can read more about this in this post which takes you through the process.
How do you store stitch triggers in your Git repo?
You can export your Stitch application from the Stitch UI or the Stitch CLI; the exported app is represented by a directory structure containing JSON and JavaScript files:
yourStitchApp/
โโโ stitch.json
โโโ secrets.json
โโโ variables.json
โโโ auth_providers/
โ โโโ <provider name>.json
โโโ functions/
โ โโโ <function name>/
โ โโโ config.json
โ โโโ source.js
โโโ services/
โ โโโ <service name>/
โ โโโ config.json
โ โโโ incoming_webhooks/
โ โ โโโ config.json
โ โ โโโ source.js
โ โโโ rules/
โ โโโ <rule name>.json
โโโ triggers/
โ โโโ <trigger name>/
โ โโโ config.json
โ โโโ source.js
โโโ values/
โโโ <value name>.json
You can then work on the trigger configuration and the associated function locally, source control the app using Git, or import it into a new App.
We saw a few integration provider logos in the presentation. Is there a page on the MongoDB site with the comprehensive list?
You can find the list of Stitchโs built-in service integrations in the Stitch documentation.
Note that if we donโt have a built-in integration for a particular service, then you can easily integrate it yourself, using the Stitch HTTP service and incoming webhooks. You can even export your new service integration to share with others.
Is MongoDB Mobile + Stitch Mobile Sync the same as a cache in a progressive app?
It certainly removes the need to have a separate cache, but it does much more. With MongoDB Mobile, the data is persistently stored on your device. You also have the full power of the MongoDB Query Language to perform sophisticated queries and aggregations on that local data. Changes made to the local database are pushed back to MongoDB Atlas, and from there to any other mobile devices configured to sync the same documents (e.g., for the same user running the app on another device).
How do I download & embed MongoDB Mobile?
You simply need to add 1 line to your Android or Xcode project to have access to the entire Stitch SDK, including the Stitch Local Database service (i.e.,the MongoDB Mobile database). The Stitch SDK includes the entire mobile and makes it very easy to use and consume, even if you’re just using the local MongoDB Mobile database and not Stitch.
Creating your first Stitch app? Start with one of the Stitch tutorials.
Want to learn more about MongoDB Stitch? Read the white paper.