Skip to content

chore: mark data, count and offset fields required where applicable - #847

Merged
rvab merged 5 commits into
mainfrom
feature/require-data-key-get-200
Jul 27, 2026
Merged

chore: mark data, count and offset fields required where applicable#847
rvab merged 5 commits into
mainfrom
feature/require-data-key-get-200

Conversation

@rvab

@rvab rvab commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Description

Please add PR description here, add screenshots if needed

Clickup

app.clickup.com

Copilot AI review requested due to automatic review settings July 23, 2026 11:14
@github-actions github-actions Bot added the size/M Medium PR label Jul 23, 2026
@rvab
rvab requested a review from KirtiGautam July 23, 2026 11:14
@github-actions github-actions Bot added size/L Large PR and removed size/M Medium PR labels Jul 23, 2026

Copilot AI left a comment

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.

Pull request overview

This PR tightens the OpenAPI response schemas by explicitly marking data, and where applicable count and offset, as required fields across multiple role-based specs (admin/spender/approver/manager/hod/hop/common/accountant). This improves schema accuracy for clients and for tooling that validates or generates code from these specs.

Changes:

  • Marked data, count, and offset as required on many paginated list GET responses.
  • Marked data as required on several non-paginated GET responses.
  • Updated these requirements consistently across multiple roles’ path definitions.

Reviewed changes

Copilot reviewed 183 out of 183 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/spender/paths/spender@virtual_cards.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@tax_groups.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@subscriptions.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@secondary_emails.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@schedules.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@reports@filters.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@reports@exports.yaml Require data/count/offset on list response schema (needs type: object).
src/spender/paths/spender@reports@export_configurations.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@reports.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@report_stats.yaml Require data on stats response schema.
src/spender/paths/spender@recently_used_fields.yaml Require data on response schema.
src/spender/paths/spender@projects.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@personal_cards.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@personal_card_transactions@expense_suggestion.yaml Require data on response schema.
src/spender/paths/spender@personal_card_transactions.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@per_diem_rates.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@orgs.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@orgs_bank_details.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@my_profile.yaml Require data on response schema.
src/spender/paths/spender@mobile_app@versions.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@mileage_rates.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@merchants.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@feature_configs.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@expenses@filters.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@expenses@export_configurations.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@expenses@duplicate_sets.yaml Require data on response schema.
src/spender/paths/spender@expenses@comments.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@expenses.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@expense_stats.yaml Require data on stats response schema.
src/spender/paths/spender@expense_policies@states.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@expense_policies.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@expense_fields.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@exchange_rate.yaml Require data on response schema.
src/spender/paths/spender@employees@delegators.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@employees@current.yaml Require data on response schema.
src/spender/paths/spender@employees.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@dwolla_customers.yaml Require data on response schema.
src/spender/paths/spender@dependent_expense_field_values.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@departments.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@cost_centers.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@corporate_cards@yodlee_accounts.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@corporate_cards.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@corporate_card_transactions.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@categories.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@budgets.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@automations@recurring_expenses.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@advances.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@advance_wallets.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@advance_requests@custom_fields.yaml Require data on response schema.
src/spender/paths/spender@advance_requests.yaml Require data/count/offset on list response schema.
src/spender/paths/spender@advance_requests_stats.yaml Require data on stats response schema.
src/spender/paths/spender@accounts.yaml Require data/count/offset on list response schema.
src/manager/paths/manager@employee_overview@hierarchy.yaml Require data on response schema.
src/manager/paths/manager@employee_overview@expenses.yaml Require data/count/offset on list response schema.
src/manager/paths/manager@employee_overview@expense_policy_states.yaml Require data/count/offset on list response schema.
src/manager/paths/manager@employee_overview@expense_comments.yaml Require data/count/offset on list response schema.
src/manager/paths/manager@employee_overview@employees.yaml Require data/count/offset on list response schema.
src/manager/paths/manager@employee_overview.yaml Require data/count/offset on list response schema.
src/hop/paths/hop@budget_usages.yaml Require data/count/offset on list response schema.
src/hod/paths/hod@budget_usages.yaml Require data/count/offset on list response schema.
src/common/paths/common@places@autocomplete.yaml Require data/count/offset on list response schema.
src/common/paths/common@places.yaml Require data/count/offset on list response schema.
src/common/paths/common@currencies@exchange_rate.yaml Require data on response schema.
src/common/paths/common@currencies.yaml Require data on response schema.
src/approver/paths/approver@subscriptions.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@reports@filters.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@reports@exports.yaml Require data/count/offset on list response schema (needs type: object).
src/approver/paths/approver@reports@export_configurations.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@reports.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@projects.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@per_diem_rates.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@mileage_rates.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@merchants.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@expenses@filters.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@expenses@export_configurations.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@expenses@duplicate_sets.yaml Require data on response schema.
src/approver/paths/approver@expenses@comments.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@expenses.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@expense_policies@states.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@expense_fields.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@employees.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@employee_overview@hierarchy.yaml Require data on response schema.
src/approver/paths/approver@employee_overview@expenses.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@employee_overview.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@cost_centers.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@corporate_cards.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@categories.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@advance_requests@custom_fields.yaml Require data on response schema.
src/approver/paths/approver@advance_requests.yaml Require data/count/offset on list response schema.
src/approver/paths/approver@accounts.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@virtual_cards.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@tax_groups.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@subscriptions.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@statements@rtf_stats.yaml Require data on response schema.
src/admin/paths/admin@statements@missing_transactions.yaml Require data on response schema.
src/admin/paths/admin@statements.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@statement_mappings.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@spend_overview@summary.yaml Require data on response schema.
src/admin/paths/admin@spend_overview@by_user.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@spend_overview@by_project.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@spend_overview@by_merchant.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@spend_overview@by_department.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@spend_overview@by_corporate_card.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@spend_overview@by_category.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@schedules.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@scheduled_callbacks.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@reports@save_filters.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@reports@exports.yaml Require data/count/offset on list response schema (needs type: object).
src/admin/paths/admin@reports@export_configurations.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@reports.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@reminders.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@reimbursements.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@reconciliation_entries@transactions.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@reconciliation_entries@eligible_cards.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@reconciliation_entries.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@projects.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@per_diem_rates.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@orgs.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@orgs_bank_details.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@mileage_rates.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@merchants.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@levels.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@feature_configs.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@expenses@filters.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@expenses@export_configurations.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@expenses@duplicate_sets@stats.yaml Require data on response schema.
src/admin/paths/admin@expenses@duplicate_sets.yaml Require data on response schema.
src/admin/paths/admin@expenses@comments.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@expenses.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@expense_rules.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@expense_policies@states.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@expense_policies.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@expense_fields.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@employees@uploads.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@employees@titles.yaml Require data on response schema.
src/admin/paths/admin@employees@summaries.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@employees@potential_duplicate_expenses.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@employees@locations.yaml Require data on response schema.
src/admin/paths/admin@employees@filters.yaml Require data on response schema.
src/admin/paths/admin@employees@export_configurations.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@employees@downloads.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@employees@business_units.yaml Require data on response schema.
src/admin/paths/admin@employees.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@employee_fields.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@employee_account_summaries.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@dwolla_customers.yaml Require data on response schema.
src/admin/paths/admin@dependent_expense_field_values@uploads.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@dependent_expense_field_values@preview.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@dependent_expense_field_values@downloads.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@dependent_expense_field_values.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@departments.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@cost_centers.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@corporate_cards@masked_card_numbers.yaml Require data on response schema.
src/admin/paths/admin@corporate_cards@duplicate_suggestions.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@corporate_cards@bank_names.yaml Require data on response schema.
src/admin/paths/admin@corporate_cards@archive_suggestions.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@corporate_cards.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@corporate_card_transactions@filters.yaml Require data on response schema.
src/admin/paths/admin@corporate_card_transactions@export_configurations.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@corporate_card_transactions.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@categories@system_categories.yaml Require data on response schema.
src/admin/paths/admin@categories.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@budgets.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@budget_usages.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@automations@report_submissions.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@advances.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@advance_wallets.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@advance_requests@custom_fields.yaml Require data on response schema.
src/admin/paths/admin@advance_requests.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@advance_refunds.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@adjustments.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@accounts.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@accounting_exports.yaml Require data/count/offset on list response schema.
src/admin/paths/admin@accounting_export_lineitems.yaml Require data/count/offset on list response schema.
src/accountant/paths/accountant@orgs.yaml Require data/count/offset on list response schema.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/spender/paths/spender@reports@exports.yaml
Comment thread src/admin/paths/admin@reports@exports.yaml
Comment thread src/approver/paths/approver@reports@exports.yaml
Copilot AI review requested due to automatic review settings July 23, 2026 11:16

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 183 out of 183 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (3)

