Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
🟡 Changes recommended
The historical test_auto_indexes.py currently reads required environment variables before the deprecation exit, so it can crash with KeyError instead of cleanly reporting that it is intentionally non-runnable.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This PR adds end-to-end Python regression scenarios that exercise a locally built vNext runtime for instance-list querying (filtering/value limits/pagination) and for the new “manual DBA-owned” attribute index preparation workflow, then registers these scenarios in the repo’s scenario matrix.
Changes:
- Add
api-tests/instance-queriesscripts and documentation to validate JSON filter safety, operand length limits, and pagination/ordering + HATEOAS next-link behavior against a persisted PostgreSQL fixture. - Add
api-tests/attribute-index-preparation/test_manual_indexes.py(plus README) to validate the manual/offline index preparation contract via CLI-generated SQL and explicit execution. - Update
TEST-SCENARIOS.mdto register the new scenarios and mark the automatic index experiment as historical.
File summaries
| File | Description |
|---|---|
| TEST-SCENARIOS.md | Registers the new instance-query and attribute-index-preparation scenarios and their recorded results. |
| api-tests/instance-queries/test_instance_queries.py | New E2E harness that publishes a fixture workflow, starts instances, runs filter/value-limit checks or pagination checks, and verifies persisted PostgreSQL data. |
| api-tests/instance-queries/pagination_checks.py | Pagination/order/tie-break/next-link assertions reused by the instance query fixture. |
| api-tests/instance-queries/README.md | Runbook + pass criteria and recorded baseline/verified results for instance query regressions. |
| api-tests/attribute-index-preparation/test_manual_indexes.py | New E2E harness for manual/offline index preparation (CLI SQL generation + DBA-style execution + replay checks). |
| api-tests/attribute-index-preparation/test_auto_indexes.py | Retains the superseded automatic-preparation experiment, but now blocks execution via a deprecation exit. |
| api-tests/attribute-index-preparation/README.md | Documents the manual contract and retains historical notes/results for the superseded automatic experiment. |
Review details
- Files reviewed: 7/7 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| #!/usr/bin/env python3 | ||
| """Real-host regression: publication -> durable Aether job -> Dapr -> generated indexes. | ||
|
|
||
| Requires an isolated local worktree runtime. SQL is used for assertions and a held | ||
| read lock only; all definitions/data are published through the HTTP API. | ||
| """ | ||
| import json | ||
| import os | ||
| import subprocess | ||
| import time | ||
| import urllib.error | ||
| import urllib.request | ||
| import uuid | ||
|
|
||
| BASE = os.environ['VNEXT_BASE_URL'].rstrip('/') | ||
| DOMAIN = os.environ['VNEXT_TEST_DOMAIN'] | ||
| PG = os.environ['VNEXT_TEST_PG_CONTAINER'] | ||
| DATABASE = os.environ['VNEXT_TEST_DATABASE'] | ||
| PREFIX = 'auto-' + uuid.uuid4().hex[:10] | ||
| MASTER = PREFIX + '-master' | ||
| LATEST = PREFIX + '-latest' | ||
| PINNED = PREFIX + '-pinned' | ||
|
|
Summary
Add HTTP regression scenarios for instance filtering, filter value limits, pagination and manual attribute index preparation. These scenarios exercise a locally built runtime in an isolated environment and accompany vnext PR #987.
Changes
test_instance_queries.pywith a shared API-created fixture for JSON filter safety, 1000-character operand limits and persisted-data checks.TEST-SCENARIOS.md.Validation
Previously completed against isolated, locally built runtime environments; these E2E runs were not repeated while preparing this PR:
Checks performed for this PR:
--helpcommand passed.npmis unavailable, and invoking its underlyingnode validate.jscommand failed becauseajvis missing. No workflow component definitions are changed.