Skip to content

STRINGS-3195 - Document account-wide (cross-project) translation search endpoint - #1266

Closed
junior-ai-bot[bot] wants to merge 1 commit into
mainfrom
agent/STRINGS-3195-db4257
Closed

junior-ai-bot[bot] wants to merge 1 commit into
mainfrom
agent/STRINGS-3195-db4257

Conversation

@junior-ai-bot

@junior-ai-bot junior-ai-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

What changed

Documents POST /accounts/{account_id}/search (Api::V2::SearchController#index) — the account-wide, cross-project translation/key search endpoint — properly in the spec:

  • Moved the operation from the standalone "Search" tag into the "Translations" section, positioned directly below "Search translations" (POST /projects/{project_id}/translations/search), both in paths.yaml ordering and via the Translations tag. Removed the now-unused "Search" tag from main.yaml.
  • Corrected the request parameters to match what the controller actually forwards to Accounts::AccountLevelSearchService: query, locale_code, project_ids, page, per_page — documented as query-string parameters (the controller does not read a JSON body for this action). Removed the previous requestBody documentation, which didn't reflect this.
  • Fixed the 200 response to be a JSON array of search result objects (SearchResponseSerializer output), matching keys/search and translations/search's array response shape, instead of a single object.
  • Added use_ordinal_rules to the key object examples in schemas/account_search_result.yaml to match the key_preview schema, and fixed a stray typo (state":state:) in one of the nested translation examples.
  • Updated the 403 description and code samples to reflect the corrected query-string request shape.

Per the ticket, sorting, branching, and custom_metadata (accepted by the underlying service but not exposed by the controller) are intentionally not documented.

Why

An Atlas agent session found no cross-project search was documented, so a user fanned out per-project search calls across 18 projects to find translations account-wide — the capability already existed but wasn't discoverable in the docs. See STRINGS-3195.

Test plan

  • npm run lint (swagger-cli validate + bundle + lint.sh) passes with no validation errors.
  • Manually reviewed the bundled doc/compiled.json diff to confirm the operation renders under Translations with the corrected parameters/response shape.
  • This is a documentation-only change to the OpenAPI spec; no application code or generated clients are affected.

Co-Authored-By: junior-dev

🤖 Generated with Claude Code

Move POST /accounts/{account_id}/search into the Translations section
next to Search translations, correct its request params to match what
the controller actually forwards (query string params, not a JSON
body), and fix the response to be an array of search results.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

API changelog (oasdiff)

Doc-only edits (descriptions, examples) do not appear here.

16 changes: 2 error, 7 warning, 7 info
error	[request-body-removed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		removed the request body

error	[response-body-type-changed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		the response's body type/format changed from `object`/`` to `array`/`` for status `200`

warning	[response-optional-property-removed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		removed the optional property `excerpt` from the response with the `200` status

warning	[response-optional-property-removed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		removed the optional property `key` from the response with the `200` status

warning	[response-optional-property-removed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		removed the optional property `locale` from the response with the `200` status

warning	[response-optional-property-removed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		removed the optional property `other_translations` from the response with the `200` status

warning	[response-optional-property-removed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		removed the optional property `project` from the response with the `200` status

warning	[response-optional-property-removed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		removed the optional property `query` from the response with the `200` status

warning	[response-optional-property-removed] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		removed the optional property `translation` from the response with the `200` status

info	[api-tag-added] at base/doc/compiled.json
	in API POST /accounts/{account_id}/search
		api tag `Translations` added

info	[api-tag-removed] at base/doc/compiled.json
	in API POST /accounts/{account_id}/search
		api tag `Search` removed

info	[new-optional-request-parameter] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		added the new optional `query` request parameter `locale_code`

info	[new-optional-request-parameter] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		added the new optional `query` request parameter `page`

info	[new-optional-request-parameter] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		added the new optional `query` request parameter `per_page`

info	[new-optional-request-parameter] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		added the new optional `query` request parameter `project_ids`

info	[new-optional-request-parameter] at doc/compiled.json
	in API POST /accounts/{account_id}/search
		added the new optional `query` request parameter `query`

@forelabs

Copy link
Copy Markdown
Member

already documented

@forelabs
Sven Dunemann (forelabs) deleted the agent/STRINGS-3195-db4257 branch September 14, 2026 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant