Azure / Azure/apiops-cli

Add interactive prompt for configuration file setup (filters & publishing overrides)

Open
#120 2 comments 1 reaction 2 assignees Claimed by @azaslonov View on GitHub
go:needs-research P2 squad squad:apimexpert
Dominant language
TypeScript
Stars
26
Forks
9
Avg merge
1d 3h
Merged PRs (30d)
20

Description

## Problem

After running `apiops init` to scaffold the repo and the identity prompt to connect GitHub & Azure, there is no guided experience for setting up configuration files (extraction filters and publishing overrides). Users must manually create and edit these files, which is error-prone and requires deep knowledge of the configuration schema.

## Context — Current Onboarding Flow

1. **`apiops init`** — scaffolds the repo structure and CI/CD pipelines
2. **Identity prompt** — connects GitHub & Azure (OIDC, service principals, etc.)
3. **First extraction** — pulls down the current APIM state into the repo
4. ❌ **Missing step** — no guided setup for configuration files

## Proposed Solution

Add a new interactive prompt (e.g., `apiops configure` or a post-extraction prompt) that helps users produce well-structured configuration files after their first extraction. The prompt should:

### 1. Review Extracted Files
- Scan the extracted APIM artifacts to understand what resources exist (APIs, named values, backends, products, etc.)
- Identify resources that commonly need per-environment overrides (e.g., named values with secrets, backend URLs, etc.)

### 2. Generate Filter Configuration
- Walk the user through which APIs/resources to include or exclude from publishing
- Produce the appropriate filter/extraction configuration file

### 3. Generate Publishing Override Configuration
- Identify values that likely differ across environments (dev → staging → prod)
- For placeholder/token values needed in production, **interactively ask the user** for the correct values or secret references
- Generate environment-specific configuration files (e.g., `configuration.prod.yaml`) with appropriate overrides
- Use `{#[TOKEN_NAME]#}` placeholder syntax for secrets (per #117)

### 4. Interactive & Best-Effort
- The prompt should be conversational — guide the user through decisions rather than requiring upfront knowledge
- Make sensible defaults and best-effort suggestions based on the extracted artifacts
- Allow the user to review and confirm before writing files

## Acceptance Criteria

- [ ] New interactive prompt is available to run after the first extraction
- [ ] Prompt scans extracted artifacts and identifies resources needing overrides
- [ ] Prompt interactively asks users about environment-specific values (especially secrets/production placeholders)
- [ ] Generates filter configuration for extraction
- [ ] Generates per-environment publishing override configuration files
- [ ] Uses `{#[TOKEN_NAME]#}` placeholder syntax for secret values
- [ ] Provides sensible defaults and best-effort suggestions
- [ ] Documentation explains when and how to run this prompt in the onboarding flow

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.