Preset 5 - Unified
Self-Service Portal Preset - Branded WebView with Optional Authentication
Supports:
- Optional native SwiftUI intro/outro screens for branded setup flows
- Simple unauthenticated URLs (e.g., SOFA, docs)
- Authenticated portals with token injection
- Multi-brand theming via MDM AppConfig
Flow: Intro Screens (optional) → Portal WebView → Outro Screens (optional)

{ "highlightColor" : "#007AFF", "introSteps" : [ { "content" : [ { "content" : "This is a two-step starter. Edit config.json to add more steps, change layouts, or customise the content.", "type" : "text" }, { "items" : [ "Step types: intro, deployment, carousel, guide, showcase, bento, processing, portal, outro", "55+ content block types available", "Add branding, forms, compliance checks" ], "type" : "bullets" } ], "continueButtonText" : "Next", "heroImage" : "SF=macbook.gen2", "heroImageSize" : 180, "id" : "welcome", "showBackButton" : false, "stepType" : "intro", "subtitle" : "Your starter Preset 5 workflow (example)", "title" : "Welcome" }, { "continueButtonText" : "Finish", "heroImage" : "SF=arrow.down.app.fill", "id" : "apps", "items" : [ { "displayName" : "Safari", "guiIndex" : 0, "icon" : "/Applications/Safari.app", "id" : "safari", "paths" : [ "/Applications/Safari.app" ] }, { "displayName" : "Calculator", "guiIndex" : 1, "icon" : "/System/Applications/Calculator.app", "id" : "calculator", "paths" : [ "/System/Applications/Calculator.app" ] }, { "displayName" : "TextEdit", "guiIndex" : 2, "icon" : "/System/Applications/TextEdit.app", "id" : "textedit", "paths" : [ "/System/Applications/TextEdit.app" ] } ], "showBackButton" : true, "stepType" : "deployment", "subtitle" : "Simulated deployment step", "title" : "App Installation" } ], "preset" : "5"}