Forge
ForgeはCloudflare上に2つのインターフェースを持ちます。
- リポジトリ: Gitホスティング、Issue、Pull Request、Actions、トランスクリプト、およびリポジトリエージェント。
- デプロイ/サイト: プッシュされた正確なSHAがプレビューになり、後で本番アプリケーションになることができます。
Cloudflareはランタイム/プロバイダーであり続けます。要求された宛先がForgeである場合に別のGitまたはホスティング製品を代用せず、ホストされたアプリが自動的にForgeまたはCloudflare Access認証を継承すると想定しないでください。
タスクの範囲を維持する
詳細なプロセスを読み込む前に、要求された成果を分類します。
- リポジトリ操作: 通常のGitとForge認証を使用します。
- 顧客アプリケーションのデプロイ: Forge Deployとそのリリース台帳を使用します。
- Forgeインフラストラクチャの修復: 最小限の健全なリリースパスを使用します。修復対象のコントロールプレーンは、自身の修正をデプロイする必要はありません。
- ソースのみ、CLI、ドキュメント、分析、UI作業: ユーザーがデプロイを要求しない限り、本番リリースゲートを追加しないでください。
スレッドローカルの保持や無関係なリリースは、グローバルな前提条件ではありません。要求されたアクションにおける具体的なリスクを軽減するチェックのみを適用し、その成果が証明された時点で停止します。無関係な発見はフォローアップとして記録します。
現在の動作を解決する
Forgeは進化しています。インストールされたCLI、対象リポジトリ、現在のUI/API、およびForgeソースマップによってルーティングされた関連するファーストパーティソースのみを使用してください。ドキュメントは現在のアカウントの資格、制限、またはリリース状態を証明しません。
コマンドを構築する前に構文を検査します。
sf help
sf commands --json
sf schema --json
sf <command> --help
アカウント、リポジトリ、デフォルトブランチ、およびDeployの場合はプロジェクトルートを特定します。ユーザーが置き換えを要求しない限り、既存のGitHubリモートを保持します。
リポジトリ認証
サインインしたForgeブラウザは、ローカルのGit認証情報ではありません。トークンを露出させずに、Forgeのスコープ付き認証情報フローを使用します。
sf auth status
sf auth git-credential <owner>/<repo>
git ls-remote <forge-remote> HEAD
credential.useHttpPathを有効にしたままにします。ブラウザストレージや他のアプリケーションのキーチェーンからトークンを抽出したり、リモート、ソース、シェル履歴、出力にトークンを配置したりしないでください。必要な認可なしに、force-push、originの置き換え、可視性の変更、または認証情報スコープの拡大を行わないでください。
GitHubマイグレーションの場合は、Forgeの現在のインポートフローを使用します。パッケージマネージャーを保持し、Git LFSは別途処理します。履歴のインポートはホストされたLFSオブジェクトをコピーしません。
Forge Deploy契約
Forgeはローカルチェックアウトではなく、プッシュされた正確なSHAをリリースします。ソース、ビルド、プレビュー、プロバイダー公開、本番アクティベーション、ライブ検証は異なる状態です。
各プロジェクトは、設定されたルートにデータのみのforgeBuild.ts v1を必要とします。ソースマップから現在のマニフェストソースを読み取り、その後検証します。
npx smolforge deploy check
buildを省略すると、リポジトリビルドコマンドは実行されません。forgeBuild.tsは静的に評価されます。実行可能な設定、動的インポート、またはforge.yml/forge.yamlは使用しないでください。- アプリにはHTTPエントリポイント、アセット、またはその両方が必要です。SPAフォールバックはブラウザサイドルーティングにのみ使用します。
.forge/config.jsonはプロジェクトをマッピングし、バインディングを提案できます。プロジェクトを作成したり、プロバイダー状態を適用したり、DNS権限を付与したりはしません。- インポートされたWranglerバインディングは、プレビューに本番リソースを公開する可能性があります。
プロジェクトの作成または有効化、サービス条項の受け入れ、プロモーション、ロールバック、無効化、ルート、プロバイダー適用は、個別の外部状態変更です。プレビューURLは非公開でnoindexですが、プライベートではありません。プレビューに秘密やプライベートデータを決して配置しないでください。
リリースとリカバリ
顧客アプリケーションにはForge Deployを使用します。Forgeインフラストラクチャについては、標準レーンが健全で適切である限り、それを優先します。そのレーンが利用不可、不健全、インシデントに関与している、または限定された修復を著しく妨げる場合、直接のWranglerは認可された運用パスです。これは顧客アプリケーションのリリース台帳を回避するためのショートカットではありません。
直接インフラ修復の場合は、正確に1つのコンポーネントに範囲を絞り、ソースSHA、現在およびロールバックバージョン、移行やバインディングの変更を記録し、その後トラフィック、ヘルス/依存関係、および1つの再現を確認します。無関係なプレビュー、ポートフォリオ調整、網羅的な証明、または同じコンポーネントやスキーマを変更できないタスクとの調整を要求しないでください。
ブロックされたリリースを再試行する前に、最後に証明された状態と対象の診断を特定します。正確なSHA、プロジェクトルート、ブランチ、および有効なビルド/アセット設定を確認します。不変のターゲットと冪等性条件が明確な場合にのみ再試行します。
参考文献
Forgeソースマップを使用して、現在の質問を所有するファーストパーティのドキュメントのみをロードします。