Academy / Week 2 / SyncApp Support Service / Overview of sync-app-support Flow

Overview of sync-app-support Flow

Lesson 8.3 ⏱ ~6 min Week 2

💡 Why This Matters

Walking through the provision function step by step in code reveals the exact sequence of operations and the permission checks that protect the provisioning process. This is the 'inner working' view you need before you can safely debug provisioning failures.

🎯 What You'll Learn

  • The provision endpoint flow: permission check → get provisioner → validate required fields → call provisioner.Provision()
  • How user type permissions work: developer-type users need ACL 203 to provision a SyncApp
  • How to check your permission type using VAM token or BAR token
  • How required field validation works: each field in metadata has a 'name' that must be present in the request
  • A live demo using DentalEMR with a valid office practice ID to trigger a successful provision

Watch Video

Open in Google Drive 💡 Open in Drive for AI-powered transcript search and summaries

📋 Lesson Summary

The provision endpoint starts by checking whether the requesting user has permission to create a SyncApp (requires ACL 203 for developer-type users). It then looks up the provisioner for the requested PMS integration. If no provisioner exists, the request is rejected. If found, it validates that all required fields (from the metadata) are present in the request body. Only then does it call the provisioner's Provision method which runs all the automated steps. A live demo with DentalEMR shows the successful provision response after passing all checks.

🏷 Key Concepts

Provision EndpointACL 203 PermissionUser Type CheckVAM TokenBAR TokenRequired Field ValidationProvisioner LookupDentalEMR Demo

Key Takeaways

01If you can't provision a SyncApp, the first thing to check is your ACL permissions — you need ACL 203
02Use VAM token or BAR token to check your current permission type
03Required field validation runs before any provisioning starts — missing a field returns an immediate error
04The provisioner must be registered in register.go or it won't be found
05The provision function is the single entry point for all automated SyncApp creation — understand it well