Setting the file. One moment.
Session Schemas · Azure App Onboard Prereq · microsoft/azure-skills · Skills Docs
ContentsBack to the top of the page — line 71
This file
Number 5.12
Position 12 of 15
Type TypeScript
Size 5 KB
Lines 147 references/ session-schemas.ts
TypeScript · 147 lines · 5 KB
export
interface
AppOnboardComponentStack
{
16 language : string ;
17 framework : string ;
18 version : string ;
19 }
20
21 export type ReadinessStatus = "ready" | "fixesApplied" | "needsFixes" | "unknown" ;
22
23 export interface AppOnboardComponentReadiness {
24 status : ReadinessStatus ;
25 fixes : string [];
26 }
27
28 export type VerdictLevel = "PASS" | "WARN" | "FAIL" | "SKIPPED" ;
29
30 export interface AppOnboardComponentVerdicts {
31 build : VerdictLevel ;
32 completeness : Exclude < VerdictLevel , "SKIPPED" >;
33 deployability : Exclude < VerdictLevel , "SKIPPED" >;
34 }
35
36 export interface AppOnboardComponentFinding {
37 category : "build" | "completeness" | "deployability" ;
38 verdict : VerdictLevel ;
39 summary : string ;
40 fix : string | null ;
41 }
42
43 export interface AppOnboardComponent {
44 name : string ;
45 path : string ;
46 stack : AppOnboardComponentStack ;
47 readiness : AppOnboardComponentReadiness ;
48 verdicts ?: AppOnboardComponentVerdicts ;
49 findings ?: readonly AppOnboardComponentFinding [];
50 }
51
52 export interface AppOnboardAzureTarget {
53 subscriptionId : string ;
54 /** Display name of the subscription (from `az account show --query name`).
55 * Shown at both approval gates so the user can verify the target. */
56 subscriptionName : string ;
57 resourceGroup : string ;
58 region : string ;
59 }
60
61 export interface AppOnboardRepoInfo {
62 remote : string | null ;
63 }
64
65 export interface AppOnboardOverride {
66 key : string ;
67 value : string ;
68 reason : string ;
69 }
70
71 export interface AppOnboardAppInfo {
72 name : string ;
73 }
74
75 export interface PostDeployRecommendation {
76 title : string ;
77 reason : string ;
78 effort : "low" | "medium" | "high" ;
79 services ?: string [];
80 }
81
82 export interface DetectedService {
83 type : string ;
84 version ?: string ;
85 source : "compose" | "config" | "code" ;
86 }
87
88 // ─── context.json ─────────────────────────────────────────────────────────────
89
90 export interface AppOnboardIntent {
91 userPrompt : string ;
92 description : string ;
93 users ?: string ;
94 auth ?: string ;
95 scale ?: string ;
96 budget ?: string ;
97 /** Set to true after prereq scan refines intent */
98 refinedFromScan ?: boolean ;
99 /** Facts discovered by the prereq scan */
100 scanDiscoveredFacts ?: string [];
101 }
102
103 export type AppOnboardPhase = "info" | "prereq" | "prepare" | "scaffold" | "deploy" | "cicd" | "observe" ;
104
105 export interface AppOnboardContext {
106 sessionId : string ;
107 createdUtc : string ;
108 lastModifiedUtc : string ;
109 currentPhase : AppOnboardPhase | null ;
110 completedPhases : readonly AppOnboardPhase [];
111 /** Human-readable 1-line summary of where the session stands, updated at each phase exit.
112 * Displayed in the session picker when the user resumes or switches sessions. */
113 statusSummary ?: string ;
114 intent : AppOnboardIntent ;
115 components : AppOnboardComponent [];
116 azure : AppOnboardAzureTarget ;
117 repo : AppOnboardRepoInfo ;
118 app ?: AppOnboardAppInfo ;
119 /** Infrastructure file types detected in repo: dockerfile, terraform, bicep, azure-yaml, github-actions */
120 detectedInfra : readonly string [];
121 /** Cloud provider targeted by detected IaC. Only populated when `.tf` or `.bicep` files found.
122 * Used by scaffold to distinguish "existing Azure IaC" (halt) from "non-Azure IaC" (generate Azure TF alongside). */
123 detectedInfraProvider ?: {
124 terraform ?: "azure" | "gcp" | "aws" | "multi" | "unknown" ;
125 };
126 /** Service dependencies parsed from docker-compose, config files, or code imports */
127 detectedServices : readonly DetectedService [];
128 overrides : AppOnboardOverride [];
129 /** The skill to invoke next. Set by Step 2 (cloud SDK gate), Step 5 (specialized skill detection),
130 * or Step 8 (normal routing based on health + infra). Examples: "azure-cloud-migrate",
131 * "azure-hosted-copilot-sdk", "microsoft-foundry", "azure-app-onboard", "azure-prepare". */
132 routeToSkill ?: string ;
133 /** Why this route was chosen. Examples: "cloud-sdk-migration", "copilot-sdk-detected",
134 * "foundry-agents-detected", "ready-no-infra", "ready-existing-infra". */
135 routeReason ?: string ;
136 }
137
138 // ─── active-session.json ─────────────────────────────────────────────────────
139
140 /** Pointer file at `.copilot-azure/sessions/active-session.json`.
141 * Avoids scanning all session folders on startup — read this one file
142 * to find the active session, then read that session's context.json. */
143 export interface ActiveSessionPointer {
144 activeSessionId : string ;
145 }
146
147 // PrereqOutput, BuildRequirements → see azure-app-onboard-prereq/references/prereq-schemas.ts