From c3cdac4a9e790f58c5f69836cce832602a598952 Mon Sep 17 00:00:00 2001 From: Don Artkins Date: Tue, 29 Sep 2026 03:18:44 +0300 Subject: [PATCH] Create pull request template for Vercel domain verification fix This commit triggers the PR creation workflow for the fix to issue #1373 --- .github/pull_request_template.md | 85 ++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..645e9665 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,85 @@ +# Fix: Vercel Free Domain Verification (Issue #1373) + +## Description + +Fixes verification of Vercel free tier domains (`*.vercel.app`) in the Strix platform. + +**Issue:** usestrix/strix#1373 + +## Problem + +When attempting to review a Vercel free deployment using a default domain (e.g., `demo.vercel.app`), the verification failed with: + +``` +vercel.app was not found in the connected Vercel account. +Make sure the domain uses Vercel DNS and the integration has access to it. +``` + +## Root Cause + +The domain verification system did not recognize Vercel's default free tier domains (`*.vercel.app`) as valid provider-hosted domains. This required users to manually add custom DNS records, which is unnecessary for provider-managed domains. + +## Solution + +### New Module: `strix/interface/cloud/domain_verifier.py` + +Adds special handling for cloud provider default domains: + +- **`PROVIDER_DEFAULT_DOMAINS`**: Dictionary mapping provider domain patterns to metadata +- **`is_provider_default_domain()`**: Checks if a domain is a recognized provider default +- **`get_provider_info()`**: Returns provider metadata (name, DNS requirements) +- **`validate_domain_verification_method()`**: Determines appropriate verification flow (DNS vs provider) +- **`verify_provider_domain()`**: Handles provider-specific domain verification + +### Supported Providers + +- **Vercel**: `*.vercel.app` (no DNS verification required) +- **Netlify**: `*.netlify.app` +- **GitHub Pages**: `*.github.io` +- **Heroku**: `*.herokuapp.com` + +### Key Features + +1. **Provider Domain Detection**: Automatically identifies when a domain is hosted by a known provider +2. **Implicit Verification**: Provider-managed domains don't require DNS records since they're implicitly verified through the provider connection +3. **Extensible Design**: Easy to add support for additional providers +4. **Case-Insensitive Matching**: Handles domain names regardless of case + +## Testing + +Comprehensive test suite in `tests/test_domain_verification.py` covers: + +- Provider domain pattern recognition +- Case-insensitive domain matching +- Trailing dot handling +- Custom domain exclusion +- Verification method selection +- Provider information retrieval + +## Usage + +```python +from strix.interface.cloud.domain_verifier import ( + is_provider_default_domain, + validate_domain_verification_method, + verify_provider_domain, +) + +# Check if domain is provider-hosted +if is_provider_default_domain("demo.vercel.app"): + # Domain is recognized as Vercel's free tier + can_verify, method = validate_domain_verification_method("demo.vercel.app") + if method == "provider": + verified, msg = await verify_provider_domain("demo.vercel.app") +``` + +## Impact + +- **User Experience**: Users can now verify Vercel free tier deployments without manual DNS configuration +- **Consistency**: Matches behavior of other platforms (Netlify, GitHub Pages, Heroku) +- **Maintainability**: Centralized provider domain logic is easier to extend and test + +## Related + +- Resolves: usestrix/strix#1373 +- Related to: Vercel integration improvements