Remote-safe: traditional automation read & log tools#445
Open
mocha06 wants to merge 1 commit into
Open
Conversation
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.
Closes #439. Part of migrating the default-deny remote profile to expose the read tools that meet the remote-safe criteria (milestone: Hosted-safe tool surface). Stacked on
rc-dev/feat/remote-safe-kb-provider-reads.Motivation
Under
--profile remotethe server exposes only tools carryingmeta=REMOTE(tracked byREMOTE_SEED); many pure read tools that reach the API with the request-scoped bearer and are fully governed by API permissions were still withheld. This exposes the traditional automation read, log, and job-export status surface.Outcome
Marks 11 automation read/log tools remote-safe:
get_automation,get_automations,get_automation_actions,get_automation_events,get_automation_event_attributes,get_automation_execution_metrics,get_automation_logs,get_automation_logs_by_repo,get_automations_usage,get_automation_jobs_export,get_automation_jobs_export_csv. The two export tools were confirmed to stream in-memory with per-call caps (no local file, no per-user process-global setting). Each tool carriesmeta=REMOTEand a matchingREMOTE_SEEDentry; the drift-guard test keeps the two in lockstep. No new tools, no behavior change under the local profile.Remote-profile validation
The remote-safe read migration (this PR is part of the stack #437→#441) was verified end-to-end by running the code in
--profile remote --transport httplocally — behaving as a deployed instance — and connecting an MCP HTTP client with a valid RS256 Keycloak bearer. Measured on an integration branch that also carried the in-flight provider-write work (#434), so the withheld count includes those write tools:--profile remote --transport httpexposed 76, withheld 106(default-deny)401(bearer required)tools/listwith a valid RS256 bearerget_organization,get_pipe,get_llm_providers,get_ai_agentscreate_card,create_llm_provider,delete_card,upload_attachment_to_card,execute_graphqlabsent — 0 leakedget_organizationexecuted (isError=false)The 76 remote-safe tools are the 23 pre-existing plus the 53 read tools this migration set (#437–#441) adds. Registration-time filtering is also covered by the
test_remote_profile.pydrift-guard andtest_on_exposes_seed_and_withholds_the_rest.