Internal Use SmartApps?

Apologies if this has been answered before, but is there a way to publish a SmartApp for internal use? I have been working on a SmartApp that will need installed on hundreds of accounts. So far It looks like I would have to install it manually via the developer workspace and then have a fairly complicated backend to support the various sets of OAuth credentials. This is an app for the new platform, not a Groovy-based app.

Welcome to the SmartThings Community, @Josh81!
SmartApps are for self-publish only. If others need to install it, each of them needs to register the SmartApp and verify it.
Yes, you would need to store each context so the users can get the corresponding configuration, each SmartApp instance is identified by the installedAppId. Just as a reference, in these instances we cannot get info about the users.

Is there a plan to make SmartApp distribution work similar to how new Edge drivers are being distributed? A way to subscribe/opt-in to an app so that it can be installed via the mobile app without going through the web-based developer workspace?

As a backup option, I know the API has a create app endpoint but it doesn’t seem to actually create a working SmartApp. Even when using a personal access token owned by the same account, SmartApps created via the API don’t show up in the developer workspace and vice-versa. After creating the SmartApp via the API and trying to install it inside the mobile app there is an error message about lack of network capability. Is this intended?

Yes, if you create them through the API, they won’t appear in the Developer Workspace, I believe it is due to the difference in the authentication type.
I believe you get an error because the app isn’t verified, do you get the POST request for this purpose when you create it?
I would need to ask for more info from the team to know if it’s intended.

If I create the SmartApp via the API and pass requireConfirmation=true then my backend service will get the same type of confirmation that happens when creating via the developer workspace. I follow the link to do the confirm but that does not then make the app installable in the mobile app like a developer workspace created app is.

@nayelyz Any followup on getting Personal Access Token API created SmartApps to show up in the developer console or to be install-able via the mobile app?

The issue is because SmartApps need to be deployed to test for them to appear in the app (after enabling the Developer Mode). We can’t deploy them using the API, only from the Developer Workspace.

Is this a ‘bug’ or the actual final state? Seems odd you can do everything with the API to set up a SmartApp and can see it on the iOS device under Routines, but you can’t deploy for execution in any fashion. Why does the API allow you the ability to create it? if you can’t use it? (or even see it in the Developer Workspace).

Just odd…

It isn’t a bug itself but there’s no information about it being the final state.

There are certainly things that can continue improving regarding this integration, and we already shared this concern with the engineering team.
However, this can take some time to be reviewed as currently all the efforts are focused on the migration and Groovy sunset.

Thank you. I appreciate the help and the update. Big changes take big effort!

1 Like