Before you start
Create a service account for your app with the least access that works, and store its token with your other secrets. Every call in this guide uses that token.1. Collect the customer’s inputs
When the customer clicks Start setup, create an install with their inputs.Response
id with the customer’s record. Every later call uses it.
- To let customers change an input later, see Change a setting.
- To set up inputs and secrets in your app template, see Configuring inputs and secrets.
- For every input field, see the inputs reference.
2. Have the customer connect their account
Your customer connects their account by creating your app’s stack, in their own cloud console. It’s a good idea to give a quick explainer for your customer’s security team. CallGET /v1/installs/{install_id}/stack. A trimmed example response:
Response
quick_link_url. When the customer runs it, the stack creates the
network, the permissions, and the runner in their account.
Positioning safety of BYOC covers the follow-up questions customers usually ask.
3. Show setup progress
Once the customer initiates the install on their cloud account, Nuon deploys your product without any more input from the customer. You can show your customer each stage as it completes, and let them leave the page. Most software vendors track progress with webhooks:- Register a webhook for workflow step events on your installs, with a secret so you can verify each request came from Nuon.
- On each event, update the matching stage from
data.step.nameanddata.transition. - On a
failedevent, show the customerdata.step.nameanddata.outcome.error. Your support team sees the same error in Nuon.
GET /v1/installs/{install_id}.
4. Getting customer approvals
You can set installs to pause before anything your customers consider sensitive. Approvals happen on plan steps, before a Terraform, Helm, or Kubernetes manifest change applies. You choose which steps wait for the customer:- Set
approval_option = "prompt"in the install config to require approval on the install. - Set
auto_approve_on_policies_passing = trueon a component or the sandbox to let its routine changes through. That step only waits for the customer when a policy check fails.
approval_requests to true in your
webhook subscription, and Nuon calls your app as soon as a step
needs approval. That’s your cue to show the customer this screen.