Skip to content

add grain to spec#92

Merged
chillenberger merged 4 commits into
cloudglue:mainfrom
chillenberger:dan-add-grain-data-connector
Apr 21, 2026
Merged

add grain to spec#92
chillenberger merged 4 commits into
cloudglue:mainfrom
chillenberger:dan-add-grain-data-connector

Conversation

@chillenberger

@chillenberger chillenberger commented Apr 18, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR updates the API specification for the Grain data connector.

Documentation: Added descriptions for three new query parameters (title_search, team, and meeting_type) to the listDataConnectorFiles endpoint.

Schema Updates: Added "Grain" as a valid option for the DataConnector type and the File source type.

Versioning: Bumped the API specification version to 0.6.9.

Summary by CodeRabbit

  • New Features

    • Added Grain as a new connector type, enabling integration of Grain data sources.
    • Added filtering capabilities for file discovery: title search, team selection, and meeting type filtering (available for Grain connectors).
  • Updates

    • API specification version updated to 0.6.9.

@coderabbitai

coderabbitai Bot commented Apr 18, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@chillenberger has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 32 minutes and 49 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 32 minutes and 49 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7bf9e0f7-41fd-4088-95bb-036a3f5264d5

📥 Commits

Reviewing files that changed from the base of the PR and between 0ab0a44 and 54ab74b.

📒 Files selected for processing (1)
  • spec/openapi.json
📝 Walkthrough

Walkthrough

This pull request updates the OpenAPI specification to introduce support for the Grain data connector. The API version is bumped to 0.6.9, the grain value is added to both the File.source and DataConnector.type enums, and three new optional query filters (title_search, team, meeting_type) are introduced for the /data-connectors/{id}/files endpoint.

Changes

Cohort / File(s) Summary
OpenAPI Specification
spec/openapi.json
Added grain connector type and file source support; introduced three new optional query filters (title_search, team, meeting_type) for Grain-specific file searches; version bumped to 0.6.9.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • amyxst

Poem

🐰 A grain of new data arrives today,
Through fields of enum, filters pave the way,
Version bumped with care and grace,
Grain connectors claim their place! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'add grain to spec' directly and accurately reflects the main change: adding Grain as a new data connector type and source to the API specification.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@kdr

kdr commented Apr 18, 2026

Copy link
Copy Markdown
Contributor

@chillenberger remove test note on cloudglue-js; that seems more a note on cloudgluejs workign and not the api spec

Comment thread spec/openapi.json Outdated
{
"name": "title_search",
"in": "query",
"description": "Title search filter. Applies to Grain connectors only.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

i think i need more details on what title search is? like is this an phrase match, exact string match, something more fuzzy? depending on that we might want to actually rename this parameter

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I copied the grain filter param names thinking it would make things simpler for the user https://developers.grain.com/#recording-filter . this can be nice if the user already has an api connection to grain and starts using us, or prevents us from needing to duplication documentation with different names. I found through testing the filter is fuzzy, but their docs do not explicitly say that .

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

their docs say "Only return recordings which title matches the given search string." but testing title_search=test on our test videos with a limit of 10 returns 'mp3_audio_recording_test'
'audio_recording_test'
'record_test_19'
'record_test_21'
'record_test_15'
'record_test_16'
'record_test_17'
'record_test_20'
'record_test_18'
'record_test_5'

Comment thread spec/openapi.json Outdated
{
"name": "team",
"in": "query",
"description": "Team filter. Applies to Grain connectors only.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

is this team filter an exact match? if so spell out in comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

How do you feel about referencing their docs rather than copy pasting data to prevent drift. My understanding, and the way it currently works is, we hit grains list api to pull available videos that we can use. If they change their api functionality, like the type, fuzzy vs non-fuzzy search, it still works, but our docs will be wrong.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@chillenberger yeah i think lets just link them to the relevant api doc as you suggested

Comment thread spec/openapi.json Outdated
{
"name": "meeting_type",
"in": "query",
"description": "Meeting type filter. Applies to Grain connectors only.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

is this meeting type filter an exact match? if so spell out in comment; or if its some closed set maybe we list the values here

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

same as above

@chillenberger chillenberger marked this pull request as ready for review April 21, 2026 16:32

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
spec/openapi.json (1)

4252-4268: ⚠️ Potential issue | 🟡 Minor

Type the Grain ID filters as UUIDs.

Grain’s Recording Filter docs identify team and meeting_type as ID filters, so the spec should expose them with format: "uuid"; otherwise generated clients treat them as arbitrary strings and users may pass names. Source: https://developers.grain.com/#recording-filter

🔧 Proposed schema/doc tightening
           {
             "name": "team",
             "in": "query",
-            "description": "Team filter. Applies to Grain connectors only. See the [Grain documentation](https://developers.grain.com/#recording-filter) for more details.",
+            "description": "Grain team ID filter. Applies to Grain connectors only. See the [Grain documentation](https://developers.grain.com/#recording-filter) for more details.",
             "required": false,
             "schema": {
-              "type": "string"
+              "type": "string",
+              "format": "uuid"
             }
           },
           {
             "name": "meeting_type",
             "in": "query",
-            "description": "Meeting type filter. Applies to Grain connectors only. See the [Grain documentation](https://developers.grain.com/#recording-filter) for more details.",
+            "description": "Grain meeting type ID filter. Applies to Grain connectors only. See the [Grain documentation](https://developers.grain.com/#recording-filter) for more details.",
             "required": false,
             "schema": {
-              "type": "string"
+              "type": "string",
+              "format": "uuid"
             }
           }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@spec/openapi.json` around lines 4252 - 4268, The OpenAPI schema for the query
parameters "team" and "meeting_type" currently types them as plain strings;
change their schemas to indicate UUIDs by adding "format": "uuid" to each
parameter's schema (the objects named "team" and "meeting_type" in
spec/openapi.json) so generated clients and validators treat them as UUIDs
rather than arbitrary strings.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@spec/openapi.json`:
- Around line 4252-4268: The OpenAPI schema for the query parameters "team" and
"meeting_type" currently types them as plain strings; change their schemas to
indicate UUIDs by adding "format": "uuid" to each parameter's schema (the
objects named "team" and "meeting_type" in spec/openapi.json) so generated
clients and validators treat them as UUIDs rather than arbitrary strings.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9ac1cba2-ffc5-4d7c-9d1e-53494942bc85

📥 Commits

Reviewing files that changed from the base of the PR and between abaa2fc and 0ab0a44.

📒 Files selected for processing (1)
  • spec/openapi.json

@chillenberger chillenberger merged commit 85f748b into cloudglue:main Apr 21, 2026
1 check passed
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.

2 participants