feat(migrations): expose queryable resource links#12193
Merged
Conversation
Contributor
Greptile SummaryThis PR exposes queryable resource links for migrations and keeps older migration clients compatible. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (23): Last reviewed commit: "Merge main: resolve composer conflicts, ..." | Re-trigger Greptile |
🔄 PHP-Retry SummaryFlaky tests detected across commits: Commit
|
| Test | Retries | Total Time | Details |
|---|---|---|---|
LegacyCustomClientTest::testTimeout |
1 | 139.25s | Logs |
Commit 4b5c123 - 1 flaky test
| Test | Retries | Total Time | Details |
|---|---|---|---|
DocumentsDBCustomServerTest::testTimeout |
1 | 128.35s | Logs |
Commit ea9a74b - 1 flaky test
| Test | Retries | Total Time | Details |
|---|---|---|---|
DocumentsDBCustomServerTest::testTimeout |
1 | 126.46s | Logs |
Commit 2d828af - 1 flaky test
| Test | Retries | Total Time | Details |
|---|---|---|---|
FunctionsCustomServerTest::testDeleteExecution |
1 | 149ms | Logs |
Commit 7d0e4ba - 1 flaky test
| Test | Retries | Total Time | Details |
|---|---|---|---|
LegacyCustomClientTest::testNotEndsWith |
1 | 240.89s | Logs |
Note: Flaky test results are tracked for the last 5 commits
✨ Benchmark resultsComparing
Per-scenario breakdown & investigation detailsMetrics below reflect the current branch (after). Δ P95 compares against the base.
Top API waits (after)
|
8 tasks
|
Found 1 test failure on Blacksmith runners: Failure
|
abnegate
force-pushed
the
feat/migration-resource-attrs
branch
from
July 17, 2026 12:27
7f48a8a to
2c02b5d
Compare
abnegate
force-pushed
the
feat/migration-resource-attrs
branch
from
July 17, 2026 12:29
2c02b5d to
4b5c123
Compare
abnegate
force-pushed
the
feat/migration-resource-attrs
branch
2 times, most recently
from
July 20, 2026 10:01
84490c6 to
9feaaff
Compare
Fold the migration-resource-link schema provisioning and document backfill into main's V25 migration instead of a standalone V25: only the class mapped to the release version (2.0.0 => V25) is executed, so a separate migration would never run. Main's existing V25 collection work is preserved and the migrations-collection attributes/indexes plus the resource-link document backfill are layered on top. Gate the V27 request/response filters on < 2.0.0 (the release the fields ship in) instead of the branch's 1.9.6, keeping the API version aligned with the folded migration. Restore main's utopia-php/auth VCS repository alongside the utopia-php/migration one, keep utopia-php/messaging ^2.0, and regenerate the lock so only utopia-php/migration moves to the resource-selector branch. APP_VERSION_STABLE and the migration version map stay at main's values. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replaces the dev-branch VCS pin now that feat/drop-compound-resource-id shipped in the 1.18.0 tag. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
abnegate
force-pushed
the
feat/migration-resource-attrs
branch
from
July 20, 2026 10:28
9feaaff to
aa9be97
Compare
The release carrying this feature is 1.9.6, so the backfill moves out of 2.0.0's V25 into its own V26 migration keyed to 1.9.6, the V27 request/response filters gate at 1.9.6, and APP_VERSION_STABLE bumps to match. V25 returns to main's contents. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
abnegate
force-pushed
the
feat/migration-resource-attrs
branch
from
July 20, 2026 13:29
a4483cf to
1544ad5
Compare
CE main deliberately renamed the next release from 1.9.6 to 2.0.0 (923e413, 2026-07-02), so 1.9.6 will never ship. The feature stays folded in V25 keyed to 2.0.0 with the V27 filters gated at 2.0.0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…1.18.0 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Summary
resourceId,resourceInternalId,resourceType,parentResourceId,parentResourceInternalId, andparentResourceType.destinationResourceId,destinationResourceInternalId, anddestinationResourceTypeso a restored or imported database can be linked to its exact generation.utopia-php/migration1.18.0.completed.Database lookup contract
For an exact current database generation, query an OR across these relation triples:
resourceType + resourceId + resourceInternalIdparentResourceType + parentResourceId + parentResourceInternalIddestinationResourceType + destinationResourceId + destinationResourceInternalIdA public-ID-only query intentionally returns history across generations. TablesDB/legacy roots use
database; DocumentsDB and VectorsDB usedocumentsdbandvectorsdb.Compatibility
databaseId:collectionIdselector.resourceId, matching the pre-1.7 response contract.utopia-php/migration^1.18.0; no temporary migration VCS pin remains.Validation