Conversation
[dev] [Marfuen] mariano/fix-dns-vercel-missing-record
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
* feat(db): add scope column to Finding table * feat(app): create finding with new scope * feat(app): add Findings section on People tab * feat(app): add Findings on People/Tasks tab * fix(docs): update doc * feat(app): add Findings on People/Devices tab * feat(app): add Findings on People/Chart tab * fix(app): update finding title on Findings overview * feat(app): sync people page tabs with URL hashes * fix(api): correct finding notifications for People scope findings * fix(api): resolve scope finding notification recipients to owners/admins * fix(api): align finding notification deep links with context title precedence * fix(app): preserve #finding- hash on People page tab sync * fix(app): fix finding redirect issue on FindingsOverview * fix(app): fix hash cleanup issue on PeopleFindingsList * fix(api): fix people page url with tab * fix(app): use tab param on people page instead of hash * fix(app): remove hash-related code from PeopleFindingsList * fix(app): minor change - remove empty line * fix(app): remove Findings on People tabs and add new Findings tab on People * fix(app): add Scope select on 'Create Finding' sheet * fix(api): add hasScope param to findings api endpoint * fix(app): show all people-scope findings on People * fix(api): update deep link for people findings on finding notifier * fix(app): update deep link for people findings on overview * fix(app): remove unused line * fix(app): add scope filter on People Findings UI * fix(db): update folder of add_finding script * fix(app): empty commit * fix(app): update test mock labels to match actual implementation values * fix(app): sync people tabs with search params * fix(api): include finding scope in deletion audit log * fix(app): pluralize 'require action' for open findings count * fix(api): remove hasScope param from findings endpoint * fix(app): adding findings section on People page tabs * fix(api): update test payload in finding-notifier service --------- Co-authored-by: chasprowebdev <chasgarciaprowebdev@gmail.com> Co-authored-by: Mariano Fuentes <marfuen98@gmail.com> Co-authored-by: Lewis Carhart <lewis@trycomp.ai> Co-authored-by: Tofik Hasanov <72318342+tofikwest@users.noreply.github.com>
Co-authored-by: chasprowebdev <chasgarciaprowebdev@gmail.com> Co-authored-by: chasprowebdev <70908289+chasprowebdev@users.noreply.github.com>
There was a problem hiding this comment.
1 issue found across 10 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/app/src/app/(app)/[orgId]/trust/portal-settings/components/TrustPortalDomain.tsx">
<violation number="1" location="apps/app/src/app/(app)/[orgId]/trust/portal-settings/components/TrustPortalDomain.tsx:97">
P2: `domainStatusLoading` cannot distinguish between "still loading" and "errored" — both leave `domainStatus` as `undefined`. After a failed request the user permanently sees "Loading from Vercel…" instead of the "Unavailable" fallback.
Destructure `error` (or `isLoading`) from `useDomain` and use that to set the loading flag accurately.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
There was a problem hiding this comment.
3 issues found across 24 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/api/src/findings/finding-notifier.service.spec.ts">
<violation number="1" location="apps/api/src/findings/finding-notifier.service.spec.ts:227">
P2: Expect the devices tab for `FindingScope.people_devices`; `?tab=people` is the wrong URL.</violation>
<violation number="2" location="apps/api/src/findings/finding-notifier.service.spec.ts:248">
P2: Expect the People tab for `FindingScope.people`; this assertion uses the wrong tab.</violation>
</file>
<file name="apps/app/src/app/(app)/[orgId]/people/all/components/PeopleFindingsList.test.tsx">
<violation number="1" location="apps/app/src/app/(app)/[orgId]/people/all/components/PeopleFindingsList.test.tsx:18">
P1: Move the shared fakes used by these `vi.mock` factories into `vi.hoisted` (or define them inside the factories); hoisted `vi.mock` cannot close over these top-level variables.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
…ation
* fix(trust-portal): trust Vercel verdict for custom domain DNS verification
The custom-domain DNS check was marking a domain as verified based on our own
regex matching of the CNAME target, ignoring Vercel's own verdict. This let
users add a CNAME pointing to the legacy `cname.vercel-dns.com` (or any
`*.vercel-dns*.com` target) and see a green check in our UI even when
Vercel's project required a unique dedicated target and rejected the domain
as "Invalid Configuration".
The UI also fell back to displaying `cname.vercel-dns.com` as the recommended
CNAME whenever Vercel's `/v6/domains/{d}/config` call failed, effectively
guessing a value Vercel no longer accepts for new projects.
Changes:
- Extract a pure `decideDomainVerification` + `deriveCnameVerified` module
with 16 unit tests covering same-account, cross-account, config-failure,
and Vercel-not-configured scenarios.
- `checkDnsRecords` now fetches `/v6/domains/{d}/config` in parallel with
the status call and uses `configuredBy === 'CNAME' && !misconfigured` as
the CNAME verdict. DNS regex is only a fallback when Vercel is unreachable.
- Return `vercelMisconfigured` and `recommendedCNAME` from the check-dns
endpoint so the UI can show Vercel's view and the exact expected target.
- `getDomainStatus` DTO gains a `misconfigured` field.
- Remove `DEFAULT_CNAME_TARGET` guess from the frontend. When the target is
not yet known the UI now shows "Loading from Vercel…" and disables the
copy button rather than prompting the user to copy a stale default.
- Add a warning alert when Vercel reports the domain as still misconfigured,
showing the exact recommended CNAME value.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(trust-portal): never de-verify a working domain on transient Vercel errors
`decideDomainVerification` now distinguishes confident failures (DNS wrong,
Vercel explicitly reports misconfigured=true) from transient ones (Vercel
API unreachable, no verdict available). `checkDnsRecords` only writes
`domainVerified=false` on confident failures, preserving the prior
verification state when the failure is transient.
Prevents a temporary Vercel outage from silently breaking a customer's
already-working custom domain.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(trust-portal): trust Vercel's misconfigured flag regardless of DNS record type
Previously required `configuredBy === 'CNAME' && !misconfigured` to accept a
domain as verified. That filter blocked apex domains (which need A records)
and any other valid Vercel-accepted configuration (ALIAS, A, etc.) even
when Vercel itself reported the domain as working.
Vercel hosts these domains, so if Vercel says `misconfigured: false` the
domain is reachable — the DNS method used to get there doesn't matter.
Rename `deriveCnameVerified` → `deriveDnsVerified` to reflect that the
function now tracks "DNS points at Vercel correctly" rather than "a CNAME
specifically was used".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(trust-portal): correctly distinguish loading from errored domain status
`!!initialDomain && !domainStatus` was true for both SWR states — the
initial fetch AND a failed request — so a failed Vercel status request left
the UI stuck on "Loading from Vercel…" forever instead of surfacing the
"Unavailable — refresh to retry" fallback.
Use SWR's `isLoading` flag directly so the loading message only shows
during the actual initial fetch.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Mariano Fuentes <marfuen98@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
|
🎉 This PR is included in version 3.23.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.
Summary by cubic
Improve custom domain verification by trusting Vercel as the source of truth and surfacing misconfiguration plus the exact recommended CNAME in the UI. Add People‑scope findings across the app with scoped creation/listing, notifications, and deep links that sync with the People page
?tab=.New Features
scope, list with?scope=, and notify org owners/admins; titles/links prefer scope and deep‑link to/people?tab=….?tab=./configand/verify; status returnsmisconfigured+cnameTarget; DNS check returnsvercelMisconfigured+recommendedCNAME; UI shows Vercel’s exact CNAME, warns when misconfigured, and disables copy when unknown.Bug Fixes
?tab=), and improved CNAME detection with Vercel fallback patterns.Written for commit 3f4faf2. Summary will update on new commits.