Skip to content

feat(search): serve glean search from the platform API by default#134

Open
steve-calvert-glean wants to merge 1 commit into
sc/platform-03-search-platform-libfrom
sc/platform-04-search-cmd-migration
Open

feat(search): serve glean search from the platform API by default#134
steve-calvert-glean wants to merge 1 commit into
sc/platform-03-search-platform-libfrom
sc/platform-04-search-cmd-migration

Conversation

@steve-calvert-glean

Copy link
Copy Markdown
Collaborator

glean search is now platform-first:

  • Flag path calls POST /api/search; on the tenant-gate hidden 404 it warns once and retries the classic endpoint. GLEAN_LEGACY_APIS=1 forces classic.
  • Platform responses are emitted as-is (snake_case, never cleansed); CleanseSearchResponse and --raw now apply only to legacy responses.
  • Explicitly-set flags without a platform equivalent produce a stderr note instead of silently doing nothing.
  • --json payloads are platform-shaped and never auto-fall-back (the body is coupled to the endpoint); gate-closed produces an actionable error naming GLEAN_LEGACY_APIS=1, under which the payload is parsed as the classic shape exactly as before.
  • MockTransport gains per-path Routes so tests drive the platform-404 → legacy-200 fallback sequence.

Verified with the binary: default dry-run emits the platform snake_case request; GLEAN_LEGACY_APIS=1 emits the classic camelCase request.

Part 4/9.

🤖 Generated with Claude Code

The flag path calls POST /api/search and falls back to the classic API
(with a one-time warning) when the tenant gate is off; GLEAN_LEGACY_APIS=1
forces the classic path. Platform responses are emitted as-is (snake_case,
never cleansed); CleanseSearchResponse and --raw now apply only to legacy
responses. Explicitly-set flags without a platform equivalent produce a
stderr note instead of silently doing nothing.

--json payloads are platform-shaped and never auto-fall-back: the body is
coupled to the endpoint, so gate-closed produces an actionable error naming
GLEAN_LEGACY_APIS=1 (under which the payload is parsed as the classic
shape, exactly as before).

MockTransport gains per-path Routes so tests can drive the platform 404 →
legacy 200 fallback sequence.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread cmd/search.go
}
resp, err := search.RunSearchSDK(cmd.Context(), opts, sdk)
if !platform.Legacy() {
if ignored := platformIgnoredFlags(cmd); len(ignored) > 0 {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue: The note about legacy-only flags being ignored by platform search is printed before platform.Run executes, so it is emitted whenever GLEAN_LEGACY_APIS is not set, even if platform.Run falls back to the legacy API and those flags are actually honored.

Suggested fix: Move the platformIgnoredFlags(cmd) check to after the platform.Run call and only emit the "flags ignored by platform search" note when viaLegacy is false (i.e., the platform API was used and legacy-only flags truly had no effect).

🔧 Tag @ glean-for-engineering to fix or click here to fix in Glean

💬 Help us improve! Was this comment helpful? React with 👍 or 👎

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant