Proposal: global `search` command across conversations, contacts, messages, and articles
まだ誰も着手していません。
評価
調査の方向性
まず、既存のリソースごとの検索コマンドと internal/cmd/*_test.go を確認し、次にダッシュボードの検索エンドポイントと internal/sdk/testdata/application_swagger.json を調査します。/search がサポート対象の API サーフェスかどうか、また実装前にこれをトップレベルコマンドにするべきか flag にするべきかを判断します。方向性について合意され、リソース横断コマンドが httptest ベースのテストでカバーされれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
I'd like to add a top-level chatwoot search "<query>" command that returns matches across conversations, contacts, messages, and help-center articles in one call, with --only=<bucket> to restrict the output. This complements the existing per-resource search (contacts --search, convs --query) with a single cross-resource entry point.
Endpoint
It would call the account-scoped dashboard search endpoint:
GET /api/v1/accounts/{account_id}/search # all four buckets
This is what the Chatwoot dashboard's global search uses (Api::V1::Accounts::SearchController). Two questions before I open the PR:
- Is
/searcha supported API surface for the CLI to depend on? It isn't in the published OpenAPI spec (internal/sdk/testdata/application_swagger.jsononly lists/contacts/search), so I'd cover it withhttptest-based tests rather than the swagger contract harness — matching the existinginternal/cmd/*_test.go. Happy to add the path to the bundled spec instead if you'd prefer to treat it as official. - Top-level command vs. flag? A new top-level
searchreads naturally for cross-bucket search, but it overlaps conceptually withcontacts --search/convs --query. Would you prefer a top-level command, or a different shape?
Follow-up (separate PR)
A second, optional PR adds date-range filtering (--after / --before / --on, --tz) mapping to since / until query params on /search. Heads-up: those params are also dashboard-internal (not in the published spec) and only take effect when the account has the advanced_search feature — so it's cleanly separable and easy to defer.
Both PRs are ready to open once you confirm the direction. Thanks!
- 主要言語
- Go
- スター
- 9
- フォーク
- 5
- 平均マージ
- 2分
- マージ済み PR(30日)
- 2
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
chatwoot/cli のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 48/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
cloudflare/terraform-provider-cloudflare#7423 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
router-for-me/CLIProxyAPI#6746 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
ViewData can pair the in-flight proposal with the prepared flag of another proposal対応中かも @HagarMeir が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
hyperledger/SmartBFT#710 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100