Expose the new enable/disable contract in REST/GraphQL and deprecate the 26.8 UUID-based contract
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 368
Description
Expose the checker_id + scope contract: new REST v2 route, GraphQL mutation, and DTOs (common/dto/manager/v2/idle_checker_assignment). Keep the 26.8 assignment-UUID update surface but mark it deprecated with a "Deprecated since 26.9.0" notice (gql-inspector rule). SDK/CLI updates and schema dump regeneration are a separate issue.
Serve IdleCheckerAssignment as a relation type per the Relations rules in src/ai/backend/manager/api/gql/AGENTS.md: not a Node, no id field, no node(id) lookup and no data loader. Add IdleCheckerAssignment connections on both ends (IdleChecker and the scope nodes) and a root scoped query whose scope takes scope and checker lists OR'd together, on the connection base from BA-7887. Filter and order are the relation type's own and nest checker conditions; enabled is a plain field.
## Success Criteria
- [ ] new GQL mutation and REST route accept checker_id+scope and return the updated IdleCheckerAssignment relation type
- [ ] old update field/route still works and carries a deprecation notice containing "Deprecated since 26.9.0"
- [ ] IdleChecker and the scope nodes expose IdleCheckerAssignment connections with enabled
- [ ] the root scoped query ORs scope and checker items
- [ ] graphql-inspector CI check passes
- [ ] pants test passes for affected packages
JIRA Issue: BA-7239
Contributor guide
Research direction
Start by reading src/ai/backend/manager/api/gql/AGENTS.md and the DTOs under common/dto/manager/v2/idle_checker_assignment, then trace the existing REST and GraphQL assignment update entry points. Use the BA-7887 connection base and verify the relation connections, scoped query, and deprecation notice against the success criteria. Run the graphql-inspector CI check and pants test for affected packages.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, python
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100