The following documentation is related only to the Transposit Developer Platform. Mission Control handles user configuration differently than if you are only developing on the Developer Platform.
On the User Configuration page, you can specify how users will interact with your app.
Configure user sign-in
Your application is protected by sign-in. You can restrict sign-in to specific Google GSuite domains and users, or Slack workspaces.
- Navigate to Users > User Configuration > Registration and Sign-in
- Specify who is allowed to sign in
- Click Save
Select a sign-in provider
Choose whether users authenticate through Google or Slack when signing in to your app. Choose carefully: you can change your sign-in provider later, but all user data will be deleted.
- Navigate to Users > User Configuration > Registration and Sign-in
- Click Change found at the end of "Users authenticate with their Google/Slack account"
- Select a provider from the pop-up form
- Click Change
Manage users
You can view and administer registered users in Users > Registered Users. You can delete users, remove authorizations, or add user settings as necessary.
Manage keys
Each data connection in your application can either reference a production key that you have provided or expect signed-in users to provide their own key. Check the appropriate boxes under Require users to authenticate with these data connections. For the rest, navigate to Deploy > Production Keys and click Add key.
User settings schema
For applications requiring user-specific configuration, you can define a user settings schema at Users > User Configuration > User settings schema. Settings marked with Show on user settings page
will be displayed on the app's user settings page, along with any required data connector authentication.
Below are examples of how you might use different types of inputs:
- String type: Your application modifies a Google spreadsheet and a spreadsheet id is provided by each user.
- Number type: Your application provides email digests to your users and you want each user to specify how many times a week to be emailed.
- Boolean type: Your application is the same as above, and you want the user to select whether or not their emails should contain gifs.
- Options type (see below): Your application posts Slack messages and you want the user to select which of their Slack channels to post to.
Settings can be hidden from the user by unchecking Show on user settings page
. Some example use cases for hidden settings are: programmatically storing the user's Slack username from their credential, or having a hidden setting to mark certain users as power users (and using the Registered Users interface to manually toggle the setting).
Your development environment interface for these settings, identical to what your users will see, is found under Code > Development > Auth & user settings.
Visit the JavaScript operation documentation for info on programmatically accessing user settings.
Operation-generated settings
Use an options
type to limit the user's input to a set of options. The selected operation will return an array of objects, each with properties displayName
and value
. The set of options can be static — a list of colors mapped to hex codes, for example. They can also be dynamic — generating a list of the user's Slack channels mapped to channel IDs, for example. In the dynamic case, you can check (in JavaScript) if the user is authenticated by calling api.isAuthed("<data connection>")
and throwing an error if they are not.
- Navigate to Code > Operations and create an operation with the
User Setting Options
template - Commit your code
- Create a user setting of type
options
- Select your newly-created operation in the dropdown
- Save your changes
Custom display of operation results
If your application requires more customization than the automatically-generated user settings page provides, you can select Use a custom page template (advanced)
.
With a custom page template, you can supply HTML and JavaScript in Code > Page template to invoke operations and display results. This can be a great starting point for prototyping application UI.
For even more control, it is possible to host your app's frontend with a third party and use Transposit as a backend. Apps can interface with Transposit via the JavaScript SDK or by directly invoking HTTP endpoints.