@msn-control/liftoff 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -256
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/UPSTREAM_LICENSE.txt +21 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/catalog.json +520 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/packaged/gitignore +27 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/README.md +25 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/components.json +22 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/eslint.config.js +23 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/index.html +13 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package-lock.json +6597 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package.json +60 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/public/power-apps.svg +55 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/App.tsx +17 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/assets/react.svg +1 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/mode-toggle.tsx +37 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/badge.tsx +46 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/button.tsx +60 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/calendar.tsx +211 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/card.tsx +92 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/chart.tsx +355 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/checkbox.tsx +32 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/command.tsx +184 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dialog.tsx +141 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dropdown-menu.tsx +257 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/input.tsx +21 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/label.tsx +22 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/popover.tsx +46 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/progress.tsx +29 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/select.tsx +185 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/separator.tsx +26 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/skeleton.tsx +13 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/table.tsx +114 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tabs.tsx +66 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/textarea.tsx +18 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tooltip.tsx +61 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/hooks/use-theme.ts +11 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/index.css +131 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/lib/utils.ts +6 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/main.tsx +10 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/_layout.tsx +31 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/home.tsx +59 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/not-found.tsx +14 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/query-provider.tsx +26 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/sonner-provider.tsx +23 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/theme-provider.tsx +64 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/router.tsx +24 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.app.json +34 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.json +13 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.node.json +26 -0
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/vite.config.ts +19 -0
- package/assets/power-apps-code-app/README.md +27 -0
- package/dist/args.js +7 -1
- package/dist/args.js.map +1 -1
- package/dist/catalogs.d.ts +3 -1
- package/dist/catalogs.js +23 -0
- package/dist/catalogs.js.map +1 -1
- package/dist/code-apps-plugin.d.ts +13 -0
- package/dist/code-apps-plugin.js +69 -0
- package/dist/code-apps-plugin.js.map +1 -0
- package/dist/commands.js +282 -55
- package/dist/commands.js.map +1 -1
- package/dist/file-system.d.ts +16 -1
- package/dist/file-system.js +320 -10
- package/dist/file-system.js.map +1 -1
- package/dist/genai-templates.d.ts +6 -6
- package/dist/genai-templates.js +0 -3
- package/dist/genai-templates.js.map +1 -1
- package/dist/interactive.d.ts +40 -3
- package/dist/interactive.js +180 -24
- package/dist/interactive.js.map +1 -1
- package/dist/migrate-plan.d.ts +4 -4
- package/dist/migrate-plan.js +1 -1
- package/dist/migrate-plan.js.map +1 -1
- package/dist/planner.js +177 -40
- package/dist/planner.js.map +1 -1
- package/dist/power-apps-assets.d.ts +30 -0
- package/dist/power-apps-assets.js +131 -0
- package/dist/power-apps-assets.js.map +1 -0
- package/dist/power-apps-templates.d.ts +3 -0
- package/dist/power-apps-templates.js +140 -0
- package/dist/power-apps-templates.js.map +1 -0
- package/dist/power-apps-validation.d.ts +1 -0
- package/dist/power-apps-validation.js +79 -0
- package/dist/power-apps-validation.js.map +1 -0
- package/dist/project-dependencies.d.ts +1 -0
- package/dist/project-dependencies.js +12 -1
- package/dist/project-dependencies.js.map +1 -1
- package/dist/standard-templates.d.ts +4 -4
- package/dist/standard-templates.js.map +1 -1
- package/dist/templates.d.ts +2 -2
- package/dist/templates.js +196 -50
- package/dist/templates.js.map +1 -1
- package/dist/types.d.ts +73 -15
- package/dist/workstation.d.ts +10 -5
- package/dist/workstation.js +25 -10
- package/dist/workstation.js.map +1 -1
- package/docs/assets/liftoff-terminal.svg +33 -0
- package/docs/azure-deployment.md +66 -0
- package/docs/cli-reference.md +128 -0
- package/docs/configuration-and-manifests.md +102 -0
- package/docs/existing-repositories.md +87 -0
- package/docs/getting-started.md +114 -0
- package/docs/prerequisites.md +99 -0
- package/docs/project-structure.md +119 -0
- package/docs/safety-and-consent.md +98 -0
- package/docs/spec-workflows-and-agents.md +92 -0
- package/docs/troubleshooting.md +133 -0
- package/docs/workloads.md +128 -0
- package/package.json +8 -2
package/dist/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type SpecWorkflowId = 'openspec' | 'spec-kit';
|
|
|
5
5
|
export type CodingAgentId = 'github-copilot' | 'claude';
|
|
6
6
|
export type EnvironmentId = 'dev' | 'test' | 'prod';
|
|
7
7
|
export type ScaffoldStatus = 'full' | 'foundation' | 'integration-shell';
|
|
8
|
-
export type ProjectTypeId = 'genai' | 'standard';
|
|
8
|
+
export type ProjectTypeId = 'genai' | 'standard' | 'power-apps-code-app';
|
|
9
9
|
export type ApiStackId = 'python-fastapi' | 'node-fastify' | 'go-huma';
|
|
10
10
|
export interface ProjectTypeDefinition {
|
|
11
11
|
id: ProjectTypeId;
|
|
@@ -77,9 +77,25 @@ export interface FrameworkDefinition {
|
|
|
77
77
|
baseMarkers: string[][];
|
|
78
78
|
agentMarkers: Record<CodingAgentId, string[][]>;
|
|
79
79
|
}
|
|
80
|
+
export interface PowerAppsStarterSource {
|
|
81
|
+
repository: string;
|
|
82
|
+
path: string;
|
|
83
|
+
commit: string;
|
|
84
|
+
}
|
|
85
|
+
export interface CodeAppsPluginDefinition {
|
|
86
|
+
id: 'code-apps-preview';
|
|
87
|
+
label: string;
|
|
88
|
+
version: string;
|
|
89
|
+
marketplace: 'power-platform-skills';
|
|
90
|
+
repository: string;
|
|
91
|
+
path: string;
|
|
92
|
+
preview: true;
|
|
93
|
+
probes: Partial<Record<CodingAgentId, ExternalCommand>>;
|
|
94
|
+
}
|
|
80
95
|
export interface ProjectOptions {
|
|
81
96
|
projectName?: string;
|
|
82
97
|
projectType?: string;
|
|
98
|
+
genai?: boolean;
|
|
83
99
|
apiStack?: string;
|
|
84
100
|
pattern?: string;
|
|
85
101
|
cloud?: string;
|
|
@@ -89,30 +105,55 @@ export interface ProjectOptions {
|
|
|
89
105
|
specWorkflow?: string;
|
|
90
106
|
agents?: string[];
|
|
91
107
|
defaultAgent?: string;
|
|
108
|
+
codeAppsPlugin?: boolean;
|
|
92
109
|
configPath?: string;
|
|
93
110
|
yes?: boolean;
|
|
94
111
|
force?: boolean;
|
|
95
112
|
installTools?: boolean;
|
|
96
113
|
installDependencies?: boolean;
|
|
97
114
|
}
|
|
98
|
-
export interface
|
|
99
|
-
|
|
100
|
-
safeProjectName: string;
|
|
101
|
-
packageName: string;
|
|
102
|
-
projectType: ProjectTypeDefinition;
|
|
115
|
+
export interface GenAiWorkloadPlan {
|
|
116
|
+
workload: 'genai';
|
|
103
117
|
apiStack: ApiStackDefinition;
|
|
104
|
-
pattern
|
|
118
|
+
pattern: PatternDefinition;
|
|
105
119
|
provider: ProviderDefinition;
|
|
106
120
|
region: RegionDefinition;
|
|
107
121
|
includeFrontend: boolean;
|
|
108
122
|
frontendStarter: string;
|
|
109
123
|
environments: EnvironmentDefinition[];
|
|
124
|
+
}
|
|
125
|
+
export interface StandardApiWorkloadPlan {
|
|
126
|
+
workload: 'standard';
|
|
127
|
+
apiStack: ApiStackDefinition;
|
|
128
|
+
provider: ProviderDefinition;
|
|
129
|
+
region: RegionDefinition;
|
|
130
|
+
includeFrontend: boolean;
|
|
131
|
+
frontendStarter: string;
|
|
132
|
+
environments: EnvironmentDefinition[];
|
|
133
|
+
}
|
|
134
|
+
export interface PowerAppsCodeAppWorkloadPlan {
|
|
135
|
+
workload: 'power-apps-code-app';
|
|
136
|
+
starter: PowerAppsStarterSource;
|
|
137
|
+
codeAppsPlugin: boolean;
|
|
138
|
+
}
|
|
139
|
+
export type ApiWorkloadPlan = GenAiWorkloadPlan | StandardApiWorkloadPlan;
|
|
140
|
+
export type WorkloadPlan = ApiWorkloadPlan | PowerAppsCodeAppWorkloadPlan;
|
|
141
|
+
export interface ProjectPlanBase {
|
|
142
|
+
projectName: string;
|
|
143
|
+
safeProjectName: string;
|
|
144
|
+
packageName: string;
|
|
145
|
+
projectType: ProjectTypeDefinition;
|
|
110
146
|
specWorkflow: SpecWorkflowDefinition;
|
|
111
147
|
agents: CodingAgentDefinition[];
|
|
112
148
|
defaultAgent?: CodingAgentDefinition;
|
|
113
149
|
framework: FrameworkDefinition;
|
|
114
150
|
approvedStack: string[];
|
|
115
151
|
}
|
|
152
|
+
export type ProjectPlan = ProjectPlanBase & WorkloadPlan;
|
|
153
|
+
export type GenAiProjectPlan = ProjectPlanBase & GenAiWorkloadPlan;
|
|
154
|
+
export type StandardApiProjectPlan = ProjectPlanBase & StandardApiWorkloadPlan;
|
|
155
|
+
export type ApiProjectPlan = GenAiProjectPlan | StandardApiProjectPlan;
|
|
156
|
+
export type PowerAppsCodeAppProjectPlan = ProjectPlanBase & PowerAppsCodeAppWorkloadPlan;
|
|
116
157
|
export interface GeneratedArtifact {
|
|
117
158
|
logicalName: string;
|
|
118
159
|
category: string;
|
|
@@ -125,22 +166,39 @@ export interface ManifestArtifact {
|
|
|
125
166
|
pathParts: string[];
|
|
126
167
|
contentHash: string;
|
|
127
168
|
}
|
|
169
|
+
export interface ManifestGenAiWorkload {
|
|
170
|
+
kind: 'genai';
|
|
171
|
+
apiStack: ApiStackId;
|
|
172
|
+
pattern: PatternId;
|
|
173
|
+
cloud: ProviderId;
|
|
174
|
+
region: string;
|
|
175
|
+
frontend: boolean;
|
|
176
|
+
environments: EnvironmentId[];
|
|
177
|
+
}
|
|
178
|
+
export interface ManifestStandardApiWorkload {
|
|
179
|
+
kind: 'standard';
|
|
180
|
+
apiStack: ApiStackId;
|
|
181
|
+
cloud: ProviderId;
|
|
182
|
+
region: string;
|
|
183
|
+
frontend: boolean;
|
|
184
|
+
environments: EnvironmentId[];
|
|
185
|
+
}
|
|
186
|
+
export interface ManifestPowerAppsCodeAppWorkload {
|
|
187
|
+
kind: 'power-apps-code-app';
|
|
188
|
+
starter: PowerAppsStarterSource;
|
|
189
|
+
codeAppsPlugin: boolean;
|
|
190
|
+
}
|
|
191
|
+
export type ManifestWorkload = ManifestGenAiWorkload | ManifestStandardApiWorkload | ManifestPowerAppsCodeAppWorkload;
|
|
128
192
|
export interface LiftoffManifest {
|
|
129
|
-
artifactVersion: 2 | 3;
|
|
193
|
+
artifactVersion: 2 | 3 | 4;
|
|
130
194
|
generatedBy: 'Mission Control Liftoff';
|
|
131
195
|
liftoffVersion: string;
|
|
132
196
|
project: {
|
|
133
197
|
name: string;
|
|
134
|
-
|
|
135
|
-
apiStack: ApiStackId;
|
|
136
|
-
pattern?: PatternId;
|
|
137
|
-
cloud: ProviderId;
|
|
138
|
-
region: string;
|
|
139
|
-
frontend: boolean;
|
|
198
|
+
workload: ManifestWorkload;
|
|
140
199
|
specWorkflow: SpecWorkflowId;
|
|
141
200
|
agents: CodingAgentId[];
|
|
142
201
|
defaultAgent?: CodingAgentId;
|
|
143
|
-
environments: EnvironmentId[];
|
|
144
202
|
};
|
|
145
203
|
framework: {
|
|
146
204
|
state: 'initialized' | 'legacy';
|
package/dist/workstation.d.ts
CHANGED
|
@@ -26,8 +26,16 @@ export interface RequirementProbeResult {
|
|
|
26
26
|
notices: ReadinessNotice[];
|
|
27
27
|
}
|
|
28
28
|
export interface WorkstationRequirementSelection {
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
workload: {
|
|
30
|
+
kind: 'genai' | 'standard';
|
|
31
|
+
apiStack: {
|
|
32
|
+
id: ApiStackId;
|
|
33
|
+
};
|
|
34
|
+
provider: {
|
|
35
|
+
id: ProviderId;
|
|
36
|
+
};
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'power-apps-code-app';
|
|
31
39
|
};
|
|
32
40
|
specWorkflow: {
|
|
33
41
|
id: SpecWorkflowId;
|
|
@@ -35,9 +43,6 @@ export interface WorkstationRequirementSelection {
|
|
|
35
43
|
framework: {
|
|
36
44
|
version: string;
|
|
37
45
|
};
|
|
38
|
-
provider: {
|
|
39
|
-
id: ProviderId;
|
|
40
|
-
};
|
|
41
46
|
agents: Array<{
|
|
42
47
|
id: CodingAgentId;
|
|
43
48
|
label: string;
|
package/dist/workstation.js
CHANGED
|
@@ -62,12 +62,25 @@ export function selectWorkstationRequirements(plan, options = {}) {
|
|
|
62
62
|
...(exactVersion ? { exactVersion } : {})
|
|
63
63
|
});
|
|
64
64
|
};
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
const workload = typeof plan.workload === 'string'
|
|
66
|
+
? plan.workload === 'power-apps-code-app'
|
|
67
|
+
? { kind: plan.workload }
|
|
68
|
+
: {
|
|
69
|
+
kind: plan.workload,
|
|
70
|
+
apiStack: { id: plan.apiStack.id },
|
|
71
|
+
provider: { id: plan.provider.id }
|
|
72
|
+
}
|
|
73
|
+
: plan.workload;
|
|
74
|
+
add('node', 'Liftoff runtime', {
|
|
75
|
+
minimumVersion: workload.kind === 'power-apps-code-app' ? '22.12.0' : '20.19.0'
|
|
76
|
+
});
|
|
77
|
+
if (workload.kind !== 'power-apps-code-app') {
|
|
78
|
+
if (workload.apiStack.id === 'python-fastapi') {
|
|
79
|
+
add('python', 'selected Python API stack', { minimumVersion: '3.12.0' });
|
|
80
|
+
}
|
|
81
|
+
else if (workload.apiStack.id === 'go-huma') {
|
|
82
|
+
add('go', 'selected Go API stack', { minimumVersion: '1.23.0' });
|
|
83
|
+
}
|
|
71
84
|
}
|
|
72
85
|
if (plan.specWorkflow.id === 'openspec') {
|
|
73
86
|
add('node', 'OpenSpec runtime', { minimumVersion: '20.19.0' });
|
|
@@ -82,10 +95,12 @@ export function selectWorkstationRequirements(plan, options = {}) {
|
|
|
82
95
|
add('spec-kit', 'selected spec-driven framework', { exactVersion: plan.framework.version });
|
|
83
96
|
}
|
|
84
97
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
98
|
+
if (workload.kind !== 'power-apps-code-app') {
|
|
99
|
+
add('docker', 'generated local development stack');
|
|
100
|
+
add('opentofu', 'generated infrastructure');
|
|
101
|
+
if (workload.provider.id === 'azure') {
|
|
102
|
+
add('azure-cli', 'selected Azure cloud');
|
|
103
|
+
}
|
|
89
104
|
}
|
|
90
105
|
for (const agent of plan.agents) {
|
|
91
106
|
add(agent.id, `selected ${agent.label} coding agent`);
|
package/dist/workstation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workstation.js","sourceRoot":"","sources":["../src/workstation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workstation.js","sourceRoot":"","sources":["../src/workstation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="560" viewBox="0 0 1000 560" role="img" aria-labelledby="title description">
|
|
2
|
+
<title id="title">Liftoff interactive initialization</title>
|
|
3
|
+
<desc id="description">A terminal preview showing workload, spec workflow, coding agent, readiness, and safe completion choices in Liftoff.</desc>
|
|
4
|
+
<rect width="1000" height="560" rx="18" fill="#0d1117"/>
|
|
5
|
+
<rect x="1" y="1" width="998" height="558" rx="17" fill="none" stroke="#6e7681" stroke-width="2"/>
|
|
6
|
+
<circle cx="32" cy="30" r="7" fill="#ff7b72"/>
|
|
7
|
+
<circle cx="56" cy="30" r="7" fill="#d29922"/>
|
|
8
|
+
<circle cx="80" cy="30" r="7" fill="#3fb950"/>
|
|
9
|
+
<text x="116" y="38" fill="#b1bac4" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17">liftoff init</text>
|
|
10
|
+
|
|
11
|
+
<text x="42" y="94" fill="#58a6ff" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="32" font-weight="700" letter-spacing="5">LIFTOFF</text>
|
|
12
|
+
<text x="42" y="122" fill="#b1bac4" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">Project workstation and scaffold initializer</text>
|
|
13
|
+
|
|
14
|
+
<rect x="32" y="146" width="936" height="92" rx="8" fill="#161b22" stroke="#30363d"/>
|
|
15
|
+
<text x="52" y="176" fill="#f0f6fc" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17" font-weight="700">Choose workload</text>
|
|
16
|
+
<text x="52" y="207" fill="#8c959f" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">[ ] GenAI application [ ] API application</text>
|
|
17
|
+
<text x="520" y="207" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">[x] Power Apps code app</text>
|
|
18
|
+
|
|
19
|
+
<rect x="32" y="250" width="936" height="92" rx="8" fill="#161b22" stroke="#30363d"/>
|
|
20
|
+
<text x="52" y="280" fill="#f0f6fc" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17" font-weight="700">Choose spec workflow</text>
|
|
21
|
+
<text x="52" y="311" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">(*) OpenSpec</text>
|
|
22
|
+
<text x="235" y="311" fill="#8c959f" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">( ) Spec Kit</text>
|
|
23
|
+
|
|
24
|
+
<rect x="32" y="354" width="936" height="92" rx="8" fill="#161b22" stroke="#30363d"/>
|
|
25
|
+
<text x="52" y="384" fill="#f0f6fc" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17" font-weight="700">Select coding agents</text>
|
|
26
|
+
<text x="273" y="384" fill="#b1bac4" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="14">Space toggles, Enter confirms</text>
|
|
27
|
+
<text x="52" y="415" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">[x] GitHub Copilot</text>
|
|
28
|
+
<text x="322" y="415" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="16">[x] Claude Code</text>
|
|
29
|
+
|
|
30
|
+
<text x="42" y="486" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17">PASS Workstation and framework ready</text>
|
|
31
|
+
<text x="42" y="516" fill="#3fb950" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="17">DONE Initialized the current Git root safely</text>
|
|
32
|
+
<text x="42" y="544" fill="#b1bac4" font-family="ui-monospace, SFMono-Regular, Consolas, monospace" font-size="15">Next: liftoff validate && liftoff doctor</text>
|
|
33
|
+
</svg>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Azure deployment
|
|
2
|
+
|
|
3
|
+
Azure infrastructure is generated for GenAI and API workloads that select the
|
|
4
|
+
available Azure provider. Power Apps code apps use Power Platform hosting and
|
|
5
|
+
do not receive Liftoff-owned OpenTofu.
|
|
6
|
+
|
|
7
|
+
Liftoff generates infrastructure code but does not authenticate, plan, or apply
|
|
8
|
+
it. Review all files and use your organization's delivery controls.
|
|
9
|
+
|
|
10
|
+
## OpenTofu layout
|
|
11
|
+
|
|
12
|
+
Generated API projects place Azure modules and environment tfvars under:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
infrastructure/opentofu/azure/
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`liftoff infra` prints the applicable OpenTofu commands; it does not execute
|
|
19
|
+
them.
|
|
20
|
+
|
|
21
|
+
## Globally scoped names
|
|
22
|
+
|
|
23
|
+
Each environment tfvars file has a deterministic 12-character lowercase
|
|
24
|
+
alphanumeric `resource_suffix` for globally scoped Azure names.
|
|
25
|
+
|
|
26
|
+
If Azure reports a collision, replace that environment's suffix with another
|
|
27
|
+
unique value matching:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
^[a-z0-9]{12}$
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Generated validation rejects an invalid override.
|
|
34
|
+
|
|
35
|
+
## Worker-enabled projects
|
|
36
|
+
|
|
37
|
+
Worker-enabled GenAI projects:
|
|
38
|
+
|
|
39
|
+
- Configure `ServiceBusConnection__fullyQualifiedNamespace`.
|
|
40
|
+
- Configure `ServiceBusConnection__clientId` for the attached user-assigned
|
|
41
|
+
managed identity.
|
|
42
|
+
- Grant that identity's principal the Azure Service Bus Data Receiver role.
|
|
43
|
+
- Use `function_worker_queue_name` for the provisioned queue, Function setting,
|
|
44
|
+
and output.
|
|
45
|
+
|
|
46
|
+
Function host storage uses one complete key-backed `AzureWebJobsStorage`
|
|
47
|
+
configuration rather than mixed partial identity settings.
|
|
48
|
+
|
|
49
|
+
## Frontend origins
|
|
50
|
+
|
|
51
|
+
Generated backends allow their local frontend origin by default. When
|
|
52
|
+
`VITE_API_BASE_URL` points to a frontend on another origin, set the
|
|
53
|
+
comma-separated `CORS_ALLOWED_ORIGINS` value. Generated Azure infrastructure
|
|
54
|
+
sets it to the deployed frontend URL.
|
|
55
|
+
|
|
56
|
+
## Deployment boundary
|
|
57
|
+
|
|
58
|
+
Before applying infrastructure:
|
|
59
|
+
|
|
60
|
+
1. Run `liftoff validate` and `liftoff doctor`.
|
|
61
|
+
2. Install and verify OpenTofu separately.
|
|
62
|
+
3. Authenticate with Azure under the intended tenant and subscription.
|
|
63
|
+
4. Review tfvars, names, role assignments, networking, and state storage.
|
|
64
|
+
5. Run plan through your normal review process.
|
|
65
|
+
|
|
66
|
+
Liftoff never stores Azure credentials or signs in on your behalf.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# CLI reference
|
|
2
|
+
|
|
3
|
+
Run `liftoff help` or command-specific help for the authoritative syntax:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
liftoff init --help
|
|
7
|
+
liftoff migrate --help
|
|
8
|
+
liftoff update --help
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Unknown flags or commands, missing values, invalid booleans, incompatible
|
|
12
|
+
duplicates, and extra positional arguments fail before generation.
|
|
13
|
+
|
|
14
|
+
## Lifecycle
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
plan -> init or migrate -> validate and doctor -> update -> dev and infra helpers
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
| Command | Behavior |
|
|
21
|
+
| --- | --- |
|
|
22
|
+
| `liftoff plan` | Resolves decisions and previews artifacts and requirements without side effects |
|
|
23
|
+
| `liftoff init [project-name]` | Initializes a named child or the exact current Git root through staged readiness and framework setup |
|
|
24
|
+
| `liftoff migrate <source>` | Creates a new sibling scaffold and filtered source copy without changing the source |
|
|
25
|
+
| `liftoff validate [project]` | Validates manifest identity, durable files, workload metadata, and framework markers |
|
|
26
|
+
| `liftoff doctor [project]` | Runs read-only workload-derived project and workstation diagnostics |
|
|
27
|
+
| `liftoff update [project]` | Reports template and configuration drift without writing |
|
|
28
|
+
| `liftoff update --apply` | Applies safe changes, preserves unforced conflicts, and records the resulting manifest |
|
|
29
|
+
| `liftoff dev` | Prints workload-appropriate local development commands; it does not execute them |
|
|
30
|
+
| `liftoff infra` | Prints OpenTofu guidance for API workloads and reports infrastructure as not applicable for Power Apps |
|
|
31
|
+
| `liftoff patterns` | Lists GenAI patterns |
|
|
32
|
+
| `liftoff providers` | Lists provider availability |
|
|
33
|
+
| `liftoff regions` | Lists available regions |
|
|
34
|
+
| `liftoff regions search <query>` | Searches region names and slugs |
|
|
35
|
+
| `liftoff --version` | Prints exactly one version line |
|
|
36
|
+
|
|
37
|
+
The former `liftoff create` command is intentionally rejected with guidance to
|
|
38
|
+
use `liftoff init`; there is no compatibility alias.
|
|
39
|
+
|
|
40
|
+
## Planning and initialization options
|
|
41
|
+
|
|
42
|
+
Common noninteractive inputs include:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
--type genai|standard|power-apps-code-app
|
|
46
|
+
--pattern <genai-pattern>
|
|
47
|
+
--api python|node|go
|
|
48
|
+
--cloud azure
|
|
49
|
+
--region <slug>
|
|
50
|
+
--frontend | --no-frontend
|
|
51
|
+
--environments dev,test,prod
|
|
52
|
+
--spec openspec|spec-kit
|
|
53
|
+
--agents copilot,claude
|
|
54
|
+
--default-agent copilot|claude
|
|
55
|
+
--code-apps-plugin | --no-code-apps-plugin
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Power Apps rejects API, pattern, cloud, region, frontend, and API environment
|
|
59
|
+
options rather than ignoring them.
|
|
60
|
+
|
|
61
|
+
Consent options are documented in [safety and consent](safety-and-consent.md).
|
|
62
|
+
|
|
63
|
+
## Update modes
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
liftoff update
|
|
67
|
+
liftoff update --json
|
|
68
|
+
liftoff update --apply
|
|
69
|
+
liftoff update --apply --force
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
`--force` is valid only with `--apply`. It overwrites reported file conflicts;
|
|
73
|
+
it does not permit workload, API stack, GenAI pattern, framework, selected
|
|
74
|
+
agent, or user-supplied Power Apps starter identity changes.
|
|
75
|
+
|
|
76
|
+
## JSON and exit codes
|
|
77
|
+
|
|
78
|
+
Machine-readable maintenance contracts bypass decorative presentation:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
liftoff validate --json
|
|
82
|
+
liftoff doctor --json
|
|
83
|
+
liftoff update --json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Each JSON object has a top-level numeric `schemaVersion`.
|
|
87
|
+
|
|
88
|
+
Exit codes:
|
|
89
|
+
|
|
90
|
+
- `0`: success or a clean check.
|
|
91
|
+
- `1`: invalid input, unsafe state, or command failure.
|
|
92
|
+
- `2`: a read-only check found drift.
|
|
93
|
+
|
|
94
|
+
Raw installer, framework, and dependency child stdout and stderr are forwarded
|
|
95
|
+
unchanged.
|
|
96
|
+
|
|
97
|
+
## Terminal layouts
|
|
98
|
+
|
|
99
|
+
Interactive `init`, `migrate`, and `plan` display the Liftoff identity before
|
|
100
|
+
the first question.
|
|
101
|
+
|
|
102
|
+
- TTYs at least 96 columns use the rich wordmark, Unicode sections, aligned
|
|
103
|
+
tables, and semantic color.
|
|
104
|
+
- Widths from 64 through 95 columns use a compact identity and wrapped
|
|
105
|
+
sections.
|
|
106
|
+
- Narrow or redirected output is deterministic plain text without ANSI
|
|
107
|
+
sequences or decorative borders.
|
|
108
|
+
|
|
109
|
+
Set `NO_COLOR=1` to keep the selected layout without ANSI color:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
NO_COLOR=1 liftoff init
|
|
113
|
+
liftoff doctor > readiness.txt
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
JSON and version output never include banners or decorative layout.
|
|
117
|
+
|
|
118
|
+
## Catalog examples
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
liftoff patterns
|
|
122
|
+
liftoff providers
|
|
123
|
+
liftoff regions
|
|
124
|
+
liftoff regions search korea --cloud azure
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Azure is the available provider. AWS and GCP are listed as planned and rejected
|
|
128
|
+
before generation.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Configuration and manifests
|
|
2
|
+
|
|
3
|
+
Generated projects have two Liftoff root files with different ownership.
|
|
4
|
+
|
|
5
|
+
## `liftoff.config.json`: developer-owned desired state
|
|
6
|
+
|
|
7
|
+
Liftoff writes configuration once during initialization and does not
|
|
8
|
+
machine-rewrite it afterward.
|
|
9
|
+
|
|
10
|
+
Supported edits are reconciled by `liftoff update`:
|
|
11
|
+
|
|
12
|
+
- API workloads can add or remove environments and enable applicable generated
|
|
13
|
+
areas such as the frontend.
|
|
14
|
+
- Power Apps can change the optional Code Apps plugin preference.
|
|
15
|
+
|
|
16
|
+
Workload kind, API stack, GenAI pattern, spec workflow, selected agents, and a
|
|
17
|
+
user-supplied Power Apps starter source change are not ordinary updates.
|
|
18
|
+
|
|
19
|
+
A Power Apps configuration contains only applicable fields:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"projectName": "sales-hub",
|
|
24
|
+
"projectType": "power-apps-code-app",
|
|
25
|
+
"specWorkflow": "openspec",
|
|
26
|
+
"agents": ["github-copilot"],
|
|
27
|
+
"codeAppsPlugin": false
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
API, cloud, region, frontend, and environment fields are rejected for this
|
|
32
|
+
workload rather than silently ignored.
|
|
33
|
+
|
|
34
|
+
## `liftoff.manifest.json`: CLI-owned compatibility record
|
|
35
|
+
|
|
36
|
+
New projects use manifest schema v4. Its common project identity includes the
|
|
37
|
+
name, spec workflow, selected agents, and applicable Spec Kit default. A
|
|
38
|
+
discriminated `project.workload` object contains only fields valid for one
|
|
39
|
+
workload:
|
|
40
|
+
|
|
41
|
+
- `genai`: API stack, pattern, cloud, region, frontend, and environments.
|
|
42
|
+
- `standard`: API stack, cloud, region, frontend, and environments.
|
|
43
|
+
- `power-apps-code-app`: immutable starter repository, template path, commit,
|
|
44
|
+
and Code Apps plugin preference.
|
|
45
|
+
|
|
46
|
+
The manifest also records:
|
|
47
|
+
|
|
48
|
+
- Generating Liftoff version.
|
|
49
|
+
- Official framework adapter, state, and tested contract version when known.
|
|
50
|
+
- Durable artifact logical names.
|
|
51
|
+
- OS-neutral path-part arrays.
|
|
52
|
+
- `sha256:` content hashes.
|
|
53
|
+
|
|
54
|
+
Power Apps source identity uses explicit repository, path, and 40-character
|
|
55
|
+
commit fields. It is not inferred from mutable URLs or generated file paths.
|
|
56
|
+
|
|
57
|
+
Treat the manifest as CLI-owned. Restore it from version control or regenerate
|
|
58
|
+
with the matching Liftoff version when validation reports malformed identity,
|
|
59
|
+
paths, or hashes.
|
|
60
|
+
|
|
61
|
+
## Compatibility
|
|
62
|
+
|
|
63
|
+
Readers support schemas v2, v3, and v4:
|
|
64
|
+
|
|
65
|
+
- V2 normalizes the legacy flat API identity and records framework state as
|
|
66
|
+
uncertain without inventing agents.
|
|
67
|
+
- V3 normalizes flat GenAI or API identity plus framework and agent metadata.
|
|
68
|
+
- V4 represents the discriminated workload model, including Power Apps.
|
|
69
|
+
|
|
70
|
+
A read-only `liftoff update` leaves an old manifest byte-for-byte unchanged. A
|
|
71
|
+
successful apply writes v4 only after the file transaction succeeds. Skipped
|
|
72
|
+
conflicts retain their recorded hashes.
|
|
73
|
+
|
|
74
|
+
## Artifact ownership
|
|
75
|
+
|
|
76
|
+
Durable Liftoff artifacts carry logical names and hashes. That lets validate,
|
|
77
|
+
doctor, and update distinguish:
|
|
78
|
+
|
|
79
|
+
- Current template bytes.
|
|
80
|
+
- An untouched file with a template upgrade.
|
|
81
|
+
- A developer edit that conflicts with a template change.
|
|
82
|
+
- A named artifact moved by the template.
|
|
83
|
+
- Missing, new, and orphaned artifacts.
|
|
84
|
+
|
|
85
|
+
Framework-owned OpenSpec and Spec Kit files are validated separately and are
|
|
86
|
+
not claimed in durable hashes. One-time seed files are also excluded so they
|
|
87
|
+
can follow their own lifecycle.
|
|
88
|
+
|
|
89
|
+
## Contract conventions
|
|
90
|
+
|
|
91
|
+
- Writers use `artifactVersion` 4; readers support v2, v3, and v4.
|
|
92
|
+
- Artifact logical names and catalog identifiers are append-only.
|
|
93
|
+
- Rendering is deterministic and does not depend on timestamps, host versions,
|
|
94
|
+
or network state.
|
|
95
|
+
- `.liftoff/` is reserved for future CLI-managed state.
|
|
96
|
+
- Machine-readable paths are path-part arrays, never platform-joined strings.
|
|
97
|
+
- Exit codes are 0 for success or clean, 1 for failure, and 2 for detected
|
|
98
|
+
drift in check mode.
|
|
99
|
+
- JSON outputs carry a numeric top-level `schemaVersion`.
|
|
100
|
+
|
|
101
|
+
See [safety and consent](safety-and-consent.md) for reconciliation and rollback
|
|
102
|
+
behavior.
|