-
-
Notifications
You must be signed in to change notification settings - Fork 153
Expand file tree
/
Copy pathroadmap.js
More file actions
430 lines (423 loc) · 52.9 KB
/
roadmap.js
File metadata and controls
430 lines (423 loc) · 52.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
/**
* Atmos Roadmap Configuration
*
* This file contains all roadmap data including initiatives, milestones,
* progress percentages, and GitHub issue associations.
*
* To update the roadmap:
* 1. Adjust progress percentages as milestones complete
* 2. Move milestones from "planned" to "in-progress" to "shipped"
* 3. Update quarters as time progresses
* 4. Add new GitHub issue numbers as they're created
*/
export const roadmapConfig = {
vision:
'One tool to orchestrate your entire infrastructure lifecycle — as convenient as PaaS, but as flexible as Terraform, sitting on top of the tools you know and love.',
theme: {
title: 'From Fragmented to Unified',
description:
'Atmos is consolidating the sprawl of infrastructure tooling into a cohesive, discoverable, zero-config experience that works identically locally and in CI.',
},
quarters: [
{ id: 'q1-2025', label: 'Q1 2025', status: 'completed' },
{ id: 'q2-2025', label: 'Q2 2025', status: 'completed' },
{ id: 'q3-2025', label: 'Q3 2025', status: 'completed' },
{ id: 'q4-2025', label: 'Q4 2025', status: 'current' },
{ id: 'q1-2026', label: 'Q1 2026', status: 'planned' },
{ id: 'q2-2026', label: 'Q2 2026', status: 'planned' },
],
featured: [
{
id: 'ask-ai',
icon: 'RiRobot2Line',
title: 'Ask AI Search',
tagline: 'Conversational documentation search',
description: 'AI-powered search that understands natural language questions about Atmos. Get intelligent, contextual answers drawn directly from the documentation.',
benefits: 'Ask questions in plain English instead of searching for keywords. Get answers with source citations and direct links to relevant docs.',
status: 'shipped',
quarter: 'q4-2025',
changelog: 'ask-ai-search',
},
{
id: 'devcontainer',
icon: 'RiCodeBoxLine',
title: 'Dev Container Support',
tagline: 'Consistent development environments',
description: 'Native Dev Container support with automatic container lifecycle management. Start, stop, attach, and exec into containers directly from Atmos.',
benefits: 'Consistent development environments across the team. New contributors are productive immediately without manual setup.',
status: 'shipped',
quarter: 'q4-2025',
docs: '/cli/configuration/devcontainer',
changelog: 'native-devcontainer-support',
prd: 'devcontainer-command',
},
{
id: 'toolchain',
icon: 'RiToolsLine',
title: 'Toolchain Management',
tagline: 'Automatic tool installation',
description: 'Automatically install and manage the correct versions of Terraform, OpenTofu, Helmfile, and other tools based on component requirements.',
benefits: 'The correct tool versions are installed automatically. No tfenv, tgswitch, or manual version management required.',
status: 'in-progress',
quarter: 'q1-2026',
pr: 1686,
},
{
id: 'cloud-auth',
icon: 'RiLockLine',
title: 'Cloud Authentication',
tagline: 'One identity layer for all clouds',
description: 'Unified authentication across AWS, Azure, and GCP. SSO, OIDC, SAML, and keyring backends—all in one place. Zero local config required.',
benefits: 'One command replaces aws-vault, saml2aws, gcloud auth, and azure login. Credentials are managed consistently across all providers. Works identically in CI and locally.',
status: 'shipped',
quarter: 'q3-2025',
docs: '/cli/configuration/auth/providers',
changelog: 'introducing-atmos-auth',
prd: 'keyring-backends',
},
{
id: 'workflows',
icon: 'RiFlowChart',
title: 'Beautiful Workflows',
tagline: 'Multi-step automation made easy',
description: 'Encode complex operations into reusable workflows with typed inputs, per-step auth, and rich step types.',
benefits: 'Build interactive deployment workflows with user confirmations, status updates, and cross-account orchestration.',
status: 'in-progress',
quarter: 'q1-2026',
docs: '/cli/configuration/workflows',
pr: 1899,
},
{
id: 'source-provisioning',
icon: 'RiDownloadCloudLine',
title: 'Source Provisioning',
tagline: 'Just-in-time component fetching',
description: 'Automatically fetch component sources on first use—no separate vendor step needed. Just reference and deploy.',
benefits: 'Reference a component and deploy. No manual vendor step or CI job required. Components are fetched on demand like Terraform modules.',
status: 'shipped',
quarter: 'q4-2025',
pr: 1877,
prd: 'provisioner-system',
docs: '/cli/commands/terraform/source',
changelog: 'terraform-source-provisioner',
},
{
id: 'native-ci',
icon: 'RiGitBranchLine',
title: 'Native CI/CD Support',
tagline: 'Local = CI. Same command, run everywhere',
description: 'Rich plan summaries directly in GitHub without wrapper scripts or extra actions. Commands auto-detect CI and produce beautiful output.',
benefits: 'Eliminate glue code from your workflows. No bash parsing, no separate actions—just run the same command you use locally. Ships with GitHub Actions support; provider architecture enables future GitLab and Azure DevOps support.',
status: 'in-progress',
quarter: 'q1-2026',
pr: 1891,
prd: 'native-ci-integration',
},
],
initiatives: [
{
id: 'auth',
icon: 'RiLockLine',
title: 'Unified Authentication',
tagline: 'Replace a dozen auth tools with one identity layer',
description:
'The way humans login with SSO is different from how automation systems authenticate with OIDC. Yet most teams implement this with fragmented approaches. Atmos brings authentication into the core with native support for identity profiles configurable by runtime.',
progress: 85,
status: 'in-progress',
milestones: [
{ label: 'Added `atmos auth` command framework', status: 'shipped', quarter: 'q2-2025', docs: '/cli/commands/auth/usage', changelog: 'introducing-atmos-auth', description: 'Unified command for managing authentication across cloud providers and CI systems.', benefits: 'One command replaces aws-vault, saml2aws, gcloud auth, and azure login. Credentials are managed consistently across all providers.' },
{ label: 'AWS IAM Identity Center (SSO)', status: 'shipped', quarter: 'q2-2025', docs: '/cli/configuration/auth/providers', changelog: 'introducing-atmos-auth', description: 'Native support for AWS SSO login with automatic credential caching and session refresh.', benefits: 'Log in once and work across all AWS accounts. Sessions refresh automatically without interrupting your workflow.' },
{ label: 'AWS IAM Users', status: 'shipped', quarter: 'q4-2025', docs: '/cli/configuration/auth/providers', description: 'Support for traditional IAM user credentials with secure credential management.', benefits: 'Teams with IAM users can adopt Atmos auth without changing their identity provider.' },
{ label: 'Assume Root capability', status: 'shipped', quarter: 'q4-2025', docs: '/cli/configuration/auth/providers', changelog: 'aws-assume-root-identity', description: 'Centralized root access management for organizations that need controlled root-level operations.', benefits: 'Auditable root access for break-glass scenarios. No shared root credentials or password managers.' },
{ label: 'GitHub OIDC', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/auth/providers', changelog: 'introducing-atmos-auth', description: 'Native GitHub Actions OIDC integration for secure, secretless CI/CD authentication to AWS.', benefits: 'No AWS access keys in GitHub secrets. Credentials are scoped to the repository and workflow.' },
{ label: 'Azure AD / Workload Identity Federation', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/auth/providers', changelog: 'azure-authentication-support', description: 'Authenticate to Azure using Entra ID (Azure AD) with support for Workload Identity Federation for CI/CD.', benefits: 'Multi-cloud teams use the same auth patterns for AWS and Azure without separate tooling.' },
{ label: 'SAML Provider', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/auth/providers', changelog: 'introducing-atmos-auth', description: 'Enterprise SAML-based authentication for organizations using identity providers like Okta or OneLogin.', benefits: 'Enterprises can enforce their existing IdP policies without custom scripts or third-party tools.' },
{ label: 'Keyring backends (system, file, memory)', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/auth/keyring', changelog: 'flexible-keyring-backends', description: 'Flexible credential storage with system keychain integration, encrypted file storage, or in-memory sessions.', benefits: 'Credentials are stored securely based on your environment—macOS Keychain, Linux secret-tool, or encrypted files.' },
{ label: 'Component-level auth identities', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/auth/identities', changelog: 'authentication-for-workflows-and-custom-commands', description: 'Define different AWS identities per component, enabling multi-account deployments from a single workflow.', benefits: 'Deploy to prod, staging, and dev accounts in a single workflow without switching credentials.' },
{ label: 'Per-step workflow authentication', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/auth/identities', changelog: 'authentication-for-workflows-and-custom-commands', description: 'Each workflow step can assume a different identity, enabling cross-account orchestration.', benefits: 'Complex multi-account deployments are expressed declaratively. No credential juggling in scripts.' },
{ label: 'Isolated shell sessions (`atmos auth shell`)', status: 'shipped', quarter: 'q4-2025', docs: '/cli/commands/auth/auth-shell', changelog: 'atmos-auth-shell', description: 'Launch isolated shell sessions with specific identity credentials pre-loaded for secure multi-identity workflows.', benefits: 'Work in multiple AWS accounts simultaneously with isolated shells. No credential conflicts or accidental cross-account operations.' },
{ label: 'Zero-config AWS SSO identity management', status: 'shipped', quarter: 'q4-2025', changelog: 'aws-sso-identity-auto-provisioning', description: 'Automatic SSO identity provisioning without manual configuration—Atmos detects and configures SSO settings.', benefits: 'Get started with AWS SSO instantly. No manual identity configuration required.' },
{ label: 'Identity flag for describe commands', status: 'shipped', quarter: 'q4-2025', changelog: 'describe-commands-identity-flag', description: 'Use --identity flag with describe commands to see configuration as it would appear under a specific identity.', benefits: 'Debug identity-specific configurations without switching credentials.' },
{ label: 'Seamless first login with provider fallback', status: 'shipped', quarter: 'q4-2025', pr: 1918, changelog: 'auth-login-provider-fallback', description: 'Automatic provider fallback when no identities are configured, enabling seamless first-time login with auto_provision_identities.', benefits: 'Just run atmos auth login on first use. No need to know about --provider flag.' },
{ label: 'Automatic EKS kubeconfig tied to identities', status: 'in-progress', quarter: 'q4-2025', pr: 1884, description: 'Automatic kubeconfig generation for EKS clusters using Atmos-managed AWS credentials.', benefits: 'No aws eks update-kubeconfig commands. Kubectl works immediately after Atmos auth.' },
{ label: 'Automatic ECR authentication tied to identities', status: 'planned', quarter: 'q1-2026', pr: 1859, description: 'Native ECR login for container image operations without external tooling.', benefits: 'Docker push/pull to ECR works without aws ecr get-login-password or external credential helpers.' },
{ label: 'GCP Workload Identity', status: 'planned', quarter: 'q1-2026', description: 'Google Cloud authentication using Workload Identity Federation for secretless CI/CD.', benefits: 'GCP deployments use the same secretless CI/CD pattern as AWS OIDC.' },
{ label: 'Support for `atmos auth` with GitHub Apps', status: 'planned', quarter: 'q1-2026', pr: 1683, description: 'GitHub App authentication for fine-grained repository access and elevated rate limits.', benefits: 'Higher API rate limits and granular permissions for automation that interacts with GitHub.' },
],
issues: [],
prs: [
{ number: 1894, title: 'Add Azure OIDC/Workload Identity Federation provider' },
{ number: 1859, title: 'Add ECR authentication' },
{ number: 1884, title: 'Add EKS kubeconfig authentication integration PRD' },
{ number: 1887, title: 'Add PRD for aws/login provider (native SDK auth)' },
{ number: 1683, title: 'Update auth docs and implement GitHub providers' },
],
},
{
id: 'dx',
icon: 'RiFlashlightLine',
title: 'Developer Experience & Zero-Config',
tagline: 'Sane defaults, full configurability',
description:
'Too many parameters, too much configuration. Everything should just work out of the box while remaining fully customizable.',
progress: 90,
status: 'in-progress',
milestones: [
{ label: 'Zero-config terminal output (auto TTY/color)', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/settings/terminal', changelog: 'zero-config-terminal-output', description: 'Terminal output adapts automatically to your environment—colors when interactive, clean text when piping. Works identically in CI and locally without configuration.', benefits: 'No terminal configuration needed. Output is readable regardless of where commands run—locally, in CI, or piped to files.' },
{ label: 'Force flags (`--force-tty`, `--force-color`)', status: 'shipped', quarter: 'q3-2025', docs: '/cli/global-flags', changelog: 'zero-config-terminal-output', description: 'Override auto-detection for CI environments or screenshot generation with explicit TTY and color control.', benefits: 'Generate consistent screenshots for documentation or force colors in CI environments that support them.' },
{ label: 'Auto-degradation (TrueColor→256→16→None)', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/settings/terminal', changelog: 'zero-config-terminal-output', description: 'Graceful color fallback from 16 million colors to 256 to 16 to plain text based on terminal support.', benefits: 'Output looks good on any terminal—from modern iTerm2 to legacy xterm to CI logs.' },
{ label: 'Secret masking (built-in patterns + custom expressions)', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/settings/mask', changelog: 'zero-config-terminal-output', description: 'Automatic detection and masking of 120+ secret patterns (AWS keys, tokens, passwords) in terminal output.', benefits: 'Secrets are protected automatically. Safe to share terminal output or stream logs without audit risk.' },
{ label: 'Added `--chdir` flag for multi-repo workflows', status: 'shipped', quarter: 'q3-2025', docs: '/cli/global-flags', changelog: 'introducing-chdir-flag', description: 'Run Atmos commands from any directory by specifying the project root with --chdir.', benefits: 'Scripts and CI jobs can target any repo without changing directories or managing paths.' },
{ label: 'Parent directory search & git root discovery', status: 'shipped', quarter: 'q3-2025', changelog: 'parent-directory-search-and-git-root-discovery', description: 'Run Atmos from any directory within your project—automatic discovery of atmos.yaml by searching parent directories up to the git repository root.', category: 'featured', priority: 'high', benefits: 'Run atmos from anywhere in your project. No need to cd to the root directory first.' },
{ label: 'Native Dev Containers', status: 'shipped', quarter: 'q4-2025', docs: '/cli/configuration/devcontainer', changelog: 'native-devcontainer-support', description: 'Native Dev Container support with automatic container lifecycle management—start, stop, attach, and exec.', category: 'featured', priority: 'high', benefits: 'Consistent development environments across the team. New contributors are productive immediately.' },
{ label: 'Interactive prompts for missing flags', status: 'shipped', quarter: 'q4-2025', changelog: 'interactive-flag-prompts', description: 'Prompts for missing required flags with tab completion and validation.', category: 'featured', priority: 'high', benefits: 'Discover available options interactively instead of reading docs. Commands guide you through required inputs.' },
{ label: 'Atmos Profiles', status: 'shipped', quarter: 'q4-2025', docs: '/cli/configuration/profiles', changelog: 'atmos-profiles', description: 'Named configuration profiles for different environments or projects, switchable on the fly.', benefits: 'Switch between projects or environments without editing config files or setting environment variables.' },
{ label: 'Automated Terraform backend provisioning', status: 'shipped', quarter: 'q4-2025', docs: '/components/terraform/backend-provisioning', changelog: 'automatic-backend-provisioning', description: 'Automatic backend.tf generation from stack configuration. Backends are defined once and inherited.', category: 'featured', priority: 'high', benefits: 'No more copy-pasting backend blocks. Backend configuration is defined once and applied consistently.' },
{ label: 'Streaming Terraform UI', status: 'in-progress', quarter: 'q4-2025', pr: 1908, description: 'Real-time Terraform plan/apply visualization with resource-level progress tracking.', benefits: 'See exactly what Terraform is doing as it happens. Identify slow resources and stuck operations.' },
{ label: 'Native CI integration with summary templates', status: 'in-progress', quarter: 'q4-2025', pr: 1891, description: 'GitHub/GitLab-native summaries with formatted plan output, cost estimates, and approval workflows.', benefits: 'PR reviewers see formatted plans directly in GitHub. No clicking through to CI logs.' },
{ label: 'Component-aware tab completion for all commands', status: 'shipped', quarter: 'q4-2025', docs: '/cli/commands/completion', changelog: 'component-aware-stack-completion', description: 'Shell completion that understands your stacks and components for faster command entry.', category: 'featured', priority: 'high', benefits: 'Tab completion shows only valid stacks and components. Discover what exists without searching config files.' },
{ label: 'Filesystem paths for components', status: 'shipped', quarter: 'q4-2025', changelog: 'path-based-component-resolution', description: 'Reference components by filesystem path instead of component name. Run commands from component directories.', codeExample: 'atmos terraform plan ./components/vpc -s plat-ue1-prod', category: 'featured', priority: 'high', benefits: 'Work on components naturally by navigating to their directory. Component names are inferred from the path.' },
{ label: 'Automatic toolchain installation and version management', status: 'shipped', quarter: 'q4-2025', description: 'Install and manage tool versions (Terraform, OpenTofu, Helmfile) based on component requirements.', benefits: 'The correct tool versions are installed automatically. No tfenv, tgswitch, or manual version management.' },
{ label: 'Terminal themes', status: 'shipped', quarter: 'q4-2025', docs: '/cli/configuration/settings/terminal', changelog: 'terminal-themes', description: 'Customizable terminal color themes with built-in presets and user-defined themes.', benefits: 'Match your terminal output to your preferences or brand. Switch themes without code changes.' },
{ label: 'Theme-aware help text', status: 'shipped', quarter: 'q4-2025', changelog: 'theme-aware-help', description: 'Help text respects your terminal theme settings for consistent styling.', benefits: 'Help output matches your theme. Consistent look across all Atmos commands.' },
{ label: 'Helpful error messages with hints', status: 'shipped', quarter: 'q4-2025', changelog: 'helpful-errors', description: 'Error messages include actionable hints, rich context, and optional Sentry integration for enterprise error tracking.', benefits: 'Understand what went wrong and how to fix it. Enterprise teams get centralized error tracking.' },
{ label: 'Interactive Terraform prompts', status: 'shipped', quarter: 'q4-2025', changelog: 'interactive-terraform-prompts', description: 'Interactive component and stack selection when running Terraform commands without arguments.', benefits: 'Discover and select components interactively. No need to remember exact names.' },
{ label: 'Seamless first login with provider fallback', status: 'shipped', quarter: 'q4-2025', pr: 1918, changelog: 'auth-login-provider-fallback', description: 'Auth login automatically falls back to provider when no identities exist, enabling zero-friction first-time login.', benefits: 'New users just run atmos auth login. No need to understand --provider flag on first use.' },
{ label: 'Configuration provenance tracking', status: 'shipped', quarter: 'q4-2025', changelog: 'provenance-tracking', description: 'Track where every configuration value comes from—which file, which import, which override.', benefits: 'Debug complex inheritance chains. Understand exactly how configuration was assembled.' },
{ label: 'Global environment variables', status: 'shipped', quarter: 'q4-2025', changelog: 'global-env-section', description: 'Define environment variables globally in atmos.yaml that apply to all commands.', benefits: 'Set common environment variables once. No repetition across components.' },
{ label: 'Metadata inheritance', status: 'shipped', quarter: 'q4-2025', changelog: 'metadata-inheritance', description: 'Metadata section now supports full inheritance from base stacks.', benefits: 'Define metadata patterns once and inherit everywhere. Consistent naming across stacks.' },
],
issues: [],
prs: [
{ number: 1908, title: 'Add Terraform streaming UI with real-time visualization' },
{ number: 1891, title: 'Native CI Integration with Summary Templates and Terraform Command Registry' },
],
},
{
id: 'discoverability',
icon: 'RiSearchLine',
title: 'Discoverability & List Commands',
tagline: 'Everything should be discoverable',
description:
'As infrastructure grows, teams need to explore what exists—stacks, components, workflows—and newcomers need a way to orient themselves. Intuitive list commands make your entire infrastructure discoverable and queryable at a glance.',
progress: 100,
status: 'shipped',
milestones: [
{ label: '`atmos list stacks` to browse all configured stacks', status: 'shipped', quarter: 'q1-2025', docs: '/cli/commands/list/stacks', description: 'List all stacks in your infrastructure with filtering and formatting options.', codeExample: 'atmos list stacks --format json', benefits: 'See all your stacks at a glance. New team members can understand infrastructure scope immediately.' },
{ label: '`atmos list components` to discover available components', status: 'shipped', quarter: 'q1-2025', docs: '/cli/commands/list/components', description: 'Discover all available components across your infrastructure catalog.', codeExample: 'atmos list components', benefits: 'Find available components without digging through directories. See what\'s ready to deploy.' },
{ label: '`atmos list workflows` to explore automation patterns', status: 'shipped', quarter: 'q3-2025', docs: '/cli/commands/list/workflows', description: 'Browse available workflows with their descriptions and step counts.', codeExample: 'atmos list workflows', benefits: 'Discover automation patterns your team has defined. Understand what workflows are available before running them.' },
{ label: '`atmos list affected` to identify changes for targeted CI/CD', status: 'shipped', quarter: 'q4-2025', docs: '/cli/commands/list/affected', changelog: 'list-affected-command', description: 'Identify which stacks and components are affected by changes, enabling targeted CI/CD pipelines.', category: 'featured', priority: 'high', benefits: 'CI only plans/applies what changed. Large monorepos deploy in minutes instead of hours.' },
{ label: 'Customizable list columns for tailored views', status: 'shipped', quarter: 'q4-2025', changelog: 'customizable-list-command-output', description: 'Configure which columns appear in list output to show the data relevant to your workflow.', category: 'featured', priority: 'high', benefits: 'Show exactly the information you need—environment, region, component status—without noise.' },
{ label: 'Easy filter output using jq-like queries (`--query`)', status: 'shipped', quarter: 'q4-2025', docs: '/cli/commands/list/stacks', description: 'Filter and transform list output with familiar jq-style expressions (powered by JMESPath) for precise data extraction.', codeExample: 'atmos list stacks --query "[?components.terraform.vpc]"', category: 'featured', priority: 'high', benefits: 'Query your infrastructure like a database. Find stacks with specific components or configurations instantly.' },
],
issues: [],
prs: [
{ number: 1874, title: 'Add list affected command with spinner UI improvements' },
],
},
{
id: 'workflows',
icon: 'RiFlowChart',
title: 'Workflows Overhaul',
tagline: 'Bootstrap systems and create reusable patterns',
description:
'Bootstrapping new environments and repeating complex multi-step operations manually is error-prone and time-consuming. Workflows encode these patterns once and execute them reliably across teams and environments.',
progress: 100,
status: 'shipped',
milestones: [
{ label: 'New workflow step types (show, sleep, stage, alert, etc.)', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/workflows', description: 'Rich step types including message display, timed delays, user prompts, and alert notifications.', category: 'featured', priority: 'high', benefits: 'Build interactive deployment workflows with user confirmations and status updates.' },
{ label: 'New interactive input types for workflow steps', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/workflows', description: 'Typed inputs for workflow steps with validation—strings, numbers, booleans, and selections.', category: 'featured', priority: 'high', benefits: 'Inputs are validated before execution starts. Bad values are caught early, not mid-deployment.' },
{ label: 'Run any workflow without specifying the workflow file', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/workflows', changelog: 'workflow-file-auto-discovery', description: 'Workflows are automatically discovered without needing to specify the file path.', category: 'featured', priority: 'high', benefits: 'Just run atmos workflow <name>. No need to remember which file contains which workflow.' },
{ label: 'Workflows can now change directories before executing commands', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/workflows', changelog: 'working-directory-support', description: 'Execute workflow steps in specific directories, enabling multi-repo orchestration.', category: 'featured', priority: 'high', benefits: 'Orchestrate across multiple repositories in a single workflow.' },
{ label: 'Integration with `atmos auth` identities for per-step authentication', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/auth/identities', changelog: 'authentication-for-workflows-and-custom-commands', description: 'Each workflow step can use different credentials for cross-account deployments.', category: 'featured', priority: 'high', benefits: 'Deploy to multiple accounts in sequence without credential juggling.' },
{ label: 'Unified task execution (`pkg/runner`)', status: 'shipped', quarter: 'q4-2025', pr: 1901, description: 'A single execution engine for all task types—Terraform, Helmfile, shell, and custom commands.', benefits: 'Consistent behavior across all command types. Same output handling, error reporting, and logging.' },
],
issues: [],
prs: [
{ number: 1899, title: 'Implement workflow step types with registry pattern' },
{ number: 1901, title: 'Create pkg/runner with unified task execution' },
],
},
{
id: 'extensibility',
icon: 'RiPlugLine',
title: 'Extensibility & Custom Components',
tagline: 'Truly extensible architecture',
description:
'Modern infrastructure spans Terraform, Kubernetes, serverless, and custom tooling. A single orchestration layer should manage all of it consistently, not just a subset.',
progress: 80,
status: 'in-progress',
milestones: [
{ label: 'Custom commands support interactive step types', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/commands', description: 'Define your own command types beyond Terraform and Helmfile—shell scripts, Ansible, Pulumi, and more.', category: 'featured', priority: 'high', benefits: 'Extend Atmos to orchestrate any tool. Your entire toolchain speaks the same language.' },
{ label: 'Added `!terraform.state` YAML function', status: 'shipped', quarter: 'q3-2025', docs: '/functions/yaml/terraform.state', description: 'Query Terraform state directly from stack configuration, using the configured backend.', codeExample: 'vpc_id: !terraform.state vpc.outputs.vpc_id', category: 'featured', priority: 'high', benefits: 'Reference deployed infrastructure directly. No terraform_remote_state blocks or data sources needed.' },
{ label: 'Added `!include` YAML function', status: 'shipped', quarter: 'q3-2025', docs: '/functions/yaml/include', description: 'Include external YAML files for reusable configuration blocks.', codeExample: 'settings: !include common/settings.yaml', category: 'featured', priority: 'high', benefits: 'Share configuration across stacks. Update once, apply everywhere.' },
{ label: 'Override built-in component workflows using custom defined workflows and hooks', status: 'planned', quarter: 'q1-2026', description: 'Override default Terraform/Helmfile workflows with custom step sequences.', category: 'featured', priority: 'high', benefits: 'Add pre/post hooks, custom validation, or entirely replace the built-in plan/apply flow.' },
{ label: 'Added `!terraform.output` YAML function', status: 'shipped', quarter: 'q3-2025', docs: '/functions/yaml/terraform.output', description: 'Reference outputs from other components without data sources.', codeExample: 'subnet_ids: !terraform.output vpc.private_subnet_ids', benefits: 'Wire components together declaratively. Dependencies are explicit in configuration.' },
{ label: 'Added `!store` YAML function', status: 'shipped', quarter: 'q3-2025', docs: '/functions/yaml/store', description: 'Access secrets from configured stores (SSM, Secrets Manager, etc.).', codeExample: 'api_key: !store ssm:/myapp/api-key', benefits: 'Reference secrets at deploy time. No hardcoded values or environment variables needed.' },
{ label: 'Added `!literal` YAML function', status: 'shipped', quarter: 'q4-2025', docs: '/functions/yaml/literal', changelog: 'literal-yaml-function', description: 'Pass raw HCL/JSON values without YAML interpretation for complex Terraform expressions.', codeExample: 'policy: !literal \'jsonencode({...})\'', benefits: 'Use complex HCL expressions without YAML escaping headaches.' },
{ label: 'Custom component types with registry', status: 'shipped', quarter: 'q4-2025', docs: '/cli/configuration/commands', changelog: 'introducing-command-registry-pattern', description: 'Register custom component types that integrate seamlessly with Atmos commands and workflows.', benefits: 'Your custom commands get the same tab completion, list commands, and workflow integration as built-ins.' },
{ label: 'Semantic type completion', status: 'shipped', quarter: 'q4-2025', docs: '/cli/commands/completion', description: 'Context-aware shell completion that understands your component types and suggests valid options.', benefits: 'Tab completion suggests values that make sense for each argument, not just filenames.' },
{ label: 'Auth support for custom commands', status: 'shipped', quarter: 'q4-2025', docs: '/cli/configuration/auth/identities', changelog: 'authentication-for-workflows-and-custom-commands', description: 'Custom commands can leverage Atmos authentication for cloud provider access.', benefits: 'Custom scripts use the same identity management as Terraform. One auth system for everything.' },
{ label: 'Added `!random` YAML function', status: 'shipped', quarter: 'q4-2025', docs: '/functions/yaml/random', changelog: 'random-yaml-function', description: 'Generate random values (strings, numbers, UUIDs) directly in stack configuration.', codeExample: 'suffix: !random string:8', benefits: 'Generate unique identifiers without external tools. Useful for resource naming and testing.' },
{ label: 'Added `!env` function with stack manifest support', status: 'shipped', quarter: 'q4-2025', changelog: 'env-function-stack-manifest-support', description: 'The !env function now reads from stack manifest env sections, not just system environment.', benefits: 'Reference environment variables defined in stack configuration. Consistent behavior across local and CI.' },
{ label: 'Circular dependency detection for YAML functions', status: 'shipped', quarter: 'q4-2025', changelog: 'yaml-function-circular-dependency-detection', description: 'Automatic detection of circular dependencies between YAML functions with clear error messages.', benefits: 'Catch configuration errors before deployment. Clear error messages show the dependency chain.' },
{ label: 'Deferred YAML function evaluation in merge', status: 'shipped', quarter: 'q4-2025', changelog: 'deferred-yaml-functions-evaluation-in-merge', description: 'YAML functions are now evaluated after merge, allowing functions to reference inherited values.', benefits: 'Functions work correctly with inheritance. Reference values from base stacks in function arguments.' },
{ label: 'Boolean flags with defaults for custom commands', status: 'shipped', quarter: 'q4-2025', changelog: 'custom-command-boolean-flags', description: 'Custom commands now support boolean flags with configurable default values.', benefits: 'Create intuitive CLI flags for custom commands. Defaults reduce repetitive typing.' },
{ label: 'Added `!unset` YAML function', status: 'planned', quarter: 'q1-2026', pr: 1521, description: 'Delete keys from inherited configuration for clean overrides.', codeExample: 'deprecated_setting: !unset', benefits: 'Remove inherited values without workarounds. Clean up configuration by exception.' },
{ label: 'Added `!append` YAML function', status: 'planned', quarter: 'q1-2026', pr: 1513, description: 'Append items to inherited lists instead of replacing them.', codeExample: 'extra_tags: !append [new-tag]', benefits: 'Add to inherited lists without copying the full list. Simpler inheritance for array values.' },
],
issues: [],
prs: [
{ number: 1904, title: 'Add custom component types for custom commands' },
{ number: 1521, title: 'Add !unset YAML function to delete keys from configuration' },
{ number: 1513, title: 'Add !append YAML function for list concatenation' },
],
},
{
id: 'vendoring',
icon: 'RiBox3Line',
title: 'Vendoring & Resilience',
tagline: 'Purpose-built engine with retry and resilience',
description:
'Terraform users expect to declare module sources inline. The source provisioner brings this pattern to stack configuration—declare where components come from and let vendoring handle the rest with retries, concurrency, and graceful failure recovery.',
progress: 60,
status: 'in-progress',
milestones: [
{ label: 'Retry with exponential backoff', status: 'shipped', quarter: 'q3-2025', docs: '/cli/commands/vendor/vendor-pull', description: 'Automatic retries with increasing delays for transient network failures and rate limits.', category: 'featured', priority: 'high', benefits: 'Vendoring succeeds despite flaky networks or GitHub rate limits. CI doesn\'t fail on transient errors.' },
{ label: 'Version constraints for vendor updates', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/vendor', changelog: 'version-constraint-validation', description: 'Semantic versioning constraints to control which versions are pulled during vendor updates.', benefits: 'Control upgrade behavior. Pin to major versions or allow patches automatically.' },
{ label: 'Vendor registry pattern migration', status: 'in-progress', quarter: 'q4-2025', pr: 1889, description: 'Refactoring vendoring to use a pluggable registry pattern for different source types.', benefits: 'Add new source types (OCI, custom registries) without modifying core vendoring code.' },
{ label: 'Just-in-time vendoring', status: 'shipped', quarter: 'q4-2025', pr: 1877, changelog: 'terraform-source-provisioner', docs: '/cli/commands/terraform/source/source', description: 'Automatically vendor components on first use—no separate vendor step needed.', category: 'featured', priority: 'high', benefits: 'Reference a component and deploy. No manual vendor step or CI job required.' },
{ label: 'Component workdir provisioning', status: 'shipped', quarter: 'q4-2025', pr: 1876, changelog: 'component-workdir-isolation', description: 'Isolated working directories for each component instance with `atmos terraform workdir` commands to manage them—eliminating conflicts when multiple instances share the same component source.', benefits: 'Enables concurrent component execution and just-in-time vendoring. Multiple component instances no longer conflict by overwriting each other in the same directory. Use list, describe, show, and clean subcommands to inspect and manage workdirs.' },
],
issues: [],
prs: [
{ number: 1889, title: 'Migrate vendor to registry pattern + implement --stack flag' },
{ number: 1877, title: 'Implement source provisioner for JIT component vendoring' },
{ number: 1876, title: 'Implement component workdir provisioning and CRUD commands' },
],
},
{
id: 'ci-cd',
icon: 'RiGitBranchLine',
title: 'CI/CD Simplification',
tagline: 'Native CI/CD support — local = CI',
description:
'CI pipelines shouldn\'t require complicated workflows, custom actions, and shell commands just to run what should be a one liner. They should just work. What works locally should work identically in CI with minimal configuration.',
progress: 35,
status: 'in-progress',
milestones: [
{ label: 'Native GitHub OIDC enables automatic role assumptions', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration/auth/providers', changelog: 'introducing-atmos-auth', description: 'Secretless CI/CD with native OIDC—no AWS access keys stored in GitHub secrets.', category: 'featured', priority: 'high', benefits: 'No long-lived credentials to rotate. Security posture improves and audit burden decreases.' },
{ label: 'Easily sharing outputs between GitHub Actions steps', status: 'planned', quarter: 'q1-2026', description: 'Pass Terraform outputs between GitHub Actions workflow steps without manual JSON parsing.', category: 'featured', priority: 'high', benefits: 'Use Terraform outputs in subsequent steps naturally. No jq parsing or file juggling.' },
{ label: 'Simplified GitHub Actions with native CI mode', status: 'in-progress', quarter: 'q1-2026', pr: 1891, docs: '/integrations/github-actions/github-actions', description: 'CLI auto-detects CI environments and generates rich job summaries with resource badges, collapsible diffs, and status checks. Replaces separate actions like github-action-atmos-terraform-plan.', category: 'featured', priority: 'high', benefits: 'No wrapper scripts needed. Same command works locally and in CI. Ships with GitHub Actions support; provider architecture enables future GitLab and Azure DevOps support.' },
],
issues: [],
prs: [
{ number: 1891, title: 'Native CI Integration with Summary Templates and Terraform Command Registry' },
],
},
{
id: 'migration',
icon: 'RiExchangeLine',
title: 'Feature Parity with Terragrunt',
tagline: 'Familiar concepts for Terragrunt users',
description:
'Users migrating from Terragrunt expect code generation, backend provisioning for cold-start scenarios, and other familiar patterns.',
progress: 70,
status: 'in-progress',
milestones: [
{ label: 'File-scoped locals', status: 'shipped', quarter: 'q4-2025', docs: '/stacks/locals', changelog: 'file-scoped-locals', description: 'Define local variables at the file level for DRY configuration—familiar to Terragrunt users.', category: 'featured', priority: 'high', benefits: 'Avoid repetition with local variables. Terragrunt users can apply the same patterns they know.' },
{ label: 'Imperative stack names', status: 'shipped', quarter: 'q4-2025', docs: '/stacks/name', changelog: 'stack-manifest-name-override', description: 'Simple stack naming with a direct name field instead of complex name templates.', category: 'featured', priority: 'high', benefits: 'Name stacks explicitly when you need control. No wrestling with name template edge cases.' },
{ label: 'File generation (`generate` blocks)', status: 'shipped', quarter: 'q4-2025', description: 'Generate files like backend.tf and provider.tf from stack configuration with inheritance support.', category: 'featured', priority: 'high', benefits: 'Components are pure Terraform. Generated files keep configuration DRY without duplication.' },
{ label: 'Automatic backend provisioning', status: 'shipped', quarter: 'q4-2025', docs: '/components/terraform/backend-provisioning', description: 'Provision the backend itself (S3 bucket with native state locking) for cold-start scenarios and one-shot Terraform deployments.', category: 'featured', priority: 'high', benefits: 'Bootstrap new environments without a chicken-and-egg problem. State backends are provisioned automatically.' },
{ label: 'AWS context YAML functions', status: 'shipped', quarter: 'q4-2025', docs: '/functions/yaml/aws.account-id', changelog: 'aws-yaml-functions', description: 'Access AWS caller identity in stack configuration.', codeExample: 'account_id: !aws.account-id', category: 'featured', priority: 'high', benefits: 'Reference the current account, region, or identity in configuration dynamically.' },
{ label: '`plan --all` and `apply --all`', status: 'shipped', quarter: 'q4-2025', docs: '/cli/commands/terraform/terraform-apply', description: 'Plan or apply all affected components in a single command with dependency ordering.', benefits: 'Deploy entire environments with one command. Dependencies are respected automatically.' },
{ label: 'Automatic source provisioning', status: 'shipped', quarter: 'q4-2025', pr: 1877, changelog: 'terraform-source-provisioner', docs: '/cli/commands/terraform/source/source', description: 'Automatically fetch component sources without explicit vendoring—just reference and deploy.', category: 'featured', priority: 'high', benefits: 'Components are fetched on demand like Terraform modules. No vendor step to remember.' },
{ label: 'Concurrent component provisioning', status: 'planned', quarter: 'q1-2026', pr: 1876, description: 'Deploy multiple components in parallel with dependency-aware orchestration.', category: 'featured', priority: 'high', benefits: 'Large deployments complete faster. Independent components run in parallel.' },
{ label: 'Automatic provider caching', status: 'planned', quarter: 'q1-2026', pr: 1882, description: 'Cache Terraform providers across components to speed up init and reduce bandwidth.', category: 'featured', priority: 'high', benefits: 'Faster terraform init. Providers are downloaded once and shared across components.' },
{ label: 'Provider auto-generation', status: 'shipped', quarter: 'q3-2025', docs: '/components/terraform/providers', description: 'Generate provider.tf with proper credentials and region configuration from stack metadata.', category: 'featured', priority: 'high', benefits: 'Providers are configured automatically from stack context. No manual provider blocks.' },
{ label: 'Multi-stack formats', status: 'planned', quarter: 'q2-2026', pr: 1842, description: 'Support for alternative stack formats including single-file stacks and Terragrunt-style layouts.', category: 'featured', priority: 'high', benefits: 'Migrate from Terragrunt incrementally. Use the stack format that fits your project.' },
],
issues: [],
prs: [
{ number: 1878, title: 'Add generate section inheritance and auto-generation support' },
{ number: 1893, title: 'Add Terragrunt Support PRD' },
{ number: 1877, title: 'Add native source provisioner for JIT component vendoring' },
{ number: 1882, title: 'Add native Terraform provider caching with XDG support' },
{ number: 1842, title: 'Add multi-format stack support with convert command' },
],
},
{
id: 'quality',
icon: 'RiShieldCheckLine',
title: 'Code Quality and Test Coverage',
tagline: 'Rigorous testing, AI-assisted development, and stability',
description:
'2025 started at <20% test coverage and ended at ~74% — a 54% improvement. Embracing AI-assisted development while maintaining high standards.',
progress: 85,
status: 'in-progress',
milestones: [
{ label: 'Test coverage from <20% to 74%', status: 'shipped', quarter: 'q1-2025', description: 'Test coverage improved from less than 20% to 74% over the course of 2025.', category: 'featured', priority: 'high', benefits: 'Fewer regressions reach users. Changes can be made confidently knowing tests catch issues.' },
{ label: 'Weekly release cadence', status: 'shipped', quarter: 'q2-2025', description: 'Predictable weekly releases every Tuesday with semantic versioning.', benefits: 'Plan upgrades around a known schedule. Features ship faster with smaller, incremental changes.' },
{ label: 'Claude Code + Claude skills', status: 'shipped', quarter: 'q3-2025', description: 'AI-assisted development with custom Claude Code skills for Atmos-specific patterns.', category: 'featured', priority: 'high', benefits: 'Contributors get AI assistance that understands Atmos patterns and conventions.' },
{ label: 'CodeRabbit review integration', status: 'shipped', quarter: 'q3-2025', description: 'Automated code reviews with AI-powered suggestions and security analysis.', benefits: 'PRs get immediate feedback. Security issues are caught before human review.' },
{ label: 'Nightly releases (RC candidates)', status: 'shipped', quarter: 'q4-2025', description: 'Automated nightly builds for testing upcoming features before stable release.', category: 'featured', priority: 'high', benefits: 'Test new features before they ship. Report issues while fixes are still easy.' },
{ label: 'PR feature releases', status: 'shipped', quarter: 'q4-2025', description: 'Every PR gets a pre-release version for easy testing before merge.', benefits: 'Test the exact changes in a PR without building locally. Validate fixes before they merge.' },
{ label: 'Terraform command registry', status: 'in-progress', quarter: 'q4-2025', pr: 1891, changelog: 'terraform-command-registry-pattern', description: 'Centralized Terraform command configuration for consistent behavior across CI and local.', benefits: 'Terraform commands behave identically everywhere. CI matches local exactly.' },
{ label: '80%+ test coverage', status: 'in-progress', quarter: 'q1-2026', description: 'Targeting 80%+ test coverage with focus on critical paths and edge cases.', category: 'featured', priority: 'high', benefits: 'Even more confidence in changes. Edge cases are covered before users hit them.' },
],
issues: [],
prs: [],
},
{
id: 'docs',
icon: 'RiBookOpenLine',
title: 'Documentation Overhaul and Community Announcements',
tagline: 'Every command, every config, cross-linked',
description:
'Comprehensive documentation of every `atmos.yaml` section, every CLI command, with cross-linking between commands and their configurations.',
progress: 100,
status: 'shipped',
milestones: [
{ label: 'Changelog introduction', status: 'shipped', quarter: 'q1-2025', docs: '/changelog', description: 'Detailed changelogs for every release with feature announcements and migration guides.', category: 'featured', priority: 'high', benefits: 'Know exactly what changed in each release. Plan upgrades with full visibility into breaking changes.' },
{ label: 'Every `atmos.yaml` section documented', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration', description: 'Complete reference for every configuration option in atmos.yaml with examples and defaults.', category: 'featured', priority: 'high', benefits: 'Find the exact option you need without reading source code. Every setting has examples.' },
{ label: 'Every CLI command documented', status: 'shipped', quarter: 'q3-2025', docs: '/cli/commands', description: 'Comprehensive documentation for every CLI command with usage examples and screenshots.', category: 'featured', priority: 'high', benefits: 'Learn any command from its documentation. Screenshots show exactly what to expect.' },
{ label: 'Cross-linking commands to configs', status: 'shipped', quarter: 'q3-2025', docs: '/cli/configuration', description: 'Navigate from any command to its related configuration and vice versa.', category: 'featured', priority: 'high', benefits: 'Jump between commands and their configuration options. Understand how settings affect behavior.' },
{ label: 'Design patterns refresh', status: 'shipped', quarter: 'q3-2025', docs: '/design-patterns', description: 'Updated design patterns with real-world examples for common infrastructure scenarios.', category: 'featured', priority: 'high', benefits: 'Apply proven patterns instead of inventing solutions. Learn from real-world examples.' },
{ label: 'Versioning strategy docs', status: 'shipped', quarter: 'q3-2025', docs: '/design-patterns/version-management', changelog: 'comprehensive-version-management-documentation', description: 'Complete guide to version management including component versioning and upgrade strategies.', category: 'featured', priority: 'high', benefits: 'Upgrade components safely with a clear strategy. Understand version compatibility.' },
{ label: 'New learning section', status: 'shipped', quarter: 'q4-2025', docs: '/learn/concepts-overview', changelog: 'documentation-reorganization', description: 'Step-by-step tutorials for getting started with Atmos from scratch.', category: 'featured', priority: 'high', benefits: 'New users have a clear path from zero to productive. Concepts build on each other logically.' },
{ label: 'Added migration guides', status: 'shipped', quarter: 'q4-2025', docs: '/migration/terragrunt', changelog: 'migration-guides', description: 'Detailed guides for migrating from Terragrunt, Terraform workspaces, and native Terraform to Atmos.', category: 'featured', priority: 'high', benefits: 'Migrate from your current tool with step-by-step guidance. Understand the mapping between concepts.' },
{ label: 'Roadmap', status: 'shipped', quarter: 'q4-2025', docs: '/roadmap', changelog: 'product-roadmap', description: 'Public roadmap showing past accomplishments and future plans.', category: 'featured', priority: 'high', benefits: 'See what\'s coming and plan accordingly. Understand the direction of the project.' },
{ label: 'Ask AI conversational search', status: 'shipped', quarter: 'q4-2025', changelog: 'ask-ai-search', description: 'AI-powered conversational search using Algolia DocSearch v4 with Ask AI. Ask natural language questions and get intelligent, contextual answers from the documentation.', category: 'featured', priority: 'high', benefits: 'Find answers faster with natural language queries. No need to guess the right keywords.' },
],
issues: [],
prs: [],
},
],
highlights: [
{
id: 'test-coverage',
label: 'Test Coverage',
before: '<20%',
after: '74%',
icon: 'RiTestTubeLine',
description: '54% improvement in 2025',
},
{
id: 'release-cadence',
label: 'Release Cadence',
before: 'Per PR',
after: 'Weekly',
icon: 'RiCalendarLine',
description: 'Predictable release schedule',
},
{
id: 'tools-replaced',
label: 'Third-party Tools',
before: 'Dozens',
after: 'Minimal',
icon: 'RiStackLine',
description: 'Consolidated toolchain',
},
],
};
export default roadmapConfig;