src/spender/paths/spender@reports@exports.yaml:17

  • The 200-response schema uses required/properties but does not declare type: object. Most other list responses in this repo explicitly set type: object, and some OpenAPI tooling will treat required as inapplicable unless the schema is clearly an object.
    src/admin/paths/admin@reports@exports.yaml:17
  • The 200-response schema uses required/properties but does not declare type: object. Adding type: object improves OpenAPI/JSON Schema compatibility and matches the pattern used by other paginated list responses.
    src/approver/paths/approver@reports@exports.yaml:17
  • The 200-response schema uses required/properties but does not declare type: object. Some OpenAPI tooling relies on type: object for required to be applied consistently.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 23, 2026 11:33

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 183 out of 183 changed files in this pull request and generated 3 comments.

Comment thread reference/spender.yaml
Comment thread reference/approver.yaml
Comment thread reference/admin.yaml
Copilot AI review requested due to automatic review settings July 23, 2026 11:36

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 183 out of 183 changed files in this pull request and generated 1 comment.

Comment on lines +21 to +24
required:
- data
- count
- offset
Copilot AI review requested due to automatic review settings July 27, 2026 07:39
@rvab
rvab merged commit 1353541 into main Jul 27, 2026
7 checks passed

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 183 out of 183 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (2)

src/admin/paths/admin@statements@rtf_stats.yaml:22

  • items is only valid for arrays. Since data here represents an object schema, this should be a direct $ref (or allOf) to the object schema instead of type: object + items:.
    src/admin/paths/admin@statements@missing_transactions.yaml:71
  • items is only valid for arrays. Since data is declared as an object here, it should be a direct $ref to the object schema (or switch data to type: array if that's what the response actually returns).

Comment on lines 13 to +17
schema:
type: object
additionalProperties: False
required:
- data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/L Large PR

Development

Successfully merging this pull request may close these issues.

3 participants