Use an SDK app to create new datasets?

I've heard that it's possible to publish new datasets into Domo using an SDK app, and wanted to find out if there were any implementation details/examples available that might show how that works.

 

I'm guessing that when an app is running in a domo instance, it can use the authenticated user's session, and do the equivalent of what the Webform system does?

Comments

  • Hi all, Can anybody help @woganmay out? Thanks!

  • tbrock
    tbrock Domo Employee

    Hey @woganmay this may not be the answer you are looing for, but your SDK app can act as a trigger of sorts to perform a data process to an external server you have set up to push a new dataset into Domo or into your app. This isn't documented anywhere but I have worked with folks that have done this before. Feel free to email me your use case.

    I work for Domo.
    **Say "Thanks" by clicking the thumbs up in the post that helped you.
    **Please mark the post that solves your problem as "Accepted Solution"
  • tannerb
    tannerb Domo Employee

    @woganmay - it IS possible to publish new datasets to a Domo instance with some of the newer tools on developer.domo.com, but there are still some limitations. I'll try to be as clear as possible - if you've got questions, please ask me. No guarantees that I'll be able to answer, but I'm willing to track down people who can for you ?

     

    The kind of app that I believe you're referring to is an App Dev Studio app (https://developer.domo.com/docs/dev-studio/dev-studio-overview), right? If so, the domo.js toolkit that ships with the Dev Studio has utilities for querying datasets from the client-side code, but not for creating new datasets. However, there are Domo APIs that you can use to accomplish that (https://developer.domo.com/docs/domo-apis), you'll just want to set up a proxy server somewhere to relay your requests through (since leveraging the APIs requires authentication via OAuth and you wouldn't want to expose your client ID and secret in your client side code).

     

    I'm not sure if we've got standard examples of the process (maybe ask @tbrock), but I'd be happy to chat with you about any part of the process and/or how I've put apps that do this kind of thing together in the past. 

     

    Best of luck!

     

    -----
    I work for Domo.
    **Say "Thanks" by clicking the thumbs up in the post that helped you.
    **Please mark the post that solves your problem as "Accepted Solution"
  • @woganmay, did any of the above replies help you out?

  • Not quite @LizWR :(

     

    I'm not able to route anything through an external service like @tannerb suggested - this all has to be self-contained in an SDK app.

     

    I got ahold of some sample code for making updates to datasets directly from an app, and when I ran it, it failed out with this message:

     

    {"status":400,"statusReason":"Bad Request","message":"DA0075: An app with id f02b27da-5d47-429d-b1c2-fcd74a9a1b03 requested an addition to a data set. However, this app is based off design c34eac75-1f2d-42f2-8ed6-7d6d731a11f9 which has not been added to the whitelist for uploading data to Domo. Please contact your account executive to obtain permission to write to data sets in your app.","toe":"8FTOCKN86C-8K23M-4QL0P"}

    So it looks like there is actually a facility for writing data back to a dataset directly from an app - it's just either not completely implemented yet, or isn't documented anywhere.

  • Thanks for sharing your solution, @woganmay.  I'm sure that it will help out other users!

This discussion has been closed.