Azure / Azure/apiops-cli

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

オープン
#120 コメント 2 件 リアクション 1 件 担当者 2 名 @azaslonov が担当を希望しています GitHub で見る
go:needs-research P2 squad squad:apimexpert
主要言語
TypeScript
スター
26
フォーク
9
平均マージ
1日 3時間
マージ済み PR(30日)
20

説明

## 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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。